]> _ Git - fluidbook-toolbox.git/commitdiff
wip #5638 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 9 Dec 2022 18:03:41 +0000 (19:03 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 9 Dec 2022 18:03:41 +0000 (19:03 +0100)
resources/linkeditor/js/linkeditor.js
resources/linkeditor/js/linkeditor.popup.js [new file with mode: 0644]
resources/linkeditor/js/linkeditor.resize.js
resources/linkeditor/style/inc/_form.sass
resources/linkeditor/style/inc/_popup.sass [new file with mode: 0644]
resources/linkeditor/style/inc/_toolbar.sass
resources/linkeditor/style/style.sass
resources/views/fluidbook_publication/link_editor.blade.php
resources/views/fluidbook_publication/link_editor_icons.blade.php

index 7e1b5bdb9ae07746f0c66f338bf60a51f434e2bd..6c387cf5d13d3af4ec0aa378a41d5042323b61ba 100644 (file)
@@ -17,6 +17,7 @@ import LinkeditorSettings from './linkeditor.settings';
 import LinkeditorPanels from './linkeditor.panels';
 import LinkeditorForm from './linkeditor.form';
 import LinkeditorVersions from './linkeditor.versions';
+import LinkeditorPopup from './linkeditor.popup';
 
 window.$ = window.jQuery = require('jquery');
 window.key = require('keymaster-reloaded');
