From cf5b61ad95eda4a233913c86554a98bdaed37ae3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alexa=20Valentov=C3=A1?= <git@imaniti.org>
Date: Tue, 15 Apr 2025 12:22:41 +0200
Subject: [PATCH] update version, update templates

---
 VERSION                                       |   2 +-
 frontend/src/templates.js                     |  16 +--
 .../back_in_full_force_tour_social/canvas.js  | 107 +++++++-------
 .../canvas.js                                 | 111 +++++++-------
 .../views/make_a_wish_tour_social/canvas.js   | 107 +++++++-------
 .../make_a_wish_tour_social_A2/canvas.js      | 135 +++++++++++-------
 6 files changed, 253 insertions(+), 225 deletions(-)

diff --git a/VERSION b/VERSION
index ef0f38a..b8e248f 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.19.0
+2.19.1
diff --git a/frontend/src/templates.js b/frontend/src/templates.js
index be91b76..86227e2 100644
--- a/frontend/src/templates.js
+++ b/frontend/src/templates.js
@@ -68,21 +68,21 @@ const TEMPLATES = {
     },
   },
   make_a_wish_tour_social_a2: {
-    name: "A2 - Máte přání tour banner na soc. sítě",
+    name: "A2 - Máte přání tour plakát",
     image: makeawishTourSocialImage,
     path: "/make-a-wish-tour-social-a2",
     component: () => import("./views/make_a_wish_tour_social_A2/MakeAWishTourSocialA2.vue"),
     meta: {
-      title: "A2 - Máte přání tour banner na soc. sítě",
+      title: "A2 - Máte přání tour plakát",
     },
   },
   make_a_wish_tour_social_wide: {
-    name: "Široký banner - Máte přání tour banner na soc. sítě",
+    name: "Široký banner - Máte přání tour",
     image: makeawishTourSocialImage,
     path: "/make-a-wish-tour-social-wide",
     component: () => import("./views/make_a_wish_tour_social_wide/MakeAWishTourSocialWide.vue"),
     meta: {
-      title: "Široký banner - Máte přání tour banner na soc. sítě",
+      title: "Široký banner - Máte přání tour",
     },
   },
   back_in_full_force_banner: {
@@ -104,21 +104,21 @@ const TEMPLATES = {
     },
   },
   back_in_full_force_tour_social_A2: {
-    name: "A2 - Zpátky v plné síle tour banner na soc. sítě",
+    name: "A2 - Zpátky v plné síle tour plakát",
     image: backInFullForceTourSocialImage,
     path: "/back-in-full-force-tour-social-a2",
     component: () => import("./views/back_in_full_force_tour_social_A2/BackInFullForceTourSocialA2.vue"),
     meta: {
-      title: "A2 - Zpátky v plné síle tour banner na soc. sítě",
+      title: "A2 - Zpátky v plné síle tour plakát",
     },
   },
   back_in_full_force_tour_social_wide: {
-    name: "Široký banner - Zpátky v plné síle tour na soc. sítě",
+    name: "Široký banner - Zpátky v plné síle",
     image: backInFullForceTourSocialImage,
     path: "/back-in-full-force-tour-social-wide",
     component: () => import("./views/back_in_full_force_tour_social_wide/BackInFullForceTourSocialWide.vue"),
     meta: {
-      title: "Široký banner - Zpátky v plné síle tour na soc. sítě",
+      title: "Široký banner - Zpátky v plné síle",
     },
   },
   urgent_text_banner: {
diff --git a/frontend/src/views/back_in_full_force_tour_social/canvas.js b/frontend/src/views/back_in_full_force_tour_social/canvas.js
index b3fd775..50862e7 100644
--- a/frontend/src/views/back_in_full_force_tour_social/canvas.js
+++ b/frontend/src/views/back_in_full_force_tour_social/canvas.js
@@ -70,7 +70,7 @@ const redraw = async (canvas, options) => {
   const attendeesTextBoxMarginBottom = Math.ceil(canvas.height * 0.1) + Math.ceil(canvas.height * 0.11);
 
   const mainTextSize = Math.ceil(canvas.height * 0.185);
-  const mainTextLineHeight = 1;
+  const mainTextLineHeight = 0.8;
 
   const dateTextSize = Math.ceil(canvas.height * 0.055);
   const timeTextSize = Math.ceil(canvas.height * 0.05);
@@ -180,56 +180,6 @@ const redraw = async (canvas, options) => {
     /* END Time text render */
   }
 
-  if (options.locationText !== null) {
-    /* BEGIN Location text render */
-
-    const locationTextWidth = canvas.width - textMarginLeft - textMarginRight;
-
-    const highlightedData = transformHighlightedText(
-      options.locationText,
-      locationTextSize,
-      locationTextWidth,
-      "Bebas Neue",
-      options.colors.highlightedText.value,
-      options.colors.highlight.value,
-      { padWhenDiacritics: false, invertHighlight: true },
-    );
-
-    locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, {
-      width: canvas.width,
-      left: 0,
-      textAlign: "right",
-      fontFamily: "Bebas Neue",
-      fontSize: locationTextSize,
-      fill: options.colors.baseText.value,
-      styles: highlightedData.styles,
-      lineHeight: locationTextLineHeight,
-      selectable: false,
-      highlightPadding: canvas.height * 0.003,
-      zIndex: 20,
-    });
-
-    checkTextBoxHeight(locationTextBox, 2);
-
-    canvas.add(locationTextBox);
-
-    canvas.renderAll();
-
-    const locationTextBoxTop =
-      canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1));
-
-    locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom;
-
-    const locationTextBoxLeft =
-      canvas.width - locationTextBox.width - textMarginRight;
-
-    locationTextBox.left = locationTextBoxLeft;
-
-    canvas.renderAll();
-
-    /* END Location text render */
-  }
-
   if (options.attendeesText !== null) {
     /* BEGIN Attendees text render */
 
@@ -339,12 +289,12 @@ const redraw = async (canvas, options) => {
       zIndex: 20,
     });
 
