@visactor/vrender 0.14.0-alpha.9 → 0.14.0

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 (118) hide show
  1. package/cjs/common/text.d.ts +1 -1
  2. package/cjs/common/text.js +2 -2
  3. package/cjs/common/text.js.map +1 -1
  4. package/cjs/common/utils.js +1 -1
  5. package/cjs/common/utils.js.map +1 -1
  6. package/cjs/constants.d.ts +1 -1
  7. package/cjs/constants.js +2 -2
  8. package/cjs/constants.js.map +1 -1
  9. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +1 -1
  10. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  11. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +1 -1
  12. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  13. package/cjs/core/contributions/window/browser-contribution.js +1 -1
  14. package/cjs/core/contributions/window/browser-contribution.js.map +1 -1
  15. package/cjs/core/contributions/window/feishu-contribution.js +1 -1
  16. package/cjs/core/contributions/window/feishu-contribution.js.map +1 -1
  17. package/cjs/core/contributions/window/lynx-contribution.js +1 -1
  18. package/cjs/core/contributions/window/lynx-contribution.js.map +1 -1
  19. package/cjs/core/contributions/window/native-contribution.js.map +1 -1
  20. package/cjs/core/contributions/window/node-contribution.js +1 -1
  21. package/cjs/core/contributions/window/node-contribution.js.map +1 -1
  22. package/cjs/core/contributions/window/taro-contribution.js +1 -1
  23. package/cjs/core/contributions/window/taro-contribution.js.map +1 -1
  24. package/cjs/core/contributions/window/wx-contribution.js +1 -1
  25. package/cjs/core/contributions/window/wx-contribution.js.map +1 -1
  26. package/cjs/core/core-modules.js +2 -2
  27. package/cjs/core/core-modules.js.map +1 -1
  28. package/cjs/core/global-module.d.ts +1 -5
  29. package/cjs/core/global-module.js +1 -20
  30. package/cjs/core/global-module.js.map +1 -1
  31. package/cjs/core/graphic-utils.js +1 -1
  32. package/cjs/core/graphic-utils.js.map +1 -1
  33. package/cjs/core/layer-service.js +1 -1
  34. package/cjs/core/layer-service.js.map +1 -1
  35. package/cjs/core/stage.js +2 -2
  36. package/cjs/core/stage.js.map +1 -1
  37. package/cjs/core/window.d.ts +1 -1
  38. package/cjs/core/window.js +3 -3
  39. package/cjs/core/window.js.map +1 -1
  40. package/cjs/graphic/text.js +2 -2
  41. package/cjs/graphic/text.js.map +1 -1
  42. package/cjs/index.d.ts +1 -1
  43. package/cjs/index.js +1 -1
  44. package/cjs/index.js.map +1 -1
  45. package/cjs/modules.d.ts +1 -1
  46. package/cjs/modules.js +3 -3
  47. package/cjs/modules.js.map +1 -1
  48. package/cjs/picker/canvas-picker-service.js +1 -1
  49. package/cjs/picker/canvas-picker-service.js.map +1 -1
  50. package/cjs/picker/global-picker-service.js +1 -1
  51. package/cjs/picker/global-picker-service.js.map +1 -1
  52. package/cjs/picker/math-picker-service.js +1 -1
  53. package/cjs/picker/math-picker-service.js.map +1 -1
  54. package/cjs/picker/picker-service.js +1 -1
  55. package/cjs/picker/picker-service.js.map +1 -1
  56. package/cjs/render/contributions/render/incremental-draw-contribution.js +1 -1
  57. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  58. package/dist/index.js +65 -64
  59. package/dist/index.min.js +1 -1
  60. package/es/common/text.d.ts +1 -1
  61. package/es/common/text.js +2 -2
  62. package/es/common/text.js.map +1 -1
  63. package/es/common/utils.js +1 -1
  64. package/es/common/utils.js.map +1 -1
  65. package/es/constants.d.ts +1 -1
  66. package/es/constants.js +1 -1
  67. package/es/constants.js.map +1 -1
  68. package/es/core/contributions/layerHandler/canvas2d-contribution.js +2 -2
  69. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  70. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +2 -2
  71. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  72. package/es/core/contributions/window/browser-contribution.js +2 -2
  73. package/es/core/contributions/window/browser-contribution.js.map +1 -1
  74. package/es/core/contributions/window/feishu-contribution.js +2 -2
  75. package/es/core/contributions/window/feishu-contribution.js.map +1 -1
  76. package/es/core/contributions/window/lynx-contribution.js +2 -2
  77. package/es/core/contributions/window/lynx-contribution.js.map +1 -1
  78. package/es/core/contributions/window/native-contribution.js.map +1 -1
  79. package/es/core/contributions/window/node-contribution.js +2 -2
  80. package/es/core/contributions/window/node-contribution.js.map +1 -1
  81. package/es/core/contributions/window/taro-contribution.js +2 -2
  82. package/es/core/contributions/window/taro-contribution.js.map +1 -1
  83. package/es/core/contributions/window/wx-contribution.js +2 -2
  84. package/es/core/contributions/window/wx-contribution.js.map +1 -1
  85. package/es/core/core-modules.js +4 -4
  86. package/es/core/core-modules.js.map +1 -1
  87. package/es/core/global-module.d.ts +1 -5
  88. package/es/core/global-module.js +1 -20
  89. package/es/core/global-module.js.map +1 -1
  90. package/es/core/graphic-utils.js +2 -2
  91. package/es/core/graphic-utils.js.map +1 -1
  92. package/es/core/layer-service.js +2 -2
  93. package/es/core/layer-service.js.map +1 -1
  94. package/es/core/stage.js +4 -4
  95. package/es/core/stage.js.map +1 -1
  96. package/es/core/window.d.ts +1 -1
  97. package/es/core/window.js +3 -3
  98. package/es/core/window.js.map +1 -1
  99. package/es/graphic/text.js +2 -2
  100. package/es/graphic/text.js.map +1 -1
  101. package/es/index.d.ts +1 -1
  102. package/es/index.js +1 -1
  103. package/es/index.js.map +1 -1
  104. package/es/modules.d.ts +1 -1
  105. package/es/modules.js +3 -3
  106. package/es/modules.js.map +1 -1
  107. package/es/picker/canvas-picker-service.js +2 -2
  108. package/es/picker/canvas-picker-service.js.map +1 -1
  109. package/es/picker/global-picker-service.js +2 -2
  110. package/es/picker/global-picker-service.js.map +1 -1
  111. package/es/picker/math-picker-service.js +2 -2
  112. package/es/picker/math-picker-service.js.map +1 -1
  113. package/es/picker/picker-service.js +2 -2
  114. package/es/picker/picker-service.js.map +1 -1
  115. package/es/render/contributions/render/incremental-draw-contribution.js +2 -2
  116. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  117. package/es/tsconfig.tsbuildinfo +1 -1
  118. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/render/contributions/render/incremental-draw-contribution.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAmE;AAanE,8CAAoD;AACpD,uDAAuD;AACvD,2DAA8D;AAC9D,8CAA4C;AAC5C,qCAAyD;AACzD,uEAA+E;AAC/E,uEAA+E;AAC/E,yDAAyD;AAEzD,iFAA6E;AAC7E,+CAAoD;AAEpD,kDAA4C;AAE5C,IAAK,MAGJ;AAHD,WAAK,MAAM;IACT,uCAAU,CAAA;IACV,mCAAQ,CAAA;AACV,CAAC,EAHI,MAAM,KAAN,MAAM,QAGV;AAOM,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,2CAAuB;IAc7E,YAIiD,aAA+B,EACnC,cAA+B,EACX,UAA0B,EAC1B,UAA0B,EAChD,YAA2B,EAIjD,gCAAyF;QAE5G,KAAK,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,gCAAgC,CAAC,CAAC;QAVtC,kBAAa,GAAb,aAAa,CAAkB;QACnC,mBAAc,GAAd,cAAc,CAAiB;QACX,eAAU,GAAV,UAAU,CAAgB;QAC1B,eAAU,GAAV,UAAU,CAAgB;QAChD,iBAAY,GAAZ,YAAY,CAAe;QAIjD,qCAAgC,GAAhC,gCAAgC,CAAyD;QAzB9G,cAAS,GAAY,KAAK,CAAC;QACjB,qBAAgB,GAAW,CAAC,CAAC;QAC7B,eAAU,GAAW,CAAC,CAAC;QACvB,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC;QAC/B,2BAAsB,GAAwB,IAAI,CAAC;QAC7D,UAAK,GAAG;YACN,YAAY,EAAE,IAAI,kBAAQ,CAAK,EAAE,CAAC;SACnC,CAAC;IAqBF,CAAC;IAED,IAAI;QACF,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzE,CAAC;IAQK,IAAI,CAAC,aAA6B,EAAE,WAAyB;;YAEjE,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,OAAO;aACR;YACD,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;YAEnC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC;YACnD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,IAAI,QAAQ,EAAE;gBACZ,OAAO;aACR;YAED,IAAI,CAAC,oBAAoB,GAAG,aAAa,CAAC;YAC1C,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,WAAW,CAAC;YAE9C,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO;aACR;YAUD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YAErB,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAKrC,OAAO,CAAC,IAAI,EAAE,CAAC;YAWf,WAAW,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAEpG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAE9B,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,aAAa,CAAC,eAAe;iBAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;gBACb,OAAO,CAAC,MAAA,CAAC,CAAC,SAAS,CAAC,MAAM,mCAAI,0BAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,SAAS,CAAC,MAAM,mCAAI,0BAAgB,CAAC,MAAM,CAAC,CAAC;YAC3G,CAAC,CAAC;iBACD,OAAO,CAAC,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,WAAW,CAAC,KAAe,EAAE,WAAW,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC3C,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEe,eAAe,CAAC,KAAa,EAAE,WAAyB;;YACtE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;KAAA;IAGe,uBAAuB,CAAC,KAAa,EAAE,WAAyB;;YAC9E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACzB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE;oBAClC,SAAS,EAAE,GAAS,EAAE;wBAEpB,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;4BACrB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAa,CAAC;4BAChD,IAAI,OAAO,CAAC,WAAW,IAAK,OAAO,CAAC,SAAiB,CAAC,QAAQ,EAAE;gCAC9D,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;oCAC1B,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;iCAC3B;gCACD,OAAO,OAAO,CAAC,aAAa,GAAI,OAAO,CAAC,SAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE;oCACzE,WAAW,CAAC,mBAAmB,GAAG;wCAChC,UAAU,EAAE,OAAO,CAAC,aAAa;wCACjC,MAAM,EAAE,OAAO,CAAC,WAAW;qCAC5B,CAAC;oCACF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oCACtC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;oCAC7C,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;iCAC9B;6BACF;iCAAM;gCACL,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;6BACvC;4BACD,OAAO,CAAC,KAAK,CAAC,CAAC;4BACf,OAAO;yBACR;wBACD,MAAM,IAAA,mBAAY,EAAC,KAAK,EAAE,0BAAgB,CAAC,MAAM,EAAE,CAAC,IAAc,EAAE,CAAS,EAAE,EAAE;4BAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE;gCAC/B,OAAO,IAAI,CAAC;6BACb;4BACD,IAAI,IAAI,CAAC,WAAW,EAAE;gCAEpB,OAAO,KAAK,CAAC;6BACd;4BAED,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;gCACvB,OAAO,KAAK,CAAC;6BACd;4BACD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC;4BAE5D,IAAI,CAAC,GAAG,SAAS,EAAE;gCACjB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;gCACxB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;6BACpC;4BAED,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,EAAE;gCACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC;gCAExC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;6BAC/B;4BAED,OAAO,KAAK,CAAC;wBACf,CAAC,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,CAAA;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;KAAA;IAEe,eAAe;;YAC7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC,GAAG,EAAE;oBAC1C,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAOe,YAAY,CAAC,WAAyB;;YACpD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,IAAI,WAAW,CAAC,kBAAkB,EAAE;gBAClC,IAAI,GAAG,KAAK,CAAC;gBACb,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEe,SAAS;;YACvB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC1B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE;wBACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;wBAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;4BACxE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;wBAChC,CAAC,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;QACH,CAAC;KAAA;IAES,WAAW;QACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,CAAC;IAEK,WAAW,CAAC,KAAa,EAAE,WAAyB;;YACxD,IAAI,WAAW,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,EAAE;gBAC7D,OAAO;aACR;YACD,IAAI,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,EAAE;gBAC7D,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC/C,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;gBACzB,OAAO;aACR;YAED,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE;oBAClC,SAAS,EAAE,GAAS,EAAE;wBACpB,MAAM,IAAA,mBAAY,EAAC,KAAK,EAAE,0BAAgB,CAAC,MAAM,EAAE,CAAO,IAAc,EAAE,EAAE;4BAC1E,IAAI,WAAW,CAAC,KAAK,EAAE;gCACrB,OAAO;6BACR;4BACD,IAAI,IAAI,CAAC,WAAW,EAAE;gCACpB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAc,EAAE,WAAW,CAAC,CAAC;6BACrD;iCAAM;gCAEL,OAAO;6BACR;wBACH,CAAC,CAAA,CAAC,CAAC;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,CAAA;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CAQF,CAAA;AAzPC;IAAC,IAAA,kBAAM,EAAC,kBAAM,CAAC;;kEAAiB;AAZrB,kCAAkC;IAD9C,IAAA,sBAAU,GAAE;IAmBR,WAAA,IAAA,uBAAW,EAAC,sBAAa,CAAC,CAAA;IAC1B,WAAA,IAAA,kBAAM,EAAC,uBAAc,CAAC,CAAA;IACtB,WAAA,IAAA,kBAAM,EAAC,4DAAkC,CAAC,CAAA;IAC1C,WAAA,IAAA,kBAAM,EAAC,4DAAkC,CAAC,CAAA;IAC1C,WAAA,IAAA,kBAAM,EAAC,wBAAY,CAAC,CAAA;IAEpB,WAAA,IAAA,kBAAM,EAAC,4CAAoB,CAAC,CAAA;IAC5B,WAAA,IAAA,iBAAK,EAAC,sCAAmB,CAAC,CAAA;;GAzBlB,kCAAkC,CAqQ9C;AArQY,gFAAkC","file":"incremental-draw-contribution.js","sourcesContent":["import { injectable, inject, named, multiInject } from 'inversify';\nimport type {\n IGraphic,\n IGroup,\n IGlobal,\n IRenderService,\n IDrawContext,\n IDrawContribution,\n IGraphicRender,\n IRenderSelector,\n IDrawItemInterceptorContribution,\n IContributionProvider\n} from '../../../interface';\nimport { DefaultAttribute } from '../../../graphic';\nimport { LayerService } from '../../../core/constants';\nimport { DefaultDrawContribution } from './draw-contribution';\nimport { SyncHook } from '../../../tapable';\nimport { GraphicRender, RenderSelector } from './symbol';\nimport { DefaultIncrementalCanvasLineRender } from './incremental-line-render';\nimport { DefaultIncrementalCanvasAreaRender } from './incremental-area-render';\nimport { DrawItemInterceptor } from './draw-interceptor';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { foreachAsync } from '../../../common/sort';\nimport type { ILayerService } from '../../../interface/core';\nimport { Global } from '../../../constants';\n\nenum STATUS {\n NORMAL = 0,\n STOP = 1\n}\n\n/**\n * 增量渲染的contribution,基于树状结构针对图元的渲染\n * 不是单例模式\n */\n@injectable()\nexport class DefaultIncrementalDrawContribution extends DefaultDrawContribution implements IDrawContribution {\n rendering: boolean = false;\n protected currFrameStartAt: number = 0;\n protected currentIdx: number = 0;\n protected status: STATUS = STATUS.NORMAL;\n protected checkingForDrawPromise: Promise<any> | null = null;\n hooks = {\n completeDraw: new SyncHook<[]>([])\n };\n protected lastRenderService: IRenderService;\n protected lastDrawContext: IDrawContext;\n protected count: number;\n @inject(Global) global: IGlobal;\n\n constructor(\n // @inject(ContributionProvider)\n // @named(GraphicRender)\n // protected readonly contributions: ContributionProvider<IGraphicRender>,\n @multiInject(GraphicRender) protected readonly contributions: IGraphicRender[],\n @inject(RenderSelector) protected readonly renderSelector: IRenderSelector, // 根据图元类型选择对应的renderItem进行渲染\n @inject(DefaultIncrementalCanvasLineRender) protected readonly lineRender: IGraphicRender, // 默认的lineRender\n @inject(DefaultIncrementalCanvasAreaRender) protected readonly areaRender: IGraphicRender, // 默认的lineRender\n @inject(LayerService) protected readonly layerService: ILayerService, // 默认的polygonRender\n // 拦截器\n @inject(ContributionProvider)\n @named(DrawItemInterceptor)\n protected readonly drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>\n ) {\n super(contributions, renderSelector, layerService, drawItemInterceptorContributions);\n }\n\n init(): void {\n super.init();\n this.defaultRenderMap.set(this.lineRender.numberType, this.lineRender);\n this.defaultRenderMap.set(this.areaRender.numberType, this.areaRender);\n }\n\n /**\n *\n * @param renderService\n * @param drawContext restartIncremental为true表示重新执行增量渲染,为false表示不执行增量渲染\n * @returns\n */\n async draw(renderService: IRenderService, drawContext: IDrawContext): Promise<void> {\n // 入口检查是否需要重新绘制\n if (this.checkingForDrawPromise) {\n return;\n }\n this.lastRenderService = renderService;\n this.lastDrawContext = drawContext;\n\n this.checkingForDrawPromise = this.checkForDraw(drawContext);\n const skipDraw = await this.checkingForDrawPromise;\n this.checkingForDrawPromise = null;\n if (skipDraw) {\n return;\n }\n\n this.currentRenderService = renderService;\n const { context, x = 0, y = 0 } = drawContext;\n\n if (!context) {\n return;\n }\n // 增量渲染不需要dirtyBounds\n // const dirtyBounds: IBounds | undefined = this.dirtyBounds.setValue(x, y, x + width, y + height);\n // if (stage.dirtyBounds) {\n // const b = getRectIntersect(dirtyBounds, stage.dirtyBounds, false);\n // dirtyBounds.x1 = Math.floor(b.x1);\n // dirtyBounds.y1 = Math.floor(b.y1);\n // dirtyBounds.x2 = Math.ceil(b.x2);\n // dirtyBounds.y2 = Math.ceil(b.y2);\n // }\n context.inuse = true;\n // 初始化context\n context.clearMatrix();\n context.setTransformForCurrent(true);\n\n // const drawInArea =\n // dirtyBounds.width() * context.dpr !== context.canvas.width ||\n // dirtyBounds.height() * context.dpr !== context.canvas.height;\n context.save();\n\n // if (drawInArea) {\n // context.beginPath();\n // context.rect(dirtyBounds.x1, dirtyBounds.y1, dirtyBounds.width(), dirtyBounds.height());\n // context.clip();\n // }\n\n // this.clearScreen(renderService, context, drawContext);\n\n // 绘制之前需要清空画布\n drawContext.restartIncremental && this.clearScreen(this.currentRenderService, context, drawContext);\n // 设置translate\n context.translate(x, y, true);\n\n context.save();\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroup(group as IGroup, drawContext);\n });\n\n this.hooks.completeDraw.tap('top-draw', () => {\n context.restore();\n context.restore();\n context.draw();\n context.inuse = false;\n this.rendering = false;\n });\n }\n\n protected async _increaseRender(group: IGroup, drawContext: IDrawContext) {\n this.rendering = true;\n await this._renderIncrementalGroup(group, drawContext);\n return;\n }\n\n // 默认group后只有一层节点,也就是group是叶子结点的父节点\n protected async _renderIncrementalGroup(group: IGroup, drawContext: IDrawContext) {\n this.count = group.count;\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n // 增量图元只支持一个,线段和面积图\n if (group.count === 2) {\n const graphic = group.getChildAt(0) as IGraphic;\n if (graphic.incremental && (graphic.attribute as any).segments) {\n if (!graphic.incrementalAt) {\n graphic.incrementalAt = 0;\n }\n while (graphic.incrementalAt < (graphic.attribute as any).segments.length) {\n drawContext.multiGraphicOptions = {\n startAtIdx: graphic.incrementalAt,\n length: graphic.incremental\n };\n this.renderItem(graphic, drawContext);\n graphic.incrementalAt += graphic.incremental;\n await this.waitToNextFrame();\n }\n } else {\n this.renderItem(graphic, drawContext);\n }\n resolve(false);\n return;\n }\n await foreachAsync(group, DefaultAttribute.zIndex, (item: IGraphic, i: number) => {\n if (this.status === STATUS.STOP) {\n return true;\n }\n if (item.isContainer) {\n // 增量渲染group下不应该有其他的group节点\n return false;\n }\n // 如果小于currentIdx,说明还没到当前的位置,那就直接跳过\n if (i < this.currentIdx) {\n return false;\n }\n const frameTail = this.currFrameStartAt + group.incremental;\n // 绘制 currentIdx到this.lastFrameIdx + group.incremental的内容\n if (i < frameTail) {\n this.currentIdx = i + 1;\n this.renderItem(item, drawContext);\n }\n // 下一帧\n if (i === frameTail - 1) {\n this.currFrameStartAt = this.currentIdx;\n // this.lastFrameIdx = this.currentIdx;\n return this.waitToNextFrame();\n }\n\n return false;\n });\n resolve(false);\n }\n });\n });\n this.hooks.completeDraw.call();\n }\n\n protected async waitToNextFrame(): Promise<boolean> {\n return new Promise(resolve => {\n this.global.getRequestAnimationFrame()(() => {\n resolve(false);\n });\n });\n }\n\n /**\n * 检查这次绘制是否跳过,以及执行一些准备\n * 增量渲染有自己的绘制逻辑流程,外部每次触发draw,该图层不一定会执行\n * @returns 返回true代表跳过绘制,false代表进行绘制\n */\n protected async checkForDraw(drawContext: IDrawContext): Promise<boolean> {\n let skip = this.rendering;\n if (drawContext.restartIncremental) {\n skip = false;\n await this.forceStop();\n this.resetToInit();\n }\n return skip;\n }\n\n protected async forceStop() {\n if (this.rendering) {\n this.status = STATUS.STOP;\n await new Promise(resolve => {\n this.hooks.completeDraw.tap('stopCb', () => {\n this.status = STATUS.NORMAL;\n this.hooks.completeDraw.taps = this.hooks.completeDraw.taps.filter(item => {\n return item.name !== 'stopCb';\n });\n resolve(false);\n });\n });\n }\n }\n\n protected resetToInit() {\n this.currFrameStartAt = 0;\n this.currentIdx = 0;\n }\n\n async renderGroup(group: IGroup, drawContext: IDrawContext) {\n if (drawContext.break || group.attribute.visibleAll === false) {\n return;\n }\n if (group.incremental && drawContext.startAtId === group._uid) {\n await this._increaseRender(group, drawContext);\n drawContext.break = true;\n return;\n }\n\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n await foreachAsync(group, DefaultAttribute.zIndex, async (item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n await this.renderGroup(item as IGroup, drawContext);\n } else {\n // 增量渲染不管非_increaseRender的内容\n return;\n }\n });\n resolve(false);\n }\n });\n });\n }\n\n // /**\n // * 一个每一帧都执行的脚本,用于检查和触发执行draw\n // */\n // protected autoRunner() {\n\n // }\n}\n"]}
1
+ {"version":3,"sources":["../../src/render/contributions/render/incremental-draw-contribution.ts"],"names":[],"mappings":"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","file":"incremental-draw-contribution.js","sourcesContent":["import { injectable, inject, named, multiInject } from 'inversify';\nimport type {\n IGraphic,\n IGroup,\n IGlobal,\n IRenderService,\n IDrawContext,\n IDrawContribution,\n IGraphicRender,\n IRenderSelector,\n IDrawItemInterceptorContribution,\n IContributionProvider\n} from '../../../interface';\nimport { DefaultAttribute } from '../../../graphic';\nimport { LayerService } from '../../../core/constants';\nimport { DefaultDrawContribution } from './draw-contribution';\nimport { SyncHook } from '../../../tapable';\nimport { GraphicRender, RenderSelector } from './symbol';\nimport { DefaultIncrementalCanvasLineRender } from './incremental-line-render';\nimport { DefaultIncrementalCanvasAreaRender } from './incremental-area-render';\nimport { DrawItemInterceptor } from './draw-interceptor';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { foreachAsync } from '../../../common/sort';\nimport type { ILayerService } from '../../../interface/core';\nimport { VGlobal } from '../../../constants';\n\nenum STATUS {\n NORMAL = 0,\n STOP = 1\n}\n\n/**\n * 增量渲染的contribution,基于树状结构针对图元的渲染\n * 不是单例模式\n */\n@injectable()\nexport class DefaultIncrementalDrawContribution extends DefaultDrawContribution implements IDrawContribution {\n rendering: boolean = false;\n protected currFrameStartAt: number = 0;\n protected currentIdx: number = 0;\n protected status: STATUS = STATUS.NORMAL;\n protected checkingForDrawPromise: Promise<any> | null = null;\n hooks = {\n completeDraw: new SyncHook<[]>([])\n };\n protected lastRenderService: IRenderService;\n protected lastDrawContext: IDrawContext;\n protected count: number;\n @inject(VGlobal) global: IGlobal;\n\n constructor(\n // @inject(ContributionProvider)\n // @named(GraphicRender)\n // protected readonly contributions: ContributionProvider<IGraphicRender>,\n @multiInject(GraphicRender) protected readonly contributions: IGraphicRender[],\n @inject(RenderSelector) protected readonly renderSelector: IRenderSelector, // 根据图元类型选择对应的renderItem进行渲染\n @inject(DefaultIncrementalCanvasLineRender) protected readonly lineRender: IGraphicRender, // 默认的lineRender\n @inject(DefaultIncrementalCanvasAreaRender) protected readonly areaRender: IGraphicRender, // 默认的lineRender\n @inject(LayerService) protected readonly layerService: ILayerService, // 默认的polygonRender\n // 拦截器\n @inject(ContributionProvider)\n @named(DrawItemInterceptor)\n protected readonly drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>\n ) {\n super(contributions, renderSelector, layerService, drawItemInterceptorContributions);\n }\n\n init(): void {\n super.init();\n this.defaultRenderMap.set(this.lineRender.numberType, this.lineRender);\n this.defaultRenderMap.set(this.areaRender.numberType, this.areaRender);\n }\n\n /**\n *\n * @param renderService\n * @param drawContext restartIncremental为true表示重新执行增量渲染,为false表示不执行增量渲染\n * @returns\n */\n async draw(renderService: IRenderService, drawContext: IDrawContext): Promise<void> {\n // 入口检查是否需要重新绘制\n if (this.checkingForDrawPromise) {\n return;\n }\n this.lastRenderService = renderService;\n this.lastDrawContext = drawContext;\n\n this.checkingForDrawPromise = this.checkForDraw(drawContext);\n const skipDraw = await this.checkingForDrawPromise;\n this.checkingForDrawPromise = null;\n if (skipDraw) {\n return;\n }\n\n this.currentRenderService = renderService;\n const { context, x = 0, y = 0 } = drawContext;\n\n if (!context) {\n return;\n }\n // 增量渲染不需要dirtyBounds\n // const dirtyBounds: IBounds | undefined = this.dirtyBounds.setValue(x, y, x + width, y + height);\n // if (stage.dirtyBounds) {\n // const b = getRectIntersect(dirtyBounds, stage.dirtyBounds, false);\n // dirtyBounds.x1 = Math.floor(b.x1);\n // dirtyBounds.y1 = Math.floor(b.y1);\n // dirtyBounds.x2 = Math.ceil(b.x2);\n // dirtyBounds.y2 = Math.ceil(b.y2);\n // }\n context.inuse = true;\n // 初始化context\n context.clearMatrix();\n context.setTransformForCurrent(true);\n\n // const drawInArea =\n // dirtyBounds.width() * context.dpr !== context.canvas.width ||\n // dirtyBounds.height() * context.dpr !== context.canvas.height;\n context.save();\n\n // if (drawInArea) {\n // context.beginPath();\n // context.rect(dirtyBounds.x1, dirtyBounds.y1, dirtyBounds.width(), dirtyBounds.height());\n // context.clip();\n // }\n\n // this.clearScreen(renderService, context, drawContext);\n\n // 绘制之前需要清空画布\n drawContext.restartIncremental && this.clearScreen(this.currentRenderService, context, drawContext);\n // 设置translate\n context.translate(x, y, true);\n\n context.save();\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroup(group as IGroup, drawContext);\n });\n\n this.hooks.completeDraw.tap('top-draw', () => {\n context.restore();\n context.restore();\n context.draw();\n context.inuse = false;\n this.rendering = false;\n });\n }\n\n protected async _increaseRender(group: IGroup, drawContext: IDrawContext) {\n this.rendering = true;\n await this._renderIncrementalGroup(group, drawContext);\n return;\n }\n\n // 默认group后只有一层节点,也就是group是叶子结点的父节点\n protected async _renderIncrementalGroup(group: IGroup, drawContext: IDrawContext) {\n this.count = group.count;\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n // 增量图元只支持一个,线段和面积图\n if (group.count === 2) {\n const graphic = group.getChildAt(0) as IGraphic;\n if (graphic.incremental && (graphic.attribute as any).segments) {\n if (!graphic.incrementalAt) {\n graphic.incrementalAt = 0;\n }\n while (graphic.incrementalAt < (graphic.attribute as any).segments.length) {\n drawContext.multiGraphicOptions = {\n startAtIdx: graphic.incrementalAt,\n length: graphic.incremental\n };\n this.renderItem(graphic, drawContext);\n graphic.incrementalAt += graphic.incremental;\n await this.waitToNextFrame();\n }\n } else {\n this.renderItem(graphic, drawContext);\n }\n resolve(false);\n return;\n }\n await foreachAsync(group, DefaultAttribute.zIndex, (item: IGraphic, i: number) => {\n if (this.status === STATUS.STOP) {\n return true;\n }\n if (item.isContainer) {\n // 增量渲染group下不应该有其他的group节点\n return false;\n }\n // 如果小于currentIdx,说明还没到当前的位置,那就直接跳过\n if (i < this.currentIdx) {\n return false;\n }\n const frameTail = this.currFrameStartAt + group.incremental;\n // 绘制 currentIdx到this.lastFrameIdx + group.incremental的内容\n if (i < frameTail) {\n this.currentIdx = i + 1;\n this.renderItem(item, drawContext);\n }\n // 下一帧\n if (i === frameTail - 1) {\n this.currFrameStartAt = this.currentIdx;\n // this.lastFrameIdx = this.currentIdx;\n return this.waitToNextFrame();\n }\n\n return false;\n });\n resolve(false);\n }\n });\n });\n this.hooks.completeDraw.call();\n }\n\n protected async waitToNextFrame(): Promise<boolean> {\n return new Promise(resolve => {\n this.global.getRequestAnimationFrame()(() => {\n resolve(false);\n });\n });\n }\n\n /**\n * 检查这次绘制是否跳过,以及执行一些准备\n * 增量渲染有自己的绘制逻辑流程,外部每次触发draw,该图层不一定会执行\n * @returns 返回true代表跳过绘制,false代表进行绘制\n */\n protected async checkForDraw(drawContext: IDrawContext): Promise<boolean> {\n let skip = this.rendering;\n if (drawContext.restartIncremental) {\n skip = false;\n await this.forceStop();\n this.resetToInit();\n }\n return skip;\n }\n\n protected async forceStop() {\n if (this.rendering) {\n this.status = STATUS.STOP;\n await new Promise(resolve => {\n this.hooks.completeDraw.tap('stopCb', () => {\n this.status = STATUS.NORMAL;\n this.hooks.completeDraw.taps = this.hooks.completeDraw.taps.filter(item => {\n return item.name !== 'stopCb';\n });\n resolve(false);\n });\n });\n }\n }\n\n protected resetToInit() {\n this.currFrameStartAt = 0;\n this.currentIdx = 0;\n }\n\n async renderGroup(group: IGroup, drawContext: IDrawContext) {\n if (drawContext.break || group.attribute.visibleAll === false) {\n return;\n }\n if (group.incremental && drawContext.startAtId === group._uid) {\n await this._increaseRender(group, drawContext);\n drawContext.break = true;\n return;\n }\n\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n await foreachAsync(group, DefaultAttribute.zIndex, async (item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n await this.renderGroup(item as IGroup, drawContext);\n } else {\n // 增量渲染不管非_increaseRender的内容\n return;\n }\n });\n resolve(false);\n }\n });\n });\n }\n\n // /**\n // * 一个每一帧都执行的脚本,用于检查和触发执行draw\n // */\n // protected autoRunner() {\n\n // }\n}\n"]}
package/dist/index.js CHANGED
@@ -129,7 +129,7 @@
129
129
  };
130
130
 
131
131
  // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
132
- var global$e =
132
+ var global$d =
133
133
  // eslint-disable-next-line es/no-global-this -- safe
134
134
  check((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) == 'object' && globalThis) || check((typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window) ||
135
135
  // eslint-disable-next-line no-restricted-globals -- safe
@@ -287,13 +287,13 @@
287
287
  return _typeof(it) == 'object' ? it !== null : isCallable$h(it);
288
288
  };
289
289
 
290
- var global$d = global$e;
290
+ var global$c = global$d;
291
291
  var isCallable$g = isCallable$i;
292
292
  var aFunction = function aFunction(argument) {
293
293
  return isCallable$g(argument) ? argument : undefined;
294
294
  };
295
295
  var getBuiltIn$6 = function getBuiltIn(namespace, method) {
296
- return arguments.length < 2 ? aFunction(global$d[namespace]) : global$d[namespace] && global$d[namespace][method];
296
+ return arguments.length < 2 ? aFunction(global$c[namespace]) : global$c[namespace] && global$c[namespace][method];
297
297
  };
298
298
 
299
299
  var uncurryThis$k = functionUncurryThis;
@@ -301,10 +301,10 @@
301
301
 
302
302
  var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || '';
303
303
 
304
- var global$c = global$e;
304
+ var global$b = global$d;
305
305
  var userAgent = engineUserAgent;
306
- var process = global$c.process;
307
- var Deno = global$c.Deno;
306
+ var process = global$b.process;
307
+ var Deno = global$b.Deno;
308
308
  var versions = process && process.versions || Deno && Deno.version;
309
309
  var v8 = versions && versions.v8;
310
310
  var match, version$1;
@@ -329,8 +329,8 @@
329
329
  /* eslint-disable es/no-symbol -- required for testing */
330
330
  var V8_VERSION = engineV8Version;
331
331
  var fails$c = fails$g;
332
- var global$b = global$e;
333
- var $String$4 = global$b.String;
332
+ var global$a = global$d;
333
+ var $String$4 = global$a.String;
334
334
 
335
335
  // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
336
336
  var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$c(function () {
@@ -405,27 +405,27 @@
405
405
 
406
406
  var shared$4 = {exports: {}};
407
407
 
408
- var global$a = global$e;
408
+ var global$9 = global$d;
409
409
 
410
410
  // eslint-disable-next-line es/no-object-defineproperty -- safe
411
411
  var defineProperty$4 = Object.defineProperty;
412
412
  var defineGlobalProperty$3 = function defineGlobalProperty(key, value) {
413
413
  try {
414
- defineProperty$4(global$a, key, {
414
+ defineProperty$4(global$9, key, {
415
415
  value: value,
416
416
  configurable: true,
417
417
  writable: true
418
418
  });
419
419
  } catch (error) {
420
- global$a[key] = value;
420
+ global$9[key] = value;
421
421
  }
422
422
  return value;
423
423
  };
424
424
 
425
- var global$9 = global$e;
425
+ var global$8 = global$d;
426
426
  var defineGlobalProperty$2 = defineGlobalProperty$3;
427
427
  var SHARED = '__core-js_shared__';
428
- var store$5 = global$9[SHARED] || defineGlobalProperty$2(SHARED, {});
428
+ var store$5 = global$8[SHARED] || defineGlobalProperty$2(SHARED, {});
429
429
  var sharedStore = store$5;
430
430
 
431
431
  var store$4 = sharedStore;
@@ -468,13 +468,13 @@
468
468
  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id$3 + postfix, 36);
469
469
  };
470
470
 
471
- var global$8 = global$e;
471
+ var global$7 = global$d;
472
472
  var shared$3 = sharedExports;
473
473
  var hasOwn$a = hasOwnProperty_1;
474
474
  var uid$2 = uid$3;
475
475
  var NATIVE_SYMBOL = symbolConstructorDetection;
476
476
  var USE_SYMBOL_AS_UID = useSymbolAsUid;
477
- var _Symbol = global$8.Symbol;
477
+ var _Symbol = global$7.Symbol;
478
478
  var WellKnownSymbolsStore = shared$3('wks');
479
479
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? _Symbol['for'] || _Symbol : _Symbol && _Symbol.withoutSetter || uid$2;
480
480
  var wellKnownSymbol$b = function wellKnownSymbol(name) {
@@ -519,9 +519,9 @@
519
519
  return isSymbol(key) ? key : key + '';
520
520
  };
521
521
 
522
- var global$7 = global$e;
522
+ var global$6 = global$d;
523
523
  var isObject$b = isObject$e;
524
- var document$1 = global$7.document;
524
+ var document$1 = global$6.document;
525
525
  // typeof document.createElement is 'object' in old IE
526
526
  var EXISTS$1 = isObject$b(document$1) && isObject$b(document$1.createElement);
527
527
  var documentCreateElement$1 = function documentCreateElement(it) {
@@ -674,9 +674,9 @@
674
674
  }
675
675
  var inspectSource$2 = store$3.inspectSource;
676
676
 
677
- var global$6 = global$e;
677
+ var global$5 = global$d;
678
678
  var isCallable$b = isCallable$i;
679
- var WeakMap$2 = global$6.WeakMap;
679
+ var WeakMap$2 = global$5.WeakMap;
680
680
  var weakMapBasicDetection = isCallable$b(WeakMap$2) && /native code/.test(String(WeakMap$2));
681
681
 
682
682
  var shared$2 = sharedExports;
@@ -689,7 +689,7 @@
689
689
  var hiddenKeys$5 = {};
690
690
 
691
691
  var NATIVE_WEAK_MAP$1 = weakMapBasicDetection;
692
- var global$5 = global$e;
692
+ var global$4 = global$d;
693
693
  var isObject$9 = isObject$e;
694
694
  var createNonEnumerableProperty$2 = createNonEnumerableProperty$3;
695
695
  var hasOwn$7 = hasOwnProperty_1;
@@ -697,8 +697,8 @@
697
697
  var sharedKey$2 = sharedKey$3;
698
698
  var hiddenKeys$4 = hiddenKeys$5;
699
699
  var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
700
- var TypeError$1 = global$5.TypeError;
701
- var WeakMap$1 = global$5.WeakMap;
700
+ var TypeError$1 = global$4.TypeError;
701
+ var WeakMap$1 = global$4.WeakMap;
702
702
  var set, get$1, has$1;
703
703
  var enforce = function enforce(it) {
704
704
  return has$1(it) ? get$1(it) : set(it, {});
@@ -1009,7 +1009,7 @@
1009
1009
  var POLYFILL = isForced$2.POLYFILL = 'P';
1010
1010
  var isForced_1 = isForced$2;
1011
1011
 
1012
- var global$4 = global$e;
1012
+ var global$3 = global$d;
1013
1013
  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
1014
1014
  var createNonEnumerableProperty$1 = createNonEnumerableProperty$3;
1015
1015
  var defineBuiltIn$4 = defineBuiltIn$5;
@@ -1038,11 +1038,11 @@
1038
1038
  var STATIC = options.stat;
1039
1039
  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
1040
1040
  if (GLOBAL) {
1041
- target = global$4;
1041
+ target = global$3;
1042
1042
  } else if (STATIC) {
1043
- target = global$4[TARGET] || defineGlobalProperty(TARGET, {});
1043
+ target = global$3[TARGET] || defineGlobalProperty(TARGET, {});
1044
1044
  } else {
1045
- target = (global$4[TARGET] || {}).prototype;
1045
+ target = (global$3[TARGET] || {}).prototype;
1046
1046
  }
1047
1047
  if (target) for (key in source) {
1048
1048
  sourceProperty = source[key];
@@ -1543,7 +1543,7 @@
1543
1543
  };
1544
1544
 
1545
1545
  var $$a = _export;
1546
- var global$3 = global$e;
1546
+ var global$2 = global$d;
1547
1547
  var uncurryThis$9 = functionUncurryThis;
1548
1548
  var isForced = isForced_1;
1549
1549
  var defineBuiltIn$3 = defineBuiltIn$5;
@@ -1561,7 +1561,7 @@
1561
1561
  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;
1562
1562
  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;
1563
1563
  var ADDER = IS_MAP ? 'set' : 'add';
1564
- var NativeConstructor = global$3[CONSTRUCTOR_NAME];
1564
+ var NativeConstructor = global$2[CONSTRUCTOR_NAME];
1565
1565
  var NativePrototype = NativeConstructor && NativeConstructor.prototype;
1566
1566
  var Constructor = NativeConstructor;
1567
1567
  var exported = {};
@@ -2507,7 +2507,7 @@
2507
2507
  };
2508
2508
 
2509
2509
  var FREEZING = freezing;
2510
- var global$2 = global$e;
2510
+ var global$1 = global$d;
2511
2511
  var uncurryThis$5 = functionUncurryThis;
2512
2512
  var defineBuiltIns = defineBuiltIns$3;
2513
2513
  var InternalMetadataModule = internalMetadataExports;
@@ -2532,7 +2532,7 @@
2532
2532
  var seal = $Object.seal;
2533
2533
  var FROZEN = {};
2534
2534
  var SEALED = {};
2535
- var IS_IE11 = !global$2.ActiveXObject && 'ActiveXObject' in global$2;
2535
+ var IS_IE11 = !global$1.ActiveXObject && 'ActiveXObject' in global$1;
2536
2536
  var InternalWeakMap;
2537
2537
  var wrapper = function wrapper(init) {
2538
2538
  return function WeakMap() {
@@ -6021,7 +6021,7 @@
6021
6021
  }
6022
6022
 
6023
6023
  const EnvContribution = Symbol.for('EnvContribution');
6024
- const Global = Symbol.for('Global');
6024
+ const VGlobal = Symbol.for('VGlobal');
6025
6025
 
6026
6026
  const defaultEnv = 'browser';
6027
6027
  exports.DefaultGlobal = class DefaultGlobal {
@@ -10659,7 +10659,7 @@
10659
10659
  injectable(),
10660
10660
  __param(0, inject(ContributionProvider)),
10661
10661
  __param(0, named(TextMeasureContribution)),
10662
- __param(1, inject(Global)),
10662
+ __param(1, inject(VGlobal)),
10663
10663
  __metadata("design:paramtypes", [Object, Object])
10664
10664
  ], exports.DefaultGraphicUtil);
10665
10665
  var TransformMode;
@@ -14587,7 +14587,7 @@
14587
14587
  if (this.durations.length > this.durationsListThreshold) {
14588
14588
  this.durations.shift();
14589
14589
  }
14590
- this.timeout = Math.max(this.durations.reduce((a, b) => a + b, 0) / this.durations.length, 1000 / 60);
14590
+ this.timeout = Math.min(Math.max(this.durations.reduce((a, b) => a + b, 0) / this.durations.length, 1000 / 60), 1000 / 30);
14591
14591
  }
14592
14592
  }
14593
14593
  const rafBasedSto = new RafBasedSTO();
@@ -18738,11 +18738,11 @@
18738
18738
  };
