@nasser-sw/fabric 7.0.1-beta7 → 7.0.1-beta9

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 (148) hide show
  1. package/debug/konva-master/CHANGELOG.md +1475 -0
  2. package/debug/konva-master/LICENSE +22 -0
  3. package/debug/konva-master/README.md +209 -0
  4. package/debug/konva-master/gulpfile.mjs +110 -0
  5. package/debug/konva-master/package.json +139 -0
  6. package/debug/konva-master/release.sh +62 -0
  7. package/debug/konva-master/resources/doc-includes/ContainerParams.txt +6 -0
  8. package/debug/konva-master/resources/doc-includes/NodeParams.txt +20 -0
  9. package/debug/konva-master/resources/doc-includes/ShapeParams.txt +53 -0
  10. package/debug/konva-master/resources/jsdoc.conf.json +28 -0
  11. package/debug/konva-master/rollup.config.mjs +32 -0
  12. package/debug/konva-master/src/Animation.ts +237 -0
  13. package/debug/konva-master/src/BezierFunctions.ts +826 -0
  14. package/debug/konva-master/src/Canvas.ts +230 -0
  15. package/debug/konva-master/src/Container.ts +649 -0
  16. package/debug/konva-master/src/Context.ts +1017 -0
  17. package/debug/konva-master/src/Core.ts +5 -0
  18. package/debug/konva-master/src/DragAndDrop.ts +173 -0
  19. package/debug/konva-master/src/Factory.ts +246 -0
  20. package/debug/konva-master/src/FastLayer.ts +29 -0
  21. package/debug/konva-master/src/Global.ts +210 -0
  22. package/debug/konva-master/src/Group.ts +31 -0
  23. package/debug/konva-master/src/Layer.ts +546 -0
  24. package/debug/konva-master/src/Node.ts +3477 -0
  25. package/debug/konva-master/src/PointerEvents.ts +67 -0
  26. package/debug/konva-master/src/Shape.ts +2081 -0
  27. package/debug/konva-master/src/Stage.ts +1000 -0
  28. package/debug/konva-master/src/Tween.ts +811 -0
  29. package/debug/konva-master/src/Util.ts +1123 -0
  30. package/debug/konva-master/src/Validators.ts +210 -0
  31. package/debug/konva-master/src/_CoreInternals.ts +85 -0
  32. package/debug/konva-master/src/_FullInternals.ts +171 -0
  33. package/debug/konva-master/src/canvas-backend.ts +36 -0
  34. package/debug/konva-master/src/filters/Blur.ts +388 -0
  35. package/debug/konva-master/src/filters/Brighten.ts +48 -0
  36. package/debug/konva-master/src/filters/Brightness.ts +30 -0
  37. package/debug/konva-master/src/filters/Contrast.ts +75 -0
  38. package/debug/konva-master/src/filters/Emboss.ts +207 -0
  39. package/debug/konva-master/src/filters/Enhance.ts +154 -0
  40. package/debug/konva-master/src/filters/Grayscale.ts +25 -0
  41. package/debug/konva-master/src/filters/HSL.ts +108 -0
  42. package/debug/konva-master/src/filters/HSV.ts +106 -0
  43. package/debug/konva-master/src/filters/Invert.ts +23 -0
  44. package/debug/konva-master/src/filters/Kaleidoscope.ts +274 -0
  45. package/debug/konva-master/src/filters/Mask.ts +220 -0
  46. package/debug/konva-master/src/filters/Noise.ts +44 -0
  47. package/debug/konva-master/src/filters/Pixelate.ts +107 -0
  48. package/debug/konva-master/src/filters/Posterize.ts +46 -0
  49. package/debug/konva-master/src/filters/RGB.ts +82 -0
  50. package/debug/konva-master/src/filters/RGBA.ts +103 -0
  51. package/debug/konva-master/src/filters/Sepia.ts +27 -0
  52. package/debug/konva-master/src/filters/Solarize.ts +29 -0
  53. package/debug/konva-master/src/filters/Threshold.ts +44 -0
  54. package/debug/konva-master/src/index.ts +3 -0
  55. package/debug/konva-master/src/shapes/Arc.ts +176 -0
  56. package/debug/konva-master/src/shapes/Arrow.ts +231 -0
  57. package/debug/konva-master/src/shapes/Circle.ts +76 -0
  58. package/debug/konva-master/src/shapes/Ellipse.ts +121 -0
  59. package/debug/konva-master/src/shapes/Image.ts +319 -0
  60. package/debug/konva-master/src/shapes/Label.ts +386 -0
  61. package/debug/konva-master/src/shapes/Line.ts +364 -0
  62. package/debug/konva-master/src/shapes/Path.ts +1013 -0
  63. package/debug/konva-master/src/shapes/Rect.ts +79 -0
  64. package/debug/konva-master/src/shapes/RegularPolygon.ts +167 -0
  65. package/debug/konva-master/src/shapes/Ring.ts +94 -0
  66. package/debug/konva-master/src/shapes/Sprite.ts +370 -0
  67. package/debug/konva-master/src/shapes/Star.ts +125 -0
  68. package/debug/konva-master/src/shapes/Text.ts +1065 -0
  69. package/debug/konva-master/src/shapes/TextPath.ts +583 -0
  70. package/debug/konva-master/src/shapes/Transformer.ts +1889 -0
  71. package/debug/konva-master/src/shapes/Wedge.ts +129 -0
  72. package/debug/konva-master/src/skia-backend.ts +35 -0
  73. package/debug/konva-master/src/types.ts +84 -0
  74. package/debug/konva-master/tsconfig.json +31 -0
  75. package/debug/konva-master/tsconfig.test.json +7 -0
  76. package/dist/index.js +977 -29
  77. package/dist/index.js.map +1 -1
  78. package/dist/index.min.js +1 -1
  79. package/dist/index.min.js.map +1 -1
  80. package/dist/index.min.mjs +1 -1
  81. package/dist/index.min.mjs.map +1 -1
  82. package/dist/index.mjs +977 -29
  83. package/dist/index.mjs.map +1 -1
  84. package/dist/index.node.cjs +977 -29
  85. package/dist/index.node.cjs.map +1 -1
  86. package/dist/index.node.mjs +977 -29
  87. package/dist/index.node.mjs.map +1 -1
  88. package/dist/package.json.min.mjs +1 -1
  89. package/dist/package.json.mjs +1 -1
  90. package/dist/src/shapes/Line.d.ts +1 -0
  91. package/dist/src/shapes/Line.d.ts.map +1 -1
  92. package/dist/src/shapes/Line.min.mjs +1 -1
  93. package/dist/src/shapes/Line.min.mjs.map +1 -1
  94. package/dist/src/shapes/Line.mjs +63 -6
  95. package/dist/src/shapes/Line.mjs.map +1 -1
  96. package/dist/src/shapes/Text/Text.d.ts +19 -0
  97. package/dist/src/shapes/Text/Text.d.ts.map +1 -1
  98. package/dist/src/shapes/Text/Text.min.mjs +1 -1
  99. package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
  100. package/dist/src/shapes/Text/Text.mjs +238 -4
  101. package/dist/src/shapes/Text/Text.mjs.map +1 -1
  102. package/dist/src/shapes/Textbox.d.ts +38 -1
  103. package/dist/src/shapes/Textbox.d.ts.map +1 -1
  104. package/dist/src/shapes/Textbox.min.mjs +1 -1
  105. package/dist/src/shapes/Textbox.min.mjs.map +1 -1
  106. package/dist/src/shapes/Textbox.mjs +497 -15
  107. package/dist/src/shapes/Textbox.mjs.map +1 -1
  108. package/dist/src/text/examples/arabicTextExample.d.ts +60 -0
  109. package/dist/src/text/examples/arabicTextExample.d.ts.map +1 -0
  110. package/dist/src/text/measure.d.ts +9 -0
  111. package/dist/src/text/measure.d.ts.map +1 -1
  112. package/dist/src/text/measure.min.mjs +1 -1
  113. package/dist/src/text/measure.min.mjs.map +1 -1
  114. package/dist/src/text/measure.mjs +175 -4
  115. package/dist/src/text/measure.mjs.map +1 -1
  116. package/dist/src/text/overlayEditor.d.ts.map +1 -1
  117. package/dist/src/text/overlayEditor.min.mjs +1 -1
  118. package/dist/src/text/overlayEditor.min.mjs.map +1 -1
  119. package/dist/src/text/overlayEditor.mjs +7 -0
  120. package/dist/src/text/overlayEditor.mjs.map +1 -1
  121. package/dist/src/text/scriptUtils.d.ts +142 -0
  122. package/dist/src/text/scriptUtils.d.ts.map +1 -0
  123. package/dist/src/text/scriptUtils.min.mjs +2 -0
  124. package/dist/src/text/scriptUtils.min.mjs.map +1 -0
  125. package/dist/src/text/scriptUtils.mjs +212 -0
  126. package/dist/src/text/scriptUtils.mjs.map +1 -0
  127. package/dist-extensions/src/shapes/Line.d.ts +1 -0
  128. package/dist-extensions/src/shapes/Line.d.ts.map +1 -1
  129. package/dist-extensions/src/shapes/Text/Text.d.ts +19 -0
  130. package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -1
  131. package/dist-extensions/src/shapes/Textbox.d.ts +38 -1
  132. package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
  133. package/dist-extensions/src/text/measure.d.ts +9 -0
  134. package/dist-extensions/src/text/measure.d.ts.map +1 -1
  135. package/dist-extensions/src/text/overlayEditor.d.ts.map +1 -1
  136. package/dist-extensions/src/text/scriptUtils.d.ts +142 -0
  137. package/dist-extensions/src/text/scriptUtils.d.ts.map +1 -0
  138. package/fabric-test-editor.html +2401 -46
  139. package/fabric-test2.html +43 -0
  140. package/fonts/STV Bold.ttf +0 -0
  141. package/fonts/STV Light.ttf +0 -0
  142. package/fonts/STV Regular.ttf +0 -0
  143. package/package.json +1 -1
  144. package/src/shapes/Line.ts +132 -46
  145. package/src/shapes/Text/Text.ts +238 -5
  146. package/src/shapes/Textbox.ts +521 -11
  147. package/src/text/measure.ts +200 -50
  148. package/src/text/overlayEditor.ts +7 -0