-    checkTextBoxHeight(mainTextBox, 1);
+    checkTextBoxHeight(mainTextBox, 2);
 
     canvas.add(mainTextBox);
 
     const mainTextBoxTop =
-      canvas.height - mainTextBox.height - mainTextMarginBottom;
+      canvas.height - mainTextBox.height - mainTextMarginBottom + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight);
 
     mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom;
 
@@ -356,6 +306,57 @@ const redraw = async (canvas, options) => {
     canvas.renderAll();
 
     /* END Main text render */
+
+    if (options.locationText !== null) {
+      /* BEGIN Location text render */
+  
+      const locationTextWidth = canvas.width - textMarginLeft - textMarginRight;
+  
+      const highlightedData = transformHighlightedText(
+        options.locationText,
+        locationTextSize,
+        locationTextWidth,
+        "Bebas Neue",
+        options.colors.highlightedText.value,
+        options.colors.highlight.value,
+        { padWhenDiacritics: false, invertHighlight: true },
+      );
+  
+      locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, {
+        width: canvas.width,
+        left: 0,
+        textAlign: "right",
+        fontFamily: "Bebas Neue",
+        fontSize: locationTextSize,
+        fill: options.colors.baseText.value,
+        styles: highlightedData.styles,
+        lineHeight: locationTextLineHeight,
+        selectable: false,
+        highlightPadding: canvas.height * 0.003,
+        zIndex: 20,
+      });
+  
+      checkTextBoxHeight(locationTextBox, 2);
+  
+      canvas.add(locationTextBox);
+  
+      canvas.renderAll();
+  
+      const locationTextBoxTop =
+        canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1))
+        + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight);
+  
+      locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom;
+  
+      const locationTextBoxLeft =
+        canvas.width - locationTextBox.width - textMarginRight;
+  
+      locationTextBox.left = locationTextBoxLeft;
+  
+      canvas.renderAll();
+  
+      /* END Location text render */
+    }
   }
 
   /* BEGIN Contracted by render */