18739
18739
  exports.DefaultLayerService = __decorate([
18740
18740
  injectable(),
18741
- __param(0, inject(Global)),
18741
+ __param(0, inject(VGlobal)),
18742
18742
  __metadata("design:paramtypes", [Object])
18743
18743
  ], exports.DefaultLayerService);
18744
18744
 
18745
- const Window = Symbol.for('Window');
18745
+ const VWindow = Symbol.for('VWindow');
18746
18746
  const WindowHandlerContribution = Symbol.for('WindowHandlerContribution');
18747
18747
  exports.DefaultWindow = class DefaultWindow {
18748
18748
  global;
@@ -18856,7 +18856,7 @@
18856
18856
  ], exports.DefaultWindow.prototype, "postInit", null);
18857
18857
  exports.DefaultWindow = __decorate([
18858
18858
  injectable(),
18859
- __param(0, inject(Global)),
18859
+ __param(0, inject(VGlobal)),
18860
18860
  __metadata("design:paramtypes", [Object])
18861
18861
  ], exports.DefaultWindow);
18862
18862
 
@@ -18866,9 +18866,9 @@
18866
18866
 
18867
18867
  var coreModule = new ContainerModule(bind => {
18868
18868
  bind(exports.DefaultGlobal).toSelf().inSingletonScope();
18869
- bind(Global).toService(exports.DefaultGlobal);
18869
+ bind(VGlobal).toService(exports.DefaultGlobal);
18870
18870
  bind(exports.DefaultWindow).to(exports.DefaultWindow);
18871
- bind(Window).toService(exports.DefaultWindow);
18871
+ bind(VWindow).toService(exports.DefaultWindow);
18872
18872
  bind(exports.DefaultGraphicUtil).toSelf().inSingletonScope();
18873
18873
  bind(GraphicUtil).toService(exports.DefaultGraphicUtil);
18874
18874
  bind(exports.DefaultTransformUtil).toSelf().inSingletonScope();
@@ -19852,7 +19852,7 @@
19852
19852
  }
19853
19853
  return 0;
19854
19854
  }
