| 
					
				 | 
			
			
				@@ -359,96 +359,94 @@ export const wrapText = (text: string, font: FontString, maxWidth: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // This means its newline so push it 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (words.length === 1 && words[0] === "") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       lines.push(words[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return; // continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      let index = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      while (index < words.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const currentWordWidth = getLineWidth(words[index], font); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let index = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    while (index < words.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const currentWordWidth = getLineWidth(words[index], font); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // Start breaking longer words exceeding max width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (currentWordWidth >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // push current line since the current word exceeds the max width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // so will be appended in next line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          push(currentLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          while (words[index].length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const currentChar = words[index][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const width = charWidth.calculate(currentChar, font); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            currentLineWidthTillNow += width; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            words[index] = words[index].slice(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (currentLineWidthTillNow >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              // only remove last trailing space which we have added when joining words 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (currentLine.slice(-1) === " ") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                currentLine = currentLine.slice(0, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              push(currentLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              currentLine = currentChar; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              currentLineWidthTillNow = width; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (currentLineWidthTillNow === maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              currentLine += currentChar; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // Start breaking longer words exceeding max width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (currentWordWidth >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // push current line since the current word exceeds the max width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // so will be appended in next line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        push(currentLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        while (words[index].length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const currentChar = String.fromCodePoint( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            words[index].codePointAt(0)!, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const width = charWidth.calculate(currentChar, font); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          currentLineWidthTillNow += width; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          words[index] = words[index].slice(currentChar.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (currentLineWidthTillNow >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // only remove last trailing space which we have added when joining words 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (currentLine.slice(-1) === " ") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              currentLine = currentLine.slice(0, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // push current line if appending space exceeds max width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (currentLineWidthTillNow + spaceWidth >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             push(currentLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            currentLine = currentChar; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            currentLineWidthTillNow = width; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // space needs to be appended before next word 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // as currentLine contains chars which couldn't be appended 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // to previous line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            currentLine += " "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            currentLineWidthTillNow += spaceWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            currentLine += currentChar; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          index++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // push current line if appending space exceeds max width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (currentLineWidthTillNow + spaceWidth >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          push(currentLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // Start appending words in a line till max width reached 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          while (currentLineWidthTillNow < maxWidth && index < words.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const word = words[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            currentLineWidthTillNow = getLineWidth(currentLine + word, font); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // space needs to be appended before next word 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // as currentLine contains chars which couldn't be appended 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // to previous line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          currentLine += " "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          currentLineWidthTillNow += spaceWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (currentLineWidthTillNow >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              push(currentLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        index++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Start appending words in a line till max width reached 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        while (currentLineWidthTillNow < maxWidth && index < words.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const word = words[index]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          currentLineWidthTillNow = getLineWidth(currentLine + word, font); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            index++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            currentLine += `${word} `; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // Push the word if appending space exceeds max width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (currentLineWidthTillNow + spaceWidth >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              const word = currentLine.slice(0, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              push(word); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (currentLineWidthTillNow >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            push(currentLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (currentLineWidthTillNow === maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          index++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          currentLine += `${word} `; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // Push the word if appending space exceeds max width 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (currentLineWidthTillNow + spaceWidth >= maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const word = currentLine.slice(0, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            push(word); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (currentLine) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // only remove last trailing space which we have added when joining words 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (currentLine.slice(-1) === " ") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          currentLine = currentLine.slice(0, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (currentLineWidthTillNow === maxWidth) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          currentLine = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          currentLineWidthTillNow = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        push(currentLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (currentLine) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // only remove last trailing space which we have added when joining words 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (currentLine.slice(-1) === " ") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        currentLine = currentLine.slice(0, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      push(currentLine); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return lines.join("\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 |