From c90f814d157fbea70cc626a5e7323d5a86fdb59b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alexa=20Valentov=C3=A1?= <git@imaniti.org>
Date: Fri, 13 Jun 2025 00:29:03 +0200
Subject: [PATCH] hooks

---
 .../views/angle_person_event_left/canvas.js   | 10 +++-
 .../views/angle_person_event_right/canvas.js  | 10 +++-
 frontend/src/views/avatar/canvas.js           | 10 +++-
 .../views/back_in_full_force_banner/canvas.js | 10 +++-
 .../back_in_full_force_tour_social/canvas.js  | 10 +++-
 .../canvas.js                                 | 10 +++-
 .../canvas.js                                 | 10 +++-
 .../src/views/base_person_event/canvas.js     | 10 +++-
 .../src/views/basic_photo_banner/canvas.js    | 10 +++-
 frontend/src/views/event_poster/canvas.js     | 10 +++-
 frontend/src/views/facebook_survey/canvas.js  | 10 +++-
 .../src/views/make_a_wish_banner/canvas.js    | 10 +++-
 .../views/make_a_wish_tour_social/canvas.js   | 10 +++-
 .../make_a_wish_tour_social_A2/canvas.js      | 10 +++-
 .../make_a_wish_tour_social_wide/canvas.js    | 10 +++-
 .../nakopneme_basic_photo_banner/canvas.js    | 58 ++++++++++---------
 .../nakopneme_basic_photo_banner_fz/canvas.js | 17 ++++--
 .../views/newspaper_quote_bottom/canvas.js    | 10 +++-
 .../people_banner_with_custom_text/canvas.js  | 10 +++-
 .../canvas.js                                 | 10 +++-
 frontend/src/views/poster/canvas.js           | 10 +++-
 frontend/src/views/reel/canvas.js             | 10 +++-
 frontend/src/views/regional_success/canvas.js | 10 +++-
 .../src/views/right_person_event/canvas.js    | 10 +++-
 24 files changed, 219 insertions(+), 76 deletions(-)