19855
- function textLayoutOffsetY(baseline, lineHeight, fontSize) {
19855
+ function textLayoutOffsetY(baseline, lineHeight, fontSize, buf = 0) {
19856
19856
  if (baseline === 'middle') {
19857
19857
  return -lineHeight / 2;
19858
19858
  }
@@ -19860,7 +19860,7 @@
19860
19860
  return 0;
19861
19861
  }
19862
19862
  if (baseline === 'bottom') {
19863
- return -lineHeight;
19863
+ return buf - lineHeight;
19864
19864
  }
19865
19865
  if (!baseline || baseline === 'alphabetic') {
19866
19866
  if (!fontSize) {
@@ -20123,9 +20123,10 @@
20123
20123
  const textMeasure = application.graphicUtil.textMeasure;
20124
20124
  let width;
20125
20125
  let str;
20126
- const buf = 2;
20127
20126
  const attribute = this.attribute;
20128
- const { maxLineWidth = textTheme.maxLineWidth, ellipsis = textTheme.ellipsis, textAlign = textTheme.textAlign, textBaseline = textTheme.textBaseline, fontSize = textTheme.fontSize, fontWeight = textTheme.fontWeight, stroke = textTheme.stroke, lineHeight = attribute.lineHeight ?? (attribute.fontSize || textTheme.fontSize) + buf, lineWidth = textTheme.lineWidth, wordBreak = textTheme.wordBreak } = attribute;
20127
+ const { maxLineWidth = textTheme.maxLineWidth, ellipsis = textTheme.ellipsis, textAlign = textTheme.textAlign, textBaseline = textTheme.textBaseline, fontSize = textTheme.fontSize, fontWeight = textTheme.fontWeight, stroke = textTheme.stroke, lineWidth = textTheme.lineWidth, wordBreak = textTheme.wordBreak } = attribute;
20128
+ const buf = Math.max(2, fontSize * 0.075);
20129
+ const { lineHeight = attribute.lineHeight ?? (attribute.fontSize || textTheme.fontSize) + buf } = attribute;
20129
20130
  if (!this.shouldUpdateShape() && this.cache) {
20130
20131
  width = this.cache.clipedWidth;
20131
20132
  const dx = textDrawOffsetX(textAlign, width);
@@ -20158,7 +20159,7 @@
20158
20159
  }
20159
20160
  this.clearUpdateShapeTag();
20160
20161
  const dx = textDrawOffsetX(textAlign, width);
20161
- const dy = textLayoutOffsetY(textBaseline, lineHeight, fontSize);
20162
+ const dy = textLayoutOffsetY(textBaseline, lineHeight, fontSize, 0);
20162
20163
  this._AABBBounds.set(dx, dy, dx + width, dy + lineHeight);
20163
20164
  if (stroke) {
20164
20165
  this._AABBBounds.expand(lineWidth / 2);
@@ -28010,7 +28011,7 @@
28010
28011
  };
28011
28012
  exports.DefaultPickService = __decorate([
28012
28013
  injectable(),
28013
- __param(0, inject(Global)),
28014
+ __param(0, inject(VGlobal)),
28014
28015
  __param(1, inject(ContributionProvider)),
28015
28016
  __param(1, named(PickItemInterceptor)),
28016
28017
  __metadata("design:paramtypes", [Object, Object])
@@ -28106,7 +28107,7 @@
28106
28107
  };
28107
28108
  exports.DefaultGlobalPickerService = __decorate([
28108
28109
  injectable(),
28109
- __param(0, inject(Global)),
28110
+ __param(0, inject(VGlobal)),
28110
28111
  __metadata("design:paramtypes", [Object])
28111
28112
  ], exports.DefaultGlobalPickerService);
28112
28113
 
@@ -29451,7 +29452,7 @@
29451
29452
  __param(10, inject(CanvasPolygonPicker)),
29452
29453
  __param(11, inject(CanvasRichTextPicker)),
29453
29454
  __param(12, inject(DrawContribution)),
29454
- __param(13, inject(Global)),
29455
+ __param(13, inject(VGlobal)),
29455
29456
  __param(14, inject(ContributionProvider)),
29456
29457
  __param(14, named(PickItemInterceptor)),
29457
29458
  __metadata("design:paramtypes", [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object])
@@ -29776,7 +29777,7 @@
29776
29777
  injectable(),
29777
29778
  __param(0, inject(ContributionProvider)),
29778
29779
  __param(0, named(MathPickerContribution)),
29779
- __param(1, inject(Global)),
29780
+ __param(1, inject(VGlobal)),
29780
29781
  __param(2, inject(ContributionProvider)),
29781
29782
  __param(2, named(PickItemInterceptor)),
29782
29783
  __metadata("design:paramtypes", [Object, Object, Object])
@@ -31014,7 +31015,7 @@
31014
31015
  };
31015
31016
  BrowserWindowHandlerContribution = __decorate([
31016
31017
  injectable(),
31017
- __param(0, inject(Global)),
31018
+ __param(0, inject(VGlobal)),
31018
31019
  __metadata("design:paramtypes", [Object])
31019
31020
  ], BrowserWindowHandlerContribution);
31020
31021
 
@@ -31380,7 +31381,7 @@
31380
31381
  };
31381
31382
  FeishuWindowHandlerContribution = __decorate([
31382
31383
  injectable(),
31383
- __param(0, inject(Global)),
31384
+ __param(0, inject(VGlobal)),
31384
31385
  __metadata("design:paramtypes", [Object])
31385
31386
  ], FeishuWindowHandlerContribution);
31386
31387
 
@@ -31793,7 +31794,7 @@
31793
31794
  };
31794
31795
  TaroWindowHandlerContribution = __decorate([
31795
31796
  injectable(),
31796
- __param(0, inject(Global)),
31797
+ __param(0, inject(VGlobal)),
31797
31798
  __metadata("design:paramtypes", [Object])
31798
31799
  ], TaroWindowHandlerContribution);
31799
31800
 
@@ -32169,7 +32170,7 @@
32169
32170
  };
32170
32171
  LynxWindowHandlerContribution = __decorate([
32171
32172
  injectable(),
32172
- __param(0, inject(Global)),
32173
+ __param(0, inject(VGlobal)),
32173
32174
  __metadata("design:paramtypes", [Object])
32174
32175
  ], LynxWindowHandlerContribution);
32175
32176
 
@@ -32438,7 +32439,7 @@
32438
32439
  };
32439
32440
  NodeWindowHandlerContribution = __decorate([
32440
32441
  injectable(),
32441
- __param(0, inject(Global)),
32442
+ __param(0, inject(VGlobal)),
32442
32443
  __metadata("design:paramtypes", [Object])
32443
32444
  ], NodeWindowHandlerContribution);
32444
32445
 
@@ -32771,7 +32772,7 @@
32771
32772
  };
32772
32773
  WxWindowHandlerContribution = __decorate([
32773
32774
  injectable(),
32774
- __param(0, inject(Global)),
32775
+ __param(0, inject(VGlobal)),
32775
32776
  __metadata("design:paramtypes", [Object])
32776
32777
  ], WxWindowHandlerContribution);
32777
32778
 
@@ -32912,7 +32913,7 @@
32912
32913
  };
32913
32914
  CanvasLayerHandlerContribution = __decorate([
32914
32915
  injectable(),
32915
- __param(0, inject(Global)),
32916
+ __param(0, inject(VGlobal)),
32916
32917
  __metadata("design:paramtypes", [Object])
32917
32918
  ], CanvasLayerHandlerContribution);
32918
32919
 
@@ -32987,7 +32988,7 @@
32987
32988
  };
32988
32989
  OffscreenLayerHandlerContribution = __decorate([
32989
32990
  injectable(),
32990
- __param(0, inject(Global)),
32991
+ __param(0, inject(VGlobal)),
32991
32992
  __metadata("design:paramtypes", [Object])
32992
32993
  ], OffscreenLayerHandlerContribution);
32993
32994
 
@@ -33922,7 +33923,7 @@
33922
33923
  }
33923
33924
  };
33924
33925
  __decorate([
33925
- inject(Global),
33926
+ inject(VGlobal),
33926
33927
  __metadata("design:type", Object)
33927
33928
  ], DefaultIncrementalDrawContribution.prototype, "global", void 0);
33928
33929
  DefaultIncrementalDrawContribution = __decorate([
@@ -36266,8 +36267,8 @@
36266
36267
  load$2(container);
36267
36268
  load$1(container);
36268
36269
  load(container);
36269
- const global$1 = container.get(Global);
36270
- application.global = global$1;
36270
+ const vglobal = container.get(VGlobal);
36271
+ application.global = vglobal;
36271
36272
  const graphicUtil = container.get(GraphicUtil);
36272
36273
  application.graphicUtil = graphicUtil;
36273
36274
  const transformUtil = container.get(TransformUtil);
@@ -36902,8 +36903,8 @@
36902
36903
  beforeRender: new SyncHook(['stage']),
36903
36904
  afterRender: new SyncHook(['stage'])
36904
36905
  };
36905
- this.global = container.get(Global);
36906
- this.window = container.get(Window);
36906
+ this.global = container.get(VGlobal);
36907
+ this.window = container.get(VWindow);
36907
36908
  this.renderService = container.get(RenderService);
36908
36909
  this.pickerService = container.get(PickerService);
36909
36910
  this.pluginService = container.get(PluginService);
@@ -37333,7 +37334,7 @@
37333
37334
  });
37334
37335
  }
37335
37336
  renderToNewWindow(fullImage = true) {
37336
- const window = container.get(Window);
37337
+ const window = container.get(VWindow);
37337
37338
  if (fullImage) {
37338
37339
  window.create({
37339
37340
  width: this.viewWidth,
@@ -37402,7 +37403,7 @@
37402
37403
  'rect'
37403
37404
  ];
37404
37405
 
37405
- const version = "0.14.0-alpha.9";
37406
+ const version = "0.14.0";
37406
37407
 
37407
37408
  exports.ACustomAnimate = ACustomAnimate;
37408
37409
  exports.ARC3D_NUMBER_TYPE = ARC3D_NUMBER_TYPE;
@@ -37575,7 +37576,7 @@
37575
37576
  exports.Theme = Theme;
37576
37577
  exports.TimeOutTickHandler = TimeOutTickHandler;
37577
37578
  exports.TransformUtil = TransformUtil;
37578
- exports.Window = Window;
37579
+ exports.VWindow = VWindow;
37579
37580
  exports.WindowHandlerContribution = WindowHandlerContribution;
37580
37581
  exports.addArcToBezierPath = addArcToBezierPath$1;
37581
37582
  exports.addAttributeToPrototype = addAttributeToPrototype;
@@ -37659,7 +37660,6 @@
37659
37660
  exports.getTextBounds = getTextBounds;
37660
37661
  exports.getTheme = getTheme;
37661
37662
  exports.getThemeFromGroup = getThemeFromGroup;
37662
- exports.global = global$1;
37663
37663
  exports.globalTheme = globalTheme;
37664
37664
  exports.graphicCreator = graphicCreator;
37665
37665
  exports.graphicService = graphicService;
@@ -37720,6 +37720,7 @@
37720
37720
  exports.translate = translate;
37721
37721
  exports.version = version;
37722
37722
  exports.verticalLayout = verticalLayout;
37723
+ exports.vglobal = vglobal;
37723
37724
  exports.waitForAllSubLayers = waitForAllSubLayers;
37724
37725
  exports.wrapCanvas = wrapCanvas;
37725
37726
  exports.wrapContext = wrapContext;