create-ssnode-cli 0.2.2 → 0.2.3

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 (203) hide show
  1. package/package.json +1 -1
  2. package/templates/backend/config/config.develop.yaml +6 -4
  3. package/templates/backend/data/template.dev.sqlite-shm +0 -0
  4. package/templates/backend/data/template.dev.sqlite-wal +0 -0
  5. package/templates/backend/dist/app.module.js +85 -1
  6. package/templates/backend/dist/app.module.js.map +1 -1
  7. package/templates/backend/dist/common/all-exceptions.filter.js +47 -1
  8. package/templates/backend/dist/common/all-exceptions.filter.js.map +1 -1
  9. package/templates/backend/dist/common/app-crypto.js +119 -1
  10. package/templates/backend/dist/common/app-crypto.js.map +1 -1
  11. package/templates/backend/dist/common/app-sign.guard.js +72 -1
  12. package/templates/backend/dist/common/app-sign.guard.js.map +1 -1
  13. package/templates/backend/dist/common/app-sign.module.js +20 -1
  14. package/templates/backend/dist/common/app-sign.module.js.map +1 -1
  15. package/templates/backend/dist/common/response.js +23 -1
  16. package/templates/backend/dist/common/response.js.map +1 -1
  17. package/templates/backend/dist/common/throttle.guard.js +42 -1
  18. package/templates/backend/dist/common/throttle.guard.js.map +1 -1
  19. package/templates/backend/dist/common/transform.interceptor.js +28 -1
  20. package/templates/backend/dist/common/transform.interceptor.js.map +1 -1
  21. package/templates/backend/dist/config/config.interface.js +2 -1
  22. package/templates/backend/dist/config/config.interface.js.map +1 -1
  23. package/templates/backend/dist/config/configuration.js +91 -1
  24. package/templates/backend/dist/config/configuration.js.map +1 -1
  25. package/templates/backend/dist/database/migrations/0001-init.migration.js +69 -1
  26. package/templates/backend/dist/database/migrations/0001-init.migration.js.map +1 -1
  27. package/templates/backend/dist/database/sqlite.config.js +32 -1
  28. package/templates/backend/dist/database/sqlite.config.js.map +1 -1
  29. package/templates/backend/dist/entities/audit-log.entity.js +49 -1
  30. package/templates/backend/dist/entities/audit-log.entity.js.map +1 -1
  31. package/templates/backend/dist/entities/image.entity.js +50 -1
  32. package/templates/backend/dist/entities/image.entity.js.map +1 -1
  33. package/templates/backend/dist/entities/page-data.entity.js +60 -1
  34. package/templates/backend/dist/entities/page-data.entity.js.map +1 -1
  35. package/templates/backend/dist/entities/screen-config.entity.js +74 -1
  36. package/templates/backend/dist/entities/screen-config.entity.js.map +1 -1
  37. package/templates/backend/dist/entities/user.entity.js +59 -1
  38. package/templates/backend/dist/entities/user.entity.js.map +1 -1
  39. package/templates/backend/dist/main.js +56 -1
  40. package/templates/backend/dist/main.js.map +1 -1
  41. package/templates/backend/dist/modules/audit/audit.controller.js +51 -1
  42. package/templates/backend/dist/modules/audit/audit.controller.js.map +1 -1
  43. package/templates/backend/dist/modules/audit/audit.module.js +25 -1
  44. package/templates/backend/dist/modules/audit/audit.module.js.map +1 -1
  45. package/templates/backend/dist/modules/audit/audit.service.js +57 -1
  46. package/templates/backend/dist/modules/audit/audit.service.js.map +1 -1
  47. package/templates/backend/dist/modules/auth/auth.controller.js +74 -1
  48. package/templates/backend/dist/modules/auth/auth.controller.js.map +1 -1
  49. package/templates/backend/dist/modules/auth/auth.module.js +45 -1
  50. package/templates/backend/dist/modules/auth/auth.module.js.map +1 -1
  51. package/templates/backend/dist/modules/auth/auth.service.js +151 -1
  52. package/templates/backend/dist/modules/auth/auth.service.js.map +1 -1
  53. package/templates/backend/dist/modules/auth/captcha.service.js +56 -1
  54. package/templates/backend/dist/modules/auth/captcha.service.js.map +1 -1
  55. package/templates/backend/dist/modules/auth/jwt-auth.guard.js +17 -1
  56. package/templates/backend/dist/modules/auth/jwt-auth.guard.js.map +1 -1
  57. package/templates/backend/dist/modules/auth/jwt.strategy.js +37 -1
  58. package/templates/backend/dist/modules/auth/jwt.strategy.js.map +1 -1
  59. package/templates/backend/dist/modules/image/image.controller.js +75 -1
  60. package/templates/backend/dist/modules/image/image.controller.js.map +1 -1
  61. package/templates/backend/dist/modules/image/image.module.js +26 -1
  62. package/templates/backend/dist/modules/image/image.module.js.map +1 -1
  63. package/templates/backend/dist/modules/image/image.service.js +94 -1
  64. package/templates/backend/dist/modules/image/image.service.js.map +1 -1
  65. package/templates/backend/dist/modules/ops/backend-version.probe.js +58 -1
  66. package/templates/backend/dist/modules/ops/backend-version.probe.js.map +1 -1
  67. package/templates/backend/dist/modules/ops/ops-probe.interface.js +4 -1
  68. package/templates/backend/dist/modules/ops/ops-probe.interface.js.map +1 -1
  69. package/templates/backend/dist/modules/ops/ops.controller.js +52 -1
  70. package/templates/backend/dist/modules/ops/ops.controller.js.map +1 -1
  71. package/templates/backend/dist/modules/ops/ops.module.js +39 -1
  72. package/templates/backend/dist/modules/ops/ops.module.js.map +1 -1
  73. package/templates/backend/dist/modules/ops/ops.service.js +72 -1
  74. package/templates/backend/dist/modules/ops/ops.service.js.map +1 -1
  75. package/templates/backend/dist/modules/ops/sqlite-backup-list.probe.js +105 -1
  76. package/templates/backend/dist/modules/ops/sqlite-backup-list.probe.js.map +1 -1
  77. package/templates/backend/dist/modules/ops/sqlite-backup-log.probe.js +67 -1
  78. package/templates/backend/dist/modules/ops/sqlite-backup-log.probe.js.map +1 -1
  79. package/templates/backend/dist/modules/ops/sqlite-backup.probe.js +115 -1
  80. package/templates/backend/dist/modules/ops/sqlite-backup.probe.js.map +1 -1
  81. package/templates/backend/dist/modules/ops/version.controller.js +52 -1
  82. package/templates/backend/dist/modules/ops/version.controller.js.map +1 -1
  83. package/templates/backend/dist/modules/page-data/page-data.controller.js +109 -1
  84. package/templates/backend/dist/modules/page-data/page-data.controller.js.map +1 -1
  85. package/templates/backend/dist/modules/page-data/page-data.module.js +25 -1
  86. package/templates/backend/dist/modules/page-data/page-data.module.js.map +1 -1
  87. package/templates/backend/dist/modules/page-data/page-data.service.js +69 -1
  88. package/templates/backend/dist/modules/page-data/page-data.service.js.map +1 -1
  89. package/templates/backend/dist/modules/screen-config/screen-config.controller.js +61 -1
  90. package/templates/backend/dist/modules/screen-config/screen-config.controller.js.map +1 -1
  91. package/templates/backend/dist/modules/screen-config/screen-config.module.js +25 -1
  92. package/templates/backend/dist/modules/screen-config/screen-config.module.js.map +1 -1
  93. package/templates/backend/dist/modules/screen-config/screen-config.service.js +41 -1
  94. package/templates/backend/dist/modules/screen-config/screen-config.service.js.map +1 -1
  95. package/templates/backend/dist/modules/upload/upload.controller.js +65 -1
  96. package/templates/backend/dist/modules/upload/upload.controller.js.map +1 -1
  97. package/templates/backend/dist/modules/upload/upload.module.js +22 -1
  98. package/templates/backend/dist/modules/upload/upload.module.js.map +1 -1
  99. package/templates/backend/dist/modules/upload/upload.service.js +75 -1
  100. package/templates/backend/dist/modules/upload/upload.service.js.map +1 -1
  101. package/templates/backend/dist/modules/user/user.controller.js +149 -1
  102. package/templates/backend/dist/modules/user/user.controller.js.map +1 -1
  103. package/templates/backend/dist/modules/user/user.module.js +26 -1
  104. package/templates/backend/dist/modules/user/user.module.js.map +1 -1
  105. package/templates/backend/dist/modules/user/user.service.js +249 -1
  106. package/templates/backend/dist/modules/user/user.service.js.map +1 -1
  107. package/templates/backend/dist/modules/websocket/websocket.gateway.js +33 -1
  108. package/templates/backend/dist/modules/websocket/websocket.gateway.js.map +1 -1
  109. package/templates/backend/dist/modules/websocket/websocket.module.js +19 -1
  110. package/templates/backend/dist/modules/websocket/websocket.module.js.map +1 -1
  111. package/templates/backend/dist/tsconfig.build.tsbuildinfo +1 -1
  112. package/templates/backend/package.json +1 -1
  113. package/templates/backend/src/modules/auth/captcha.service.ts +6 -5
  114. package/templates/web/dist/assets/{AuthLayout-bcf98efb.js → AuthLayout-f1e8d110.js} +1 -1
  115. package/templates/web/dist/assets/{AuthLayout-legacy-6e7a8ae1.js → AuthLayout-legacy-f871651c.js} +1 -1
  116. package/templates/web/dist/assets/{Background-eb77ef54.js → Background-955d549f.js} +1 -1
  117. package/templates/web/dist/assets/{Background-legacy-50457007.js → Background-legacy-fbad6e76.js} +1 -1
  118. package/templates/web/dist/assets/{Screen-318c3fc2.js → Screen-b14b0813.js} +1 -1
  119. package/templates/web/dist/assets/{Screen-legacy-af123b0f.js → Screen-legacy-154c8ee6.js} +1 -1
  120. package/templates/web/dist/assets/{api-beff4a3e.js → api-4d80e36e.js} +1 -1
  121. package/templates/web/dist/assets/{api-legacy-9fe41d4b.js → api-legacy-054fd569.js} +1 -1
  122. package/templates/web/dist/assets/{component-89b5253e.js → component-9d9f33fa.js} +1 -1
  123. package/templates/web/dist/assets/{component-legacy-8c5a28ef.js → component-legacy-4445386a.js} +1 -1
  124. package/templates/web/dist/assets/{index-a79e448b.js → index-107a0e80.js} +1 -1
  125. package/templates/web/dist/assets/{index-b60badf7.js → index-5afb70be.js} +1 -1
  126. package/templates/web/dist/assets/{index-cba19800.js → index-7b807c2d.js} +1 -1
  127. package/templates/web/dist/assets/{index-86214b19.js → index-ab64cd34.js} +1 -1
  128. package/templates/web/dist/assets/{index-7277cbfb.js → index-d8bfffb3.js} +1 -1
  129. package/templates/web/dist/assets/{index-d70eb540.js → index-db169639.js} +1 -1
  130. package/templates/web/dist/assets/{index-bd4ed808.js → index-e08dc495.js} +1 -1
  131. package/templates/web/dist/assets/index-e31f4b7c.js +1 -0
  132. package/templates/web/dist/assets/{index-legacy-783129a7.js → index-legacy-5cf7be80.js} +1 -1
  133. package/templates/web/dist/assets/index-legacy-6f112001.js +1 -0
  134. package/templates/web/dist/assets/{index-legacy-b3bd40c1.js → index-legacy-91e012ac.js} +1 -1
  135. package/templates/web/dist/assets/{index-legacy-0da8de82.js → index-legacy-aa61cf72.js} +1 -1
  136. package/templates/web/dist/assets/{index-legacy-06483318.js → index-legacy-afba9135.js} +1 -1
  137. package/templates/web/dist/assets/{index-legacy-d510e318.js → index-legacy-da51c769.js} +1 -1
  138. package/templates/web/dist/assets/{index-legacy-993ef005.js → index-legacy-eec0ca6e.js} +1 -1
  139. package/templates/web/dist/assets/{index-legacy-feb54578.js → index-legacy-f732db29.js} +1 -1
  140. package/templates/web/dist/index.html +2 -2
  141. package/templates/web/node_modules/.vite/deps/@ant-design_icons.js +4 -4
  142. package/templates/web/node_modules/.vite/deps/_metadata.json +57 -57
  143. package/templates/web/node_modules/.vite/deps/antd.js +6 -6
  144. package/templates/web/node_modules/.vite/deps/antd_locale_zh_CN.js +1 -1
  145. package/templates/web/node_modules/.vite/deps/axios.js +2793 -1104
  146. package/templates/web/node_modules/.vite/deps/axios.js.map +4 -4
  147. package/templates/web/node_modules/.vite/deps/{chunk-FADIZLW4.js → chunk-3EE4ABTD.js} +3 -3
  148. package/templates/web/node_modules/.vite/deps/{chunk-5JEEJ3ET.js → chunk-3KXTUEQ5.js} +2 -2
  149. package/templates/web/node_modules/.vite/deps/{chunk-DSEUD2VO.js → chunk-622VOE6C.js} +28 -237
  150. package/templates/web/node_modules/.vite/deps/chunk-622VOE6C.js.map +7 -0
  151. package/templates/web/node_modules/.vite/deps/{chunk-PCLWPLHU.js → chunk-AX2S74EI.js} +4 -4
  152. package/templates/web/node_modules/.vite/deps/{chunk-UX3FVGZU.js → chunk-DXNXWKU4.js} +1670 -1309
  153. package/templates/web/node_modules/.vite/deps/chunk-DXNXWKU4.js.map +7 -0
  154. package/templates/web/node_modules/.vite/deps/{chunk-OTDKR2HU.js → chunk-GT2UP6M4.js} +2 -2
  155. package/templates/web/node_modules/.vite/deps/{chunk-5WWUZCGV.js → chunk-HM4MQYWN.js} +10 -2
  156. package/templates/web/node_modules/.vite/deps/{chunk-Z4XTF2JV.js → chunk-NDUAOA7M.js} +2 -2
  157. package/templates/web/node_modules/.vite/deps/{chunk-PIIG5WB7.js → chunk-OKY2XKJX.js} +14406 -12416
  158. package/templates/web/node_modules/.vite/deps/chunk-OKY2XKJX.js.map +7 -0
  159. package/templates/web/node_modules/.vite/deps/{chunk-UIM57Q7Y.js → chunk-SC6QO7UO.js} +6086 -4354
  160. package/templates/web/node_modules/.vite/deps/chunk-SC6QO7UO.js.map +7 -0
  161. package/templates/web/node_modules/.vite/deps/classnames.js +2 -2
  162. package/templates/web/node_modules/.vite/deps/dayjs.js +2 -2
  163. package/templates/web/node_modules/.vite/deps/dayjs_locale_zh-cn.js +2 -2
  164. package/templates/web/node_modules/.vite/deps/echarts_charts.js +7172 -6102
  165. package/templates/web/node_modules/.vite/deps/echarts_charts.js.map +4 -4
  166. package/templates/web/node_modules/.vite/deps/echarts_components.js +3363 -1326
  167. package/templates/web/node_modules/.vite/deps/echarts_components.js.map +4 -4
  168. package/templates/web/node_modules/.vite/deps/echarts_core.js +57 -42
  169. package/templates/web/node_modules/.vite/deps/echarts_core.js.map +3 -3
  170. package/templates/web/node_modules/.vite/deps/echarts_renderers.js +432 -334
  171. package/templates/web/node_modules/.vite/deps/echarts_renderers.js.map +4 -4
  172. package/templates/web/node_modules/.vite/deps/exceljs.js +25762 -0
  173. package/templates/web/node_modules/.vite/deps/exceljs.js.map +7 -0
  174. package/templates/web/node_modules/.vite/deps/lodash.js +28 -10
  175. package/templates/web/node_modules/.vite/deps/lodash.js.map +3 -3
  176. package/templates/web/node_modules/.vite/deps/path-browserify.js +1 -1
  177. package/templates/web/node_modules/.vite/deps/prop-types.js +1 -1
  178. package/templates/web/node_modules/.vite/deps/qs.js +405 -138
  179. package/templates/web/node_modules/.vite/deps/qs.js.map +4 -4
  180. package/templates/web/node_modules/.vite/deps/react-dom.js +3 -3
  181. package/templates/web/node_modules/.vite/deps/react-dom_client.js +3 -3
  182. package/templates/web/node_modules/.vite/deps/react-router-dom.js +3445 -1283
  183. package/templates/web/node_modules/.vite/deps/react-router-dom.js.map +4 -4
  184. package/templates/web/node_modules/.vite/deps/react.js +2 -2
  185. package/templates/web/node_modules/.vite/deps/react_jsx-dev-runtime.js +2 -2
  186. package/templates/web/node_modules/.vite/deps/recoil.js +3 -3
  187. package/templates/web/src/pages/Login/index.tsx +8 -1
  188. package/templates/web/src/services/api.ts +6 -1
  189. package/templates/web/vite.config.js +5 -5
  190. package/templates/web/dist/assets/index-e6071630.js +0 -1
  191. package/templates/web/dist/assets/index-legacy-028ed5d5.js +0 -1
  192. package/templates/web/node_modules/.vite/deps/chunk-DSEUD2VO.js.map +0 -7
  193. package/templates/web/node_modules/.vite/deps/chunk-PIIG5WB7.js.map +0 -7
  194. package/templates/web/node_modules/.vite/deps/chunk-UIM57Q7Y.js.map +0 -7
  195. package/templates/web/node_modules/.vite/deps/chunk-UX3FVGZU.js.map +0 -7
  196. package/templates/web/node_modules/.vite/deps/xlsx.js +0 -33827
  197. package/templates/web/node_modules/.vite/deps/xlsx.js.map +0 -7
  198. /package/templates/web/node_modules/.vite/deps/{chunk-FADIZLW4.js.map → chunk-3EE4ABTD.js.map} +0 -0
  199. /package/templates/web/node_modules/.vite/deps/{chunk-5JEEJ3ET.js.map → chunk-3KXTUEQ5.js.map} +0 -0
  200. /package/templates/web/node_modules/.vite/deps/{chunk-PCLWPLHU.js.map → chunk-AX2S74EI.js.map} +0 -0
  201. /package/templates/web/node_modules/.vite/deps/{chunk-OTDKR2HU.js.map → chunk-GT2UP6M4.js.map} +0 -0
  202. /package/templates/web/node_modules/.vite/deps/{chunk-5WWUZCGV.js.map → chunk-HM4MQYWN.js.map} +0 -0
  203. /package/templates/web/node_modules/.vite/deps/{chunk-Z4XTF2JV.js.map → chunk-NDUAOA7M.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/cartesian/GridModel.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/cartesian/AxisModel.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/axisDefault.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/axisCommonTypes.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/axisModelCreator.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/cartesian/Cartesian.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/cartesian/Axis2D.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/axisAlignTicks.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/cartesian/Grid.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/axis/AxisBuilder.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/axisPointer/modelHelper.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/axis/AxisView.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/axis/axisSplitHelper.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/axis/CartesianAxisView.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/grid/installSimple.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/radar/RadarModel.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/radar/RadarView.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/radar/IndicatorAxis.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/radar/Radar.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/radar/install.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/View.js", "../../../../../node_modules/.pnpm/zrender@5.5.0/node_modules/zrender/lib/tool/parseXML.js", "../../../../../node_modules/.pnpm/zrender@5.5.0/node_modules/zrender/lib/tool/parseSVG.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/geo/GeoSVGResource.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/geo/fix/nanhai.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/geo/fix/textCoord.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/geo/GeoJSONResource.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/geo/geoSourceManager.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/geo/Geo.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/geo/geoCreator.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/geo/GeoModel.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/action/roamHelper.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/helper/interactionMutex.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/helper/RoamController.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/helper/roamHelper.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/helper/cursorHelper.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/helper/MapDraw.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/geo/GeoView.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/geo/install.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/parallel/parallelPreprocessor.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/parallel/ParallelView.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/parallel/ParallelModel.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/parallel/ParallelAxis.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/helper/sliderMove.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/parallel/Parallel.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/parallel/parallelCreator.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/parallel/AxisModel.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/helper/BrushController.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/helper/brushHelper.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/axis/ParallelAxisView.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/axis/parallelAxisAction.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/component/parallel/install.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/util/styleCompat.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/animation/customGraphicTransition.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/visual/VisualMapping.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/chart/helper/labelHelper.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/chart/helper/Symbol.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/chart/helper/SymbolDraw.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/chart/helper/LinePath.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/chart/helper/Line.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/chart/helper/LineDraw.js", "../../../../../node_modules/.pnpm/echarts@5.5.0/node_modules/echarts/lib/coord/CoordinateSystem.js"],
4
- "sourcesContent": ["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\nvar GridModel = /** @class */function (_super) {\n __extends(GridModel, _super);\n function GridModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridModel.type = 'grid';\n GridModel.dependencies = ['xAxis', 'yAxis'];\n GridModel.layoutMode = 'box';\n GridModel.defaultOption = {\n show: false,\n // zlevel: 0,\n z: 0,\n left: '10%',\n top: 60,\n right: '10%',\n bottom: 70,\n // If grid size contain label\n containLabel: false,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 1,\n borderColor: '#ccc'\n };\n return GridModel;\n}(ComponentModel);\nexport default GridModel;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nvar CartesianAxisModel = /** @class */function (_super) {\n __extends(CartesianAxisModel, _super);\n function CartesianAxisModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CartesianAxisModel.prototype.getCoordSysModel = function () {\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n };\n CartesianAxisModel.type = 'cartesian2dAxis';\n return CartesianAxisModel;\n}(ComponentModel);\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar defaultOption = {\n show: true,\n // zlevel: 0,\n z: 0,\n // Inverse the axis.\n inverse: false,\n // Axis name displayed.\n name: '',\n // 'start' | 'middle' | 'end'\n nameLocation: 'end',\n // By degree. By default auto rotate by nameLocation.\n nameRotate: null,\n nameTruncate: {\n maxWidth: null,\n ellipsis: '...',\n placeholder: '.'\n },\n // Use global text style by default.\n nameTextStyle: {},\n // The gap between axisName and axisLine.\n nameGap: 15,\n // Default `false` to support tooltip.\n silent: false,\n // Default `false` to avoid legacy user event listener fail.\n triggerEvent: false,\n tooltip: {\n show: false\n },\n axisPointer: {},\n axisLine: {\n show: true,\n onZero: true,\n onZeroAxisIndex: null,\n lineStyle: {\n color: '#6E7079',\n width: 1,\n type: 'solid'\n },\n // The arrow at both ends the the axis.\n symbol: ['none', 'none'],\n symbolSize: [10, 15]\n },\n axisTick: {\n show: true,\n // Whether axisTick is inside the grid or outside the grid.\n inside: false,\n // The length of axisTick.\n length: 5,\n lineStyle: {\n width: 1\n }\n },\n axisLabel: {\n show: true,\n // Whether axisLabel is inside the grid or outside the grid.\n inside: false,\n rotate: 0,\n // true | false | null/undefined (auto)\n showMinLabel: null,\n // true | false | null/undefined (auto)\n showMaxLabel: null,\n margin: 8,\n // formatter: null,\n fontSize: 12\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: ['#E0E6F1'],\n width: 1,\n type: 'solid'\n }\n },\n splitArea: {\n show: false,\n areaStyle: {\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n }\n }\n};\nvar categoryAxis = zrUtil.merge({\n // The gap at both ends of the axis. For categoryAxis, boolean.\n boundaryGap: true,\n // Set false to faster category collection.\n deduplication: null,\n // splitArea: {\n // show: false\n // },\n splitLine: {\n show: false\n },\n axisTick: {\n // If tick is align with label when boundaryGap is true\n alignWithLabel: false,\n interval: 'auto'\n },\n axisLabel: {\n interval: 'auto'\n }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n boundaryGap: [0, 0],\n axisLine: {\n // Not shown when other axis is categoryAxis in cartesian\n show: 'auto'\n },\n axisTick: {\n // Not shown when other axis is categoryAxis in cartesian\n show: 'auto'\n },\n // TODO\n // min/max: [30, datamin, 60] or [20, datamin] or [datamin, 60]\n splitNumber: 5,\n minorTick: {\n // Minor tick, not available for cateogry axis.\n show: false,\n // Split number of minor ticks. The value should be in range of (0, 100)\n splitNumber: 5,\n // Length of minor tick\n length: 3,\n // Line style\n lineStyle: {\n // Default to be same with axisTick\n }\n },\n minorSplitLine: {\n show: false,\n lineStyle: {\n color: '#F4F7FD',\n width: 1\n }\n }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n splitNumber: 6,\n axisLabel: {\n // To eliminate labels that are not nice\n showMinLabel: false,\n showMaxLabel: false,\n rich: {\n primary: {\n fontWeight: 'bold'\n }\n }\n },\n splitLine: {\n show: false\n }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n logBase: 10\n}, valueAxis);\nexport default {\n category: categoryAxis,\n value: valueAxis,\n time: timeAxis,\n log: logAxis\n};", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport var AXIS_TYPES = {\n value: 1,\n category: 1,\n time: 1,\n log: 1\n};", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault.js';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout.js';\nimport OrdinalMeta from '../data/OrdinalMeta.js';\nimport { AXIS_TYPES } from './axisCommonTypes.js';\nimport { each, merge } from 'zrender/lib/core/util.js';\n/**\n * Generate sub axis model class\n * @param axisName 'x' 'y' 'radius' 'angle' 'parallel' ...\n */\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n each(AXIS_TYPES, function (v, axisType) {\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n var AxisModel = /** @class */function (_super) {\n __extends(AxisModel, _super);\n function AxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = axisName + 'Axis.' + axisType;\n return _this;\n }\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n merge(option, themeModel.get(axisType + 'Axis'));\n merge(option, this.getDefaultOption());\n option.type = getAxisType(option);\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n AxisModel.prototype.optionUpdated = function () {\n var thisOption = this.option;\n if (thisOption.type === 'category') {\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n }\n };\n /**\n * Should not be called before all of 'getInitailData' finished.\n * Because categories are collected during initializing data.\n */\n AxisModel.prototype.getCategories = function (rawData) {\n var option = this.option;\n // FIXME\n // warning if called before all of 'getInitailData' finished.\n if (option.type === 'category') {\n if (rawData) {\n return option.data;\n }\n return this.__ordinalMeta.categories;\n }\n };\n AxisModel.prototype.getOrdinalMeta = function () {\n return this.__ordinalMeta;\n };\n AxisModel.type = axisName + 'Axis.' + axisType;\n AxisModel.defaultOption = defaultOption;\n return AxisModel;\n }(BaseAxisModelClass);\n registers.registerComponentModel(AxisModel);\n });\n registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\nfunction getAxisType(option) {\n // Default axis with data is category axis\n return option.type || (option.data ? 'category' : 'value');\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar Cartesian = /** @class */function () {\n function Cartesian(name) {\n this.type = 'cartesian';\n this._dimList = [];\n this._axes = {};\n this.name = name || '';\n }\n Cartesian.prototype.getAxis = function (dim) {\n return this._axes[dim];\n };\n Cartesian.prototype.getAxes = function () {\n return zrUtil.map(this._dimList, function (dim) {\n return this._axes[dim];\n }, this);\n };\n Cartesian.prototype.getAxesByScale = function (scaleType) {\n scaleType = scaleType.toLowerCase();\n return zrUtil.filter(this.getAxes(), function (axis) {\n return axis.scale.type === scaleType;\n });\n };\n Cartesian.prototype.addAxis = function (axis) {\n var dim = axis.dim;\n this._axes[dim] = axis;\n this._dimList.push(dim);\n };\n return Cartesian;\n}();\n;\nexport default Cartesian;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport Cartesian from './Cartesian.js';\nimport { invert } from 'zrender/lib/core/matrix.js';\nimport { applyTransform } from 'zrender/lib/core/vector.js';\nexport var cartesian2DDimensions = ['x', 'y'];\nfunction canCalculateAffineTransform(scale) {\n return scale.type === 'interval' || scale.type === 'time';\n}\nvar Cartesian2D = /** @class */function (_super) {\n __extends(Cartesian2D, _super);\n function Cartesian2D() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'cartesian2d';\n _this.dimensions = cartesian2DDimensions;\n return _this;\n }\n /**\n * Calculate an affine transform matrix if two axes are time or value.\n * It's mainly for accelartion on the large time series data.\n */\n Cartesian2D.prototype.calcAffineTransform = function () {\n this._transform = this._invTransform = null;\n var xAxisScale = this.getAxis('x').scale;\n var yAxisScale = this.getAxis('y').scale;\n if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n return;\n }\n var xScaleExtent = xAxisScale.getExtent();\n var yScaleExtent = yAxisScale.getExtent();\n var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n if (!xScaleSpan || !yScaleSpan) {\n return;\n }\n // Accelerate data to point calculation on the special large time series data.\n var scaleX = (end[0] - start[0]) / xScaleSpan;\n var scaleY = (end[1] - start[1]) / yScaleSpan;\n var translateX = start[0] - xScaleExtent[0] * scaleX;\n var translateY = start[1] - yScaleExtent[0] * scaleY;\n var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n this._invTransform = invert([], m);\n };\n /**\n * Base axis will be used on stacking.\n */\n Cartesian2D.prototype.getBaseAxis = function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n };\n Cartesian2D.prototype.containPoint = function (point) {\n var axisX = this.getAxis('x');\n var axisY = this.getAxis('y');\n return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n };\n Cartesian2D.prototype.containData = function (data) {\n return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n };\n Cartesian2D.prototype.containZone = function (data1, data2) {\n var zoneDiag1 = this.dataToPoint(data1);\n var zoneDiag2 = this.dataToPoint(data2);\n var area = this.getArea();\n var zone = new BoundingRect(zoneDiag1[0], zoneDiag1[1], zoneDiag2[0] - zoneDiag1[0], zoneDiag2[1] - zoneDiag1[1]);\n return area.intersect(zone);\n };\n Cartesian2D.prototype.dataToPoint = function (data, clamp, out) {\n out = out || [];\n var xVal = data[0];\n var yVal = data[1];\n // Fast path\n if (this._transform\n // It's supported that if data is like `[Inifity, 123]`, where only Y pixel calculated.\n && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n return applyTransform(out, data, this._transform);\n }\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal, clamp));\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal, clamp));\n return out;\n };\n Cartesian2D.prototype.clampData = function (data, out) {\n var xScale = this.getAxis('x').scale;\n var yScale = this.getAxis('y').scale;\n var xAxisExtent = xScale.getExtent();\n var yAxisExtent = yScale.getExtent();\n var x = xScale.parse(data[0]);\n var y = yScale.parse(data[1]);\n out = out || [];\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n return out;\n };\n Cartesian2D.prototype.pointToData = function (point, clamp) {\n var out = [];\n if (this._invTransform) {\n return applyTransform(out, point, this._invTransform);\n }\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]), clamp);\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]), clamp);\n return out;\n };\n Cartesian2D.prototype.getOtherAxis = function (axis) {\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n };\n /**\n * Get rect area of cartesian.\n * Area will have a contain function to determine if a point is in the coordinate system.\n */\n Cartesian2D.prototype.getArea = function (tolerance) {\n tolerance = tolerance || 0;\n var xExtent = this.getAxis('x').getGlobalExtent();\n var yExtent = this.getAxis('y').getGlobalExtent();\n var x = Math.min(xExtent[0], xExtent[1]) - tolerance;\n var y = Math.min(yExtent[0], yExtent[1]) - tolerance;\n var width = Math.max(xExtent[0], xExtent[1]) - x + tolerance;\n var height = Math.max(yExtent[0], yExtent[1]) - y + tolerance;\n return new BoundingRect(x, y, width, height);\n };\n return Cartesian2D;\n}(Cartesian);\n;\nexport default Cartesian2D;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\nvar Axis2D = /** @class */function (_super) {\n __extends(Axis2D, _super);\n function Axis2D(dim, scale, coordExtent, axisType, position) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n /**\n * Index of axis, can be used as key\n * Injected outside.\n */\n _this.index = 0;\n _this.type = axisType || 'value';\n _this.position = position || 'bottom';\n return _this;\n }\n Axis2D.prototype.isHorizontal = function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n };\n /**\n * Each item cooresponds to this.getExtent(), which\n * means globalExtent[0] may greater than globalExtent[1],\n * unless `asc` is input.\n *\n * @param {boolean} [asc]\n * @return {Array.<number>}\n */\n Axis2D.prototype.getGlobalExtent = function (asc) {\n var ret = this.getExtent();\n ret[0] = this.toGlobalCoord(ret[0]);\n ret[1] = this.toGlobalCoord(ret[1]);\n asc && ret[0] > ret[1] && ret.reverse();\n return ret;\n };\n Axis2D.prototype.pointToData = function (point, clamp) {\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n };\n /**\n * Set ordinalSortInfo\n * @param info new OrdinalSortInfo\n */\n Axis2D.prototype.setCategorySortInfo = function (info) {\n if (this.type !== 'category') {\n return false;\n }\n this.model.option.categorySortInfo = info;\n this.scale.setSortInfo(info);\n };\n return Axis2D;\n}(Axis);\nexport default Axis2D;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n/**\n * Can only be called after coordinate system creation stage.\n * (Can be called before coordinate system update stage).\n */\nexport function layout(gridModel, axisModel, opt) {\n opt = opt || {};\n var grid = gridModel.coordinateSystem;\n var axis = axisModel.axis;\n var layout = {};\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n var rawAxisPosition = axis.position;\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n var axisDim = axis.dim;\n var rect = grid.getRect();\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n var idx = {\n left: 0,\n right: 1,\n top: 0,\n bottom: 1,\n onZero: 2\n };\n var axisOffset = axisModel.get('offset') || 0;\n var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n if (otherAxisOnZeroOf) {\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n }\n // Axis position\n layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n // Axis rotation\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n // Tick and label direction, x y is axisDim\n var dirMap = {\n top: -1,\n bottom: 1,\n left: -1,\n right: 1\n };\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n if (axisModel.get(['axisTick', 'inside'])) {\n layout.tickDirection = -layout.tickDirection;\n }\n if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n layout.labelDirection = -layout.labelDirection;\n }\n // Special label rotation\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n // Over splitLine and splitArea\n layout.z2 = 1;\n return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n var axisModelMap = {\n xAxisModel: null,\n yAxisModel: null\n };\n zrUtil.each(axisModelMap, function (v, key) {\n var axisType = key.replace(/Model$/, '');\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n if (process.env.NODE_ENV !== 'production') {\n if (!axisModel) {\n throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n }\n }\n axisModelMap[key] = axisModel;\n });\n return axisModelMap;\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getPrecisionSafe, round } from '../util/number.js';\nimport IntervalScale from '../scale/Interval.js';\nimport { getScaleExtent } from './axisHelper.js';\nimport { warn } from '../util/log.js';\nimport { increaseInterval, isValueNice } from '../scale/helper.js';\nvar mathLog = Math.log;\nexport function alignScaleTicks(scale, axisModel, alignToScale) {\n var intervalScaleProto = IntervalScale.prototype;\n // NOTE: There is a precondition for log scale here:\n // In log scale we store _interval and _extent of exponent value.\n // So if we use the method of InternalScale to set/get these data.\n // It process the exponent value, which is linear and what we want here.\n var alignToTicks = intervalScaleProto.getTicks.call(alignToScale);\n var alignToNicedTicks = intervalScaleProto.getTicks.call(alignToScale, true);\n var alignToSplitNumber = alignToTicks.length - 1;\n var alignToInterval = intervalScaleProto.getInterval.call(alignToScale);\n var scaleExtent = getScaleExtent(scale, axisModel);\n var rawExtent = scaleExtent.extent;\n var isMinFixed = scaleExtent.fixMin;\n var isMaxFixed = scaleExtent.fixMax;\n if (scale.type === 'log') {\n var logBase = mathLog(scale.base);\n rawExtent = [mathLog(rawExtent[0]) / logBase, mathLog(rawExtent[1]) / logBase];\n }\n scale.setExtent(rawExtent[0], rawExtent[1]);\n scale.calcNiceExtent({\n splitNumber: alignToSplitNumber,\n fixMin: isMinFixed,\n fixMax: isMaxFixed\n });\n var extent = intervalScaleProto.getExtent.call(scale);\n // Need to update the rawExtent.\n // Because value in rawExtent may be not parsed. e.g. 'dataMin', 'dataMax'\n if (isMinFixed) {\n rawExtent[0] = extent[0];\n }\n if (isMaxFixed) {\n rawExtent[1] = extent[1];\n }\n var interval = intervalScaleProto.getInterval.call(scale);\n var min = rawExtent[0];\n var max = rawExtent[1];\n if (isMinFixed && isMaxFixed) {\n // User set min, max, divide to get new interval\n interval = (max - min) / alignToSplitNumber;\n } else if (isMinFixed) {\n max = rawExtent[0] + interval * alignToSplitNumber;\n // User set min, expand extent on the other side\n while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1])) {\n interval = increaseInterval(interval);\n max = rawExtent[0] + interval * alignToSplitNumber;\n }\n } else if (isMaxFixed) {\n // User set max, expand extent on the other side\n min = rawExtent[1] - interval * alignToSplitNumber;\n while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0])) {\n interval = increaseInterval(interval);\n min = rawExtent[1] - interval * alignToSplitNumber;\n }\n } else {\n var nicedSplitNumber = scale.getTicks().length - 1;\n if (nicedSplitNumber > alignToSplitNumber) {\n interval = increaseInterval(interval);\n }\n var range = interval * alignToSplitNumber;\n max = Math.ceil(rawExtent[1] / interval) * interval;\n min = round(max - range);\n // Not change the result that crossing zero.\n if (min < 0 && rawExtent[0] >= 0) {\n min = 0;\n max = round(range);\n } else if (max > 0 && rawExtent[1] <= 0) {\n max = 0;\n min = -round(range);\n }\n }\n // Adjust min, max based on the extent of alignTo. When min or max is set in alignTo scale\n var t0 = (alignToTicks[0].value - alignToNicedTicks[0].value) / alignToInterval;\n var t1 = (alignToTicks[alignToSplitNumber].value - alignToNicedTicks[alignToSplitNumber].value) / alignToInterval;\n // NOTE: Must in setExtent -> setInterval -> setNiceExtent order.\n intervalScaleProto.setExtent.call(scale, min + interval * t0, max + interval * t1);\n intervalScaleProto.setInterval.call(scale, interval);\n if (t0 || t1) {\n intervalScaleProto.setNiceExtent.call(scale, min + interval, max - interval);\n }\n if (process.env.NODE_ENV !== 'production') {\n var ticks = intervalScaleProto.getTicks.call(scale);\n if (ticks[1] && (!isValueNice(interval) || getPrecisionSafe(ticks[1].value) > getPrecisionSafe(interval))) {\n warn(\n // eslint-disable-next-line\n \"The ticks may be not readable when set min: \" + axisModel.get('min') + \", max: \" + axisModel.get('max') + \" and alignTicks: true\");\n }\n }\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n/**\n * Grid is a region which contains at most 4 cartesian systems\n *\n * TODO Default cartesian\n */\nimport { isObject, each, indexOf, retrieve3, keys } from 'zrender/lib/core/util.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper.js';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D.js';\nimport Axis2D from './Axis2D.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper.js';\nimport { isIntervalOrLogScale } from '../../scale/helper.js';\nimport { alignScaleTicks } from '../axisAlignTicks.js';\nvar Grid = /** @class */function () {\n function Grid(gridModel, ecModel, api) {\n // FIXME:TS where used (different from registered type 'cartesian2d')?\n this.type = 'grid';\n this._coordsMap = {};\n this._coordsList = [];\n this._axesMap = {};\n this._axesList = [];\n this.axisPointerEnabled = true;\n this.dimensions = cartesian2DDimensions;\n this._initCartesian(gridModel, ecModel, api);\n this.model = gridModel;\n }\n Grid.prototype.getRect = function () {\n return this._rect;\n };\n Grid.prototype.update = function (ecModel, api) {\n var axesMap = this._axesMap;\n this._updateScale(ecModel, this.model);\n function updateAxisTicks(axes) {\n var alignTo;\n // Axis is added in order of axisIndex.\n var axesIndices = keys(axes);\n var len = axesIndices.length;\n if (!len) {\n return;\n }\n var axisNeedsAlign = [];\n // Process once and calculate the ticks for those don't use alignTicks.\n for (var i = len - 1; i >= 0; i--) {\n var idx = +axesIndices[i]; // Convert to number.\n var axis = axes[idx];\n var model = axis.model;\n var scale = axis.scale;\n if (\n // Only value and log axis without interval support alignTicks.\n isIntervalOrLogScale(scale) && model.get('alignTicks') && model.get('interval') == null) {\n axisNeedsAlign.push(axis);\n } else {\n niceScaleExtent(scale, model);\n if (isIntervalOrLogScale(scale)) {\n // Can only align to interval or log axis.\n alignTo = axis;\n }\n }\n }\n ;\n // All axes has set alignTicks. Pick the first one.\n // PENDING. Should we find the axis that both set interval, min, max and align to this one?\n if (axisNeedsAlign.length) {\n if (!alignTo) {\n alignTo = axisNeedsAlign.pop();\n niceScaleExtent(alignTo.scale, alignTo.model);\n }\n each(axisNeedsAlign, function (axis) {\n alignScaleTicks(axis.scale, axis.model, alignTo.scale);\n });\n }\n }\n updateAxisTicks(axesMap.x);\n updateAxisTicks(axesMap.y);\n // Key: axisDim_axisIndex, value: boolean, whether onZero target.\n var onZeroRecords = {};\n each(axesMap.x, function (xAxis) {\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n });\n each(axesMap.y, function (yAxis) {\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n });\n // Resize again if containLabel is enabled\n // FIXME It may cause getting wrong grid size in data processing stage\n this.resize(this.model, api);\n };\n /**\n * Resize the grid\n */\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n var boxLayoutParams = gridModel.getBoxLayoutParams();\n var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n var gridRect = getLayoutRect(boxLayoutParams, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n this._rect = gridRect;\n var axesList = this._axesList;\n adjustAxes();\n // Minus label size\n if (isContainLabel) {\n each(axesList, function (axis) {\n if (!axis.model.get(['axisLabel', 'inside'])) {\n var labelUnionRect = estimateLabelUnionRect(axis);\n if (labelUnionRect) {\n var dim = axis.isHorizontal() ? 'height' : 'width';\n var margin = axis.model.get(['axisLabel', 'margin']);\n gridRect[dim] -= labelUnionRect[dim] + margin;\n if (axis.position === 'top') {\n gridRect.y += labelUnionRect.height + margin;\n } else if (axis.position === 'left') {\n gridRect.x += labelUnionRect.width + margin;\n }\n }\n }\n });\n adjustAxes();\n }\n each(this._coordsList, function (coord) {\n // Calculate affine matrix to accelerate the data to point transform.\n // If all the axes scales are time or value.\n coord.calcAffineTransform();\n });\n function adjustAxes() {\n each(axesList, function (axis) {\n var isHorizontal = axis.isHorizontal();\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(extent[idx], extent[1 - idx]);\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n });\n }\n };\n Grid.prototype.getAxis = function (dim, axisIndex) {\n var axesMapOnDim = this._axesMap[dim];\n if (axesMapOnDim != null) {\n return axesMapOnDim[axisIndex || 0];\n }\n };\n Grid.prototype.getAxes = function () {\n return this._axesList.slice();\n };\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n if (xAxisIndex != null && yAxisIndex != null) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n return this._coordsMap[key];\n }\n if (isObject(xAxisIndex)) {\n yAxisIndex = xAxisIndex.yAxisIndex;\n xAxisIndex = xAxisIndex.xAxisIndex;\n }\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n return coordList[i];\n }\n }\n };\n Grid.prototype.getCartesians = function () {\n return this._coordsList.slice();\n };\n /**\n * @implements\n */\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n };\n /**\n * @implements\n */\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n };\n Grid.prototype._findConvertTarget = function (finder) {\n var seriesModel = finder.seriesModel;\n var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n var gridModel = finder.gridModel;\n var coordsList = this._coordsList;\n var cartesian;\n var axis;\n if (seriesModel) {\n cartesian = seriesModel.coordinateSystem;\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n } else if (xAxisModel && yAxisModel) {\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n } else if (xAxisModel) {\n axis = this.getAxis('x', xAxisModel.componentIndex);\n } else if (yAxisModel) {\n axis = this.getAxis('y', yAxisModel.componentIndex);\n }\n // Lowest priority.\n else if (gridModel) {\n var grid = gridModel.coordinateSystem;\n if (grid === this) {\n cartesian = this._coordsList[0];\n }\n }\n return {\n cartesian: cartesian,\n axis: axis\n };\n };\n /**\n * @implements\n */\n Grid.prototype.containPoint = function (point) {\n var coord = this._coordsList[0];\n if (coord) {\n return coord.containPoint(point);\n }\n };\n /**\n * Initialize cartesian coordinate systems\n */\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n var _this = this;\n var grid = this;\n var axisPositionUsed = {\n left: false,\n right: false,\n top: false,\n bottom: false\n };\n var axesMap = {\n x: {},\n y: {}\n };\n var axesCount = {\n x: 0,\n y: 0\n };\n // Create axis\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n if (!axesCount.x || !axesCount.y) {\n // Roll back when there no either x or y axis\n this._axesMap = {};\n this._axesList = [];\n return;\n }\n this._axesMap = axesMap;\n // Create cartesian2d\n each(axesMap.x, function (xAxis, xAxisIndex) {\n each(axesMap.y, function (yAxis, yAxisIndex) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n var cartesian = new Cartesian2D(key);\n cartesian.master = _this;\n cartesian.model = gridModel;\n _this._coordsMap[key] = cartesian;\n _this._coordsList.push(cartesian);\n cartesian.addAxis(xAxis);\n cartesian.addAxis(yAxis);\n });\n });\n function createAxisCreator(dimName) {\n return function (axisModel, idx) {\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n return;\n }\n var axisPosition = axisModel.get('position');\n if (dimName === 'x') {\n // Fix position\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n // Default bottom of X\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n }\n } else {\n // Fix position\n if (axisPosition !== 'left' && axisPosition !== 'right') {\n // Default left of Y\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\n }\n }\n axisPositionUsed[axisPosition] = true;\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse');\n // Inject axis into axisModel\n axisModel.axis = axis;\n // Inject axisModel into axis\n axis.model = axisModel;\n // Inject grid info axis\n axis.grid = grid;\n // Index of axis, can be used as key\n axis.index = idx;\n grid._axesList.push(axis);\n axesMap[dimName][idx] = axis;\n axesCount[dimName]++;\n };\n }\n };\n /**\n * Update cartesian properties from series.\n */\n Grid.prototype._updateScale = function (ecModel, gridModel) {\n // Reset scale\n each(this._axesList, function (axis) {\n axis.scale.setExtent(Infinity, -Infinity);\n if (axis.type === 'category') {\n var categorySortInfo = axis.model.get('categorySortInfo');\n axis.scale.setSortInfo(categorySortInfo);\n }\n });\n ecModel.eachSeries(function (seriesModel) {\n if (isCartesian2DSeries(seriesModel)) {\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n return;\n }\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n var data = seriesModel.getData();\n var xAxis = cartesian.getAxis('x');\n var yAxis = cartesian.getAxis('y');\n unionExtent(data, xAxis);\n unionExtent(data, yAxis);\n }\n }, this);\n function unionExtent(data, axis) {\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n axis.scale.unionExtentFromData(data, dim);\n });\n }\n };\n /**\n * @param dim 'x' or 'y' or 'auto' or null/undefined\n */\n Grid.prototype.getTooltipAxes = function (dim) {\n var baseAxes = [];\n var otherAxes = [];\n each(this.getCartesians(), function (cartesian) {\n var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n var otherAxis = cartesian.getOtherAxis(baseAxis);\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n });\n return {\n baseAxes: baseAxes,\n otherAxes: otherAxes\n };\n };\n Grid.create = function (ecModel, api) {\n var grids = [];\n ecModel.eachComponent('grid', function (gridModel, idx) {\n var grid = new Grid(gridModel, ecModel, api);\n grid.name = 'grid_' + idx;\n // dataSampling requires axis extent, so resize\n // should be performed in create stage.\n grid.resize(gridModel, api, true);\n gridModel.coordinateSystem = grid;\n grids.push(grid);\n });\n // Inject the coordinateSystems into seriesModel\n ecModel.eachSeries(function (seriesModel) {\n if (!isCartesian2DSeries(seriesModel)) {\n return;\n }\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n var gridModel = xAxisModel.getCoordSysModel();\n if (process.env.NODE_ENV !== 'production') {\n if (!gridModel) {\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n }\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n throw new Error('xAxis and yAxis must use the same grid');\n }\n }\n var grid = gridModel.coordinateSystem;\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n });\n return grids;\n };\n // For deciding which dimensions to use when creating list data\n Grid.dimensions = cartesian2DDimensions;\n return Grid;\n}();\n/**\n * Check if the axis is used in the specified grid.\n */\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n return axisModel.getCoordSysModel() === gridModel;\n}\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis,\n// Key: see `getOnZeroRecordKey`\nonZeroRecords) {\n axis.getAxesOnZeroOf = function () {\n // TODO: onZero of multiple axes.\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n };\n // onZero can not be enabled in these two situations:\n // 1. When any other axis is a category axis.\n // 2. When no axis is cross 0 point.\n var otherAxes = axesMap[otherAxisDim];\n var otherAxisOnZeroOf;\n var axisModel = axis.model;\n var onZero = axisModel.get(['axisLine', 'onZero']);\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n if (!onZero) {\n return;\n }\n // If target axis is specified.\n if (onZeroAxisIndex != null) {\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n }\n } else {\n // Find the first available other axis.\n for (var idx in otherAxes) {\n if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx])\n // Consider that two Y axes on one value axis,\n // if both onZero, the two Y axes overlap.\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n otherAxisOnZeroOf = otherAxes[idx];\n break;\n }\n }\n }\n if (otherAxisOnZeroOf) {\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n }\n function getOnZeroRecordKey(axis) {\n return axis.dim + '_' + axis.index;\n }\n}\nfunction canOnZeroToAxis(axis) {\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\nfunction updateAxisTransform(axis, coordBase) {\n var axisExtent = axis.getExtent();\n var axisExtentSum = axisExtent[0] + axisExtent[1];\n // Fast transform\n axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n return coord + coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n return coord - coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n}\nexport default Grid;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { retrieve, defaults, extend, each, isObject, map, isString, isNumber, isFunction, retrieve2 } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport Model from '../../model/Model.js';\nimport { isRadianAroundZero, remRadian } from '../../util/number.js';\nimport { createSymbol, normalizeSymbolOffset } from '../../util/symbol.js';\nimport * as matrixUtil from 'zrender/lib/core/matrix.js';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector.js';\nimport { shouldShowAllLabels } from '../../coord/axisHelper.js';\nimport { prepareLayoutList, hideOverlap } from '../../label/labelLayoutHelper.js';\nvar PI = Math.PI;\n/**\n * A final axis is translated and rotated from a \"standard axis\".\n * So opt.position and opt.rotation is required.\n *\n * A standard axis is and axis from [0, 0] to [0, axisExtent[1]],\n * for example: (0, 0) ------------> (0, 50)\n *\n * nameDirection or tickDirection or labelDirection is 1 means tick\n * or label is below the standard axis, whereas is -1 means above\n * the standard axis. labelOffset means offset between label and axis,\n * which is useful when 'onZero', where axisLabel is in the grid and\n * label in outside grid.\n *\n * Tips: like always,\n * positive rotation represents anticlockwise, and negative rotation\n * represents clockwise.\n * The direction of position coordinate is the same as the direction\n * of screen coordinate.\n *\n * Do not need to consider axis 'inverse', which is auto processed by\n * axis extent.\n */\nvar AxisBuilder = /** @class */function () {\n function AxisBuilder(axisModel, opt) {\n this.group = new graphic.Group();\n this.opt = opt;\n this.axisModel = axisModel;\n // Default value\n defaults(opt, {\n labelOffset: 0,\n nameDirection: 1,\n tickDirection: 1,\n labelDirection: 1,\n silent: true,\n handleAutoShown: function () {\n return true;\n }\n });\n // FIXME Not use a separate text group?\n var transformGroup = new graphic.Group({\n x: opt.position[0],\n y: opt.position[1],\n rotation: opt.rotation\n });\n // this.group.add(transformGroup);\n // this._transformGroup = transformGroup;\n transformGroup.updateTransform();\n this._transformGroup = transformGroup;\n }\n AxisBuilder.prototype.hasBuilder = function (name) {\n return !!builders[name];\n };\n AxisBuilder.prototype.add = function (name) {\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n };\n AxisBuilder.prototype.getGroup = function () {\n return this.group;\n };\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n var rotationDiff = remRadian(textRotation - axisRotation);\n var textAlign;\n var textVerticalAlign;\n if (isRadianAroundZero(rotationDiff)) {\n // Label is parallel with axis line.\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI)) {\n // Label is inverse parallel with axis line.\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n if (rotationDiff > 0 && rotationDiff < PI) {\n textAlign = direction > 0 ? 'right' : 'left';\n } else {\n textAlign = direction > 0 ? 'left' : 'right';\n }\n }\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n };\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n var eventData = {\n componentType: axisModel.mainType,\n componentIndex: axisModel.componentIndex\n };\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n return eventData;\n };\n AxisBuilder.isLabelSilent = function (axisModel) {\n var tooltipOpt = axisModel.get('tooltip');\n return axisModel.get('silent')\n // Consider mouse cursor, add these restrictions.\n || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n };\n return AxisBuilder;\n}();\n;\nvar builders = {\n axisLine: function (opt, axisModel, group, transformGroup) {\n var shown = axisModel.get(['axisLine', 'show']);\n if (shown === 'auto' && opt.handleAutoShown) {\n shown = opt.handleAutoShown('axisLine');\n }\n if (!shown) {\n return;\n }\n var extent = axisModel.axis.getExtent();\n var matrix = transformGroup.transform;\n var pt1 = [extent[0], 0];\n var pt2 = [extent[1], 0];\n var inverse = pt1[0] > pt2[0];\n if (matrix) {\n v2ApplyTransform(pt1, pt1, matrix);\n v2ApplyTransform(pt2, pt2, matrix);\n }\n var lineStyle = extend({\n lineCap: 'round'\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n var line = new graphic.Line({\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: lineStyle,\n strokeContainThreshold: opt.strokeContainThreshold || 5,\n silent: true,\n z2: 1\n });\n graphic.subPixelOptimizeLine(line.shape, line.style.lineWidth);\n line.anid = 'line';\n group.add(line);\n var arrows = axisModel.get(['axisLine', 'symbol']);\n if (arrows != null) {\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n if (isString(arrows)) {\n // Use the same arrow for start and end point\n arrows = [arrows, arrows];\n }\n if (isString(arrowSize) || isNumber(arrowSize)) {\n // Use the same size for width and height\n arrowSize = [arrowSize, arrowSize];\n }\n var arrowOffset = normalizeSymbolOffset(axisModel.get(['axisLine', 'symbolOffset']) || 0, arrowSize);\n var symbolWidth_1 = arrowSize[0];\n var symbolHeight_1 = arrowSize[1];\n each([{\n rotate: opt.rotation + Math.PI / 2,\n offset: arrowOffset[0],\n r: 0\n }, {\n rotate: opt.rotation - Math.PI / 2,\n offset: arrowOffset[1],\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n }], function (point, index) {\n if (arrows[index] !== 'none' && arrows[index] != null) {\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n // Calculate arrow position with offset\n var r = point.r + point.offset;\n var pt = inverse ? pt2 : pt1;\n symbol.attr({\n rotation: point.rotate,\n x: pt[0] + r * Math.cos(opt.rotation),\n y: pt[1] - r * Math.sin(opt.rotation),\n silent: true,\n z2: 11\n });\n group.add(symbol);\n }\n });\n }\n },\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n // This bit fixes the label overlap issue for the time chart.\n // See https://github.com/apache/echarts/issues/14266 for more.\n if (axisModel.get(['axisLabel', 'hideOverlap'])) {\n var labelList = prepareLayoutList(map(labelEls, function (label) {\n return {\n label: label,\n priority: label.z2,\n defaultAttr: {\n ignore: label.ignore\n }\n };\n }));\n hideOverlap(labelList);\n }\n },\n axisName: function (opt, axisModel, group, transformGroup) {\n var name = retrieve(opt.axisName, axisModel.get('name'));\n if (!name) {\n return;\n }\n var nameLocation = axisModel.get('nameLocation');\n var nameDirection = opt.nameDirection;\n var textStyleModel = axisModel.getModel('nameTextStyle');\n var gap = axisModel.get('nameGap') || 0;\n var extent = axisModel.axis.getExtent();\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\n var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2,\n // Reuse labelOffset.\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n var labelLayout;\n var nameRotation = axisModel.get('nameRotate');\n if (nameRotation != null) {\n nameRotation = nameRotation * PI / 180; // To radian.\n }\n\n var axisNameAvailableWidth;\n if (isNameLocationCenter(nameLocation)) {\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation,\n // Adapt to axis.\n nameDirection);\n } else {\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\n if (axisNameAvailableWidth != null) {\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n }\n }\n var textFont = textStyleModel.getFont();\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\n var ellipsis = truncateOpt.ellipsis;\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n var textEl = new graphic.Text({\n x: pos[0],\n y: pos[1],\n rotation: labelLayout.rotation,\n silent: AxisBuilder.isLabelSilent(axisModel),\n style: createTextStyle(textStyleModel, {\n text: name,\n font: textFont,\n overflow: 'truncate',\n width: maxWidth,\n ellipsis: ellipsis,\n fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n align: textStyleModel.get('align') || labelLayout.textAlign,\n verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n }),\n z2: 1\n });\n graphic.setTooltipConfig({\n el: textEl,\n componentModel: axisModel,\n itemName: name\n });\n textEl.__fullText = name;\n // Id for animation\n textEl.anid = 'name';\n if (axisModel.get('triggerEvent')) {\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n eventData.targetType = 'axisName';\n eventData.name = name;\n getECData(textEl).eventData = eventData;\n }\n // FIXME\n transformGroup.add(textEl);\n textEl.updateTransform();\n group.add(textEl);\n textEl.decomposeTransform();\n }\n};\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n var rotationDiff = remRadian(textRotate - rotation);\n var textAlign;\n var textVerticalAlign;\n var inverse = extent[0] > extent[1];\n var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n if (isRadianAroundZero(rotationDiff - PI / 2)) {\n textVerticalAlign = onLeft ? 'bottom' : 'top';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n textVerticalAlign = onLeft ? 'top' : 'bottom';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n textAlign = onLeft ? 'left' : 'right';\n } else {\n textAlign = onLeft ? 'right' : 'left';\n }\n }\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n}\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n if (shouldShowAllLabels(axisModel.axis)) {\n return;\n }\n // If min or max are user set, we need to check\n // If the tick on min(max) are overlap on their neighbour tick\n // If they are overlapped, we need to hide the min(max) tick label\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n // FIXME\n // Have not consider onBand yet, where tick els is more than label els.\n labelEls = labelEls || [];\n tickEls = tickEls || [];\n var firstLabel = labelEls[0];\n var nextLabel = labelEls[1];\n var lastLabel = labelEls[labelEls.length - 1];\n var prevLabel = labelEls[labelEls.length - 2];\n var firstTick = tickEls[0];\n var nextTick = tickEls[1];\n var lastTick = tickEls[tickEls.length - 1];\n var prevTick = tickEls[tickEls.length - 2];\n if (showMinLabel === false) {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n if (showMinLabel) {\n ignoreEl(nextLabel);\n ignoreEl(nextTick);\n } else {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n }\n }\n if (showMaxLabel === false) {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n if (showMaxLabel) {\n ignoreEl(prevLabel);\n ignoreEl(prevTick);\n } else {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n }\n }\n}\nfunction ignoreEl(el) {\n el && (el.ignore = true);\n}\nfunction isTwoLabelOverlapped(current, next) {\n // current and next has the same rotation.\n var firstRect = current && current.getBoundingRect().clone();\n var nextRect = next && next.getBoundingRect().clone();\n if (!firstRect || !nextRect) {\n return;\n }\n // When checking intersect of two rotated labels, we use mRotationBack\n // to avoid that boundingRect is enlarge when using `boundingRect.applyTransform`.\n var mRotationBack = matrixUtil.identity([]);\n matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n return firstRect.intersect(nextRect);\n}\nfunction isNameLocationCenter(nameLocation) {\n return nameLocation === 'middle' || nameLocation === 'center';\n}\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n var tickEls = [];\n var pt1 = [];\n var pt2 = [];\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = ticksCoords[i].coord;\n pt1[0] = tickCoord;\n pt1[1] = 0;\n pt2[0] = tickCoord;\n pt2[1] = tickEndCoord;\n if (tickTransform) {\n v2ApplyTransform(pt1, pt1, tickTransform);\n v2ApplyTransform(pt2, pt2, tickTransform);\n }\n // Tick line, Not use group transform to have better line draw\n var tickEl = new graphic.Line({\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: tickLineStyle,\n z2: 2,\n autoBatch: true,\n silent: true\n });\n graphic.subPixelOptimizeLine(tickEl.shape, tickEl.style.lineWidth);\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n tickEls.push(tickEl);\n }\n return tickEls;\n}\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n var axis = axisModel.axis;\n var tickModel = axisModel.getModel('axisTick');\n var shown = tickModel.get('show');\n if (shown === 'auto' && opt.handleAutoShown) {\n shown = opt.handleAutoShown('axisTick');\n }\n if (!shown || axis.scale.isBlank()) {\n return;\n }\n var lineStyleModel = tickModel.getModel('lineStyle');\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\n var ticksCoords = axis.getTicksCoords();\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n }), 'ticks');\n for (var i = 0; i < ticksEls.length; i++) {\n group.add(ticksEls[i]);\n }\n return ticksEls;\n}\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n var axis = axisModel.axis;\n var minorTickModel = axisModel.getModel('minorTick');\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n return;\n }\n var minorTicksCoords = axis.getMinorTicksCoords();\n if (!minorTicksCoords.length) {\n return;\n }\n var lineStyleModel = minorTickModel.getModel('lineStyle');\n var tickEndCoord = tickDirection * minorTickModel.get('length');\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n }));\n for (var i = 0; i < minorTicksCoords.length; i++) {\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n for (var k = 0; k < minorTicksEls.length; k++) {\n group.add(minorTicksEls[k]);\n }\n }\n}\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n var axis = axisModel.axis;\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n if (!show || axis.scale.isBlank()) {\n return;\n }\n var labelModel = axisModel.getModel('axisLabel');\n var labelMargin = labelModel.get('margin');\n var labels = axis.getViewLabels();\n // Special label rotate.\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n var labelEls = [];\n var silent = AxisBuilder.isLabelSilent(axisModel);\n var triggerEvent = axisModel.get('triggerEvent');\n each(labels, function (labelItem, index) {\n var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n var formattedLabel = labelItem.formattedLabel;\n var rawLabel = labelItem.rawLabel;\n var itemLabelModel = labelModel;\n if (rawCategoryData && rawCategoryData[tickValue]) {\n var rawCategoryItem = rawCategoryData[tickValue];\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n }\n }\n var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n var tickCoord = axis.dataToCoord(tickValue);\n var align = itemLabelModel.getShallow('align', true) || labelLayout.textAlign;\n var alignMin = retrieve2(itemLabelModel.getShallow('alignMinLabel', true), align);\n var alignMax = retrieve2(itemLabelModel.getShallow('alignMaxLabel', true), align);\n var verticalAlign = itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign;\n var verticalAlignMin = retrieve2(itemLabelModel.getShallow('verticalAlignMinLabel', true), verticalAlign);\n var verticalAlignMax = retrieve2(itemLabelModel.getShallow('verticalAlignMaxLabel', true), verticalAlign);\n var textEl = new graphic.Text({\n x: tickCoord,\n y: opt.labelOffset + opt.labelDirection * labelMargin,\n rotation: labelLayout.rotation,\n silent: silent,\n z2: 10 + (labelItem.level || 0),\n style: createTextStyle(itemLabelModel, {\n text: formattedLabel,\n align: index === 0 ? alignMin : index === labels.length - 1 ? alignMax : align,\n verticalAlign: index === 0 ? verticalAlignMin : index === labels.length - 1 ? verticalAlignMax : verticalAlign,\n fill: isFunction(textColor) ? textColor(\n // (1) In category axis with data zoom, tick is not the original\n // index of axis.data. So tick should not be exposed to user\n // in category axis.\n // (2) Compatible with previous version, which always use formatted label as\n // input. But in interval scale the formatted label is like '223,445', which\n // maked user replace ','. So we modify it to return original val but remain\n // it as 'string' to avoid error in replacing.\n axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n })\n });\n textEl.anid = 'label_' + tickValue;\n // Pack data for mouse event\n if (triggerEvent) {\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n eventData.targetType = 'axisLabel';\n eventData.value = rawLabel;\n eventData.tickIndex = index;\n if (axis.type === 'category') {\n eventData.dataIndex = tickValue;\n }\n getECData(textEl).eventData = eventData;\n }\n // FIXME\n transformGroup.add(textEl);\n textEl.updateTransform();\n labelEls.push(textEl);\n group.add(textEl);\n textEl.decomposeTransform();\n });\n return labelEls;\n}\nexport default AxisBuilder;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport Model from '../../model/Model.js';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util.js';\n// Build axisPointerModel, mergin tooltip.axisPointer model for each axis.\n// allAxesInfo should be updated when setOption performed.\nexport function collect(ecModel, api) {\n var result = {\n /**\n * key: makeKey(axis.model)\n * value: {\n * axis,\n * coordSys,\n * axisPointerModel,\n * triggerTooltip,\n * triggerEmphasis,\n * involveSeries,\n * snap,\n * seriesModels,\n * seriesDataCount\n * }\n */\n axesInfo: {},\n seriesInvolved: false,\n /**\n * key: makeKey(coordSys.model)\n * value: Object: key makeKey(axis.model), value: axisInfo\n */\n coordSysAxesInfo: {},\n coordSysMap: {}\n };\n collectAxesInfo(result, ecModel, api);\n // Check seriesInvolved for performance, in case too many series in some chart.\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\n return result;\n}\nfunction collectAxesInfo(result, ecModel, api) {\n var globalTooltipModel = ecModel.getComponent('tooltip');\n var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n // links can only be set on global.\n var linksOption = globalAxisPointerModel.get('link', true) || [];\n var linkGroups = [];\n // Collect axes info.\n each(api.getCoordinateSystems(), function (coordSys) {\n // Some coordinate system do not support axes, like geo.\n if (!coordSys.axisPointerEnabled) {\n return;\n }\n var coordSysKey = makeKey(coordSys.model);\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n result.coordSysMap[coordSysKey] = coordSys;\n // Set tooltip (like 'cross') is a convenient way to show axisPointer\n // for user. So we enable setting tooltip on coordSys model.\n var coordSysModel = coordSys.model;\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n // If axis tooltip used, choose tooltip axis for each coordSys.\n // Notice this case: coordSys is `grid` but not `cartesian2D` here.\n if (coordSys.getTooltipAxes && globalTooltipModel\n // If tooltip.showContent is set as false, tooltip will not\n // show but axisPointer will show as normal.\n && baseTooltipModel.get('show')) {\n // Compatible with previous logic. But series.tooltip.trigger: 'axis'\n // or series.data[n].tooltip.trigger: 'axis' are not support any more.\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n if (triggerAxis || cross) {\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n }\n if (cross) {\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n }\n }\n // fromTooltip: true | false | 'cross'\n // triggerTooltip: true | false | null\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n var axisPointerShow = axisPointerModel.get('show');\n if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n return;\n }\n if (triggerTooltip == null) {\n triggerTooltip = axisPointerModel.get('triggerTooltip');\n }\n axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n var snap = axisPointerModel.get('snap');\n var triggerEmphasis = axisPointerModel.get('triggerEmphasis');\n var axisKey = makeKey(axis.model);\n var involveSeries = triggerTooltip || snap || axis.type === 'category';\n // If result.axesInfo[key] exist, override it (tooltip has higher priority).\n var axisInfo = result.axesInfo[axisKey] = {\n key: axisKey,\n axis: axis,\n coordSys: coordSys,\n axisPointerModel: axisPointerModel,\n triggerTooltip: triggerTooltip,\n triggerEmphasis: triggerEmphasis,\n involveSeries: involveSeries,\n snap: snap,\n useHandle: isHandleTrigger(axisPointerModel),\n seriesModels: [],\n linkGroup: null\n };\n axesInfoInCoordSys[axisKey] = axisInfo;\n result.seriesInvolved = result.seriesInvolved || involveSeries;\n var groupIndex = getLinkGroupIndex(linksOption, axis);\n if (groupIndex != null) {\n var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n axesInfo: {}\n });\n linkGroup.axesInfo[axisKey] = axisInfo;\n linkGroup.mapper = linksOption[groupIndex].mapper;\n axisInfo.linkGroup = linkGroup;\n }\n }\n });\n}\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n var volatileOption = {};\n each(fields, function (field) {\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n });\n // category axis do not auto snap, otherwise some tick that do not\n // has value can not be hovered. value/time/log axis default snap if\n // triggered from tooltip and trigger tooltip.\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n // Compatible with previous behavior, tooltip axis does not show label by default.\n // Only these properties can be overridden from tooltip to axisPointer.\n if (tooltipAxisPointerModel.get('type') === 'cross') {\n volatileOption.type = 'line';\n }\n var labelOption = volatileOption.label || (volatileOption.label = {});\n // Follow the convention, do not show label when triggered by tooltip by default.\n labelOption.show == null && (labelOption.show = false);\n if (fromTooltip === 'cross') {\n // When 'cross', both axes show labels.\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n // If triggerTooltip, this is a base axis, which should better not use cross style\n // (cross style is dashed by default)\n if (!triggerTooltip) {\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n crossStyle && defaults(labelOption, crossStyle.textStyle);\n }\n }\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\nfunction collectSeriesInfo(result, ecModel) {\n // Prepare data for axis trigger\n ecModel.eachSeries(function (seriesModel) {\n // Notice this case: this coordSys is `cartesian2D` but not `grid`.\n var coordSys = seriesModel.coordinateSystem;\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n return;\n }\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n var axis = axisInfo.axis;\n if (coordSys.getAxis(axis.dim) === axis) {\n axisInfo.seriesModels.push(seriesModel);\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n axisInfo.seriesDataCount += seriesModel.getData().count();\n }\n });\n });\n}\n/**\n * For example:\n * {\n * axisPointer: {\n * links: [{\n * xAxisIndex: [2, 4],\n * yAxisIndex: 'all'\n * }, {\n * xAxisId: ['a5', 'a7'],\n * xAxisName: 'xxx'\n * }]\n * }\n * }\n */\nfunction getLinkGroupIndex(linksOption, axis) {\n var axisModel = axis.model;\n var dim = axis.dim;\n for (var i = 0; i < linksOption.length; i++) {\n var linkOption = linksOption[i] || {};\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n return i;\n }\n }\n}\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\nexport function fixValue(axisModel) {\n var axisInfo = getAxisInfo(axisModel);\n if (!axisInfo) {\n return;\n }\n var axisPointerModel = axisInfo.axisPointerModel;\n var scale = axisInfo.axis.scale;\n var option = axisPointerModel.option;\n var status = axisPointerModel.get('status');\n var value = axisPointerModel.get('value');\n // Parse init value for category and time axis.\n if (value != null) {\n value = scale.parse(value);\n }\n var useHandle = isHandleTrigger(axisPointerModel);\n // If `handle` used, `axisPointer` will always be displayed, so value\n // and status should be initialized.\n if (status == null) {\n option.status = useHandle ? 'show' : 'hide';\n }\n var extent = scale.getExtent().slice();\n extent[0] > extent[1] && extent.reverse();\n if (\n // Pick a value on axis when initializing.\n value == null\n // If both `handle` and `dataZoom` are used, value may be out of axis extent,\n // where we should re-pick a value to keep `handle` displaying normally.\n || value > extent[1]) {\n // Make handle displayed on the end of the axis when init, which looks better.\n value = extent[1];\n }\n if (value < extent[0]) {\n value = extent[0];\n }\n option.value = value;\n if (useHandle) {\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n }\n}\nexport function getAxisInfo(axisModel) {\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n var axisInfo = getAxisInfo(axisModel);\n return axisInfo && axisInfo.axisPointerModel;\n}\nfunction isHandleTrigger(axisPointerModel) {\n return !!axisPointerModel.get(['handle', 'show']);\n}\n/**\n * @param {module:echarts/model/Model} model\n * @return {string} unique key\n */\nexport function makeKey(model) {\n return model.type + '||' + model.id;\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper.js';\nimport ComponentView from '../../view/Component.js';\nvar axisPointerClazz = {};\n/**\n * Base class of AxisView.\n */\nvar AxisView = /** @class */function (_super) {\n __extends(AxisView, _super);\n function AxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = AxisView.type;\n return _this;\n }\n /**\n * @override\n */\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n // FIXME\n // This process should proformed after coordinate systems updated\n // (axis scale updated), and should be performed each time update.\n // So put it here temporarily, although it is not appropriate to\n // put a model-writing procedure in `view`.\n this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n _super.prototype.render.apply(this, arguments);\n this._doUpdateAxisPointerClass(axisModel, api, true);\n };\n /**\n * Action handler.\n */\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n this._doUpdateAxisPointerClass(axisModel, api, false);\n };\n /**\n * @override\n */\n AxisView.prototype.remove = function (ecModel, api) {\n var axisPointer = this._axisPointer;\n axisPointer && axisPointer.remove(api);\n };\n /**\n * @override\n */\n AxisView.prototype.dispose = function (ecModel, api) {\n this._disposeAxisPointer(api);\n _super.prototype.dispose.apply(this, arguments);\n };\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n if (!Clazz) {\n return;\n }\n var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n };\n AxisView.prototype._disposeAxisPointer = function (api) {\n this._axisPointer && this._axisPointer.dispose(api);\n this._axisPointer = null;\n };\n AxisView.registerAxisPointerClass = function (type, clazz) {\n if (process.env.NODE_ENV !== 'production') {\n if (axisPointerClazz[type]) {\n throw new Error('axisPointer ' + type + ' exists');\n }\n }\n axisPointerClazz[type] = clazz;\n };\n ;\n AxisView.getAxisPointerClass = function (type) {\n return type && axisPointerClazz[type];\n };\n ;\n AxisView.type = 'axis';\n return AxisView;\n}(ComponentView);\nexport default AxisView;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n if (axis.scale.isBlank()) {\n return;\n }\n // TODO: TYPE\n var splitAreaModel = axisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var gridRect = gridModel.coordinateSystem.getRect();\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitAreaModel,\n clamp: true\n });\n if (!ticksCoords.length) {\n return;\n }\n // For Making appropriate splitArea animation, the color and anid\n // should be corresponding to previous one if possible.\n var areaColorsLen = areaColors.length;\n var lastSplitAreaColors = inner(axisView).splitAreaColors;\n var newSplitAreaColors = zrUtil.createHashMap();\n var colorIndex = 0;\n if (lastSplitAreaColors) {\n for (var i = 0; i < ticksCoords.length; i++) {\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n if (cIndex != null) {\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n break;\n }\n }\n }\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n var areaStyle = areaStyleModel.getAreaStyle();\n areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n for (var i = 1; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n var x = void 0;\n var y = void 0;\n var width = void 0;\n var height = void 0;\n if (axis.isHorizontal()) {\n x = prev;\n y = gridRect.y;\n width = tickCoord - x;\n height = gridRect.height;\n prev = x + width;\n } else {\n x = gridRect.x;\n y = prev;\n width = gridRect.width;\n height = tickCoord - y;\n prev = y + height;\n }\n var tickValue = ticksCoords[i - 1].tickValue;\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n axisGroup.add(new graphic.Rect({\n anid: tickValue != null ? 'area_' + tickValue : null,\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n style: zrUtil.defaults({\n fill: areaColors[colorIndex]\n }, areaStyle),\n autoBatch: true,\n silent: true\n }));\n colorIndex = (colorIndex + 1) % areaColorsLen;\n }\n inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n inner(axisView).splitAreaColors = null;\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport AxisView from './AxisView.js';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper.js';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper.js';\nimport { isIntervalOrLogScale } from '../../scale/helper.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\nvar CartesianAxisView = /** @class */function (_super) {\n __extends(CartesianAxisView, _super);\n function CartesianAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = CartesianAxisView.type;\n _this.axisPointerClass = 'CartesianAxisPointer';\n return _this;\n }\n /**\n * @override\n */\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n if (!axisModel.get('show')) {\n return;\n }\n var gridModel = axisModel.getCoordSysModel();\n var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n handleAutoShown: function (elementType) {\n var cartesians = gridModel.coordinateSystem.getCartesians();\n for (var i = 0; i < cartesians.length; i++) {\n if (isIntervalOrLogScale(cartesians[i].getOtherAxis(axisModel.axis).scale)) {\n // Still show axis tick or axisLine if other axis is value / log\n return true;\n }\n }\n // Not show axisTick or axisLine if other axis is category / time\n return false;\n }\n }, layout));\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n this._axisGroup.add(axisBuilder.getGroup());\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get([name, 'show'])) {\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n }\n }, this);\n // THIS is a special case for bar racing chart.\n // Update the axis label from the natural initial layout to\n // sorted layout should has no animation.\n var isInitialSortFromBarRacing = payload && payload.type === 'changeAxisOrder' && payload.isInitSort;\n if (!isInitialSortFromBarRacing) {\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n }\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n };\n CartesianAxisView.prototype.remove = function () {\n rectCoordAxisHandleRemove(this);\n };\n CartesianAxisView.type = 'cartesianAxis';\n return CartesianAxisView;\n}(AxisView);\nvar axisElementBuilders = {\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n if (axis.scale.isBlank()) {\n return;\n }\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n var colorIndex = lineCount++ % lineColors.length;\n var tickValue = ticksCoords[i].tickValue;\n var line = new graphic.Line({\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: zrUtil.defaults({\n stroke: lineColors[colorIndex]\n }, lineStyle),\n silent: true\n });\n graphic.subPixelOptimizeLine(line.shape, lineStyle.lineWidth);\n axisGroup.add(line);\n }\n },\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var minorTicksCoords = axis.getMinorTicksCoords();\n if (!minorTicksCoords.length) {\n return;\n }\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n var line = new graphic.Line({\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: lineStyle,\n silent: true\n });\n graphic.subPixelOptimizeLine(line.shape, lineStyle.lineWidth);\n axisGroup.add(line);\n }\n }\n },\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n }\n};\nvar CartesianXAxisView = /** @class */function (_super) {\n __extends(CartesianXAxisView, _super);\n function CartesianXAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n CartesianXAxisView.type = 'xAxis';\n return CartesianXAxisView;\n}(CartesianAxisView);\nexport { CartesianXAxisView };\nvar CartesianYAxisView = /** @class */function (_super) {\n __extends(CartesianYAxisView, _super);\n function CartesianYAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n CartesianYAxisView.type = 'yAxis';\n return CartesianYAxisView;\n}(CartesianAxisView);\nexport { CartesianYAxisView };\nexport default CartesianAxisView;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\nimport GridModel from '../../coord/cartesian/GridModel.js';\nimport { Rect } from '../../util/graphic.js';\nimport { defaults } from 'zrender/lib/core/util.js';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport Grid from '../../coord/cartesian/Grid.js';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView.js';\n// Grid view\nvar GridView = /** @class */function (_super) {\n __extends(GridView, _super);\n function GridView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'grid';\n return _this;\n }\n GridView.prototype.render = function (gridModel, ecModel) {\n this.group.removeAll();\n if (gridModel.get('show')) {\n this.group.add(new Rect({\n shape: gridModel.coordinateSystem.getRect(),\n style: defaults({\n fill: gridModel.get('backgroundColor')\n }, gridModel.getItemStyle()),\n silent: true,\n z2: -1\n }));\n }\n };\n GridView.type = 'grid';\n return GridView;\n}(ComponentView);\nvar extraOption = {\n // gridIndex: 0,\n // gridId: '',\n offset: 0\n};\nexport function install(registers) {\n registers.registerComponentView(GridView);\n registers.registerComponentModel(GridModel);\n registers.registerCoordinateSystem('cartesian2d', Grid);\n axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n registers.registerComponentView(CartesianXAxisView);\n registers.registerComponentView(CartesianYAxisView);\n registers.registerPreprocessor(function (option) {\n // Only create grid when need\n if (option.xAxis && option.yAxis && !option.grid) {\n option.grid = {};\n }\n });\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport axisDefault from '../axisDefault.js';\nimport Model from '../../model/Model.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport ComponentModel from '../../model/Component.js';\nvar valueAxisDefault = axisDefault.value;\nfunction defaultsShow(opt, show) {\n return zrUtil.defaults({\n show: show\n }, opt);\n}\nvar RadarModel = /** @class */function (_super) {\n __extends(RadarModel, _super);\n function RadarModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = RadarModel.type;\n return _this;\n }\n RadarModel.prototype.optionUpdated = function () {\n var boundaryGap = this.get('boundaryGap');\n var splitNumber = this.get('splitNumber');\n var scale = this.get('scale');\n var axisLine = this.get('axisLine');\n var axisTick = this.get('axisTick');\n // let axisType = this.get('axisType');\n var axisLabel = this.get('axisLabel');\n var nameTextStyle = this.get('axisName');\n var showName = this.get(['axisName', 'show']);\n var nameFormatter = this.get(['axisName', 'formatter']);\n var nameGap = this.get('axisNameGap');\n var triggerEvent = this.get('triggerEvent');\n var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n // PENDING\n if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n indicatorOpt.min = 0;\n } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n indicatorOpt.max = 0;\n }\n var iNameTextStyle = nameTextStyle;\n if (indicatorOpt.color != null) {\n iNameTextStyle = zrUtil.defaults({\n color: indicatorOpt.color\n }, nameTextStyle);\n }\n // Use same configuration\n var innerIndicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n boundaryGap: boundaryGap,\n splitNumber: splitNumber,\n scale: scale,\n axisLine: axisLine,\n axisTick: axisTick,\n // axisType: axisType,\n axisLabel: axisLabel,\n // Compatible with 2 and use text\n name: indicatorOpt.text,\n showName: showName,\n nameLocation: 'end',\n nameGap: nameGap,\n // min: 0,\n nameTextStyle: iNameTextStyle,\n triggerEvent: triggerEvent\n }, false);\n if (zrUtil.isString(nameFormatter)) {\n var indName = innerIndicatorOpt.name;\n innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n } else if (zrUtil.isFunction(nameFormatter)) {\n innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\n }\n var model = new Model(innerIndicatorOpt, null, this.ecModel);\n zrUtil.mixin(model, AxisModelCommonMixin.prototype);\n // For triggerEvent.\n model.mainType = 'radar';\n model.componentIndex = this.componentIndex;\n return model;\n }, this);\n this._indicatorModels = indicatorModels;\n };\n RadarModel.prototype.getIndicatorModels = function () {\n return this._indicatorModels;\n };\n RadarModel.type = 'radar';\n RadarModel.defaultOption = {\n // zlevel: 0,\n z: 0,\n center: ['50%', '50%'],\n radius: '75%',\n startAngle: 90,\n axisName: {\n show: true\n // formatter: null\n // textStyle: {}\n },\n\n boundaryGap: [0, 0],\n splitNumber: 5,\n axisNameGap: 15,\n scale: false,\n // Polygon or circle\n shape: 'polygon',\n axisLine: zrUtil.merge({\n lineStyle: {\n color: '#bbb'\n }\n }, valueAxisDefault.axisLine),\n axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n // axisType: 'value',\n splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n // {text, min, max}\n indicator: []\n };\n return RadarModel;\n}(ComponentModel);\nexport default RadarModel;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport AxisBuilder from '../axis/AxisBuilder.js';\nimport * as graphic from '../../util/graphic.js';\nimport ComponentView from '../../view/Component.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar RadarView = /** @class */function (_super) {\n __extends(RadarView, _super);\n function RadarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = RadarView.type;\n return _this;\n }\n RadarView.prototype.render = function (radarModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n this._buildAxes(radarModel);\n this._buildSplitLineAndArea(radarModel);\n };\n RadarView.prototype._buildAxes = function (radarModel) {\n var radar = radarModel.coordinateSystem;\n var indicatorAxes = radar.getIndicatorAxes();\n var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n var axisName = indicatorAxis.model.get('showName') ? indicatorAxis.name : ''; // hide name\n var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n axisName: axisName,\n position: [radar.cx, radar.cy],\n rotation: indicatorAxis.angle,\n labelDirection: -1,\n tickDirection: -1,\n nameDirection: 1\n });\n return axisBuilder;\n });\n zrUtil.each(axisBuilders, function (axisBuilder) {\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n this.group.add(axisBuilder.getGroup());\n }, this);\n };\n RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\n var radar = radarModel.coordinateSystem;\n var indicatorAxes = radar.getIndicatorAxes();\n if (!indicatorAxes.length) {\n return;\n }\n var shape = radarModel.get('shape');\n var splitLineModel = radarModel.getModel('splitLine');\n var splitAreaModel = radarModel.getModel('splitArea');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var showSplitLine = splitLineModel.get('show');\n var showSplitArea = splitAreaModel.get('show');\n var splitLineColors = lineStyleModel.get('color');\n var splitAreaColors = areaStyleModel.get('color');\n var splitLineColorsArr = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n var splitAreaColorsArr = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n var splitLines = [];\n var splitAreas = [];\n function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n var colorIndex = idx % areaOrLineColorList.length;\n areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n return colorIndex;\n }\n if (shape === 'circle') {\n var ticksRadius = indicatorAxes[0].getTicksCoords();\n var cx = radar.cx;\n var cy = radar.cy;\n for (var i = 0; i < ticksRadius.length; i++) {\n if (showSplitLine) {\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n splitLines[colorIndex].push(new graphic.Circle({\n shape: {\n cx: cx,\n cy: cy,\n r: ticksRadius[i].coord\n }\n }));\n }\n if (showSplitArea && i < ticksRadius.length - 1) {\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\n splitAreas[colorIndex].push(new graphic.Ring({\n shape: {\n cx: cx,\n cy: cy,\n r0: ticksRadius[i].coord,\n r: ticksRadius[i + 1].coord\n }\n }));\n }\n }\n }\n // Polyyon\n else {\n var realSplitNumber_1;\n var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n var ticksCoords = indicatorAxis.getTicksCoords();\n realSplitNumber_1 = realSplitNumber_1 == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber_1);\n return zrUtil.map(ticksCoords, function (tickCoord) {\n return radar.coordToPoint(tickCoord.coord, idx);\n });\n });\n var prevPoints = [];\n for (var i = 0; i <= realSplitNumber_1; i++) {\n var points = [];\n for (var j = 0; j < indicatorAxes.length; j++) {\n points.push(axesTicksPoints[j][i]);\n }\n // Close\n if (points[0]) {\n points.push(points[0].slice());\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Can\\'t draw value axis ' + i);\n }\n }\n if (showSplitLine) {\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n splitLines[colorIndex].push(new graphic.Polyline({\n shape: {\n points: points\n }\n }));\n }\n if (showSplitArea && prevPoints) {\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\n splitAreas[colorIndex].push(new graphic.Polygon({\n shape: {\n points: points.concat(prevPoints)\n }\n }));\n }\n prevPoints = points.slice().reverse();\n }\n }\n var lineStyle = lineStyleModel.getLineStyle();\n var areaStyle = areaStyleModel.getAreaStyle();\n // Add splitArea before splitLine\n zrUtil.each(splitAreas, function (splitAreas, idx) {\n this.group.add(graphic.mergePath(splitAreas, {\n style: zrUtil.defaults({\n stroke: 'none',\n fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\n }, areaStyle),\n silent: true\n }));\n }, this);\n zrUtil.each(splitLines, function (splitLines, idx) {\n this.group.add(graphic.mergePath(splitLines, {\n style: zrUtil.defaults({\n fill: 'none',\n stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\n }, lineStyle),\n silent: true\n }));\n }, this);\n };\n RadarView.type = 'radar';\n return RadarView;\n}(ComponentView);\nexport default RadarView;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\nvar IndicatorAxis = /** @class */function (_super) {\n __extends(IndicatorAxis, _super);\n function IndicatorAxis(dim, scale, radiusExtent) {\n var _this = _super.call(this, dim, scale, radiusExtent) || this;\n _this.type = 'value';\n _this.angle = 0;\n _this.name = '';\n return _this;\n }\n return IndicatorAxis;\n}(Axis);\nexport default IndicatorAxis;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO clockwise\nimport IndicatorAxis from './IndicatorAxis.js';\nimport IntervalScale from '../../scale/Interval.js';\nimport * as numberUtil from '../../util/number.js';\nimport { map, each, isString, isNumber } from 'zrender/lib/core/util.js';\nimport { alignScaleTicks } from '../axisAlignTicks.js';\nvar Radar = /** @class */function () {\n function Radar(radarModel, ecModel, api) {\n /**\n *\n * Radar dimensions\n */\n this.dimensions = [];\n this._model = radarModel;\n this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n var dim = 'indicator_' + idx;\n var indicatorAxis = new IndicatorAxis(dim, new IntervalScale()\n // (indicatorModel.get('axisType') === 'log') ? new LogScale() : new IntervalScale()\n );\n\n indicatorAxis.name = indicatorModel.get('name');\n // Inject model and axis\n indicatorAxis.model = indicatorModel;\n indicatorModel.axis = indicatorAxis;\n this.dimensions.push(dim);\n return indicatorAxis;\n }, this);\n this.resize(radarModel, api);\n }\n Radar.prototype.getIndicatorAxes = function () {\n return this._indicatorAxes;\n };\n Radar.prototype.dataToPoint = function (value, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n };\n // TODO: API should be coordToPoint([coord, indicatorIndex])\n Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n var angle = indicatorAxis.angle;\n var x = this.cx + coord * Math.cos(angle);\n var y = this.cy - coord * Math.sin(angle);\n return [x, y];\n };\n Radar.prototype.pointToData = function (pt) {\n var dx = pt[0] - this.cx;\n var dy = pt[1] - this.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n var radian = Math.atan2(-dy, dx);\n // Find the closest angle\n // FIXME index can calculated directly\n var minRadianDiff = Infinity;\n var closestAxis;\n var closestAxisIdx = -1;\n for (var i = 0; i < this._indicatorAxes.length; i++) {\n var indicatorAxis = this._indicatorAxes[i];\n var diff = Math.abs(radian - indicatorAxis.angle);\n if (diff < minRadianDiff) {\n closestAxis = indicatorAxis;\n closestAxisIdx = i;\n minRadianDiff = diff;\n }\n }\n return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\n };\n Radar.prototype.resize = function (radarModel, api) {\n var center = radarModel.get('center');\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n var viewSize = Math.min(viewWidth, viewHeight) / 2;\n this.cx = numberUtil.parsePercent(center[0], viewWidth);\n this.cy = numberUtil.parsePercent(center[1], viewHeight);\n this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\n // radius may be single value like `20`, `'80%'`, or array like `[10, '80%']`\n var radius = radarModel.get('radius');\n if (isString(radius) || isNumber(radius)) {\n radius = [0, radius];\n }\n this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n this.r = numberUtil.parsePercent(radius[1], viewSize);\n each(this._indicatorAxes, function (indicatorAxis, idx) {\n indicatorAxis.setExtent(this.r0, this.r);\n var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length;\n // Normalize to [-PI, PI]\n angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n indicatorAxis.angle = angle;\n }, this);\n };\n Radar.prototype.update = function (ecModel, api) {\n var indicatorAxes = this._indicatorAxes;\n var radarModel = this._model;\n each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.setExtent(Infinity, -Infinity);\n });\n ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n if (radarSeries.get('coordinateSystem') !== 'radar'\n // @ts-ignore\n || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n return;\n }\n var data = radarSeries.getData();\n each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n });\n }, this);\n var splitNumber = radarModel.get('splitNumber');\n var dummyScale = new IntervalScale();\n dummyScale.setExtent(0, splitNumber);\n dummyScale.setInterval(1);\n // Force all the axis fixing the maxSplitNumber.\n each(indicatorAxes, function (indicatorAxis, idx) {\n alignScaleTicks(indicatorAxis.scale, indicatorAxis.model, dummyScale);\n });\n };\n Radar.prototype.convertToPixel = function (ecModel, finder, value) {\n console.warn('Not implemented.');\n return null;\n };\n Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n console.warn('Not implemented.');\n return null;\n };\n Radar.prototype.containPoint = function (point) {\n console.warn('Not implemented.');\n return false;\n };\n Radar.create = function (ecModel, api) {\n var radarList = [];\n ecModel.eachComponent('radar', function (radarModel) {\n var radar = new Radar(radarModel, ecModel, api);\n radarList.push(radar);\n radarModel.coordinateSystem = radar;\n });\n ecModel.eachSeriesByType('radar', function (radarSeries) {\n if (radarSeries.get('coordinateSystem') === 'radar') {\n // Inject coordinate system\n // @ts-ignore\n radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n }\n });\n return radarList;\n };\n /**\n * Radar dimensions is based on the data\n */\n Radar.dimensions = [];\n return Radar;\n}();\nexport default Radar;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport RadarModel from '../../coord/radar/RadarModel.js';\nimport RadarView from './RadarView.js';\nimport Radar from '../../coord/radar/Radar.js';\nexport function install(registers) {\n registers.registerCoordinateSystem('radar', Radar);\n registers.registerComponentModel(RadarModel);\n registers.registerComponentView(RadarView);\n registers.registerVisual({\n seriesType: 'radar',\n reset: function (seriesModel) {\n var data = seriesModel.getData();\n // itemVisual symbol is for selected data\n data.each(function (idx) {\n data.setItemVisual(idx, 'legendIcon', 'roundRect');\n });\n // visual is for unselected data\n data.setVisual('legendIcon', 'roundRect');\n }\n });\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Simple view coordinate system\n * Mapping given x, y to transformd view x, y\n */\nimport * as vector from 'zrender/lib/core/vector.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport Transformable from 'zrender/lib/core/Transformable.js';\nimport { parsePercent } from '../util/number.js';\nvar v2ApplyTransform = vector.applyTransform;\nvar View = /** @class */function (_super) {\n __extends(View, _super);\n function View(name) {\n var _this = _super.call(this) || this;\n _this.type = 'view';\n _this.dimensions = ['x', 'y'];\n /**\n * Represents the transform brought by roam/zoom.\n * If `View['_viewRect']` applies roam transform,\n * we can get the final displayed rect.\n */\n _this._roamTransformable = new Transformable();\n /**\n * Represents the transform from `View['_rect']` to `View['_viewRect']`.\n */\n _this._rawTransformable = new Transformable();\n _this.name = name;\n return _this;\n }\n View.prototype.setBoundingRect = function (x, y, width, height) {\n this._rect = new BoundingRect(x, y, width, height);\n return this._rect;\n };\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n View.prototype.getBoundingRect = function () {\n return this._rect;\n };\n View.prototype.setViewRect = function (x, y, width, height) {\n this._transformTo(x, y, width, height);\n this._viewRect = new BoundingRect(x, y, width, height);\n };\n /**\n * Transformed to particular position and size\n */\n View.prototype._transformTo = function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var rawTransform = this._rawTransformable;\n rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n var rawParent = rawTransform.parent;\n rawTransform.parent = null;\n rawTransform.decomposeTransform();\n rawTransform.parent = rawParent;\n this._updateTransform();\n };\n /**\n * Set center of view\n */\n View.prototype.setCenter = function (centerCoord, api) {\n if (!centerCoord) {\n return;\n }\n this._center = [parsePercent(centerCoord[0], api.getWidth()), parsePercent(centerCoord[1], api.getHeight())];\n this._updateCenterAndZoom();\n };\n View.prototype.setZoom = function (zoom) {\n zoom = zoom || 1;\n var zoomLimit = this.zoomLimit;\n if (zoomLimit) {\n if (zoomLimit.max != null) {\n zoom = Math.min(zoomLimit.max, zoom);\n }\n if (zoomLimit.min != null) {\n zoom = Math.max(zoomLimit.min, zoom);\n }\n }\n this._zoom = zoom;\n this._updateCenterAndZoom();\n };\n /**\n * Get default center without roam\n */\n View.prototype.getDefaultCenter = function () {\n // Rect before any transform\n var rawRect = this.getBoundingRect();\n var cx = rawRect.x + rawRect.width / 2;\n var cy = rawRect.y + rawRect.height / 2;\n return [cx, cy];\n };\n View.prototype.getCenter = function () {\n return this._center || this.getDefaultCenter();\n };\n View.prototype.getZoom = function () {\n return this._zoom || 1;\n };\n View.prototype.getRoamTransform = function () {\n return this._roamTransformable.getLocalTransform();\n };\n /**\n * Remove roam\n */\n View.prototype._updateCenterAndZoom = function () {\n // Must update after view transform updated\n var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n var roamTransform = this._roamTransformable;\n var defaultCenter = this.getDefaultCenter();\n var center = this.getCenter();\n var zoom = this.getZoom();\n center = vector.applyTransform([], center, rawTransformMatrix);\n defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n roamTransform.originX = center[0];\n roamTransform.originY = center[1];\n roamTransform.x = defaultCenter[0] - center[0];\n roamTransform.y = defaultCenter[1] - center[1];\n roamTransform.scaleX = roamTransform.scaleY = zoom;\n this._updateTransform();\n };\n /**\n * Update transform props on `this` based on the current\n * `this._roamTransformable` and `this._rawTransformable`.\n */\n View.prototype._updateTransform = function () {\n var roamTransformable = this._roamTransformable;\n var rawTransformable = this._rawTransformable;\n rawTransformable.parent = roamTransformable;\n roamTransformable.updateTransform();\n rawTransformable.updateTransform();\n matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n this._rawTransform = rawTransformable.getLocalTransform();\n this.invTransform = this.invTransform || [];\n matrix.invert(this.invTransform, this.transform);\n this.decomposeTransform();\n };\n View.prototype.getTransformInfo = function () {\n var rawTransformable = this._rawTransformable;\n var roamTransformable = this._roamTransformable;\n // Because roamTransformabel has `originX/originY` modified,\n // but the caller of `getTransformInfo` can not handle `originX/originY`,\n // so need to recalculate them.\n var dummyTransformable = new Transformable();\n dummyTransformable.transform = roamTransformable.transform;\n dummyTransformable.decomposeTransform();\n return {\n roam: {\n x: dummyTransformable.x,\n y: dummyTransformable.y,\n scaleX: dummyTransformable.scaleX,\n scaleY: dummyTransformable.scaleY\n },\n raw: {\n x: rawTransformable.x,\n y: rawTransformable.y,\n scaleX: rawTransformable.scaleX,\n scaleY: rawTransformable.scaleY\n }\n };\n };\n View.prototype.getViewRect = function () {\n return this._viewRect;\n };\n /**\n * Get view rect after roam transform\n */\n View.prototype.getViewRectAfterRoam = function () {\n var rect = this.getBoundingRect().clone();\n rect.applyTransform(this.transform);\n return rect;\n };\n /**\n * Convert a single (lon, lat) data item to (x, y) point.\n */\n View.prototype.dataToPoint = function (data, noRoam, out) {\n var transform = noRoam ? this._rawTransform : this.transform;\n out = out || [];\n return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n };\n /**\n * Convert a (x, y) point to (lon, lat) data\n */\n View.prototype.pointToData = function (point) {\n var invTransform = this.invTransform;\n return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n };\n View.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.dataToPoint(value) : null;\n };\n View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.pointToData(pixel) : null;\n };\n /**\n * @implements\n */\n View.prototype.containPoint = function (point) {\n return this.getViewRectAfterRoam().contain(point[0], point[1]);\n };\n View.dimensions = ['x', 'y'];\n return View;\n}(Transformable);\nfunction getCoordSys(finder) {\n var seriesModel = finder.seriesModel;\n return seriesModel ? seriesModel.coordinateSystem : null; // e.g., graph.\n}\n\nexport default View;", "import { isString } from '../core/util.js';\nexport function parseXML(svg) {\n if (isString(svg)) {\n var parser = new DOMParser();\n svg = parser.parseFromString(svg, 'text/xml');\n }\n var svgNode = svg;\n if (svgNode.nodeType === 9) {\n svgNode = svgNode.firstChild;\n }\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n svgNode = svgNode.nextSibling;\n }\n return svgNode;\n}\n", "import Group from '../graphic/Group.js';\nimport ZRImage from '../graphic/Image.js';\nimport Circle from '../graphic/shape/Circle.js';\nimport Rect from '../graphic/shape/Rect.js';\nimport Ellipse from '../graphic/shape/Ellipse.js';\nimport Line from '../graphic/shape/Line.js';\nimport Polygon from '../graphic/shape/Polygon.js';\nimport Polyline from '../graphic/shape/Polyline.js';\nimport * as matrix from '../core/matrix.js';\nimport { createFromString } from './path.js';\nimport { defaults, trim, each, map, keys, hasOwn } from '../core/util.js';\nimport LinearGradient from '../graphic/LinearGradient.js';\nimport RadialGradient from '../graphic/RadialGradient.js';\nimport TSpan from '../graphic/TSpan.js';\nimport { parseXML } from './parseXML.js';\n;\nvar nodeParsers;\nvar INHERITABLE_STYLE_ATTRIBUTES_MAP = {\n 'fill': 'fill',\n 'stroke': 'stroke',\n 'stroke-width': 'lineWidth',\n 'opacity': 'opacity',\n 'fill-opacity': 'fillOpacity',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-dasharray': 'lineDash',\n 'stroke-dashoffset': 'lineDashOffset',\n 'stroke-linecap': 'lineCap',\n 'stroke-linejoin': 'lineJoin',\n 'stroke-miterlimit': 'miterLimit',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'text-anchor': 'textAlign',\n 'visibility': 'visibility',\n 'display': 'display'\n};\nvar INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS = keys(INHERITABLE_STYLE_ATTRIBUTES_MAP);\nvar SELF_STYLE_ATTRIBUTES_MAP = {\n 'alignment-baseline': 'textBaseline',\n 'stop-color': 'stopColor'\n};\nvar SELF_STYLE_ATTRIBUTES_MAP_KEYS = keys(SELF_STYLE_ATTRIBUTES_MAP);\nvar SVGParser = (function () {\n function SVGParser() {\n this._defs = {};\n this._root = null;\n }\n SVGParser.prototype.parse = function (xml, opt) {\n opt = opt || {};\n var svg = parseXML(xml);\n if (process.env.NODE_ENV !== 'production') {\n if (!svg) {\n throw new Error('Illegal svg');\n }\n }\n this._defsUsePending = [];\n var root = new Group();\n this._root = root;\n var named = [];\n var viewBox = svg.getAttribute('viewBox') || '';\n var width = parseFloat((svg.getAttribute('width') || opt.width));\n var height = parseFloat((svg.getAttribute('height') || opt.height));\n isNaN(width) && (width = null);\n isNaN(height) && (height = null);\n parseAttributes(svg, root, null, true, false);\n var child = svg.firstChild;\n while (child) {\n this._parseNode(child, root, named, null, false, false);\n child = child.nextSibling;\n }\n applyDefs(this._defs, this._defsUsePending);\n this._defsUsePending = [];\n var viewBoxRect;\n var viewBoxTransform;\n if (viewBox) {\n var viewBoxArr = splitNumberSequence(viewBox);\n if (viewBoxArr.length >= 4) {\n viewBoxRect = {\n x: parseFloat((viewBoxArr[0] || 0)),\n y: parseFloat((viewBoxArr[1] || 0)),\n width: parseFloat(viewBoxArr[2]),\n height: parseFloat(viewBoxArr[3])\n };\n }\n }\n if (viewBoxRect && width != null && height != null) {\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, { x: 0, y: 0, width: width, height: height });\n if (!opt.ignoreViewBox) {\n var elRoot = root;\n root = new Group();\n root.add(elRoot);\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n elRoot.x = viewBoxTransform.x;\n elRoot.y = viewBoxTransform.y;\n }\n }\n if (!opt.ignoreRootClip && width != null && height != null) {\n root.setClipPath(new Rect({\n shape: { x: 0, y: 0, width: width, height: height }\n }));\n }\n return {\n root: root,\n width: width,\n height: height,\n viewBoxRect: viewBoxRect,\n viewBoxTransform: viewBoxTransform,\n named: named\n };\n };\n SVGParser.prototype._parseNode = function (xmlNode, parentGroup, named, namedFrom, isInDefs, isInText) {\n var nodeName = xmlNode.nodeName.toLowerCase();\n var el;\n var namedFromForSub = namedFrom;\n if (nodeName === 'defs') {\n isInDefs = true;\n }\n if (nodeName === 'text') {\n isInText = true;\n }\n if (nodeName === 'defs' || nodeName === 'switch') {\n el = parentGroup;\n }\n else {\n if (!isInDefs) {\n var parser_1 = nodeParsers[nodeName];\n if (parser_1 && hasOwn(nodeParsers, nodeName)) {\n el = parser_1.call(this, xmlNode, parentGroup);\n var nameAttr = xmlNode.getAttribute('name');\n if (nameAttr) {\n var newNamed = {\n name: nameAttr,\n namedFrom: null,\n svgNodeTagLower: nodeName,\n el: el\n };\n named.push(newNamed);\n if (nodeName === 'g') {\n namedFromForSub = newNamed;\n }\n }\n else if (namedFrom) {\n named.push({\n name: namedFrom.name,\n namedFrom: namedFrom,\n svgNodeTagLower: nodeName,\n el: el\n });\n }\n parentGroup.add(el);\n }\n }\n var parser = paintServerParsers[nodeName];\n if (parser && hasOwn(paintServerParsers, nodeName)) {\n var def = parser.call(this, xmlNode);\n var id = xmlNode.getAttribute('id');\n if (id) {\n this._defs[id] = def;\n }\n }\n }\n if (el && el.isGroup) {\n var child = xmlNode.firstChild;\n while (child) {\n if (child.nodeType === 1) {\n this._parseNode(child, el, named, namedFromForSub, isInDefs, isInText);\n }\n else if (child.nodeType === 3 && isInText) {\n this._parseText(child, el);\n }\n child = child.nextSibling;\n }\n }\n };\n SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n var text = new TSpan({\n style: {\n text: xmlNode.textContent\n },\n silent: true,\n x: this._textX || 0,\n y: this._textY || 0\n });\n inheritStyle(parentGroup, text);\n parseAttributes(xmlNode, text, this._defsUsePending, false, false);\n applyTextAlignment(text, parentGroup);\n var textStyle = text.style;\n var fontSize = textStyle.fontSize;\n if (fontSize && fontSize < 9) {\n textStyle.fontSize = 9;\n text.scaleX *= fontSize / 9;\n text.scaleY *= fontSize / 9;\n }\n var font = (textStyle.fontSize || textStyle.fontFamily) && [\n textStyle.fontStyle,\n textStyle.fontWeight,\n (textStyle.fontSize || 12) + 'px',\n textStyle.fontFamily || 'sans-serif'\n ].join(' ');\n textStyle.font = font;\n var rect = text.getBoundingRect();\n this._textX += rect.width;\n parentGroup.add(text);\n return text;\n };\n SVGParser.internalField = (function () {\n nodeParsers = {\n 'g': function (xmlNode, parentGroup) {\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defsUsePending, false, false);\n return g;\n },\n 'rect': function (xmlNode, parentGroup) {\n var rect = new Rect();\n inheritStyle(parentGroup, rect);\n parseAttributes(xmlNode, rect, this._defsUsePending, false, false);\n rect.setShape({\n x: parseFloat(xmlNode.getAttribute('x') || '0'),\n y: parseFloat(xmlNode.getAttribute('y') || '0'),\n width: parseFloat(xmlNode.getAttribute('width') || '0'),\n height: parseFloat(xmlNode.getAttribute('height') || '0')\n });\n rect.silent = true;\n return rect;\n },\n 'circle': function (xmlNode, parentGroup) {\n var circle = new Circle();\n inheritStyle(parentGroup, circle);\n parseAttributes(xmlNode, circle, this._defsUsePending, false, false);\n circle.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n r: parseFloat(xmlNode.getAttribute('r') || '0')\n });\n circle.silent = true;\n return circle;\n },\n 'line': function (xmlNode, parentGroup) {\n var line = new Line();\n inheritStyle(parentGroup, line);\n parseAttributes(xmlNode, line, this._defsUsePending, false, false);\n line.setShape({\n x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\n y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\n x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\n y2: parseFloat(xmlNode.getAttribute('y2') || '0')\n });\n line.silent = true;\n return line;\n },\n 'ellipse': function (xmlNode, parentGroup) {\n var ellipse = new Ellipse();\n inheritStyle(parentGroup, ellipse);\n parseAttributes(xmlNode, ellipse, this._defsUsePending, false, false);\n ellipse.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\n ry: parseFloat(xmlNode.getAttribute('ry') || '0')\n });\n ellipse.silent = true;\n return ellipse;\n },\n 'polygon': function (xmlNode, parentGroup) {\n var pointsStr = xmlNode.getAttribute('points');\n var pointsArr;\n if (pointsStr) {\n pointsArr = parsePoints(pointsStr);\n }\n var polygon = new Polygon({\n shape: {\n points: pointsArr || []\n },\n silent: true\n });\n inheritStyle(parentGroup, polygon);\n parseAttributes(xmlNode, polygon, this._defsUsePending, false, false);\n return polygon;\n },\n 'polyline': function (xmlNode, parentGroup) {\n var pointsStr = xmlNode.getAttribute('points');\n var pointsArr;\n if (pointsStr) {\n pointsArr = parsePoints(pointsStr);\n }\n var polyline = new Polyline({\n shape: {\n points: pointsArr || []\n },\n silent: true\n });\n inheritStyle(parentGroup, polyline);\n parseAttributes(xmlNode, polyline, this._defsUsePending, false, false);\n return polyline;\n },\n 'image': function (xmlNode, parentGroup) {\n var img = new ZRImage();\n inheritStyle(parentGroup, img);\n parseAttributes(xmlNode, img, this._defsUsePending, false, false);\n img.setStyle({\n image: xmlNode.getAttribute('xlink:href') || xmlNode.getAttribute('href'),\n x: +xmlNode.getAttribute('x'),\n y: +xmlNode.getAttribute('y'),\n width: +xmlNode.getAttribute('width'),\n height: +xmlNode.getAttribute('height')\n });\n img.silent = true;\n return img;\n },\n 'text': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x') || '0';\n var y = xmlNode.getAttribute('y') || '0';\n var dx = xmlNode.getAttribute('dx') || '0';\n var dy = xmlNode.getAttribute('dy') || '0';\n this._textX = parseFloat(x) + parseFloat(dx);\n this._textY = parseFloat(y) + parseFloat(dy);\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defsUsePending, false, true);\n return g;\n },\n 'tspan': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x');\n var y = xmlNode.getAttribute('y');\n if (x != null) {\n this._textX = parseFloat(x);\n }\n if (y != null) {\n this._textY = parseFloat(y);\n }\n var dx = xmlNode.getAttribute('dx') || '0';\n var dy = xmlNode.getAttribute('dy') || '0';\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defsUsePending, false, true);\n this._textX += parseFloat(dx);\n this._textY += parseFloat(dy);\n return g;\n },\n 'path': function (xmlNode, parentGroup) {\n var d = xmlNode.getAttribute('d') || '';\n var path = createFromString(d);\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defsUsePending, false, false);\n path.silent = true;\n return path;\n }\n };\n })();\n return SVGParser;\n}());\nvar paintServerParsers = {\n 'lineargradient': function (xmlNode) {\n var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\n var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\n var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\n var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\n var gradient = new LinearGradient(x1, y1, x2, y2);\n parsePaintServerUnit(xmlNode, gradient);\n parseGradientColorStops(xmlNode, gradient);\n return gradient;\n },\n 'radialgradient': function (xmlNode) {\n var cx = parseInt(xmlNode.getAttribute('cx') || '0', 10);\n var cy = parseInt(xmlNode.getAttribute('cy') || '0', 10);\n var r = parseInt(xmlNode.getAttribute('r') || '0', 10);\n var gradient = new RadialGradient(cx, cy, r);\n parsePaintServerUnit(xmlNode, gradient);\n parseGradientColorStops(xmlNode, gradient);\n return gradient;\n }\n};\nfunction parsePaintServerUnit(xmlNode, gradient) {\n var gradientUnits = xmlNode.getAttribute('gradientUnits');\n if (gradientUnits === 'userSpaceOnUse') {\n gradient.global = true;\n }\n}\nfunction parseGradientColorStops(xmlNode, gradient) {\n var stop = xmlNode.firstChild;\n while (stop) {\n if (stop.nodeType === 1\n && stop.nodeName.toLocaleLowerCase() === 'stop') {\n var offsetStr = stop.getAttribute('offset');\n var offset = void 0;\n if (offsetStr && offsetStr.indexOf('%') > 0) {\n offset = parseInt(offsetStr, 10) / 100;\n }\n else if (offsetStr) {\n offset = parseFloat(offsetStr);\n }\n else {\n offset = 0;\n }\n var styleVals = {};\n parseInlineStyle(stop, styleVals, styleVals);\n var stopColor = styleVals.stopColor\n || stop.getAttribute('stop-color')\n || '#000000';\n gradient.colorStops.push({\n offset: offset,\n color: stopColor\n });\n }\n stop = stop.nextSibling;\n }\n}\nfunction inheritStyle(parent, child) {\n if (parent && parent.__inheritedStyle) {\n if (!child.__inheritedStyle) {\n child.__inheritedStyle = {};\n }\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\n }\n}\nfunction parsePoints(pointsString) {\n var list = splitNumberSequence(pointsString);\n var points = [];\n for (var i = 0; i < list.length; i += 2) {\n var x = parseFloat(list[i]);\n var y = parseFloat(list[i + 1]);\n points.push([x, y]);\n }\n return points;\n}\nfunction parseAttributes(xmlNode, el, defsUsePending, onlyInlineStyle, isTextGroup) {\n var disp = el;\n var inheritedStyle = disp.__inheritedStyle = disp.__inheritedStyle || {};\n var selfStyle = {};\n if (xmlNode.nodeType === 1) {\n parseTransformAttribute(xmlNode, el);\n parseInlineStyle(xmlNode, inheritedStyle, selfStyle);\n if (!onlyInlineStyle) {\n parseAttributeStyle(xmlNode, inheritedStyle, selfStyle);\n }\n }\n disp.style = disp.style || {};\n if (inheritedStyle.fill != null) {\n disp.style.fill = getFillStrokeStyle(disp, 'fill', inheritedStyle.fill, defsUsePending);\n }\n if (inheritedStyle.stroke != null) {\n disp.style.stroke = getFillStrokeStyle(disp, 'stroke', inheritedStyle.stroke, defsUsePending);\n }\n each([\n 'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\n ], function (propName) {\n if (inheritedStyle[propName] != null) {\n disp.style[propName] = parseFloat(inheritedStyle[propName]);\n }\n });\n each([\n 'lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign'\n ], function (propName) {\n if (inheritedStyle[propName] != null) {\n disp.style[propName] = inheritedStyle[propName];\n }\n });\n if (isTextGroup) {\n disp.__selfStyle = selfStyle;\n }\n if (inheritedStyle.lineDash) {\n disp.style.lineDash = map(splitNumberSequence(inheritedStyle.lineDash), function (str) {\n return parseFloat(str);\n });\n }\n if (inheritedStyle.visibility === 'hidden' || inheritedStyle.visibility === 'collapse') {\n disp.invisible = true;\n }\n if (inheritedStyle.display === 'none') {\n disp.ignore = true;\n }\n}\nfunction applyTextAlignment(text, parentGroup) {\n var parentSelfStyle = parentGroup.__selfStyle;\n if (parentSelfStyle) {\n var textBaseline = parentSelfStyle.textBaseline;\n var zrTextBaseline = textBaseline;\n if (!textBaseline || textBaseline === 'auto') {\n zrTextBaseline = 'alphabetic';\n }\n else if (textBaseline === 'baseline') {\n zrTextBaseline = 'alphabetic';\n }\n else if (textBaseline === 'before-edge' || textBaseline === 'text-before-edge') {\n zrTextBaseline = 'top';\n }\n else if (textBaseline === 'after-edge' || textBaseline === 'text-after-edge') {\n zrTextBaseline = 'bottom';\n }\n else if (textBaseline === 'central' || textBaseline === 'mathematical') {\n zrTextBaseline = 'middle';\n }\n text.style.textBaseline = zrTextBaseline;\n }\n var parentInheritedStyle = parentGroup.__inheritedStyle;\n if (parentInheritedStyle) {\n var textAlign = parentInheritedStyle.textAlign;\n var zrTextAlign = textAlign;\n if (textAlign) {\n if (textAlign === 'middle') {\n zrTextAlign = 'center';\n }\n text.style.textAlign = zrTextAlign;\n }\n }\n}\nvar urlRegex = /^url\\(\\s*#(.*?)\\)/;\nfunction getFillStrokeStyle(el, method, str, defsUsePending) {\n var urlMatch = str && str.match(urlRegex);\n if (urlMatch) {\n var url = trim(urlMatch[1]);\n defsUsePending.push([el, method, url]);\n return;\n }\n if (str === 'none') {\n str = null;\n }\n return str;\n}\nfunction applyDefs(defs, defsUsePending) {\n for (var i = 0; i < defsUsePending.length; i++) {\n var item = defsUsePending[i];\n item[0].style[item[1]] = defs[item[2]];\n }\n}\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction splitNumberSequence(rawStr) {\n return rawStr.match(numberReg) || [];\n}\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.eE,]*)\\)/g;\nvar DEGREE_TO_ANGLE = Math.PI / 180;\nfunction parseTransformAttribute(xmlNode, node) {\n var transform = xmlNode.getAttribute('transform');\n if (transform) {\n transform = transform.replace(/,/g, ' ');\n var transformOps_1 = [];\n var mt = null;\n transform.replace(transformRegex, function (str, type, value) {\n transformOps_1.push(type, value);\n return '';\n });\n for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\n var value = transformOps_1[i];\n var type = transformOps_1[i - 1];\n var valueArr = splitNumberSequence(value);\n mt = mt || matrix.create();\n switch (type) {\n case 'translate':\n matrix.translate(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\n break;\n case 'scale':\n matrix.scale(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\n break;\n case 'rotate':\n matrix.rotate(mt, mt, -parseFloat(valueArr[0]) * DEGREE_TO_ANGLE, [\n parseFloat(valueArr[1] || '0'),\n parseFloat(valueArr[2] || '0')\n ]);\n break;\n case 'skewX':\n var sx = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);\n matrix.mul(mt, [1, 0, sx, 1, 0, 0], mt);\n break;\n case 'skewY':\n var sy = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);\n matrix.mul(mt, [1, sy, 0, 1, 0, 0], mt);\n break;\n case 'matrix':\n mt[0] = parseFloat(valueArr[0]);\n mt[1] = parseFloat(valueArr[1]);\n mt[2] = parseFloat(valueArr[2]);\n mt[3] = parseFloat(valueArr[3]);\n mt[4] = parseFloat(valueArr[4]);\n mt[5] = parseFloat(valueArr[5]);\n break;\n }\n }\n node.setLocalTransform(mt);\n }\n}\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\nfunction parseInlineStyle(xmlNode, inheritableStyleResult, selfStyleResult) {\n var style = xmlNode.getAttribute('style');\n if (!style) {\n return;\n }\n styleRegex.lastIndex = 0;\n var styleRegResult;\n while ((styleRegResult = styleRegex.exec(style)) != null) {\n var svgStlAttr = styleRegResult[1];\n var zrInheritableStlAttr = hasOwn(INHERITABLE_STYLE_ATTRIBUTES_MAP, svgStlAttr)\n ? INHERITABLE_STYLE_ATTRIBUTES_MAP[svgStlAttr]\n : null;\n if (zrInheritableStlAttr) {\n inheritableStyleResult[zrInheritableStlAttr] = styleRegResult[2];\n }\n var zrSelfStlAttr = hasOwn(SELF_STYLE_ATTRIBUTES_MAP, svgStlAttr)\n ? SELF_STYLE_ATTRIBUTES_MAP[svgStlAttr]\n : null;\n if (zrSelfStlAttr) {\n selfStyleResult[zrSelfStlAttr] = styleRegResult[2];\n }\n }\n}\nfunction parseAttributeStyle(xmlNode, inheritableStyleResult, selfStyleResult) {\n for (var i = 0; i < INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {\n var svgAttrName = INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS[i];\n var attrValue = xmlNode.getAttribute(svgAttrName);\n if (attrValue != null) {\n inheritableStyleResult[INHERITABLE_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;\n }\n }\n for (var i = 0; i < SELF_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {\n var svgAttrName = SELF_STYLE_ATTRIBUTES_MAP_KEYS[i];\n var attrValue = xmlNode.getAttribute(svgAttrName);\n if (attrValue != null) {\n selfStyleResult[SELF_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;\n }\n }\n}\nexport function makeViewBoxTransform(viewBoxRect, boundingRect) {\n var scaleX = boundingRect.width / viewBoxRect.width;\n var scaleY = boundingRect.height / viewBoxRect.height;\n var scale = Math.min(scaleX, scaleY);\n return {\n scale: scale,\n x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + (boundingRect.x + boundingRect.width / 2),\n y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + (boundingRect.y + boundingRect.height / 2)\n };\n}\nexport function parseSVG(xml, opt) {\n var parser = new SVGParser();\n return parser.parse(xml, opt);\n}\nexport { parseXML };\n", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parseSVG, makeViewBoxTransform } from 'zrender/lib/tool/parseSVG.js';\nimport Group from 'zrender/lib/graphic/Group.js';\nimport Rect from 'zrender/lib/graphic/shape/Rect.js';\nimport { assert, createHashMap, each } from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { parseXML } from 'zrender/lib/tool/parseXML.js';\nimport { GeoSVGRegion } from './Region.js';\n/**\n * \"region available\" means that: enable users to set attribute `name=\"xxx\"` on those tags\n * to make it be a region.\n * 1. region styles and its label styles can be defined in echarts opton:\n * ```js\n * geo: {\n * regions: [{\n * name: 'xxx',\n * itemStyle: { ... },\n * label: { ... }\n * }, {\n * ...\n * },\n * ...]\n * };\n * ```\n * 2. name can be duplicated in different SVG tag. All of the tags with the same name share\n * a region option. For exampel if there are two <path> representing two lung lobes. They have\n * no common parents but both of them need to display label \"lung\" inside.\n */\nvar REGION_AVAILABLE_SVG_TAG_MAP = createHashMap(['rect', 'circle', 'line', 'ellipse', 'polygon', 'polyline', 'path',\n// <text> <tspan> are also enabled because some SVG might paint text itself,\n// but still need to trigger events or tooltip.\n'text', 'tspan',\n// <g> is also enabled because this case: if multiple tags share one name\n// and need label displayed, every tags will display the name, which is not\n// expected. So we can put them into a <g name=\"xxx\">. Thereby only one label\n// displayed and located based on the bounding rect of the <g>.\n'g']);\nvar GeoSVGResource = /** @class */function () {\n function GeoSVGResource(mapName, svg) {\n this.type = 'geoSVG';\n // All used graphics. key: hostKey, value: root\n this._usedGraphicMap = createHashMap();\n // All unused graphics.\n this._freedGraphics = [];\n this._mapName = mapName;\n // Only perform parse to XML object here, which might be time\n // consiming for large SVG.\n // Although convert XML to zrender element is also time consiming,\n // if we do it here, the clone of zrender elements has to be\n // required. So we do it once for each geo instance, util real\n // performance issues call for optimizing it.\n this._parsedXML = parseXML(svg);\n }\n GeoSVGResource.prototype.load = function /* nameMap: NameMap */\n () {\n // In the \"load\" stage, graphic need to be built to\n // get boundingRect for geo coordinate system.\n var firstGraphic = this._firstGraphic;\n // Create the return data structure only when first graphic created.\n // Because they will be used in geo coordinate system update stage,\n // and `regions` will be mounted at `geo` coordinate system,\n // in which there is no \"view\" info, so that it should better not to\n // make references to graphic elements.\n if (!firstGraphic) {\n firstGraphic = this._firstGraphic = this._buildGraphic(this._parsedXML);\n this._freedGraphics.push(firstGraphic);\n this._boundingRect = this._firstGraphic.boundingRect.clone();\n // PENDING: `nameMap` will not be supported until some real requirement come.\n // if (nameMap) {\n // named = applyNameMap(named, nameMap);\n // }\n var _a = createRegions(firstGraphic.named),\n regions = _a.regions,\n regionsMap = _a.regionsMap;\n this._regions = regions;\n this._regionsMap = regionsMap;\n }\n return {\n boundingRect: this._boundingRect,\n regions: this._regions,\n regionsMap: this._regionsMap\n };\n };\n GeoSVGResource.prototype._buildGraphic = function (svgXML) {\n var result;\n var rootFromParse;\n try {\n result = svgXML && parseSVG(svgXML, {\n ignoreViewBox: true,\n ignoreRootClip: true\n }) || {};\n rootFromParse = result.root;\n assert(rootFromParse != null);\n } catch (e) {\n throw new Error('Invalid svg format\\n' + e.message);\n }\n // Note: we keep the covenant that the root has no transform. So always add an extra root.\n var root = new Group();\n root.add(rootFromParse);\n root.isGeoSVGGraphicRoot = true;\n // [THE_RULE_OF_VIEWPORT_AND_VIEWBOX]\n //\n // Consider: `<svg width=\"...\" height=\"...\" viewBox=\"...\">`\n // - the `width/height` we call it `svgWidth/svgHeight` for short.\n // - `(0, 0, svgWidth, svgHeight)` defines the viewport of the SVG, or say,\n // \"viewport boundingRect\", or `boundingRect` for short.\n // - `viewBox` defines the transform from the real content ot the viewport.\n // `viewBox` has the same unit as the content of SVG.\n // If `viewBox` exists, a transform is defined, so the unit of `svgWidth/svgHeight` become\n // different from the content of SVG. Otherwise, they are the same.\n //\n // If both `svgWidth/svgHeight/viewBox` are specified in a SVG file, the transform rule will be:\n // 0. `boundingRect` is `(0, 0, svgWidth, svgHeight)`. Set it to Geo['_rect'] (View['_rect']).\n // 1. Make a transform from `viewBox` to `boundingRect`.\n // Note: only support `preserveAspectRatio 'xMidYMid'` here. That is, this transform will preserve\n // the aspect ratio.\n // 2. Make a transform from boundingRect to Geo['_viewRect'] (View['_viewRect'])\n // (`Geo`/`View` will do this job).\n // Note: this transform might not preserve aspect radio, which depending on how users specify\n // viewRect in echarts option (e.g., `geo.left/top/width/height` will not preserve aspect ratio,\n // but `geo.layoutCenter/layoutSize` will preserve aspect ratio).\n //\n // If `svgWidth/svgHeight` not specified, we use `viewBox` as the `boundingRect` to make the SVG\n // layout look good.\n //\n // If neither `svgWidth/svgHeight` nor `viewBox` are not specified, we calculate the boundingRect\n // of the SVG content and use them to make SVG layout look good.\n var svgWidth = result.width;\n var svgHeight = result.height;\n var viewBoxRect = result.viewBoxRect;\n var boundingRect = this._boundingRect;\n if (!boundingRect) {\n var bRectX = void 0;\n var bRectY = void 0;\n var bRectWidth = void 0;\n var bRectHeight = void 0;\n if (svgWidth != null) {\n bRectX = 0;\n bRectWidth = svgWidth;\n } else if (viewBoxRect) {\n bRectX = viewBoxRect.x;\n bRectWidth = viewBoxRect.width;\n }\n if (svgHeight != null) {\n bRectY = 0;\n bRectHeight = svgHeight;\n } else if (viewBoxRect) {\n bRectY = viewBoxRect.y;\n bRectHeight = viewBoxRect.height;\n }\n // If both viewBox and svgWidth/svgHeight not specified,\n // we have to determine how to layout those element to make them look good.\n if (bRectX == null || bRectY == null) {\n var calculatedBoundingRect = rootFromParse.getBoundingRect();\n if (bRectX == null) {\n bRectX = calculatedBoundingRect.x;\n bRectWidth = calculatedBoundingRect.width;\n }\n if (bRectY == null) {\n bRectY = calculatedBoundingRect.y;\n bRectHeight = calculatedBoundingRect.height;\n }\n }\n boundingRect = this._boundingRect = new BoundingRect(bRectX, bRectY, bRectWidth, bRectHeight);\n }\n if (viewBoxRect) {\n var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect);\n // Only support `preserveAspectRatio 'xMidYMid'`\n rootFromParse.scaleX = rootFromParse.scaleY = viewBoxTransform.scale;\n rootFromParse.x = viewBoxTransform.x;\n rootFromParse.y = viewBoxTransform.y;\n }\n // SVG needs to clip based on `viewBox`. And some SVG files really rely on this feature.\n // They do not strictly confine all of the content inside a display rect, but deliberately\n // use a `viewBox` to define a displayable rect.\n // PENDING:\n // The drawback of the `setClipPath` here is: the region label (genereted by echarts) near the\n // edge might also be clipped, because region labels are put as `textContent` of the SVG path.\n root.setClipPath(new Rect({\n shape: boundingRect.plain()\n }));\n var named = [];\n each(result.named, function (namedItem) {\n if (REGION_AVAILABLE_SVG_TAG_MAP.get(namedItem.svgNodeTagLower) != null) {\n named.push(namedItem);\n setSilent(namedItem.el);\n }\n });\n return {\n root: root,\n boundingRect: boundingRect,\n named: named\n };\n };\n /**\n * Consider:\n * (1) One graphic element can not be shared by different `geoView` running simultaneously.\n * Notice, also need to consider multiple echarts instances share a `mapRecord`.\n * (2) Converting SVG to graphic elements is time consuming.\n * (3) In the current architecture, `load` should be called frequently to get boundingRect,\n * and it is called without view info.\n * So we maintain graphic elements in this module, and enables `view` to use/return these\n * graphics from/to the pool with it's uid.\n */\n GeoSVGResource.prototype.useGraphic = function (hostKey /* , nameMap: NameMap */) {\n var usedRootMap = this._usedGraphicMap;\n var svgGraphic = usedRootMap.get(hostKey);\n if (svgGraphic) {\n return svgGraphic;\n }\n svgGraphic = this._freedGraphics.pop()\n // use the first boundingRect to avoid duplicated boundingRect calculation.\n || this._buildGraphic(this._parsedXML);\n usedRootMap.set(hostKey, svgGraphic);\n // PENDING: `nameMap` will not be supported until some real requirement come.\n // `nameMap` can only be obtained from echarts option.\n // The original `named` must not be modified.\n // if (nameMap) {\n // svgGraphic = extend({}, svgGraphic);\n // svgGraphic.named = applyNameMap(svgGraphic.named, nameMap);\n // }\n return svgGraphic;\n };\n GeoSVGResource.prototype.freeGraphic = function (hostKey) {\n var usedRootMap = this._usedGraphicMap;\n var svgGraphic = usedRootMap.get(hostKey);\n if (svgGraphic) {\n usedRootMap.removeKey(hostKey);\n this._freedGraphics.push(svgGraphic);\n }\n };\n return GeoSVGResource;\n}();\nexport { GeoSVGResource };\nfunction setSilent(el) {\n // Only named element has silent: false, other elements should\n // act as background and has no user interaction.\n el.silent = false;\n // text|tspan will be converted to group.\n if (el.isGroup) {\n el.traverse(function (child) {\n child.silent = false;\n });\n }\n}\nfunction createRegions(named) {\n var regions = [];\n var regionsMap = createHashMap();\n // Create resions only for the first graphic.\n each(named, function (namedItem) {\n // Region has feature to calculate center for tooltip or other features.\n // If there is a <g name=\"xxx\">, the center should be the center of the\n // bounding rect of the g.\n if (namedItem.namedFrom != null) {\n return;\n }\n var region = new GeoSVGRegion(namedItem.name, namedItem.el);\n // PENDING: if `nameMap` supported, this region can not be mounted on\n // `this`, but can only be created each time `load()` called.\n regions.push(region);\n // PENDING: if multiple tag named with the same name, only one will be\n // found by `_regionsMap`. `_regionsMap` is used to find a coordinate\n // by name. We use `region.getCenter()` as the coordinate.\n regionsMap.set(namedItem.name, region);\n });\n return {\n regions: regions,\n regionsMap: regionsMap\n };\n}\n// PENDING: `nameMap` will not be supported until some real requirement come.\n// /**\n// * Use the alias in geoNameMap.\n// * The input `named` must not be modified.\n// */\n// function applyNameMap(\n// named: GeoSVGGraphicRecord['named'],\n// nameMap: NameMap\n// ): GeoSVGGraphicRecord['named'] {\n// const result = [] as GeoSVGGraphicRecord['named'];\n// for (let i = 0; i < named.length; i++) {\n// let regionGraphic = named[i];\n// const name = regionGraphic.name;\n// if (nameMap && nameMap.hasOwnProperty(name)) {\n// regionGraphic = extend({}, regionGraphic);\n// regionGraphic.name = name;\n// }\n// result.push(regionGraphic);\n// }\n// return result;\n// }", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 南海诸岛\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { GeoJSONRegion } from '../Region.js';\nvar geoCoord = [126, 25];\nvar nanhaiName = '南海诸岛';\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\nfor (var i = 0; i < points.length; i++) {\n for (var k = 0; k < points[i].length; k++) {\n points[i][k][0] /= 10.5;\n points[i][k][1] /= -10.5 / 0.75;\n points[i][k][0] += geoCoord[0];\n points[i][k][1] += geoCoord[1];\n }\n}\nexport default function fixNanhai(mapType, regions) {\n if (mapType === 'china') {\n for (var i = 0; i < regions.length; i++) {\n // Already exists.\n if (regions[i].name === nanhaiName) {\n return;\n }\n }\n regions.push(new GeoJSONRegion(nanhaiName, zrUtil.map(points, function (exterior) {\n return {\n type: 'polygon',\n exterior: exterior\n };\n }), geoCoord));\n }\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar coordsOffsetMap = {\n '南海诸岛': [32, 80],\n // 全国\n '广东': [0, -10],\n '香港': [10, 5],\n '澳门': [-10, 10],\n // '北京': [-10, 0],\n '天津': [5, 5]\n};\nexport default function fixTextCoords(mapType, region) {\n if (mapType === 'china') {\n var coordFix = coordsOffsetMap[region.name];\n if (coordFix) {\n var cp = region.getCenter();\n cp[0] += coordFix[0] / 10.5;\n cp[1] += -coordFix[1] / (10.5 / 0.75);\n region.setCenter(cp);\n }\n }\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 钓鱼岛\n// let Region = require('../Region');\n// let zrUtil = require('zrender/lib/core/util');\n// let geoCoord = [126, 25];\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\nexport default function fixDiaoyuIsland(mapType, region) {\n if (mapType === 'china' && region.name === '台湾') {\n region.geometries.push({\n type: 'polygon',\n exterior: points[0]\n });\n }\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, isString, createHashMap, hasOwn } from 'zrender/lib/core/util.js';\nimport parseGeoJson from './parseGeoJson.js';\n// Built-in GEO fixer.\nimport fixNanhai from './fix/nanhai.js';\nimport fixTextCoord from './fix/textCoord.js';\nimport fixDiaoyuIsland from './fix/diaoyuIsland.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nvar DEFAULT_NAME_PROPERTY = 'name';\nvar GeoJSONResource = /** @class */function () {\n function GeoJSONResource(mapName, geoJSON, specialAreas) {\n this.type = 'geoJSON';\n this._parsedMap = createHashMap();\n this._mapName = mapName;\n this._specialAreas = specialAreas;\n // PENDING: delay the parse to the first usage to rapid up the FMP?\n this._geoJSON = parseInput(geoJSON);\n }\n /**\n * @param nameMap can be null/undefined\n * @param nameProperty can be null/undefined\n */\n GeoJSONResource.prototype.load = function (nameMap, nameProperty) {\n nameProperty = nameProperty || DEFAULT_NAME_PROPERTY;\n var parsed = this._parsedMap.get(nameProperty);\n if (!parsed) {\n var rawRegions = this._parseToRegions(nameProperty);\n parsed = this._parsedMap.set(nameProperty, {\n regions: rawRegions,\n boundingRect: calculateBoundingRect(rawRegions)\n });\n }\n var regionsMap = createHashMap();\n var finalRegions = [];\n each(parsed.regions, function (region) {\n var regionName = region.name;\n // Try use the alias in geoNameMap\n if (nameMap && hasOwn(nameMap, regionName)) {\n region = region.cloneShallow(regionName = nameMap[regionName]);\n }\n finalRegions.push(region);\n regionsMap.set(regionName, region);\n });\n return {\n regions: finalRegions,\n boundingRect: parsed.boundingRect || new BoundingRect(0, 0, 0, 0),\n regionsMap: regionsMap\n };\n };\n GeoJSONResource.prototype._parseToRegions = function (nameProperty) {\n var mapName = this._mapName;\n var geoJSON = this._geoJSON;\n var rawRegions;\n // https://jsperf.com/try-catch-performance-overhead\n try {\n rawRegions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\n } catch (e) {\n throw new Error('Invalid geoJson format\\n' + e.message);\n }\n fixNanhai(mapName, rawRegions);\n each(rawRegions, function (region) {\n var regionName = region.name;\n fixTextCoord(mapName, region);\n fixDiaoyuIsland(mapName, region);\n // Some area like Alaska in USA map needs to be tansformed\n // to look better\n var specialArea = this._specialAreas && this._specialAreas[regionName];\n if (specialArea) {\n region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n }\n }, this);\n return rawRegions;\n };\n /**\n * Only for exporting to users.\n * **MUST NOT** used internally.\n */\n GeoJSONResource.prototype.getMapForUser = function () {\n return {\n // For backward compatibility, use geoJson\n // PENDING: it has been returning them without clone.\n // do we need to avoid outsite modification?\n geoJson: this._geoJSON,\n geoJSON: this._geoJSON,\n specialAreas: this._specialAreas\n };\n };\n return GeoJSONResource;\n}();\nexport { GeoJSONResource };\nfunction calculateBoundingRect(regions) {\n var rect;\n for (var i = 0; i < regions.length; i++) {\n var regionRect = regions[i].getBoundingRect();\n rect = rect || regionRect.clone();\n rect.union(regionRect);\n }\n return rect;\n}\nfunction parseInput(source) {\n return !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap } from 'zrender/lib/core/util.js';\nimport { GeoSVGResource } from './GeoSVGResource.js';\nimport { GeoJSONResource } from './GeoJSONResource.js';\nvar storage = createHashMap();\nexport default {\n /**\n * Compatible with previous `echarts.registerMap`.\n *\n * @usage\n * ```js\n *\n * echarts.registerMap('USA', geoJson, specialAreas);\n *\n * echarts.registerMap('USA', {\n * geoJson: geoJson,\n * specialAreas: {...}\n * });\n * echarts.registerMap('USA', {\n * geoJSON: geoJson,\n * specialAreas: {...}\n * });\n *\n * echarts.registerMap('airport', {\n * svg: svg\n * }\n * ```\n *\n * Note:\n * Do not support that register multiple geoJSON or SVG\n * one map name. Because different geoJSON and SVG have\n * different unit. It's not easy to make sure how those\n * units are mapping/normalize.\n * If intending to use multiple geoJSON or SVG, we can\n * use multiple geo coordinate system.\n */\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\n if (rawDef.svg) {\n var resource = new GeoSVGResource(mapName, rawDef.svg);\n storage.set(mapName, resource);\n } else {\n // Recommend:\n // echarts.registerMap('eu', { geoJSON: xxx, specialAreas: xxx });\n // Backward compatibility:\n // echarts.registerMap('eu', geoJSON, specialAreas);\n // echarts.registerMap('eu', { geoJson: xxx, specialAreas: xxx });\n var geoJSON = rawDef.geoJson || rawDef.geoJSON;\n if (geoJSON && !rawDef.features) {\n rawSpecialAreas = rawDef.specialAreas;\n } else {\n geoJSON = rawDef;\n }\n var resource = new GeoJSONResource(mapName, geoJSON, rawSpecialAreas);\n storage.set(mapName, resource);\n }\n },\n getGeoResource: function (mapName) {\n return storage.get(mapName);\n },\n /**\n * Only for exporting to users.\n * **MUST NOT** used internally.\n */\n getMapForUser: function (mapName) {\n var resource = storage.get(mapName);\n // Do not support return SVG until some real requirement come.\n return resource && resource.type === 'geoJSON' && resource.getMapForUser();\n },\n load: function (mapName, nameMap, nameProperty) {\n var resource = storage.get(mapName);\n if (!resource) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\n }\n return;\n }\n return resource.load(nameMap, nameProperty);\n }\n};", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport View from '../View.js';\nimport geoSourceManager from './geoSourceManager.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nimport { warn } from '../../util/log.js';\nvar GEO_DEFAULT_PARAMS = {\n 'geoJSON': {\n aspectScale: 0.75,\n invertLongitute: true\n },\n 'geoSVG': {\n aspectScale: 1,\n invertLongitute: false\n }\n};\nexport var geo2DDimensions = ['lng', 'lat'];\nvar Geo = /** @class */function (_super) {\n __extends(Geo, _super);\n function Geo(name, map, opt) {\n var _this = _super.call(this, name) || this;\n _this.dimensions = geo2DDimensions;\n _this.type = 'geo';\n // Only store specified name coord via `addGeoCoord`.\n _this._nameCoordMap = zrUtil.createHashMap();\n _this.map = map;\n var projection = opt.projection;\n var source = geoSourceManager.load(map, opt.nameMap, opt.nameProperty);\n var resource = geoSourceManager.getGeoResource(map);\n var resourceType = _this.resourceType = resource ? resource.type : null;\n var regions = _this.regions = source.regions;\n var defaultParams = GEO_DEFAULT_PARAMS[resource.type];\n _this._regionsMap = source.regionsMap;\n _this.regions = source.regions;\n if (process.env.NODE_ENV !== 'production' && projection) {\n // Do some check\n if (resourceType === 'geoSVG') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Map \" + map + \" with SVG source can't use projection. Only GeoJSON source supports projection.\");\n }\n projection = null;\n }\n if (!(projection.project && projection.unproject)) {\n if (process.env.NODE_ENV !== 'production') {\n warn('project and unproject must be both provided in the projeciton.');\n }\n projection = null;\n }\n }\n _this.projection = projection;\n var boundingRect;\n if (projection) {\n // Can't reuse the raw bounding rect\n for (var i = 0; i < regions.length; i++) {\n var regionRect = regions[i].getBoundingRect(projection);\n boundingRect = boundingRect || regionRect.clone();\n boundingRect.union(regionRect);\n }\n } else {\n boundingRect = source.boundingRect;\n }\n _this.setBoundingRect(boundingRect.x, boundingRect.y, boundingRect.width, boundingRect.height);\n // aspectScale and invertLongitute actually is the parameters default raw projection.\n // So we ignore them if projection is given.\n // Ignore default aspect scale if projection exits.\n _this.aspectScale = projection ? 1 : zrUtil.retrieve2(opt.aspectScale, defaultParams.aspectScale);\n // Not invert longitude if projection exits.\n _this._invertLongitute = projection ? false : defaultParams.invertLongitute;\n return _this;\n }\n Geo.prototype._transformTo = function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var invertLongitute = this._invertLongitute;\n rect = rect.clone();\n if (invertLongitute) {\n // Longitude is inverted.\n rect.y = -rect.y - rect.height;\n }\n var rawTransformable = this._rawTransformable;\n rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n var rawParent = rawTransformable.parent;\n rawTransformable.parent = null;\n rawTransformable.decomposeTransform();\n rawTransformable.parent = rawParent;\n if (invertLongitute) {\n rawTransformable.scaleY = -rawTransformable.scaleY;\n }\n this._updateTransform();\n };\n Geo.prototype.getRegion = function (name) {\n return this._regionsMap.get(name);\n };\n Geo.prototype.getRegionByCoord = function (coord) {\n var regions = this.regions;\n for (var i = 0; i < regions.length; i++) {\n var region = regions[i];\n if (region.type === 'geoJSON' && region.contain(coord)) {\n return regions[i];\n }\n }\n };\n /**\n * Add geoCoord for indexing by name\n */\n Geo.prototype.addGeoCoord = function (name, geoCoord) {\n this._nameCoordMap.set(name, geoCoord);\n };\n /**\n * Get geoCoord by name\n */\n Geo.prototype.getGeoCoord = function (name) {\n var region = this._regionsMap.get(name);\n // Calculate center only on demand.\n return this._nameCoordMap.get(name) || region && region.getCenter();\n };\n Geo.prototype.dataToPoint = function (data, noRoam, out) {\n if (zrUtil.isString(data)) {\n // Map area name to geoCoord\n data = this.getGeoCoord(data);\n }\n if (data) {\n var projection = this.projection;\n if (projection) {\n // projection may return null point.\n data = projection.project(data);\n }\n return data && this.projectedToPoint(data, noRoam, out);\n }\n };\n Geo.prototype.pointToData = function (point) {\n var projection = this.projection;\n if (projection) {\n // projection may return null point.\n point = projection.unproject(point);\n }\n return point && this.pointToProjected(point);\n };\n /**\n * Point to projected data. Same with pointToData when projection is used.\n */\n Geo.prototype.pointToProjected = function (point) {\n return _super.prototype.pointToData.call(this, point);\n };\n Geo.prototype.projectedToPoint = function (projected, noRoam, out) {\n return _super.prototype.dataToPoint.call(this, projected, noRoam, out);\n };\n Geo.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.dataToPoint(value) : null;\n };\n Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.pointToData(pixel) : null;\n };\n return Geo;\n}(View);\n;\nzrUtil.mixin(Geo, View);\nfunction getCoordSys(finder) {\n var geoModel = finder.geoModel;\n var seriesModel = finder.seriesModel;\n return geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem // For map series.\n || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem : null;\n}\nexport default Geo;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Geo, { geo2DDimensions } from './Geo.js';\nimport * as layout from '../../util/layout.js';\nimport * as numberUtil from '../../util/number.js';\nimport geoSourceManager from './geoSourceManager.js';\nimport * as vector from 'zrender/lib/core/vector.js';\n/**\n * Resize method bound to the geo\n */\nfunction resizeGeo(geoModel, api) {\n var boundingCoords = geoModel.get('boundingCoords');\n if (boundingCoords != null) {\n var leftTop_1 = boundingCoords[0];\n var rightBottom_1 = boundingCoords[1];\n if (!(isFinite(leftTop_1[0]) && isFinite(leftTop_1[1]) && isFinite(rightBottom_1[0]) && isFinite(rightBottom_1[1]))) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Invalid boundingCoords');\n }\n } else {\n // Sample around the lng/lat rect and use projection to calculate actual bounding rect.\n var projection_1 = this.projection;\n if (projection_1) {\n var xMin = leftTop_1[0];\n var yMin = leftTop_1[1];\n var xMax = rightBottom_1[0];\n var yMax = rightBottom_1[1];\n leftTop_1 = [Infinity, Infinity];\n rightBottom_1 = [-Infinity, -Infinity];\n // TODO better way?\n var sampleLine = function (x0, y0, x1, y1) {\n var dx = x1 - x0;\n var dy = y1 - y0;\n for (var i = 0; i <= 100; i++) {\n var p = i / 100;\n var pt = projection_1.project([x0 + dx * p, y0 + dy * p]);\n vector.min(leftTop_1, leftTop_1, pt);\n vector.max(rightBottom_1, rightBottom_1, pt);\n }\n };\n // Top\n sampleLine(xMin, yMin, xMax, yMin);\n // Right\n sampleLine(xMax, yMin, xMax, yMax);\n // Bottom\n sampleLine(xMax, yMax, xMin, yMax);\n // Left\n sampleLine(xMin, yMax, xMax, yMin);\n }\n this.setBoundingRect(leftTop_1[0], leftTop_1[1], rightBottom_1[0] - leftTop_1[0], rightBottom_1[1] - leftTop_1[1]);\n }\n }\n var rect = this.getBoundingRect();\n var centerOption = geoModel.get('layoutCenter');\n var sizeOption = geoModel.get('layoutSize');\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n var aspect = rect.width / rect.height * this.aspectScale;\n var useCenterAndSize = false;\n var center;\n var size;\n if (centerOption && sizeOption) {\n center = [numberUtil.parsePercent(centerOption[0], viewWidth), numberUtil.parsePercent(centerOption[1], viewHeight)];\n size = numberUtil.parsePercent(sizeOption, Math.min(viewWidth, viewHeight));\n if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n useCenterAndSize = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\n }\n }\n }\n var viewRect;\n if (useCenterAndSize) {\n viewRect = {};\n if (aspect > 1) {\n // Width is same with size\n viewRect.width = size;\n viewRect.height = size / aspect;\n } else {\n viewRect.height = size;\n viewRect.width = size * aspect;\n }\n viewRect.y = center[1] - viewRect.height / 2;\n viewRect.x = center[0] - viewRect.width / 2;\n } else {\n // Use left/top/width/height\n var boxLayoutOption = geoModel.getBoxLayoutParams();\n boxLayoutOption.aspect = aspect;\n viewRect = layout.getLayoutRect(boxLayoutOption, {\n width: viewWidth,\n height: viewHeight\n });\n }\n this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n this.setCenter(geoModel.get('center'), api);\n this.setZoom(geoModel.get('zoom'));\n}\n// Back compat for ECharts2, where the coord map is set on map series:\n// {type: 'map', geoCoord: {'cityA': [116.46,39.92], 'cityA': [119.12,24.61]}},\nfunction setGeoCoords(geo, model) {\n zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n geo.addGeoCoord(name, geoCoord);\n });\n}\nvar GeoCreator = /** @class */function () {\n function GeoCreator() {\n // For deciding which dimensions to use when creating list data\n this.dimensions = geo2DDimensions;\n }\n GeoCreator.prototype.create = function (ecModel, api) {\n var geoList = [];\n function getCommonGeoProperties(model) {\n return {\n nameProperty: model.get('nameProperty'),\n aspectScale: model.get('aspectScale'),\n projection: model.get('projection')\n };\n }\n // FIXME Create each time may be slow\n ecModel.eachComponent('geo', function (geoModel, idx) {\n var mapName = geoModel.get('map');\n var geo = new Geo(mapName + idx, mapName, zrUtil.extend({\n nameMap: geoModel.get('nameMap')\n }, getCommonGeoProperties(geoModel)));\n geo.zoomLimit = geoModel.get('scaleLimit');\n geoList.push(geo);\n // setGeoCoords(geo, geoModel);\n geoModel.coordinateSystem = geo;\n geo.model = geoModel;\n // Inject resize method\n geo.resize = resizeGeo;\n geo.resize(geoModel, api);\n });\n ecModel.eachSeries(function (seriesModel) {\n var coordSys = seriesModel.get('coordinateSystem');\n if (coordSys === 'geo') {\n var geoIndex = seriesModel.get('geoIndex') || 0;\n seriesModel.coordinateSystem = geoList[geoIndex];\n }\n });\n // If has map series\n var mapModelGroupBySeries = {};\n ecModel.eachSeriesByType('map', function (seriesModel) {\n if (!seriesModel.getHostGeoModel()) {\n var mapType = seriesModel.getMapType();\n mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n mapModelGroupBySeries[mapType].push(seriesModel);\n }\n });\n zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n return singleMapSeries.get('nameMap');\n });\n var geo = new Geo(mapType, mapType, zrUtil.extend({\n nameMap: zrUtil.mergeAll(nameMapList)\n }, getCommonGeoProperties(mapSeries[0])));\n geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n return singleMapSeries.get('scaleLimit');\n }));\n geoList.push(geo);\n // Inject resize method\n geo.resize = resizeGeo;\n geo.resize(mapSeries[0], api);\n zrUtil.each(mapSeries, function (singleMapSeries) {\n singleMapSeries.coordinateSystem = geo;\n setGeoCoords(geo, singleMapSeries);\n });\n });\n return geoList;\n };\n /**\n * Fill given regions array\n */\n GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap, nameProperty) {\n // Not use the original\n var regionsArr = (originRegionArr || []).slice();\n var dataNameMap = zrUtil.createHashMap();\n for (var i = 0; i < regionsArr.length; i++) {\n dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n }\n var source = geoSourceManager.load(mapName, nameMap, nameProperty);\n zrUtil.each(source.regions, function (region) {\n var name = region.name;\n !dataNameMap.get(name) && regionsArr.push({\n name: name\n });\n });\n return regionsArr;\n };\n return GeoCreator;\n}();\nvar geoCreator = new GeoCreator();\nexport default geoCreator;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport ComponentModel from '../../model/Component.js';\nimport Model from '../../model/Model.js';\nimport geoCreator from './geoCreator.js';\nimport geoSourceManager from './geoSourceManager.js';\n;\nvar GeoModel = /** @class */function (_super) {\n __extends(GeoModel, _super);\n function GeoModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = GeoModel.type;\n return _this;\n }\n GeoModel.prototype.init = function (option, parentModel, ecModel) {\n var source = geoSourceManager.getGeoResource(option.map);\n if (source && source.type === 'geoJSON') {\n var itemStyle = option.itemStyle = option.itemStyle || {};\n if (!('color' in itemStyle)) {\n itemStyle.color = '#eee';\n }\n }\n this.mergeDefaultAndTheme(option, ecModel);\n // Default label emphasis `show`\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n };\n GeoModel.prototype.optionUpdated = function () {\n var _this = this;\n var option = this.option;\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap, option.nameProperty);\n var selectedMap = {};\n this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n var regionName = regionOpt.name;\n if (regionName) {\n optionModelMap.set(regionName, new Model(regionOpt, _this, _this.ecModel));\n if (regionOpt.selected) {\n selectedMap[regionName] = true;\n }\n }\n return optionModelMap;\n }, zrUtil.createHashMap());\n if (!option.selectedMap) {\n option.selectedMap = selectedMap;\n }\n };\n /**\n * Get model of region.\n */\n GeoModel.prototype.getRegionModel = function (name) {\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n };\n /**\n * Format label\n * @param name Region name\n */\n GeoModel.prototype.getFormattedLabel = function (name, status) {\n var regionModel = this.getRegionModel(name);\n var formatter = status === 'normal' ? regionModel.get(['label', 'formatter']) : regionModel.get(['emphasis', 'label', 'formatter']);\n var params = {\n name: name\n };\n if (zrUtil.isFunction(formatter)) {\n params.status = status;\n return formatter(params);\n } else if (zrUtil.isString(formatter)) {\n return formatter.replace('{a}', name != null ? name : '');\n }\n };\n GeoModel.prototype.setZoom = function (zoom) {\n this.option.zoom = zoom;\n };\n GeoModel.prototype.setCenter = function (center) {\n this.option.center = center;\n };\n // PENGING If selectedMode is null ?\n GeoModel.prototype.select = function (name) {\n var option = this.option;\n var selectedMode = option.selectedMode;\n if (!selectedMode) {\n return;\n }\n if (selectedMode !== 'multiple') {\n option.selectedMap = null;\n }\n var selectedMap = option.selectedMap || (option.selectedMap = {});\n selectedMap[name] = true;\n };\n GeoModel.prototype.unSelect = function (name) {\n var selectedMap = this.option.selectedMap;\n if (selectedMap) {\n selectedMap[name] = false;\n }\n };\n GeoModel.prototype.toggleSelected = function (name) {\n this[this.isSelected(name) ? 'unSelect' : 'select'](name);\n };\n GeoModel.prototype.isSelected = function (name) {\n var selectedMap = this.option.selectedMap;\n return !!(selectedMap && selectedMap[name]);\n };\n GeoModel.type = 'geo';\n GeoModel.layoutMode = 'box';\n GeoModel.defaultOption = {\n // zlevel: 0,\n z: 0,\n show: true,\n left: 'center',\n top: 'center',\n // Default value:\n // for geoSVG source: 1,\n // for geoJSON source: 0.75.\n aspectScale: null,\n // /// Layout with center and size\n // If you want to put map in a fixed size box with right aspect ratio\n // This two properties may be more convenient\n // layoutCenter: [50%, 50%]\n // layoutSize: 100\n silent: false,\n // Map type\n map: '',\n // Define left-top, right-bottom coords to control view\n // For example, [ [180, 90], [-180, -90] ]\n boundingCoords: null,\n // Default on center of map\n center: null,\n zoom: 1,\n scaleLimit: null,\n // selectedMode: false\n label: {\n show: false,\n color: '#000'\n },\n itemStyle: {\n borderWidth: 0.5,\n borderColor: '#444'\n // Default color:\n // + geoJSON: #eee\n // + geoSVG: null (use SVG original `fill`)\n // color: '#eee'\n },\n\n emphasis: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n select: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n regions: []\n // tooltip: {\n // show: false\n // }\n };\n\n return GeoModel;\n}(ComponentModel);\nexport default GeoModel;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getCenterCoord(view, point) {\n // Use projected coord as center because it's linear.\n return view.pointToProjected ? view.pointToProjected(point) : view.pointToData(point);\n}\nexport function updateCenterAndZoom(view, payload, zoomLimit, api) {\n var previousZoom = view.getZoom();\n var center = view.getCenter();\n var zoom = payload.zoom;\n var point = view.projectedToPoint ? view.projectedToPoint(center) : view.dataToPoint(center);\n if (payload.dx != null && payload.dy != null) {\n point[0] -= payload.dx;\n point[1] -= payload.dy;\n view.setCenter(getCenterCoord(view, point), api);\n }\n if (zoom != null) {\n if (zoomLimit) {\n var zoomMin = zoomLimit.min || 0;\n var zoomMax = zoomLimit.max || Infinity;\n zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n }\n // Zoom on given point(originX, originY)\n view.scaleX *= zoom;\n view.scaleY *= zoom;\n var fixX = (payload.originX - view.x) * (zoom - 1);\n var fixY = (payload.originY - view.y) * (zoom - 1);\n view.x -= fixX;\n view.y -= fixY;\n view.updateTransform();\n // Get the new center\n view.setCenter(getCenterCoord(view, point), api);\n view.setZoom(zoom * previousZoom);\n }\n return {\n center: view.getCenter(),\n zoom: view.getZoom()\n };\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as echarts from '../../core/echarts.js';\nimport { noop } from 'zrender/lib/core/util.js';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n var store = getStore(zr);\n store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n var store = getStore(zr);\n var uKey = store[resourceKey];\n if (uKey === userKey) {\n store[resourceKey] = null;\n }\n}\nexport function isTaken(zr, resourceKey) {\n return !!getStore(zr)[resourceKey];\n}\nfunction getStore(zr) {\n return zr[ATTR] || (zr[ATTR] = {});\n}\n/**\n * payload: {\n * type: 'takeGlobalCursor',\n * key: 'dataZoomSelect', or 'brush', or ...,\n * If no userKey, release global cursor.\n * }\n */\n// TODO: SELF REGISTERED.\necharts.registerAction({\n type: 'takeGlobalCursor',\n event: 'globalCursorTaken',\n update: 'update'\n}, noop);", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as interactionMutex from './interactionMutex.js';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util.js';\n;\nvar RoamController = /** @class */function (_super) {\n __extends(RoamController, _super);\n function RoamController(zr) {\n var _this = _super.call(this) || this;\n _this._zr = zr;\n // Avoid two roamController bind the same handler\n var mousedownHandler = bind(_this._mousedownHandler, _this);\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n var mouseupHandler = bind(_this._mouseupHandler, _this);\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n var pinchHandler = bind(_this._pinchHandler, _this);\n /**\n * Notice: only enable needed types. For example, if 'zoom'\n * is not needed, 'zoom' should not be enabled, otherwise\n * default mousewheel behaviour (scroll page) will be disabled.\n */\n _this.enable = function (controlType, opt) {\n // Disable previous first\n this.disable();\n this._opt = defaults(clone(opt) || {}, {\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n // By default, wheel do not trigger move.\n moveOnMouseWheel: false,\n preventDefaultMouseMove: true\n });\n if (controlType == null) {\n controlType = true;\n }\n if (controlType === true || controlType === 'move' || controlType === 'pan') {\n zr.on('mousedown', mousedownHandler);\n zr.on('mousemove', mousemoveHandler);\n zr.on('mouseup', mouseupHandler);\n }\n if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n zr.on('mousewheel', mousewheelHandler);\n zr.on('pinch', pinchHandler);\n }\n };\n _this.disable = function () {\n zr.off('mousedown', mousedownHandler);\n zr.off('mousemove', mousemoveHandler);\n zr.off('mouseup', mouseupHandler);\n zr.off('mousewheel', mousewheelHandler);\n zr.off('pinch', pinchHandler);\n };\n return _this;\n }\n RoamController.prototype.isDragging = function () {\n return this._dragging;\n };\n RoamController.prototype.isPinching = function () {\n return this._pinching;\n };\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\n this.pointerChecker = pointerChecker;\n };\n RoamController.prototype.dispose = function () {\n this.disable();\n };\n RoamController.prototype._mousedownHandler = function (e) {\n if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n return;\n }\n var el = e.target;\n while (el) {\n if (el.draggable) {\n return;\n }\n // check if host is draggable\n el = el.__hostTarget || el.parent;\n }\n var x = e.offsetX;\n var y = e.offsetY;\n // Only check on mosedown, but not mousemove.\n // Mouse can be out of target when mouse moving.\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n this._x = x;\n this._y = y;\n this._dragging = true;\n }\n };\n RoamController.prototype._mousemoveHandler = function (e) {\n if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n var x = e.offsetX;\n var y = e.offsetY;\n var oldX = this._x;\n var oldY = this._y;\n var dx = x - oldX;\n var dy = y - oldY;\n this._x = x;\n this._y = y;\n this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n trigger(this, 'pan', 'moveOnMouseMove', e, {\n dx: dx,\n dy: dy,\n oldX: oldX,\n oldY: oldY,\n newX: x,\n newY: y,\n isAvailableBehavior: null\n });\n };\n RoamController.prototype._mouseupHandler = function (e) {\n if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n this._dragging = false;\n }\n };\n RoamController.prototype._mousewheelHandler = function (e) {\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n var wheelDelta = e.wheelDelta;\n var absWheelDeltaDelta = Math.abs(wheelDelta);\n var originX = e.offsetX;\n var originY = e.offsetY;\n // wheelDelta maybe -0 in chrome mac.\n if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n return;\n }\n // If both `shouldZoom` and `shouldMove` is true, trigger\n // their event both, and the final behavior is determined\n // by event listener themselves.\n if (shouldZoom) {\n // Convenience:\n // Mac and VM Windows on Mac: scroll up: zoom out.\n // Windows: scroll up: zoom in.\n // FIXME: Should do more test in different environment.\n // wheelDelta is too complicated in difference nvironment\n // (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel),\n // although it has been normallized by zrender.\n // wheelDelta of mouse wheel is bigger than touch pad.\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n var scale = wheelDelta > 0 ? factor : 1 / factor;\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n scale: scale,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n if (shouldMove) {\n // FIXME: Should do more test in different environment.\n var absDelta = Math.abs(wheelDelta);\n // wheelDelta of mouse wheel is bigger than touch pad.\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n scrollDelta: scrollDelta,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n };\n RoamController.prototype._pinchHandler = function (e) {\n if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n checkPointerAndTrigger(this, 'zoom', null, e, {\n scale: scale,\n originX: e.pinchX,\n originY: e.pinchY,\n isAvailableBehavior: null\n });\n };\n return RoamController;\n}(Eventful);\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n // When mouse is out of roamController rect,\n // default befavoius should not be be disabled, otherwise\n // page sliding is disabled, contrary to expectation.\n eventTool.stop(e.event);\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n }\n}\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n // Also provide behavior checker for event listener, for some case that\n // multiple components share one listener.\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\n // TODO should not have type issue.\n controller.trigger(eventName, contollerEvent);\n}\n// settings: {\n// zoomOnMouseWheel\n// moveOnMouseMove\n// moveOnMouseWheel\n// }\n// The value can be: true / false / 'shift' / 'ctrl' / 'alt'.\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n var setting = settings[behaviorToCheck];\n return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\nexport default RoamController;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n/**\n * For geo and graph.\n */\nexport function updateViewOnPan(controllerHost, dx, dy) {\n var target = controllerHost.target;\n target.x += dx;\n target.y += dy;\n target.dirty();\n}\n/**\n * For geo and graph.\n */\nexport function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n var target = controllerHost.target;\n var zoomLimit = controllerHost.zoomLimit;\n var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n newZoom *= zoomDelta;\n if (zoomLimit) {\n var zoomMin = zoomLimit.min || 0;\n var zoomMax = zoomLimit.max || Infinity;\n newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n }\n var zoomScale = newZoom / controllerHost.zoom;\n controllerHost.zoom = newZoom;\n // Keep the mouse center when scaling\n target.x -= (zoomX - target.x) * (zoomScale - 1);\n target.y -= (zoomY - target.y) * (zoomScale - 1);\n target.scaleX *= zoomScale;\n target.scaleY *= zoomScale;\n target.dirty();\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar IRRELEVANT_EXCLUDES = {\n 'axisPointer': 1,\n 'tooltip': 1,\n 'brush': 1\n};\n/**\n * Avoid that: mouse click on a elements that is over geo or graph,\n * but roam is triggered.\n */\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n var model = api.getComponentByElement(e.topTarget);\n // If model is axisModel, it works only if it is injected with coordinateSystem.\n var coordSys = model && model.coordinateSystem;\n return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport RoamController from './RoamController.js';\nimport * as roamHelper from '../../component/helper/roamHelper.js';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, enableComponentHighDownFeatures, setDefaultStateProxy } from '../../util/states.js';\nimport geoSourceManager from '../../coord/geo/geoSourceManager.js';\nimport { getUID } from '../../util/component.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { makeInner } from '../../util/model.js';\n/**\n * Only these tags enable use `itemStyle` if they are named in SVG.\n * Other tags like <text> <tspan> <image> might not suitable for `itemStyle`.\n * They will not be considered to be styled until some requirements come.\n */\nvar OPTION_STYLE_ENABLED_TAGS = ['rect', 'circle', 'line', 'ellipse', 'polygon', 'polyline', 'path'];\nvar OPTION_STYLE_ENABLED_TAG_MAP = zrUtil.createHashMap(OPTION_STYLE_ENABLED_TAGS);\nvar STATE_TRIGGER_TAG_MAP = zrUtil.createHashMap(OPTION_STYLE_ENABLED_TAGS.concat(['g']));\nvar LABEL_HOST_MAP = zrUtil.createHashMap(OPTION_STYLE_ENABLED_TAGS.concat(['g']));\nvar mapLabelRaw = makeInner();\nfunction getFixedItemStyle(model) {\n var itemStyle = model.getItemStyle();\n var areaColor = model.get('areaColor');\n // If user want the color not to be changed when hover,\n // they should both set areaColor and color to be null.\n if (areaColor != null) {\n itemStyle.fill = areaColor;\n }\n return itemStyle;\n}\n// Only stroke can be used for line.\n// Using fill in style if stroke not exits.\n// TODO Not sure yet. Perhaps a separate `lineStyle`?\nfunction fixLineStyle(styleHost) {\n var style = styleHost.style;\n if (style) {\n style.stroke = style.stroke || style.fill;\n style.fill = null;\n }\n}\nvar MapDraw = /** @class */function () {\n function MapDraw(api) {\n var group = new graphic.Group();\n this.uid = getUID('ec_map_draw');\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: group\n };\n this.group = group;\n group.add(this._regionsGroup = new graphic.Group());\n group.add(this._svgGroup = new graphic.Group());\n }\n MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\n var isGeo = mapOrGeoModel.mainType === 'geo';\n // Map series has data. GEO model that controlled by map series\n // will be assigned with map data. Other GEO model has no data.\n var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n isGeo && ecModel.eachComponent({\n mainType: 'series',\n subType: 'map'\n }, function (mapSeries) {\n if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n data = mapSeries.getData();\n }\n });\n var geo = mapOrGeoModel.coordinateSystem;\n var regionsGroup = this._regionsGroup;\n var group = this.group;\n var transformInfo = geo.getTransformInfo();\n var transformInfoRaw = transformInfo.raw;\n var transformInfoRoam = transformInfo.roam;\n // No animation when first draw or in action\n var isFirstDraw = !regionsGroup.childAt(0) || payload;\n if (isFirstDraw) {\n group.x = transformInfoRoam.x;\n group.y = transformInfoRoam.y;\n group.scaleX = transformInfoRoam.scaleX;\n group.scaleY = transformInfoRoam.scaleY;\n group.dirty();\n } else {\n graphic.updateProps(group, transformInfoRoam, mapOrGeoModel);\n }\n var isVisualEncodedByVisualMap = data && data.getVisual('visualMeta') && data.getVisual('visualMeta').length > 0;\n var viewBuildCtx = {\n api: api,\n geo: geo,\n mapOrGeoModel: mapOrGeoModel,\n data: data,\n isVisualEncodedByVisualMap: isVisualEncodedByVisualMap,\n isGeo: isGeo,\n transformInfoRaw: transformInfoRaw\n };\n if (geo.resourceType === 'geoJSON') {\n this._buildGeoJSON(viewBuildCtx);\n } else if (geo.resourceType === 'geoSVG') {\n this._buildSVG(viewBuildCtx);\n }\n this._updateController(mapOrGeoModel, ecModel, api);\n this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\n };\n MapDraw.prototype._buildGeoJSON = function (viewBuildCtx) {\n var regionsGroupByName = this._regionsGroupByName = zrUtil.createHashMap();\n var regionsInfoByName = zrUtil.createHashMap();\n var regionsGroup = this._regionsGroup;\n var transformInfoRaw = viewBuildCtx.transformInfoRaw;\n var mapOrGeoModel = viewBuildCtx.mapOrGeoModel;\n var data = viewBuildCtx.data;\n var projection = viewBuildCtx.geo.projection;\n var projectionStream = projection && projection.stream;\n function transformPoint(point, project) {\n if (project) {\n // projection may return null point.\n point = project(point);\n }\n return point && [point[0] * transformInfoRaw.scaleX + transformInfoRaw.x, point[1] * transformInfoRaw.scaleY + transformInfoRaw.y];\n }\n ;\n function transformPolygonPoints(inPoints) {\n var outPoints = [];\n // If projectionStream is provided. Use it instead of single point project.\n var project = !projectionStream && projection && projection.project;\n for (var i = 0; i < inPoints.length; ++i) {\n var newPt = transformPoint(inPoints[i], project);\n newPt && outPoints.push(newPt);\n }\n return outPoints;\n }\n function getPolyShape(points) {\n return {\n shape: {\n points: transformPolygonPoints(points)\n }\n };\n }\n regionsGroup.removeAll();\n // Only when the resource is GeoJSON, there is `geo.regions`.\n zrUtil.each(viewBuildCtx.geo.regions, function (region) {\n var regionName = region.name;\n // Consider in GeoJson properties.name may be duplicated, for example,\n // there is multiple region named \"United Kindom\" or \"France\" (so many\n // colonies). And it is not appropriate to merge them in geo, which\n // will make them share the same label and bring trouble in label\n // location calculation.\n var regionGroup = regionsGroupByName.get(regionName);\n var _a = regionsInfoByName.get(regionName) || {},\n dataIdx = _a.dataIdx,\n regionModel = _a.regionModel;\n if (!regionGroup) {\n regionGroup = regionsGroupByName.set(regionName, new graphic.Group());\n regionsGroup.add(regionGroup);\n dataIdx = data ? data.indexOfName(regionName) : null;\n regionModel = viewBuildCtx.isGeo ? mapOrGeoModel.getRegionModel(regionName) : data ? data.getItemModel(dataIdx) : null;\n regionsInfoByName.set(regionName, {\n dataIdx: dataIdx,\n regionModel: regionModel\n });\n }\n var polygonSubpaths = [];\n var polylineSubpaths = [];\n zrUtil.each(region.geometries, function (geometry) {\n // Polygon and MultiPolygon\n if (geometry.type === 'polygon') {\n var polys = [geometry.exterior].concat(geometry.interiors || []);\n if (projectionStream) {\n polys = projectPolys(polys, projectionStream);\n }\n zrUtil.each(polys, function (poly) {\n polygonSubpaths.push(new graphic.Polygon(getPolyShape(poly)));\n });\n }\n // LineString and MultiLineString\n else {\n var points = geometry.points;\n if (projectionStream) {\n points = projectPolys(points, projectionStream, true);\n }\n zrUtil.each(points, function (points) {\n polylineSubpaths.push(new graphic.Polyline(getPolyShape(points)));\n });\n }\n });\n var centerPt = transformPoint(region.getCenter(), projection && projection.project);\n function createCompoundPath(subpaths, isLine) {\n if (!subpaths.length) {\n return;\n }\n var compoundPath = new graphic.CompoundPath({\n culling: true,\n segmentIgnoreThreshold: 1,\n shape: {\n paths: subpaths\n }\n });\n regionGroup.add(compoundPath);\n applyOptionStyleForRegion(viewBuildCtx, compoundPath, dataIdx, regionModel);\n resetLabelForRegion(viewBuildCtx, compoundPath, regionName, regionModel, mapOrGeoModel, dataIdx, centerPt);\n if (isLine) {\n fixLineStyle(compoundPath);\n zrUtil.each(compoundPath.states, fixLineStyle);\n }\n }\n createCompoundPath(polygonSubpaths);\n createCompoundPath(polylineSubpaths, true);\n });\n // Ensure children have been added to `regionGroup` before calling them.\n regionsGroupByName.each(function (regionGroup, regionName) {\n var _a = regionsInfoByName.get(regionName),\n dataIdx = _a.dataIdx,\n regionModel = _a.regionModel;\n resetEventTriggerForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel, dataIdx);\n resetTooltipForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel);\n resetStateTriggerForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel);\n }, this);\n };\n MapDraw.prototype._buildSVG = function (viewBuildCtx) {\n var mapName = viewBuildCtx.geo.map;\n var transformInfoRaw = viewBuildCtx.transformInfoRaw;\n this._svgGroup.x = transformInfoRaw.x;\n this._svgGroup.y = transformInfoRaw.y;\n this._svgGroup.scaleX = transformInfoRaw.scaleX;\n this._svgGroup.scaleY = transformInfoRaw.scaleY;\n if (this._svgResourceChanged(mapName)) {\n this._freeSVG();\n this._useSVG(mapName);\n }\n var svgDispatcherMap = this._svgDispatcherMap = zrUtil.createHashMap();\n var focusSelf = false;\n zrUtil.each(this._svgGraphicRecord.named, function (namedItem) {\n // Note that we also allow different elements have the same name.\n // For example, a glyph of a city and the label of the city have\n // the same name and their tooltip info can be defined in a single\n // region option.\n var regionName = namedItem.name;\n var mapOrGeoModel = viewBuildCtx.mapOrGeoModel;\n var data = viewBuildCtx.data;\n var svgNodeTagLower = namedItem.svgNodeTagLower;\n var el = namedItem.el;\n var dataIdx = data ? data.indexOfName(regionName) : null;\n var regionModel = mapOrGeoModel.getRegionModel(regionName);\n if (OPTION_STYLE_ENABLED_TAG_MAP.get(svgNodeTagLower) != null && el instanceof Displayable) {\n applyOptionStyleForRegion(viewBuildCtx, el, dataIdx, regionModel);\n }\n if (el instanceof Displayable) {\n el.culling = true;\n }\n // We do not know how the SVG like so we'd better not to change z2.\n // Otherwise it might bring some unexpected result. For example,\n // an area hovered that make some inner city can not be clicked.\n el.z2EmphasisLift = 0;\n // If self named:\n if (!namedItem.namedFrom) {\n // label should batter to be displayed based on the center of <g>\n // if it is named rather than displayed on each child.\n if (LABEL_HOST_MAP.get(svgNodeTagLower) != null) {\n resetLabelForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, dataIdx, null);\n }\n resetEventTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, dataIdx);\n resetTooltipForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel);\n if (STATE_TRIGGER_TAG_MAP.get(svgNodeTagLower) != null) {\n var focus_1 = resetStateTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel);\n if (focus_1 === 'self') {\n focusSelf = true;\n }\n var els = svgDispatcherMap.get(regionName) || svgDispatcherMap.set(regionName, []);\n els.push(el);\n }\n }\n }, this);\n this._enableBlurEntireSVG(focusSelf, viewBuildCtx);\n };\n MapDraw.prototype._enableBlurEntireSVG = function (focusSelf, viewBuildCtx) {\n // It's a little complicated to support blurring the entire geoSVG in series-map.\n // So do not support it until some requirements come.\n // At present, in series-map, only regions can be blurred.\n if (focusSelf && viewBuildCtx.isGeo) {\n var blurStyle = viewBuildCtx.mapOrGeoModel.getModel(['blur', 'itemStyle']).getItemStyle();\n // Only support `opacity` here. Because not sure that other props are suitable for\n // all of the elements generated by SVG (especially for Text/TSpan/Image/... ).\n var opacity_1 = blurStyle.opacity;\n this._svgGraphicRecord.root.traverse(function (el) {\n if (!el.isGroup) {\n // PENDING: clear those settings to SVG elements when `_freeSVG`.\n // (Currently it happen not to be needed.)\n setDefaultStateProxy(el);\n var style = el.ensureState('blur').style || {};\n // Do not overwrite the region style that already set from region option.\n if (style.opacity == null && opacity_1 != null) {\n style.opacity = opacity_1;\n }\n // If `ensureState('blur').style = {}`, there will be default opacity.\n // Enable `stateTransition` (animation).\n el.ensureState('emphasis');\n }\n });\n }\n };\n MapDraw.prototype.remove = function () {\n this._regionsGroup.removeAll();\n this._regionsGroupByName = null;\n this._svgGroup.removeAll();\n this._freeSVG();\n this._controller.dispose();\n this._controllerHost = null;\n };\n MapDraw.prototype.findHighDownDispatchers = function (name, geoModel) {\n if (name == null) {\n return [];\n }\n var geo = geoModel.coordinateSystem;\n if (geo.resourceType === 'geoJSON') {\n var regionsGroupByName = this._regionsGroupByName;\n if (regionsGroupByName) {\n var regionGroup = regionsGroupByName.get(name);\n return regionGroup ? [regionGroup] : [];\n }\n } else if (geo.resourceType === 'geoSVG') {\n return this._svgDispatcherMap && this._svgDispatcherMap.get(name) || [];\n }\n };\n MapDraw.prototype._svgResourceChanged = function (mapName) {\n return this._svgMapName !== mapName;\n };\n MapDraw.prototype._useSVG = function (mapName) {\n var resource = geoSourceManager.getGeoResource(mapName);\n if (resource && resource.type === 'geoSVG') {\n var svgGraphic = resource.useGraphic(this.uid);\n this._svgGroup.add(svgGraphic.root);\n this._svgGraphicRecord = svgGraphic;\n this._svgMapName = mapName;\n }\n };\n MapDraw.prototype._freeSVG = function () {\n var mapName = this._svgMapName;\n if (mapName == null) {\n return;\n }\n var resource = geoSourceManager.getGeoResource(mapName);\n if (resource && resource.type === 'geoSVG') {\n resource.freeGraphic(this.uid);\n }\n this._svgGraphicRecord = null;\n this._svgDispatcherMap = null;\n this._svgGroup.removeAll();\n this._svgMapName = null;\n };\n MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\n var geo = mapOrGeoModel.coordinateSystem;\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n // @ts-ignore FIXME:TS\n controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n controllerHost.zoom = geo.getZoom();\n // roamType is will be set default true if it is null\n // @ts-ignore FIXME:TS\n controller.enable(mapOrGeoModel.get('roam') || false);\n var mainType = mapOrGeoModel.mainType;\n function makeActionBase() {\n var action = {\n type: 'geoRoam',\n componentType: mainType\n };\n action[mainType + 'Id'] = mapOrGeoModel.id;\n return action;\n }\n controller.off('pan').on('pan', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n dx: e.dx,\n dy: e.dy,\n animation: {\n duration: 0\n }\n }));\n }, this);\n controller.off('zoom').on('zoom', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY,\n animation: {\n duration: 0\n }\n }));\n }, this);\n controller.setPointerChecker(function (e, x, y) {\n return geo.containPoint([x, y]) && !onIrrelevantElement(e, api, mapOrGeoModel);\n });\n };\n /**\n * FIXME: this is a temporarily workaround.\n * When `geoRoam` the elements need to be reset in `MapView['render']`, because the props like\n * `ignore` might have been modified by `LabelManager`, and `LabelManager#addLabelsOfSeries`\n * will subsequently cache `defaultAttr` like `ignore`. If do not do this reset, the modified\n * props will have no chance to be restored.\n * Note: This reset should be after `clearStates` in `renderSeries` because `useStates` in\n * `renderSeries` will cache the modified `ignore` to `el._normalState`.\n * TODO:\n * Use clone/immutable in `LabelManager`?\n */\n MapDraw.prototype.resetForLabelLayout = function () {\n this.group.traverse(function (el) {\n var label = el.getTextContent();\n if (label) {\n label.ignore = mapLabelRaw(label).ignore;\n }\n });\n };\n MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\n var mapDraw = this;\n regionsGroup.off('mousedown');\n regionsGroup.off('click');\n // @ts-ignore FIXME:TS resolve type conflict\n if (mapOrGeoModel.get('selectedMode')) {\n regionsGroup.on('mousedown', function () {\n mapDraw._mouseDownFlag = true;\n });\n regionsGroup.on('click', function (e) {\n if (!mapDraw._mouseDownFlag) {\n return;\n }\n mapDraw._mouseDownFlag = false;\n });\n }\n };\n return MapDraw;\n}();\n;\nfunction applyOptionStyleForRegion(viewBuildCtx, el, dataIndex, regionModel) {\n // All of the path are using `itemStyle`, because\n // (1) Some SVG also use fill on polyline (The different between\n // polyline and polygon is \"open\" or \"close\" but not fill or not).\n // (2) For the common props like opacity, if some use itemStyle\n // and some use `lineStyle`, it might confuse users.\n // (3) Most SVG use <path>, where can not detect whether to draw a \"line\"\n // or a filled shape, so use `itemStyle` for <path>.\n var normalStyleModel = regionModel.getModel('itemStyle');\n var emphasisStyleModel = regionModel.getModel(['emphasis', 'itemStyle']);\n var blurStyleModel = regionModel.getModel(['blur', 'itemStyle']);\n var selectStyleModel = regionModel.getModel(['select', 'itemStyle']);\n // NOTE: DON'T use 'style' in visual when drawing map.\n // This component is used for drawing underlying map for both geo component and map series.\n var normalStyle = getFixedItemStyle(normalStyleModel);\n var emphasisStyle = getFixedItemStyle(emphasisStyleModel);\n var selectStyle = getFixedItemStyle(selectStyleModel);\n var blurStyle = getFixedItemStyle(blurStyleModel);\n // Update the itemStyle if has data visual\n var data = viewBuildCtx.data;\n if (data) {\n // Only visual color of each item will be used. It can be encoded by visualMap\n // But visual color of series is used in symbol drawing\n // Visual color for each series is for the symbol draw\n var style = data.getItemVisual(dataIndex, 'style');\n var decal = data.getItemVisual(dataIndex, 'decal');\n if (viewBuildCtx.isVisualEncodedByVisualMap && style.fill) {\n normalStyle.fill = style.fill;\n }\n if (decal) {\n normalStyle.decal = createOrUpdatePatternFromDecal(decal, viewBuildCtx.api);\n }\n }\n // SVG text, tspan and image can be named but not supporeted\n // to be styled by region option yet.\n el.setStyle(normalStyle);\n el.style.strokeNoScale = true;\n el.ensureState('emphasis').style = emphasisStyle;\n el.ensureState('select').style = selectStyle;\n el.ensureState('blur').style = blurStyle;\n // Enable blur\n setDefaultStateProxy(el);\n}\nfunction resetLabelForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel,\n// Exist only if `viewBuildCtx.data` exists.\ndataIdx,\n// If labelXY not provided, use `textConfig.position: 'inside'`\nlabelXY) {\n var data = viewBuildCtx.data;\n var isGeo = viewBuildCtx.isGeo;\n var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n var itemLayout = data && data.getItemLayout(dataIdx);\n // In the following cases label will be drawn\n // 1. In map series and data value is NaN\n // 2. In geo component\n // 3. Region has no series legendIcon, which will be add a showLabel flag in mapSymbolLayout\n if (isGeo || isDataNaN || itemLayout && itemLayout.showLabel) {\n var query = !isGeo ? dataIdx : regionName;\n var labelFetcher = void 0;\n // Consider dataIdx not found.\n if (!data || dataIdx >= 0) {\n labelFetcher = mapOrGeoModel;\n }\n var specifiedTextOpt = labelXY ? {\n normal: {\n align: 'center',\n verticalAlign: 'middle'\n }\n } : null;\n // Caveat: must be called after `setDefaultStateProxy(el);` called.\n // because textContent will be assign with `el.stateProxy` inside.\n setLabelStyle(el, getLabelStatesModels(regionModel), {\n labelFetcher: labelFetcher,\n labelDataIndex: query,\n defaultText: regionName\n }, specifiedTextOpt);\n var textEl = el.getTextContent();\n if (textEl) {\n mapLabelRaw(textEl).ignore = textEl.ignore;\n if (el.textConfig && labelXY) {\n // Compute a relative offset based on the el bounding rect.\n var rect = el.getBoundingRect().clone();\n // Need to make sure the percent position base on the same rect in normal and\n // emphasis state. Otherwise if using boundingRect of el, but the emphasis state\n // has borderWidth (even 0.5px), the text position will be changed obviously\n // if the position is very big like ['1234%', '1345%'].\n el.textConfig.layoutRect = rect;\n el.textConfig.position = [(labelXY[0] - rect.x) / rect.width * 100 + '%', (labelXY[1] - rect.y) / rect.height * 100 + '%'];\n }\n }\n // PENDING:\n // If labelLayout is enabled (test/label-layout.html), el.dataIndex should be specified.\n // But el.dataIndex is also used to determine whether user event should be triggered,\n // where el.seriesIndex or el.dataModel must be specified. At present for a single el\n // there is not case that \"only label layout enabled but user event disabled\", so here\n // we depends `resetEventTriggerForRegion` to do the job of setting `el.dataIndex`.\n el.disableLabelAnimation = true;\n } else {\n el.removeTextContent();\n el.removeTextConfig();\n el.disableLabelAnimation = null;\n }\n}\nfunction resetEventTriggerForRegion(viewBuildCtx, eventTrigger, regionName, regionModel, mapOrGeoModel,\n// Exist only if `viewBuildCtx.data` exists.\ndataIdx) {\n // setItemGraphicEl, setHoverStyle after all polygons and labels\n // are added to the regionGroup\n if (viewBuildCtx.data) {\n // FIXME: when series-map use a SVG map, and there are duplicated name specified\n // on different SVG elements, after `data.setItemGraphicEl(...)`:\n // (1) all of them will be mounted with `dataIndex`, `seriesIndex`, so that tooltip\n // can be triggered only mouse hover. That's correct.\n // (2) only the last element will be kept in `data`, so that if trigger tooltip\n // by `dispatchAction`, only the last one can be found and triggered. That might be\n // not correct. We will fix it in future if anyone demanding that.\n viewBuildCtx.data.setItemGraphicEl(dataIdx, eventTrigger);\n }\n // series-map will not trigger \"geoselectchange\" no matter it is\n // based on a declared geo component. Because series-map will\n // trigger \"selectchange\". If it trigger both the two events,\n // If users call `chart.dispatchAction({type: 'toggleSelect'})`,\n // it not easy to also fire event \"geoselectchanged\".\n else {\n // Package custom mouse event for geo component\n getECData(eventTrigger).eventData = {\n componentType: 'geo',\n componentIndex: mapOrGeoModel.componentIndex,\n geoIndex: mapOrGeoModel.componentIndex,\n name: regionName,\n region: regionModel && regionModel.option || {}\n };\n }\n}\nfunction resetTooltipForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel) {\n if (!viewBuildCtx.data) {\n graphic.setTooltipConfig({\n el: el,\n componentModel: mapOrGeoModel,\n itemName: regionName,\n // @ts-ignore FIXME:TS fix the \"compatible with each other\"?\n itemTooltipOption: regionModel.get('tooltip')\n });\n }\n}\nfunction resetStateTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel) {\n // @ts-ignore FIXME:TS fix the \"compatible with each other\"?\n el.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n // @ts-ignore FIXME:TS fix the \"compatible with each other\"?\n var emphasisModel = regionModel.getModel('emphasis');\n var focus = emphasisModel.get('focus');\n toggleHoverEmphasis(el, focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n if (viewBuildCtx.isGeo) {\n enableComponentHighDownFeatures(el, mapOrGeoModel, regionName);\n }\n return focus;\n}\nfunction projectPolys(rings,\n// Polygons include exterior and interiors. Or polylines.\ncreateStream, isLine) {\n var polygons = [];\n var curPoly;\n function startPolygon() {\n curPoly = [];\n }\n function endPolygon() {\n if (curPoly.length) {\n polygons.push(curPoly);\n curPoly = [];\n }\n }\n var stream = createStream({\n polygonStart: startPolygon,\n polygonEnd: endPolygon,\n lineStart: startPolygon,\n lineEnd: endPolygon,\n point: function (x, y) {\n // May have NaN values from stream.\n if (isFinite(x) && isFinite(y)) {\n curPoly.push([x, y]);\n }\n },\n sphere: function () {}\n });\n !isLine && stream.polygonStart();\n zrUtil.each(rings, function (ring) {\n stream.lineStart();\n for (var i = 0; i < ring.length; i++) {\n stream.point(ring[i][0], ring[i][1]);\n }\n stream.lineEnd();\n });\n !isLine && stream.polygonEnd();\n return polygons;\n}\nexport default MapDraw;\n// @ts-ignore FIXME:TS fix the \"compatible with each other\"?", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport MapDraw from '../helper/MapDraw.js';\nimport ComponentView from '../../view/Component.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { findEventDispatcher } from '../../util/event.js';\nvar GeoView = /** @class */function (_super) {\n __extends(GeoView, _super);\n function GeoView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = GeoView.type;\n _this.focusBlurEnabled = true;\n return _this;\n }\n GeoView.prototype.init = function (ecModel, api) {\n this._api = api;\n };\n GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\n this._model = geoModel;\n if (!geoModel.get('show')) {\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n return;\n }\n if (!this._mapDraw) {\n this._mapDraw = new MapDraw(api);\n }\n var mapDraw = this._mapDraw;\n mapDraw.draw(geoModel, ecModel, api, this, payload);\n mapDraw.group.on('click', this._handleRegionClick, this);\n mapDraw.group.silent = geoModel.get('silent');\n this.group.add(mapDraw.group);\n this.updateSelectStatus(geoModel, ecModel, api);\n };\n GeoView.prototype._handleRegionClick = function (e) {\n var eventData;\n findEventDispatcher(e.target, function (current) {\n return (eventData = getECData(current).eventData) != null;\n }, true);\n if (eventData) {\n this._api.dispatchAction({\n type: 'geoToggleSelect',\n geoId: this._model.id,\n name: eventData.name\n });\n }\n };\n GeoView.prototype.updateSelectStatus = function (model, ecModel, api) {\n var _this = this;\n this._mapDraw.group.traverse(function (node) {\n var eventData = getECData(node).eventData;\n if (eventData) {\n _this._model.isSelected(eventData.name) ? api.enterSelect(node) : api.leaveSelect(node);\n // No need to traverse children.\n return true;\n }\n });\n };\n GeoView.prototype.findHighDownDispatchers = function (name) {\n return this._mapDraw && this._mapDraw.findHighDownDispatchers(name, this._model);\n };\n GeoView.prototype.dispose = function () {\n this._mapDraw && this._mapDraw.remove();\n };\n GeoView.type = 'geo';\n return GeoView;\n}(ComponentView);\nexport default GeoView;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport GeoModel from '../../coord/geo/GeoModel.js';\nimport geoCreator from '../../coord/geo/geoCreator.js';\nimport { each } from 'zrender/lib/core/util.js';\nimport { updateCenterAndZoom } from '../../action/roamHelper.js';\nimport GeoView from './GeoView.js';\nimport geoSourceManager from '../../coord/geo/geoSourceManager.js';\nfunction registerMap(mapName, geoJson, specialAreas) {\n geoSourceManager.registerMap(mapName, geoJson, specialAreas);\n}\nexport function install(registers) {\n registers.registerCoordinateSystem('geo', geoCreator);\n registers.registerComponentModel(GeoModel);\n registers.registerComponentView(GeoView);\n registers.registerImpl('registerMap', registerMap);\n registers.registerImpl('getMap', function (mapName) {\n return geoSourceManager.getMapForUser(mapName);\n });\n function makeAction(method, actionInfo) {\n actionInfo.update = 'geo:updateSelectStatus';\n registers.registerAction(actionInfo, function (payload, ecModel) {\n var selected = {};\n var allSelected = [];\n ecModel.eachComponent({\n mainType: 'geo',\n query: payload\n }, function (geoModel) {\n geoModel[method](payload.name);\n var geo = geoModel.coordinateSystem;\n each(geo.regions, function (region) {\n selected[region.name] = geoModel.isSelected(region.name) || false;\n });\n // Notice: there might be duplicated name in different regions.\n var names = [];\n each(selected, function (v, name) {\n selected[name] && names.push(name);\n });\n allSelected.push({\n geoIndex: geoModel.componentIndex,\n // Use singular, the same naming convention as the event `selectchanged`.\n name: names\n });\n });\n return {\n selected: selected,\n allSelected: allSelected,\n name: payload.name\n };\n });\n }\n makeAction('toggleSelected', {\n type: 'geoToggleSelect',\n event: 'geoselectchanged'\n });\n makeAction('select', {\n type: 'geoSelect',\n event: 'geoselected'\n });\n makeAction('unSelect', {\n type: 'geoUnSelect',\n event: 'geounselected'\n });\n /**\n * @payload\n * @property {string} [componentType=series]\n * @property {number} [dx]\n * @property {number} [dy]\n * @property {number} [zoom]\n * @property {number} [originX]\n * @property {number} [originY]\n */\n registers.registerAction({\n type: 'geoRoam',\n event: 'geoRoam',\n update: 'updateTransform'\n }, function (payload, ecModel, api) {\n var componentType = payload.componentType || 'series';\n ecModel.eachComponent({\n mainType: componentType,\n query: payload\n }, function (componentModel) {\n var geo = componentModel.coordinateSystem;\n if (geo.type !== 'geo') {\n return;\n }\n var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'), api);\n componentModel.setCenter && componentModel.setCenter(res.center);\n componentModel.setZoom && componentModel.setZoom(res.zoom);\n // All map series with same `map` use the same geo coordinate system\n // So the center and zoom must be in sync. Include the series not selected by legend\n if (componentType === 'series') {\n each(componentModel.seriesGroup, function (seriesModel) {\n seriesModel.setCenter(res.center);\n seriesModel.setZoom(res.zoom);\n });\n }\n });\n });\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nexport default function parallelPreprocessor(option) {\n createParallelIfNeeded(option);\n mergeAxisOptionFromParallel(option);\n}\n/**\n * Create a parallel coordinate if not exists.\n * @inner\n */\nfunction createParallelIfNeeded(option) {\n if (option.parallel) {\n return;\n }\n var hasParallelSeries = false;\n zrUtil.each(option.series, function (seriesOpt) {\n if (seriesOpt && seriesOpt.type === 'parallel') {\n hasParallelSeries = true;\n }\n });\n if (hasParallelSeries) {\n option.parallel = [{}];\n }\n}\n/**\n * Merge aixs definition from parallel option (if exists) to axis option.\n * @inner\n */\nfunction mergeAxisOptionFromParallel(option) {\n var axes = modelUtil.normalizeToArray(option.parallelAxis);\n zrUtil.each(axes, function (axisOption) {\n if (!zrUtil.isObject(axisOption)) {\n return;\n }\n var parallelIndex = axisOption.parallelIndex || 0;\n var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n if (parallelOption && parallelOption.parallelAxisDefault) {\n zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n }\n });\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\nimport { each, bind, extend } from 'zrender/lib/core/util.js';\nimport { createOrUpdate, clear } from '../../util/throttle.js';\nvar CLICK_THRESHOLD = 5; // > 4\nvar ParallelView = /** @class */function (_super) {\n __extends(ParallelView, _super);\n function ParallelView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = ParallelView.type;\n return _this;\n }\n ParallelView.prototype.render = function (parallelModel, ecModel, api) {\n this._model = parallelModel;\n this._api = api;\n if (!this._handlers) {\n this._handlers = {};\n each(handlers, function (handler, eventName) {\n api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\n }, this);\n }\n createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n };\n ParallelView.prototype.dispose = function (ecModel, api) {\n clear(this, '_throttledDispatchExpand');\n each(this._handlers, function (handler, eventName) {\n api.getZr().off(eventName, handler);\n });\n this._handlers = null;\n };\n /**\n * @internal\n * @param {Object} [opt] If null, cancel the last action triggering for debounce.\n */\n ParallelView.prototype._throttledDispatchExpand = function (opt) {\n this._dispatchExpand(opt);\n };\n /**\n * @internal\n */\n ParallelView.prototype._dispatchExpand = function (opt) {\n opt && this._api.dispatchAction(extend({\n type: 'parallelAxisExpand'\n }, opt));\n };\n ParallelView.type = 'parallel';\n return ParallelView;\n}(ComponentView);\nvar handlers = {\n mousedown: function (e) {\n if (checkTrigger(this, 'click')) {\n this._mouseDownPoint = [e.offsetX, e.offsetY];\n }\n },\n mouseup: function (e) {\n var mouseDownPoint = this._mouseDownPoint;\n if (checkTrigger(this, 'click') && mouseDownPoint) {\n var point = [e.offsetX, e.offsetY];\n var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n if (dist > CLICK_THRESHOLD) {\n return;\n }\n var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n result.behavior !== 'none' && this._dispatchExpand({\n axisExpandWindow: result.axisExpandWindow\n });\n }\n this._mouseDownPoint = null;\n },\n mousemove: function (e) {\n // Should do nothing when brushing.\n if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n return;\n }\n var model = this._model;\n var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n var behavior = result.behavior;\n behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n this._throttledDispatchExpand(behavior === 'none' ? null // Cancel the last trigger, in case that mouse slide out of the area quickly.\n : {\n axisExpandWindow: result.axisExpandWindow,\n // Jumping uses animation, and sliding suppresses animation.\n animation: behavior === 'jump' ? null : {\n duration: 0 // Disable animation.\n }\n });\n }\n};\n\nfunction checkTrigger(view, triggerOn) {\n var model = view._model;\n return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\nexport default ParallelView;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nvar ParallelModel = /** @class */function (_super) {\n __extends(ParallelModel, _super);\n function ParallelModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = ParallelModel.type;\n return _this;\n }\n ParallelModel.prototype.init = function () {\n _super.prototype.init.apply(this, arguments);\n this.mergeOption({});\n };\n ParallelModel.prototype.mergeOption = function (newOption) {\n var thisOption = this.option;\n newOption && zrUtil.merge(thisOption, newOption, true);\n this._initDimensions();\n };\n /**\n * Whether series or axis is in this coordinate system.\n */\n ParallelModel.prototype.contains = function (model, ecModel) {\n var parallelIndex = model.get('parallelIndex');\n return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n };\n ParallelModel.prototype.setAxisExpand = function (opt) {\n zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n if (opt.hasOwnProperty(name)) {\n // @ts-ignore FIXME: why \"never\" inferred in this.option[name]?\n this.option[name] = opt[name];\n }\n }, this);\n };\n ParallelModel.prototype._initDimensions = function () {\n var dimensions = this.dimensions = [];\n var parallelAxisIndex = this.parallelAxisIndex = [];\n var axisModels = zrUtil.filter(this.ecModel.queryComponents({\n mainType: 'parallelAxis'\n }), function (axisModel) {\n // Can not use this.contains here, because\n // initialization has not been completed yet.\n return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n }, this);\n zrUtil.each(axisModels, function (axisModel) {\n dimensions.push('dim' + axisModel.get('dim'));\n parallelAxisIndex.push(axisModel.componentIndex);\n });\n };\n ParallelModel.type = 'parallel';\n ParallelModel.dependencies = ['parallelAxis'];\n ParallelModel.layoutMode = 'box';\n ParallelModel.defaultOption = {\n // zlevel: 0,\n z: 0,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n layout: 'horizontal',\n // FIXME\n // naming?\n axisExpandable: false,\n axisExpandCenter: null,\n axisExpandCount: 0,\n axisExpandWidth: 50,\n axisExpandRate: 17,\n axisExpandDebounce: 50,\n // [out, in, jumpTarget]. In percentage. If use [null, 0.05], null means full.\n // Do not doc to user until necessary.\n axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n axisExpandTriggerOn: 'click',\n parallelAxisDefault: null\n };\n return ParallelModel;\n}(ComponentModel);\nexport default ParallelModel;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\nvar ParallelAxis = /** @class */function (_super) {\n __extends(ParallelAxis, _super);\n function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n _this.type = axisType || 'value';\n _this.axisIndex = axisIndex;\n return _this;\n }\n ParallelAxis.prototype.isHorizontal = function () {\n return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n };\n return ParallelAxis;\n}(Axis);\nexport default ParallelAxis;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n/**\n * Calculate slider move result.\n * Usage:\n * (1) If both handle0 and handle1 are needed to be moved, set minSpan the same as\n * maxSpan and the same as `Math.abs(handleEnd[1] - handleEnds[0])`.\n * (2) If handle0 is forbidden to cross handle1, set minSpan as `0`.\n *\n * @param delta Move length.\n * @param handleEnds handleEnds[0] can be bigger then handleEnds[1].\n * handleEnds will be modified in this method.\n * @param extent handleEnds is restricted by extent.\n * extent[0] should less or equals than extent[1].\n * @param handleIndex Can be 'all', means that both move the two handleEnds.\n * @param minSpan The range of dataZoom can not be smaller than that.\n * If not set, handle0 and cross handle1. If set as a non-negative\n * number (including `0`), handles will push each other when reaching\n * the minSpan.\n * @param maxSpan The range of dataZoom can not be larger than that.\n * @return The input handleEnds.\n */\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n delta = delta || 0;\n var extentSpan = extent[1] - extent[0];\n // Notice maxSpan and minSpan can be null/undefined.\n if (minSpan != null) {\n minSpan = restrict(minSpan, [0, extentSpan]);\n }\n if (maxSpan != null) {\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n }\n if (handleIndex === 'all') {\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n handleSpan = restrict(handleSpan, [0, extentSpan]);\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n handleIndex = 0;\n }\n handleEnds[0] = restrict(handleEnds[0], extent);\n handleEnds[1] = restrict(handleEnds[1], extent);\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\n handleEnds[handleIndex] += delta;\n // Restrict in extent.\n var extentMinSpan = minSpan || 0;\n var realExtent = extent.slice();\n originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\n // Expand span.\n var currDistSign;\n currDistSign = getSpanSign(handleEnds, handleIndex);\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n // If minSpan exists, 'cross' is forbidden.\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n }\n // Shrink span.\n currDistSign = getSpanSign(handleEnds, handleIndex);\n if (maxSpan != null && currDistSign.span > maxSpan) {\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n }\n return handleEnds;\n}\nfunction getSpanSign(handleEnds, handleIndex) {\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\n // If `handleEnds[0] === handleEnds[1]`, always believe that handleEnd[0]\n // is at left of handleEnds[1] for non-cross case.\n return {\n span: Math.abs(dist),\n sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n };\n}\nfunction restrict(value, extend) {\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n/**\n * Parallel Coordinates\n * <https://en.wikipedia.org/wiki/Parallel_coordinates>\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport ParallelAxis from './ParallelAxis.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as numberUtil from '../../util/number.js';\nimport sliderMove from '../../component/helper/sliderMove.js';\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\nvar Parallel = /** @class */function () {\n function Parallel(parallelModel, ecModel, api) {\n this.type = 'parallel';\n /**\n * key: dimension\n */\n this._axesMap = zrUtil.createHashMap();\n /**\n * key: dimension\n * value: {position: [], rotation, }\n */\n this._axesLayout = {};\n this.dimensions = parallelModel.dimensions;\n this._model = parallelModel;\n this._init(parallelModel, ecModel, api);\n }\n Parallel.prototype._init = function (parallelModel, ecModel, api) {\n var dimensions = parallelModel.dimensions;\n var parallelAxisIndex = parallelModel.parallelAxisIndex;\n each(dimensions, function (dim, idx) {\n var axisIndex = parallelAxisIndex[idx];\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse');\n // Injection\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.coordinateSystem = axisModel.coordinateSystem = this;\n }, this);\n };\n /**\n * Update axis scale after data processed\n */\n Parallel.prototype.update = function (ecModel, api) {\n this._updateAxesFromSeries(this._model, ecModel);\n };\n Parallel.prototype.containPoint = function (point) {\n var layoutInfo = this._makeLayoutInfo();\n var axisBase = layoutInfo.axisBase;\n var layoutBase = layoutInfo.layoutBase;\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var pAxis = point[1 - pixelDimIndex];\n var pLayout = point[pixelDimIndex];\n return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n };\n Parallel.prototype.getModel = function () {\n return this._model;\n };\n /**\n * Update properties from series\n */\n Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\n ecModel.eachSeries(function (seriesModel) {\n if (!parallelModel.contains(seriesModel, ecModel)) {\n return;\n }\n var data = seriesModel.getData();\n each(this.dimensions, function (dim) {\n var axis = this._axesMap.get(dim);\n axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n axisHelper.niceScaleExtent(axis.scale, axis.model);\n }, this);\n }, this);\n };\n /**\n * Resize the parallel coordinate system.\n */\n Parallel.prototype.resize = function (parallelModel, api) {\n this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n this._layoutAxes();\n };\n Parallel.prototype.getRect = function () {\n return this._rect;\n };\n Parallel.prototype._makeLayoutInfo = function () {\n var parallelModel = this._model;\n var rect = this._rect;\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n var layout = parallelModel.get('layout');\n var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n var layoutLength = rect[wh[pixelDimIndex]];\n var layoutExtent = [0, layoutLength];\n var axisCount = this.dimensions.length;\n var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0;\n // `axisExpandWindow` is According to the coordinates of [0, axisExpandLength],\n // for sake of consider the case that axisCollapseWidth is 0 (when screen is narrow),\n // where collapsed axes should be overlapped.\n var axisExpandWindow = parallelModel.get('axisExpandWindow');\n var winSize;\n if (!axisExpandWindow) {\n winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n } else {\n winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n }\n var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount);\n // Avoid axisCollapseWidth is too small.\n axisCollapseWidth < 3 && (axisCollapseWidth = 0);\n // Find the first and last indices > ewin[0] and < ewin[1].\n var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1];\n // Pos in ec coordinates.\n var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n return {\n layout: layout,\n pixelDimIndex: pixelDimIndex,\n layoutBase: rect[xy[pixelDimIndex]],\n layoutLength: layoutLength,\n axisBase: rect[xy[1 - pixelDimIndex]],\n axisLength: rect[wh[1 - pixelDimIndex]],\n axisExpandable: axisExpandable,\n axisExpandWidth: axisExpandWidth,\n axisCollapseWidth: axisCollapseWidth,\n axisExpandWindow: axisExpandWindow,\n axisCount: axisCount,\n winInnerIndices: winInnerIndices,\n axisExpandWindow0Pos: axisExpandWindow0Pos\n };\n };\n Parallel.prototype._layoutAxes = function () {\n var rect = this._rect;\n var axes = this._axesMap;\n var dimensions = this.dimensions;\n var layoutInfo = this._makeLayoutInfo();\n var layout = layoutInfo.layout;\n axes.each(function (axis) {\n var axisExtent = [0, layoutInfo.axisLength];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n });\n each(dimensions, function (dim, idx) {\n var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n var positionTable = {\n horizontal: {\n x: posInfo.position,\n y: layoutInfo.axisLength\n },\n vertical: {\n x: 0,\n y: posInfo.position\n }\n };\n var rotationTable = {\n horizontal: PI / 2,\n vertical: 0\n };\n var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n var rotation = rotationTable[layout];\n var transform = matrix.create();\n matrix.rotate(transform, transform, rotation);\n matrix.translate(transform, transform, position);\n // TODO\n // tick layout info\n // TODO\n // update dimensions info based on axis order.\n this._axesLayout[dim] = {\n position: position,\n rotation: rotation,\n transform: transform,\n axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n axisLabelShow: posInfo.axisLabelShow,\n nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n tickDirection: 1,\n labelDirection: 1\n };\n }, this);\n };\n /**\n * Get axis by dim.\n */\n Parallel.prototype.getAxis = function (dim) {\n return this._axesMap.get(dim);\n };\n /**\n * Convert a dim value of a single item of series data to Point.\n */\n Parallel.prototype.dataToPoint = function (value, dim) {\n return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n };\n /**\n * Travel data for one time, get activeState of each data item.\n * @param start the start dataIndex that travel from.\n * @param end the next dataIndex of the last dataIndex will be travel.\n */\n Parallel.prototype.eachActiveState = function (data, callback, start, end) {\n start == null && (start = 0);\n end == null && (end = data.count());\n var axesMap = this._axesMap;\n var dimensions = this.dimensions;\n var dataDimensions = [];\n var axisModels = [];\n zrUtil.each(dimensions, function (axisDim) {\n dataDimensions.push(data.mapDimension(axisDim));\n axisModels.push(axesMap.get(axisDim).model);\n });\n var hasActiveSet = this.hasAxisBrushed();\n for (var dataIndex = start; dataIndex < end; dataIndex++) {\n var activeState = void 0;\n if (!hasActiveSet) {\n activeState = 'normal';\n } else {\n activeState = 'active';\n var values = data.getValues(dataDimensions, dataIndex);\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n var state = axisModels[j].getActiveState(values[j]);\n if (state === 'inactive') {\n activeState = 'inactive';\n break;\n }\n }\n }\n callback(activeState, dataIndex);\n }\n };\n /**\n * Whether has any activeSet.\n */\n Parallel.prototype.hasAxisBrushed = function () {\n var dimensions = this.dimensions;\n var axesMap = this._axesMap;\n var hasActiveSet = false;\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n hasActiveSet = true;\n }\n }\n return hasActiveSet;\n };\n /**\n * Convert coords of each axis to Point.\n * Return point. For example: [10, 20]\n */\n Parallel.prototype.axisCoordToPoint = function (coord, dim) {\n var axisLayout = this._axesLayout[dim];\n return graphic.applyTransform([coord, 0], axisLayout.transform);\n };\n /**\n * Get axis layout.\n */\n Parallel.prototype.getAxisLayout = function (dim) {\n return zrUtil.clone(this._axesLayout[dim]);\n };\n /**\n * @return {Object} {axisExpandWindow, delta, behavior: 'jump' | 'slide' | 'none'}.\n */\n Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\n var layoutInfo = this._makeLayoutInfo();\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)];\n // Out of the area of coordinate system.\n if (!this.containPoint(point)) {\n return {\n behavior: 'none',\n axisExpandWindow: axisExpandWindow\n };\n }\n // Convert the point from global to expand coordinates.\n var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos;\n // For dragging operation convenience, the window should not be\n // slided when mouse is the center area of the window.\n var delta;\n var behavior = 'slide';\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n var triggerArea = this._model.get('axisExpandSlideTriggerArea');\n // But consider touch device, jump is necessary.\n var useJump = triggerArea[0] != null;\n if (axisCollapseWidth) {\n if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n behavior = 'jump';\n delta = pointCoord - winSize * triggerArea[2];\n } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n behavior = 'jump';\n delta = pointCoord - winSize * (1 - triggerArea[2]);\n } else {\n (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n }\n delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n delta ? sliderMove(delta, axisExpandWindow, extent, 'all')\n // Avoid nonsense triger on mousemove.\n : behavior = 'none';\n }\n // When screen is too narrow, make it visible and slidable, although it is hard to interact.\n else {\n var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\n var pos = extent[1] * pointCoord / winSize2;\n axisExpandWindow = [mathMax(0, pos - winSize2 / 2)];\n axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize2);\n axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\n }\n return {\n axisExpandWindow: axisExpandWindow,\n behavior: behavior\n };\n };\n return Parallel;\n}();\nfunction restrict(len, extent) {\n return mathMin(mathMax(len, extent[0]), extent[1]);\n}\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n return {\n position: step * axisIndex,\n axisNameAvailableWidth: step,\n axisLabelShow: true\n };\n}\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n var layoutLength = layoutInfo.layoutLength;\n var axisExpandWidth = layoutInfo.axisExpandWidth;\n var axisCount = layoutInfo.axisCount;\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n var winInnerIndices = layoutInfo.winInnerIndices;\n var position;\n var axisNameAvailableWidth = axisCollapseWidth;\n var axisLabelShow = false;\n var nameTruncateMaxWidth;\n if (axisIndex < winInnerIndices[0]) {\n position = axisIndex * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n } else if (axisIndex <= winInnerIndices[1]) {\n position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n axisNameAvailableWidth = axisExpandWidth;\n axisLabelShow = true;\n } else {\n position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n }\n return {\n position: position,\n axisNameAvailableWidth: axisNameAvailableWidth,\n axisLabelShow: axisLabelShow,\n nameTruncateMaxWidth: nameTruncateMaxWidth\n };\n}\nexport default Parallel;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n/**\n * Parallel coordinate system creater.\n */\nimport Parallel from './Parallel.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nfunction createParallelCoordSys(ecModel, api) {\n var coordSysList = [];\n ecModel.eachComponent('parallel', function (parallelModel, idx) {\n var coordSys = new Parallel(parallelModel, ecModel, api);\n coordSys.name = 'parallel_' + idx;\n coordSys.resize(parallelModel, api);\n parallelModel.coordinateSystem = coordSys;\n coordSys.model = parallelModel;\n coordSysList.push(coordSys);\n });\n // Inject the coordinateSystems into seriesModel\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'parallel') {\n var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\n seriesModel.coordinateSystem = parallelModel.coordinateSystem;\n }\n });\n return coordSysList;\n}\nvar parallelCoordSysCreator = {\n create: createParallelCoordSys\n};\nexport default parallelCoordSysCreator;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper.js';\nimport * as numberUtil from '../../util/number.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nvar ParallelAxisModel = /** @class */function (_super) {\n __extends(ParallelAxisModel, _super);\n function ParallelAxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = ParallelAxisModel.type;\n /**\n * @readOnly\n */\n _this.activeIntervals = [];\n return _this;\n }\n ParallelAxisModel.prototype.getAreaSelectStyle = function () {\n return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']\n // Option decal is in `DecalObject` but style.decal is in `PatternObject`.\n // So do not transfer decal directly.\n ])(this.getModel('areaSelectStyle'));\n };\n /**\n * The code of this feature is put on AxisModel but not ParallelAxis,\n * because axisModel can be alive after echarts updating but instance of\n * ParallelAxis having been disposed. this._activeInterval should be kept\n * when action dispatched (i.e. legend click).\n *\n * @param intervals `interval.length === 0` means set all active.\n */\n ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\n var activeIntervals = this.activeIntervals = zrUtil.clone(intervals);\n // Normalize\n if (activeIntervals) {\n for (var i = activeIntervals.length - 1; i >= 0; i--) {\n numberUtil.asc(activeIntervals[i]);\n }\n }\n };\n /**\n * @param value When only attempting detect whether 'no activeIntervals set',\n * `value` is not needed to be input.\n */\n ParallelAxisModel.prototype.getActiveState = function (value) {\n var activeIntervals = this.activeIntervals;\n if (!activeIntervals.length) {\n return 'normal';\n }\n if (value == null || isNaN(+value)) {\n return 'inactive';\n }\n // Simple optimization\n if (activeIntervals.length === 1) {\n var interval = activeIntervals[0];\n if (interval[0] <= value && value <= interval[1]) {\n return 'active';\n }\n } else {\n for (var i = 0, len = activeIntervals.length; i < len; i++) {\n if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n return 'active';\n }\n }\n }\n return 'inactive';\n };\n return ParallelAxisModel;\n}(ComponentModel);\nzrUtil.mixin(ParallelAxisModel, AxisModelCommonMixin);\nexport default ParallelAxisModel;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util.js';\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as interactionMutex from './interactionMutex.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n w: [0, 0],\n e: [0, 1],\n n: [1, 0],\n s: [1, 1]\n};\nvar CURSOR_MAP = {\n w: 'ew',\n e: 'ew',\n n: 'ns',\n s: 'ns',\n ne: 'nesw',\n sw: 'nesw',\n nw: 'nwse',\n se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n brushStyle: {\n lineWidth: 2,\n stroke: 'rgba(210,219,238,0.3)',\n fill: '#D2DBEE'\n },\n transformable: true,\n brushMode: 'single',\n removeOnClick: false\n};\nvar baseUID = 0;\n/**\n * params:\n * areas: Array.<Array>, coord relates to container group,\n * If no container specified, to global.\n * opt {\n * isEnd: boolean,\n * removeOnClick: boolean\n * }\n */\nvar BrushController = /** @class */function (_super) {\n __extends(BrushController, _super);\n function BrushController(zr) {\n var _this = _super.call(this) || this;\n /**\n * @internal\n */\n _this._track = [];\n /**\n * @internal\n */\n _this._covers = [];\n _this._handlers = {};\n if (process.env.NODE_ENV !== 'production') {\n assert(zr);\n }\n _this._zr = zr;\n _this.group = new graphic.Group();\n _this._uid = 'brushController_' + baseUID++;\n each(pointerHandlers, function (handler, eventName) {\n this._handlers[eventName] = bind(handler, this);\n }, _this);\n return _this;\n }\n /**\n * If set to `false`, select disabled.\n */\n BrushController.prototype.enableBrush = function (brushOption) {\n if (process.env.NODE_ENV !== 'production') {\n assert(this._mounted);\n }\n this._brushType && this._doDisableBrush();\n brushOption.brushType && this._doEnableBrush(brushOption);\n return this;\n };\n BrushController.prototype._doEnableBrush = function (brushOption) {\n var zr = this._zr;\n // Consider roam, which takes globalPan too.\n if (!this._enableGlobalPan) {\n interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n }\n each(this._handlers, function (handler, eventName) {\n zr.on(eventName, handler);\n });\n this._brushType = brushOption.brushType;\n this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n };\n BrushController.prototype._doDisableBrush = function () {\n var zr = this._zr;\n interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n each(this._handlers, function (handler, eventName) {\n zr.off(eventName, handler);\n });\n this._brushType = this._brushOption = null;\n };\n /**\n * @param panelOpts If not pass, it is global brush.\n */\n BrushController.prototype.setPanels = function (panelOpts) {\n if (panelOpts && panelOpts.length) {\n var panels_1 = this._panels = {};\n each(panelOpts, function (panelOpts) {\n panels_1[panelOpts.panelId] = clone(panelOpts);\n });\n } else {\n this._panels = null;\n }\n return this;\n };\n BrushController.prototype.mount = function (opt) {\n opt = opt || {};\n if (process.env.NODE_ENV !== 'production') {\n this._mounted = true; // should be at first.\n }\n\n this._enableGlobalPan = opt.enableGlobalPan;\n var thisGroup = this.group;\n this._zr.add(thisGroup);\n thisGroup.attr({\n x: opt.x || 0,\n y: opt.y || 0,\n rotation: opt.rotation || 0,\n scaleX: opt.scaleX || 1,\n scaleY: opt.scaleY || 1\n });\n this._transform = thisGroup.getLocalTransform();\n return this;\n };\n // eachCover(cb, context): void {\n // each(this._covers, cb, context);\n // }\n /**\n * Update covers.\n * @param coverConfigList\n * If coverConfigList is null/undefined, all covers removed.\n */\n BrushController.prototype.updateCovers = function (coverConfigList) {\n if (process.env.NODE_ENV !== 'production') {\n assert(this._mounted);\n }\n coverConfigList = map(coverConfigList, function (coverConfig) {\n return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n });\n var tmpIdPrefix = '\\0-brush-index-';\n var oldCovers = this._covers;\n var newCovers = this._covers = [];\n var controller = this;\n var creatingCover = this._creatingCover;\n new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n return this;\n function getKey(brushOption, index) {\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n }\n function oldGetKey(cover, index) {\n return getKey(cover.__brushOption, index);\n }\n function addOrUpdate(newIndex, oldIndex) {\n var newBrushInternal = coverConfigList[newIndex];\n // Consider setOption in event listener of brushSelect,\n // where updating cover when creating should be forbidden.\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n newCovers[newIndex] = oldCovers[oldIndex];\n } else {\n var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n updateCoverAfterCreation(controller, cover);\n }\n }\n function remove(oldIndex) {\n if (oldCovers[oldIndex] !== creatingCover) {\n controller.group.remove(oldCovers[oldIndex]);\n }\n }\n };\n BrushController.prototype.unmount = function () {\n if (process.env.NODE_ENV !== 'production') {\n if (!this._mounted) {\n return;\n }\n }\n this.enableBrush(false);\n // container may 'removeAll' outside.\n clearCovers(this);\n this._zr.remove(this.group);\n if (process.env.NODE_ENV !== 'production') {\n this._mounted = false; // should be at last.\n }\n\n return this;\n };\n BrushController.prototype.dispose = function () {\n this.unmount();\n this.off();\n };\n return BrushController;\n}(Eventful);\nfunction createCover(controller, brushOption) {\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n cover.__brushOption = brushOption;\n updateZ(cover, brushOption);\n controller.group.add(cover);\n return cover;\n}\nfunction endCreating(controller, creatingCover) {\n var coverRenderer = getCoverRenderer(creatingCover);\n if (coverRenderer.endCreating) {\n coverRenderer.endCreating(controller, creatingCover);\n updateZ(creatingCover, creatingCover.__brushOption);\n }\n return creatingCover;\n}\nfunction updateCoverShape(controller, cover) {\n var brushOption = cover.__brushOption;\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\nfunction updateZ(cover, brushOption) {\n var z = brushOption.z;\n z == null && (z = COVER_Z);\n cover.traverse(function (el) {\n el.z = z;\n el.z2 = z; // Consider in given container.\n });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n getCoverRenderer(cover).updateCommon(controller, cover);\n updateCoverShape(controller, cover);\n}\nfunction getCoverRenderer(cover) {\n return coverRenderers[cover.__brushOption.brushType];\n}\n// return target panel or `true` (means global panel)\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n var panels = controller._panels;\n if (!panels) {\n return BRUSH_PANEL_GLOBAL; // Global panel\n }\n\n var panel;\n var transform = controller._transform;\n each(panels, function (pn) {\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n });\n return panel;\n}\n// Return a panel or true\nfunction getPanelByCover(controller, cover) {\n var panels = controller._panels;\n if (!panels) {\n return BRUSH_PANEL_GLOBAL; // Global panel\n }\n\n var panelId = cover.__brushOption.panelId;\n // User may give cover without coord sys info,\n // which is then treated as global panel.\n return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\nfunction clearCovers(controller) {\n var covers = controller._covers;\n var originalLength = covers.length;\n each(covers, function (cover) {\n controller.group.remove(cover);\n }, controller);\n covers.length = 0;\n return !!originalLength;\n}\nfunction trigger(controller, opt) {\n var areas = map(controller._covers, function (cover) {\n var brushOption = cover.__brushOption;\n var range = clone(brushOption.range);\n return {\n brushType: brushOption.brushType,\n panelId: brushOption.panelId,\n range: range\n };\n });\n controller.trigger('brush', {\n areas: areas,\n isEnd: !!opt.isEnd,\n removeOnClick: !!opt.removeOnClick\n });\n}\nfunction shouldShowCover(controller) {\n var track = controller._track;\n if (!track.length) {\n return false;\n }\n var p2 = track[track.length - 1];\n var p1 = track[0];\n var dx = p2[0] - p1[0];\n var dy = p2[1] - p1[1];\n var dist = mathPow(dx * dx + dy * dy, 0.5);\n return dist > UNSELECT_THRESHOLD;\n}\nfunction getTrackEnds(track) {\n var tail = track.length - 1;\n tail < 0 && (tail = 0);\n return [track[0], track[tail]];\n}\n;\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n var cover = new graphic.Group();\n cover.add(new graphic.Rect({\n name: 'main',\n style: makeStyle(brushOption),\n silent: true,\n draggable: true,\n cursor: 'move',\n drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n each(edgeNameSequences, function (nameSequence) {\n cover.add(new graphic.Rect({\n name: nameSequence.join(''),\n style: {\n opacity: 0\n },\n draggable: true,\n silent: true,\n invisible: true,\n drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n });\n return cover;\n}\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\n var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n var x = localRange[0][0];\n var y = localRange[1][0];\n var xa = x - lineWidth / 2;\n var ya = y - lineWidth / 2;\n var x2 = localRange[0][1];\n var y2 = localRange[1][1];\n var x2a = x2 - handleSize + lineWidth / 2;\n var y2a = y2 - handleSize + lineWidth / 2;\n var width = x2 - x;\n var height = y2 - y;\n var widtha = width + lineWidth;\n var heighta = height + lineWidth;\n updateRectShape(controller, cover, 'main', x, y, width, height);\n if (brushOption.transformable) {\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n }\n}\nfunction updateCommon(controller, cover) {\n var brushOption = cover.__brushOption;\n var transformable = brushOption.transformable;\n var mainEl = cover.childAt(0);\n mainEl.useStyle(makeStyle(brushOption));\n mainEl.attr({\n silent: !transformable,\n cursor: transformable ? 'move' : 'default'\n });\n each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n var el = cover.childOfName(nameSequence.join(''));\n var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n el && el.attr({\n silent: !transformable,\n invisible: !transformable,\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n });\n });\n}\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n var el = cover.childOfName(name);\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\nfunction makeStyle(brushOption) {\n return defaults({\n strokeNoScale: true\n }, brushOption.brushStyle);\n}\nfunction formatRectRange(x, y, x2, y2) {\n var min = [mathMin(x, x2), mathMin(y, y2)];\n var max = [mathMax(x, x2), mathMax(y, y2)];\n return [[min[0], max[0]], [min[1], max[1]] // y range\n ];\n}\n\nfunction getTransform(controller) {\n return graphic.getTransform(controller.group);\n}\nfunction getGlobalDirection1(controller, localDirName) {\n var map = {\n w: 'left',\n e: 'right',\n n: 'top',\n s: 'bottom'\n };\n var inverseMap = {\n left: 'w',\n right: 'e',\n top: 'n',\n bottom: 's'\n };\n var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n return inverseMap[dir];\n}\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n return globalDir.join('');\n}\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n var brushOption = cover.__brushOption;\n var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n var localDelta = toLocalDelta(controller, dx, dy);\n each(dirNameSequence, function (dirName) {\n var ind = DIRECTION_MAP[dirName];\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n });\n brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n updateCoverAfterCreation(controller, cover);\n trigger(controller, {\n isEnd: false\n });\n}\nfunction driftPolygon(controller, cover, dx, dy) {\n var range = cover.__brushOption.range;\n var localDelta = toLocalDelta(controller, dx, dy);\n each(range, function (point) {\n point[0] += localDelta[0];\n point[1] += localDelta[1];\n });\n updateCoverAfterCreation(controller, cover);\n trigger(controller, {\n isEnd: false\n });\n}\nfunction toLocalDelta(controller, dx, dy) {\n var thisGroup = controller.group;\n var localD = thisGroup.transformCoordToLocal(dx, dy);\n var localZero = thisGroup.transformCoordToLocal(0, 0);\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\nfunction clipByPanel(controller, cover, data) {\n var panel = getPanelByCover(controller, cover);\n return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\nfunction pointsToRect(points) {\n var xmin = mathMin(points[0][0], points[1][0]);\n var ymin = mathMin(points[0][1], points[1][1]);\n var xmax = mathMax(points[0][0], points[1][0]);\n var ymax = mathMax(points[0][1], points[1][1]);\n return {\n x: xmin,\n y: ymin,\n width: xmax - xmin,\n height: ymax - ymin\n };\n}\nfunction resetCursor(controller, e, localCursorPoint) {\n if (\n // Check active\n !controller._brushType\n // resetCursor should be always called when mouse is in zr area,\n // but not called when mouse is out of zr area to avoid bad influence\n // if `mousemove`, `mouseup` are triggered from `document` event.\n || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n return;\n }\n var zr = controller._zr;\n var covers = controller._covers;\n var currPanel = getPanelByPoint(controller, e, localCursorPoint);\n // Check whether in covers.\n if (!controller._dragging) {\n for (var i = 0; i < covers.length; i++) {\n var brushOption = covers[i].__brushOption;\n if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n // Use cursor style set on cover.\n return;\n }\n }\n }\n currPanel && zr.setCursorStyle('crosshair');\n}\nfunction preventDefault(e) {\n var rawE = e.event;\n rawE.preventDefault && rawE.preventDefault();\n}\nfunction mainShapeContain(cover, x, y) {\n return cover.childOfName('main').contain(x, y);\n}\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n var creatingCover = controller._creatingCover;\n var panel = controller._creatingPanel;\n var thisBrushOption = controller._brushOption;\n var eventParams;\n controller._track.push(localCursorPoint.slice());\n if (shouldShowCover(controller) || creatingCover) {\n if (panel && !creatingCover) {\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\n var brushOption = clone(thisBrushOption);\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\n controller._covers.push(creatingCover);\n }\n if (creatingCover) {\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n var coverBrushOption = creatingCover.__brushOption;\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n if (isEnd) {\n endCreating(controller, creatingCover);\n coverRenderer.updateCommon(controller, creatingCover);\n }\n updateCoverShape(controller, creatingCover);\n eventParams = {\n isEnd: isEnd\n };\n }\n } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n // Help user to remove covers easily, only by a tiny drag, in 'single' mode.\n // But a single click do not clear covers, because user may have casual\n // clicks (for example, click on other component and do not expect covers\n // disappear).\n // Only some cover removed, trigger action, but not every click trigger action.\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n eventParams = {\n isEnd: isEnd,\n removeOnClick: true\n };\n }\n }\n return eventParams;\n}\nfunction determineBrushType(brushType, panel) {\n if (brushType === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n }\n return panel.defaultBrushType;\n }\n return brushType;\n}\nvar pointerHandlers = {\n mousedown: function (e) {\n if (this._dragging) {\n // In case some browser do not support globalOut,\n // and release mouse out side the browser.\n handleDragEnd(this, e);\n } else if (!e.target || !e.target.draggable) {\n preventDefault(e);\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n this._creatingCover = null;\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n if (panel) {\n this._dragging = true;\n this._track = [localCursorPoint.slice()];\n }\n }\n },\n mousemove: function (e) {\n var x = e.offsetX;\n var y = e.offsetY;\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\n resetCursor(this, e, localCursorPoint);\n if (this._dragging) {\n preventDefault(e);\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n eventParams && trigger(this, eventParams);\n }\n },\n mouseup: function (e) {\n handleDragEnd(this, e);\n }\n};\nfunction handleDragEnd(controller, e) {\n if (controller._dragging) {\n preventDefault(e);\n var x = e.offsetX;\n var y = e.offsetY;\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n controller._dragging = false;\n controller._track = [];\n controller._creatingCover = null;\n // trigger event should be at final, after procedure will be nested.\n eventParams && trigger(controller, eventParams);\n }\n}\nfunction isOutsideZrArea(controller, x, y) {\n var zr = controller._zr;\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n/**\n * key: brushType\n */\nvar coverRenderers = {\n lineX: getLineRenderer(0),\n lineY: getLineRenderer(1),\n rect: {\n createCover: function (controller, brushOption) {\n function returnInput(range) {\n return range;\n }\n return createBaseRectCover({\n toRectRange: returnInput,\n fromRectRange: returnInput\n }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n },\n getCreatingRange: function (localTrack) {\n var ends = getTrackEnds(localTrack);\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n updateBaseRect(controller, cover, localRange, brushOption);\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n },\n polygon: {\n createCover: function (controller, brushOption) {\n var cover = new graphic.Group();\n // Do not use graphic.Polygon because graphic.Polyline do not close the\n // border of the shape when drawing, which is a better experience for user.\n cover.add(new graphic.Polyline({\n name: 'main',\n style: makeStyle(brushOption),\n silent: true\n }));\n return cover;\n },\n getCreatingRange: function (localTrack) {\n return localTrack;\n },\n endCreating: function (controller, cover) {\n cover.remove(cover.childAt(0));\n // Use graphic.Polygon close the shape.\n cover.add(new graphic.Polygon({\n name: 'main',\n draggable: true,\n drift: curry(driftPolygon, controller, cover),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n cover.childAt(0).setShape({\n points: clipByPanel(controller, cover, localRange)\n });\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n }\n};\nfunction getLineRenderer(xyIndex) {\n return {\n createCover: function (controller, brushOption) {\n return createBaseRectCover({\n toRectRange: function (range) {\n var rectRange = [range, [0, 100]];\n xyIndex && rectRange.reverse();\n return rectRange;\n },\n fromRectRange: function (rectRange) {\n return rectRange[xyIndex];\n }\n }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n },\n getCreatingRange: function (localTrack) {\n var ends = getTrackEnds(localTrack);\n var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n return [min, max];\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n var otherExtent;\n // If brushWidth not specified, fit the panel.\n var panel = getPanelByCover(controller, cover);\n if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n } else {\n var zr = controller._zr;\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n }\n var rectRange = [localRange, otherExtent];\n xyIndex && rectRange.reverse();\n updateBaseRect(controller, cover, rectRange, brushOption);\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n };\n}\nexport default BrushController;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { onIrrelevantElement } from './cursorHelper.js';\nimport * as graphicUtil from '../../util/graphic.js';\nexport function makeRectPanelClipPath(rect) {\n rect = normalizeRect(rect);\n return function (localPoints) {\n return graphicUtil.clipPointsByRect(localPoints, rect);\n };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n rect = normalizeRect(rect);\n return function (xyIndex) {\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n var brushWidth = idx ? rect.width : rect.height;\n var base = idx ? rect.x : rect.y;\n return [base, base + (brushWidth || 0)];\n };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n var boundingRect = normalizeRect(rect);\n return function (e, localCursorPoint) {\n return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n };\n}\n// Consider width/height is negative.\nfunction normalizeRect(rect) {\n return BoundingRect.create(rect);\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport BrushController from '../helper/BrushController.js';\nimport * as brushHelper from '../helper/brushHelper.js';\nimport * as graphic from '../../util/graphic.js';\nimport ComponentView from '../../view/Component.js';\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\nvar ParallelAxisView = /** @class */function (_super) {\n __extends(ParallelAxisView, _super);\n function ParallelAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = ParallelAxisView.type;\n return _this;\n }\n ParallelAxisView.prototype.init = function (ecModel, api) {\n _super.prototype.init.apply(this, arguments);\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n };\n ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n return;\n }\n this.axisModel = axisModel;\n this.api = api;\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n if (!axisModel.get('show')) {\n return;\n }\n var coordSysModel = getCoordSysModel(axisModel, ecModel);\n var coordSys = coordSysModel.coordinateSystem;\n var areaSelectStyle = axisModel.getAreaSelectStyle();\n var areaWidth = areaSelectStyle.width;\n var dim = axisModel.axis.dim;\n var axisLayout = coordSys.getAxisLayout(dim);\n var builderOpt = zrUtil.extend({\n strokeContainThreshold: areaWidth\n }, axisLayout);\n var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n this._axisGroup.add(axisBuilder.getGroup());\n this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n };\n // /**\n // * @override\n // */\n // updateVisual(axisModel, ecModel, api, payload) {\n // this._brushController && this._brushController\n // .updateCovers(getCoverInfoList(axisModel));\n // }\n ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n // After filtering, axis may change, select area needs to be update.\n var extent = axisModel.axis.getExtent();\n var extentLen = extent[1] - extent[0];\n var extra = Math.min(30, Math.abs(extentLen) * 0.1); // Arbitrary value.\n // width/height might be negative, which will be\n // normalized in BoundingRect.\n var rect = graphic.BoundingRect.create({\n x: extent[0],\n y: -areaWidth / 2,\n width: extentLen,\n height: areaWidth\n });\n rect.x -= extra;\n rect.width += 2 * extra;\n this._brushController.mount({\n enableGlobalPan: true,\n rotation: builderOpt.rotation,\n x: builderOpt.position[0],\n y: builderOpt.position[1]\n }).setPanels([{\n panelId: 'pl',\n clipPath: brushHelper.makeRectPanelClipPath(rect),\n isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n }]).enableBrush({\n brushType: 'lineX',\n brushStyle: areaSelectStyle,\n removeOnClick: true\n }).updateCovers(getCoverInfoList(axisModel));\n };\n ParallelAxisView.prototype._onBrush = function (eventParam) {\n var coverInfoList = eventParam.areas;\n // Do not cache these object, because the mey be changed.\n var axisModel = this.axisModel;\n var axis = axisModel.axis;\n var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n });\n // If realtime is true, action is not dispatched on drag end, because\n // the drag end emits the same params with the last drag move event,\n // and may have some delay when using touch pad.\n if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\n // jshint ignore:line\n this.api.dispatchAction({\n type: 'axisAreaSelect',\n parallelAxisId: axisModel.id,\n intervals: intervals\n });\n }\n };\n ParallelAxisView.prototype.dispose = function () {\n this._brushController.dispose();\n };\n ParallelAxisView.type = 'parallelAxis';\n return ParallelAxisView;\n}(ComponentView);\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n mainType: 'parallelAxis',\n query: payload\n })[0] === axisModel;\n}\nfunction getCoverInfoList(axisModel) {\n var axis = axisModel.axis;\n return zrUtil.map(axisModel.activeIntervals, function (interval) {\n return {\n brushType: 'lineX',\n panelId: 'pl',\n range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n };\n });\n}\nfunction getCoordSysModel(axisModel, ecModel) {\n return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\nexport default ParallelAxisView;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar actionInfo = {\n type: 'axisAreaSelect',\n event: 'axisAreaSelected'\n // update: 'updateVisual'\n};\n\nexport function installParallelActions(registers) {\n registers.registerAction(actionInfo, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallelAxis',\n query: payload\n }, function (parallelAxisModel) {\n parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n });\n });\n /**\n * @payload\n */\n registers.registerAction('parallelAxisExpand', function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallel',\n query: payload\n }, function (parallelModel) {\n parallelModel.setAxisExpand(payload);\n });\n });\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport parallelPreprocessor from '../../coord/parallel/parallelPreprocessor.js';\nimport ParallelView from './ParallelView.js';\nimport ParallelModel from '../../coord/parallel/ParallelModel.js';\nimport parallelCoordSysCreator from '../../coord/parallel/parallelCreator.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport ParallelAxisModel from '../../coord/parallel/AxisModel.js';\nimport ParallelAxisView from '../axis/ParallelAxisView.js';\nimport { installParallelActions } from '../axis/parallelAxisAction.js';\nvar defaultAxisOption = {\n type: 'value',\n areaSelectStyle: {\n width: 20,\n borderWidth: 1,\n borderColor: 'rgba(160,197,232)',\n color: 'rgba(160,197,232)',\n opacity: 0.3\n },\n realtime: true,\n z: 10\n};\nexport function install(registers) {\n registers.registerComponentView(ParallelView);\n registers.registerComponentModel(ParallelModel);\n registers.registerCoordinateSystem('parallel', parallelCoordSysCreator);\n registers.registerPreprocessor(parallelPreprocessor);\n registers.registerComponentModel(ParallelAxisModel);\n registers.registerComponentView(ParallelAxisView);\n axisModelCreator(registers, 'parallel', ParallelAxisModel, defaultAxisOption);\n installParallelActions(registers);\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, hasOwn } from 'zrender/lib/core/util.js';\nvar deprecatedLogs = {};\n/**\n * Whether need to call `convertEC4CompatibleStyle`.\n */\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n // Since echarts5, `RectText` is separated from its host element and style.text\n // does not exist any more. The compat work brings some extra burden on performance.\n // So we provide:\n // `legacy: true` force make compat.\n // `legacy: false`, force do not compat.\n // `legacy` not set: auto detect whether legacy.\n // But in this case we do not compat (difficult to detect and rare case):\n // Becuse custom series and graphic component support \"merge\", users may firstly\n // only set `textStrokeWidth` style or secondly only set `text`.\n return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan'\n // Difficult to detect whether legacy for a \"text\" el.\n && (elType === 'text' || hasOwn(style, 'text')));\n}\n/**\n * `EC4CompatibleStyle` is style that might be in echarts4 format or echarts5 format.\n * @param hostStyle The properties might be modified.\n * @return If be text el, `textContentStyle` and `textConfig` will not be returned.\n * Otherwise a `textContentStyle` and `textConfig` will be created, whose props area\n * retried from the `hostStyle`.\n */\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n var srcStyle = hostStyle;\n var textConfig;\n var textContent;\n var textContentStyle;\n if (elType === 'text') {\n textContentStyle = srcStyle;\n } else {\n textContentStyle = {};\n hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n hasOwn(srcStyle, 'fontFamily') && (textContentStyle.fontFamily = srcStyle.fontFamily);\n hasOwn(srcStyle, 'fontSize') && (textContentStyle.fontSize = srcStyle.fontSize);\n hasOwn(srcStyle, 'fontStyle') && (textContentStyle.fontStyle = srcStyle.fontStyle);\n hasOwn(srcStyle, 'fontWeight') && (textContentStyle.fontWeight = srcStyle.fontWeight);\n textContent = {\n type: 'text',\n style: textContentStyle,\n // ec4 does not support rectText trigger.\n // And when text position is different in normal and emphasis\n // => hover text trigger emphasis;\n // => text position changed, leave mouse pointer immediately;\n // That might cause incorrect state.\n silent: true\n };\n textConfig = {};\n var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n if (isNormal) {\n textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n } else {\n hasOwnPos && (textConfig.position = srcStyle.textPosition);\n }\n hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n }\n convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n each(textContentStyle.rich, function (richItem) {\n convertEC4CompatibleRichItem(richItem, richItem);\n });\n return {\n textConfig: textConfig,\n textContent: textContent\n };\n}\n/**\n * The result will be set to `out`.\n */\nfunction convertEC4CompatibleRichItem(out, richItem) {\n if (!richItem) {\n return;\n }\n // (1) For simplicity, make textXXX properties (deprecated since ec5) has\n // higher priority. For example, consider in ec4 `borderColor: 5, textBorderColor: 10`\n // on a rect means `borderColor: 4` on the rect and `borderColor: 10` on an attached\n // richText in ec5.\n // (2) `out === richItem` if and only if `out` is text el or rich item.\n // So we can overwrite existing props in `out` since textXXX has higher priority.\n richItem.font = richItem.textFont || richItem.font;\n hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n/**\n * Convert to pure echarts4 format style.\n * `itemStyle` will be modified, added with ec4 style properties from\n * `textStyle` and `textConfig`.\n *\n * [Caveat]: For simplicity, `insideRollback` in ec4 does not compat, where\n * `styleEmphasis: {textFill: 'red'}` will remove the normal auto added stroke.\n */\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n var out = itemStl;\n // See `custom.ts`, a trick to set extra `textPosition` firstly.\n out.textPosition = out.textPosition || txCfg.position || 'inside';\n txCfg.offset != null && (out.textOffset = txCfg.offset);\n txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n txCfg.distance != null && (out.textDistance = txCfg.distance);\n var isInside = out.textPosition.indexOf('inside') >= 0;\n var hostFill = itemStl.fill || '#000';\n convertToEC4RichItem(out, txStl);\n var textFillNotSet = out.textFill == null;\n if (isInside) {\n if (textFillNotSet) {\n out.textFill = txCfg.insideFill || '#fff';\n !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n !out.textStroke && (out.textStroke = hostFill);\n out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n }\n } else {\n if (textFillNotSet) {\n out.textFill = itemStl.fill || txCfg.outsideFill || '#000';\n }\n !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n }\n out.text = txStl.text;\n out.rich = txStl.rich;\n each(txStl.rich, function (richItem) {\n convertToEC4RichItem(richItem, richItem);\n });\n return out;\n}\nfunction convertToEC4RichItem(out, richItem) {\n if (!richItem) {\n return;\n }\n hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n hasOwn(richItem, 'font') && (out.font = richItem.font);\n hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\nexport function warnDeprecated(deprecated, insteadApproach) {\n if (process.env.NODE_ENV !== 'production') {\n var key = deprecated + '^_^' + insteadApproach;\n if (!deprecatedLogs[key]) {\n console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n deprecatedLogs[key] = true;\n }\n }\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner, normalizeToArray } from '../util/model.js';\nimport { assert, bind, each, eqNaN, extend, hasOwn, indexOf, isArrayLike, keys, reduce } from 'zrender/lib/core/util.js';\nimport { cloneValue } from 'zrender/lib/animation/Animator.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { getAnimationConfig } from './basicTransition.js';\nimport { Path } from '../util/graphic.js';\nimport { warn } from '../util/log.js';\nimport { TRANSFORMABLE_PROPS } from 'zrender/lib/core/Transformable.js';\nvar LEGACY_TRANSFORM_PROPS_MAP = {\n position: ['x', 'y'],\n scale: ['scaleX', 'scaleY'],\n origin: ['originX', 'originY']\n};\nvar LEGACY_TRANSFORM_PROPS = keys(LEGACY_TRANSFORM_PROPS_MAP);\nvar TRANSFORM_PROPS_MAP = reduce(TRANSFORMABLE_PROPS, function (obj, key) {\n obj[key] = 1;\n return obj;\n}, {});\nvar transformPropNamesStr = TRANSFORMABLE_PROPS.join(', ');\n// '' means root\nexport var ELEMENT_ANIMATABLE_PROPS = ['', 'style', 'shape', 'extra'];\n;\nvar transitionInnerStore = makeInner();\n;\nfunction getElementAnimationConfig(animationType, el, elOption, parentModel, dataIndex) {\n var animationProp = animationType + \"Animation\";\n var config = getAnimationConfig(animationType, parentModel, dataIndex) || {};\n var userDuring = transitionInnerStore(el).userDuring;\n // Only set when duration is > 0 and it's need to be animated.\n if (config.duration > 0) {\n // For simplicity, if during not specified, the previous during will not work any more.\n config.during = userDuring ? bind(duringCall, {\n el: el,\n userDuring: userDuring\n }) : null;\n config.setToFinal = true;\n config.scope = animationType;\n }\n extend(config, elOption[animationProp]);\n return config;\n}\nexport function applyUpdateTransition(el, elOption, animatableModel, opts) {\n opts = opts || {};\n var dataIndex = opts.dataIndex,\n isInit = opts.isInit,\n clearStyle = opts.clearStyle;\n var hasAnimation = animatableModel.isAnimationEnabled();\n // Save the meta info for further morphing. Like apply on the sub morphing elements.\n var store = transitionInnerStore(el);\n var styleOpt = elOption.style;\n store.userDuring = elOption.during;\n var transFromProps = {};\n var propsToSet = {};\n prepareTransformAllPropsFinal(el, elOption, propsToSet);\n prepareShapeOrExtraAllPropsFinal('shape', elOption, propsToSet);\n prepareShapeOrExtraAllPropsFinal('extra', elOption, propsToSet);\n if (!isInit && hasAnimation) {\n prepareTransformTransitionFrom(el, elOption, transFromProps);\n prepareShapeOrExtraTransitionFrom('shape', el, elOption, transFromProps);\n prepareShapeOrExtraTransitionFrom('extra', el, elOption, transFromProps);\n prepareStyleTransitionFrom(el, elOption, styleOpt, transFromProps);\n }\n propsToSet.style = styleOpt;\n applyPropsDirectly(el, propsToSet, clearStyle);\n applyMiscProps(el, elOption);\n if (hasAnimation) {\n if (isInit) {\n var enterFromProps_1 = {};\n each(ELEMENT_ANIMATABLE_PROPS, function (propName) {\n var prop = propName ? elOption[propName] : elOption;\n if (prop && prop.enterFrom) {\n if (propName) {\n enterFromProps_1[propName] = enterFromProps_1[propName] || {};\n }\n extend(propName ? enterFromProps_1[propName] : enterFromProps_1, prop.enterFrom);\n }\n });\n var config = getElementAnimationConfig('enter', el, elOption, animatableModel, dataIndex);\n if (config.duration > 0) {\n el.animateFrom(enterFromProps_1, config);\n }\n } else {\n applyPropsTransition(el, elOption, dataIndex || 0, animatableModel, transFromProps);\n }\n }\n // Store leave to be used in leave transition.\n updateLeaveTo(el, elOption);\n styleOpt ? el.dirty() : el.markRedraw();\n}\nexport function updateLeaveTo(el, elOption) {\n // Try merge to previous set leaveTo\n var leaveToProps = transitionInnerStore(el).leaveToProps;\n for (var i = 0; i < ELEMENT_ANIMATABLE_PROPS.length; i++) {\n var propName = ELEMENT_ANIMATABLE_PROPS[i];\n var prop = propName ? elOption[propName] : elOption;\n if (prop && prop.leaveTo) {\n if (!leaveToProps) {\n leaveToProps = transitionInnerStore(el).leaveToProps = {};\n }\n if (propName) {\n leaveToProps[propName] = leaveToProps[propName] || {};\n }\n extend(propName ? leaveToProps[propName] : leaveToProps, prop.leaveTo);\n }\n }\n}\nexport function applyLeaveTransition(el, elOption, animatableModel, onRemove) {\n if (el) {\n var parent_1 = el.parent;\n var leaveToProps = transitionInnerStore(el).leaveToProps;\n if (leaveToProps) {\n // TODO TODO use leave after leaveAnimation in series is introduced\n // TODO Data index?\n var config = getElementAnimationConfig('update', el, elOption, animatableModel, 0);\n config.done = function () {\n parent_1.remove(el);\n onRemove && onRemove();\n };\n el.animateTo(leaveToProps, config);\n } else {\n parent_1.remove(el);\n onRemove && onRemove();\n }\n }\n}\nexport function isTransitionAll(transition) {\n return transition === 'all';\n}\nfunction applyPropsDirectly(el,\n// Can be null/undefined\nallPropsFinal, clearStyle) {\n var styleOpt = allPropsFinal.style;\n if (!el.isGroup && styleOpt) {\n if (clearStyle) {\n el.useStyle({});\n // When style object changed, how to trade the existing animation?\n // It is probably complicated and not needed to cover all the cases.\n // But still need consider the case:\n // (1) When using init animation on `style.opacity`, and before the animation\n // ended users triggers an update by mousewhel. At that time the init\n // animation should better be continued rather than terminated.\n // So after `useStyle` called, we should change the animation target manually\n // to continue the effect of the init animation.\n // (2) PENDING: If the previous animation targeted at a `val1`, and currently we need\n // to update the value to `val2` and no animation declared, should be terminate\n // the previous animation or just modify the target of the animation?\n // Therotically That will happen not only on `style` but also on `shape` and\n // `transfrom` props. But we haven't handle this case at present yet.\n // (3) PENDING: Is it proper to visit `animators` and `targetName`?\n var animators = el.animators;\n for (var i = 0; i < animators.length; i++) {\n var animator = animators[i];\n // targetName is the \"topKey\".\n if (animator.targetName === 'style') {\n animator.changeTarget(el.style);\n }\n }\n }\n el.setStyle(styleOpt);\n }\n if (allPropsFinal) {\n // Not set style here.\n allPropsFinal.style = null;\n // Set el to the final state firstly.\n allPropsFinal && el.attr(allPropsFinal);\n allPropsFinal.style = styleOpt;\n }\n}\nfunction applyPropsTransition(el, elOption, dataIndex, model,\n// Can be null/undefined\ntransFromProps) {\n if (transFromProps) {\n var config = getElementAnimationConfig('update', el, elOption, model, dataIndex);\n if (config.duration > 0) {\n el.animateFrom(transFromProps, config);\n }\n }\n}\nfunction applyMiscProps(el, elOption) {\n // Merge by default.\n hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\n hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\n if (el instanceof Displayable) {\n hasOwn(elOption, 'invisible') && (el.invisible = elOption.invisible);\n }\n if (el instanceof Path) {\n hasOwn(elOption, 'autoBatch') && (el.autoBatch = elOption.autoBatch);\n }\n}\n// Use it to avoid it be exposed to user.\nvar tmpDuringScope = {};\nvar transitionDuringAPI = {\n // Usually other props do not need to be changed in animation during.\n setTransform: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assert(hasOwn(TRANSFORM_PROPS_MAP, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\n }\n tmpDuringScope.el[key] = val;\n return this;\n },\n getTransform: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assert(hasOwn(TRANSFORM_PROPS_MAP, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\n }\n return tmpDuringScope.el[key];\n },\n setShape: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n var el = tmpDuringScope.el;\n var shape = el.shape || (el.shape = {});\n shape[key] = val;\n el.dirtyShape && el.dirtyShape();\n return this;\n },\n getShape: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n var shape = tmpDuringScope.el.shape;\n if (shape) {\n return shape[key];\n }\n },\n setStyle: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n var el = tmpDuringScope.el;\n var style = el.style;\n if (style) {\n if (process.env.NODE_ENV !== 'production') {\n if (eqNaN(val)) {\n warn('style.' + key + ' must not be assigned with NaN.');\n }\n }\n style[key] = val;\n el.dirtyStyle && el.dirtyStyle();\n }\n return this;\n },\n getStyle: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n var style = tmpDuringScope.el.style;\n if (style) {\n return style[key];\n }\n },\n setExtra: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n var extra = tmpDuringScope.el.extra || (tmpDuringScope.el.extra = {});\n extra[key] = val;\n return this;\n },\n getExtra: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n var extra = tmpDuringScope.el.extra;\n if (extra) {\n return extra[key];\n }\n }\n};\nfunction assertNotReserved(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\n throw new Error('key must not be \"' + key + '\"');\n }\n }\n}\nfunction duringCall() {\n // Do not provide \"percent\" until some requirements come.\n // Because consider thies case:\n // enterFrom: {x: 100, y: 30}, transition: 'x'.\n // And enter duration is different from update duration.\n // Thus it might be confused about the meaning of \"percent\" in during callback.\n var scope = this;\n var el = scope.el;\n if (!el) {\n return;\n }\n // If el is remove from zr by reason like legend, during still need to called,\n // because el will be added back to zr and the prop value should not be incorrect.\n var latestUserDuring = transitionInnerStore(el).userDuring;\n var scopeUserDuring = scope.userDuring;\n // Ensured a during is only called once in each animation frame.\n // If a during is called multiple times in one frame, maybe some users' calculation logic\n // might be wrong (not sure whether this usage exists).\n // The case of a during might be called twice can be: by default there is a animator for\n // 'x', 'y' when init. Before the init animation finished, call `setOption` to start\n // another animators for 'style'/'shape'/'extra'.\n if (latestUserDuring !== scopeUserDuring) {\n // release\n scope.el = scope.userDuring = null;\n return;\n }\n tmpDuringScope.el = el;\n // Give no `this` to user in \"during\" calling.\n scopeUserDuring(transitionDuringAPI);\n // FIXME: if in future meet the case that some prop will be both modified in `during` and `state`,\n // consider the issue that the prop might be incorrect when return to \"normal\" state.\n}\n\nfunction prepareShapeOrExtraTransitionFrom(mainAttr, fromEl, elOption, transFromProps) {\n var attrOpt = elOption[mainAttr];\n if (!attrOpt) {\n return;\n }\n var elPropsInAttr = fromEl[mainAttr];\n var transFromPropsInAttr;\n if (elPropsInAttr) {\n var transition = elOption.transition;\n var attrTransition = attrOpt.transition;\n if (attrTransition) {\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n if (isTransitionAll(attrTransition)) {\n extend(transFromPropsInAttr, elPropsInAttr);\n } else {\n var transitionKeys = normalizeToArray(attrTransition);\n for (var i = 0; i < transitionKeys.length; i++) {\n var key = transitionKeys[i];\n var elVal = elPropsInAttr[key];\n transFromPropsInAttr[key] = elVal;\n }\n }\n } else if (isTransitionAll(transition) || indexOf(transition, mainAttr) >= 0) {\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n var elPropsInAttrKeys = keys(elPropsInAttr);\n for (var i = 0; i < elPropsInAttrKeys.length; i++) {\n var key = elPropsInAttrKeys[i];\n var elVal = elPropsInAttr[key];\n if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) {\n transFromPropsInAttr[key] = elVal;\n }\n }\n }\n }\n}\nfunction prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) {\n var attrOpt = elOption[mainAttr];\n if (!attrOpt) {\n return;\n }\n var allPropsInAttr = allProps[mainAttr] = {};\n var keysInAttr = keys(attrOpt);\n for (var i = 0; i < keysInAttr.length; i++) {\n var key = keysInAttr[i];\n // To avoid share one object with different element, and\n // to avoid user modify the object inexpectedly, have to clone.\n allPropsInAttr[key] = cloneValue(attrOpt[key]);\n }\n}\nfunction prepareTransformTransitionFrom(el, elOption, transFromProps) {\n var transition = elOption.transition;\n var transitionKeys = isTransitionAll(transition) ? TRANSFORMABLE_PROPS : normalizeToArray(transition || []);\n for (var i = 0; i < transitionKeys.length; i++) {\n var key = transitionKeys[i];\n if (key === 'style' || key === 'shape' || key === 'extra') {\n continue;\n }\n var elVal = el[key];\n if (process.env.NODE_ENV !== 'production') {\n checkTransformPropRefer(key, 'el.transition');\n }\n // Do not clone, animator will perform that clone.\n transFromProps[key] = elVal;\n }\n}\nfunction prepareTransformAllPropsFinal(el, elOption, allProps) {\n for (var i = 0; i < LEGACY_TRANSFORM_PROPS.length; i++) {\n var legacyName = LEGACY_TRANSFORM_PROPS[i];\n var xyName = LEGACY_TRANSFORM_PROPS_MAP[legacyName];\n var legacyArr = elOption[legacyName];\n if (legacyArr) {\n allProps[xyName[0]] = legacyArr[0];\n allProps[xyName[1]] = legacyArr[1];\n }\n }\n for (var i = 0; i < TRANSFORMABLE_PROPS.length; i++) {\n var key = TRANSFORMABLE_PROPS[i];\n if (elOption[key] != null) {\n allProps[key] = elOption[key];\n }\n }\n}\nfunction prepareStyleTransitionFrom(fromEl, elOption, styleOpt, transFromProps) {\n if (!styleOpt) {\n return;\n }\n var fromElStyle = fromEl.style;\n var transFromStyleProps;\n if (fromElStyle) {\n var styleTransition = styleOpt.transition;\n var elTransition = elOption.transition;\n if (styleTransition && !isTransitionAll(styleTransition)) {\n var transitionKeys = normalizeToArray(styleTransition);\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n for (var i = 0; i < transitionKeys.length; i++) {\n var key = transitionKeys[i];\n var elVal = fromElStyle[key];\n // Do not clone, see `checkNonStyleTansitionRefer`.\n transFromStyleProps[key] = elVal;\n }\n } else if (fromEl.getAnimationStyleProps && (isTransitionAll(elTransition) || isTransitionAll(styleTransition) || indexOf(elTransition, 'style') >= 0)) {\n var animationProps = fromEl.getAnimationStyleProps();\n var animationStyleProps = animationProps ? animationProps.style : null;\n if (animationStyleProps) {\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n var styleKeys = keys(styleOpt);\n for (var i = 0; i < styleKeys.length; i++) {\n var key = styleKeys[i];\n if (animationStyleProps[key]) {\n var elVal = fromElStyle[key];\n transFromStyleProps[key] = elVal;\n }\n }\n }\n }\n }\n}\nfunction isNonStyleTransitionEnabled(optVal, elVal) {\n // The same as `checkNonStyleTansitionRefer`.\n return !isArrayLike(optVal) ? optVal != null && isFinite(optVal) : optVal !== elVal;\n}\nvar checkTransformPropRefer;\nif (process.env.NODE_ENV !== 'production') {\n checkTransformPropRefer = function (key, usedIn) {\n if (!hasOwn(TRANSFORM_PROPS_MAP, key)) {\n warn('Prop `' + key + '` is not a permitted in `' + usedIn + '`. ' + 'Only `' + keys(TRANSFORM_PROPS_MAP).join('`, `') + '` are permitted.');\n }\n };\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { keys, filter, each, isArray, indexOf } from 'zrender/lib/core/util.js';\nimport { ELEMENT_ANIMATABLE_PROPS } from './customGraphicTransition.js';\nimport { getAnimationConfig } from './basicTransition.js';\nimport { warn } from '../util/log.js';\nimport { makeInner } from '../util/model.js';\nvar getStateToRestore = makeInner();\nvar KEYFRAME_EXCLUDE_KEYS = ['percent', 'easing', 'shape', 'style', 'extra'];\n/**\n * Stop previous keyframe animation and restore the attributes.\n * Avoid new keyframe animation starts with wrong internal state when the percent: 0 is not set.\n */\nexport function stopPreviousKeyframeAnimationAndRestore(el) {\n // Stop previous keyframe animation.\n el.stopAnimation('keyframe');\n // Restore\n el.attr(getStateToRestore(el));\n}\nexport function applyKeyframeAnimation(el, animationOpts, animatableModel) {\n if (!animatableModel.isAnimationEnabled() || !animationOpts) {\n return;\n }\n if (isArray(animationOpts)) {\n each(animationOpts, function (singleAnimationOpts) {\n applyKeyframeAnimation(el, singleAnimationOpts, animatableModel);\n });\n return;\n }\n var keyframes = animationOpts.keyframes;\n var duration = animationOpts.duration;\n if (animatableModel && duration == null) {\n // Default to use duration of config.\n // NOTE: animation config from payload will be ignored because they are mainly for transitions.\n var config = getAnimationConfig('enter', animatableModel, 0);\n duration = config && config.duration;\n }\n if (!keyframes || !duration) {\n return;\n }\n var stateToRestore = getStateToRestore(el);\n each(ELEMENT_ANIMATABLE_PROPS, function (targetPropName) {\n if (targetPropName && !el[targetPropName]) {\n return;\n }\n var animator;\n var endFrameIsSet = false;\n // Sort keyframes by percent.\n keyframes.sort(function (a, b) {\n return a.percent - b.percent;\n });\n each(keyframes, function (kf) {\n // Stop current animation.\n var animators = el.animators;\n var kfValues = targetPropName ? kf[targetPropName] : kf;\n if (process.env.NODE_ENV !== 'production') {\n if (kf.percent >= 1) {\n endFrameIsSet = true;\n }\n }\n if (!kfValues) {\n return;\n }\n var propKeys = keys(kfValues);\n if (!targetPropName) {\n // PENDING performance?\n propKeys = filter(propKeys, function (key) {\n return indexOf(KEYFRAME_EXCLUDE_KEYS, key) < 0;\n });\n }\n if (!propKeys.length) {\n return;\n }\n if (!animator) {\n animator = el.animate(targetPropName, animationOpts.loop, true);\n animator.scope = 'keyframe';\n }\n for (var i = 0; i < animators.length; i++) {\n // Stop all other animation that is not keyframe.\n if (animators[i] !== animator && animators[i].targetName === animator.targetName) {\n animators[i].stopTracks(propKeys);\n }\n }\n targetPropName && (stateToRestore[targetPropName] = stateToRestore[targetPropName] || {});\n var savedTarget = targetPropName ? stateToRestore[targetPropName] : stateToRestore;\n each(propKeys, function (key) {\n // Save original value.\n savedTarget[key] = ((targetPropName ? el[targetPropName] : el) || {})[key];\n });\n animator.whenWithKeys(duration * kf.percent, kfValues, propKeys, kf.easing);\n });\n if (!animator) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!endFrameIsSet) {\n warn('End frame with percent: 1 is missing in the keyframeAnimation.', true);\n }\n }\n animator.delay(animationOpts.delay || 0).duration(duration).start(animationOpts.easing);\n });\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as zrColor from 'zrender/lib/tool/color.js';\nimport { linearMap } from '../util/number.js';\nimport { warn } from '../util/log.js';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\nvar VisualMapping = /** @class */function () {\n function VisualMapping(option) {\n var mappingMethod = option.mappingMethod;\n var visualType = option.type;\n var thisOption = this.option = zrUtil.clone(option);\n this.type = visualType;\n this.mappingMethod = mappingMethod;\n this._normalizeData = normalizers[mappingMethod];\n var visualHandler = VisualMapping.visualHandlers[visualType];\n this.applyVisual = visualHandler.applyVisual;\n this.getColorMapper = visualHandler.getColorMapper;\n this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\n if (mappingMethod === 'piecewise') {\n normalizeVisualRange(thisOption);\n preprocessForPiecewise(thisOption);\n } else if (mappingMethod === 'category') {\n thisOption.categories ? preprocessForSpecifiedCategory(thisOption)\n // categories is ordinal when thisOption.categories not specified,\n // which need no more preprocess except normalize visual.\n : normalizeVisualRange(thisOption, true);\n } else {\n // mappingMethod === 'linear' or 'fixed'\n zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n normalizeVisualRange(thisOption);\n }\n }\n VisualMapping.prototype.mapValueToVisual = function (value) {\n var normalized = this._normalizeData(value);\n return this._normalizedToVisual(normalized, value);\n };\n VisualMapping.prototype.getNormalizer = function () {\n return zrUtil.bind(this._normalizeData, this);\n };\n /**\n * List available visual types.\n *\n * @public\n * @return {Array.<string>}\n */\n VisualMapping.listVisualTypes = function () {\n return zrUtil.keys(VisualMapping.visualHandlers);\n };\n // /**\n // * @public\n // */\n // static addVisualHandler(name, handler) {\n // visualHandlers[name] = handler;\n // }\n /**\n * @public\n */\n VisualMapping.isValidType = function (visualType) {\n return VisualMapping.visualHandlers.hasOwnProperty(visualType);\n };\n /**\n * Convenient method.\n * Visual can be Object or Array or primary type.\n */\n VisualMapping.eachVisual = function (visual, callback, context) {\n if (zrUtil.isObject(visual)) {\n zrUtil.each(visual, callback, context);\n } else {\n callback.call(context, visual);\n }\n };\n VisualMapping.mapVisual = function (visual, callback, context) {\n var isPrimary;\n var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n VisualMapping.eachVisual(visual, function (v, key) {\n var newVal = callback.call(context, v, key);\n isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n });\n return newVisual;\n };\n /**\n * Retrieve visual properties from given object.\n */\n VisualMapping.retrieveVisuals = function (obj) {\n var ret = {};\n var hasVisual;\n obj && each(VisualMapping.visualHandlers, function (h, visualType) {\n if (obj.hasOwnProperty(visualType)) {\n ret[visualType] = obj[visualType];\n hasVisual = true;\n }\n });\n return hasVisual ? ret : null;\n };\n /**\n * Give order to visual types, considering colorSaturation, colorAlpha depends on color.\n *\n * @public\n * @param {(Object|Array)} visualTypes If Object, like: {color: ..., colorSaturation: ...}\n * IF Array, like: ['color', 'symbol', 'colorSaturation']\n * @return {Array.<string>} Sorted visual types.\n */\n VisualMapping.prepareVisualTypes = function (visualTypes) {\n if (zrUtil.isArray(visualTypes)) {\n visualTypes = visualTypes.slice();\n } else if (isObject(visualTypes)) {\n var types_1 = [];\n each(visualTypes, function (item, type) {\n types_1.push(type);\n });\n visualTypes = types_1;\n } else {\n return [];\n }\n visualTypes.sort(function (type1, type2) {\n // color should be front of colorSaturation, colorAlpha, ...\n // symbol and symbolSize do not matter.\n return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n });\n return visualTypes;\n };\n /**\n * 'color', 'colorSaturation', 'colorAlpha', ... are depends on 'color'.\n * Other visuals are only depends on themself.\n */\n VisualMapping.dependsOn = function (visualType1, visualType2) {\n return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n };\n /**\n * @param value\n * @param pieceList [{value: ..., interval: [min, max]}, ...]\n * Always from small to big.\n * @param findClosestWhenOutside Default to be false\n * @return index\n */\n VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n var possibleI;\n var abs = Infinity;\n // value has the higher priority.\n for (var i = 0, len = pieceList.length; i < len; i++) {\n var pieceValue = pieceList[i].value;\n if (pieceValue != null) {\n if (pieceValue === value\n // FIXME\n // It is supposed to compare value according to value type of dimension,\n // but currently value type can exactly be string or number.\n // Compromise for numeric-like string (like '12'), especially\n // in the case that visualMap.categories is ['22', '33'].\n || zrUtil.isString(pieceValue) && pieceValue === value + '') {\n return i;\n }\n findClosestWhenOutside && updatePossible(pieceValue, i);\n }\n }\n for (var i = 0, len = pieceList.length; i < len; i++) {\n var piece = pieceList[i];\n var interval = piece.interval;\n var close_1 = piece.close;\n if (interval) {\n if (interval[0] === -Infinity) {\n if (littleThan(close_1[1], value, interval[1])) {\n return i;\n }\n } else if (interval[1] === Infinity) {\n if (littleThan(close_1[0], interval[0], value)) {\n return i;\n }\n } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) {\n return i;\n }\n findClosestWhenOutside && updatePossible(interval[0], i);\n findClosestWhenOutside && updatePossible(interval[1], i);\n }\n }\n if (findClosestWhenOutside) {\n return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n }\n function updatePossible(val, index) {\n var newAbs = Math.abs(val - value);\n if (newAbs < abs) {\n abs = newAbs;\n possibleI = index;\n }\n }\n };\n VisualMapping.visualHandlers = {\n color: {\n applyVisual: makeApplyVisual('color'),\n getColorMapper: function () {\n var thisOption = this.option;\n return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n !isNormalized && (value = this._normalizeData(value));\n return doMapCategory.call(this, value);\n } : function (value, isNormalized, out) {\n // If output rgb array\n // which will be much faster and useful in pixel manipulation\n var returnRGBArray = !!out;\n !isNormalized && (value = this._normalizeData(value));\n out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n }, this);\n },\n _normalizedToVisual: {\n linear: function (normalized) {\n return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n },\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n if (result == null) {\n result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n }\n return result;\n },\n fixed: doMapFixed\n }\n },\n colorHue: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, value);\n }),\n colorSaturation: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, null, value);\n }),\n colorLightness: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, null, null, value);\n }),\n colorAlpha: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyAlpha(color, value);\n }),\n decal: {\n applyVisual: makeApplyVisual('decal'),\n _normalizedToVisual: {\n linear: null,\n category: doMapCategory,\n piecewise: null,\n fixed: null\n }\n },\n opacity: {\n applyVisual: makeApplyVisual('opacity'),\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n },\n liftZ: {\n applyVisual: makeApplyVisual('liftZ'),\n _normalizedToVisual: {\n linear: doMapFixed,\n category: doMapFixed,\n piecewise: doMapFixed,\n fixed: doMapFixed\n }\n },\n symbol: {\n applyVisual: function (value, getter, setter) {\n var symbolCfg = this.mapValueToVisual(value);\n setter('symbol', symbolCfg);\n },\n _normalizedToVisual: {\n linear: doMapToArray,\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n if (result == null) {\n result = doMapToArray.call(this, normalized);\n }\n return result;\n },\n fixed: doMapFixed\n }\n },\n symbolSize: {\n applyVisual: makeApplyVisual('symbolSize'),\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n }\n };\n return VisualMapping;\n}();\nfunction preprocessForPiecewise(thisOption) {\n var pieceList = thisOption.pieceList;\n thisOption.hasSpecialVisual = false;\n zrUtil.each(pieceList, function (piece, index) {\n piece.originIndex = index;\n // piece.visual is \"result visual value\" but not\n // a visual range, so it does not need to be normalized.\n if (piece.visual != null) {\n thisOption.hasSpecialVisual = true;\n }\n });\n}\nfunction preprocessForSpecifiedCategory(thisOption) {\n // Hash categories.\n var categories = thisOption.categories;\n var categoryMap = thisOption.categoryMap = {};\n var visual = thisOption.visual;\n each(categories, function (cate, index) {\n categoryMap[cate] = index;\n });\n // Process visual map input.\n if (!zrUtil.isArray(visual)) {\n var visualArr_1 = [];\n if (zrUtil.isObject(visual)) {\n each(visual, function (v, cate) {\n var index = categoryMap[cate];\n visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n });\n } else {\n // Is primary type, represents default visual.\n visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n }\n visual = setVisualToOption(thisOption, visualArr_1);\n }\n // Remove categories that has no visual,\n // then we can mapping them to CATEGORY_DEFAULT_VISUAL_INDEX.\n for (var i = categories.length - 1; i >= 0; i--) {\n if (visual[i] == null) {\n delete categoryMap[categories[i]];\n categories.pop();\n }\n }\n}\nfunction normalizeVisualRange(thisOption, isCategory) {\n var visual = thisOption.visual;\n var visualArr = [];\n if (zrUtil.isObject(visual)) {\n each(visual, function (v) {\n visualArr.push(v);\n });\n } else if (visual != null) {\n visualArr.push(visual);\n }\n var doNotNeedPair = {\n color: 1,\n symbol: 1\n };\n if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n // Do not care visualArr.length === 0, which is illegal.\n visualArr[1] = visualArr[0];\n }\n setVisualToOption(thisOption, visualArr);\n}\nfunction makePartialColorVisualHandler(applyValue) {\n return {\n applyVisual: function (value, getter, setter) {\n // Only used in HSL\n var colorChannel = this.mapValueToVisual(value);\n // Must not be array value\n setter('color', applyValue(getter('color'), colorChannel));\n },\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n };\n}\nfunction doMapToArray(normalized) {\n var visual = this.option.visual;\n return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {}; // TODO {}?\n}\n\nfunction makeApplyVisual(visualType) {\n return function (value, getter, setter) {\n setter(visualType, this.mapValueToVisual(value));\n };\n}\nfunction doMapCategory(normalized) {\n var visual = this.option.visual;\n return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\nfunction doMapFixed() {\n // visual will be convert to array.\n return this.option.visual[0];\n}\n/**\n * Create mapped to numeric visual\n */\nfunction createNormalizedToNumericVisual(sourceExtent) {\n return {\n linear: function (normalized) {\n return linearMap(normalized, sourceExtent, this.option.visual, true);\n },\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n if (result == null) {\n result = linearMap(normalized, sourceExtent, this.option.visual, true);\n }\n return result;\n },\n fixed: doMapFixed\n };\n}\nfunction getSpecifiedVisual(value) {\n var thisOption = this.option;\n var pieceList = thisOption.pieceList;\n if (thisOption.hasSpecialVisual) {\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n var piece = pieceList[pieceIndex];\n if (piece && piece.visual) {\n return piece.visual[this.type];\n }\n }\n}\nfunction setVisualToOption(thisOption, visualArr) {\n thisOption.visual = visualArr;\n if (thisOption.type === 'color') {\n thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n var color = zrColor.parse(item);\n if (!color && process.env.NODE_ENV !== 'production') {\n warn(\"'\" + item + \"' is an illegal color, fallback to '#000000'\", true);\n }\n return color || [0, 0, 0, 1];\n });\n }\n return visualArr;\n}\n/**\n * Normalizers by mapping methods.\n */\nvar normalizers = {\n linear: function (value) {\n return linearMap(value, this.option.dataExtent, [0, 1], true);\n },\n piecewise: function (value) {\n var pieceList = this.option.pieceList;\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n if (pieceIndex != null) {\n return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n }\n },\n category: function (value) {\n var index = this.option.categories ? this.option.categoryMap[value] : value; // ordinal value\n return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n },\n fixed: zrUtil.noop\n};\nfunction littleThan(close, a, b) {\n return close ? a <= b : a < b;\n}\nexport default VisualMapping;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { retrieveRawValue } from '../../data/helper/dataProvider.js';\nimport { isArray } from 'zrender/lib/core/util.js';\n/**\n * @return label string. Not null/undefined\n */\nexport function getDefaultLabel(data, dataIndex) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n var len = labelDims.length;\n // Simple optimization (in lots of cases, label dims length is 1)\n if (len === 1) {\n var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n return rawVal != null ? rawVal + '' : null;\n } else if (len) {\n var vals = [];\n for (var i = 0; i < labelDims.length; i++) {\n vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n }\n return vals.join(' ');\n }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n if (!isArray(interpolatedValue)) {\n return interpolatedValue + '';\n }\n var vals = [];\n for (var i = 0; i < labelDims.length; i++) {\n var dimIndex = data.getDimensionIndex(labelDims[i]);\n if (dimIndex >= 0) {\n vals.push(interpolatedValue[dimIndex]);\n }\n }\n return vals.join(' ');\n}", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { createSymbol, normalizeSymbolOffset, normalizeSymbolSize } from '../../util/symbol.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { enterEmphasis, leaveEmphasis, toggleHoverEmphasis } from '../../util/states.js';\nimport { getDefaultLabel } from './labelHelper.js';\nimport { extend } from 'zrender/lib/core/util.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { saveOldStyle } from '../../animation/basicTransition.js';\nvar Symbol = /** @class */function (_super) {\n __extends(Symbol, _super);\n function Symbol(data, idx, seriesScope, opts) {\n var _this = _super.call(this) || this;\n _this.updateData(data, idx, seriesScope, opts);\n return _this;\n }\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n // Remove paths created before\n this.removeAll();\n // let symbolPath = createSymbol(\n // symbolType, -0.5, -0.5, 1, 1, color\n // );\n // If width/height are set too small (e.g., set to 1) on ios10\n // and macOS Sierra, a circle stroke become a rect, no matter what\n // the scale is set. So we set width/height as 2. See #4150.\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n symbolPath.attr({\n z2: 100,\n culling: true,\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2\n });\n // Rewrite drift method\n symbolPath.drift = driftSymbol;\n this._symbolType = symbolType;\n this.add(symbolPath);\n };\n /**\n * Stop animation\n * @param {boolean} toLastFrame\n */\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n this.childAt(0).stopAnimation(null, toLastFrame);\n };\n Symbol.prototype.getSymbolType = function () {\n return this._symbolType;\n };\n /**\n * FIXME:\n * Caution: This method breaks the encapsulation of this module,\n * but it indeed brings convenience. So do not use the method\n * unless you detailedly know all the implements of `Symbol`,\n * especially animation.\n *\n * Get symbol path element.\n */\n Symbol.prototype.getSymbolPath = function () {\n return this.childAt(0);\n };\n /**\n * Highlight symbol\n */\n Symbol.prototype.highlight = function () {\n enterEmphasis(this.childAt(0));\n };\n /**\n * Downplay symbol\n */\n Symbol.prototype.downplay = function () {\n leaveEmphasis(this.childAt(0));\n };\n /**\n * @param {number} zlevel\n * @param {number} z\n */\n Symbol.prototype.setZ = function (zlevel, z) {\n var symbolPath = this.childAt(0);\n symbolPath.zlevel = zlevel;\n symbolPath.z = z;\n };\n Symbol.prototype.setDraggable = function (draggable, hasCursorOption) {\n var symbolPath = this.childAt(0);\n symbolPath.draggable = draggable;\n symbolPath.cursor = !hasCursorOption && draggable ? 'move' : symbolPath.cursor;\n };\n /**\n * Update symbol properties\n */\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n this.silent = false;\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n var seriesModel = data.hostModel;\n var symbolSize = Symbol.getSymbolSize(data, idx);\n var isInit = symbolType !== this._symbolType;\n var disableAnimation = opts && opts.disableAnimation;\n if (isInit) {\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n } else {\n var symbolPath = this.childAt(0);\n symbolPath.silent = false;\n var target = {\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2\n };\n disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n saveOldStyle(symbolPath);\n }\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n if (isInit) {\n var symbolPath = this.childAt(0);\n if (!disableAnimation) {\n var target = {\n scaleX: this._sizeX,\n scaleY: this._sizeY,\n style: {\n // Always fadeIn. Because it has fadeOut animation when symbol is removed..\n opacity: symbolPath.style.opacity\n }\n };\n symbolPath.scaleX = symbolPath.scaleY = 0;\n symbolPath.style.opacity = 0;\n graphic.initProps(symbolPath, target, seriesModel, idx);\n }\n }\n if (disableAnimation) {\n // Must stop leave transition manually if don't call initProps or updateProps.\n this.childAt(0).stopAnimation('leave');\n }\n };\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n var symbolPath = this.childAt(0);\n var seriesModel = data.hostModel;\n var emphasisItemStyle;\n var blurItemStyle;\n var selectItemStyle;\n var focus;\n var blurScope;\n var emphasisDisabled;\n var labelStatesModels;\n var hoverScale;\n var cursorStyle;\n if (seriesScope) {\n emphasisItemStyle = seriesScope.emphasisItemStyle;\n blurItemStyle = seriesScope.blurItemStyle;\n selectItemStyle = seriesScope.selectItemStyle;\n focus = seriesScope.focus;\n blurScope = seriesScope.blurScope;\n labelStatesModels = seriesScope.labelStatesModels;\n hoverScale = seriesScope.hoverScale;\n cursorStyle = seriesScope.cursorStyle;\n emphasisDisabled = seriesScope.emphasisDisabled;\n }\n if (!seriesScope || data.hasItemOption) {\n var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n emphasisDisabled = emphasisModel.get('disabled');\n labelStatesModels = getLabelStatesModels(itemModel);\n hoverScale = emphasisModel.getShallow('scale');\n cursorStyle = itemModel.getShallow('cursor');\n }\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n var symbolOffset = normalizeSymbolOffset(data.getItemVisual(idx, 'symbolOffset'), symbolSize);\n if (symbolOffset) {\n symbolPath.x = symbolOffset[0];\n symbolPath.y = symbolOffset[1];\n }\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\n var symbolStyle = data.getItemVisual(idx, 'style');\n var visualColor = symbolStyle.fill;\n if (symbolPath instanceof ZRImage) {\n var pathStyle = symbolPath.style;\n symbolPath.useStyle(extend({\n // TODO other properties like x, y ?\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, symbolStyle));\n } else {\n if (symbolPath.__isEmptyBrush) {\n // fill and stroke will be swapped if it's empty.\n // So we cloned a new style to avoid it affecting the original style in visual storage.\n // TODO Better implementation. No empty logic!\n symbolPath.useStyle(extend({}, symbolStyle));\n } else {\n symbolPath.useStyle(symbolStyle);\n }\n // Disable decal because symbol scale will been applied on the decal.\n symbolPath.style.decal = null;\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n symbolPath.style.strokeNoScale = true;\n }\n var liftZ = data.getItemVisual(idx, 'liftZ');\n var z2Origin = this._z2;\n if (liftZ != null) {\n if (z2Origin == null) {\n this._z2 = symbolPath.z2;\n symbolPath.z2 += liftZ;\n }\n } else if (z2Origin != null) {\n symbolPath.z2 = z2Origin;\n this._z2 = null;\n }\n var useNameLabel = opts && opts.useNameLabel;\n setLabelStyle(symbolPath, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultText: getLabelDefaultText,\n inheritColor: visualColor,\n defaultOpacity: symbolStyle.opacity\n });\n // Do not execute util needed.\n function getLabelDefaultText(idx) {\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n }\n this._sizeX = symbolSize[0] / 2;\n this._sizeY = symbolSize[1] / 2;\n var emphasisState = symbolPath.ensureState('emphasis');\n emphasisState.style = emphasisItemStyle;\n symbolPath.ensureState('select').style = selectItemStyle;\n symbolPath.ensureState('blur').style = blurItemStyle;\n // null / undefined / true means to use default strategy.\n // 0 / false / negative number / NaN / Infinity means no scale.\n var scaleRatio = hoverScale == null || hoverScale === true ? Math.max(1.1, 3 / this._sizeY)\n // PENDING: restrict hoverScale > 1? It seems unreasonable to scale down\n : isFinite(hoverScale) && hoverScale > 0 ? +hoverScale : 1;\n // always set scale to allow resetting\n emphasisState.scaleX = this._sizeX * scaleRatio;\n emphasisState.scaleY = this._sizeY * scaleRatio;\n this.setSymbolScale(1);\n toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n };\n Symbol.prototype.setSymbolScale = function (scale) {\n this.scaleX = this.scaleY = scale;\n };\n Symbol.prototype.fadeOut = function (cb, seriesModel, opt) {\n var symbolPath = this.childAt(0);\n var dataIndex = getECData(this).dataIndex;\n var animationOpt = opt && opt.animation;\n // Avoid mistaken hover when fading out\n this.silent = symbolPath.silent = true;\n // Not show text when animating\n if (opt && opt.fadeLabel) {\n var textContent = symbolPath.getTextContent();\n if (textContent) {\n graphic.removeElement(textContent, {\n style: {\n opacity: 0\n }\n }, seriesModel, {\n dataIndex: dataIndex,\n removeOpt: animationOpt,\n cb: function () {\n symbolPath.removeTextContent();\n }\n });\n }\n } else {\n symbolPath.removeTextContent();\n }\n graphic.removeElement(symbolPath, {\n style: {\n opacity: 0\n },\n scaleX: 0,\n scaleY: 0\n }, seriesModel, {\n dataIndex: dataIndex,\n cb: cb,\n removeOpt: animationOpt\n });\n };\n Symbol.getSymbolSize = function (data, idx) {\n return normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n };\n return Symbol;\n}(graphic.Group);\nfunction driftSymbol(dx, dy) {\n this.parent.drift(dx, dy);\n}\nexport default Symbol;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport SymbolClz from './Symbol.js';\nimport { isObject } from 'zrender/lib/core/util.js';\nimport { getLabelStatesModels } from '../../label/labelStyle.js';\nfunction symbolNeedsDraw(data, point, idx, opt) {\n return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx))\n // We do not set clipShape on group, because it will cut part of\n // the symbol element shape. We use the same clip shape here as\n // the line clip.\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\nfunction normalizeUpdateOpt(opt) {\n if (opt != null && !isObject(opt)) {\n opt = {\n isIgnore: opt\n };\n }\n return opt || {};\n}\nfunction makeSeriesScope(data) {\n var seriesModel = data.hostModel;\n var emphasisModel = seriesModel.getModel('emphasis');\n return {\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n focus: emphasisModel.get('focus'),\n blurScope: emphasisModel.get('blurScope'),\n emphasisDisabled: emphasisModel.get('disabled'),\n hoverScale: emphasisModel.get('scale'),\n labelStatesModels: getLabelStatesModels(seriesModel),\n cursorStyle: seriesModel.get('cursor')\n };\n}\nvar SymbolDraw = /** @class */function () {\n function SymbolDraw(SymbolCtor) {\n this.group = new graphic.Group();\n this._SymbolCtor = SymbolCtor || SymbolClz;\n }\n /**\n * Update symbols draw by new data\n */\n SymbolDraw.prototype.updateData = function (data, opt) {\n // Remove progressive els.\n this._progressiveEls = null;\n opt = normalizeUpdateOpt(opt);\n var group = this.group;\n var seriesModel = data.hostModel;\n var oldData = this._data;\n var SymbolCtor = this._SymbolCtor;\n var disableAnimation = opt.disableAnimation;\n var seriesScope = makeSeriesScope(data);\n var symbolUpdateOpt = {\n disableAnimation: disableAnimation\n };\n var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n return data.getItemLayout(idx);\n };\n // There is no oldLineData only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n if (!oldData) {\n group.removeAll();\n }\n data.diff(oldData).add(function (newIdx) {\n var point = getSymbolPoint(newIdx);\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n symbolEl.setPosition(point);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n var point = getSymbolPoint(newIdx);\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n group.remove(symbolEl);\n return;\n }\n var newSymbolType = data.getItemVisual(newIdx, 'symbol') || 'circle';\n var oldSymbolType = symbolEl && symbolEl.getSymbolType && symbolEl.getSymbolType();\n if (!symbolEl\n // Create a new if symbol type changed.\n || oldSymbolType && oldSymbolType !== newSymbolType) {\n group.remove(symbolEl);\n symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n symbolEl.setPosition(point);\n } else {\n symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n var target = {\n x: point[0],\n y: point[1]\n };\n disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n }\n // Add back\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && el.fadeOut(function () {\n group.remove(el);\n }, seriesModel);\n }).execute();\n this._getSymbolPoint = getSymbolPoint;\n this._data = data;\n };\n ;\n SymbolDraw.prototype.updateLayout = function () {\n var _this = this;\n var data = this._data;\n if (data) {\n // Not use animation\n data.eachItemGraphicEl(function (el, idx) {\n var point = _this._getSymbolPoint(idx);\n el.setPosition(point);\n el.markRedraw();\n });\n }\n };\n ;\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n this._seriesScope = makeSeriesScope(data);\n this._data = null;\n this.group.removeAll();\n };\n ;\n /**\n * Update symbols draw by new data\n */\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n // Clear\n this._progressiveEls = [];\n opt = normalizeUpdateOpt(opt);\n function updateIncrementalAndHover(el) {\n if (!el.isGroup) {\n el.incremental = true;\n el.ensureState('emphasis').hoverLayer = true;\n }\n }\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n var point = data.getItemLayout(idx);\n if (symbolNeedsDraw(data, point, idx, opt)) {\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\n el.traverse(updateIncrementalAndHover);\n el.setPosition(point);\n this.group.add(el);\n data.setItemGraphicEl(idx, el);\n this._progressiveEls.push(el);\n }\n }\n };\n ;\n SymbolDraw.prototype.eachRendered = function (cb) {\n graphic.traverseElements(this._progressiveEls || this.group, cb);\n };\n SymbolDraw.prototype.remove = function (enableAnimation) {\n var group = this.group;\n var data = this._data;\n // Incremental model do not have this._data.\n if (data && enableAnimation) {\n data.eachItemGraphicEl(function (el) {\n el.fadeOut(function () {\n group.remove(el);\n }, data.hostModel);\n });\n } else {\n group.removeAll();\n }\n };\n ;\n return SymbolDraw;\n}();\nexport default SymbolDraw;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Line path for bezier and straight line draw\n */\nimport * as graphic from '../../util/graphic.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\nvar StraightLineShape = /** @class */function () {\n function StraightLineShape() {\n // Start point\n this.x1 = 0;\n this.y1 = 0;\n // End point\n this.x2 = 0;\n this.y2 = 0;\n this.percent = 1;\n }\n return StraightLineShape;\n}();\nvar CurveShape = /** @class */function (_super) {\n __extends(CurveShape, _super);\n function CurveShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return CurveShape;\n}(StraightLineShape);\nfunction isStraightLine(shape) {\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\nvar ECLinePath = /** @class */function (_super) {\n __extends(ECLinePath, _super);\n function ECLinePath(opts) {\n var _this = _super.call(this, opts) || this;\n _this.type = 'ec-line';\n return _this;\n }\n ECLinePath.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n ECLinePath.prototype.getDefaultShape = function () {\n return new StraightLineShape();\n };\n ECLinePath.prototype.buildPath = function (ctx, shape) {\n if (isStraightLine(shape)) {\n straightLineProto.buildPath.call(this, ctx, shape);\n } else {\n bezierCurveProto.buildPath.call(this, ctx, shape);\n }\n };\n ECLinePath.prototype.pointAt = function (t) {\n if (isStraightLine(this.shape)) {\n return straightLineProto.pointAt.call(this, t);\n } else {\n return bezierCurveProto.pointAt.call(this, t);\n }\n };\n ECLinePath.prototype.tangentAt = function (t) {\n var shape = this.shape;\n var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n return vec2.normalize(p, p);\n };\n return ECLinePath;\n}(graphic.Path);\nexport default ECLinePath;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { isArray, each } from 'zrender/lib/core/util.js';\nimport * as vector from 'zrender/lib/core/vector.js';\nimport * as symbolUtil from '../../util/symbol.js';\nimport ECLinePath from './LinePath.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states.js';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle.js';\nimport { round } from '../../util/number.js';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\nfunction makeSymbolTypeKey(symbolCategory) {\n return '_' + symbolCategory + 'Type';\n}\nfunction makeSymbolTypeValue(name, lineData, idx) {\n var symbolType = lineData.getItemVisual(idx, name);\n if (!symbolType || symbolType === 'none') {\n return symbolType;\n }\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n var symbolOffset = lineData.getItemVisual(idx, name + 'Offset');\n var symbolKeepAspect = lineData.getItemVisual(idx, name + 'KeepAspect');\n var symbolSizeArr = symbolUtil.normalizeSymbolSize(symbolSize);\n var symbolOffsetArr = symbolUtil.normalizeSymbolOffset(symbolOffset || 0, symbolSizeArr);\n return symbolType + symbolSizeArr + symbolOffsetArr + (symbolRotate || '') + (symbolKeepAspect || '');\n}\n/**\n * @inner\n */\nfunction createSymbol(name, lineData, idx) {\n var symbolType = lineData.getItemVisual(idx, name);\n if (!symbolType || symbolType === 'none') {\n return;\n }\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n var symbolOffset = lineData.getItemVisual(idx, name + 'Offset');\n var symbolKeepAspect = lineData.getItemVisual(idx, name + 'KeepAspect');\n var symbolSizeArr = symbolUtil.normalizeSymbolSize(symbolSize);\n var symbolOffsetArr = symbolUtil.normalizeSymbolOffset(symbolOffset || 0, symbolSizeArr);\n var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2 + symbolOffsetArr[0], -symbolSizeArr[1] / 2 + symbolOffsetArr[1], symbolSizeArr[0], symbolSizeArr[1], null, symbolKeepAspect);\n symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n symbolPath.name = name;\n return symbolPath;\n}\nfunction createLine(points) {\n var line = new ECLinePath({\n name: 'line',\n subPixelOptimize: true\n });\n setLinePoints(line.shape, points);\n return line;\n}\nfunction setLinePoints(targetShape, points) {\n targetShape.x1 = points[0][0];\n targetShape.y1 = points[0][1];\n targetShape.x2 = points[1][0];\n targetShape.y2 = points[1][1];\n targetShape.percent = 1;\n var cp1 = points[2];\n if (cp1) {\n targetShape.cpx1 = cp1[0];\n targetShape.cpy1 = cp1[1];\n } else {\n targetShape.cpx1 = NaN;\n targetShape.cpy1 = NaN;\n }\n}\nvar Line = /** @class */function (_super) {\n __extends(Line, _super);\n function Line(lineData, idx, seriesScope) {\n var _this = _super.call(this) || this;\n _this._createLine(lineData, idx, seriesScope);\n return _this;\n }\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var linePoints = lineData.getItemLayout(idx);\n var line = createLine(linePoints);\n line.shape.percent = 0;\n graphic.initProps(line, {\n shape: {\n percent: 1\n }\n }, seriesModel, idx);\n this.add(line);\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = createSymbol(symbolCategory, lineData, idx);\n // symbols must added after line to make sure\n // it will be updated after line#update.\n // Or symbol position and rotation update in line#beforeUpdate will be one frame slow\n this.add(symbol);\n this[makeSymbolTypeKey(symbolCategory)] = makeSymbolTypeValue(symbolCategory, lineData, idx);\n }, this);\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n // TODO More strict on the List type in parameters?\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var linePoints = lineData.getItemLayout(idx);\n var target = {\n shape: {}\n };\n setLinePoints(target.shape, linePoints);\n graphic.updateProps(line, target, seriesModel, idx);\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbolType = makeSymbolTypeValue(symbolCategory, lineData, idx);\n var key = makeSymbolTypeKey(symbolCategory);\n // Symbol changed\n if (this[key] !== symbolType) {\n this.remove(this.childOfName(symbolCategory));\n var symbol = createSymbol(symbolCategory, lineData, idx);\n this.add(symbol);\n }\n this[key] = symbolType;\n }, this);\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n ;\n Line.prototype.getLinePath = function () {\n return this.childAt(0);\n };\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled;\n var focus = seriesScope && seriesScope.focus;\n var blurScope = seriesScope && seriesScope.blurScope;\n // Optimization for large dataset\n if (!seriesScope || lineData.hasItemOption) {\n var itemModel = lineData.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisLineStyle = emphasisModel.getModel('lineStyle').getLineStyle();\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n emphasisDisabled = emphasisModel.get('disabled');\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n labelStatesModels = getLabelStatesModels(itemModel);\n }\n var lineStyle = lineData.getItemVisual(idx, 'style');\n var visualColor = lineStyle.stroke;\n line.useStyle(lineStyle);\n line.style.fill = null;\n line.style.strokeNoScale = true;\n line.ensureState('emphasis').style = emphasisLineStyle;\n line.ensureState('blur').style = blurLineStyle;\n line.ensureState('select').style = selectLineStyle;\n // Update symbol\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = this.childOfName(symbolCategory);\n if (symbol) {\n // Share opacity and color with line.\n symbol.setColor(visualColor);\n symbol.style.opacity = lineStyle.opacity;\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var lineState = line.getState(stateName);\n if (lineState) {\n var lineStateStyle = lineState.style || {};\n var state = symbol.ensureState(stateName);\n var stateStyle = state.style || (state.style = {});\n if (lineStateStyle.stroke != null) {\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n }\n if (lineStateStyle.opacity != null) {\n stateStyle.opacity = lineStateStyle.opacity;\n }\n }\n }\n symbol.markRedraw();\n }\n }, this);\n var rawVal = seriesModel.getRawValue(idx);\n setLabelStyle(this, labelStatesModels, {\n labelDataIndex: idx,\n labelFetcher: {\n getFormattedLabel: function (dataIndex, stateName) {\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n }\n },\n inheritColor: visualColor || '#000',\n defaultOpacity: lineStyle.opacity,\n defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n });\n var label = this.getTextContent();\n // Always set `textStyle` even if `normalStyle.text` is null, because default\n // values have to be set on `normalStyle`.\n if (label) {\n var labelNormalModel = labelStatesModels.normal;\n label.__align = label.style.align;\n label.__verticalAlign = label.style.verticalAlign;\n // 'start', 'middle', 'end'\n label.__position = labelNormalModel.get('position') || 'middle';\n var distance = labelNormalModel.get('distance');\n if (!isArray(distance)) {\n distance = [distance, distance];\n }\n label.__labelDistance = distance;\n }\n this.setTextConfig({\n position: null,\n local: true,\n inside: false // Can't be inside for stroke element.\n });\n\n toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n };\n Line.prototype.highlight = function () {\n enterEmphasis(this);\n };\n Line.prototype.downplay = function () {\n leaveEmphasis(this);\n };\n Line.prototype.updateLayout = function (lineData, idx) {\n this.setLinePoints(lineData.getItemLayout(idx));\n };\n Line.prototype.setLinePoints = function (points) {\n var linePath = this.childOfName('line');\n setLinePoints(linePath.shape, points);\n linePath.dirty();\n };\n Line.prototype.beforeUpdate = function () {\n var lineGroup = this;\n var symbolFrom = lineGroup.childOfName('fromSymbol');\n var symbolTo = lineGroup.childOfName('toSymbol');\n var label = lineGroup.getTextContent();\n // Quick reject\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n return;\n }\n var invScale = 1;\n var parentNode = this.parent;\n while (parentNode) {\n if (parentNode.scaleX) {\n invScale /= parentNode.scaleX;\n }\n parentNode = parentNode.parent;\n }\n var line = lineGroup.childOfName('line');\n // If line not changed\n // FIXME Parent scale changed\n if (!this.__dirty && !line.__dirty) {\n return;\n }\n var percent = line.shape.percent;\n var fromPos = line.pointAt(0);\n var toPos = line.pointAt(percent);\n var d = vector.sub([], toPos, fromPos);\n vector.normalize(d, d);\n function setSymbolRotation(symbol, percent) {\n // Fix #12388\n // when symbol is set to be 'arrow' in markLine,\n // symbolRotate value will be ignored, and compulsively use tangent angle.\n // rotate by default if symbol rotation is not specified\n var specifiedRotation = symbol.__specifiedRotation;\n if (specifiedRotation == null) {\n var tangent = line.tangentAt(percent);\n symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n } else {\n symbol.attr('rotation', specifiedRotation);\n }\n }\n if (symbolFrom) {\n symbolFrom.setPosition(fromPos);\n setSymbolRotation(symbolFrom, 0);\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n symbolFrom.markRedraw();\n }\n if (symbolTo) {\n symbolTo.setPosition(toPos);\n setSymbolRotation(symbolTo, 1);\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n symbolTo.markRedraw();\n }\n if (label && !label.ignore) {\n label.x = label.y = 0;\n label.originX = label.originY = 0;\n var textAlign = void 0;\n var textVerticalAlign = void 0;\n var distance = label.__labelDistance;\n var distanceX = distance[0] * invScale;\n var distanceY = distance[1] * invScale;\n var halfPercent = percent / 2;\n var tangent = line.tangentAt(halfPercent);\n var n = [tangent[1], -tangent[0]];\n var cp = line.pointAt(halfPercent);\n if (n[1] > 0) {\n n[0] = -n[0];\n n[1] = -n[1];\n }\n var dir = tangent[0] < 0 ? -1 : 1;\n if (label.__position !== 'start' && label.__position !== 'end') {\n var rotation = -Math.atan2(tangent[1], tangent[0]);\n if (toPos[0] < fromPos[0]) {\n rotation = Math.PI + rotation;\n }\n label.rotation = rotation;\n }\n var dy = void 0;\n switch (label.__position) {\n case 'insideStartTop':\n case 'insideMiddleTop':\n case 'insideEndTop':\n case 'middle':\n dy = -distanceY;\n textVerticalAlign = 'bottom';\n break;\n case 'insideStartBottom':\n case 'insideMiddleBottom':\n case 'insideEndBottom':\n dy = distanceY;\n textVerticalAlign = 'top';\n break;\n default:\n dy = 0;\n textVerticalAlign = 'middle';\n }\n switch (label.__position) {\n case 'end':\n label.x = d[0] * distanceX + toPos[0];\n label.y = d[1] * distanceY + toPos[1];\n textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n break;\n case 'start':\n label.x = -d[0] * distanceX + fromPos[0];\n label.y = -d[1] * distanceY + fromPos[1];\n textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n break;\n case 'insideStartTop':\n case 'insideStart':\n case 'insideStartBottom':\n label.x = distanceX * dir + fromPos[0];\n label.y = fromPos[1] + dy;\n textAlign = tangent[0] < 0 ? 'right' : 'left';\n label.originX = -distanceX * dir;\n label.originY = -dy;\n break;\n case 'insideMiddleTop':\n case 'insideMiddle':\n case 'insideMiddleBottom':\n case 'middle':\n label.x = cp[0];\n label.y = cp[1] + dy;\n textAlign = 'center';\n label.originY = -dy;\n break;\n case 'insideEndTop':\n case 'insideEnd':\n case 'insideEndBottom':\n label.x = -distanceX * dir + toPos[0];\n label.y = toPos[1] + dy;\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\n label.originX = distanceX * dir;\n label.originY = -dy;\n break;\n }\n label.scaleX = label.scaleY = invScale;\n label.setStyle({\n // Use the user specified text align and baseline first\n verticalAlign: label.__verticalAlign || textVerticalAlign,\n align: label.__align || textAlign\n });\n }\n };\n return Line;\n}(graphic.Group);\nexport default Line;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport LineGroup from './Line.js';\nimport { getLabelStatesModels } from '../../label/labelStyle.js';\nvar LineDraw = /** @class */function () {\n function LineDraw(LineCtor) {\n this.group = new graphic.Group();\n this._LineCtor = LineCtor || LineGroup;\n }\n LineDraw.prototype.updateData = function (lineData) {\n var _this = this;\n // Remove progressive els.\n this._progressiveEls = null;\n var lineDraw = this;\n var group = lineDraw.group;\n var oldLineData = lineDraw._lineData;\n lineDraw._lineData = lineData;\n // There is no oldLineData only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n if (!oldLineData) {\n group.removeAll();\n }\n var seriesScope = makeSeriesScope(lineData);\n lineData.diff(oldLineData).add(function (idx) {\n _this._doAdd(lineData, idx, seriesScope);\n }).update(function (newIdx, oldIdx) {\n _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n }).remove(function (idx) {\n group.remove(oldLineData.getItemGraphicEl(idx));\n }).execute();\n };\n ;\n LineDraw.prototype.updateLayout = function () {\n var lineData = this._lineData;\n // Do not support update layout in incremental mode.\n if (!lineData) {\n return;\n }\n lineData.eachItemGraphicEl(function (el, idx) {\n el.updateLayout(lineData, idx);\n }, this);\n };\n ;\n LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n this._seriesScope = makeSeriesScope(lineData);\n this._lineData = null;\n this.group.removeAll();\n };\n ;\n LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n this._progressiveEls = [];\n function updateIncrementalAndHover(el) {\n if (!el.isGroup && !isEffectObject(el)) {\n el.incremental = true;\n el.ensureState('emphasis').hoverLayer = true;\n }\n }\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n var itemLayout = lineData.getItemLayout(idx);\n if (lineNeedsDraw(itemLayout)) {\n var el = new this._LineCtor(lineData, idx, this._seriesScope);\n el.traverse(updateIncrementalAndHover);\n this.group.add(el);\n lineData.setItemGraphicEl(idx, el);\n this._progressiveEls.push(el);\n }\n }\n };\n ;\n LineDraw.prototype.remove = function () {\n this.group.removeAll();\n };\n ;\n LineDraw.prototype.eachRendered = function (cb) {\n graphic.traverseElements(this._progressiveEls || this.group, cb);\n };\n LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n var itemLayout = lineData.getItemLayout(idx);\n if (!lineNeedsDraw(itemLayout)) {\n return;\n }\n var el = new this._LineCtor(lineData, idx, seriesScope);\n lineData.setItemGraphicEl(idx, el);\n this.group.add(el);\n };\n LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n this.group.remove(itemEl);\n return;\n }\n if (!itemEl) {\n itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n } else {\n itemEl.updateData(newLineData, newIdx, seriesScope);\n }\n newLineData.setItemGraphicEl(newIdx, itemEl);\n this.group.add(itemEl);\n };\n return LineDraw;\n}();\nfunction isEffectObject(el) {\n return el.animators && el.animators.length > 0;\n}\nfunction makeSeriesScope(lineData) {\n var hostModel = lineData.hostModel;\n var emphasisModel = hostModel.getModel('emphasis');\n return {\n lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n emphasisLineStyle: emphasisModel.getModel(['lineStyle']).getLineStyle(),\n blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n emphasisDisabled: emphasisModel.get('disabled'),\n blurScope: emphasisModel.get('blurScope'),\n focus: emphasisModel.get('focus'),\n labelStatesModels: getLabelStatesModels(hostModel)\n };\n}\nfunction isPointNaN(pt) {\n return isNaN(pt[0]) || isNaN(pt[1]);\n}\nfunction lineNeedsDraw(pts) {\n return pts && !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\nexport default LineDraw;", "\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport function isCoordinateSystemType(coordSys, type) {\n return coordSys.type === type;\n}"],
5
- "mappings": "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",
6
- "names": ["GridModel", "Component_default", "CartesianAxisModel", "Component_default", "defaultOption", "AxisModel", "Cartesian", "scale", "Cartesian2D", "Axis2D", "scale", "asc", "layout", "scale", "min", "max", "Grid", "scale", "axis", "AxisBuilder", "scale", "AxisView", "CartesianAxisView", "layout", "CartesianXAxisView", "CartesianYAxisView", "GridView", "RadarModel", "scale", "Component_default", "axisBuilderAttrs", "RadarView", "colorIndex", "points", "splitAreas", "splitLines", "IndicatorAxis", "scale", "Radar", "install", "View", "copy", "SVGParser", "stop", "points", "type", "value", "scale", "GeoSVGResource", "points", "GeoJSONResource", "Geo", "map", "geoCoord", "getCoordSys", "getCoordSys", "geoCoord", "GeoCreator", "GeoModel", "Component_default", "RoamController", "scale", "MapDraw", "points", "GeoView", "install", "actionInfo", "ParallelView", "ParallelModel", "Component_default", "ParallelAxis", "scale", "extend", "each", "round", "PI", "Parallel", "layout", "restrict", "applyTransform", "ParallelAxisModel", "Component_default", "mathMin", "mathMax", "BrushController", "panelOpts", "trigger", "trigger", "mathMax", "min", "mathMin", "max", "getTransform", "map", "points", "ParallelAxisView", "install", "each", "isObject", "VisualMapping", "Symbol", "idx", "scale", "SymbolDraw", "el", "StraightLineShape", "CurveShape", "ECLinePath", "createSymbol", "points", "Line", "percent", "tangent", "Line_default", "LineDraw", "Line_default", "makeSeriesScope", "el"]
7
- }