]> _ Git - fluidbook-toolbox.git/commitdiff
wip #5468 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 4 Nov 2022 19:12:55 +0000 (20:12 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 4 Nov 2022 19:12:55 +0000 (20:12 +0100)
app/SubForms/Link/Base.php
package-lock.json
package.json
resources/linkeditor/js/linkeditor.form.js
resources/linkeditor/js/linkeditor.js
resources/linkeditor/js/linkeditor.links.js
resources/linkeditor/style/form.sass

index 22abc8b763a0bc9a12cf2889c5e44bb6d2b76af6..7cc4eb6bdbd5f5fbc6335e79c6e279b669444117 100644 (file)
@@ -6,6 +6,7 @@ use App\Fields\FluidbookLinkEditor\Depth;
 use App\Fields\FluidbookLinkEditor\LinkType;
 use App\Fields\FluidbookLinkEditor\MultimediaIntegration;
 use Cubist\Backpack\Magic\Fields\Checkbox;
+use Cubist\Backpack\Magic\Fields\Code;
 use Cubist\Backpack\Magic\Fields\FieldGroupEnd;
 use Cubist\Backpack\Magic\Fields\FieldGroupStart;
 use Cubist\Backpack\Magic\Fields\FormSection;
@@ -215,7 +216,7 @@ class Base extends Form
     public function addExtraFields()
     {
         $this->addField('header_extra', FormSection::class, __('Autres paramètres'));
-        $this->addField('extra', Textarea::class);
+        $this->addField('extra', Code::class, '', ['language' => 'properties']);
     }
 
     public function getType()
index 92a94d5d4bca2b1eab921886650ed4ea9b0ea758..299d80d38472fbd66d4d07b939267f0f8dec1167 100644 (file)
@@ -5,6 +5,7 @@
     "packages": {
         "": {
             "dependencies": {
+                "codemirror": "^5",
                 "command-line-args": "^5.2.1",
                 "jquery-contextmenu": "^2.9.2",
                 "jquery.scrollto": "^2.1.3",
@@ -60,9 +61,9 @@
             }
         },
         "node_modules/@babel/compat-data": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
-            "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz",
+            "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==",
             "dev": true,
             "engines": {
                 "node": ">=6.9.0"
             "dev": true
         },
         "node_modules/@babel/generator": {
-            "version": "7.19.6",
-            "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz",
-            "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.1.tgz",
+            "integrity": "sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg==",
             "dev": true,
             "dependencies": {
-                "@babel/types": "^7.19.4",
+                "@babel/types": "^7.20.0",
                 "@jridgewell/gen-mapping": "^0.3.2",
                 "jsesc": "^2.5.1"
             },
             }
         },
         "node_modules/@babel/helper-compilation-targets": {
-            "version": "7.19.3",
-            "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
-            "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
+            "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
             "dev": true,
             "dependencies": {
-                "@babel/compat-data": "^7.19.3",
+                "@babel/compat-data": "^7.20.0",
                 "@babel/helper-validator-option": "^7.18.6",
                 "browserslist": "^4.21.3",
                 "semver": "^6.3.0"
             }
         },
         "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
-            "version": "7.18.9",
-            "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
-            "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz",
+            "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==",
             "dev": true,
             "dependencies": {
-                "@babel/types": "^7.18.9"
+                "@babel/types": "^7.20.0"
             },
             "engines": {
                 "node": ">=6.9.0"
             }
         },
         "node_modules/@babel/helpers": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz",