@@ -82,6 +83,7 @@ LinkEditor.prototype = {
         this.form = new LinkeditorForm(this);
         this.settings = new LinkeditorSettings(this);
         this.versions = new LinkeditorVersions(this);
+        this.popup = new LinkeditorPopup(this);
 
         this.initEvents();
         this.initIcons();
@@ -90,7 +92,7 @@ LinkEditor.prototype = {
     },
 
     initIcons: function () {
-        $("#linkeditor [data-icon]:not(.init-icon)").each(function () {
+        $("[data-icon]:not(.init-icon)").each(function () {
             $(this).append(getSpriteIcon('linkeditor-' + $(this).data('icon'))).addClass('init-icon');
         });
     },
@@ -108,6 +110,14 @@ LinkEditor.prototype = {
             $this.changePage();
         });
 
+        key('esc', function () {
+            if ($this.popup.hasOpenPopup()) {
+                $this.popup.close();
+                return false;
+            }
+            return true;
+        });
+
         // Disable scroll by spacebar
         $(window).on('keydown', function (e) {
             if (e.keyCode == 32) {
diff --git a/resources/linkeditor/js/linkeditor.popup.js b/resources/linkeditor/js/linkeditor.popup.js
new file mode 100644 (file)
index 0000000..44c80f4
--- /dev/null
@@ -0,0 +1,53 @@
+function LinkeditorPopup(linkeditor) {
+    this.linkeditor = linkeditor;
+    this.init();
+}
+
+LinkeditorPopup.prototype = {
+    init: function () {
+        var $this = this;
+        $(document).on('click', '.popup .close', function () {
+            if ($this.hasOpenPopup()) {
+                $this.close();
+            }
+        });
+    },
+
+    openLinksMove() {
+        this.open('moveLinks');
+    },
+
+    open: function (name) {
+        var clone = $("#popup-templates [data-popup=" + name + "]").clone();
+        $("#popup-holder").append(clone);
+        $("#popup-overlay").addClass('show');
+        this.resize();
+    },
+
+    close: function () {
+        $("#popup-overlay").removeClass('show');
+        $("#popup-holder").html('');
+    },
+
+    hasOpenPopup() {
+        return $("#popup-overlay.show").length === 1;
+    },
+
+    resize: function () {
+        if (!this.hasOpenPopup()) {
+            return;
+        }
+        var p = $("#popup-holder>div");
+        var w = $(p).outerWidth();
+        var h = $(p).outerHeight();
+        var left = (this.linkeditor.resize.ww - w) / 2;
+        var top = (this.linkeditor.resize.hh - h) / 2;
+        $("#popup-holder").css({
+            width: w,
+            height: h,
+            left: left,
+            top: top,
+        })
+    }
+};
+module.exports = LinkeditorPopup;
index d751333598df38587a3f232cc0d7a49cb7803766..2c651444305565a73b3ac344589b41f1c62ea698 100644 (file)
@@ -20,13 +20,15 @@ LinkeditorResize.prototype = {
 
     resize: function () {
         this.updateWindowDimensions();
-        this.linkeditor.panels.resize(this.ww);
         this.resizeMain();
         this.resizeCanvas();
-        if(this.panels) {
-            this.panels.resize();
+        if(this.linkeditor.panels) {
+            this.linkeditor.panels.resize(this.ww);
         }
         this.linkeditor.rulers.updateRulers();
+        if(this.linkeditor.popup){
+            this.linkeditor.popup.resize();
+        }
     },
 
     resizeMain: function () {
index 4105443c6ee9eb695069c420ad427a428f608323..8cf3d333468873519087b03dfdf7fe5b5321953f 100644 (file)
@@ -1,3 +1,50 @@
+body
+    --form-text-color: #5d5d5d
+    --field-background: #fff
+    --field-color: #111
+    --field-border: #aaa
+
+    @include dark-theme
+        --form-text-color: #aaa
+        --field-background: #000
+        --field-color: #ccc
+        --field-border: #777
+
+textarea, input[type="text"], input[type="number"], input[type="email"], input[type="url"]
+    font-family: $font
+    font-weight: 400
+    color: var(--field-color)
+    background-color: var(--field-background)
+    border: 1px solid var(--field-background)
+    border-radius: 3px
+    font-size: 13px
+    transition: box-shadow 500ms, border 500ms
+    appearance: none
+
+    &:focus
+        border: 1px solid var(--field-border)
+        box-shadow: 0 0 8px rgba(0, 0, 0, 0.3)
+
+input[type=number]
+    &, &:hover
+        appearance: textfield
+
+        &::-webkit-inner-spin-button, &::-webkit-outer-spin-button
+            -webkit-appearance: none
+            margin: 0
+            visibility: hidden
+
+button
+    font-family: $font
+    font-weight: 500
+    font-size: 15px
+    padding: 5px 10px
+    border: 1px solid var(--field-border)
+    border-radius: 4px
+    color: var(--field-color)
+    background-color: var(--field-background)
+    cursor: pointer
+
 .select2-hidden-accessible
     position: fixed !important
 
 
 
 #linkeditor-panel-form
-    --form-text-color: #5d5d5d
-    --field-background: #fff
-    --field-color: #111
-    --field-border: #aaa
-
-    @include dark-theme
-        --form-text-color: #aaa
-        --field-background: #000
-        --field-color: #ccc
-        --field-border: #777
 
 
     padding: 12px
 
     .freefile-file
         position: relative
+
         &.loading
             &::after
                 background-image: url("/images/linkeditor/dots-animated.svg")
                 @include dark-theme
                     background-image: url("/images/linkeditor/dots-dark-animated.svg")
+
             input
                 pointer-events: none
                 cursor: wait
 
     .input-group
         position: relative
+
         .input-group-append
             position: absolute
             height: 100%
             padding: 8px
 
     textarea, input[type="text"], input[type="number"], input[type="email"], input[type="url"]
-        font-family: $font
         height: 34px
         padding: 8px
         width: 100%
-        font-weight: 400
-        color: var(--field-color)
-        background-color: var(--field-background)
-        border: 1px solid var(--field-background)
-        border-radius: 3px
-        font-size: 13px
-        transition: box-shadow 500ms, border 500ms
-        appearance: none
-
-        &:focus
-            border: 1px solid var(--field-border)
-            box-shadow: 0 0 8px rgba(0, 0, 0, 0.3)
-
 
     textarea
         min-height: 150px
         [data-name="rot"]
             label
                 display: block
+
             .input-group
                 .input-group-append
                     right: 0
 
         .input-group
             display: inline-block
+
             .input-group-append
                 right: 20px
 
diff --git a/resources/linkeditor/style/inc/_popup.sass b/resources/linkeditor/style/inc/_popup.sass
new file mode 100644 (file)
index 0000000..bad22c4
--- /dev/null
@@ -0,0 +1,63 @@
+#popup-templates
+    display: none
+
+#popup-overlay
+    background-color: rgba(0, 0, 0, 0.5)
+    position: absolute
+    top: 0
+    left: 0
+    opacity: 0
+    pointer-events: none
+    transition: opacity 350ms
+    width: 100%
+    height: 100%
+    z-index: 10000000
+
+    &.show
+        opacity: 1
+        pointer-events: auto
+
+    #popup-holder
+        position: absolute
+        max-width: 100%
+        max-height: 100%
+
+        .popup
+            background-color: #dbdddf
+            color: #5D5D5D
+            font-size: 13px
+            padding: 20px
+            box-shadow: 0 0 20px rgba(0,0,0,0.5)
+
+            h2
+                font-size: 16px
+                padding-bottom: 10px
+                font-weight: 500
+
+            a.close
+                display: block
+                position: absolute
+                top: 20px
+                right: 20px
+                width: 15px
+                height: 15px
+                cursor: pointer
+
+            p
+                margin: 12px 0
+
+            p.button
+                text-align: right
+
+
+            @include dark-theme
+                background-color: #333
+                color: #d5d5d5
+
+            &[data-popup="moveLinks"]
+                input
+                    &[type="text"],&[type="number"]
+                        width: 50px
+                        height: 20px
+                        margin: 0 5px
+                        padding: 4px
index e99453e9e13d621048eb29222eb49eb6218f295c..539ea1eec50bfbf9199e7b511e5acca2902b9d39 100644 (file)
                 color: $toolbar-color-dark
 
             font-size: 13px
-            appearance: textfield
-
-            &::-webkit-outer-adjust-hue-button, &::-webkit-inner-adjust-hue-button
-                -webkit-appearance: none
-                margin: 0
-
             font-weight: 600
             position: relative
 
index f3978143d5db39fc70cb1566f8f5442bbd9a48fd..ecc074e61fed0f5be0eff803b34ab43bc990732f 100644 (file)
@@ -138,4 +138,5 @@ body, #linkeditor, html
 @import "inc/_links"
 @import "inc/_form"
 @import "inc/_versions"
+@import "inc/_popup"
 
index 62db0f8b1d9bf42edfa9e1d68db0a805cdc3f0c8..4cbe7215c4af2d708e3bf15ce6aebf9f8ba6058a 100644 (file)
 
 @section('content')
     @include('fluidbook_publication.link_editor_icons')
+    <div id="popup-overlay">
+        <div id="popup-holder">
+
+        </div>
+    </div>
+    <div id="popup-templates">
+        <div class="popup" data-popup="moveLinks" style="max-width: 300px">
+            <h2>{{__('Déplacer les liens')}}</h2>
+            <a nohref="" class="close" data-icon="close"></a>
+            <form action="/fluidbook-publication/{{$fbdata['id']}}/edit/links/move" method="post">
+                <p>{!! __('Déplacer les liens de :nb pages :br à partir de la page :page',
+                    ['br'=>'</p><p>','nb'=>'<input type="number" name="number">','page'=>'<input type="text" name="start">'])!!}</p>
+                <p><label>
+                        <input type="checkbox"
+                               name="offset_internal_links"> {{__('Appliquer le décalage aux numéros de pages des liens internets')}}
+                    </label></p>
+                <p class="button">
+                    <button type="submit">{{__('Déplacer les liens')}}</button>
+                </p>
+            </form>
+        </div>
+    </div>
     <div draggable="false" id="linkeditor">
         <div style="display: none" id="panels-setups">
             <a href="#" id="linkeditor-icon-layers" data-panel="layers" data-icon="layers"
@@ -77,7 +99,7 @@
                        data-tooltip="{{__('Réinitialiser le zoom')}} (Esc)" data-key="esc, ctrl+0, ctrl+numpad0"></a>
                     <div class="separator"></div>
                     <div data-icon="import-links"
-                       data-tooltip="{{__('Importer les liens (Remplacer)')}}">
+                         data-tooltip="{{__('Importer les liens (Remplacer)')}}">
                         <form class="importExcel"
                               action="/fluidbook-publication/{{$fbdata['id']}}/edit/links/import/replace" method="post"
                               enctype="multipart/form-data">
                         </form>
                     </div>
                     <div data-icon="merge-links"
-                       data-tooltip="{{__('Importer les liens (Ajouter)')}}">
+                         data-tooltip="{{__('Importer les liens (Ajouter)')}}">
                         <form class="importExcel"
                               action="/fluidbook-publication/{{$fbdata['id']}}/edit/links/import/merge" method="post"
                               enctype="multipart/form-data">
                     <a id="linkeditor-export-latest" download="links_{{$fbdata['id']}}.xlsx"
                        href="/fluidbook-publication/{{$fbdata['id']}}/edit/links/versions/export/latest"
                        data-icon="export-links" data-tooltip="Exporter les liens"></a>
-                    <a href="#" data-action="moveLinks" data-icon="move-links"
+                    <a href="#" data-action="popup.openLinksMove" data-icon="move-links"
                        data-tooltip="{{__('Déplacer les liens')}}"></a>
                 </nav>
                 <nav id="linkeditor-toolbar-center">
index 77550ba3749ed3589ea3964d71721909addbef5e..d98c948202372925abc186e4adfcc2ccd5d4dbb2 100644 (file)
@@ -7,7 +7,7 @@
                 <path id="Tracé_35" data-name="Tracé 35" d="M9.286,12.436a.658.658,0,1,1-.658-.658.659.659,0,0,1,.658.658" fill="currentColor"/>
                 <path id="Tracé_36" data-name="Tracé 36" d="M9.286,15.1a.658.658,0,1,1-.658-.658.659.659,0,0,1,.658.658" fill="currentColor"/>
             </g>
-        </symbol><symbol id="linkeditor-wayback-machine" viewBox="0 0 20 20"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m.714 10a9.285 9.285 0 1 0 9.286-9.286 10.331 10.331 0 0 0 -7.143 2.857"/><path d="m3.571.714-.714 2.857 2.857.714"/><path d="m10 5v5.714l-3.714 1.857"/></g></symbol><symbol id="linkeditor-tooltip" viewBox="0 0 21.667 17.846"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m0 0h20.238" transform="translate(.715 17.131)"/><path d="m13.463 11.9-2.63 2.63-2.633-2.63h-2.958a1.316 1.316 0 0 1 -1.316-1.316v-8.554a1.316 1.316 0 0 1 1.316-1.316h11.183a1.316 1.316 0 0 1 1.316 1.316v8.552a1.316 1.316 0 0 1 -1.316 1.318z"/></g></symbol><symbol id="linkeditor-search" viewBox="0 0 20.322 16.684"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m17.571 11.417a.4.4 0 1 0 .211-.763l-7.81-5.354a.791.791 0 0 0 -1.237.7l.61 9.473a.4.4 0 1 0 .762.211l2.722-3.893z"/><path d="m8.029 7.509h-6.42a.894.894 0 0 1 -.894-.894v-5.007a.894.894 0 0 1 .894-.894h17.105a.894.894 0 0 1 .894.894v5.007a.894.894 0 0 1 -.894.894h-5.314"/></g></symbol><symbol id="linkeditor-archives" viewBox="0 0 19.851 20"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m.714 0h3.571a.715.715 0 0 1 .715.715v17.142a.714.714 0 0 1 -.714.714h-3.572a.714.714 0 0 1 -.714-.714v-17.143a.714.714 0 0 1 .714-.714z" transform="translate(.715 .714)"/><path d="m.714 0h3.571a.715.715 0 0 1 .715.715v14.285a.714.714 0 0 1 -.714.714h-3.572a.714.714 0 0 1 -.714-.714v-14.286a.714.714 0 0 1 .714-.714z" transform="translate(5.715 3.571)"/><path d="m.714 0h2.857a.715.715 0 0 1 .715.715v14.285a.714.714 0 0 1 -.714.714h-2.858a.714.714 0 0 1 -.714-.714v-14.286a.714.714 0 0 1 .714-.714z" transform="matrix(.97005881 -.24287013 .24287013 .97005881 11.315 4.048)"/><path d="m0 0h5" transform="translate(.714 14.286)"/><path d="m0 0h5" transform="translate(5.714 12.857)"/><path d="m0 1.029 4.114-1.029" transform="translate(14.286 14.685)"/></g></symbol><symbol id="linkeditor-layers" viewBox="0 0 20 19.997"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m10.671 9.854a1.686 1.686 0 0 1 -1.343 0l-8.143-3.771a.8.8 0 0 1 0-1.429l8.143-3.8a1.686 1.686 0 0 1 1.343 0l8.143 3.771a.8.8 0 0 1 0 1.429z"/><path d="m19.286 10.5-8.714 4.014a1.427 1.427 0 0 1 -1.186 0l-8.671-4.014"/><path d="m19.286 15.14-8.714 4.014a1.427 1.427 0 0 1 -1.186 0l-8.671-4.014"/></g></symbol><symbol id="linkeditor-copy" viewBox="0 0 20 20"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><rect height="15" rx="1.429" width="15" x="4.286" y="4.286"/><path d="m.714 15v-12.857a1.429 1.429 0 0 1 1.429-1.429h12.857"/></g></symbol><symbol id="linkeditor-link" viewBox="0 0 19.974 20.017"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m5.723 9.28-4.586 4.543a1.428 1.428 0 0 0 -.008 2.02l.008.008 3.029 3.029a1.428 1.428 0 0 0 2.02.008l.008-.008 4.543-4.586"/><path d="m14.294 10.737 4.543-4.543a1.428 1.428 0 0 0 .008-2.02l-.008-.008-2.986-3.029a1.428 1.428 0 0 0 -2.02-.008l-.008.008-4.543 4.586"/><path d="m5.714 0-5.714 5.714" transform="translate(7.151 7.151)"/></g></symbol><symbol id="linkeditor-import-links" viewBox="0 0 19.8 20"><g fill="currentColor"><path d="m5.1 20c-.6 0-1.1-.2-1.5-.6l-3-3c-.4-.4-.6-.9-.6-1.5s.2-1.1.6-1.5l4.6-4.5c.3-.3.7-.3 1 0s.3.7 0 1l-4.6 4.5c-.1.1-.2.3-.2.5s.1.4.2.5l3 3c.1.1.3.2.5.2s.4-.1.5-.2l4.5-4.6c.3-.3.7-.3 1 0s.3.7 0 1l-4.5 4.6c-.4.4-.9.6-1.5.6z"/><path d="m14.2 11.4c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l4.5-4.5c.1-.1.2-.3.2-.5s-.1-.4-.2-.5l-3-3c-.1-.1-.4-.2-.5-.2-.2 0-.4.1-.5.2l-4.5 4.6c-.3.3-.7.3-1 0s-.3-.7 0-1l4.5-4.6c.4-.4 1-.6 1.5-.6.6 0 1.1.2 1.5.6l3 3c.4.4.6.9.6 1.5s-.2 1.1-.6 1.5l-4.5 4.5c-.1.2-.3.2-.5.2z"/><path d="m7.1 13.6c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l5.7-5.7c.3-.3.7-.3 1 0s.3.7 0 1l-5.7 5.7c-.1.1-.3.2-.5.2z"/><path d="m6.4 3.9h-5.7c-.4 0-.7-.3-.7-.7s.3-.7.7-.7h5.7c.4 0 .7.3.7.7s-.4.7-.7.7z"/><path d="m4.6 6.4c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l2-2-2-2c-.3-.3-.3-.7 0-1s.7-.3 1 0l2.5 2.5c.3.3.3.7 0 1l-2.5 2.5c-.1.1-.3.2-.5.2z"/></g></symbol><symbol id="linkeditor-export-links" viewBox="0 0 20 20"><g fill="currentColor"><path d="m5.1 20c-.6 0-1.1-.2-1.5-.6l-3-3c-.8-.8-.8-2.2 0-3l4.6-4.5c.3-.3.7-.3 1 0s.3.7 0 1l-4.6 4.5c-.3.3-.3.7 0 1l3 3c.1.1.3.2.5.2s.4-.1.5-.2l4.5-4.6c.3-.3.7-.3 1 0s.3.7 0 1l-4.5 4.6c-.4.4-.9.6-1.5.6z"/><path d="m14.3 11.4c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l4.5-4.5c.1-.1.2-.3.2-.5s-.1-.4-.2-.5l-3-3c-.1-.1-.3-.2-.5-.2s-.4.1-.5.2l-4.5 4.6c-.3.3-.7.3-1 0s-.3-.7 0-1l4.5-4.6s0 0 .1-.1c.4-.4.9-.6 1.5-.6s1.1.2 1.5.6l3 3c.4.4.6 1 .6 1.5 0 .6-.2 1.1-.6 1.5l-4.5 4.5c-.3.3-.5.3-.6.3z"/><path d="m7.1 13.6c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l5.7-5.7c.3-.3.7-.3 1 0s.3.7 0 1l-5.7 5.7c-.1.1-.3.2-.5.2z"/><path d="m18.5 17.5h-5.7c-.4 0-.7-.3-.7-.7s.3-.7.7-.7h5.7c.4 0 .7.3.7.7s-.3.7-.7.7z"/><path d="m16.8 20c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l2-2-2-2c-.3-.3-.3-.7 0-1s.7-.3 1 0l2.5 2.5c.3.3.3.7 0 1l-2.5 2.5c-.2.1-.3.2-.5.2z"/></g></symbol><symbol id="linkeditor-merge-links" viewBox="0 0 20 20"><g fill="currentColor"><path d="m5.2 20c-.6 0-1.1-.2-1.5-.6l-3-3c-.5-.5-.7-1-.7-1.6s.2-1.1.6-1.5l4.6-4.5c.3-.3.7-.3 1 0s.3.7 0 1l-4.6 4.5c-.1.1-.2.3-.2.5s.1.4.2.5l3 3c.3.3.7.3 1 0l4.5-4.6c.3-.3.7-.3 1 0s.3.7 0 1l-4.5 4.6c-.3.5-.9.7-1.4.7z"/><path d="m14.3 11.5c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l4.5-4.5c.3-.3.3-.7 0-1l-3-3c-.1-.1-.3-.2-.5-.2s-.4.1-.5.2l-4.5 4.4c-.3.3-.7.3-1 0s-.3-.7 0-1l4.5-4.6c.4-.4.9-.6 1.6-.6.6 0 1.1.2 1.5.6l3 3c.8.8.8 2.2 0 3l-4.5 4.5c-.2.3-.4.4-.6.4z"/><path d="m7.2 13.6c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l5.7-5.7c.3-.3.7-.3 1 0s.3.7 0 1l-5.7 5.7c-.2.1-.4.2-.5.2z"/><path d="m6.4 4.3h-5.7c-.4 0-.7-.3-.7-.7s.3-.7.7-.7h5.7c.4 0 .7.3.7.7s-.3.7-.7.7z"/><path d="m3.6 7.2c-.4 0-.7-.3-.7-.7v-5.8c0-.4.3-.7.7-.7s.7.3.7.7v5.7c0 .4-.3.8-.7.8z"/></g></symbol><symbol id="linkeditor-move-links" viewBox="0 0 20 20"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><g transform="translate(-361.274 -372.18)"><path d="m367 381.5-4.6 4.5c-.6.6-.6 1.5 0 2l3 3c.6.6 1.5.6 2 0l4.5-4.6"/><path d="m375.6 382.9 4.5-4.5c.6-.6.6-1.5 0-2l-3-3c-.6-.6-1.5-.6-2 0l-4.5 4.6"/><path d="m374.1 379.3-5.7 5.7"/></g><path d="m2.526 5.32 4-4"/><path d="m2.126 2.32 1.4-1.4"/><path d="m17.526 14.72-4.1 4"/><path d="m17.826 17.72-1.4 1.4"/></g></symbol></svg></div>
+        </symbol><symbol id="linkeditor-wayback-machine" viewBox="0 0 20 20"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m.714 10a9.285 9.285 0 1 0 9.286-9.286 10.331 10.331 0 0 0 -7.143 2.857"/><path d="m3.571.714-.714 2.857 2.857.714"/><path d="m10 5v5.714l-3.714 1.857"/></g></symbol><symbol id="linkeditor-tooltip" viewBox="0 0 21.667 17.846"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m0 0h20.238" transform="translate(.715 17.131)"/><path d="m13.463 11.9-2.63 2.63-2.633-2.63h-2.958a1.316 1.316 0 0 1 -1.316-1.316v-8.554a1.316 1.316 0 0 1 1.316-1.316h11.183a1.316 1.316 0 0 1 1.316 1.316v8.552a1.316 1.316 0 0 1 -1.316 1.318z"/></g></symbol><symbol id="linkeditor-search" viewBox="0 0 20.322 16.684"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m17.571 11.417a.4.4 0 1 0 .211-.763l-7.81-5.354a.791.791 0 0 0 -1.237.7l.61 9.473a.4.4 0 1 0 .762.211l2.722-3.893z"/><path d="m8.029 7.509h-6.42a.894.894 0 0 1 -.894-.894v-5.007a.894.894 0 0 1 .894-.894h17.105a.894.894 0 0 1 .894.894v5.007a.894.894 0 0 1 -.894.894h-5.314"/></g></symbol><symbol id="linkeditor-archives" viewBox="0 0 19.851 20"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m.714 0h3.571a.715.715 0 0 1 .715.715v17.142a.714.714 0 0 1 -.714.714h-3.572a.714.714 0 0 1 -.714-.714v-17.143a.714.714 0 0 1 .714-.714z" transform="translate(.715 .714)"/><path d="m.714 0h3.571a.715.715 0 0 1 .715.715v14.285a.714.714 0 0 1 -.714.714h-3.572a.714.714 0 0 1 -.714-.714v-14.286a.714.714 0 0 1 .714-.714z" transform="translate(5.715 3.571)"/><path d="m.714 0h2.857a.715.715 0 0 1 .715.715v14.285a.714.714 0 0 1 -.714.714h-2.858a.714.714 0 0 1 -.714-.714v-14.286a.714.714 0 0 1 .714-.714z" transform="matrix(.97005881 -.24287013 .24287013 .97005881 11.315 4.048)"/><path d="m0 0h5" transform="translate(.714 14.286)"/><path d="m0 0h5" transform="translate(5.714 12.857)"/><path d="m0 1.029 4.114-1.029" transform="translate(14.286 14.685)"/></g></symbol><symbol id="linkeditor-layers" viewBox="0 0 20 19.997"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m10.671 9.854a1.686 1.686 0 0 1 -1.343 0l-8.143-3.771a.8.8 0 0 1 0-1.429l8.143-3.8a1.686 1.686 0 0 1 1.343 0l8.143 3.771a.8.8 0 0 1 0 1.429z"/><path d="m19.286 10.5-8.714 4.014a1.427 1.427 0 0 1 -1.186 0l-8.671-4.014"/><path d="m19.286 15.14-8.714 4.014a1.427 1.427 0 0 1 -1.186 0l-8.671-4.014"/></g></symbol><symbol id="linkeditor-copy" viewBox="0 0 20 20"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><rect height="15" rx="1.429" width="15" x="4.286" y="4.286"/><path d="m.714 15v-12.857a1.429 1.429 0 0 1 1.429-1.429h12.857"/></g></symbol><symbol id="linkeditor-link" viewBox="0 0 19.974 20.017"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><path d="m5.723 9.28-4.586 4.543a1.428 1.428 0 0 0 -.008 2.02l.008.008 3.029 3.029a1.428 1.428 0 0 0 2.02.008l.008-.008 4.543-4.586"/><path d="m14.294 10.737 4.543-4.543a1.428 1.428 0 0 0 .008-2.02l-.008-.008-2.986-3.029a1.428 1.428 0 0 0 -2.02-.008l-.008.008-4.543 4.586"/><path d="m5.714 0-5.714 5.714" transform="translate(7.151 7.151)"/></g></symbol><symbol id="linkeditor-import-links" viewBox="0 0 19.8 20"><g fill="currentColor"><path d="m5.1 20c-.6 0-1.1-.2-1.5-.6l-3-3c-.4-.4-.6-.9-.6-1.5s.2-1.1.6-1.5l4.6-4.5c.3-.3.7-.3 1 0s.3.7 0 1l-4.6 4.5c-.1.1-.2.3-.2.5s.1.4.2.5l3 3c.1.1.3.2.5.2s.4-.1.5-.2l4.5-4.6c.3-.3.7-.3 1 0s.3.7 0 1l-4.5 4.6c-.4.4-.9.6-1.5.6z"/><path d="m14.2 11.4c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l4.5-4.5c.1-.1.2-.3.2-.5s-.1-.4-.2-.5l-3-3c-.1-.1-.4-.2-.5-.2-.2 0-.4.1-.5.2l-4.5 4.6c-.3.3-.7.3-1 0s-.3-.7 0-1l4.5-4.6c.4-.4 1-.6 1.5-.6.6 0 1.1.2 1.5.6l3 3c.4.4.6.9.6 1.5s-.2 1.1-.6 1.5l-4.5 4.5c-.1.2-.3.2-.5.2z"/><path d="m7.1 13.6c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l5.7-5.7c.3-.3.7-.3 1 0s.3.7 0 1l-5.7 5.7c-.1.1-.3.2-.5.2z"/><path d="m6.4 3.9h-5.7c-.4 0-.7-.3-.7-.7s.3-.7.7-.7h5.7c.4 0 .7.3.7.7s-.4.7-.7.7z"/><path d="m4.6 6.4c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l2-2-2-2c-.3-.3-.3-.7 0-1s.7-.3 1 0l2.5 2.5c.3.3.3.7 0 1l-2.5 2.5c-.1.1-.3.2-.5.2z"/></g></symbol><symbol id="linkeditor-export-links" viewBox="0 0 20 20"><g fill="currentColor"><path d="m5.1 20c-.6 0-1.1-.2-1.5-.6l-3-3c-.8-.8-.8-2.2 0-3l4.6-4.5c.3-.3.7-.3 1 0s.3.7 0 1l-4.6 4.5c-.3.3-.3.7 0 1l3 3c.1.1.3.2.5.2s.4-.1.5-.2l4.5-4.6c.3-.3.7-.3 1 0s.3.7 0 1l-4.5 4.6c-.4.4-.9.6-1.5.6z"/><path d="m14.3 11.4c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l4.5-4.5c.1-.1.2-.3.2-.5s-.1-.4-.2-.5l-3-3c-.1-.1-.3-.2-.5-.2s-.4.1-.5.2l-4.5 4.6c-.3.3-.7.3-1 0s-.3-.7 0-1l4.5-4.6s0 0 .1-.1c.4-.4.9-.6 1.5-.6s1.1.2 1.5.6l3 3c.4.4.6 1 .6 1.5 0 .6-.2 1.1-.6 1.5l-4.5 4.5c-.3.3-.5.3-.6.3z"/><path d="m7.1 13.6c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l5.7-5.7c.3-.3.7-.3 1 0s.3.7 0 1l-5.7 5.7c-.1.1-.3.2-.5.2z"/><path d="m18.5 17.5h-5.7c-.4 0-.7-.3-.7-.7s.3-.7.7-.7h5.7c.4 0 .7.3.7.7s-.3.7-.7.7z"/><path d="m16.8 20c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l2-2-2-2c-.3-.3-.3-.7 0-1s.7-.3 1 0l2.5 2.5c.3.3.3.7 0 1l-2.5 2.5c-.2.1-.3.2-.5.2z"/></g></symbol><symbol id="linkeditor-merge-links" viewBox="0 0 20 20"><g fill="currentColor"><path d="m5.2 20c-.6 0-1.1-.2-1.5-.6l-3-3c-.5-.5-.7-1-.7-1.6s.2-1.1.6-1.5l4.6-4.5c.3-.3.7-.3 1 0s.3.7 0 1l-4.6 4.5c-.1.1-.2.3-.2.5s.1.4.2.5l3 3c.3.3.7.3 1 0l4.5-4.6c.3-.3.7-.3 1 0s.3.7 0 1l-4.5 4.6c-.3.5-.9.7-1.4.7z"/><path d="m14.3 11.5c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l4.5-4.5c.3-.3.3-.7 0-1l-3-3c-.1-.1-.3-.2-.5-.2s-.4.1-.5.2l-4.5 4.4c-.3.3-.7.3-1 0s-.3-.7 0-1l4.5-4.6c.4-.4.9-.6 1.6-.6.6 0 1.1.2 1.5.6l3 3c.8.8.8 2.2 0 3l-4.5 4.5c-.2.3-.4.4-.6.4z"/><path d="m7.2 13.6c-.2 0-.4-.1-.5-.2-.3-.3-.3-.7 0-1l5.7-5.7c.3-.3.7-.3 1 0s.3.7 0 1l-5.7 5.7c-.2.1-.4.2-.5.2z"/><path d="m6.4 4.3h-5.7c-.4 0-.7-.3-.7-.7s.3-.7.7-.7h5.7c.4 0 .7.3.7.7s-.3.7-.7.7z"/><path d="m3.6 7.2c-.4 0-.7-.3-.7-.7v-5.8c0-.4.3-.7.7-.7s.7.3.7.7v5.7c0 .4-.3.8-.7.8z"/></g></symbol><symbol id="linkeditor-move-links" viewBox="0 0 20 20"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.429"><g transform="translate(-361.274 -372.18)"><path d="m367 381.5-4.6 4.5c-.6.6-.6 1.5 0 2l3 3c.6.6 1.5.6 2 0l4.5-4.6"/><path d="m375.6 382.9 4.5-4.5c.6-.6.6-1.5 0-2l-3-3c-.6-.6-1.5-.6-2 0l-4.5 4.6"/><path d="m374.1 379.3-5.7 5.7"/></g><path d="m2.526 5.32 4-4"/><path d="m2.126 2.32 1.4-1.4"/><path d="m17.526 14.72-4.1 4"/><path d="m17.826 17.72-1.4 1.4"/></g></symbol><symbol id="linkeditor-close" viewBox="0 0 512 512"><path fill="currentColor" d="m512 63l-66-63-190 193-193-193-63 63 193 193-193 190 63 66 193-193 190 193 66-66-193-190z"/></symbol></svg></div>
 @push('linkeditor_scripts')
     <script>
         function getSpriteIcon(icon, attrs, dimensions) {