diff --git a/frontend/src/views/back_in_full_force_tour_social_A2/canvas.js b/frontend/src/views/back_in_full_force_tour_social_A2/canvas.js
index 4062c73..cc5fe2d 100644
--- a/frontend/src/views/back_in_full_force_tour_social_A2/canvas.js
+++ b/frontend/src/views/back_in_full_force_tour_social_A2/canvas.js
@@ -67,10 +67,10 @@ const redraw = async (canvas, options) => {
   const dateTextMarginBottom = Math.ceil(canvas.height * 0.605) + Math.ceil(canvas.height * 0.305);
   const timeTextBoxMarginBottom = Math.ceil(canvas.height * 0.535) + Math.ceil(canvas.height * 0.312);
   const locationTextBoxMarginBottom = Math.ceil(canvas.height * 0.27) + Math.ceil(canvas.height * 0.12);
-  const attendeesTextBoxMarginBottom = Math.ceil(canvas.height * 0.09) + Math.ceil(canvas.height * 0.065);
+  const attendeesTextBoxMarginBottom = Math.ceil(canvas.height * 0.09) + Math.ceil(canvas.height * 0.075);
 
   const mainTextSize = Math.ceil(canvas.height * 0.175);
-  const mainTextLineHeight = 1;
+  const mainTextLineHeight = 0.8;
 
   const dateTextSize = Math.ceil(canvas.height * 0.046);
   const timeTextSize = Math.ceil(canvas.height * 0.04);
@@ -180,56 +180,6 @@ const redraw = async (canvas, options) => {
     /* END Time text render */
   }
 
-  if (options.locationText !== null) {
-    /* BEGIN Location text render */
-
-    const locationTextWidth = canvas.width - textMarginLeft - textMarginRight;
-
-    const highlightedData = transformHighlightedText(
-      options.locationText,
-      locationTextSize,
-      locationTextWidth,
-      "Bebas Neue",
-      options.colors.highlightedText.value,
-      options.colors.highlight.value,
-      { padWhenDiacritics: false, invertHighlight: true },
-    );
-
-    locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, {
-      width: canvas.width,
-      left: 0,
-      textAlign: "right",
-      fontFamily: "Bebas Neue",
-      fontSize: locationTextSize,
-      fill: options.colors.baseText.value,
-      styles: highlightedData.styles,
-      lineHeight: locationTextLineHeight,
-      selectable: false,
-      highlightPadding: canvas.height * 0.003,
-      zIndex: 20,
-    });
-
-    checkTextBoxHeight(locationTextBox, 2);
-
-    canvas.add(locationTextBox);
-
-    canvas.renderAll();
-
-    const locationTextBoxTop =
-      canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1));
-
-    locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom;
-
-    const locationTextBoxLeft =
-      canvas.width - locationTextBox.width - textMarginRight;
-
-    locationTextBox.left = locationTextBoxLeft;
-
-    canvas.renderAll();
-
-    /* END Location text render */
-  }
-
   if (options.attendeesText !== null) {
     /* BEGIN Attendees text render */
 
@@ -297,7 +247,7 @@ const redraw = async (canvas, options) => {
 
       backgroundImage = new fabric.Image(backgroundImage, {
         top: 0,
-        left: -50,
+        left: 0,
         zIndex: 10,
         selectable: false,
       });
@@ -339,12 +289,12 @@ const redraw = async (canvas, options) => {
       zIndex: 20,
     });
 
-    checkTextBoxHeight(mainTextBox, 1);
+    checkTextBoxHeight(mainTextBox, 2);
 
     canvas.add(mainTextBox);
 
     const mainTextBoxTop =
-      canvas.height - mainTextBox.height - mainTextMarginBottom;
+      canvas.height - mainTextBox.height - mainTextMarginBottom + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight);
 
     mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom;
 