-            "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz",
+            "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==",
             "dev": true,
             "dependencies": {
                 "@babel/template": "^7.18.10",
-                "@babel/traverse": "^7.19.4",
-                "@babel/types": "^7.19.4"
+                "@babel/traverse": "^7.20.1",
+                "@babel/types": "^7.20.0"
             },
             "engines": {
                 "node": ">=6.9.0"
             }
         },
         "node_modules/@babel/parser": {
-            "version": "7.19.6",
-            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz",
-            "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz",
+            "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==",
             "dev": true,
             "bin": {
                 "parser": "bin/babel-parser.js"
             }
         },
         "node_modules/@babel/plugin-proposal-async-generator-functions": {
-            "version": "7.19.1",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz",
-            "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz",
+            "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==",
             "dev": true,
             "dependencies": {
                 "@babel/helper-environment-visitor": "^7.18.9",
             }
         },
         "node_modules/@babel/plugin-syntax-import-assertions": {
-            "version": "7.18.6",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
-            "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
+            "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
             "dev": true,
             "dependencies": {
-                "@babel/helper-plugin-utils": "^7.18.6"
+                "@babel/helper-plugin-utils": "^7.19.0"
             },
             "engines": {
                 "node": ">=6.9.0"
             }
         },
         "node_modules/@babel/plugin-transform-block-scoping": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz",
-            "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz",
+            "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==",
             "dev": true,
             "dependencies": {
                 "@babel/helper-plugin-utils": "^7.19.0"
             }
         },
         "node_modules/@babel/plugin-transform-destructuring": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz",
-            "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz",
+            "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==",
             "dev": true,
             "dependencies": {
                 "@babel/helper-plugin-utils": "^7.19.0"
             }
         },
         "node_modules/@babel/plugin-transform-parameters": {
-            "version": "7.18.8",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
-            "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz",
+            "integrity": "sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ==",
             "dev": true,
             "dependencies": {
-                "@babel/helper-plugin-utils": "^7.18.6"
+                "@babel/helper-plugin-utils": "^7.19.0"
             },
             "engines": {
                 "node": ">=6.9.0"
             }
         },
         "node_modules/@babel/runtime": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz",
-            "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz",
+            "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==",
             "dev": true,
             "dependencies": {
-                "regenerator-runtime": "^0.13.4"
+                "regenerator-runtime": "^0.13.10"
             },
             "engines": {
                 "node": ">=6.9.0"
             }
         },
         "node_modules/@babel/traverse": {
-            "version": "7.19.6",
-            "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz",
-            "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz",
+            "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==",
             "dev": true,
             "dependencies": {
                 "@babel/code-frame": "^7.18.6",
-                "@babel/generator": "^7.19.6",
+                "@babel/generator": "^7.20.1",
                 "@babel/helper-environment-visitor": "^7.18.9",
                 "@babel/helper-function-name": "^7.19.0",
                 "@babel/helper-hoist-variables": "^7.18.6",
                 "@babel/helper-split-export-declaration": "^7.18.6",
-                "@babel/parser": "^7.19.6",
-                "@babel/types": "^7.19.4",
+                "@babel/parser": "^7.20.1",
+                "@babel/types": "^7.20.0",
                 "debug": "^4.1.0",
                 "globals": "^11.1.0"
             },
             "dev": true
         },
         "node_modules/@babel/types": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz",
-            "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz",
+            "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==",
             "dev": true,
             "dependencies": {
                 "@babel/helper-string-parser": "^7.19.4",
             "dev": true
         },
         "node_modules/@types/node": {
-            "version": "18.11.5",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.5.tgz",
-            "integrity": "sha512-3JRwhbjI+cHLAkUorhf8RnqUbFXajvzX4q6fMn5JwkgtuwfYtRQYI3u4V92vI6NJuTsbBQWWh3RZjFsuevyMGQ==",
+            "version": "18.11.9",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
+            "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==",
             "devOptional": true
         },
         "node_modules/@types/normalize-package-data": {
             }
         },
         "node_modules/@xmldom/xmldom": {
-            "version": "0.7.6",
-            "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz",
-            "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==",
+            "version": "0.7.8",
+            "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.8.tgz",
+            "integrity": "sha512-PrJx38EfpitFhwmILRl37jAdBlsww6AZ6rRVK4QS7T7RHLhX7mSs647sTmgr9GIxe3qjXdesmomEgbgaokrVFg==",
             "dev": true,
             "engines": {
                 "node": ">=10.0.0"
             }
         },
         "node_modules/array.prototype.reduce": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz",
