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');
this.form = new LinkeditorForm(this);
this.settings = new LinkeditorSettings(this);
this.versions = new LinkeditorVersions(this);
+ this.popup = new LinkeditorPopup(this);
this.initEvents();
this.initIcons();
},
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');
});
},
$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) {
--- /dev/null
+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;
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 () {
+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
--- /dev/null
+#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
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
@import "inc/_links"
@import "inc/_form"
@import "inc/_versions"
+@import "inc/_popup"
@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"
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">
<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) {