@@ -356,6 +306,57 @@ const redraw = async (canvas, options) => {
     canvas.renderAll();
 
     /* END Main text render */
+
+    if (options.locationText !== null) {
+      /* BEGIN Location text render */
+  
+      const locationTextWidth = canvas.width - textMarginLeft - textMarginRight;
+  
+      const highlightedData = transformHighlightedText(
+        options.locationText,
+        locationTextSize,
+        locationTextWidth,
+        "Bebas Neue",
+        options.colors.highlightedText.value,
+        options.colors.highlight.value,
+        { padWhenDiacritics: false, invertHighlight: true },
+      );
+  
+      locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, {
+        width: canvas.width,
+        left: 0,
+        textAlign: "right",
+        fontFamily: "Bebas Neue",
+        fontSize: locationTextSize,
+        fill: options.colors.baseText.value,
+        styles: highlightedData.styles,
+        lineHeight: locationTextLineHeight,
+        selectable: false,
+        highlightPadding: canvas.height * 0.003,
+        zIndex: 20,
+      });
+  
+      checkTextBoxHeight(locationTextBox, 2);
+  
+      canvas.add(locationTextBox);
+  
+      canvas.renderAll();
+  
+      const locationTextBoxTop =
+        canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1))
+        + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight);
+  
+      locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom;
+  
+      const locationTextBoxLeft =
+        canvas.width - locationTextBox.width - textMarginRight;
+  
+      locationTextBox.left = locationTextBoxLeft;
+  
+      canvas.renderAll();
+  
+      /* END Location text render */
+    }
   }
 
   /* BEGIN Contracted by render */
diff --git a/frontend/src/views/make_a_wish_tour_social/canvas.js b/frontend/src/views/make_a_wish_tour_social/canvas.js
index 83f50ab..32a5bb4 100644
--- a/frontend/src/views/make_a_wish_tour_social/canvas.js
+++ b/frontend/src/views/make_a_wish_tour_social/canvas.js
@@ -70,7 +70,7 @@ const redraw = async (canvas, options) => {
   const attendeesTextBoxMarginBottom = Math.ceil(canvas.height * 0.1);
 
   const mainTextSize = Math.ceil(canvas.height * 0.185);
-  const mainTextLineHeight = 1;
+  const mainTextLineHeight = 0.8;
 
   const dateTextSize = Math.ceil(canvas.height * 0.05);
   const timeTextSize = Math.ceil(canvas.height * 0.04);
@@ -180,56 +180,6 @@ const redraw = async (canvas, options) => {
     /* END Time text render */
   }
 
-  if (options.locationText !== null) {
-    /* BEGIN Location text render */
-
-    const locationTextWidth = canvas.width - textMarginLeft - textMarginRight;
-
-    const highlightedData = transformHighlightedText(
-      options.locationText,
-      locationTextSize,
-      locationTextWidth,
-      "Bebas Neue",
-      options.colors.highlightedText.value,
-      options.colors.highlight.value,
-      { padWhenDiacritics: false, invertHighlight: true },
-    );
-
-    locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, {
-      width: canvas.width,
-      left: 0,
-      textAlign: "right",
-      fontFamily: "Bebas Neue",
-      fontSize: locationTextSize,
-      fill: options.colors.baseText.value,
-      styles: highlightedData.styles,
-      lineHeight: locationTextLineHeight,
-      selectable: false,
-      highlightPadding: canvas.height * 0.003,
-      zIndex: 20,
-    });
-
-    checkTextBoxHeight(locationTextBox, 2);
-
-    canvas.add(locationTextBox);
-
-    canvas.renderAll();
-
-    const locationTextBoxTop =
-      canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1));
-
-    locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom;
-
-    const locationTextBoxLeft =
-      canvas.width - locationTextBox.width - textMarginRight;
-
-    locationTextBox.left = locationTextBoxLeft;
-
-    canvas.renderAll();
-
-    /* END Location text render */
-  }
-
   if (options.attendeesText !== null) {
     /* BEGIN Attendees text render */
 
@@ -339,12 +289,12 @@ const redraw = async (canvas, options) => {
       zIndex: 20,
     });
 
-    checkTextBoxHeight(mainTextBox, 1);
+    checkTextBoxHeight(mainTextBox, 2);
 
     canvas.add(mainTextBox);
 
     const mainTextBoxTop =