-            "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==",
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz",
+            "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==",
             "dev": true,
             "dependencies": {
                 "call-bind": "^1.0.2",
-                "define-properties": "^1.1.3",
-                "es-abstract": "^1.19.2",
+                "define-properties": "^1.1.4",
+                "es-abstract": "^1.20.4",
                 "es-array-method-boxes-properly": "^1.0.0",
                 "is-string": "^1.0.7"
             },
             }
         },
         "node_modules/babel-loader": {
-            "version": "8.2.5",
-            "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
-            "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
+            "version": "8.3.0",
+            "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
+            "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
             "dev": true,
             "dependencies": {
                 "find-cache-dir": "^3.3.1",
             }
         },
         "node_modules/call-me-maybe": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
-            "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz",
+            "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==",
             "dev": true
         },
         "node_modules/caller-callsite": {
             }
         },
         "node_modules/caniuse-lite": {
-            "version": "1.0.30001425",
-            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz",
-            "integrity": "sha512-/pzFv0OmNG6W0ym80P3NtapU0QEiDS3VuYAZMGoLLqiC7f6FJFe1MjpQDREGApeenD9wloeytmVDj+JLXPC6qw==",
+            "version": "1.0.30001430",
+            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001430.tgz",
+            "integrity": "sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg==",
             "dev": true,
             "funding": [
                 {
                 "node": ">= 4.0"
             }
         },
+        "node_modules/codemirror": {
+            "version": "5.65.9",
+            "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.9.tgz",
+            "integrity": "sha512-19Jox5sAKpusTDgqgKB5dawPpQcY+ipQK7xoEI+MVucEF9qqFaXpeqY1KaoyGBso/wHQoDa4HMMxMjdsS3Zzzw=="
+        },
         "node_modules/collect.js": {
             "version": "4.34.3",
             "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.34.3.tgz",
             }
         },
         "node_modules/decamelize-keys": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
-            "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==",
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+            "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
             "dev": true,
             "dependencies": {
                 "decamelize": "^1.1.0",
             },
             "engines": {
                 "node": ">=0.10.0"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/sindresorhus"
             }
         },
         "node_modules/decamelize-keys/node_modules/map-obj": {
             "dev": true
         },
         "node_modules/sass": {
-            "version": "1.55.0",
-            "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz",
-            "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==",
+            "version": "1.56.0",
+            "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz",
+            "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==",
             "dev": true,
             "dependencies": {
                 "chokidar": ">=3.0.0 <4.0.0",
             }
         },
         "node_modules/svgpath": {
-            "version": "2.5.0",
-            "resolved": "https://registry.npmjs.org/svgpath/-/svgpath-2.5.0.tgz",
-            "integrity": "sha512-o/vohwqjUO9nDAh4rcjE3KaW/v//At8UJu2LJMybXidf5QLQLVA4bxH0//4YCsr+1H4Gw1Wi/Jc62ynzSBYidw==",
-            "dev": true
+            "version": "2.6.0",
+            "resolved": "https://registry.npmjs.org/svgpath/-/svgpath-2.6.0.tgz",
+            "integrity": "sha512-OIWR6bKzXvdXYyO4DK/UWa1VA1JeKq8E+0ug2DG98Y/vOmMpfZNj+TIG988HjfYSqtcy/hFOtZq/n/j5GSESNg==",
+            "dev": true,
+            "funding": {
+                "url": "https://github.com/fontello/svg2ttf?sponsor=1"
+            }
         },
         "node_modules/tapable": {
             "version": "1.1.3",
             }
         },
         "@babel/compat-data": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