@@ -713,6 +713,11 @@ export declare class FabricText<Props extends TOptions<TextProps> = Partial<Text
713
713
  * @returns Lines in the text
714
714
  */
715
715
  _splitTextIntoLines(text: string): TextLinesInfo;
716
+ /**
717
+ * Check if text contains Arabic characters
718
+ * @private
719
+ */
720
+ _containsArabicText(text: string): boolean;
716
721
  /**
717
722
  * Returns object representation of an instance
718
723
  * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
@@ -750,6 +755,20 @@ export declare class FabricText<Props extends TOptions<TextProps> = Partial<Text
750
755
  strokeWidth: number;
751
756
  fontSize: number;
752
757
  }, SerializedTextProps, ObjectEvents>>;
758
+ /**
759
+ * Check if the font is ready for accurate measurements
760
+ * @private
761
+ */
762
+ _isFontReady(): boolean;
763
+ /**
764
+ * Schedule re-initialization after font loads
765
+ * @private
766
+ */
767
+ _scheduleInitAfterFontLoad(): void;
768
+ /**
769
+ * Force complete text re-initialization (useful after JSON loading)
770
+ */
771
+ forceTextReinitialization(): void;
753
772
  /**
754
773
  * Returns FabricText instance from an object representation
755
774
  * @param {Object} object plain js Object to create an instance from
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../src/shapes/Text/Text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../src/shapes/Text/Text.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{cache as e}from"../../cache.min.mjs";import{RIGHT as i,CENTER as s,STROKE as n,BOTTOM as h,TOP as r,FILL as o,LEFT as l,DEFAULT_SVG_FONT_SIZE as a}from"../../constants.min.mjs";import{StyledText as d}from"./StyledText.min.mjs";import{SHARED_ATTRIBUTES as c}from"../../parser/attributes.min.mjs";import{parseAttributes as f}from"../../parser/parseAttributes.min.mjs";import{classRegistry as g}from"../../ClassRegistry.min.mjs";import{graphemeSplit as p}from"../../util/lang_string.min.mjs";import{createCanvasElementFor as _}from"../../util/misc/dom.min.mjs";import{layoutText as u}from"../../text/layout.min.mjs";import{hasStyleChanged as m,stylesToArray as x,stylesFromArray as S}from"../../util/misc/textStyles.min.mjs";import{getPathSegmentsInfo as y,getPointOnPath as T}from"../../util/path/index.min.mjs";import"../Object/FabricObject.min.mjs";import{TextSVGExportMixin as L}from"./TextSVGExportMixin.min.mjs";import{applyMixins as w}from"../../util/applyMixins.min.mjs";import{textLayoutProperties as O,additionalProps as C,textDefaultValues as k,JUSTIFY as v,JUSTIFY_CENTER as W,JUSTIFY_RIGHT as A,JUSTIFY_LEFT as H,TEXT_DECORATION_THICKNESS as D}from"./constants.min.mjs";import{isFiller as b}from"../../util/typeAssertions.min.mjs";import{getBrowserLines as P,clearBrowserLines as j}from"../../text/browserLines.min.mjs";import{cacheProperties as F}from"../Object/defaultValues.min.mjs";let B;class z extends d{static getDefaults(){return{...super.getDefaults(),...z.ownDefaults}}constructor(e,i){super(),t(this,"__charBounds",[]),Object.assign(this,z.ownDefaults),this.setOptions(i),this.styles||(this.styles={}),this.text=e,this.initialized=!0,this.path&&this.setPathInfo(),this.initDimensions(),this.setCoords()}setPathInfo(){const t=this.path;t&&(t.segmentsInfo=y(t.path))}_splitText(){const t=P(this);if(t&&this.useOverlayEditing)return this._splitTextFromBrowserLines(t);const e=this._splitTextIntoLines(this.text);return this.textLines=e.lines,this._textLines=e.graphemeLines,this._unwrappedTextLines=e._unwrappedLines,this._text=e.graphemeText,e}_splitTextFromBrowserLines(t){const e=[],i=[],s=[];let n=[];for(const h of t){e.push(h.text);const r=this.graphemeSplit(h.text);i.push(r),s.push(r),n=n.concat(r),h!==t[t.length-1]&&n.push("\n")}const h={lines:e,graphemeLines:i,graphemeText:n,_unwrappedLines:s};return this.textLines=h.lines,this._textLines=h.graphemeLines,this._unwrappedTextLines=h._unwrappedLines,this._text=h.graphemeText,h}initDimensions(){if(this.enableAdvancedLayout&&!this.path)return this.initDimensionsAdvanced();this._splitText(),this._clearCache(),this.dirty=!0,this.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),this.textAlign.includes(v)&&this.enlargeSpaces()}enlargeSpaces(){let t,e,i,s,n,h,r;const o="rtl"===this.direction;for(let l=0,a=this._textLines.length;l<a;l++)if((this.textAlign===v||l!==a-1&&!this.isEndOfWrapping(l))&&(s=0,n=this._textLines[l],e=this.getLineWidth(l),e<this.width&&(r=this.textLines[l].match(this._reSpacesAndTabs))))if(i=r.length,t=(this.width-e)/i,o){for(let t=0;t<n.length;t++)this._reSpaceAndTab.test(n[t]);let e=0;for(let s=0;s<=n.length;s++)if(h=this.__charBounds[l][s],h){this._reSpaceAndTab.test(n[s])&&(h.width+=t,h.kernedWidth+=t,e++);const r=(i-e)*t;h.left+=r}}else for(let e=0;e<=n.length;e++)h=this.__charBounds[l][e],h&&(this._reSpaceAndTab.test(n[e])?(h.width+=t,h.kernedWidth+=t,h.left+=s,s+=t):h.left+=s)}_layoutTextAdvanced(){const t=this._getAdvancedLayoutOptions();return u(t)}_getAdvancedLayoutOptions(){return{text:this.text,width:this.width,height:this.height,wrap:this.wrap||"word",align:this._mapTextAlignToAlign(this.textAlign),ellipsis:this.ellipsis||!1,fontSize:this.fontSize,lineHeight:this.lineHeight,letterSpacing:this.letterSpacing||0,charSpacing:this.charSpacing,direction:"inherit"===this.direction?"ltr":this.direction,fontFamily:this.fontFamily,fontStyle:this.fontStyle,fontWeight:this.fontWeight,verticalAlign:this.verticalAlign||"top"}}_mapTextAlignToAlign(t){switch(t){case"center":case s:return"center";case"right":case i:return"right";case"justify":case v:case H:case A:case W:return"justify";default:return"left"}}initDimensionsAdvanced(){if(!this.enableAdvancedLayout)return this.initDimensions();const t=this._layoutTextAdvanced();this.width=t.totalWidth||this.MIN_TEXT_WIDTH,this.height=t.totalHeight,this._convertLayoutToLegacyFormat(t),this.dirty=!0}_convertLayoutToLegacyFormat(t){this._textLines=t.lines.map(t=>t.graphemes),this.textLines=t.lines.map(t=>t.text),this.__charBounds=t.lines.map(t=>t.bounds.map(t=>({left:t.left,top:t.y,width:t.width,height:t.height,kernedWidth:t.kernedWidth,deltaY:t.deltaY||0}))),t.lines.length>0&&(this._unwrappedTextLines=t.lines.map(t=>t.graphemes))}isEndOfWrapping(t){return t===this._textLines.length-1}missingNewlineOffset(t){return 1}get2DCursorLocation(t,e){const i=e?this._unwrappedTextLines:this._textLines;let s;for(s=0;s<i.length;s++){if(t<=i[s].length)return{lineIndex:s,charIndex:t};t-=i[s].length+this.missingNewlineOffset(s,e)}return{lineIndex:s-1,charIndex:i[s-1].length<t?i[s-1].length:t}}toString(){return`#<Text (${this.complexity()}): { "text": "${this.text}", "fontFamily": "${this.fontFamily}" }>`}_getCacheCanvasDimensions(){const t=super._getCacheCanvasDimensions(),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t}_render(t){const e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,"underline"),this._renderText(t),this._renderTextDecoration(t,"overline"),this._renderTextDecoration(t,"linethrough")}_renderText(t){this.__overlayEditor||(this.paintFirst===n?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t)))}_setTextStyles(t,e,i){if(t.textBaseline="alphabetic",this.path)switch(this.pathAlign){case s:t.textBaseline="middle";break;case"ascender":t.textBaseline=r;break;case"descender":t.textBaseline=h}t.font=this._getFontDeclaration(e,i)}calcTextWidth(){let t=this.getLineWidth(0);for(let e=1,i=this._textLines.length;e<i;e++){const i=this.getLineWidth(e);i>t&&(t=i)}return t}_renderTextLine(t,e,i,s,n,h){this._renderChars(t,e,i,s,n,h)}_renderTextLinesBackground(t){if(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor"))return;const e=t.fillStyle,i=this._getLeftOffset();let s=this._getTopOffset();for(let e=0,n=this._textLines.length;e<n;e++){const n=this.getHeightOfLine(e);if(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor",e)){s+=n;continue}const h=this._textLines[e].length,r=this._getLineLeftOffset(e);let o,l,a=0,d=0,c=this.getValueOfPropertyAt(e,0,"textBackgroundColor");for(let f=0;f<h;f++){const h=this.__charBounds[e][f];l=this.getValueOfPropertyAt(e,f,"textBackgroundColor"),this.path?(t.save(),t.translate(h.renderLeft,h.renderTop),t.rotate(h.angle),t.fillStyle=l,l&&t.fillRect(-h.width/2,-n/this.lineHeight*(1-this._fontSizeFraction),h.width,n/this.lineHeight),t.restore()):l!==c?(o=i+r+d,"rtl"===this.direction&&(o=this.width-o-a),t.fillStyle=c,c&&t.fillRect(o,s,a,n/this.lineHeight),d=h.left,a=h.width,c=l):a+=h.kernedWidth}l&&!this.path&&(o=i+r+d,"rtl"===this.direction&&(o=this.width-o-a),t.fillStyle=l,t.fillRect(o,s,a,n/this.lineHeight)),s+=n}t.fillStyle=e,this._removeShadow(t)}_measureChar(t,i,s,n){const h=e.getFontCache(i),r=this._getFontDeclaration(i),o=s+t,l=s&&r===this._getFontDeclaration(n),a=i.fontSize/this.CACHE_FONT_SIZE;let d,c,f,g;if(s&&void 0!==h[s]&&(f=h[s]),void 0!==h[t]&&(g=d=h[t]),l&&void 0!==h[o]&&(c=h[o],g=c-f),void 0===d||void 0===f||void 0===c){const e=function(){if(!B){const t=_({width:0,height:0});B=t.getContext("2d")}return B}();this._setTextStyles(e,i,!0),void 0===d&&(g=d=e.measureText(t).width,h[t]=d),void 0===f&&l&&s&&(f=e.measureText(s).width,h[s]=f),l&&void 0===c&&(c=e.measureText(o).width,h[o]=c,g=c-f)}return{width:d*a,kernedWidth:g*a}}getHeightOfChar(t,e){return this.getValueOfPropertyAt(t,e,"fontSize")}measureLine(t){const e=this._measureLine(t);return 0!==this.charSpacing&&(e.width-=this._getWidthOfCharSpacing()),e.width<0&&(e.width=0),e}_measureLine(t){let e,n,h=0;const r=this.pathSide===i,o=this.path,a=this._textLines[t],d=a.length,c=new Array(d);this.__charBounds[t]=c;for(let i=0;i<d;i++){const s=a[i];n=this._getGraphemeBox(s,t,i,e),c[i]=n,h+=n.kernedWidth,e=s}if(c[d]={left:n?n.left+n.width:0,width:0,kernedWidth:0,height:this.fontSize,deltaY:0},o&&o.segmentsInfo){let t=0;const e=o.segmentsInfo[o.segmentsInfo.length-1].length;switch(this.textAlign){case l:t=r?e-h:0;break;case s:t=(e-h)/2;break;case i:t=r?0:e-h}t+=this.pathStartOffset*(r?-1:1);for(let i=r?d-1:0;r?i>=0:i<d;r?i--:i++)n=c[i],t>e?t%=e:t<0&&(t+=e),this._setGraphemeOnPath(t,n),t+=n.kernedWidth}return{width:h,numOfSpaces:0}}_setGraphemeOnPath(t,e){const s=t+e.kernedWidth/2,n=this.path,h=T(n.path,s,n.segmentsInfo);e.renderLeft=h.x-n.pathOffset.x,e.renderTop=h.y-n.pathOffset.y,e.angle=h.angle+(this.pathSide===i?Math.PI:0)}_getGraphemeBox(t,e,i,s,n){const h=this.getCompleteStyleDeclaration(e,i),r=s?this.getCompleteStyleDeclaration(e,i-1):{},o=this._measureChar(t,h,s,r);let l,a=o.kernedWidth,d=o.width;0!==this.charSpacing&&(l=this._getWidthOfCharSpacing(),d+=l,a+=l);const c={width:d,left:0,height:h.fontSize,kernedWidth:a,deltaY:h.deltaY};if(i>0&&!n){const t=this.__charBounds[e][i-1];c.left=t.left+t.width+o.kernedWidth-o.width}return c}getHeightOfLine(t){if(this.__lineHeights[t])return this.__lineHeights[t];let e=this.getHeightOfChar(t,0);for(let i=1,s=this._textLines[t].length;i<s;i++)e=Math.max(this.getHeightOfChar(t,i),e);return this.__lineHeights[t]=e*this.lineHeight*this._fontSizeMult}calcTextHeight(){let t,e=0;for(let i=0,s=this._textLines.length;i<s;i++)t=this.getHeightOfLine(i),e+=i===s-1?t/this.lineHeight:t;return e}_getLeftOffset(){return"ltr"===this.direction?-this.width/2:this.width/2}_getTopOffset(){return-this.height/2}_renderTextCommon(t,e){t.save();let i=0;const s=this._getLeftOffset(),n=this._getTopOffset();for(let h=0,r=this._textLines.length;h<r;h++){const r=this.getHeightOfLine(h),o=r/this.lineHeight,l=this._getLineLeftOffset(h);this._renderTextLine(e,t,this._textLines[h],s+l,n+i+o,h),i+=r}t.restore()}_renderTextFill(t){(this.fill||this.styleHas(o))&&this._renderTextCommon(t,"fillText")}_renderTextStroke(t){(this.stroke&&0!==this.strokeWidth||!this.isEmptyStyles())&&(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this._setLineDash(t,this.strokeDashArray),t.beginPath(),this._renderTextCommon(t,"strokeText"),t.closePath(),t.restore())}_renderChars(t,e,s,n,h,r){const o=this.getHeightOfLine(r),a=this.textAlign.includes(v),d=this.path,c=!a&&0===this.charSpacing&&this.isEmptyStyles(r)&&!d,f="ltr"===this.direction,g="ltr"===this.direction?1:-1,p=e.direction;let _,u,x,S,y,T="",L=0;if(e.save(),p!==this.direction&&(e.canvas.setAttribute("dir",f?"ltr":"rtl"),e.direction=f?"ltr":"rtl",e.textAlign=a||f?l:i),h-=o*this._fontSizeFraction/this.lineHeight,c)return this._renderChar(t,e,r,0,s.join(""),n,h),void e.restore();for(let i=0,o=s.length-1;i<=o;i++)S=i===o||this.charSpacing||d,T+=s[i],x=this.__charBounds[r][i],0===L?(n+=g*(x.kernedWidth-x.width),L+=x.width):L+=x.kernedWidth,a&&!S&&this._reSpaceAndTab.test(s[i])&&(S=!0),S||(_=_||this.getCompleteStyleDeclaration(r,i),u=this.getCompleteStyleDeclaration(r,i+1),S=m(_,u,!1)),S&&(d?(e.save(),e.translate(x.renderLeft,x.renderTop),e.rotate(x.angle),this._renderChar(t,e,r,i,T,-L/2,0),e.restore()):(y=n,this._renderChar(t,e,r,i,T,y,h)),T="",_=u,n+=g*L,L=0);e.restore()}_applyPatternGradientTransformText(t){const e=this.width+this.strokeWidth,i=this.height+this.strokeWidth,s=_({width:e,height:i}),n=s.getContext("2d");return s.width=e,s.height=i,n.beginPath(),n.moveTo(0,0),n.lineTo(e,0),n.lineTo(e,i),n.lineTo(0,i),n.closePath(),n.translate(e/2,i/2),n.fillStyle=t.toLive(n),this._applyPatternGradientTransform(n,t),n.fill(),n.createPattern(s,"no-repeat")}handleFiller(t,e,i){let s,n;return b(i)?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?(s=-this.width/2,n=-this.height/2,t.translate(s,n),t[e]=this._applyPatternGradientTransformText(i),{offsetX:s,offsetY:n}):(t[e]=i.toLive(t),this._applyPatternGradientTransform(t,i)):(t[e]=i,{offsetX:0,offsetY:0})}_setStrokeStyles(t,e){let{stroke:i,strokeWidth:s}=e;return t.lineWidth=s,t.lineCap=this.strokeLineCap,t.lineDashOffset=this.strokeDashOffset,t.lineJoin=this.strokeLineJoin,t.miterLimit=this.strokeMiterLimit,this.handleFiller(t,"strokeStyle",i)}_setFillStyles(t,e){let{fill:i}=e;return this.handleFiller(t,"fillStyle",i)}_renderChar(t,e,i,s,n,h,r){const o=this._getStyleDeclaration(i,s),l=this.getCompleteStyleDeclaration(i,s),a="fillText"===t&&l.fill,d="strokeText"===t&&l.stroke&&l.strokeWidth;if(d||a){if(e.save(),e.font=this._getFontDeclaration(l),o.textBackgroundColor&&this._removeShadow(e),o.deltaY&&(r+=o.deltaY),a){const t=this._setFillStyles(e,l);e.fillText(n,h-t.offsetX,r-t.offsetY)}if(d){const t=this._setStrokeStyles(e,l);e.strokeText(n,h-t.offsetX,r-t.offsetY)}e.restore()}}setSuperscript(t,e){this._setScript(t,e,this.superscript)}setSubscript(t,e){this._setScript(t,e,this.subscript)}_setScript(t,e,i){const s=this.get2DCursorLocation(t,!0),n=this.getValueOfPropertyAt(s.lineIndex,s.charIndex,"fontSize"),h=this.getValueOfPropertyAt(s.lineIndex,s.charIndex,"deltaY"),r={fontSize:n*i.size,deltaY:h+n*i.baseline};this.setSelectionStyles(r,t,e)}_getLineLeftOffset(t){const e=this.getLineWidth(t),n=this.width-e,h=this.textAlign,r=this.direction,o=this.isEndOfWrapping(t);let a=0;return h===v||h===W&&!o||h===A&&!o||h===H&&!o?0:(h===s&&(a=n/2),h===i&&(a=n),h===W&&(a=n/2),h===A&&(a=n),"rtl"===r&&(h===i||h===v||h===A?a=0:h===l||h===H?a=-n:h!==s&&h!==W||(a=-n/2)),a)}_clearCache(){this._forceClearCache=!1,this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]}getLineWidth(t){if(void 0!==this.__lineWidths[t])return this.__lineWidths[t];const{width:e}=this.measureLine(t);return this.__lineWidths[t]=e,e}_getWidthOfCharSpacing(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0}getValueOfPropertyAt(t,e,i){var s;return null!==(s=this._getStyleDeclaration(t,e)[i])&&void 0!==s?s:this[i]}_renderTextDecoration(t,e){if(!this[e]&&!this.styleHas(e))return;let i=this._getTopOffset();const s=this._getLeftOffset(),n=this.path,h=this._getWidthOfCharSpacing(),r="linethrough"===e?.5:"overline"===e?1:0,l=this.offsets[e];for(let a=0,d=this._textLines.length;a<d;a++){const d=this.getHeightOfLine(a);if(!this[e]&&!this.styleHas(e,a)){i+=d;continue}const c=this._textLines[a],f=d/this.lineHeight,g=this._getLineLeftOffset(a);let p=0,_=0,u=this.getValueOfPropertyAt(a,0,e),m=this.getValueOfPropertyAt(a,0,o),x=this.getValueOfPropertyAt(a,0,D),S=u,y=m,T=x;const L=i+f*(1-this._fontSizeFraction);let w=this.getHeightOfChar(a,0),O=this.getValueOfPropertyAt(a,0,"deltaY");for(let i=0,h=c.length;i<h;i++){const h=this.__charBounds[a][i];S=this.getValueOfPropertyAt(a,i,e),y=this.getValueOfPropertyAt(a,i,o),T=this.getValueOfPropertyAt(a,i,D);const d=this.getHeightOfChar(a,i),c=this.getValueOfPropertyAt(a,i,"deltaY");if(n&&S&&y){const e=this.fontSize*T/1e3;t.save(),t.fillStyle=m,t.translate(h.renderLeft,h.renderTop),t.rotate(h.angle),t.fillRect(-h.kernedWidth/2,l*d+c-r*e,h.kernedWidth,e),t.restore()}else if((S!==u||y!==m||d!==w||T!==x||c!==O)&&_>0){const e=this.fontSize*x/1e3;let i=s+g+p;"rtl"===this.direction&&(i=this.width-i-_),u&&m&&x&&(t.fillStyle=m,t.fillRect(i,L+l*w+O-r*e,_,e)),p=h.left,_=h.width,u=S,x=T,m=y,w=d,O=c}else _+=h.kernedWidth}let C=s+g+p;"rtl"===this.direction&&(C=this.width-C-_),t.fillStyle=y;const k=this.fontSize*T/1e3;S&&y&&T&&t.fillRect(C,L+l*w+O-r*k,_-h,k),i+=d}this._removeShadow(t)}_getFontDeclaration(){let{fontFamily:t=this.fontFamily,fontStyle:e=this.fontStyle,fontWeight:i=this.fontWeight,fontSize:s=this.fontSize}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;const h=t.includes("'")||t.includes('"')||t.includes(",")||z.genericFonts.includes(t.toLowerCase())?t:`"${t}"`;return[e,i,`${n?this.CACHE_FONT_SIZE:s}px`,h].join(" ")}render(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._forceClearCache&&this.initDimensions(),super.render(t)))}graphemeSplit(t){return p(t)}_splitTextIntoLines(t){const e=t.split(this._reNewline),i=new Array(e.length),s=["\n"];let n=[];for(let t=0;t<e.length;t++)i[t]=this.graphemeSplit(e[t]),n=n.concat(i[t],s);return n.pop(),{_unwrappedLines:i,lines:e,graphemeText:n,graphemeLines:i}}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{...super.toObject([...C,...t]),styles:x(this.styles,this.text),...this.path?{path:this.path.toObject()}:{}}}set(t,e){const{textLayoutProperties:i}=this.constructor;super.set(t,e);let s=!1,n=!1;if("object"==typeof t)for(const e in t)"path"===e&&this.setPathInfo(),s=s||i.includes(e),n=n||"path"===e;else s=i.includes(t),n="path"===t;return n&&this.setPathInfo(),s&&this.initialized&&(j(this),this.initDimensions(),this.setCoords()),this}complexity(){return 1}static async fromElement(t,e,n){const h=f(t,z.ATTRIBUTE_NAMES,n),{textAnchor:r=l,textDecoration:o="",dx:d=0,dy:c=0,top:g=0,left:p=0,fontSize:_=a,strokeWidth:u=1,...m}={...e,...h},x=new this((t.textContent||"").replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," "),{left:p+d,top:g+c,underline:o.includes("underline"),overline:o.includes("overline"),linethrough:o.includes("line-through"),strokeWidth:0,fontSize:_,...m}),S=x.getScaledHeight()/x.height,y=((x.height+x.strokeWidth)*x.lineHeight-x.height)*S,T=x.getScaledHeight()+y;let L=0;return r===s&&(L=x.getScaledWidth()/2),r===i&&(L=x.getScaledWidth()),x.set({left:x.left-L,top:x.top-(T-x.fontSize*(.07+x._fontSizeFraction))/x.lineHeight,strokeWidth:u}),x}static fromObject(t){return this._fromObject({...t,styles:S(t.styles||{},t.text)},{extraParam:"text"})}}t(z,"textLayoutProperties",O),t(z,"cacheProperties",[...F,...C]),t(z,"ownDefaults",k),t(z,"type","Text"),t(z,"genericFonts",["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]),t(z,"ATTRIBUTE_NAMES",c.concat("x","y","dx","dy","font-family","font-style","font-weight","font-size","letter-spacing","text-decoration","text-anchor")),w(z,[L]),g.setClass(z),g.setSVGClass(z);export{z as FabricText};
1
+ import{defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{cache as e}from"../../cache.min.mjs";import{RIGHT as i,CENTER as s,STROKE as n,BOTTOM as r,TOP as h,FILL as o,LEFT as l,DEFAULT_SVG_FONT_SIZE as a}from"../../constants.min.mjs";import{StyledText as d}from"./StyledText.min.mjs";import{SHARED_ATTRIBUTES as c}from"../../parser/attributes.min.mjs";import{parseAttributes as f}from"../../parser/parseAttributes.min.mjs";import{classRegistry as g}from"../../ClassRegistry.min.mjs";import{graphemeSplit as p}from"../../util/lang_string.min.mjs";import{createCanvasElementFor as u}from"../../util/misc/dom.min.mjs";import{layoutText as m}from"../../text/layout.min.mjs";import{segmentGraphemes as _}from"../../text/unicode.min.mjs";import{hasStyleChanged as x,stylesToArray as S,stylesFromArray as y}from"../../util/misc/textStyles.min.mjs";import{getPathSegmentsInfo as T,getPointOnPath as L}from"../../util/path/index.min.mjs";import"../Object/FabricObject.min.mjs";import{TextSVGExportMixin as w}from"./TextSVGExportMixin.min.mjs";import{applyMixins as v}from"../../util/applyMixins.min.mjs";import{textLayoutProperties as O,additionalProps as A,textDefaultValues as C,JUSTIFY as k,JUSTIFY_CENTER as F,JUSTIFY_RIGHT as W,JUSTIFY_LEFT as z,TEXT_DECORATION_THICKNESS as D}from"./constants.min.mjs";import{isFiller as b}from"../../util/typeAssertions.min.mjs";import{getBrowserLines as H,clearBrowserLines as j}from"../../text/browserLines.min.mjs";import{cacheProperties as B}from"../Object/defaultValues.min.mjs";let P;class I extends d{static getDefaults(){return{...super.getDefaults(),...I.ownDefaults}}constructor(e,i){super(),t(this,"__charBounds",[]),Object.assign(this,I.ownDefaults),this.setOptions(i),this.styles||(this.styles={}),this.text=e,this.initialized=!0,this.path&&this.setPathInfo(),this.initDimensions(),this.setCoords()}setPathInfo(){const t=this.path;t&&(t.segmentsInfo=T(t.path))}_splitText(){const t=H(this);if(t&&this.useOverlayEditing)return this._splitTextFromBrowserLines(t);const e=this._splitTextIntoLines(this.text);return this.textLines=e.lines,this._textLines=e.graphemeLines,this._unwrappedTextLines=e._unwrappedLines,this._text=e.graphemeText,e}_splitTextFromBrowserLines(t){const e=[],i=[],s=[];let n=[];for(const r of t){e.push(r.text);const h=this.graphemeSplit(r.text);i.push(h),s.push(h),n=n.concat(h),r!==t[t.length-1]&&n.push("\n")}const r={lines:e,graphemeLines:i,graphemeText:n,_unwrappedLines:s};return this.textLines=r.lines,this._textLines=r.graphemeLines,this._unwrappedTextLines=r._unwrappedLines,this._text=r.graphemeText,r}initDimensions(){if(this._isFontReady()||this.initialized||this._scheduleInitAfterFontLoad(),this.enableAdvancedLayout&&!this.path)return this.initDimensionsAdvanced();this._splitText(),this._clearCache(),this.dirty=!0,this.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),this.textAlign.includes(k)&&(this.__charBounds&&this.__charBounds.length>0?this.enlargeSpaces():(console.warn("⚠️ __charBounds not ready for justify alignment, deferring enlargeSpaces"),setTimeout(()=>{var t;this.__charBounds&&this.__charBounds.length>0&&this.enlargeSpaces&&(console.log("🔧 Applying deferred justify alignment"),this.enlargeSpaces(),null===(t=this.canvas)||void 0===t||t.requestRenderAll())},0)))}enlargeSpaces(){let t,e,i,s,n,r,h;const o="rtl"===this.direction;for(let l=0,a=this._textLines.length;l<a;l++)if((this.textAlign.includes("justify")||l!==a-1&&!this.isEndOfWrapping(l))&&(s=0,n=this._textLines[l],e=this.getLineWidth(l),e<this.width&&(h=this.textLines[l].match(this._reSpacesAndTabs))))if(i=h.length,t=(this.width-e)/i,console.log(`🔧 EnlargeSpaces Line ${l}:`),console.log(` Current width: ${e}, Target: ${this.width}`),console.log(` Spaces: ${i}, diffSpace: ${t.toFixed(2)}`),o){for(let t=0;t<n.length;t++)this._reSpaceAndTab.test(n[t]);let e=0;for(let s=0;s<=n.length;s++)if(r=this.__charBounds[l][s],r){this._reSpaceAndTab.test(n[s])&&(r.width+=t,r.kernedWidth+=t,e++);const h=(i-e)*t;r.left+=h}}else for(let e=0;e<=n.length;e++)r=this.__charBounds[l][e],r&&(this._reSpaceAndTab.test(n[e])?(r.width+=t,r.kernedWidth+=t,r.left+=s,s+=t):r.left+=s)}_layoutTextAdvanced(){const t=this._getAdvancedLayoutOptions();return m(t)}_getAdvancedLayoutOptions(){return{text:this.text,width:this.width,height:this.height,wrap:this.wrap||"word",align:this._mapTextAlignToAlign(this.textAlign),ellipsis:this.ellipsis||!1,fontSize:this.fontSize,lineHeight:this.lineHeight,letterSpacing:this.letterSpacing||0,charSpacing:this.charSpacing,direction:"inherit"===this.direction?"ltr":this.direction,fontFamily:this.fontFamily,fontStyle:this.fontStyle,fontWeight:this.fontWeight,verticalAlign:this.verticalAlign||"top"}}_mapTextAlignToAlign(t){switch(t){case"center":case s:return"center";case"right":case i:return"right";case"justify":case k:case z:case W:case F:return"justify";default:return"left"}}initDimensionsAdvanced(){if(!this.enableAdvancedLayout)return this.initDimensions();const t=this._layoutTextAdvanced();this.width=t.totalWidth||this.MIN_TEXT_WIDTH,this.height=t.totalHeight,this._convertLayoutToLegacyFormat(t),this.textAlign.includes(k)&&setTimeout(()=>{var t;this.enlargeSpaces&&(this.enlargeSpaces(),null===(t=this.canvas)||void 0===t||t.renderAll())},0),this.dirty=!0}_convertLayoutToLegacyFormat(t){this._textLines=t.lines.map(t=>t.graphemes),this.textLines=t.lines.map(t=>t.text),this.__charBounds=t.lines.map(t=>t.bounds.map(t=>({left:t.left,top:t.y,width:t.width,height:t.height,kernedWidth:t.kernedWidth,deltaY:t.deltaY||0}))),t.lines.length>0&&(this._unwrappedTextLines=t.lines.map(t=>t.graphemes))}isEndOfWrapping(t){return t===this._textLines.length-1}missingNewlineOffset(t){return 1}get2DCursorLocation(t,e){const i=e?this._unwrappedTextLines:this._textLines;let s;for(s=0;s<i.length;s++){if(t<=i[s].length)return{lineIndex:s,charIndex:t};t-=i[s].length+this.missingNewlineOffset(s,e)}return{lineIndex:s-1,charIndex:i[s-1].length<t?i[s-1].length:t}}toString(){return`#<Text (${this.complexity()}): { "text": "${this.text}", "fontFamily": "${this.fontFamily}" }>`}_getCacheCanvasDimensions(){const t=super._getCacheCanvasDimensions(),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t}_render(t){const e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,"underline"),this._renderText(t),this._renderTextDecoration(t,"overline"),this._renderTextDecoration(t,"linethrough")}_renderText(t){this.__overlayEditor||(this.paintFirst===n?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t)))}_setTextStyles(t,e,i){if(t.textBaseline="alphabetic",this.path)switch(this.pathAlign){case s:t.textBaseline="middle";break;case"ascender":t.textBaseline=h;break;case"descender":t.textBaseline=r}t.font=this._getFontDeclaration(e,i)}calcTextWidth(){let t=this.getLineWidth(0);for(let e=1,i=this._textLines.length;e<i;e++){const i=this.getLineWidth(e);i>t&&(t=i)}return t}_renderTextLine(t,e,i,s,n,r){this._renderChars(t,e,i,s,n,r)}_renderTextLinesBackground(t){if(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor"))return;const e=t.fillStyle,i=this._getLeftOffset();let s=this._getTopOffset();for(let e=0,n=this._textLines.length;e<n;e++){const n=this.getHeightOfLine(e);if(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor",e)){s+=n;continue}const r=this._textLines[e].length,h=this._getLineLeftOffset(e);let o,l,a=0,d=0,c=this.getValueOfPropertyAt(e,0,"textBackgroundColor");for(let f=0;f<r;f++){const r=this.__charBounds[e][f];l=this.getValueOfPropertyAt(e,f,"textBackgroundColor"),this.path?(t.save(),t.translate(r.renderLeft,r.renderTop),t.rotate(r.angle),t.fillStyle=l,l&&t.fillRect(-r.width/2,-n/this.lineHeight*(1-this._fontSizeFraction),r.width,n/this.lineHeight),t.restore()):l!==c?(o=i+h+d,"rtl"===this.direction&&(o=this.width-o-a),t.fillStyle=c,c&&t.fillRect(o,s,a,n/this.lineHeight),d=r.left,a=r.width,c=l):a+=r.kernedWidth}l&&!this.path&&(o=i+h+d,"rtl"===this.direction&&(o=this.width-o-a),t.fillStyle=l,t.fillRect(o,s,a,n/this.lineHeight)),s+=n}t.fillStyle=e,this._removeShadow(t)}_measureChar(t,i,s,n){const r=e.getFontCache(i),h=this._getFontDeclaration(i),o=s+t,l=s&&h===this._getFontDeclaration(n),a=i.fontSize/this.CACHE_FONT_SIZE;let d,c,f,g;if(s&&void 0!==r[s]&&(f=r[s]),void 0!==r[t]&&(g=d=r[t]),l&&void 0!==r[o]&&(c=r[o],g=c-f),void 0===d||void 0===f||void 0===c){const e=function(){if(!P){const t=u({width:0,height:0});P=t.getContext("2d")}return P}();this._setTextStyles(e,i,!0),void 0===d&&(g=d=e.measureText(t).width,r[t]=d),void 0===f&&l&&s&&(f=e.measureText(s).width,r[s]=f),l&&void 0===c&&(c=e.measureText(o).width,r[o]=c,g=c-f)}return{width:d*a,kernedWidth:g*a}}getHeightOfChar(t,e){return this.getValueOfPropertyAt(t,e,"fontSize")}measureLine(t){const e=this._measureLine(t);return 0!==this.charSpacing&&(e.width-=this._getWidthOfCharSpacing()),e.width<0&&(e.width=0),e}_measureLine(t){let e,n,r=0;const h=this.pathSide===i,o=this.path,a=this._textLines[t],d=a.length,c=new Array(d);this.__charBounds[t]=c;for(let i=0;i<d;i++){const s=a[i];n=this._getGraphemeBox(s,t,i,e),c[i]=n,r+=n.kernedWidth,e=s}if(c[d]={left:n?n.left+n.width:0,width:0,kernedWidth:0,height:this.fontSize,deltaY:0},o&&o.segmentsInfo){let t=0;const e=o.segmentsInfo[o.segmentsInfo.length-1].length;switch(this.textAlign){case l:t=h?e-r:0;break;case s:t=(e-r)/2;break;case i:t=h?0:e-r}t+=this.pathStartOffset*(h?-1:1);for(let i=h?d-1:0;h?i>=0:i<d;h?i--:i++)n=c[i],t>e?t%=e:t<0&&(t+=e),this._setGraphemeOnPath(t,n),t+=n.kernedWidth}return{width:r,numOfSpaces:0}}_setGraphemeOnPath(t,e){const s=t+e.kernedWidth/2,n=this.path,r=L(n.path,s,n.segmentsInfo);e.renderLeft=r.x-n.pathOffset.x,e.renderTop=r.y-n.pathOffset.y,e.angle=r.angle+(this.pathSide===i?Math.PI:0)}_getGraphemeBox(t,e,i,s,n){const r=this.getCompleteStyleDeclaration(e,i),h=s?this.getCompleteStyleDeclaration(e,i-1):{},o=this._measureChar(t,r,s,h);let l,a=o.kernedWidth,d=o.width;0!==this.charSpacing&&(l=this._getWidthOfCharSpacing(),d+=l,a+=l);const c={width:d,left:0,height:r.fontSize,kernedWidth:a,deltaY:r.deltaY};if(i>0&&!n){const t=this.__charBounds[e][i-1];c.left=t.left+t.width+o.kernedWidth-o.width}return c}getHeightOfLine(t){if(this.__lineHeights[t])return this.__lineHeights[t];let e=this.getHeightOfChar(t,0);for(let i=1,s=this._textLines[t].length;i<s;i++)e=Math.max(this.getHeightOfChar(t,i),e);return this.__lineHeights[t]=e*this.lineHeight*this._fontSizeMult}calcTextHeight(){let t,e=0;for(let i=0,s=this._textLines.length;i<s;i++)t=this.getHeightOfLine(i),e+=i===s-1?t/this.lineHeight:t;return e}_getLeftOffset(){return"ltr"===this.direction?-this.width/2:this.width/2}_getTopOffset(){return-this.height/2}_renderTextCommon(t,e){t.save();let i=0;const s=this._getLeftOffset(),n=this._getTopOffset();for(let r=0,h=this._textLines.length;r<h;r++){const h=this.getHeightOfLine(r),o=h/this.lineHeight,l=this._getLineLeftOffset(r);this._renderTextLine(e,t,this._textLines[r],s+l,n+i+o,r),i+=h}t.restore()}_renderTextFill(t){(this.fill||this.styleHas(o))&&this._renderTextCommon(t,"fillText")}_renderTextStroke(t){(this.stroke&&0!==this.strokeWidth||!this.isEmptyStyles())&&(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this._setLineDash(t,this.strokeDashArray),t.beginPath(),this._renderTextCommon(t,"strokeText"),t.closePath(),t.restore())}_renderChars(t,e,s,n,r,h){const o=this.getHeightOfLine(h),a=this.textAlign.includes(k),d=this.path,c=!a&&0===this.charSpacing&&this.isEmptyStyles(h)&&!d,f="ltr"===this.direction,g="ltr"===this.direction?1:-1,p=e.direction;let u,m,_,S,y,T="",L=0;if(e.save(),p!==this.direction&&(e.canvas.setAttribute("dir",f?"ltr":"rtl"),e.direction=f?"ltr":"rtl",e.textAlign=a||f?l:i),r-=o*this._fontSizeFraction/this.lineHeight,c)return this._renderChar(t,e,h,0,s.join(""),n,r),void e.restore();for(let i=0,o=s.length-1;i<=o;i++)S=i===o||this.charSpacing||d,T+=s[i],_=this.__charBounds[h][i],0===L?(n+=g*(_.kernedWidth-_.width),L+=_.width):L+=_.kernedWidth,a&&!S&&this._reSpaceAndTab.test(s[i])&&(S=!0),S||(u=u||this.getCompleteStyleDeclaration(h,i),m=this.getCompleteStyleDeclaration(h,i+1),S=x(u,m,!1)),S&&(d?(e.save(),e.translate(_.renderLeft,_.renderTop),e.rotate(_.angle),this._renderChar(t,e,h,i,T,-L/2,0),e.restore()):(y=n,this._renderChar(t,e,h,i,T,y,r)),T="",u=m,n+=g*L,L=0);e.restore()}_applyPatternGradientTransformText(t){const e=this.width+this.strokeWidth,i=this.height+this.strokeWidth,s=u({width:e,height:i}),n=s.getContext("2d");return s.width=e,s.height=i,n.beginPath(),n.moveTo(0,0),n.lineTo(e,0),n.lineTo(e,i),n.lineTo(0,i),n.closePath(),n.translate(e/2,i/2),n.fillStyle=t.toLive(n),this._applyPatternGradientTransform(n,t),n.fill(),n.createPattern(s,"no-repeat")}handleFiller(t,e,i){let s,n;return b(i)?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?(s=-this.width/2,n=-this.height/2,t.translate(s,n),t[e]=this._applyPatternGradientTransformText(i),{offsetX:s,offsetY:n}):(t[e]=i.toLive(t),this._applyPatternGradientTransform(t,i)):(t[e]=i,{offsetX:0,offsetY:0})}_setStrokeStyles(t,e){let{stroke:i,strokeWidth:s}=e;return t.lineWidth=s,t.lineCap=this.strokeLineCap,t.lineDashOffset=this.strokeDashOffset,t.lineJoin=this.strokeLineJoin,t.miterLimit=this.strokeMiterLimit,this.handleFiller(t,"strokeStyle",i)}_setFillStyles(t,e){let{fill:i}=e;return this.handleFiller(t,"fillStyle",i)}_renderChar(t,e,i,s,n,r,h){const o=this._getStyleDeclaration(i,s),l=this.getCompleteStyleDeclaration(i,s),a="fillText"===t&&l.fill,d="strokeText"===t&&l.stroke&&l.strokeWidth;if(d||a){if(e.save(),e.font=this._getFontDeclaration(l),o.textBackgroundColor&&this._removeShadow(e),o.deltaY&&(h+=o.deltaY),a){const t=this._setFillStyles(e,l);e.fillText(n,r-t.offsetX,h-t.offsetY)}if(d){const t=this._setStrokeStyles(e,l);e.strokeText(n,r-t.offsetX,h-t.offsetY)}e.restore()}}setSuperscript(t,e){this._setScript(t,e,this.superscript)}setSubscript(t,e){this._setScript(t,e,this.subscript)}_setScript(t,e,i){const s=this.get2DCursorLocation(t,!0),n=this.getValueOfPropertyAt(s.lineIndex,s.charIndex,"fontSize"),r=this.getValueOfPropertyAt(s.lineIndex,s.charIndex,"deltaY"),h={fontSize:n*i.size,deltaY:r+n*i.baseline};this.setSelectionStyles(h,t,e)}_getLineLeftOffset(t){const e=this.getLineWidth(t),n=this.width-e,r=this.textAlign,h=this.direction,o=this.isEndOfWrapping(t);let a=0;return r===k||r===F&&!o||r===W&&!o||r===z&&!o?0:(r===s&&(a=n/2),r===i&&(a=n),r===F&&(a=n/2),r===W&&(a=n),"rtl"===h&&(r===i||r===k||r===W?a=0:r===l||r===z?a=-n:r!==s&&r!==F||(a=-n/2)),a)}_clearCache(){this._forceClearCache=!1,this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]}getLineWidth(t){if(void 0!==this.__lineWidths[t])return this.__lineWidths[t];const{width:e}=this.measureLine(t);return this.__lineWidths[t]=e,e}_getWidthOfCharSpacing(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0}getValueOfPropertyAt(t,e,i){var s;return null!==(s=this._getStyleDeclaration(t,e)[i])&&void 0!==s?s:this[i]}_renderTextDecoration(t,e){if(!this[e]&&!this.styleHas(e))return;let i=this._getTopOffset();const s=this._getLeftOffset(),n=this.path,r=this._getWidthOfCharSpacing(),h="linethrough"===e?.5:"overline"===e?1:0,l=this.offsets[e];for(let a=0,d=this._textLines.length;a<d;a++){const d=this.getHeightOfLine(a);if(!this[e]&&!this.styleHas(e,a)){i+=d;continue}const c=this._textLines[a],f=d/this.lineHeight,g=this._getLineLeftOffset(a);let p=0,u=0,m=this.getValueOfPropertyAt(a,0,e),_=this.getValueOfPropertyAt(a,0,o),x=this.getValueOfPropertyAt(a,0,D),S=m,y=_,T=x;const L=i+f*(1-this._fontSizeFraction);let w=this.getHeightOfChar(a,0),v=this.getValueOfPropertyAt(a,0,"deltaY");for(let i=0,r=c.length;i<r;i++){const r=this.__charBounds[a][i];S=this.getValueOfPropertyAt(a,i,e),y=this.getValueOfPropertyAt(a,i,o),T=this.getValueOfPropertyAt(a,i,D);const d=this.getHeightOfChar(a,i),c=this.getValueOfPropertyAt(a,i,"deltaY");if(n&&S&&y){const e=this.fontSize*T/1e3;t.save(),t.fillStyle=_,t.translate(r.renderLeft,r.renderTop),t.rotate(r.angle),t.fillRect(-r.kernedWidth/2,l*d+c-h*e,r.kernedWidth,e),t.restore()}else if((S!==m||y!==_||d!==w||T!==x||c!==v)&&u>0){const e=this.fontSize*x/1e3;let i=s+g+p;"rtl"===this.direction&&(i=this.width-i-u),m&&_&&x&&(t.fillStyle=_,t.fillRect(i,L+l*w+v-h*e,u,e)),p=r.left,u=r.width,m=S,x=T,_=y,w=d,v=c}else u+=r.kernedWidth}let O=s+g+p;"rtl"===this.direction&&(O=this.width-O-u),t.fillStyle=y;const A=this.fontSize*T/1e3;S&&y&&T&&t.fillRect(O,L+l*w+v-h*A,u-r,A),i+=d}this._removeShadow(t)}_getFontDeclaration(){let{fontFamily:t=this.fontFamily,fontStyle:e=this.fontStyle,fontWeight:i=this.fontWeight,fontSize:s=this.fontSize}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=t.includes("'")||t.includes('"')||t.includes(",")||I.genericFonts.includes(t.toLowerCase())?t:`"${t}"`;return n||t.includes(",")||!(t.toLowerCase().includes("stv")||t.toLowerCase().includes("arabic")||t.toLowerCase().includes("naskh")||t.toLowerCase().includes("kufi"))||(r=`${r}, "Arial Unicode MS", Arial, sans-serif`),[e,i,`${n?this.CACHE_FONT_SIZE:s}px`,r].join(" ")}render(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._forceClearCache&&this.initDimensions(),super.render(t)))}graphemeSplit(t){return p(t)}_splitTextIntoLines(t){const e=t.split(this._reNewline),i=new Array(e.length),s=["\n"];let n=[];for(let t=0;t<e.length;t++)"rtl"===this.direction||this._containsArabicText(e[t])?(i[t]=_(e[t]),console.log(`🔤 BiDi-aware split line ${t}: "${e[t]}" -> [${i[t].join(", ")}]`)):i[t]=this.graphemeSplit(e[t]),n=n.concat(i[t],s);return n.pop(),{_unwrappedLines:i,lines:e,graphemeText:n,graphemeLines:i}}_containsArabicText(t){return/[\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(t)}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{...super.toObject([...A,...t]),styles:S(this.styles,this.text),...this.path?{path:this.path.toObject()}:{}}}set(t,e){const{textLayoutProperties:i}=this.constructor;super.set(t,e);let s=!1,n=!1;if("object"==typeof t)for(const e in t)"path"===e&&this.setPathInfo(),s=s||i.includes(e),n=n||"path"===e;else s=i.includes(t),n="path"===t;return n&&this.setPathInfo(),s&&this.initialized&&(j(this),this.initDimensions(),this.setCoords()),this}complexity(){return 1}static async fromElement(t,e,n){const r=f(t,I.ATTRIBUTE_NAMES,n),{textAnchor:h=l,textDecoration:o="",dx:d=0,dy:c=0,top:g=0,left:p=0,fontSize:u=a,strokeWidth:m=1,..._}={...e,...r},x=new this((t.textContent||"").replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," "),{left:p+d,top:g+c,underline:o.includes("underline"),overline:o.includes("overline"),linethrough:o.includes("line-through"),strokeWidth:0,fontSize:u,..._}),S=x.getScaledHeight()/x.height,y=((x.height+x.strokeWidth)*x.lineHeight-x.height)*S,T=x.getScaledHeight()+y;let L=0;return h===s&&(L=x.getScaledWidth()/2),h===i&&(L=x.getScaledWidth()),x.set({left:x.left-L,top:x.top-(T-x.fontSize*(.07+x._fontSizeFraction))/x.lineHeight,strokeWidth:m}),x}_isFontReady(){if("undefined"==typeof document||!("fonts"in document))return!0;try{return document.fonts.check(`${this.fontSize}px ${this.fontFamily}`)}catch(t){return!0}}_scheduleInitAfterFontLoad(){if("undefined"==typeof document||!("fonts"in document))return;if(this._fontLoadScheduled)return;this._fontLoadScheduled=!0;const t=`${this.fontSize}px ${this.fontFamily}`;document.fonts.load(t).then(()=>{var t;(this._fontLoadScheduled=!1,this.initDimensions(),this.textAlign&&this.textAlign.includes(k))?setTimeout(()=>{var t;this.enlargeSpaces&&this.enlargeSpaces(),null===(t=this.canvas)||void 0===t||t.requestRenderAll()},10):null===(t=this.canvas)||void 0===t||t.requestRenderAll()}).catch(()=>{this._fontLoadScheduled=!1})}forceTextReinitialization(){console.log("🔄 Force reinitializing text object"),this._clearCache(),this.dirty=!0,this._splitText(),this.initDimensions(),this.textAlign&&this.textAlign.includes(k)&&setTimeout(()=>{var t;this.__charBounds&&this.__charBounds.length>0&&this.enlargeSpaces&&(this.enlargeSpaces(),null===(t=this.canvas)||void 0===t||t.requestRenderAll())},10)}static fromObject(t){return this._fromObject({...t,styles:y(t.styles||{},t.text)},{extraParam:"text"}).then(t=>{t.initialized=!0,t._clearCache&&t._clearCache(),t.dirty=!0;const e=`${t.fontSize}px ${t.fontFamily}`;return"undefined"!=typeof document&&"fonts"in document&&"Arial"!==t.fontFamily&&"Times New Roman"!==t.fontFamily?document.fonts.load(e).then(()=>{var i;console.log(`🔤 Font loaded for JSON object: ${e}`),t.initialized=!0;if(null===(i=t.fontFamily)||void 0===i?void 0:i.toLowerCase().includes("stv")){console.log("🔤 STV font detected, using enhanced reinitialization"),t._browserWrapCache=null,t._lastDimensionState=null,t._browserWrapInitialized=!1,console.log("🔤 STV font: Cleared all cached states for fresh initialization"),t._usingBrowserWrapping=!0,console.log("🔤 STV font: Forcing browser wrapping flag during JSON load");const e=i=>{t.forceTextReinitialization?t.forceTextReinitialization():t.initDimensions(),t.width<50&&i<3&&(console.log(`🔤 STV font width still ${t.width}px, retrying in ${100*i}ms (attempt ${i+1}/3)`),setTimeout(()=>e(i+1),100*i))};e(0)}else t.forceTextReinitialization?(console.log("🔤 Using Textbox specialized reinitialization"),t.forceTextReinitialization()):t.initDimensions();return t}).catch(()=>(console.warn(`⚠️ Font loading failed for ${e}, proceeding with fallback`),t.initialized=!0,t.forceTextReinitialization?t.forceTextReinitialization():t.initDimensions(),t)):(t.initialized=!0,t.forceTextReinitialization?(console.log("🔤 Using Textbox specialized reinitialization for standard font"),t.forceTextReinitialization()):t.initDimensions(),t)})}}t(I,"textLayoutProperties",O),t(I,"cacheProperties",[...B,...A]),t(I,"ownDefaults",C),t(I,"type","Text"),t(I,"genericFonts",["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]),t(I,"ATTRIBUTE_NAMES",c.concat("x","y","dx","dy","font-family","font-style","font-weight","font-size","letter-spacing","text-decoration","text-anchor")),v(I,[w]),g.setClass(I),g.setSVGClass(I);export{I as FabricText};
2
2
  //# sourceMappingURL=Text.min.mjs.map