-      canvas.height - mainTextBox.height - mainTextMarginBottom;
+      canvas.height - mainTextBox.height - mainTextMarginBottom + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight);
 
     mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom;
 
@@ -356,6 +306,57 @@ const redraw = async (canvas, options) => {
     canvas.renderAll();
 
     /* END Main text render */
+
+    if (options.locationText !== null) {
+      /* BEGIN Location text render */
+  
+      const locationTextWidth = canvas.width - textMarginLeft - textMarginRight;
+  
+      const highlightedData = transformHighlightedText(
+        options.locationText,
+        locationTextSize,
+        locationTextWidth,
+        "Bebas Neue",
+        options.colors.highlightedText.value,
+        options.colors.highlight.value,
+        { padWhenDiacritics: false, invertHighlight: true },
+      );
+  
+      locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, {
+        width: canvas.width,
+        left: 0,
+        textAlign: "right",
+        fontFamily: "Bebas Neue",
+        fontSize: locationTextSize,
+        fill: options.colors.baseText.value,
+        styles: highlightedData.styles,
+        lineHeight: locationTextLineHeight,
+        selectable: false,
+        highlightPadding: canvas.height * 0.003,
+        zIndex: 20,
+      });
+  
+      checkTextBoxHeight(locationTextBox, 2);
+  
+      canvas.add(locationTextBox);
+  
+      canvas.renderAll();
+  
+      const locationTextBoxTop =
+        canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1))
+        + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight);
+  
+      locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom;
+  
+      const locationTextBoxLeft =
+        canvas.width - locationTextBox.width - textMarginRight;
+  
+      locationTextBox.left = locationTextBoxLeft;
+  
+      canvas.renderAll();
+  
+      /* END Location text render */
+    }
   }
 
   /* BEGIN Contracted by render */
diff --git a/frontend/src/views/make_a_wish_tour_social_A2/canvas.js b/frontend/src/views/make_a_wish_tour_social_A2/canvas.js
index 4a43671..968d490 100644
--- a/frontend/src/views/make_a_wish_tour_social_A2/canvas.js
+++ b/frontend/src/views/make_a_wish_tour_social_A2/canvas.js
@@ -69,8 +69,8 @@ const redraw = async (canvas, options) => {
   const locationTextBoxMarginBottom = Math.ceil(canvas.height * 0.27);
   const attendeesTextBoxMarginBottom = Math.ceil(canvas.height * 0.09);
 
-  const mainTextSize = Math.ceil(canvas.height * 0.175);
-  const mainTextLineHeight = 1;
+  let mainTextSize = Math.ceil(canvas.height * 0.175);
+  const mainTextLineHeight = 0.8;
 
   const dateTextSize = Math.ceil(canvas.height * 0.046);
   const timeTextSize = Math.ceil(canvas.height * 0.04);
@@ -180,56 +180,6 @@ const redraw = async (canvas, options) => {
     /* END Time text render */
   }
 
-  if (options.locationText !== null) {
-    /* BEGIN Location text render */
-
-    const locationTextWidth = canvas.width - textMarginLeft - textMarginRight;
-
-    const highlightedData = transformHighlightedText(
-      options.locationText,
-      locationTextSize,
-      locationTextWidth,
-      "Bebas Neue",
-      options.colors.highlightedText.value,
-      options.colors.highlight.value,
-      { padWhenDiacritics: false, invertHighlight: true },
-    );
-
-    locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, {
-      width: canvas.width,
-      left: 0,
-      textAlign: "right",
-      fontFamily: "Bebas Neue",
-      fontSize: locationTextSize,
-      fill: options.colors.baseText.value,
-      styles: highlightedData.styles,
-      lineHeight: locationTextLineHeight,
-      selectable: false,
-      highlightPadding: canvas.height * 0.003,
-      zIndex: 20,
-    });
-
-    checkTextBoxHeight(locationTextBox, 2);
-
-    canvas.add(locationTextBox);
-
-    canvas.renderAll();
-
-    const locationTextBoxTop =
-      canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1));
-
-    locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom;
-
-    const locationTextBoxLeft =
-      canvas.width - locationTextBox.width - textMarginRight;
-
-    locationTextBox.left = locationTextBoxLeft;
-
-    canvas.renderAll();
-
-    /* END Location text render */
-  }
-
   if (options.attendeesText !== null) {
     /* BEGIN Attendees text render */
 
@@ -297,7 +247,7 @@ const redraw = async (canvas, options) => {
 
       backgroundImage = new fabric.Image(backgroundImage, {
         top: 0,
-        left: -50,
+        left: 0,
         zIndex: 10,
         selectable: false,
       });
@@ -339,12 +289,36 @@ const redraw = async (canvas, options) => {
       zIndex: 20,
     });
 
-    checkTextBoxHeight(mainTextBox, 1);
+    checkTextBoxHeight(mainTextBox, 2);
 
     canvas.add(mainTextBox);
 
+    if (mainTextBox._textLines.length == 2) {
+      canvas.remove(mainTextBox);
+
+      mainTextSize = mainTextSize * 0.8;
+
+      mainTextBox = new PaddedHighlightingTextbox(highlightedData.text, {
+        width: canvas.width,
+        left: 0,
+        textAlign: "right",
+        fontFamily: "Bebas Neue",
+        fontSize: mainTextSize,
+        lineHeight: mainTextLineHeight,
+        fill: options.colors.highlight.value,
+        styles: highlightedData.styles,
+        selectable: false,
+        highlightPadding: canvas.height * 0.003,
+        zIndex: 20,
+      });
+
+      checkTextBoxHeight(mainTextBox, 2);
+
+      canvas.add(mainTextBox);
+    }
+    
     const mainTextBoxTop =
-      canvas.height - mainTextBox.height - mainTextMarginBottom;
+      canvas.height - mainTextBox.height - mainTextMarginBottom + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight);
 
     mainTextBox.top = mainTextBoxTop - highlightedData.paddingBottom;
 