-            "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz",
+            "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==",
             "dev": true
         },
         "@babel/core": {
             }
         },
         "@babel/generator": {
-            "version": "7.19.6",
-            "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz",
-            "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.1.tgz",
+            "integrity": "sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg==",
             "dev": true,
             "requires": {
-                "@babel/types": "^7.19.4",
+                "@babel/types": "^7.20.0",
                 "@jridgewell/gen-mapping": "^0.3.2",
                 "jsesc": "^2.5.1"
             },
             }
         },
         "@babel/helper-compilation-targets": {
-            "version": "7.19.3",
-            "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
-            "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz",
+            "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==",
             "dev": true,
             "requires": {
-                "@babel/compat-data": "^7.19.3",
+                "@babel/compat-data": "^7.20.0",
                 "@babel/helper-validator-option": "^7.18.6",
                 "browserslist": "^4.21.3",
                 "semver": "^6.3.0"
             }
         },
         "@babel/helper-skip-transparent-expression-wrappers": {
-            "version": "7.18.9",
-            "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
-            "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz",
+            "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==",
             "dev": true,
             "requires": {
-                "@babel/types": "^7.18.9"
+                "@babel/types": "^7.20.0"
             }
         },
         "@babel/helper-split-export-declaration": {
             }
         },
         "@babel/helpers": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz",
-            "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz",
+            "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==",
             "dev": true,
             "requires": {
                 "@babel/template": "^7.18.10",
-                "@babel/traverse": "^7.19.4",
-                "@babel/types": "^7.19.4"
+                "@babel/traverse": "^7.20.1",
+                "@babel/types": "^7.20.0"
             }
         },
         "@babel/highlight": {
             }
         },
         "@babel/parser": {
-            "version": "7.19.6",
-            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz",
-            "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz",
+            "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==",
             "dev": true
         },
         "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
             }
         },
         "@babel/plugin-proposal-async-generator-functions": {
-            "version": "7.19.1",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz",
-            "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz",
+            "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==",
             "dev": true,
             "requires": {
                 "@babel/helper-environment-visitor": "^7.18.9",
             }
         },
         "@babel/plugin-syntax-import-assertions": {
-            "version": "7.18.6",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
-            "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
+            "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
             "dev": true,
             "requires": {
-                "@babel/helper-plugin-utils": "^7.18.6"
+                "@babel/helper-plugin-utils": "^7.19.0"
             }
         },
         "@babel/plugin-syntax-json-strings": {
             }
         },
         "@babel/plugin-transform-block-scoping": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz",
-            "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz",
+            "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==",
             "dev": true,
             "requires": {
                 "@babel/helper-plugin-utils": "^7.19.0"
             }
         },
         "@babel/plugin-transform-destructuring": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz",
-            "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz",
+            "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==",
             "dev": true,
             "requires": {
                 "@babel/helper-plugin-utils": "^7.19.0"
             }
         },
         "@babel/plugin-transform-parameters": {
-            "version": "7.18.8",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
-            "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz",
+            "integrity": "sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ==",
             "dev": true,
             "requires": {
-                "@babel/helper-plugin-utils": "^7.18.6"
+                "@babel/helper-plugin-utils": "^7.19.0"
             }
         },
         "@babel/plugin-transform-property-literals": {
             }
         },
         "@babel/runtime": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz",
-            "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz",
+            "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==",
             "dev": true,
             "requires": {
-                "regenerator-runtime": "^0.13.4"
+                "regenerator-runtime": "^0.13.10"
             }
         },
         "@babel/template": {
             }
         },
         "@babel/traverse": {
-            "version": "7.19.6",
-            "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz",
-            "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==",
+            "version": "7.20.1",
+            "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz",
+            "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==",
             "dev": true,
             "requires": {
                 "@babel/code-frame": "^7.18.6",
-                "@babel/generator": "^7.19.6",
+                "@babel/generator": "^7.20.1",
                 "@babel/helper-environment-visitor": "^7.18.9",
                 "@babel/helper-function-name": "^7.19.0",
                 "@babel/helper-hoist-variables": "^7.18.6",
                 "@babel/helper-split-export-declaration": "^7.18.6",
-                "@babel/parser": "^7.19.6",
-                "@babel/types": "^7.19.4",
+                "@babel/parser": "^7.20.1",
+                "@babel/types": "^7.20.0",
                 "debug": "^4.1.0",
                 "globals": "^11.1.0"
             },
             }
         },
         "@babel/types": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz",
-            "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==",
+            "version": "7.20.0",
+            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz",
+            "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==",
             "dev": true,
             "requires": {
                 "@babel/helper-string-parser": "^7.19.4",
             "dev": true
         },
         "@types/node": {
-            "version": "18.11.5",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.5.tgz",
-            "integrity": "sha512-3JRwhbjI+cHLAkUorhf8RnqUbFXajvzX4q6fMn5JwkgtuwfYtRQYI3u4V92vI6NJuTsbBQWWh3RZjFsuevyMGQ==",
+            "version": "18.11.9",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
+            "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==",
             "devOptional": true
         },
         "@types/normalize-package-data": {
             }
         },
         "@xmldom/xmldom": {
-            "version": "0.7.6",
-            "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz",
-            "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==",
+            "version": "0.7.8",
+            "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.8.tgz",
+            "integrity": "sha512-PrJx38EfpitFhwmILRl37jAdBlsww6AZ6rRVK4QS7T7RHLhX7mSs647sTmgr9GIxe3qjXdesmomEgbgaokrVFg==",
             "dev": true
         },
         "@xtuc/ieee754": {
             "dev": true
         },
         "array.prototype.reduce": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz",
-            "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==",
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz",
+            "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==",
             "dev": true,
             "requires": {
                 "call-bind": "^1.0.2",
-                "define-properties": "^1.1.3",
-                "es-abstract": "^1.19.2",
+                "define-properties": "^1.1.4",
+                "es-abstract": "^1.20.4",
                 "es-array-method-boxes-properly": "^1.0.0",
                 "is-string": "^1.0.7"
             }
             }
         },
         "babel-loader": {
-            "version": "8.2.5",
-            "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
-            "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
+            "version": "8.3.0",
+            "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
+            "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
             "dev": true,
             "requires": {
                 "find-cache-dir": "^3.3.1",
             }
         },
         "call-me-maybe": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
-            "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==",
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz",
+            "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==",
             "dev": true
         },
         "caller-callsite": {
             }
         },
         "caniuse-lite": {
-            "version": "1.0.30001425",
-            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz",
-            "integrity": "sha512-/pzFv0OmNG6W0ym80P3NtapU0QEiDS3VuYAZMGoLLqiC7f6FJFe1MjpQDREGApeenD9wloeytmVDj+JLXPC6qw==",
+            "version": "1.0.30001430",
+            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001430.tgz",
+            "integrity": "sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg==",
             "dev": true
         },
         "chalk": {
                 "q": "^1.1.2"
             }
         },
+        "codemirror": {
+            "version": "5.65.9",
+            "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.9.tgz",
+            "integrity": "sha512-19Jox5sAKpusTDgqgKB5dawPpQcY+ipQK7xoEI+MVucEF9qqFaXpeqY1KaoyGBso/wHQoDa4HMMxMjdsS3Zzzw=="
+        },
         "collect.js": {
             "version": "4.34.3",
             "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.34.3.tgz",
             "dev": true
         },
         "decamelize-keys": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
-            "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==",
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+            "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
             "dev": true,
             "requires": {
                 "decamelize": "^1.1.0",
             "dev": true
         },
         "sass": {
-            "version": "1.55.0",
-            "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz",
-            "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==",
+            "version": "1.56.0",
+            "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz",
+            "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==",
             "dev": true,
             "requires": {
                 "chokidar": ">=3.0.0 <4.0.0",
             }
         },
         "svgpath": {
-            "version": "2.5.0",
-            "resolved": "https://registry.npmjs.org/svgpath/-/svgpath-2.5.0.tgz",
-            "integrity": "sha512-o/vohwqjUO9nDAh4rcjE3KaW/v//At8UJu2LJMybXidf5QLQLVA4bxH0//4YCsr+1H4Gw1Wi/Jc62ynzSBYidw==",
+            "version": "2.6.0",
+            "resolved": "https://registry.npmjs.org/svgpath/-/svgpath-2.6.0.tgz",
+            "integrity": "sha512-OIWR6bKzXvdXYyO4DK/UWa1VA1JeKq8E+0ug2DG98Y/vOmMpfZNj+TIG988HjfYSqtcy/hFOtZq/n/j5GSESNg==",
             "dev": true
         },
         "tapable": {
index 50e2d0c8ca56bf9b88f576509c273a8662e47ecd..893565966ccb595be724f682eeed5ec4696cf0fe 100644 (file)
@@ -43,6 +43,7 @@
         "webfont": "^11.2.26"
     },
     "dependencies": {
+        "codemirror": "^5",
         "command-line-args": "^5.2.1",
         "jquery-contextmenu": "^2.9.2",
         "jquery.scrollto": "^2.1.3",
index 6e5b744c19b238ad2935c815b7257ad828fdcb31..b6b4deac4fe71fb9690902c1ac4dc3b602bb96e0 100644 (file)
@@ -13,6 +13,19 @@ LinkeditorForm.prototype = {
         });
     },
 
+    initCodeMirror: function () {
+        $('#linkeditor-panel-form textarea.code').each(function () {
+            var textarea = $(this);
+            var c = CodeMirror.fromTextArea($(textarea).get(0), {
+                lineNumbers: true, mode: $(textarea).data('mode'), theme: 'dracula',
+            });
+            $(textarea).data('codemirror', c);
+            c.on('change', function (o) {
+                o.save();
+            });
+        });
+    },
+
     initSelect2: function () {
         // trigger select2 for each untriggered select2 box
         $('#linkeditor-panel-form .select2_from_array:not(.init)').each(function (i, obj) {
index fa3d13346f334594b9a598dcf09340ca1dc8e68d..60930ba22d2c2eea0822acd92796cd7d94252cdb 100644 (file)
@@ -1,6 +1,10 @@
 import tippy from 'tippy.js';
 import 'tippy.js/dist/tippy.css';
 
+import CodeMirror from "codemirror";
+window.CodeMirror=CodeMirror;
+import 'codemirror/lib/codemirror.css';
+
 import Noty from "noty";
 import 'noty/lib/noty.css';
 import 'noty/lib/themes/mint.css';
@@ -21,6 +25,7 @@ window.$ = window.jQuery = require('jquery');
 window.key = require('keymaster');
 window.tippy = tippy;
 window.Noty = Noty;
+
 require('jquery.scrollto');
 require('jquery-contextmenu');
 
@@ -90,8 +95,8 @@ LinkEditor.prototype = {
             if (e.keyCode == 32) {
                 if ($this.zoom.zoom !== 1) {
                     $("#linkeditor-main").addClass('grab');
+                    return false;
                 }
-                return false;
             } else if (e.keyCode == 18) {
                 $("#linkeditor-main").addClass('duplicate');
                 return false;
index 316c64b125cef8b505e0dac286f8fe710833fda9..57ade90f1851f5d2be8e9de84a60a1cc36405b34 100644 (file)
@@ -317,6 +317,7 @@ LinkeditorLinks.prototype = {
         });
 
         this.linkeditor.form.initSelect2();
+        this.linkeditor.form.initCodeMirror();
     },
 
     updateFormData: function (form) {
index 525682f3ffcf4cc2d7daec7328166b05981bc6cd..533be65d869248174a0b7bab1329e0e1441eab3b 100644 (file)
@@ -30,6 +30,7 @@
 
 #linkeditor-panel-form
     padding: 12px
+    font-size: 12px
 
     h3
         font-size: 16px