diff --git a/assets/js/composer.js b/assets/js/composer.js index dfa8d81e1..6f5a8a097 100644 --- a/assets/js/composer.js +++ b/assets/js/composer.js @@ -269,6 +269,8 @@ PageComposer.prototype = { const field = event.form.querySelector(`[name="${violation.propertyPath}"]`); if (!field) { + this.handleBlockCollectionErrors(violation); + return; } @@ -292,13 +294,66 @@ PageComposer.prototype = { formGroup.appendChild(errorWrapper); } - const errorItem = document.createElement('li'); - errorItem.innerHTML = ` ${violation.title}`; + const errorItem = this.createErrorItem(violation.title); errorList.appendChild(errorItem); }); }, + /** + * In case the field is a collection, + * we need to go directly to the `.form-group` in order to display the error. + * + * @param violation + */ + handleBlockCollectionErrors(violation) { + const collectionId = `sonata-ba-field-container-${violation.propertyPath + .replace(/\[/g, '_') + .replace(/\]/g, '') + .replace(/__+/g, '___')}`; + + const formGroup = document.getElementById(collectionId); + + if (!formGroup.classList.contains('form-group')) { + return; + } + + let errorList = formGroup.querySelector( + '.help-block.sonata-ba-field-error-messages .list-unstyled .text-danger' + ); + + if (!errorList) { + const errorWrapper = document.createElement('div'); + errorWrapper.classList.add('help-block'); + errorWrapper.classList.add('sonata-ba-field-error-messages'); + + errorList = document.createElement('ul'); + errorList.classList.add('list-unstyled'); + errorList.classList.add('text-danger'); + + formGroup.firstElementChild.classList.add('text-danger'); + + errorWrapper.appendChild(errorList); + formGroup.appendChild(errorWrapper); + } + + const errorItem = this.createErrorItem(violation.title); + + errorList.appendChild(errorItem); + }, + + /** + * Create a new error item. + * @param title + * + * @returns {HTMLLIElement} + */ + createErrorItem(title) { + const errorItem = document.createElement('li'); + errorItem.innerHTML = ` ${title}`; + return errorItem; + }, + /** * Compute child count for the given block container id. * diff --git a/src/Resources/public/app.js b/src/Resources/public/app.js index f79dae533..ed29e6fbb 100644 --- a/src/Resources/public/app.js +++ b/src/Resources/public/app.js @@ -1 +1 @@ -!function(){var t={266:function(t,e,i){var o=i(311);function s(t){void 0!==window.Admin&&window.Admin.shared_setup(t)}function n(t,e){const i=e||{};this.pageId=t,this.$container=o(".page-composer"),this.$dynamicArea=o(".page-composer__dyn-content"),this.$pagePreview=o(".page-composer__page-preview"),this.$containerPreviews=this.$pagePreview.find(".page-composer__page-preview__container"),this.routes=o.extend({},i.routes||{}),this.translations=o.extend({},i.translations||{}),this.csrfTokens=o.extend({},i.csrfTokens||{})}n.prototype={init(){this.bindPagePreviewHandlers(),this.bindOrphansHandlers();const t=this,e=o(this);e.on("containerclick",(e=>{t.loadContainer(e.$container)})),e.on("containerloaded",this.handleContainerLoaded),e.on("blockcreated",this.handleBlockCreated),e.on("blockremoved",this.handleBlockRemoved),e.on("blockcreateformloaded",this.handleBlockCreateFormLoaded),e.on("blockpositionsupdate",this.handleBlockPositionsUpdate),e.on("blockeditformloaded",this.handleBlockEditFormLoaded),e.on("blockparentswitched",this.handleBlockParentSwitched),e.on("blockerrors",this.handleBlockErrors)},translate(t){return this.translations[t]?this.translations[t]:t},getRouteUrl(t,e){if(!this.routes[t])throw new Error(`Route "${t}" does not exist`);let i=this.routes[t];for(const t in e)i=i.replace(new RegExp(t),e[t]);return i},isFormControlTypeByName(t,e){if(void 0!==t){let i=t.length;const o=`[${e}]`,s=t.lastIndexOf(o);return i-=o.length,-1!==s&&s===i}return!1},handleBlockCreated(t){const e=this;o.ajax({url:this.getRouteUrl("block_preview",{BLOCK_ID:t.blockId}),type:"GET",success(i){const s=o(i);t.$childBlock.replaceWith(s),e.controlChildBlock(s);const n=e.getContainerChildCountFromList(t.parentId);null!==n&&e.updateChildCount(t.parentId,n)},error(){e.containerNotification("composer_preview_error","error",!0)}})},handleBlockRemoved(t){const e=this.getContainerChildCountFromList(t.parentId);null!==e&&this.updateChildCount(t.parentId,e)},containerNotification(t,e,i){const s=this.$dynamicArea.find(".page-composer__container__view__notice");if(1===s.length)if(this.containerNotificationTimer&&clearTimeout(this.containerNotificationTimer),s.removeClass("persist success error"),e&&s.addClass(e),s.text(this.translate(t)),s.show(),!0!==i)this.containerNotificationTimer=setTimeout((()=>{s.hide().empty()}),2e3);else{const t=o('x');t.on("click",(()=>{s.hide().empty()})),s.addClass("persist"),s.append(t)}},handleBlockPositionsUpdate(t){const e=this;this.containerNotification("composer_update_saving"),o.ajax({url:this.getRouteUrl("save_blocks_positions"),type:"POST",data:{disposition:t.disposition},success(){e.containerNotification("composer_update_saved","success")},error(){e.containerNotification("composer_update_error","error",!0)}})},handleBlockParentSwitched(t){const e=o(`.block-preview-${t.previousParentId}`).find(".child-count"),i=parseInt(e.text().trim(),10),s=o(`.block-preview-${t.newParentId}`).find(".child-count"),n=parseInt(s.text().trim(),10);this.updateChildCount(t.previousParentId,i-1),this.updateChildCount(t.newParentId,n+1)},handleBlockErrors(t){t.form.querySelectorAll(".help-block.sonata-ba-field-error-messages").forEach((t=>{t.remove()})),t.form.querySelectorAll(".has-error").forEach((t=>{t.classList.remove("has-error")})),t.form.querySelectorAll("button").forEach((t=>{t.removeAttribute("disabled")})),t.violations.forEach((e=>{const i=t.form.querySelector(`[name="${e.propertyPath}"]`);if(!i)return;const o=i.closest(".form-group");let s=o.querySelector(".help-block.sonata-ba-field-error-messages .list-unstyled");if(!s){const t=document.createElement("div");t.classList.add("help-block"),t.classList.add("sonata-ba-field-error-messages"),s=document.createElement("ul"),s.classList.add("list-unstyled"),o.classList.add("has-error"),t.appendChild(s),o.appendChild(t)}const n=document.createElement("li");n.innerHTML=` ${e.title}`,s.appendChild(n)}))},getContainerChildCountFromList(t){const e=this.$dynamicArea.find(`.block-view-${t}`);if(0===e.length)return null;const i=e.find(".page-composer__container__child");let s=0;return i.each((function(){void 0!==o(this).attr("data-block-id")&&(s+=1)})),s},updateChildCount(t,e){const i=o(`.block-preview-${t}`),s=o(`.block-view-${t}`);i.length>0&&i.find(".child-count").text(e),s.length>0&&s.find(".page-composer__container__child-count span").text(e)},handleBlockCreateFormLoaded(t){const e=this,i=this.$dynamicArea.find(".page-composer__container__children");let n=null,r=null;n=o(['
  • ','','

    ','',"

    ","
    ",'
    ',`${t.blockTypeLabel}`,"
    ",'
    ',"
    ","
  • "].join("")),r=n.find(".page-composer__container__child__content"),r.append(t.response),i.append(n),r.show();const a=n.find("form"),l=a.attr("action"),c=a.attr("method"),p=a.find("input, select, textarea"),h=a.find(".form-actions"),d=this.$dynamicArea.find(".page-composer__container__child__name");let u,f,m;o(document).scrollTo(n,200),p.each((function(){const s=o(this),n=s.attr("name");e.isFormControlTypeByName(n,"name")?(u=s,d.find(".page-composer__container__child__name__input").on("propertychange keyup input paste",(function(){u.val(o(this).val())}))):e.isFormControlTypeByName(n,"parent")?(f=s,f.val(t.containerId),f.parent().parent().hide()):e.isFormControlTypeByName(n,"position")&&(m=s,m.val(i.find("> *").length-1),m.closest(".form-group").hide())})),h.each((function(){const t=o(this),i=o(`${e.translate("cancel")}`);i.on("click",(t=>{t.preventDefault(),n.remove(),o(document).scrollTo(e.$dynamicArea,200)})),t.append(i)})),a.on("submit",(i=>{i.preventDefault();let s=u.val();return""===s&&(s=t.blockType),o.ajax({url:l,data:a.serialize(),type:c,headers:{Accept:"application/json"},success(i){const r=o.Event("blockcreated");r.$childBlock=n,r.parentId=t.containerId,r.blockId=i.objectId,r.blockName=s,r.blockType=t.blockType,o(e).trigger(r)},error(t){const i=o.Event("blockerrors");i.violations=t.responseJSON.violations,i.form=a.get(0),o(e).trigger(i)}}),!1})),s(n)},toggleChildBlock(t){const e="page-composer__container__child--expanded",i=this.$dynamicArea.find(".page-composer__container__child"),o=t.find(".page-composer__container__child__name"),s=o.find(".page-composer__container__child__name__input");t.hasClass(e)?(t.removeClass(e),o.has(".page-composer__container__child__name__input")&&o.html(s.val())):(i.not(t).removeClass(e),t.addClass(e))},handleBlockEditFormLoaded(t){const e=this,i=t.$block.find(".page-composer__container__child__edit h4"),s=t.$block.find(".page-composer__container__child__content"),n=t.$block.find(".page-composer__container__child__loader"),r=t.$block.find(".sonata-ba-form-actions a.btn.btn-danger"),a=s.find("form"),l=a.attr("action"),c=a.attr("method"),p=t.$block.find(".page-composer__container__child__edit small").text().trim();let h,d;a.find("input").each((function(){const t=o(this),s=t.attr("name");if(e.isFormControlTypeByName(s,"name")){h=t,i.html(``);const e=i.find("input");e.bind("propertychange keyup input paste",(()=>{h.val(e.val())})),e.on("click",(t=>{t.stopPropagation(),t.preventDefault()}))}else e.isFormControlTypeByName(s,"position")&&(d=t,d.closest(".form-group").hide())})),r.on("click",(i=>{i.preventDefault(),e.confirmRemoveContainer(t.$block)})),a.on("submit",(r=>(r.preventDefault(),n.show(),o.ajax({url:l,data:a.serialize(),type:c,headers:{Accept:"application/json"},success(){n.hide(),void 0!==h&&i.text(""!==h.val()?h.val():p),t.$block.removeClass("page-composer__container__child--expanded"),s.empty()},error(t){n.hide();const i=o.Event("blockerrors");i.violations=t.responseJSON.violations,i.form=a.get(0),o(e).trigger(i)}}),!1)))},controlChildBlock(t){const e=this,i=t.find(".page-composer__container__child__content"),n=t.find(".page-composer__container__child__loader"),r=t.find(".page-composer__container__child__edit"),a=r.attr("href"),l=t.find(".page-composer__container__child__remove").find("a"),c=t.find(".page-composer__container__child__switch-enabled"),p=c.attr("data-label-enable"),h=c.attr("data-label-disable"),d=c.find("a"),u=d.find("i"),f=t.find(".page-composer__container__child__enabled"),m=f.find("small"),g=f.find("i"),_=d.attr("href");let v=parseInt(t.attr("data-block-enabled"),2);r.click((r=>{r.preventDefault(),i.find("form").length>0?e.toggleChildBlock(t):(n.show(),o.ajax({url:a,success(r){i.html(r);const a=o.Event("blockeditformloaded");a.$block=t,o(e).trigger(a),s(i),n.hide(),e.toggleChildBlock(t)}}))})),d.on("click",(i=>{i.preventDefault(),o.ajax({url:_,type:"POST",data:{_sonata_csrf_token:e.csrfTokens.switchEnabled,value:!v},success(){if(t.attr("data-block-enabled",v?"0":"1"),v=!v,d.toggleClass("bg-yellow bg-green"),u.toggleClass("fa-toggle-off fa-toggle-on"),v?d.html(h):d.html(p),m.toggleClass("bg-yellow bg-green"),g.toggleClass("fa-times fa-check"),t.has("form")){t.find("form").find("input").each((function(){const t=o(this),i=t.attr("name");e.isFormControlTypeByName(i,"enabled")&&t.val(parseInt(!v,10))}))}},error(){e.containerNotification("composer_status_error","error",!0)}})})),l.on("click",(i=>{i.preventDefault(),e.confirmRemoveContainer(t)}))},confirmRemoveContainer(t){const e=this,i=t.find(".page-composer__container__child__remove").find("a");let s=t.find(".page-composer__container__child__remove__dialog");const n=i.attr("href"),r=parseInt(t.attr("data-parent-block-id"),10);0===s.length&&(s=o(['"].join("")),t.append(s));s.find(".btn-primary").on("click",(()=>{o.ajax({url:n,type:"POST",data:{_method:"DELETE",_sonata_csrf_token:e.csrfTokens.remove},success(){t.remove();const i=o.Event("blockremoved");i.parentId=r,o(e).trigger(i)}}),s.modal("hide"),0!==o(".modal-backdrop").length&&o(".modal-backdrop").hide()})),s.modal("show")},handleContainerLoaded(t){const e=this,i=this.$dynamicArea.find(".page-composer__container__children"),n=this.$dynamicArea.find(".page-composer__container__child"),r=this.$dynamicArea.find(".page-composer__block-type-selector"),a=r.find(".page-composer__block-type-selector__loader"),l=r.find("select"),c=r.find(".page-composer__block-type-selector__confirm"),p=c.attr("href");s(this.$dynamicArea),c.on("click",(i=>{i.preventDefault(),a.css("display","inline-block");const s=l.val(),n=l.find("option:selected").text().trim();o.ajax({url:p,data:{type:s},success(i){a.hide(),o(e).trigger(o.Event("blockcreateformloaded",{response:i,containerId:t.containerId,blockType:s,blockTypeLabel:n}))}})})),i.sortable({revert:!0,cursor:"move",revertDuration:200,delay:200,helper(t,e){const i=o(e),s=i.find(".page-composer__container__child__edit h4").text().trim();return i.removeClass("page-composer__container__child--expanded"),o(`

    ${s}

    `)},update(){const t=[];if(i.find(".page-composer__container__child").each((function(i){const s=o(this),n=s.attr("data-parent-block-id"),r=s.attr("data-block-id");void 0!==r&&t.push({id:parseInt(r,10),position:i,parent_id:parseInt(n,10),page_id:e.pageId})})),t.length>0){const i=o.Event("blockpositionsupdate");i.disposition=t,o(e).trigger(i)}}}),n.each((function(){e.controlChildBlock(o(this))}))},bindPagePreviewHandlers(){const t=this;this.$containerPreviews.each((function(){const e=o(this);e.on("click",(i=>{i.preventDefault();const s=o.Event("containerclick");s.$container=e,o(t).trigger(s)}))})).droppable({hoverClass:"hover",tolerance:"pointer",revert:!0,connectToSortable:".page-composer__container__children",accept(t){let e=o(this).attr("data-block-allowlist");if(""===e)return!0;e=e.split(",");const i=o(t).attr("data-block-type");return-1!==e.indexOf(i)},drop(e,i){let s=i.draggable.attr("data-block-id");if(void 0!==s){i.helper.remove();const e=o(this),n=parseInt(i.draggable.attr("data-parent-block-id"),10),r=parseInt(e.attr("data-block-id"),10);s=parseInt(s,10),n!==r&&(e.addClass("dropped"),e.on("webkitAnimationEnd oanimationend msAnimationEnd animationend",(()=>{e.removeClass("dropped")})),o.ajax({url:t.getRouteUrl("block_switch_parent"),data:{block_id:s,parent_id:r},success(){i.draggable.remove();const e=o.Event("blockparentswitched");e.previousParentId=n,e.newParentId=r,e.blockId=s,o(t).trigger(e)}}))}}}),this.$containerPreviews.length>0&&this.loadContainer(this.$containerPreviews.eq(0))},bindOrphansHandlers(){const t=this;this.$container.find(".page-composer__orphan-container").each((function(){const e=o(this);e.on("click",(i=>{i.preventDefault();const s=o.Event("containerclick");s.$container=e,o(t).trigger(s)}))}))},loadContainer(t){const e=t.attr("href"),i=t.attr("data-block-id"),s=this;this.$dynamicArea.empty(),this.$containerPreviews.removeClass("active"),this.$container.find(".page-composer__orphan-container").removeClass("active"),t.addClass("active"),o.ajax({url:e,success(t){s.$dynamicArea.html(t),o(document).scrollTo(s.$dynamicArea,200,{offset:{top:-100}});const e=o.Event("containerloaded");e.containerId=i,o(s).trigger(e)}})}},o((()=>{o("[data-page-composer]").each((function(){const t=o(this).data("page-composer");new n(t.pageId,t).init()}))}))},916:function(t,e,i){var o=i(311);const s="treeView",n={togglersAttribute:"[data-treeview-toggler]",toggledState:"is-toggled"};function r(t,e){this.element=t,this.options=o.extend({},n,e),this.defaults=n,this.name=s}r.prototype={init(){this.setElements(),this.setEvents()},setElements(){this.$element=o(this.element),this.$togglers=this.$element.find(this.options.togglersAttribute)},setEvents(){this.$togglers.on("click",this.toggle.bind(this))},toggle(t){const e=o(t.currentTarget).parent();e.toggleClass(this.options.toggledState),e.next("ul").slideToggle()}},o.fn[s]=function(t){return this.each((function(){if(!o.data(this,`plugin_${s}`)){const e=new r(this,t);e.init(),o.data(this,`plugin_${s}`,e)}}))}},400:function(t,e,i){var o,s,n;!function(r){"use strict";s=[i(311),i(592)],void 0===(n="function"==typeof(o=function(t){return t.extend(t.expr.pseudos,{data:t.expr.createPseudo?t.expr.createPseudo((function(e){return function(i){return!!t.data(i,e)}})):function(e,i,o){return!!t.data(e,o[3])}})})?o.apply(e,s):o)||(t.exports=n)}()},870:function(t,e,i){var o,s,n;!function(r){"use strict";s=[i(311),i(592)],void 0===(n="function"==typeof(o=function(t){return t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())})?o.apply(e,s):o)||(t.exports=n)}()},624:function(t,e,i){var o,s,n;!function(r){"use strict";s=[i(311),i(592)],o=function(t){return t.ui.plugin={add:function(e,i,o){var s,n=t.ui[e].prototype;for(s in o)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([i,o[s]])},call:function(t,e,i,o){var s,n=t.plugins[e];if(n&&(o||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(s=0;s",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,o){o=t(o||this.defaultElement||this)[0],this.element=t(o),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},o!==this&&(t.data(o,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===o&&this.destroy()}}),this.document=t(o.style?o.ownerDocument:o.document||o),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,(function(t,i){e._removeClass(i,t)})),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var o,s,n,r=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(r={},o=e.split("."),e=o.shift(),o.length){for(s=r[e]=t.widget.extend({},this.options[e]),n=0;n0)&&(this.handle=this._getHandle(e),!!this.handle&&(this._blurActiveElement(e),this._blockFrames(!0===i.iframeFix?"iframe":i.iframeFix),!0))},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map((function(){var e=t(this);return t("
    ").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]}))},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]);t(e.target).closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter((function(){return"fixed"===t(this).css("position")})).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),!1===this._trigger("start",e)?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var o=this._uiHash();if(!1===this._trigger("drag",e,o))return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=o.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,o=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(o=t.ui.ddmanager.drop(this,e)),this.dropped&&(o=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!o||"valid"===this.options.revert&&o||!0===this.options.revert||"function"==typeof this.options.revert&&this.options.revert.call(this.element,o)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),(function(){!1!==i._trigger("stop",e)&&i._clear()})):!1!==this._trigger("stop",e)&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return!this.options.handle||!!t(e.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,o="function"==typeof i.helper,s=o?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),o&&s[0]===this.element[0]&&this._setPositionRelative(),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),Array.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,o,s=this.options,n=this.document[0];this.relativeContainer=null,s.containment?"window"!==s.containment?"document"!==s.containment?s.containment.constructor!==Array?("parent"===s.containment&&(s.containment=this.helper[0].parentNode),(o=(i=t(s.containment))[0])&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(o.scrollWidth,o.offsetWidth):o.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(o.scrollHeight,o.offsetHeight):o.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i)):this.containment=s.containment:this.containment=[0,0,t(n).width()-this.helperProportions.width-this.margins.left,(t(n).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=null},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,o=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:o?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:o?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,o,s,n,r=this.options,a=this._isRootNode(this.scrollParent[0]),l=t.pageX,c=t.pageY;return a&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(o=this.relativeContainer.offset(),i=[this.containment[0]+o.left,this.containment[1]+o.top,this.containment[2]+o.left,this.containment[3]+o.top]):i=this.containment,t.pageX-this.offset.click.lefti[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(c=i[3]+this.offset.click.top)),r.grid&&(s=r.grid[1]?this.originalPageY+Math.round((c-this.originalPageY)/r.grid[1])*r.grid[1]:this.originalPageY,c=i?s-this.offset.click.top>=i[1]||s-this.offset.click.top>i[3]?s:s-this.offset.click.top>=i[1]?s-r.grid[1]:s+r.grid[1]:s,n=r.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/r.grid[0])*r.grid[0]:this.originalPageX,l=i?n-this.offset.click.left>=i[0]||n-this.offset.click.left>i[2]?n:n-this.offset.click.left>=i[0]?n-r.grid[0]:n+r.grid[0]:n),"y"===r.axis&&(l=this.originalPageX),"x"===r.axis&&(c=this.originalPageY)),{top:c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,o){return o=o||this._uiHash(),t.ui.plugin.call(this,e,[i,o,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),o.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,o)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,o){var s=t.extend({},i,{item:o.element});o.sortables=[],t(o.options.connectToSortable).each((function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(o.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,s))}))},stop:function(e,i,o){var s=t.extend({},i,{item:o.element});o.cancelHelperRemoval=!1,t.each(o.sortables,(function(){var t=this;t.isOver?(t.isOver=0,o.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,s))}))},drag:function(e,i,o){t.each(o.sortables,(function(){var s=!1,n=this;n.positionAbs=o.positionAbs,n.helperProportions=o.helperProportions,n.offset.click=o.offset.click,n._intersectsWith(n.containerCache)&&(s=!0,t.each(o.sortables,(function(){return this.positionAbs=o.positionAbs,this.helperProportions=o.helperProportions,this.offset.click=o.offset.click,this!==n&&this._intersectsWith(this.containerCache)&&t.contains(n.element[0],this.element[0])&&(s=!1),s}))),s?(n.isOver||(n.isOver=1,o._parent=i.helper.parent(),n.currentItem=i.helper.appendTo(n.element).data("ui-sortable-item",!0),n.options._helper=n.options.helper,n.options.helper=function(){return i.helper[0]},e.target=n.currentItem[0],n._mouseCapture(e,!0),n._mouseStart(e,!0,!0),n.offset.click.top=o.offset.click.top,n.offset.click.left=o.offset.click.left,n.offset.parent.left-=o.offset.parent.left-n.offset.parent.left,n.offset.parent.top-=o.offset.parent.top-n.offset.parent.top,o._trigger("toSortable",e),o.dropped=n.element,t.each(o.sortables,(function(){this.refreshPositions()})),o.currentItem=o.element,n.fromOutside=o),n.currentItem&&(n._mouseDrag(e),i.position=n.position)):n.isOver&&(n.isOver=0,n.cancelHelperRemoval=!0,n.options._revert=n.options.revert,n.options.revert=!1,n._trigger("out",e,n._uiHash(n)),n._mouseStop(e,!0),n.options.revert=n.options._revert,n.options.helper=n.options._helper,n.placeholder&&n.placeholder.remove(),i.helper.appendTo(o._parent),o._refreshOffsets(e),i.position=o._generatePosition(e,!0),o._trigger("fromSortable",e),o.dropped=!1,t.each(o.sortables,(function(){this.refreshPositions()})))}))}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,o){var s=t("body"),n=o.options;s.css("cursor")&&(n._cursor=s.css("cursor")),s.css("cursor",n.cursor)},stop:function(e,i,o){var s=o.options;s._cursor&&t("body").css("cursor",s._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,o){var s=t(i.helper),n=o.options;s.css("opacity")&&(n._opacity=s.css("opacity")),s.css("opacity",n.opacity)},stop:function(e,i,o){var s=o.options;s._opacity&&t(i.helper).css("opacity",s._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,o){var s=o.options,n=!1,r=o.scrollParentNotHidden[0],a=o.document[0];r!==a&&"HTML"!==r.tagName?(s.axis&&"x"===s.axis||(o.overflowOffset.top+r.offsetHeight-e.pageY=0;d--)c=(l=o.snapElements[d].left-o.margins.left)+o.snapElements[d].width,h=(p=o.snapElements[d].top-o.margins.top)+o.snapElements[d].height,_c+m||bh+m||!t.contains(o.snapElements[d].item.ownerDocument,o.snapElements[d].item)?(o.snapElements[d].snapping&&o.options.snap.release&&o.options.snap.release.call(o.element,e,t.extend(o._uiHash(),{snapItem:o.snapElements[d].item})),o.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(s=Math.abs(p-b)<=m,n=Math.abs(h-v)<=m,r=Math.abs(l-_)<=m,a=Math.abs(c-g)<=m,s&&(i.position.top=o._convertPositionTo("relative",{top:p-o.helperProportions.height,left:0}).top),n&&(i.position.top=o._convertPositionTo("relative",{top:h,left:0}).top),r&&(i.position.left=o._convertPositionTo("relative",{top:0,left:l-o.helperProportions.width}).left),a&&(i.position.left=o._convertPositionTo("relative",{top:0,left:c}).left)),u=s||n||r||a,"outer"!==f.snapMode&&(s=Math.abs(p-v)<=m,n=Math.abs(h-b)<=m,r=Math.abs(l-g)<=m,a=Math.abs(c-_)<=m,s&&(i.position.top=o._convertPositionTo("relative",{top:p,left:0}).top),n&&(i.position.top=o._convertPositionTo("relative",{top:h-o.helperProportions.height,left:0}).top),r&&(i.position.left=o._convertPositionTo("relative",{top:0,left:l}).left),a&&(i.position.left=o._convertPositionTo("relative",{top:0,left:c-o.helperProportions.width}).left)),!o.snapElements[d].snapping&&(s||n||r||a||u)&&o.options.snap.snap&&o.options.snap.snap.call(o.element,e,t.extend(o._uiHash(),{snapItem:o.snapElements[d].item})),o.snapElements[d].snapping=s||n||r||a||u)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,o){var s,n=o.options,r=t.makeArray(t(n.stack)).sort((function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)}));r.length&&(s=parseInt(t(r[0]).css("zIndex"),10)||0,t(r).each((function(e){t(this).css("zIndex",s+e)})),this.css("zIndex",s+r.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,o){var s=t(i.helper),n=o.options;s.css("zIndex")&&(n._zIndex=s.css("zIndex")),s.css("zIndex",n.zIndex)},stop:function(e,i,o){var s=o.options;s._zIndex&&t(i.helper).css("zIndex",s._zIndex)}}),t.ui.draggable})?o.apply(e,s):o)||(t.exports=n)}()},709:function(t,e,i){var o,s,n;!function(r){"use strict";s=[i(311),i(285),i(236),i(592),i(891)],o=function(t){t.widget("ui.droppable",{version:"1.13.2",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,e=this.options,i=e.accept;this.isover=!1,this.isout=!0,this.accept="function"==typeof i?i:function(t){return t.is(i)},this.proportions=function(){if(!arguments.length)return t||(t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight});t=arguments[0]},this._addToManager(e.scope),e.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;e=e&&t=p&&r<=d||l>=p&&l<=d||rd)&&(n>=c&&n<=h||a>=c&&a<=h||nh);default:return!1}}}(),t.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(e,i){var o,s,n=t.ui.ddmanager.droppables[e.options.scope]||[],r=i?i.type:null,a=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(o=0;o=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})?o.apply(e,s):o)||(t.exports=n)}()},311:function(t){"use strict";t.exports=jQuery}},e={};function i(o){var s=e[o];if(void 0!==s)return s.exports;var n=e[o]={exports:{}};return t[o](n,n.exports,i),n.exports}i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,{a:e}),e},i.d=function(t,e){for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){"use strict";i(709),i(266),i(916)}()}(); \ No newline at end of file +!function(){var t={266:function(t,e,i){var o=i(311);function s(t){void 0!==window.Admin&&window.Admin.shared_setup(t)}function n(t,e){const i=e||{};this.pageId=t,this.$container=o(".page-composer"),this.$dynamicArea=o(".page-composer__dyn-content"),this.$pagePreview=o(".page-composer__page-preview"),this.$containerPreviews=this.$pagePreview.find(".page-composer__page-preview__container"),this.routes=o.extend({},i.routes||{}),this.translations=o.extend({},i.translations||{}),this.csrfTokens=o.extend({},i.csrfTokens||{})}n.prototype={init(){this.bindPagePreviewHandlers(),this.bindOrphansHandlers();const t=this,e=o(this);e.on("containerclick",(e=>{t.loadContainer(e.$container)})),e.on("containerloaded",this.handleContainerLoaded),e.on("blockcreated",this.handleBlockCreated),e.on("blockremoved",this.handleBlockRemoved),e.on("blockcreateformloaded",this.handleBlockCreateFormLoaded),e.on("blockpositionsupdate",this.handleBlockPositionsUpdate),e.on("blockeditformloaded",this.handleBlockEditFormLoaded),e.on("blockparentswitched",this.handleBlockParentSwitched),e.on("blockerrors",this.handleBlockErrors)},translate(t){return this.translations[t]?this.translations[t]:t},getRouteUrl(t,e){if(!this.routes[t])throw new Error(`Route "${t}" does not exist`);let i=this.routes[t];for(const t in e)i=i.replace(new RegExp(t),e[t]);return i},isFormControlTypeByName(t,e){if(void 0!==t){let i=t.length;const o=`[${e}]`,s=t.lastIndexOf(o);return i-=o.length,-1!==s&&s===i}return!1},handleBlockCreated(t){const e=this;o.ajax({url:this.getRouteUrl("block_preview",{BLOCK_ID:t.blockId}),type:"GET",success(i){const s=o(i);t.$childBlock.replaceWith(s),e.controlChildBlock(s);const n=e.getContainerChildCountFromList(t.parentId);null!==n&&e.updateChildCount(t.parentId,n)},error(){e.containerNotification("composer_preview_error","error",!0)}})},handleBlockRemoved(t){const e=this.getContainerChildCountFromList(t.parentId);null!==e&&this.updateChildCount(t.parentId,e)},containerNotification(t,e,i){const s=this.$dynamicArea.find(".page-composer__container__view__notice");if(1===s.length)if(this.containerNotificationTimer&&clearTimeout(this.containerNotificationTimer),s.removeClass("persist success error"),e&&s.addClass(e),s.text(this.translate(t)),s.show(),!0!==i)this.containerNotificationTimer=setTimeout((()=>{s.hide().empty()}),2e3);else{const t=o('x');t.on("click",(()=>{s.hide().empty()})),s.addClass("persist"),s.append(t)}},handleBlockPositionsUpdate(t){const e=this;this.containerNotification("composer_update_saving"),o.ajax({url:this.getRouteUrl("save_blocks_positions"),type:"POST",data:{disposition:t.disposition},success(){e.containerNotification("composer_update_saved","success")},error(){e.containerNotification("composer_update_error","error",!0)}})},handleBlockParentSwitched(t){const e=o(`.block-preview-${t.previousParentId}`).find(".child-count"),i=parseInt(e.text().trim(),10),s=o(`.block-preview-${t.newParentId}`).find(".child-count"),n=parseInt(s.text().trim(),10);this.updateChildCount(t.previousParentId,i-1),this.updateChildCount(t.newParentId,n+1)},handleBlockErrors(t){t.form.querySelectorAll(".help-block.sonata-ba-field-error-messages").forEach((t=>{t.remove()})),t.form.querySelectorAll(".has-error").forEach((t=>{t.classList.remove("has-error")})),t.form.querySelectorAll("button").forEach((t=>{t.removeAttribute("disabled")})),t.violations.forEach((e=>{const i=t.form.querySelector(`[name="${e.propertyPath}"]`);if(!i)return void this.handleBlockCollectionErrors(e);const o=i.closest(".form-group");let s=o.querySelector(".help-block.sonata-ba-field-error-messages .list-unstyled");if(!s){const t=document.createElement("div");t.classList.add("help-block"),t.classList.add("sonata-ba-field-error-messages"),s=document.createElement("ul"),s.classList.add("list-unstyled"),o.classList.add("has-error"),t.appendChild(s),o.appendChild(t)}const n=document.createElement("li");n.innerHTML=` ${e.title}`,s.appendChild(n)}))},handleBlockCollectionErrors(t){const e=`sonata-ba-field-container-${t.propertyPath.replace(/\[/g,"_").replace(/\]/g,"").replace(/__+/g,"___")}`,i=document.getElementById(e);if(!i.classList.contains("form-group"))return;let o=i.querySelector(".help-block.sonata-ba-field-error-messages .list-unstyled .text-danger");if(!o){const t=document.createElement("div");t.classList.add("help-block"),t.classList.add("sonata-ba-field-error-messages"),o=document.createElement("ul"),o.classList.add("list-unstyled"),o.classList.add("text-danger"),i.firstElementChild.classList.add("text-danger"),t.appendChild(o),i.appendChild(t)}const s=this.createErrorItem(t.title);o.appendChild(s)},createErrorItem(t){const e=document.createElement("li");return e.innerHTML=` ${t}`,e},getContainerChildCountFromList(t){const e=this.$dynamicArea.find(`.block-view-${t}`);if(0===e.length)return null;const i=e.find(".page-composer__container__child");let s=0;return i.each((function(){void 0!==o(this).attr("data-block-id")&&(s+=1)})),s},updateChildCount(t,e){const i=o(`.block-preview-${t}`),s=o(`.block-view-${t}`);i.length>0&&i.find(".child-count").text(e),s.length>0&&s.find(".page-composer__container__child-count span").text(e)},handleBlockCreateFormLoaded(t){const e=this,i=this.$dynamicArea.find(".page-composer__container__children");let n=null,r=null;n=o(['
  • ','','

    ','',"

    ","
    ",'
    ',`${t.blockTypeLabel}`,"
    ",'
    ',"
    ","
  • "].join("")),r=n.find(".page-composer__container__child__content"),r.append(t.response),i.append(n),r.show();const a=n.find("form"),l=a.attr("action"),c=a.attr("method"),p=a.find("input, select, textarea"),h=a.find(".form-actions"),d=this.$dynamicArea.find(".page-composer__container__child__name");let u,f,m;o(document).scrollTo(n,200),p.each((function(){const s=o(this),n=s.attr("name");e.isFormControlTypeByName(n,"name")?(u=s,d.find(".page-composer__container__child__name__input").on("propertychange keyup input paste",(function(){u.val(o(this).val())}))):e.isFormControlTypeByName(n,"parent")?(f=s,f.val(t.containerId),f.parent().parent().hide()):e.isFormControlTypeByName(n,"position")&&(m=s,m.val(i.find("> *").length-1),m.closest(".form-group").hide())})),h.each((function(){const t=o(this),i=o(`${e.translate("cancel")}`);i.on("click",(t=>{t.preventDefault(),n.remove(),o(document).scrollTo(e.$dynamicArea,200)})),t.append(i)})),a.on("submit",(i=>{i.preventDefault();let s=u.val();return""===s&&(s=t.blockType),o.ajax({url:l,data:a.serialize(),type:c,headers:{Accept:"application/json"},success(i){const r=o.Event("blockcreated");r.$childBlock=n,r.parentId=t.containerId,r.blockId=i.objectId,r.blockName=s,r.blockType=t.blockType,o(e).trigger(r)},error(t){const i=o.Event("blockerrors");i.violations=t.responseJSON.violations,i.form=a.get(0),o(e).trigger(i)}}),!1})),s(n)},toggleChildBlock(t){const e="page-composer__container__child--expanded",i=this.$dynamicArea.find(".page-composer__container__child"),o=t.find(".page-composer__container__child__name"),s=o.find(".page-composer__container__child__name__input");t.hasClass(e)?(t.removeClass(e),o.has(".page-composer__container__child__name__input")&&o.html(s.val())):(i.not(t).removeClass(e),t.addClass(e))},handleBlockEditFormLoaded(t){const e=this,i=t.$block.find(".page-composer__container__child__edit h4"),s=t.$block.find(".page-composer__container__child__content"),n=t.$block.find(".page-composer__container__child__loader"),r=t.$block.find(".sonata-ba-form-actions a.btn.btn-danger"),a=s.find("form"),l=a.attr("action"),c=a.attr("method"),p=t.$block.find(".page-composer__container__child__edit small").text().trim();let h,d;a.find("input").each((function(){const t=o(this),s=t.attr("name");if(e.isFormControlTypeByName(s,"name")){h=t,i.html(``);const e=i.find("input");e.bind("propertychange keyup input paste",(()=>{h.val(e.val())})),e.on("click",(t=>{t.stopPropagation(),t.preventDefault()}))}else e.isFormControlTypeByName(s,"position")&&(d=t,d.closest(".form-group").hide())})),r.on("click",(i=>{i.preventDefault(),e.confirmRemoveContainer(t.$block)})),a.on("submit",(r=>(r.preventDefault(),n.show(),o.ajax({url:l,data:a.serialize(),type:c,headers:{Accept:"application/json"},success(){n.hide(),void 0!==h&&i.text(""!==h.val()?h.val():p),t.$block.removeClass("page-composer__container__child--expanded"),s.empty()},error(t){n.hide();const i=o.Event("blockerrors");i.violations=t.responseJSON.violations,i.form=a.get(0),o(e).trigger(i)}}),!1)))},controlChildBlock(t){const e=this,i=t.find(".page-composer__container__child__content"),n=t.find(".page-composer__container__child__loader"),r=t.find(".page-composer__container__child__edit"),a=r.attr("href"),l=t.find(".page-composer__container__child__remove").find("a"),c=t.find(".page-composer__container__child__switch-enabled"),p=c.attr("data-label-enable"),h=c.attr("data-label-disable"),d=c.find("a"),u=d.find("i"),f=t.find(".page-composer__container__child__enabled"),m=f.find("small"),g=f.find("i"),_=d.attr("href");let v=parseInt(t.attr("data-block-enabled"),2);r.click((r=>{r.preventDefault(),i.find("form").length>0?e.toggleChildBlock(t):(n.show(),o.ajax({url:a,success(r){i.html(r);const a=o.Event("blockeditformloaded");a.$block=t,o(e).trigger(a),s(i),n.hide(),e.toggleChildBlock(t)}}))})),d.on("click",(i=>{i.preventDefault(),o.ajax({url:_,type:"POST",data:{_sonata_csrf_token:e.csrfTokens.switchEnabled,value:!v},success(){if(t.attr("data-block-enabled",v?"0":"1"),v=!v,d.toggleClass("bg-yellow bg-green"),u.toggleClass("fa-toggle-off fa-toggle-on"),v?d.html(h):d.html(p),m.toggleClass("bg-yellow bg-green"),g.toggleClass("fa-times fa-check"),t.has("form")){t.find("form").find("input").each((function(){const t=o(this),i=t.attr("name");e.isFormControlTypeByName(i,"enabled")&&t.val(parseInt(!v,10))}))}},error(){e.containerNotification("composer_status_error","error",!0)}})})),l.on("click",(i=>{i.preventDefault(),e.confirmRemoveContainer(t)}))},confirmRemoveContainer(t){const e=this,i=t.find(".page-composer__container__child__remove").find("a");let s=t.find(".page-composer__container__child__remove__dialog");const n=i.attr("href"),r=parseInt(t.attr("data-parent-block-id"),10);0===s.length&&(s=o(['"].join("")),t.append(s));s.find(".btn-primary").on("click",(()=>{o.ajax({url:n,type:"POST",data:{_method:"DELETE",_sonata_csrf_token:e.csrfTokens.remove},success(){t.remove();const i=o.Event("blockremoved");i.parentId=r,o(e).trigger(i)}}),s.modal("hide"),0!==o(".modal-backdrop").length&&o(".modal-backdrop").hide()})),s.modal("show")},handleContainerLoaded(t){const e=this,i=this.$dynamicArea.find(".page-composer__container__children"),n=this.$dynamicArea.find(".page-composer__container__child"),r=this.$dynamicArea.find(".page-composer__block-type-selector"),a=r.find(".page-composer__block-type-selector__loader"),l=r.find("select"),c=r.find(".page-composer__block-type-selector__confirm"),p=c.attr("href");s(this.$dynamicArea),c.on("click",(i=>{i.preventDefault(),a.css("display","inline-block");const s=l.val(),n=l.find("option:selected").text().trim();o.ajax({url:p,data:{type:s},success(i){a.hide(),o(e).trigger(o.Event("blockcreateformloaded",{response:i,containerId:t.containerId,blockType:s,blockTypeLabel:n}))}})})),i.sortable({revert:!0,cursor:"move",revertDuration:200,delay:200,helper(t,e){const i=o(e),s=i.find(".page-composer__container__child__edit h4").text().trim();return i.removeClass("page-composer__container__child--expanded"),o(`

    ${s}

    `)},update(){const t=[];if(i.find(".page-composer__container__child").each((function(i){const s=o(this),n=s.attr("data-parent-block-id"),r=s.attr("data-block-id");void 0!==r&&t.push({id:parseInt(r,10),position:i,parent_id:parseInt(n,10),page_id:e.pageId})})),t.length>0){const i=o.Event("blockpositionsupdate");i.disposition=t,o(e).trigger(i)}}}),n.each((function(){e.controlChildBlock(o(this))}))},bindPagePreviewHandlers(){const t=this;this.$containerPreviews.each((function(){const e=o(this);e.on("click",(i=>{i.preventDefault();const s=o.Event("containerclick");s.$container=e,o(t).trigger(s)}))})).droppable({hoverClass:"hover",tolerance:"pointer",revert:!0,connectToSortable:".page-composer__container__children",accept(t){let e=o(this).attr("data-block-allowlist");if(""===e)return!0;e=e.split(",");const i=o(t).attr("data-block-type");return-1!==e.indexOf(i)},drop(e,i){let s=i.draggable.attr("data-block-id");if(void 0!==s){i.helper.remove();const e=o(this),n=parseInt(i.draggable.attr("data-parent-block-id"),10),r=parseInt(e.attr("data-block-id"),10);s=parseInt(s,10),n!==r&&(e.addClass("dropped"),e.on("webkitAnimationEnd oanimationend msAnimationEnd animationend",(()=>{e.removeClass("dropped")})),o.ajax({url:t.getRouteUrl("block_switch_parent"),data:{block_id:s,parent_id:r},success(){i.draggable.remove();const e=o.Event("blockparentswitched");e.previousParentId=n,e.newParentId=r,e.blockId=s,o(t).trigger(e)}}))}}}),this.$containerPreviews.length>0&&this.loadContainer(this.$containerPreviews.eq(0))},bindOrphansHandlers(){const t=this;this.$container.find(".page-composer__orphan-container").each((function(){const e=o(this);e.on("click",(i=>{i.preventDefault();const s=o.Event("containerclick");s.$container=e,o(t).trigger(s)}))}))},loadContainer(t){const e=t.attr("href"),i=t.attr("data-block-id"),s=this;this.$dynamicArea.empty(),this.$containerPreviews.removeClass("active"),this.$container.find(".page-composer__orphan-container").removeClass("active"),t.addClass("active"),o.ajax({url:e,success(t){s.$dynamicArea.html(t),o(document).scrollTo(s.$dynamicArea,200,{offset:{top:-100}});const e=o.Event("containerloaded");e.containerId=i,o(s).trigger(e)}})}},o((()=>{o("[data-page-composer]").each((function(){const t=o(this).data("page-composer");new n(t.pageId,t).init()}))}))},916:function(t,e,i){var o=i(311);const s="treeView",n={togglersAttribute:"[data-treeview-toggler]",toggledState:"is-toggled"};function r(t,e){this.element=t,this.options=o.extend({},n,e),this.defaults=n,this.name=s}r.prototype={init(){this.setElements(),this.setEvents()},setElements(){this.$element=o(this.element),this.$togglers=this.$element.find(this.options.togglersAttribute)},setEvents(){this.$togglers.on("click",this.toggle.bind(this))},toggle(t){const e=o(t.currentTarget).parent();e.toggleClass(this.options.toggledState),e.next("ul").slideToggle()}},o.fn[s]=function(t){return this.each((function(){if(!o.data(this,`plugin_${s}`)){const e=new r(this,t);e.init(),o.data(this,`plugin_${s}`,e)}}))}},400:function(t,e,i){var o,s,n;!function(r){"use strict";s=[i(311),i(592)],void 0===(n="function"==typeof(o=function(t){return t.extend(t.expr.pseudos,{data:t.expr.createPseudo?t.expr.createPseudo((function(e){return function(i){return!!t.data(i,e)}})):function(e,i,o){return!!t.data(e,o[3])}})})?o.apply(e,s):o)||(t.exports=n)}()},870:function(t,e,i){var o,s,n;!function(r){"use strict";s=[i(311),i(592)],void 0===(n="function"==typeof(o=function(t){return t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())})?o.apply(e,s):o)||(t.exports=n)}()},624:function(t,e,i){var o,s,n;!function(r){"use strict";s=[i(311),i(592)],o=function(t){return t.ui.plugin={add:function(e,i,o){var s,n=t.ui[e].prototype;for(s in o)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([i,o[s]])},call:function(t,e,i,o){var s,n=t.plugins[e];if(n&&(o||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(s=0;s",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,o){o=t(o||this.defaultElement||this)[0],this.element=t(o),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},o!==this&&(t.data(o,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===o&&this.destroy()}}),this.document=t(o.style?o.ownerDocument:o.document||o),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,(function(t,i){e._removeClass(i,t)})),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var o,s,n,r=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(r={},o=e.split("."),e=o.shift(),o.length){for(s=r[e]=t.widget.extend({},this.options[e]),n=0;n0)&&(this.handle=this._getHandle(e),!!this.handle&&(this._blurActiveElement(e),this._blockFrames(!0===i.iframeFix?"iframe":i.iframeFix),!0))},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map((function(){var e=t(this);return t("
    ").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]}))},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]);t(e.target).closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter((function(){return"fixed"===t(this).css("position")})).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),!1===this._trigger("start",e)?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var o=this._uiHash();if(!1===this._trigger("drag",e,o))return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=o.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,o=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(o=t.ui.ddmanager.drop(this,e)),this.dropped&&(o=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!o||"valid"===this.options.revert&&o||!0===this.options.revert||"function"==typeof this.options.revert&&this.options.revert.call(this.element,o)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),(function(){!1!==i._trigger("stop",e)&&i._clear()})):!1!==this._trigger("stop",e)&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return!this.options.handle||!!t(e.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,o="function"==typeof i.helper,s=o?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),o&&s[0]===this.element[0]&&this._setPositionRelative(),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),Array.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,o,s=this.options,n=this.document[0];this.relativeContainer=null,s.containment?"window"!==s.containment?"document"!==s.containment?s.containment.constructor!==Array?("parent"===s.containment&&(s.containment=this.helper[0].parentNode),(o=(i=t(s.containment))[0])&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(o.scrollWidth,o.offsetWidth):o.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(o.scrollHeight,o.offsetHeight):o.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i)):this.containment=s.containment:this.containment=[0,0,t(n).width()-this.helperProportions.width-this.margins.left,(t(n).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=null},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,o=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:o?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:o?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,o,s,n,r=this.options,a=this._isRootNode(this.scrollParent[0]),l=t.pageX,c=t.pageY;return a&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(o=this.relativeContainer.offset(),i=[this.containment[0]+o.left,this.containment[1]+o.top,this.containment[2]+o.left,this.containment[3]+o.top]):i=this.containment,t.pageX-this.offset.click.lefti[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(c=i[3]+this.offset.click.top)),r.grid&&(s=r.grid[1]?this.originalPageY+Math.round((c-this.originalPageY)/r.grid[1])*r.grid[1]:this.originalPageY,c=i?s-this.offset.click.top>=i[1]||s-this.offset.click.top>i[3]?s:s-this.offset.click.top>=i[1]?s-r.grid[1]:s+r.grid[1]:s,n=r.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/r.grid[0])*r.grid[0]:this.originalPageX,l=i?n-this.offset.click.left>=i[0]||n-this.offset.click.left>i[2]?n:n-this.offset.click.left>=i[0]?n-r.grid[0]:n+r.grid[0]:n),"y"===r.axis&&(l=this.originalPageX),"x"===r.axis&&(c=this.originalPageY)),{top:c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,o){return o=o||this._uiHash(),t.ui.plugin.call(this,e,[i,o,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),o.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,o)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,o){var s=t.extend({},i,{item:o.element});o.sortables=[],t(o.options.connectToSortable).each((function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(o.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,s))}))},stop:function(e,i,o){var s=t.extend({},i,{item:o.element});o.cancelHelperRemoval=!1,t.each(o.sortables,(function(){var t=this;t.isOver?(t.isOver=0,o.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,s))}))},drag:function(e,i,o){t.each(o.sortables,(function(){var s=!1,n=this;n.positionAbs=o.positionAbs,n.helperProportions=o.helperProportions,n.offset.click=o.offset.click,n._intersectsWith(n.containerCache)&&(s=!0,t.each(o.sortables,(function(){return this.positionAbs=o.positionAbs,this.helperProportions=o.helperProportions,this.offset.click=o.offset.click,this!==n&&this._intersectsWith(this.containerCache)&&t.contains(n.element[0],this.element[0])&&(s=!1),s}))),s?(n.isOver||(n.isOver=1,o._parent=i.helper.parent(),n.currentItem=i.helper.appendTo(n.element).data("ui-sortable-item",!0),n.options._helper=n.options.helper,n.options.helper=function(){return i.helper[0]},e.target=n.currentItem[0],n._mouseCapture(e,!0),n._mouseStart(e,!0,!0),n.offset.click.top=o.offset.click.top,n.offset.click.left=o.offset.click.left,n.offset.parent.left-=o.offset.parent.left-n.offset.parent.left,n.offset.parent.top-=o.offset.parent.top-n.offset.parent.top,o._trigger("toSortable",e),o.dropped=n.element,t.each(o.sortables,(function(){this.refreshPositions()})),o.currentItem=o.element,n.fromOutside=o),n.currentItem&&(n._mouseDrag(e),i.position=n.position)):n.isOver&&(n.isOver=0,n.cancelHelperRemoval=!0,n.options._revert=n.options.revert,n.options.revert=!1,n._trigger("out",e,n._uiHash(n)),n._mouseStop(e,!0),n.options.revert=n.options._revert,n.options.helper=n.options._helper,n.placeholder&&n.placeholder.remove(),i.helper.appendTo(o._parent),o._refreshOffsets(e),i.position=o._generatePosition(e,!0),o._trigger("fromSortable",e),o.dropped=!1,t.each(o.sortables,(function(){this.refreshPositions()})))}))}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,o){var s=t("body"),n=o.options;s.css("cursor")&&(n._cursor=s.css("cursor")),s.css("cursor",n.cursor)},stop:function(e,i,o){var s=o.options;s._cursor&&t("body").css("cursor",s._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,o){var s=t(i.helper),n=o.options;s.css("opacity")&&(n._opacity=s.css("opacity")),s.css("opacity",n.opacity)},stop:function(e,i,o){var s=o.options;s._opacity&&t(i.helper).css("opacity",s._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,o){var s=o.options,n=!1,r=o.scrollParentNotHidden[0],a=o.document[0];r!==a&&"HTML"!==r.tagName?(s.axis&&"x"===s.axis||(o.overflowOffset.top+r.offsetHeight-e.pageY=0;d--)c=(l=o.snapElements[d].left-o.margins.left)+o.snapElements[d].width,h=(p=o.snapElements[d].top-o.margins.top)+o.snapElements[d].height,_c+m||bh+m||!t.contains(o.snapElements[d].item.ownerDocument,o.snapElements[d].item)?(o.snapElements[d].snapping&&o.options.snap.release&&o.options.snap.release.call(o.element,e,t.extend(o._uiHash(),{snapItem:o.snapElements[d].item})),o.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(s=Math.abs(p-b)<=m,n=Math.abs(h-v)<=m,r=Math.abs(l-_)<=m,a=Math.abs(c-g)<=m,s&&(i.position.top=o._convertPositionTo("relative",{top:p-o.helperProportions.height,left:0}).top),n&&(i.position.top=o._convertPositionTo("relative",{top:h,left:0}).top),r&&(i.position.left=o._convertPositionTo("relative",{top:0,left:l-o.helperProportions.width}).left),a&&(i.position.left=o._convertPositionTo("relative",{top:0,left:c}).left)),u=s||n||r||a,"outer"!==f.snapMode&&(s=Math.abs(p-v)<=m,n=Math.abs(h-b)<=m,r=Math.abs(l-g)<=m,a=Math.abs(c-_)<=m,s&&(i.position.top=o._convertPositionTo("relative",{top:p,left:0}).top),n&&(i.position.top=o._convertPositionTo("relative",{top:h-o.helperProportions.height,left:0}).top),r&&(i.position.left=o._convertPositionTo("relative",{top:0,left:l}).left),a&&(i.position.left=o._convertPositionTo("relative",{top:0,left:c-o.helperProportions.width}).left)),!o.snapElements[d].snapping&&(s||n||r||a||u)&&o.options.snap.snap&&o.options.snap.snap.call(o.element,e,t.extend(o._uiHash(),{snapItem:o.snapElements[d].item})),o.snapElements[d].snapping=s||n||r||a||u)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,o){var s,n=o.options,r=t.makeArray(t(n.stack)).sort((function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)}));r.length&&(s=parseInt(t(r[0]).css("zIndex"),10)||0,t(r).each((function(e){t(this).css("zIndex",s+e)})),this.css("zIndex",s+r.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,o){var s=t(i.helper),n=o.options;s.css("zIndex")&&(n._zIndex=s.css("zIndex")),s.css("zIndex",n.zIndex)},stop:function(e,i,o){var s=o.options;s._zIndex&&t(i.helper).css("zIndex",s._zIndex)}}),t.ui.draggable})?o.apply(e,s):o)||(t.exports=n)}()},709:function(t,e,i){var o,s,n;!function(r){"use strict";s=[i(311),i(285),i(236),i(592),i(891)],o=function(t){t.widget("ui.droppable",{version:"1.13.2",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,e=this.options,i=e.accept;this.isover=!1,this.isout=!0,this.accept="function"==typeof i?i:function(t){return t.is(i)},this.proportions=function(){if(!arguments.length)return t||(t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight});t=arguments[0]},this._addToManager(e.scope),e.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;e=e&&t=p&&r<=d||l>=p&&l<=d||rd)&&(n>=c&&n<=h||a>=c&&a<=h||nh);default:return!1}}}(),t.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(e,i){var o,s,n=t.ui.ddmanager.droppables[e.options.scope]||[],r=i?i.type:null,a=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(o=0;o=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})?o.apply(e,s):o)||(t.exports=n)}()},311:function(t){"use strict";t.exports=jQuery}},e={};function i(o){var s=e[o];if(void 0!==s)return s.exports;var n=e[o]={exports:{}};return t[o](n,n.exports,i),n.exports}i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,{a:e}),e},i.d=function(t,e){for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){"use strict";i(709),i(266),i(916)}()}(); \ No newline at end of file