mercury_editor-2.0.x-dev/build/js/dialog.drupal.min.js

build/js/dialog.drupal.min.js
!function(){"use strict";((e,t,o)=>{function n(t,o,n,i){if("undefined"==typeof DrupalDialogEvent)e(window).trigger(`dialog:${t}`,[o,e(n),i]);else{const e=new DrupalDialogEvent(t,o,i||{});n.dispatchEvent(e)}}function i(e,t){const o=window.getComputedStyle(e.closest("mercury-dialog").shadowRoot.querySelector("dialog")),n=window.getComputedStyle(e.closest("mercury-dialog").shadowRoot.querySelector("main"));t.style.maxWidth=`calc(${o.getPropertyValue("max-width")} - ${n.getPropertyValue("padding-left")} - ${n.getPropertyValue("padding-right")} - 2px)`}t.mercuryDialog=(i,a)=>{const r=e(i);let l;r.dialog=()=>r;const d={open:!1,returnValue:undefined};const s=new ResizeObserver((function(e){e.forEach((e=>{const t=e.target,o=t.getAttribute("data-dock");if(!t.open||!o||"none"===o)return;const{width:n}=e.contentRect,{height:i}=e.contentRect,a=new CustomEvent("mercury:dockResize",{detail:{width:n,height:i},bubbles:!0});l.dispatchEvent(a)}))}));const c=new MutationObserver((function(){s.observe(l.shadowRoot.querySelector("dialog"))}));function u(e){return void 0!==e&&/^\d+$/.test(e)?`${e}px`:e}function g(o){["title","modal","dock","push","resizable","moveable"].forEach((e=>{void 0!==o[e]&&l.setAttribute(e,o[e])})),o.dialogClass&&l.classList.add(...o.dialogClass.split(" "));const n={"ui-dialog":l,"ui-dialog-titlebar":l.shadowRoot.querySelector('header[slot="header"]'),"ui-dialog-title":l.shadowRoot.querySelector("h1.me-dialog__title"),"ui-dialog-content":l.shadowRoot.querySelector("main"),"ui-dialog-buttonpane":l.shadowRoot.querySelector('div[slot="footer"]'),"ui-dialog-buttonset":l.shadowRoot.querySelector('div[slot="footer"]')};Object.keys(o.classes||{}).forEach((e=>{n[e]&&o.classes[e]&&n[e].classList.add(...o.classes[e].split(" "))}));if("right"===(o.dock||l.getAttribute("dock"))){if("true"===localStorage.getItem("mercury-dialog-dock-collapsed"))document.documentElement.style.setProperty("--me-dialog-dock-right-width","10px");else{const e=o.width,t=o.height;o?.defaultWidth&&!document.documentElement.style.getPropertyValue("--me-dialog-dock-right-width")&&document.documentElement.style.setProperty("--me-dialog-dock-right-width",u(o.defaultWidth)),e&&document.documentElement.style.setProperty("--me-dialog-dock-right-width",u(e)),t&&document.documentElement.style.setProperty("--me-dialog-dock-right-height",u(t))}}else o.width&&document.documentElement.style.setProperty("--me-dialog-width",u(o.width)),o.height&&document.documentElement.style.setProperty("--me-dialog-height",u(o.height));return o.drupalAutoButtons&&!o.buttons&&(o.buttons=t.behaviors.mercuryDialog.prepareDialogButtons(e(l))),o.buttons&&o.buttons.length&&function(t){const o=l.querySelector(".me-dialog__buttonpane");o&&o.remove();const n=document.createElement("div");n.setAttribute("slot","footer"),n.classList.add("me-dialog__buttonpane"),l.appendChild(n),e.isEmptyObject(t)||Array.isArray(t)&&!t.length||t.forEach((e=>{const t=document.createElement("button");t.classList=e.class,t.classList.add("button"),t.appendChild(document.createTextNode(e.text)),t.addEventListener("click",e.click),n.appendChild(t)}))}(o.buttons),l}function h(t){if("MERCURY-DIALOG"!==i.tagName){const n=e("<mercury-dialog>").append(r).appendTo((o=t.appendTo)&&(o.jquery||o.nodeType)?e(o):e(document).find(o||"body").eq(0));[l]=n}else l=i;var o;g(t)}function m(e){n("beforeclose",d,r.get(0)),s.disconnect(),c.disconnect(),t.detachBehaviors(i,null,"unload"),i.close(),d.returnValue=e,n("afterclose",d,r.get(0)),r.remove()}function p(e){e={...o.dialog,...o.mercuryEditor,...a,...e},n("beforecreate",d,r.get(0),e),h(e),l[e.modal?"showModal":"show"]();const t=e.autoResize;e.autoResize=!1,n("aftercreate",d,r.get(0),e),e.autoResize=t,c.observe(l,{childList:!0,attributes:!0}),l.addEventListener("close",(()=>{m()}))}return d.show=()=>{p({modal:!1})},d.showModal=()=>{p({modal:!0})},d.applyOptions=e=>{h(e)},d.close=m,d},t.behaviors.mercuryDialog={attach:t=>{e("#drupal-mercury-dialog").length||e('<mercury-dialog id="drupal-mercury-dialog"></mercury-dialog>').appendTo("body");const o=e(t).closest("mercury-dialog");o.length&&o.trigger("dialogButtonsChange")},prepareDialogButtons:function(e){const t=[],o=e[0].querySelectorAll(".form-actions");if(0===o.length)return t;return o[o.length-1].querySelectorAll("input[type=submit], a.button, a.action-link").forEach((e=>{e.style.display="none",t.push({text:e.textContent||e.getAttribute("value"),class:e.className,click:function(t){"a"===e.tagName.toLowerCase()?e.click():["mousedown","mouseup","click"].forEach((t=>{e.dispatchEvent(new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window}))})),t.preventDefault()}})})),t}},e(window).on("dialog:aftercreate",(function(e,o,n){if("MERCURY-DIALOG"===n[0].tagName&&0===n.attr("id").indexOf("lpb-dialog-")){const e=t.behaviors.mercuryDialog.prepareDialogButtons(n);e.length&&t.mercuryDialog(n[0]).applyOptions({buttons:e})}})),e(window).on("dialog:aftercreate",(function(e,t,o){if("MERCURY-DIALOG"!==o[0].tagName)return;const n=o[0].querySelector("iframe");if(!n)return;o[0].style.setProperty("--me-dialog-height-default","fit-content");const a=n?.contentWindow?.document?.body;n.onload=()=>{!function(e){const t=e.contentWindow.document.body;t.style.width="max-content",t.style.height="fit-content",i(e,t),new ResizeObserver(function(e){return t=>{e&&t.length&&(e.style.height=`${t[0].borderBoxSize[0].blockSize+1}px`,e.style.width=`${t[0].borderBoxSize[0].inlineSize+1}px`)}}(e)).observe(t,{box:"border-box"})}(n),i(n,a)},a&&window.addEventListener("resize",(()=>{i(n,a)}))}));const a=[];e(window).on("dialog:aftercreate",(function(e,t,o){"MERCURY-DIALOG"===o[0].tagName&&o[0].hasAttribute("modal")&&"false"!==o[0].getAttribute("modal")&&a.push(o)})),e(window).on("dialog:beforeclose",(function(e,t,o){if("MERCURY-DIALOG"===o[0].tagName&&o[0].hasAttribute("modal")&&"false"!==o[0].getAttribute("modal")){const e=a.indexOf(o);e>-1&&a.splice(e,1)}})),e(window).on("dialog:aftercreate",(function(e,t,o){if("MERCURY-DIALOG"===o[0].tagName&&a.length>0){const e=o.parent(".ui-dialog"),t=e.next(".ui-widget-overlay");a.slice(-1)[0].append([e,t])}}))})(jQuery,Drupal,drupalSettings)}();

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc