@visactor/vrender-core 0.22.0-vstory.1 → 0.22.0-vstory.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/cjs/canvas/util.js +1 -2
  2. package/cjs/color-string/store.js +2 -1
  3. package/cjs/core/global.d.ts +0 -3
  4. package/cjs/core/global.js +1 -7
  5. package/cjs/core/global.js.map +1 -1
  6. package/cjs/graphic/builtin-symbol/utils.js +1 -1
  7. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  8. package/cjs/graphic/config.js +1 -0
  9. package/cjs/graphic/config.js.map +1 -1
  10. package/cjs/graphic/graphic.d.ts +1 -1
  11. package/cjs/graphic/graphic.js +5 -5
  12. package/cjs/graphic/graphic.js.map +1 -1
  13. package/cjs/graphic/group.js +1 -1
  14. package/cjs/graphic/group.js.map +1 -1
  15. package/cjs/graphic/richtext/line.js +13 -1
  16. package/cjs/graphic/richtext/line.js.map +1 -1
  17. package/cjs/graphic/richtext/paragraph.d.ts +9 -1
  18. package/cjs/graphic/richtext/paragraph.js +50 -11
  19. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  20. package/cjs/graphic/richtext/utils.js +4 -4
  21. package/cjs/graphic/richtext/utils.js.map +1 -1
  22. package/cjs/graphic/richtext.d.ts +2 -1
  23. package/cjs/graphic/richtext.js +10 -1
  24. package/cjs/graphic/richtext.js.map +1 -1
  25. package/cjs/interface/global.d.ts +0 -1
  26. package/cjs/interface/global.js.map +1 -1
  27. package/cjs/interface/graphic/richText.d.ts +11 -0
  28. package/cjs/interface/graphic/richText.js.map +1 -1
  29. package/cjs/interface/graphic.d.ts +1 -1
  30. package/cjs/interface/graphic.js.map +1 -1
  31. package/cjs/plugins/builtin-plugin/edit-module.d.ts +2 -1
  32. package/cjs/plugins/builtin-plugin/edit-module.js +20 -15
  33. package/cjs/plugins/builtin-plugin/edit-module.js.map +1 -1
  34. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.d.ts +36 -10
  35. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +322 -132
  36. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  37. package/cjs/render/contributions/render/contributions/image-contribution-render.d.ts +1 -1
  38. package/cjs/render/contributions/render/contributions/image-contribution-render.js +2 -2
  39. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  40. package/cjs/render/contributions/render/draw-contribution.js +3 -2
  41. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  42. package/cjs/render/contributions/render/image-render.js.map +1 -1
  43. package/cjs/resource-loader/loader.js +1 -1
  44. package/cjs/resource-loader/loader.js.map +1 -1
  45. package/dist/index.es.js +498 -110
  46. package/es/canvas/util.js +1 -2
  47. package/es/color-string/store.js +2 -1
  48. package/es/core/global.d.ts +0 -3
  49. package/es/core/global.js +1 -8
  50. package/es/core/global.js.map +1 -1
  51. package/es/graphic/builtin-symbol/utils.js +1 -1
  52. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  53. package/es/graphic/config.js +1 -0
  54. package/es/graphic/config.js.map +1 -1
  55. package/es/graphic/graphic.d.ts +1 -1
  56. package/es/graphic/graphic.js +5 -5
  57. package/es/graphic/graphic.js.map +1 -1
  58. package/es/graphic/group.js +1 -1
  59. package/es/graphic/group.js.map +1 -1
  60. package/es/graphic/richtext/line.js +13 -1
  61. package/es/graphic/richtext/line.js.map +1 -1
  62. package/es/graphic/richtext/paragraph.d.ts +9 -1
  63. package/es/graphic/richtext/paragraph.js +50 -11
  64. package/es/graphic/richtext/paragraph.js.map +1 -1
  65. package/es/graphic/richtext/utils.js +4 -4
  66. package/es/graphic/richtext/utils.js.map +1 -1
  67. package/es/graphic/richtext.d.ts +2 -1
  68. package/es/graphic/richtext.js +10 -1
  69. package/es/graphic/richtext.js.map +1 -1
  70. package/es/interface/global.d.ts +0 -1
  71. package/es/interface/global.js.map +1 -1
  72. package/es/interface/graphic/richText.d.ts +11 -0
  73. package/es/interface/graphic/richText.js.map +1 -1
  74. package/es/interface/graphic.d.ts +1 -1
  75. package/es/interface/graphic.js.map +1 -1
  76. package/es/plugins/builtin-plugin/edit-module.d.ts +2 -1
  77. package/es/plugins/builtin-plugin/edit-module.js +17 -13
  78. package/es/plugins/builtin-plugin/edit-module.js.map +1 -1
  79. package/es/plugins/builtin-plugin/richtext-edit-plugin.d.ts +36 -10
  80. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +320 -131
  81. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  82. package/es/render/contributions/render/contributions/image-contribution-render.d.ts +1 -1
  83. package/es/render/contributions/render/contributions/image-contribution-render.js +2 -2
  84. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  85. package/es/render/contributions/render/draw-contribution.js +2 -2
  86. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  87. package/es/render/contributions/render/image-render.js.map +1 -1
  88. package/es/resource-loader/loader.js +1 -1
  89. package/es/resource-loader/loader.js.map +1 -1
  90. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render/contributions/render/image-render.ts"],"names":[],"mappings":"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","file":"image-render.js","sourcesContent":["import { inject, injectable, named } from '../../../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IImage,\n IThemeAttribute,\n IGraphicRender,\n IImageRenderContribution,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { ImageRenderContribution } from './contributions/constants';\nimport { fillVisible, runFill } from './utils';\nimport { IMAGE_NUMBER_TYPE } from '../../../graphic/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { isArray, isString } from '@visactor/vutils';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { BaseRender } from './base-render';\nimport { defaultImageBackgroundRenderContribution, defaultImageRenderContribution } from './contributions';\nimport { ResourceLoader } from '../../../resource-loader/loader';\n\nconst repeatStr = ['', 'repeat-x', 'repeat-y', 'repeat'];\n\n@injectable()\nexport class DefaultCanvasImageRender extends BaseRender<IImage> implements IGraphicRender {\n type: 'image';\n numberType: number = IMAGE_NUMBER_TYPE;\n\n constructor(\n @inject(ContributionProvider)\n @named(ImageRenderContribution)\n protected readonly imageRenderContribitions: IContributionProvider<IImageRenderContribution>\n ) {\n super();\n this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution];\n this.init(imageRenderContribitions);\n }\n\n drawShape(\n image: IImage,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const imageAttribute = graphicService.themeService.getCurrentTheme().imageAttribute;\n const imageAttribute = getTheme(image).image;\n const {\n width = imageAttribute.width,\n height = imageAttribute.height,\n repeatX = imageAttribute.repeatX,\n repeatY = imageAttribute.repeatY,\n x: originX = imageAttribute.x,\n y: originY = imageAttribute.y,\n cornerRadius = imageAttribute.cornerRadius,\n fillStrokeOrder = imageAttribute.fillStrokeOrder,\n cornerType = imageAttribute.cornerType,\n image: url\n } = image.attribute;\n\n const data = this.valid(image, imageAttribute, fillCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n if (res.state !== 'success') {\n return;\n }\n\n // deal with cornerRadius\n let needRestore = false;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n } else {\n context.beginPath();\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n needRestore = true;\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(image, image.attribute, imageAttribute);\n // context.beginPath();\n // context.image(x, y, width, height);\n\n const _runFill = () => {\n if (doFill) {\n if (fillCb) {\n fillCb(context, image.attribute, imageAttribute);\n } else if (fVisible) {\n context.setCommonStyle(image, image.attribute, x, y, imageAttribute);\n let repeat = 0;\n if (repeatX === 'repeat') {\n repeat |= 0b0001;\n }\n if (repeatY === 'repeat') {\n repeat |= 0b0010;\n }\n if (repeat) {\n const pattern = context.createPattern(res.data, repeatStr[repeat]);\n context.fillStyle = pattern;\n context.translate(x, y, true);\n context.fillRect(0, 0, width, height);\n context.translate(-x, -y, true);\n } else {\n context.drawImage(res.data, x, y, width, height);\n }\n }\n }\n };\n\n const _runStroke = () => {\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, image.attribute, imageAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(image, image.attribute, originX - x, originY - y, imageAttribute);\n context.stroke();\n }\n }\n };\n\n if (!fillStrokeOrder) {\n if (needRestore) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needRestore) {\n context.restore();\n }\n _runStroke();\n } else {\n _runStroke();\n if (needRestore) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needRestore) {\n context.restore();\n }\n }\n\n this.afterRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n }\n\n draw(image: IImage, renderService: IRenderService, drawContext: IDrawContext) {\n const { image: url } = image.attribute;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n // if (res.state !== 'success') {\n // return;\n // }\n if (res.state === 'loading' && isString(url)) {\n ResourceLoader.improveImageLoading(url);\n return;\n } else if (res.state !== 'success') {\n return;\n }\n\n const { context } = renderService.drawParams;\n if (!context) {\n return;\n }\n const imageAttribute = getTheme(image).image;\n this._draw(image, imageAttribute, false, drawContext);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/render/contributions/render/image-render.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAclD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,wCAAwC,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAGlD,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,UAAkB;IAI9D,YAGqB,wBAAyE;QAE5F,KAAK,EAAE,CAAC;QAFW,6BAAwB,GAAxB,wBAAwB,CAAiD;QAL9F,eAAU,GAAW,iBAAiB,CAAC;QAQrC,IAAI,CAAC,oBAAoB,GAAG,CAAC,8BAA8B,EAAE,wCAAwC,CAAC,CAAC;QACvG,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,CACP,KAAa,EACb,OAAmB,EACnB,CAAS,EACT,CAAS,EACT,WAAyB,EACzB,MAAiC,EACjC,MAIY,EACZ,QAIY;QAGZ,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC7C,MAAM,EACJ,KAAK,GAAG,cAAc,CAAC,KAAK,EAC5B,MAAM,GAAG,cAAc,CAAC,MAAM,EAC9B,OAAO,GAAG,cAAc,CAAC,OAAO,EAChC,OAAO,GAAG,cAAc,CAAC,OAAO,EAChC,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC,EAC7B,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC,EAC7B,YAAY,GAAG,cAAc,CAAC,YAAY,EAC1C,eAAe,GAAG,cAAc,CAAC,eAAe,EAChD,UAAU,GAAG,cAAc,CAAC,UAAU,EACtC,KAAK,EAAE,GAAG,EACX,GAAG,KAAK,CAAC,SAAS,CAAC;QAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAEtD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAC5B,OAAO;SACR;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE;YAC3B,OAAO;SACR;QAGD,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAe,YAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;SAEtG;aAAM;YACL,OAAO,CAAC,SAAS,EAAE,CAAC;YACpB,cAAc,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC;YACnF,WAAW,GAAG,IAAI,CAAC;SACpB;QAGD,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAInG,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,IAAI,MAAM,EAAE;gBACV,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;iBAClD;qBAAM,IAAI,QAAQ,EAAE;oBACnB,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;oBACrE,IAAI,MAAM,GAAG,CAAC,CAAC;oBACf,IAAI,OAAO,KAAK,QAAQ,EAAE;wBACxB,MAAM,IAAI,MAAM,CAAC;qBAClB;oBACD,IAAI,OAAO,KAAK,QAAQ,EAAE;wBACxB,MAAM,IAAI,MAAM,CAAC;qBAClB;oBACD,IAAI,MAAM,EAAE;wBACV,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;wBACnE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;wBAC5B,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;wBAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;wBACtC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;qBACjC;yBAAM;wBACL,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;qBAClD;iBACF;aACF;QACH,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,IAAI,QAAQ,EAAE;gBACZ,IAAI,QAAQ,EAAE;oBACZ,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;iBACpD;qBAAM,IAAI,QAAQ,EAAE;oBACnB,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;oBACzF,OAAO,CAAC,MAAM,EAAE,CAAC;iBAClB;aACF;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE;YACpB,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,EAAE,CAAC;aAChB;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACjH,QAAQ,EAAE,CAAC;YACX,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,OAAO,EAAE,CAAC;aACnB;YACD,UAAU,EAAE,CAAC;SACd;aAAM;YACL,UAAU,EAAE,CAAC;YACb,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,EAAE,CAAC;aAChB;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YACjH,QAAQ,EAAE,CAAC;YACX,IAAI,WAAW,EAAE;gBACf,OAAO,CAAC,OAAO,EAAE,CAAC;aACnB;SACF;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAClH,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,aAA6B,EAAE,WAAyB;QAC1E,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAC5B,OAAO;SACR;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAIrC,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC5C,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACxC,OAAO;SACR;aAAM,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE;YAClC,OAAO;SACR;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;CACF,CAAA;AAnKY,wBAAwB;IADpC,UAAU,EAAE;IAMR,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC5B,WAAA,KAAK,CAAC,uBAAuB,CAAC,CAAA;;GANtB,wBAAwB,CAmKpC;SAnKY,wBAAwB","file":"image-render.js","sourcesContent":["import { inject, injectable, named } from '../../../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IImage,\n IThemeAttribute,\n IGraphicRender,\n IImageRenderContribution,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { ImageRenderContribution } from './contributions/constants';\nimport { fillVisible, runFill } from './utils';\nimport { IMAGE_NUMBER_TYPE } from '../../../graphic/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { isArray, isString } from '@visactor/vutils';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { BaseRender } from './base-render';\nimport { defaultImageBackgroundRenderContribution, defaultImageRenderContribution } from './contributions';\nimport { ResourceLoader } from '../../../resource-loader/loader';\n\nconst repeatStr = ['', 'repeat-x', 'repeat-y', 'repeat'];\n\n@injectable()\nexport class DefaultCanvasImageRender extends BaseRender<IImage> implements IGraphicRender {\n type: 'image';\n numberType: number = IMAGE_NUMBER_TYPE;\n\n constructor(\n @inject(ContributionProvider)\n @named(ImageRenderContribution)\n protected readonly imageRenderContribitions: IContributionProvider<IImageRenderContribution>\n ) {\n super();\n this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution];\n this.init(imageRenderContribitions);\n }\n\n drawShape(\n image: IImage,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const imageAttribute = graphicService.themeService.getCurrentTheme().imageAttribute;\n const imageAttribute = getTheme(image).image;\n const {\n width = imageAttribute.width,\n height = imageAttribute.height,\n repeatX = imageAttribute.repeatX,\n repeatY = imageAttribute.repeatY,\n x: originX = imageAttribute.x,\n y: originY = imageAttribute.y,\n cornerRadius = imageAttribute.cornerRadius,\n fillStrokeOrder = imageAttribute.fillStrokeOrder,\n cornerType = imageAttribute.cornerType,\n image: url\n } = image.attribute;\n\n const data = this.valid(image, imageAttribute, fillCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n if (res.state !== 'success') {\n return;\n }\n\n // deal with cornerRadius\n let needRestore = false;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n } else {\n context.beginPath();\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n needRestore = true;\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(image, image.attribute, imageAttribute);\n // context.beginPath();\n // context.image(x, y, width, height);\n\n const _runFill = () => {\n if (doFill) {\n if (fillCb) {\n fillCb(context, image.attribute, imageAttribute);\n } else if (fVisible) {\n context.setCommonStyle(image, image.attribute, x, y, imageAttribute);\n let repeat = 0;\n if (repeatX === 'repeat') {\n repeat |= 0b0001;\n }\n if (repeatY === 'repeat') {\n repeat |= 0b0010;\n }\n if (repeat) {\n const pattern = context.createPattern(res.data, repeatStr[repeat]);\n context.fillStyle = pattern;\n context.translate(x, y, true);\n context.fillRect(0, 0, width, height);\n context.translate(-x, -y, true);\n } else {\n context.drawImage(res.data, x, y, width, height);\n }\n }\n }\n };\n\n const _runStroke = () => {\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, image.attribute, imageAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(image, image.attribute, originX - x, originY - y, imageAttribute);\n context.stroke();\n }\n }\n };\n\n if (!fillStrokeOrder) {\n if (needRestore) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needRestore) {\n context.restore();\n }\n _runStroke();\n } else {\n _runStroke();\n if (needRestore) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needRestore) {\n context.restore();\n }\n }\n\n this.afterRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n }\n\n draw(image: IImage, renderService: IRenderService, drawContext: IDrawContext) {\n const { image: url } = image.attribute;\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n // if (res.state !== 'success') {\n // return;\n // }\n if (res.state === 'loading' && isString(url)) {\n ResourceLoader.improveImageLoading(url);\n return;\n } else if (res.state !== 'success') {\n return;\n }\n\n const { context } = renderService.drawParams;\n if (!context) {\n return;\n }\n const imageAttribute = getTheme(image).image;\n this._draw(image, imageAttribute, false, drawContext);\n }\n}\n"]}
@@ -30,7 +30,7 @@ export class ResourceLoader {
30
30
  }
31
31
  static GetFile(url, type) {
32
32
  let data = ResourceLoader.cache.get(url);
33
- return data ? "fail" === data.loadState ? Promise.reject() : "init" === data.loadState || "loading" === data.loadState ? data.dataPromise.then((data => data.data)) : Promise.resolve(data.data) : (data = {
33
+ return data ? "init" === data.loadState || "fail" === data.loadState ? Promise.reject() : "loading" === data.loadState ? data.dataPromise.then((data => data.data)) : Promise.resolve(data.data) : (data = {
34
34
  type: type,
35
35
  loadState: "init"
36
36
  }, ResourceLoader.cache.set(url, data), "arrayBuffer" === type ? data.dataPromise = application.global.loadArrayBuffer(url) : "blob" === type ? data.dataPromise = application.global.loadBlob(url) : "json" === type && (data.dataPromise = application.global.loadJson(url)),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/resource-loader/loader.ts"],"names":[],"mappings":"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","file":"loader.js","sourcesContent":["import type { IImage, ImagePayload, ResourceData } from '../interface';\nimport { application } from '../application';\n\nconst PARALLEL_NUMBER = 10;\nexport class ResourceLoader {\n private static cache: Map<string, ResourceData> = new Map();\n private static isLoading: boolean = false;\n private static toLoadAueue: { url: string; marks: ImagePayload[] }[] = [];\n private static onLoadSuccessCb: (() => void)[] = [];\n\n static GetImage(url: string, mark: ImagePayload) {\n const data = ResourceLoader.cache.get(url);\n if (data) {\n // 存在缓存\n if (data.loadState === 'fail') {\n // 资源请求失败,修改mark状态\n application.global.getRequestAnimationFrame()(() => {\n mark.imageLoadFail(url);\n });\n } else if (data.loadState === 'init' || data.loadState === 'loading') {\n // 资源padding队列加入mark信息\n data.waitingMark?.push(mark);\n } else if (mark) {\n mark.imageLoadSuccess(url, data.data as HTMLImageElement);\n }\n } else {\n ResourceLoader.loadImage(url, mark);\n // data = { type: 'image', loadState: 'init' };\n // ResourceLoader.cache.set(url, data);\n\n // data.dataPromise = application.global.loadImage(url);\n // if (!data.dataPromise) {\n // // 无法获取资源,修改缓存和mark状态\n // data.loadState = 'fail';\n // mark.imageLoadFail(url);\n // } else {\n // // 资源padding队列加入mark信息\n // data.waitingMark = [mark];\n\n // data.dataPromise.then(res => {\n // data.loadState = res?.data ? 'success' : 'fail';\n // data.data = res?.data;\n // // 遍历资源padding队列,更新mark信息\n // data.waitingMark?.map((mark: IImage, index) => {\n // if (res?.data) {\n // data.loadState = 'success';\n // data.data = res.data;\n // mark.imageLoadSuccess(url, res.data as HTMLImageElement);\n // } else {\n // data.loadState = 'fail';\n // mark.imageLoadFail(url);\n // }\n // });\n // });\n // }\n }\n }\n\n static GetSvg(svgStr: string, mark: IImage) {\n let data = ResourceLoader.cache.get(svgStr);\n if (data) {\n // 存在缓存\n if (data.loadState === 'fail') {\n // 资源请求失败,修改mark状态\n application.global.getRequestAnimationFrame()(() => {\n mark.imageLoadFail(svgStr);\n });\n } else if (data.loadState === 'init' || data.loadState === 'loading') {\n // 资源padding队列加入mark信息\n data.waitingMark?.push(mark);\n } else if (mark) {\n mark.imageLoadSuccess(svgStr, data.data as HTMLImageElement);\n }\n } else {\n data = { type: 'image', loadState: 'init' };\n ResourceLoader.cache.set(svgStr, data);\n\n data.dataPromise = application.global.loadSvg(svgStr);\n if (!data.dataPromise) {\n // 无法获取资源,修改缓存和mark状态\n data.loadState = 'fail';\n mark.imageLoadFail(svgStr);\n } else {\n // 资源padding队列加入mark信息\n data.waitingMark = [mark];\n\n data.dataPromise.then(res => {\n data.loadState = res?.data ? 'success' : 'fail';\n data.data = res?.data;\n // 遍历资源padding队列,更新mark信息\n data.waitingMark?.map((mark: IImage, index) => {\n if (res?.data) {\n data.loadState = 'success';\n data.data = res.data;\n mark.imageLoadSuccess(svgStr, res.data as HTMLImageElement);\n } else {\n data.loadState = 'fail';\n mark.imageLoadFail(svgStr);\n }\n });\n data.waitingMark && (data.waitingMark = []);\n });\n }\n }\n }\n\n static GetFile(url: string, type: 'json' | 'arrayBuffer' | 'blob') {\n let data = ResourceLoader.cache.get(url);\n if (data) {\n // 存在缓存\n if (data.loadState === 'fail') {\n return Promise.reject();\n } else if (data.loadState === 'init' || data.loadState === 'loading') {\n return data.dataPromise.then(data => data.data);\n }\n return Promise.resolve(data.data);\n }\n data = { type, loadState: 'init' };\n ResourceLoader.cache.set(url, data);\n\n if (type === 'arrayBuffer') {\n data.dataPromise = application.global.loadArrayBuffer(url);\n } else if (type === 'blob') {\n data.dataPromise = application.global.loadBlob(url);\n } else if (type === 'json') {\n data.dataPromise = application.global.loadJson(url);\n }\n\n return data.dataPromise.then(data => data.data);\n }\n\n static loading() {\n setTimeout(() => {\n if (!ResourceLoader.isLoading && ResourceLoader.toLoadAueue.length) {\n ResourceLoader.isLoading = true;\n const tasks = ResourceLoader.toLoadAueue.splice(0, PARALLEL_NUMBER);\n const promises: Promise<void>[] = [];\n tasks.forEach(task => {\n const { url, marks } = task;\n const data: ResourceData = { type: 'image', loadState: 'init' };\n ResourceLoader.cache.set(url, data);\n\n data.dataPromise = application.global.loadImage(url);\n if (!data.dataPromise) {\n // 无法获取资源,修改缓存和mark状态\n data.loadState = 'fail';\n // mark.imageLoadFail(url);\n marks.forEach(mark => mark.imageLoadFail(url));\n } else {\n // 资源padding队列加入mark信息\n // data.waitingMark = [mark];\n data.waitingMark = marks;\n\n const end = data.dataPromise.then(res => {\n data.loadState = res?.data ? 'success' : 'fail';\n data.data = res?.data;\n // 遍历资源padding队列,更新mark信息\n data.waitingMark?.map((mark: IImage, index) => {\n if (res?.data) {\n data.loadState = 'success';\n data.data = res.data;\n // console.log(mark.attribute.y)\n mark.imageLoadSuccess(url, res.data as HTMLImageElement);\n } else {\n data.loadState = 'fail';\n mark.imageLoadFail(url);\n }\n });\n\n data.waitingMark && (data.waitingMark = []);\n });\n\n promises.push(end);\n }\n });\n\n Promise.all(promises)\n .then(() => {\n ResourceLoader.isLoading = false;\n this.onLoadSuccessCb.forEach(cb => cb());\n ResourceLoader.loading();\n })\n .catch(error => {\n console.error(error);\n ResourceLoader.isLoading = false;\n this.onLoadSuccessCb.forEach(cb => cb());\n ResourceLoader.loading();\n });\n }\n }, 0);\n }\n\n static loadImage(url: string, mark: ImagePayload) {\n // find url in toLoadAueue\n const index = getIndex(url, ResourceLoader.toLoadAueue);\n if (index !== -1) {\n // add mark to aueue\n ResourceLoader.toLoadAueue[index].marks.push(mark);\n ResourceLoader.loading();\n return;\n }\n\n // add task to aueue\n ResourceLoader.toLoadAueue.push({ url, marks: [mark] });\n ResourceLoader.loading();\n }\n\n static improveImageLoading(url: string) {\n const index = getIndex(url, ResourceLoader.toLoadAueue);\n if (index !== -1) {\n const elememt = ResourceLoader.toLoadAueue.splice(index, 1);\n ResourceLoader.toLoadAueue.unshift(elememt[0]);\n }\n }\n\n static onLoadSuccess(cb: () => void) {\n this.onLoadSuccessCb.push(cb);\n }\n}\n\nfunction getIndex(url: string, arr: { url: string; marks: ImagePayload[] }[]) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].url === url) {\n return i;\n }\n }\n return -1;\n}\n"]}
1
+ {"version":3,"sources":["../src/resource-loader/loader.ts"],"names":[],"mappings":"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","file":"loader.js","sourcesContent":["import type { IImage, ImagePayload, ResourceData } from '../interface';\nimport { application } from '../application';\n\nconst PARALLEL_NUMBER = 10;\nexport class ResourceLoader {\n private static cache: Map<string, ResourceData> = new Map();\n private static isLoading: boolean = false;\n private static toLoadAueue: { url: string; marks: ImagePayload[] }[] = [];\n private static onLoadSuccessCb: (() => void)[] = [];\n\n static GetImage(url: string, mark: ImagePayload) {\n const data = ResourceLoader.cache.get(url);\n if (data) {\n // 存在缓存\n if (data.loadState === 'fail') {\n // 资源请求失败,修改mark状态\n application.global.getRequestAnimationFrame()(() => {\n mark.imageLoadFail(url);\n });\n } else if (data.loadState === 'init' || data.loadState === 'loading') {\n // 资源padding队列加入mark信息\n data.waitingMark?.push(mark);\n } else if (mark) {\n mark.imageLoadSuccess(url, data.data as HTMLImageElement);\n }\n } else {\n ResourceLoader.loadImage(url, mark);\n // data = { type: 'image', loadState: 'init' };\n // ResourceLoader.cache.set(url, data);\n\n // data.dataPromise = application.global.loadImage(url);\n // if (!data.dataPromise) {\n // // 无法获取资源,修改缓存和mark状态\n // data.loadState = 'fail';\n // mark.imageLoadFail(url);\n // } else {\n // // 资源padding队列加入mark信息\n // data.waitingMark = [mark];\n\n // data.dataPromise.then(res => {\n // data.loadState = res?.data ? 'success' : 'fail';\n // data.data = res?.data;\n // // 遍历资源padding队列,更新mark信息\n // data.waitingMark?.map((mark: IImage, index) => {\n // if (res?.data) {\n // data.loadState = 'success';\n // data.data = res.data;\n // mark.imageLoadSuccess(url, res.data as HTMLImageElement);\n // } else {\n // data.loadState = 'fail';\n // mark.imageLoadFail(url);\n // }\n // });\n // });\n // }\n }\n }\n\n static GetSvg(svgStr: string, mark: IImage) {\n let data = ResourceLoader.cache.get(svgStr);\n if (data) {\n // 存在缓存\n if (data.loadState === 'fail') {\n // 资源请求失败,修改mark状态\n application.global.getRequestAnimationFrame()(() => {\n mark.imageLoadFail(svgStr);\n });\n } else if (data.loadState === 'init' || data.loadState === 'loading') {\n // 资源padding队列加入mark信息\n data.waitingMark?.push(mark);\n } else if (mark) {\n mark.imageLoadSuccess(svgStr, data.data as HTMLImageElement);\n }\n } else {\n data = { type: 'image', loadState: 'init' };\n ResourceLoader.cache.set(svgStr, data);\n\n data.dataPromise = application.global.loadSvg(svgStr);\n if (!data.dataPromise) {\n // 无法获取资源,修改缓存和mark状态\n data.loadState = 'fail';\n mark.imageLoadFail(svgStr);\n } else {\n // 资源padding队列加入mark信息\n data.waitingMark = [mark];\n\n data.dataPromise.then(res => {\n data.loadState = res?.data ? 'success' : 'fail';\n data.data = res?.data;\n // 遍历资源padding队列,更新mark信息\n data.waitingMark?.map((mark: IImage, index) => {\n if (res?.data) {\n data.loadState = 'success';\n data.data = res.data;\n mark.imageLoadSuccess(svgStr, res.data as HTMLImageElement);\n } else {\n data.loadState = 'fail';\n mark.imageLoadFail(svgStr);\n }\n });\n data.waitingMark && (data.waitingMark = []);\n });\n }\n }\n }\n\n static GetFile(url: string, type: 'json' | 'arrayBuffer' | 'blob') {\n let data = ResourceLoader.cache.get(url);\n if (data) {\n // 存在缓存\n if (data.loadState === 'init' || data.loadState === 'fail') {\n return Promise.reject();\n } else if (data.loadState === 'loading') {\n return data.dataPromise.then(data => data.data);\n }\n return Promise.resolve(data.data);\n }\n data = { type, loadState: 'init' };\n ResourceLoader.cache.set(url, data);\n\n if (type === 'arrayBuffer') {\n data.dataPromise = application.global.loadArrayBuffer(url);\n } else if (type === 'blob') {\n data.dataPromise = application.global.loadBlob(url);\n } else if (type === 'json') {\n data.dataPromise = application.global.loadJson(url);\n }\n\n return data.dataPromise.then(data => data.data);\n }\n\n static loading() {\n setTimeout(() => {\n if (!ResourceLoader.isLoading && ResourceLoader.toLoadAueue.length) {\n ResourceLoader.isLoading = true;\n const tasks = ResourceLoader.toLoadAueue.splice(0, PARALLEL_NUMBER);\n const promises: Promise<void>[] = [];\n tasks.forEach(task => {\n const { url, marks } = task;\n const data: ResourceData = { type: 'image', loadState: 'init' };\n ResourceLoader.cache.set(url, data);\n\n data.dataPromise = application.global.loadImage(url);\n if (!data.dataPromise) {\n // 无法获取资源,修改缓存和mark状态\n data.loadState = 'fail';\n // mark.imageLoadFail(url);\n marks.forEach(mark => mark.imageLoadFail(url));\n } else {\n // 资源padding队列加入mark信息\n // data.waitingMark = [mark];\n data.waitingMark = marks;\n\n const end = data.dataPromise.then(res => {\n data.loadState = res?.data ? 'success' : 'fail';\n data.data = res?.data;\n // 遍历资源padding队列,更新mark信息\n data.waitingMark?.map((mark: IImage, index) => {\n if (res?.data) {\n data.loadState = 'success';\n data.data = res.data;\n // console.log(mark.attribute.y)\n mark.imageLoadSuccess(url, res.data as HTMLImageElement);\n } else {\n data.loadState = 'fail';\n mark.imageLoadFail(url);\n }\n });\n\n data.waitingMark && (data.waitingMark = []);\n });\n\n promises.push(end);\n }\n });\n\n Promise.all(promises)\n .then(() => {\n ResourceLoader.isLoading = false;\n this.onLoadSuccessCb.forEach(cb => cb());\n ResourceLoader.loading();\n })\n .catch(error => {\n console.error(error);\n ResourceLoader.isLoading = false;\n this.onLoadSuccessCb.forEach(cb => cb());\n ResourceLoader.loading();\n });\n }\n }, 0);\n }\n\n static loadImage(url: string, mark: ImagePayload) {\n // find url in toLoadAueue\n const index = getIndex(url, ResourceLoader.toLoadAueue);\n if (index !== -1) {\n // add mark to aueue\n ResourceLoader.toLoadAueue[index].marks.push(mark);\n ResourceLoader.loading();\n return;\n }\n\n // add task to aueue\n ResourceLoader.toLoadAueue.push({ url, marks: [mark] });\n ResourceLoader.loading();\n }\n\n static improveImageLoading(url: string) {\n const index = getIndex(url, ResourceLoader.toLoadAueue);\n if (index !== -1) {\n const elememt = ResourceLoader.toLoadAueue.splice(index, 1);\n ResourceLoader.toLoadAueue.unshift(elememt[0]);\n }\n }\n\n static onLoadSuccess(cb: () => void) {\n this.onLoadSuccessCb.push(cb);\n }\n}\n\nfunction getIndex(url: string, arr: { url: string; marks: ImagePayload[] }[]) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].url === url) {\n return i;\n }\n }\n return -1;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vrender-core",
3
- "version": "0.22.0-vstory.1",
3
+ "version": "0.22.0-vstory.10",
4
4
  "description": "",
5
5
  "sideEffects": [
6
6
  "./src/modules.ts",
@@ -36,8 +36,8 @@
36
36
  "typescript": "4.9.5",
37
37
  "cross-env": "^7.0.3",
38
38
  "@internal/bundler": "0.0.1",
39
- "@internal/ts-config": "0.0.1",
40
- "@internal/eslint-config": "0.0.1"
39
+ "@internal/eslint-config": "0.0.1",
40
+ "@internal/ts-config": "0.0.1"
41
41
  },
42
42
  "keywords": [
43
43
  "VisActor",