@@ -356,6 +330,57 @@ const redraw = async (canvas, options) => {
     canvas.renderAll();
 
     /* END Main text render */
+
+    if (options.locationText !== null) {
+      /* BEGIN Location text render */
+  
+      const locationTextWidth = canvas.width - textMarginLeft - textMarginRight;
+  
+      const highlightedData = transformHighlightedText(
+        options.locationText,
+        locationTextSize,
+        locationTextWidth,
+        "Bebas Neue",
+        options.colors.highlightedText.value,
+        options.colors.highlight.value,
+        { padWhenDiacritics: false, invertHighlight: true },
+      );
+  
+      locationTextBox = new PaddedHighlightingTextbox(highlightedData.text, {
+        width: canvas.width,
+        left: 0,
+        textAlign: "right",
+        fontFamily: "Bebas Neue",
+        fontSize: locationTextSize,
+        fill: options.colors.baseText.value,
+        styles: highlightedData.styles,
+        lineHeight: locationTextLineHeight,
+        selectable: false,
+        highlightPadding: canvas.height * 0.003,
+        zIndex: 20,
+      });
+  
+      checkTextBoxHeight(locationTextBox, 2);
+  
+      canvas.add(locationTextBox);
+  
+      canvas.renderAll();
+  
+      const locationTextBoxTop =
+        canvas.height - locationTextBox.height - locationTextBoxMarginBottom + (locationTextSize * locationTextLineHeight * (locationTextBox.textLines.length - 1))
+        + (mainTextSize * (mainTextBox._textLines.length - 1) * 0.9 * mainTextLineHeight);
+
+      locationTextBox.top = locationTextBoxTop - highlightedData.paddingBottom;
+  
+      const locationTextBoxLeft =
+        canvas.width - locationTextBox.width - textMarginRight;
+  
+      locationTextBox.left = locationTextBoxLeft;
+  
+      canvas.renderAll();
+  
+      /* END Location text render */
+    }
   }
 
   /* BEGIN Contracted by render */
-- 
GitLab