diff --git a/frontend/src/views/angle_person_event_left/canvas.js b/frontend/src/views/angle_person_event_left/canvas.js
index a9d9e9d..61a79ed 100644
--- a/frontend/src/views/angle_person_event_left/canvas.js
+++ b/frontend/src/views/angle_person_event_left/canvas.js
@@ -78,9 +78,15 @@ const redraw = async (canvas, options) => {
 
     personImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/angle_person_event_right/canvas.js b/frontend/src/views/angle_person_event_right/canvas.js
index 25af41b..6f30ad3 100644
--- a/frontend/src/views/angle_person_event_right/canvas.js
+++ b/frontend/src/views/angle_person_event_right/canvas.js
@@ -78,9 +78,15 @@ const redraw = async (canvas, options) => {
 
     personImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/avatar/canvas.js b/frontend/src/views/avatar/canvas.js
index bdd45b6..8f8090c 100644
--- a/frontend/src/views/avatar/canvas.js
+++ b/frontend/src/views/avatar/canvas.js
@@ -47,9 +47,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/back_in_full_force_banner/canvas.js b/frontend/src/views/back_in_full_force_banner/canvas.js
index abdce93..4bc3f3b 100644
--- a/frontend/src/views/back_in_full_force_banner/canvas.js
+++ b/frontend/src/views/back_in_full_force_banner/canvas.js
@@ -238,9 +238,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
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 e1f89de..ed24c34 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
@@ -428,9 +428,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
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 93cb61b..6cd498c 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
@@ -428,9 +428,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/back_in_full_force_tour_social_wide/canvas.js b/frontend/src/views/back_in_full_force_tour_social_wide/canvas.js
index bec432d..265e455 100644
--- a/frontend/src/views/back_in_full_force_tour_social_wide/canvas.js
+++ b/frontend/src/views/back_in_full_force_tour_social_wide/canvas.js
@@ -418,9 +418,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/base_person_event/canvas.js b/frontend/src/views/base_person_event/canvas.js
index 2c6ebeb..de8019f 100644
--- a/frontend/src/views/base_person_event/canvas.js
+++ b/frontend/src/views/base_person_event/canvas.js
@@ -78,9 +78,15 @@ const redraw = async (canvas, options) => {
 
     personImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/basic_photo_banner/canvas.js b/frontend/src/views/basic_photo_banner/canvas.js
index 9e6738c..17f1c6f 100644
--- a/frontend/src/views/basic_photo_banner/canvas.js
+++ b/frontend/src/views/basic_photo_banner/canvas.js
@@ -350,9 +350,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/event_poster/canvas.js b/frontend/src/views/event_poster/canvas.js
index 834da79..8c2dbc5 100644
--- a/frontend/src/views/event_poster/canvas.js
+++ b/frontend/src/views/event_poster/canvas.js
@@ -96,9 +96,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/facebook_survey/canvas.js b/frontend/src/views/facebook_survey/canvas.js
index 5fcb3a3..9994387 100644
--- a/frontend/src/views/facebook_survey/canvas.js
+++ b/frontend/src/views/facebook_survey/canvas.js
@@ -365,9 +365,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/make_a_wish_banner/canvas.js b/frontend/src/views/make_a_wish_banner/canvas.js
index 6cfe2a3..9c67d29 100644
--- a/frontend/src/views/make_a_wish_banner/canvas.js
+++ b/frontend/src/views/make_a_wish_banner/canvas.js
@@ -306,9 +306,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
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 eea94ba..1ca93ae 100644
--- a/frontend/src/views/make_a_wish_tour_social/canvas.js
+++ b/frontend/src/views/make_a_wish_tour_social/canvas.js
@@ -420,9 +420,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
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 06affff..51d97d5 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
@@ -444,9 +444,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/make_a_wish_tour_social_wide/canvas.js b/frontend/src/views/make_a_wish_tour_social_wide/canvas.js
index 348f78d..5bd330f 100644
--- a/frontend/src/views/make_a_wish_tour_social_wide/canvas.js
+++ b/frontend/src/views/make_a_wish_tour_social_wide/canvas.js
@@ -414,9 +414,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/nakopneme_basic_photo_banner/canvas.js b/frontend/src/views/nakopneme_basic_photo_banner/canvas.js
index c0703dc..794267c 100644
--- a/frontend/src/views/nakopneme_basic_photo_banner/canvas.js
+++ b/frontend/src/views/nakopneme_basic_photo_banner/canvas.js
@@ -7,8 +7,8 @@ import {
   getSingleLineTextBoxWidth,
 } from "../../components/canvas/utils";
 import { PaddedHighlightingTextbox } from "../../components/canvas/textbox";
-import leftQuoteImage from '../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_left.png';
-import rightQuoteImage from '../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_right.png';
+import leftQuoteImage from "../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_left.png";
+import rightQuoteImage from "../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_right.png";
 
 let mainTextBox = null;
 let mainTextBoxBackground = null;
@@ -149,14 +149,12 @@ const redraw = async (canvas, options) => {
     await imageLoadPromiseR;
 
     rightQuote = new fabric.Image(rightQuote, {
-      left: getSingleLineTextBoxWidth(
-        mainTextBox.textLines[mainTextBox.textLines.length - 1],
-        mainTextSize,
-        "Bebas Neue"
-      ) + (
-        (mainTextBox.textLines.length == 1) ?
-        260 : 170
-      ),
+      left:
+        getSingleLineTextBoxWidth(
+          mainTextBox.textLines[mainTextBox.textLines.length - 1],
+          mainTextSize,
+          "Bebas Neue",
+        ) + (mainTextBox.textLines.length == 1 ? 260 : 170),
       top: mainTextBox.top + mainTextBox.height - mainTextSize + 6,
       zIndex: 20,
       selectable: false,
@@ -189,19 +187,22 @@ const redraw = async (canvas, options) => {
         zIndex: 10,
       });
 
-      personNameText.set('fill', new fabric.Gradient({
-        type: 'linear',
-        coords: {
-          x1: 0,
-          y1: 0,
-          x2: canvas.width * 0.3,
-          y2: 0
-        },
-        colorStops: [
-          { offset: 0, color: '#CF7BCC' },
-          { offset: 1, color: '#FDC801' }
-        ]
-      }));
+      personNameText.set(
+        "fill",
+        new fabric.Gradient({
+          type: "linear",
+          coords: {
+            x1: 0,
+            y1: 0,
+            x2: canvas.width * 0.3,
+            y2: 0,
+          },
+          colorStops: [
+            { offset: 0, color: "#CF7BCC" },
+            { offset: 1, color: "#FDC801" },
+          ],
+        }),
+      );
 
       canvas.add(personNameText);
     }
@@ -330,14 +331,19 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
 
-
     if (mainImage.width >= mainImage.height) {
       mainImage.scaleToHeight(canvas.height);
     } else {
diff --git a/frontend/src/views/nakopneme_basic_photo_banner_fz/canvas.js b/frontend/src/views/nakopneme_basic_photo_banner_fz/canvas.js
index 0bf1bf4..93dd7dc 100644
--- a/frontend/src/views/nakopneme_basic_photo_banner_fz/canvas.js
+++ b/frontend/src/views/nakopneme_basic_photo_banner_fz/canvas.js
@@ -7,8 +7,8 @@ import {
   getSingleLineTextBoxWidth,
 } from "../../components/canvas/utils";
 import { PaddedHighlightingTextbox } from "../../components/canvas/textbox";
-import leftQuoteImage from '../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_left.png';
-import rightQuoteImage from '../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_right.png';
+import leftQuoteImage from "../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_left.png";
+import rightQuoteImage from "../../assets/template/nakopneme_basic_photo_banner/nakopneme_quote_right.png";
 
 let mainTextBox = null;
 let mainTextBoxBackground = null;
@@ -138,7 +138,7 @@ const redraw = async (canvas, options) => {
         colorStops: [
           {
             offset: 0,
-            color: "#ffffff00"
+            color: "#ffffff00",
           },
           {
             offset: 0.5,
@@ -243,14 +243,19 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
 
-
     if (mainImage.width >= mainImage.height) {
       mainImage.scaleToHeight(canvas.height);
     } else {
diff --git a/frontend/src/views/newspaper_quote_bottom/canvas.js b/frontend/src/views/newspaper_quote_bottom/canvas.js
index 524cfd6..bcc0490 100644
--- a/frontend/src/views/newspaper_quote_bottom/canvas.js
+++ b/frontend/src/views/newspaper_quote_bottom/canvas.js
@@ -406,9 +406,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/people_banner_with_custom_text/canvas.js b/frontend/src/views/people_banner_with_custom_text/canvas.js
index ecc1ccd..b446baf 100644
--- a/frontend/src/views/people_banner_with_custom_text/canvas.js
+++ b/frontend/src/views/people_banner_with_custom_text/canvas.js
@@ -77,9 +77,15 @@ const redraw = async (canvas, options) => {
 
     personImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/people_banner_with_predefined_text/canvas.js b/frontend/src/views/people_banner_with_predefined_text/canvas.js
index 25f960b..02c76ca 100644
--- a/frontend/src/views/people_banner_with_predefined_text/canvas.js
+++ b/frontend/src/views/people_banner_with_predefined_text/canvas.js
@@ -77,9 +77,15 @@ const redraw = async (canvas, options) => {
 
     personImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/poster/canvas.js b/frontend/src/views/poster/canvas.js
index 66f85d3..46b57f0 100644
--- a/frontend/src/views/poster/canvas.js
+++ b/frontend/src/views/poster/canvas.js
@@ -125,9 +125,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/reel/canvas.js b/frontend/src/views/reel/canvas.js
index 0f202fa..3bf6bd4 100644
--- a/frontend/src/views/reel/canvas.js
+++ b/frontend/src/views/reel/canvas.js
@@ -62,9 +62,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/regional_success/canvas.js b/frontend/src/views/regional_success/canvas.js
index c2eeaec..b78dc46 100644
--- a/frontend/src/views/regional_success/canvas.js
+++ b/frontend/src/views/regional_success/canvas.js
@@ -229,9 +229,15 @@ const redraw = async (canvas, options) => {
 
     mainImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
diff --git a/frontend/src/views/right_person_event/canvas.js b/frontend/src/views/right_person_event/canvas.js
index f13d4dd..8bd8a3c 100644
--- a/frontend/src/views/right_person_event/canvas.js
+++ b/frontend/src/views/right_person_event/canvas.js
@@ -78,9 +78,15 @@ const redraw = async (canvas, options) => {
 
     personImage.setControlsVisibility({
       // corners (uniform scale)
-      tl: true, tr: true, bl: true, br: true,
+      tl: true,
+      tr: true,
+      bl: true,
+      br: true,
       // mids (scale X/Y independently)
-      ml: true, mr: true, mt: true, mb: true,
+      ml: true,
+      mr: true,
+      mt: true,
+      mb: true,
       // rotation
       mtr: false,
     });
-- 
GitLab