diff --git a/CHANGELOG.md b/CHANGELOG.md index ac4dc970a27..9ddaa955fa8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ - Fixed a bug where tooltips were displaying behind slideouts. ([#16529](https://github.com/craftcms/cms/issues/16529)) - Fixed a bug where field translation indicators and action menu buttons could be autofocussed when creating a new entry within a Matrix field, or opening an element editor slideout. ([#16528](https://github.com/craftcms/cms/issues/16528)) - Fixed a bug where field values copied from another site weren’t always saving. ([#16537](https://github.com/craftcms/cms/issues/16537)) +- Fixed errors that could occur on Ajax requests when deleting an inline-editable Matrix block. ([#16540](https://github.com/craftcms/cms/issues/16540)) ## 5.6.1 - 2025-01-22 diff --git a/src/templates/_components/fieldtypes/Matrix/block.twig b/src/templates/_components/fieldtypes/Matrix/block.twig index 121abc13e38..a1e570220c4 100644 --- a/src/templates/_components/fieldtypes/Matrix/block.twig +++ b/src/templates/_components/fieldtypes/Matrix/block.twig @@ -113,6 +113,7 @@ {% tag 'div' with { class: [ 'matrixblock', + 'js-deletable', not entry.enabled ? 'disabled-entry', static ? 'static', ]|filter, diff --git a/src/web/assets/matrix/dist/MatrixInput.js b/src/web/assets/matrix/dist/MatrixInput.js index d86513623b2..81cae3d1219 100644 --- a/src/web/assets/matrix/dist/MatrixInput.js +++ b/src/web/assets/matrix/dist/MatrixInput.js @@ -1,3 +1,3 @@ /*! For license information please see MatrixInput.js.LICENSE.txt */ -!function(){function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var a=0,i=function(){};return{s:i,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,l=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){l=!0,o=t},f:function(){try{s||null==r.return||r.return()}finally{if(l)throw o}}}}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var l=i.call(o,"catchLoc"),d=i.call(o,"finallyLoc");if(l&&d){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),B(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var a=r.arg;B(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:O(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},n}function i(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function o(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var o=t.apply(e,n);function s(t){i(o,r,a,s,l,"next",t)}function l(t){i(o,r,a,s,l,"throw",t)}s(void 0)}))}}var s;s=jQuery,Craft.MatrixInput=Garnish.Base.extend({id:null,entryTypes:null,entryTypesByHandle:null,inputNamePrefix:null,inputIdPrefix:null,showingAddEntryMenu:!1,addEntryBtnGroupWidth:null,addEntryBtnContainerWidth:null,$container:null,$form:null,$entriesContainer:null,$addEntryBtnContainer:null,$addEntryBtn:null,$addEntryMenuBtn:null,$statusMessage:null,entrySort:null,entrySelect:null,elementEditor:null,addingEntry:!1,init:function(t,e,n,r){var i=this;this.id=t,this.entryTypes=e,this.inputNamePrefix=n,this.inputIdPrefix=Craft.formatInputId(this.inputNamePrefix),"number"==typeof r&&(r={maxEntries:r}),this.setSettings(r,Craft.MatrixInput.defaults),this.$container=s("#"+this.id),this.$form=this.$container.closest("form"),this.$entriesContainer=this.$container.children(".blocks"),this.$addEntryBtnContainer=this.$container.children(".buttons"),this.$addEntryBtn=this.$addEntryBtnContainer.children(".btn:not(.menubtn)"),this.$addEntryMenuBtn=this.$addEntryBtnContainer.children(".menubtn"),this.$statusMessage=this.$container.find("[data-status-message]"),this.$container.data("matrix",this),this.entryTypesByHandle={};for(var l=0;l .actions > .move",axis:"y",filter:function(){return i.entrySort.$targetItem.hasClass("sel")?i.entrySelect.getSelectedItems():i.entrySort.$targetItem},collapseDraggees:!0,magnetStrength:4,helperLagBase:1.5,helperOpacity:.9,onDragStop:function(){i.trigger("entrySortDragStop")},onSortChange:function(){i.entrySelect.resetItemOrder()}}),this.entrySelect=new Garnish.Select(this.$entriesContainer,c,{multi:!0,vertical:!0,handle:"> .actions > .checkbox, > .titlebar",filter:function(t){return!s(t).closest(".tab-label").length},checkboxMode:!0});for(var h=0;h .actions .action-btn"),a=r.data("trigger")||new Garnish.DisclosureMenu(r);this.$actionMenu=a.$container,this.actionDisclosure=a,a.on("show",(function(){n.$container.addClass("active"),n.$container.prev(".matrixblock").length?n.$actionMenu.find("button[data-action=moveUp]:first").parent().removeClass("hidden"):n.$actionMenu.find("button[data-action=moveUp]:first").parent().addClass("hidden"),n.$container.next(".matrixblock").length?n.$actionMenu.find("button[data-action=moveDown]:first").parent().removeClass("hidden"):n.$actionMenu.find("button[data-action=moveDown]:first").parent().addClass("hidden")})),a.on("hide",(function(){n.$container.removeClass("active")})),this.$actionMenuOptions=this.$actionMenu.find("button[data-action]"),this.addListener(this.$actionMenuOptions,"activate",this.handleActionClick),Garnish.hasAttr(this.$container,"data-collapsed")&&this.collapse(),this._handleTitleBarClick=function(t){s(t.target).closest(".tab-label").length||(t.preventDefault(),this.toggle())},this.addListener(this.$titlebar,"doubletap",this._handleTitleBarClick),this.visibleLayoutElements=this.$container.data("visible-layout-elements"),this.formObserver=new Craft.FormObserver(this.$container,(function(t){n.updateFieldLayout(t)}))},toggle:function(){this.collapsed?this.expand():this.collapse(!0)},collapse:function(t){var e=this;if(!this.collapsed){this.$container.addClass("collapsed");for(var n="",r=this.$fieldsContainer.children().children(),a=0;a| ":"")+o)}this.$previewContainer.html(n),this.$fieldsContainer.velocity("stop"),this.$container.velocity("stop"),t&&!Garnish.prefersReducedMotion()?(this.$fieldsContainer.velocity("fadeOut",{duration:"fast"}),this.$container.velocity({height:34},"fast")):(this.$previewContainer.show(),this.$fieldsContainer.hide(),this.$container.css({height:34})),this.$tabContainer.hide(),setTimeout((function(){e.$actionMenu.find("button[data-action=collapse]:first").parent().addClass("hidden"),e.$actionMenu.find("button[data-action=expand]:first").parent().removeClass("hidden")}),200),this.isNew?this.$collapsedInput?this.$collapsedInput.val("1"):this.$collapsedInput=s('').appendTo(this.$container):Craft.MatrixInput.rememberCollapsedEntryId(this.id),this.collapsed=!0}},_inputPreviewText:function(t){if(t.is("select,multiselect")){for(var e=[],n=t.find("option:selected"),r=0;r1&&this.matrix.entrySelect.isSelected(this.$container),n=s(t);switch(n.data("action")){case"collapse":e?this.matrix.collapseSelectedEntries():this.collapse(!0);break;case"expand":e?this.matrix.expandSelectedEntries():this.expand();break;case"disable":e?this.matrix.disableSelectedEntries():this.disable();break;case"enable":e?this.matrix.enableSelectedEntries():(this.enable(),this.expand());break;case"moveUp":this.moveUp();break;case"moveDown":this.moveDown();break;case"add":var r=n.data("type");this.matrix.addEntry(r,this.$container);break;case"delete":e?confirm(Craft.t("app","Are you sure you want to delete the selected entries?"))&&this.matrix.deleteSelectedEntries():this.selfDestruct()}this.actionDisclosure.hide()},selfDestruct:function(){var t=this;s("[name]",this.$container).removeAttr("name"),this.$container.velocity(this.matrix.getHiddenEntryCss(this.$container),"fast",(function(){t.$container.remove(),t.matrix.updateAddEntryBtn(),t.matrix.trigger("entryDeleted",{$entry:t.$container})}))},updateFieldLayout:function(t){var e=this;return new Promise((function(n,a){var i,o=e.matrix.elementEditor,l=e.$container.data("base-input-name");if(null!=o&&o.submittingForm)a("Form already being submitted.");else{e.cancelToken&&(e.ignoreFailedRequest=!0,e.cancelToken.cancel());var d=function(t){return Craft.namespaceInputName(t,l)},c=r(r(r(r(r(r(r({},d("visibleLayoutElements"),e.visibleLayoutElements),d("elementType"),"craft\\elements\\Entry"),d("ownerId"),e.matrix.settings.ownerId),d("fieldId"),e.matrix.settings.fieldId),d("sortOrder"),e.$container.index()+1),d("typeId"),e.$container.data("type-id")),d("elementUid"),null!==(i=null==o?void 0:o.getDraftElementUid(e.$container.data("uid")))&&void 0!==i?i:e.$container.data("uid")),u=e.$fieldsContainer.children("[data-layout-tab]:not(.hidden)").data("id");u&&(c[d("selectedTab")]=u),t+="&".concat(s.param(c)),e.cancelToken=axios.CancelToken.source(),Craft.sendActionRequest("POST","elements/update-field-layout",{cancelToken:e.cancelToken.token,headers:{"content-type":"application/x-www-form-urlencoded","X-Craft-Namespace":l},data:t}).then((function(r){e._afterUpdateFieldLayout(t,u,l,r),n()})).catch((function(t){e.ignoreFailedRequest||a(t),e.ignoreFailedRequest=!1})).finally((function(){e.cancelToken=null}))}}))},_afterUpdateFieldLayout:function(t,n,r,i){var l=this;return o(a().mark((function t(){var o,d,c,u,h,f,p,y,m,v,g,b,$,C,E,x,w;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:d=l.$fieldsContainer.children("[data-layout-tab]:not(.hidden)").data("id"),c=s(),u={},h=e(i.data.missingElements);try{for(h.s();!(f=h.n()).done;){p=f.value,(y=l.$fieldsContainer.children('[data-layout-tab="'.concat(p.uid,'"]'))).length||(y=s("
",{id:Craft.namespaceId(p.id,r),class:"flex-fields","data-id":p.id,"data-layout-tab":p.uid}),p.id!==n&&y.addClass("hidden"),y.appendTo(l.$fieldsContainer)),c=c.add(y),m=e(p.elements);try{for(m.s();!(v=m.n()).done;)!1!==(g=v.value).html?(u[p.uid]||(u[p.uid]=[]),u[p.uid].push(g.uid),"string"==typeof g.html&&(b=y.children('[data-layout-element="'.concat(g.uid,'"]')),$=s(g.html),b.length?b.replaceWith($):$.appendTo(y),Craft.initUiElements($))):(C=y.children('[data-layout-element="'.concat(g.uid,'"]'))).length&&Garnish.hasAttr(C,"data-layout-element-placeholder")||(E=s("
",{class:"hidden","data-layout-element":g.uid,"data-layout-element-placeholder":""}),C.length?C.replaceWith(E):E.appendTo(y))}catch(t){m.e(t)}finally{m.f()}}}catch(t){h.e(t)}finally{h.f()}return(x=l.$fieldsContainer.children("[data-layout-tab]").not(c).not('[data-layout-tab=""]')).length&&x.remove(),c.filter(":not(.hidden)").length||c.first().removeClass("hidden"),l.visibleLayoutElements=u,l.tabManager&&(l.tabManager.destroy(),l.tabManager=null,l.$tabContainer.html("")),l.hasTabs=!!i.data.tabs,l.hasTabs&&(l.$tabContainer.append(i.data.tabs),l.tabManager=Craft.MatrixInput.initTabs(l.$tabContainer),n&&d&&n!==d&&((w=l.tabManager.$tabs.filter('[data-id="'.concat(d,'"]'))).length?l.tabManager.selectTab(w):l.tabManager.selectTab(l.tabManager.$tabs.first()))),t.next=15,Craft.appendHeadHtml(i.data.headHtml);case 15:return t.next=17,Craft.appendBodyHtml(i.data.bodyHtml);case 17:null===(o=l.matrix.elementEditor)||void 0===o||o.handleDismissibleTips();case 18:case"end":return t.stop()}}),t)})))()}})}(); +!function(){function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var i=0,a=function(){};return{s:a,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,l=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){l=!0,o=t},f:function(){try{s||null==r.return||r.return()}finally{if(l)throw o}}}}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0;--i){var o=this.tryEntries[i],s=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var l=a.call(o,"catchLoc"),d=a.call(o,"finallyLoc");if(l&&d){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),B(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;B(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:O(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},n}function a(t,e,n,r,i,a,o){try{var s=t[a](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,i)}function o(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function s(t){a(o,r,i,s,l,"next",t)}function l(t){a(o,r,i,s,l,"throw",t)}s(void 0)}))}}var s;s=jQuery,Craft.MatrixInput=Garnish.Base.extend({id:null,entryTypes:null,entryTypesByHandle:null,inputNamePrefix:null,inputIdPrefix:null,showingAddEntryMenu:!1,addEntryBtnGroupWidth:null,addEntryBtnContainerWidth:null,$container:null,$form:null,$entriesContainer:null,$addEntryBtnContainer:null,$addEntryBtn:null,$addEntryMenuBtn:null,$statusMessage:null,entrySort:null,entrySelect:null,elementEditor:null,addingEntry:!1,init:function(t,e,n,r){var a=this;this.id=t,this.entryTypes=e,this.inputNamePrefix=n,this.inputIdPrefix=Craft.formatInputId(this.inputNamePrefix),"number"==typeof r&&(r={maxEntries:r}),this.setSettings(r,Craft.MatrixInput.defaults),this.$container=s("#"+this.id),this.$form=this.$container.closest("form"),this.$entriesContainer=this.$container.children(".blocks"),this.$addEntryBtnContainer=this.$container.children(".buttons"),this.$addEntryBtn=this.$addEntryBtnContainer.children(".btn:not(.menubtn)"),this.$addEntryMenuBtn=this.$addEntryBtnContainer.children(".menubtn"),this.$statusMessage=this.$container.find("[data-status-message]"),this.$container.data("matrix",this),this.entryTypesByHandle={};for(var l=0;l .actions > .move",axis:"y",filter:function(){return a.entrySort.$targetItem.hasClass("sel")?a.entrySelect.getSelectedItems():a.entrySort.$targetItem},collapseDraggees:!0,magnetStrength:4,helperLagBase:1.5,helperOpacity:.9,onDragStop:function(){a.trigger("entrySortDragStop")},onSortChange:function(){a.entrySelect.resetItemOrder()}}),this.entrySelect=new Garnish.Select(this.$entriesContainer,c,{multi:!0,vertical:!0,handle:"> .actions > .checkbox, > .titlebar",filter:function(t){return!s(t).closest(".tab-label").length},checkboxMode:!0});for(var h=0;h .actions .action-btn"),i=r.data("trigger")||new Garnish.DisclosureMenu(r);this.$actionMenu=i.$container,this.actionDisclosure=i,i.on("show",(function(){n.$container.addClass("active"),n.$container.prev(".matrixblock").length?n.$actionMenu.find("button[data-action=moveUp]:first").parent().removeClass("hidden"):n.$actionMenu.find("button[data-action=moveUp]:first").parent().addClass("hidden"),n.$container.next(".matrixblock").length?n.$actionMenu.find("button[data-action=moveDown]:first").parent().removeClass("hidden"):n.$actionMenu.find("button[data-action=moveDown]:first").parent().addClass("hidden")})),i.on("hide",(function(){n.$container.removeClass("active")})),this.$actionMenuOptions=this.$actionMenu.find("button[data-action]"),this.addListener(this.$actionMenuOptions,"activate",this.handleActionClick),Garnish.hasAttr(this.$container,"data-collapsed")&&this.collapse(),this._handleTitleBarClick=function(t){s(t.target).closest(".tab-label").length||(t.preventDefault(),this.toggle())},this.addListener(this.$titlebar,"doubletap",this._handleTitleBarClick),this.visibleLayoutElements=this.$container.data("visible-layout-elements"),this.formObserver=new Craft.FormObserver(this.$container,(function(t){n.updateFieldLayout(t)}))},toggle:function(){this.collapsed?this.expand():this.collapse(!0)},collapse:function(t){var e=this;if(!this.collapsed){this.$container.addClass("collapsed");for(var n="",r=this.$fieldsContainer.children().children(),i=0;i| ":"")+o)}this.$previewContainer.html(n),this.$fieldsContainer.velocity("stop"),this.$container.velocity("stop"),t&&!Garnish.prefersReducedMotion()?(this.$fieldsContainer.velocity("fadeOut",{duration:"fast"}),this.$container.velocity({height:34},"fast")):(this.$previewContainer.show(),this.$fieldsContainer.hide(),this.$container.css({height:34})),this.$tabContainer.hide(),setTimeout((function(){e.$actionMenu.find("button[data-action=collapse]:first").parent().addClass("hidden"),e.$actionMenu.find("button[data-action=expand]:first").parent().removeClass("hidden")}),200),this.isNew?this.$collapsedInput?this.$collapsedInput.val("1"):this.$collapsedInput=s('').appendTo(this.$container):Craft.MatrixInput.rememberCollapsedEntryId(this.id),this.collapsed=!0}},_inputPreviewText:function(t){if(t.is("select,multiselect")){for(var e=[],n=t.find("option:selected"),r=0;r1&&this.matrix.entrySelect.isSelected(this.$container),r=s(t);switch(r.data("action")){case"collapse":n?this.matrix.collapseSelectedEntries():this.collapse(!0);break;case"expand":n?this.matrix.expandSelectedEntries():this.expand();break;case"disable":n?this.matrix.disableSelectedEntries():this.disable();break;case"enable":n?this.matrix.enableSelectedEntries():(this.enable(),this.expand());break;case"moveUp":this.moveUp();break;case"moveDown":this.moveDown();break;case"add":var i=r.data("type");this.matrix.addEntry(i,this.$container);break;case"delete":n?confirm(Craft.t("app","Are you sure you want to delete the selected entries?"))&&this.matrix.deleteSelectedEntries():this.selfDestruct()}null===(e=this.actionDisclosure)||void 0===e||e.hide()},selfDestruct:function(){var t=this;this.destroy(),s("[name]",this.$container).removeAttr("name"),this.$container.velocity(this.matrix.getHiddenEntryCss(this.$container),"fast",(function(){t.$container.remove(),t.matrix.updateAddEntryBtn(),t.matrix.trigger("entryDeleted",{$entry:t.$container})}))},updateFieldLayout:function(t){var e=this;return new Promise((function(n,i){var a,o=e.matrix.elementEditor,l=e.$container.data("base-input-name");if(null!=o&&o.submittingForm)i("Form already being submitted.");else{e.cancelToken&&(e.ignoreFailedRequest=!0,e.cancelToken.cancel());var d=function(t){return Craft.namespaceInputName(t,l)},c=r(r(r(r(r(r(r({},d("visibleLayoutElements"),e.visibleLayoutElements),d("elementType"),"craft\\elements\\Entry"),d("ownerId"),e.matrix.settings.ownerId),d("fieldId"),e.matrix.settings.fieldId),d("sortOrder"),e.$container.index()+1),d("typeId"),e.$container.data("type-id")),d("elementUid"),null!==(a=null==o?void 0:o.getDraftElementUid(e.$container.data("uid")))&&void 0!==a?a:e.$container.data("uid")),u=e.$fieldsContainer.children("[data-layout-tab]:not(.hidden)").data("id");u&&(c[d("selectedTab")]=u),t+="&".concat(s.param(c)),e.cancelToken=axios.CancelToken.source(),Craft.sendActionRequest("POST","elements/update-field-layout",{cancelToken:e.cancelToken.token,headers:{"content-type":"application/x-www-form-urlencoded","X-Craft-Namespace":l},data:t}).then((function(r){e._afterUpdateFieldLayout(t,u,l,r),n()})).catch((function(t){e.ignoreFailedRequest||i(t),e.ignoreFailedRequest=!1})).finally((function(){e.cancelToken=null}))}}))},_afterUpdateFieldLayout:function(t,n,r,a){var l=this;return o(i().mark((function t(){var o,d,c,u,h,f,p,y,m,v,g,b,$,C,E,x,w;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:d=l.$fieldsContainer.children("[data-layout-tab]:not(.hidden)").data("id"),c=s(),u={},h=e(a.data.missingElements);try{for(h.s();!(f=h.n()).done;){p=f.value,(y=l.$fieldsContainer.children('[data-layout-tab="'.concat(p.uid,'"]'))).length||(y=s("
",{id:Craft.namespaceId(p.id,r),class:"flex-fields","data-id":p.id,"data-layout-tab":p.uid}),p.id!==n&&y.addClass("hidden"),y.appendTo(l.$fieldsContainer)),c=c.add(y),m=e(p.elements);try{for(m.s();!(v=m.n()).done;)!1!==(g=v.value).html?(u[p.uid]||(u[p.uid]=[]),u[p.uid].push(g.uid),"string"==typeof g.html&&(b=y.children('[data-layout-element="'.concat(g.uid,'"]')),$=s(g.html),b.length?b.replaceWith($):$.appendTo(y),Craft.initUiElements($))):(C=y.children('[data-layout-element="'.concat(g.uid,'"]'))).length&&Garnish.hasAttr(C,"data-layout-element-placeholder")||(E=s("
",{class:"hidden","data-layout-element":g.uid,"data-layout-element-placeholder":""}),C.length?C.replaceWith(E):E.appendTo(y))}catch(t){m.e(t)}finally{m.f()}}}catch(t){h.e(t)}finally{h.f()}return(x=l.$fieldsContainer.children("[data-layout-tab]").not(c).not('[data-layout-tab=""]')).length&&x.remove(),c.filter(":not(.hidden)").length||c.first().removeClass("hidden"),l.visibleLayoutElements=u,l.tabManager&&(l.tabManager.destroy(),l.tabManager=null,l.$tabContainer.html("")),l.hasTabs=!!a.data.tabs,l.hasTabs&&(l.$tabContainer.append(a.data.tabs),l.tabManager=Craft.MatrixInput.initTabs(l.$tabContainer),n&&d&&n!==d&&((w=l.tabManager.$tabs.filter('[data-id="'.concat(d,'"]'))).length?l.tabManager.selectTab(w):l.tabManager.selectTab(l.tabManager.$tabs.first()))),t.next=15,Craft.appendHeadHtml(a.data.headHtml);case 15:return t.next=17,Craft.appendBodyHtml(a.data.bodyHtml);case 17:null===(o=l.matrix.elementEditor)||void 0===o||o.handleDismissibleTips();case 18:case"end":return t.stop()}}),t)})))()},destroy:function(){var t,e,n,r;null===(t=this.actionDisclosure)||void 0===t||t.hide(),null===(e=this.tabManager)||void 0===e||e.destroy(),null===(n=this.actionDisclosure)||void 0===n||n.destroy(),null===(r=this.formObserver)||void 0===r||r.destroy(),delete this.tabManager,delete this.actionDisclosure,delete this.formObserver,this.$container.trigger("delete"),this.base()}})}(); //# sourceMappingURL=MatrixInput.js.map \ No newline at end of file diff --git a/src/web/assets/matrix/dist/MatrixInput.js.map b/src/web/assets/matrix/dist/MatrixInput.js.map index 2baca251ff5..9edee0fe44f 100644 --- a/src/web/assets/matrix/dist/MatrixInput.js.map +++ b/src/web/assets/matrix/dist/MatrixInput.js.map @@ -1 +1 @@ -{"version":3,"file":"MatrixInput.js","mappings":"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","sources":["webpack:///./MatrixInput.js"],"sourcesContent":["(function ($) {\n /** global: Craft */\n /** global: Garnish */\n /**\n * Matrix input class\n */\n Craft.MatrixInput = Garnish.Base.extend(\n {\n id: null,\n entryTypes: null,\n entryTypesByHandle: null,\n inputNamePrefix: null,\n inputIdPrefix: null,\n\n showingAddEntryMenu: false,\n addEntryBtnGroupWidth: null,\n addEntryBtnContainerWidth: null,\n\n $container: null,\n $form: null,\n $entriesContainer: null,\n $addEntryBtnContainer: null,\n $addEntryBtn: null,\n $addEntryMenuBtn: null,\n $statusMessage: null,\n\n entrySort: null,\n entrySelect: null,\n\n /**\n * @type {Craft.ElementEditor|null}\n */\n elementEditor: null,\n\n addingEntry: false,\n\n init: function (id, entryTypes, inputNamePrefix, settings) {\n this.id = id;\n this.entryTypes = entryTypes;\n this.inputNamePrefix = inputNamePrefix;\n this.inputIdPrefix = Craft.formatInputId(this.inputNamePrefix);\n\n // see if settings was actually set to the maxEntries value\n if (typeof settings === 'number') {\n settings = {maxEntries: settings};\n }\n this.setSettings(settings, Craft.MatrixInput.defaults);\n\n this.$container = $('#' + this.id);\n this.$form = this.$container.closest('form');\n this.$entriesContainer = this.$container.children('.blocks');\n this.$addEntryBtnContainer = this.$container.children('.buttons');\n this.$addEntryBtn =\n this.$addEntryBtnContainer.children('.btn:not(.menubtn)');\n this.$addEntryMenuBtn = this.$addEntryBtnContainer.children('.menubtn');\n this.$statusMessage = this.$container.find('[data-status-message]');\n\n this.$container.data('matrix', this);\n\n this.entryTypesByHandle = {};\n\n for (let i = 0; i < this.entryTypes.length; i++) {\n const entryType = this.entryTypes[i];\n this.entryTypesByHandle[entryType.handle] = entryType;\n }\n\n const $entries = this.$entriesContainer.children('.matrixblock');\n const collapsedEntries = Craft.MatrixInput.getCollapsedEntryIds();\n\n this.entrySort = new Garnish.DragSort($entries, {\n handle: '> .actions > .move',\n axis: 'y',\n filter: () => {\n // Only return all the selected items if the target item is selected\n if (this.entrySort.$targetItem.hasClass('sel')) {\n return this.entrySelect.getSelectedItems();\n } else {\n return this.entrySort.$targetItem;\n }\n },\n collapseDraggees: true,\n magnetStrength: 4,\n helperLagBase: 1.5,\n helperOpacity: 0.9,\n onDragStop: () => {\n this.trigger('entrySortDragStop');\n },\n onSortChange: () => {\n this.entrySelect.resetItemOrder();\n },\n });\n\n this.entrySelect = new Garnish.Select(\n this.$entriesContainer,\n $entries,\n {\n multi: true,\n vertical: true,\n handle: '> .actions > .checkbox, > .titlebar',\n filter: (target) => {\n return !$(target).closest('.tab-label').length;\n },\n checkboxMode: true,\n }\n );\n\n for (let i = 0; i < $entries.length; i++) {\n const $entry = $($entries[i]);\n const entry = new Craft.MatrixInput.Entry(this, $entry);\n\n if (entry.id && $.inArray('' + entry.id, collapsedEntries) !== -1) {\n entry.collapse();\n }\n }\n\n this.addListener(this.$addEntryBtn, 'activate', async function () {\n this.$addEntryBtn.addClass('loading');\n Craft.cp.announce(Craft.t('app', 'Loading'));\n try {\n await this.addEntry(this.$addEntryBtn.data('type'));\n } finally {\n this.$addEntryBtn.removeClass('loading');\n }\n });\n\n if (this.$addEntryMenuBtn.length) {\n this.$addEntryMenuBtn\n .disclosureMenu()\n .data('disclosureMenu')\n .$container.find('button')\n .on('activate', async (ev) => {\n this.$addEntryMenuBtn.addClass('loading');\n Craft.cp.announce(Craft.t('app', 'Loading'));\n try {\n await this.addEntry($(ev.currentTarget).data('type'));\n } finally {\n this.$addEntryMenuBtn.removeClass('loading');\n }\n });\n }\n\n this.updateAddEntryBtn();\n\n setTimeout(() => {\n this.elementEditor = this.$container\n .closest('form')\n .data('elementEditor');\n\n if (this.elementEditor) {\n this.elementEditor.on('update', () => {\n this.settings.ownerId = this.elementEditor.getDraftElementId(\n this.settings.ownerId\n );\n });\n }\n\n this.trigger('afterInit');\n }, 100);\n },\n\n canAddMoreEntries: function () {\n return (\n !this.maxEntries ||\n this.$entriesContainer.children().length < this.maxEntries\n );\n },\n\n updateAddEntryBtn: function () {\n if (this.canAddMoreEntries()) {\n this.$addEntryBtn.removeClass('disabled').removeAttr('aria-disabled');\n this.$addEntryMenuBtn.removeClass('disabled');\n\n for (let i = 0; i < this.entrySelect.$items.length; i++) {\n const entry = this.entrySelect.$items.eq(i).data('entry');\n\n if (entry) {\n entry.$actionMenu\n .find('button[data-action=add]')\n .parent()\n .removeClass('disabled');\n entry.$actionMenu\n .find('button[data-action=add]')\n .removeAttr('aria-disabled');\n }\n }\n } else {\n this.$addEntryBtn.addClass('disabled').attr('aria-disabled', 'true');\n this.$addEntryMenuBtn.addClass('disabled');\n\n for (let i = 0; i < this.entrySelect.$items.length; i++) {\n const entry = this.entrySelect.$items.eq(i).data('entry');\n\n if (entry) {\n entry.$actionMenu\n .find('button[data-action=add]')\n .parent()\n .addClass('disabled');\n entry.$actionMenu\n .find('button[data-action=add]')\n .attr('aria-disabled', 'true');\n }\n }\n }\n },\n\n updateStatusMessage: function () {\n this.$statusMessage.empty();\n let message;\n\n if (!this.canAddMoreEntries()) {\n message = Craft.t(\n 'app',\n 'Entry could not be added. Maximum number of entries reached.'\n );\n }\n\n setTimeout(() => {\n this.$statusMessage.text(message);\n }, 250);\n },\n\n async addEntry(type, $insertBefore, autofocus) {\n if (!this.canAddMoreEntries()) {\n this.updateStatusMessage();\n return;\n }\n\n if (this.elementEditor) {\n // First ensure we're working with drafts for all elements leading up\n // to this field’s element\n await this.elementEditor.setFormValue(\n this.settings.baseInputName,\n '*'\n );\n }\n\n await Craft.queue.push(async () => {\n if (this.addingEntry) {\n // only one new entry at a time\n return;\n }\n\n this.addingEntry = true;\n\n const {data} = await Craft.sendActionRequest(\n 'POST',\n 'matrix/create-entry',\n {\n data: {\n fieldId: this.settings.fieldId,\n entryTypeId: this.entryTypesByHandle[type].id,\n ownerId: this.settings.ownerId,\n ownerElementType: this.settings.ownerElementType,\n siteId: this.settings.siteId,\n namespace: this.settings.namespace,\n staticEntries: this.settings.staticEntries,\n },\n }\n );\n\n const $entry = $(data.blockHtml);\n\n // Pause the element editor\n await this.elementEditor?.pause();\n\n if ($insertBefore) {\n $entry.insertBefore($insertBefore);\n } else {\n $entry.appendTo(this.$entriesContainer);\n }\n\n this.trigger('entryAdded', {\n $entry: $entry,\n });\n\n // Animate the entry into position\n $entry.css(this.getHiddenEntryCss($entry)).velocity(\n {\n opacity: 1,\n 'margin-bottom': 10,\n },\n 'fast',\n async () => {\n $entry.css('margin-bottom', '');\n Craft.initUiElements($entry.children('.fields'));\n await Craft.appendHeadHtml(data.headHtml);\n await Craft.appendBodyHtml(data.bodyHtml);\n new Craft.MatrixInput.Entry(this, $entry);\n this.entrySort.addItems($entry);\n this.entrySelect.addItems($entry);\n this.updateAddEntryBtn();\n\n Garnish.requestAnimationFrame(() => {\n if (typeof autofocus === 'undefined' || autofocus) {\n // Scroll to the entry\n Garnish.scrollContainerToElement($entry);\n // Focus on the first focusable element\n $entry\n .find('.flex-fields :focusable')\n .not('.prevent-autofocus')\n .first()\n .focus();\n }\n\n // Resume the element editor\n this.elementEditor?.resume();\n });\n }\n );\n\n this.addingEntry = false;\n });\n },\n\n getEntryTypeByHandle: function (handle) {\n for (let i = 0; i < this.entryTypes.length; i++) {\n if (this.entryTypes[i].handle === handle) {\n return this.entryTypes[i];\n }\n }\n },\n\n collapseSelectedEntries: function () {\n this.callOnSelectedEntries('collapse');\n },\n\n expandSelectedEntries: function () {\n this.callOnSelectedEntries('expand');\n },\n\n disableSelectedEntries: function () {\n this.callOnSelectedEntries('disable');\n },\n\n enableSelectedEntries: function () {\n this.callOnSelectedEntries('enable');\n },\n\n deleteSelectedEntries: function () {\n this.callOnSelectedEntries('selfDestruct');\n },\n\n callOnSelectedEntries: function (fn) {\n for (let i = 0; i < this.entrySelect.$selectedItems.length; i++) {\n this.entrySelect.$selectedItems.eq(i).data('entry')[fn]();\n }\n },\n\n getHiddenEntryCss: function ($entry) {\n return {\n opacity: 0,\n marginBottom: -$entry.outerHeight(),\n };\n },\n\n get maxEntries() {\n return this.settings.maxEntries;\n },\n },\n {\n defaults: {\n fieldId: null,\n maxEntries: null,\n namespace: null,\n baseInputName: null,\n ownerElementType: null,\n ownerId: null,\n siteId: null,\n staticEntries: false,\n },\n\n collapsedEntryStorageKey:\n 'Craft-' + Craft.systemUid + '.MatrixInput.collapsedEntries',\n\n getCollapsedEntryIds: function () {\n if (\n typeof localStorage[Craft.MatrixInput.collapsedEntryStorageKey] ===\n 'string'\n ) {\n return Craft.filterArray(\n localStorage[Craft.MatrixInput.collapsedEntryStorageKey].split(',')\n );\n } else {\n return [];\n }\n },\n\n setCollapsedEntryIds: function (ids) {\n localStorage[Craft.MatrixInput.collapsedEntryStorageKey] =\n ids.join(',');\n },\n\n rememberCollapsedEntryId: function (id) {\n if (typeof Storage !== 'undefined') {\n const collapsedEntries = Craft.MatrixInput.getCollapsedEntryIds();\n\n if ($.inArray('' + id, collapsedEntries) === -1) {\n collapsedEntries.push(id);\n Craft.MatrixInput.setCollapsedEntryIds(collapsedEntries);\n }\n }\n },\n\n forgetCollapsedEntryId: function (id) {\n if (typeof Storage !== 'undefined') {\n const collapsedEntries = Craft.MatrixInput.getCollapsedEntryIds();\n const collapsedEntriesIndex = $.inArray('' + id, collapsedEntries);\n\n if (collapsedEntriesIndex !== -1) {\n collapsedEntries.splice(collapsedEntriesIndex, 1);\n Craft.MatrixInput.setCollapsedEntryIds(collapsedEntries);\n }\n }\n },\n\n initTabs(container) {\n const $tabs = $(container).children('.pane-tabs');\n if (!$tabs.length) {\n return;\n }\n\n // init tab manager\n let tabManager = new Craft.Tabs($tabs);\n\n // prevent items in the disclosure menu from changing the URL\n let disclosureMenu = tabManager.$menuBtn.data('trigger');\n $(disclosureMenu.$container)\n .find('li, a')\n .on('click', function (ev) {\n ev.preventDefault();\n });\n\n tabManager.on('selectTab', (ev) => {\n const href = ev.$tab.attr('href');\n\n // Show its content area\n if (href && href.charAt(0) === '#') {\n $(href).removeClass('hidden');\n }\n\n // Trigger a resize event to update any UI components that are listening for it\n Garnish.$win.trigger('resize');\n\n // Fixes Redactor fixed toolbars on previously hidden panes\n Garnish.$doc.trigger('scroll');\n });\n\n tabManager.on('deselectTab', (ev) => {\n const href = ev.$tab.attr('href');\n if (href && href.charAt(0) === '#') {\n // Hide its content area\n $(ev.$tab.attr('href')).addClass('hidden');\n }\n });\n\n return tabManager;\n },\n }\n );\n\n Craft.MatrixInput.Entry = Garnish.Base.extend({\n /**\n * @type {Craft.MatrixInput}\n */\n matrix: null,\n $container: null,\n $titlebar: null,\n $tabContainer: null,\n $fieldsContainer: null,\n $previewContainer: null,\n $actionMenu: null,\n $collapsedInput: null,\n\n tabManager: null,\n actionDisclosure: null,\n formObserver: null,\n visibleLayoutElements: null,\n cancelToken: null,\n ignoreFailedRequest: false,\n\n isNew: null,\n id: null,\n\n collapsed: false,\n\n init: function (matrix, $container) {\n this.matrix = matrix;\n this.$container = $container;\n this.$titlebar = $container.children('.titlebar');\n this.$tabContainer = this.$titlebar.children('.matrixblock-tabs');\n this.$previewContainer = this.$titlebar.children('.preview');\n this.$fieldsContainer = $container.children('.fields');\n\n this.$container.data('entry', this);\n\n this.id = this.$container.data('id');\n this.isNew =\n !this.id ||\n (typeof this.id === 'string' && this.id.substring(0, 3) === 'new');\n\n if (this.$tabContainer.length) {\n this.tabManager = Craft.MatrixInput.initTabs(this.$tabContainer);\n }\n\n const $actionMenuBtn = this.$container.find('> .actions .action-btn');\n const actionDisclosure =\n $actionMenuBtn.data('trigger') ||\n new Garnish.DisclosureMenu($actionMenuBtn);\n\n this.$actionMenu = actionDisclosure.$container;\n this.actionDisclosure = actionDisclosure;\n\n actionDisclosure.on('show', () => {\n this.$container.addClass('active');\n if (this.$container.prev('.matrixblock').length) {\n this.$actionMenu\n .find('button[data-action=moveUp]:first')\n .parent()\n .removeClass('hidden');\n } else {\n this.$actionMenu\n .find('button[data-action=moveUp]:first')\n .parent()\n .addClass('hidden');\n }\n if (this.$container.next('.matrixblock').length) {\n this.$actionMenu\n .find('button[data-action=moveDown]:first')\n .parent()\n .removeClass('hidden');\n } else {\n this.$actionMenu\n .find('button[data-action=moveDown]:first')\n .parent()\n .addClass('hidden');\n }\n });\n\n actionDisclosure.on('hide', () => {\n this.$container.removeClass('active');\n });\n\n this.$actionMenuOptions = this.$actionMenu.find('button[data-action]');\n\n this.addListener(\n this.$actionMenuOptions,\n 'activate',\n this.handleActionClick\n );\n\n // Was this entry already collapsed?\n if (Garnish.hasAttr(this.$container, 'data-collapsed')) {\n this.collapse();\n }\n\n this._handleTitleBarClick = function (ev) {\n // don't expand/collapse the matrix \"block\" if double tapping the tabs\n if (!$(ev.target).closest('.tab-label').length) {\n ev.preventDefault();\n this.toggle();\n }\n };\n\n this.addListener(this.$titlebar, 'doubletap', this._handleTitleBarClick);\n\n this.visibleLayoutElements = this.$container.data(\n 'visible-layout-elements'\n );\n this.formObserver = new Craft.FormObserver(this.$container, (data) => {\n this.updateFieldLayout(data);\n });\n },\n\n toggle: function () {\n if (this.collapsed) {\n this.expand();\n } else {\n this.collapse(true);\n }\n },\n\n collapse: function (animate) {\n if (this.collapsed) {\n return;\n }\n\n this.$container.addClass('collapsed');\n\n let previewHtml = '';\n const $fields = this.$fieldsContainer.children().children();\n\n for (let i = 0; i < $fields.length; i++) {\n const $field = $($fields[i]);\n const $inputs = $field\n .children('.input')\n .find('select,input[type!=\"hidden\"],textarea,.label');\n let inputPreviewText = '';\n\n for (let j = 0; j < $inputs.length; j++) {\n const $input = $($inputs[j]);\n let value;\n\n if ($input.hasClass('label')) {\n const $maybeLightswitchContainer = $input.parent().parent();\n\n if (\n $maybeLightswitchContainer.hasClass('lightswitch') &&\n (($maybeLightswitchContainer.hasClass('on') &&\n $input.hasClass('off')) ||\n (!$maybeLightswitchContainer.hasClass('on') &&\n $input.hasClass('on')))\n ) {\n continue;\n }\n\n value = $input.text();\n } else {\n value = Craft.getText(this._inputPreviewText($input));\n }\n\n if (Array.isArray(value)) {\n value = value.join(', ');\n }\n\n if (value) {\n value = Craft.escapeHtml(value).trim();\n\n if (value) {\n if (inputPreviewText) {\n inputPreviewText += ', ';\n }\n\n inputPreviewText += value;\n }\n }\n }\n\n if (inputPreviewText) {\n previewHtml +=\n (previewHtml ? ' | ' : '') + inputPreviewText;\n }\n }\n\n this.$previewContainer.html(previewHtml);\n\n this.$fieldsContainer.velocity('stop');\n this.$container.velocity('stop');\n\n if (animate && !Garnish.prefersReducedMotion()) {\n this.$fieldsContainer.velocity('fadeOut', {duration: 'fast'});\n this.$container.velocity({height: 34}, 'fast');\n } else {\n this.$previewContainer.show();\n this.$fieldsContainer.hide();\n this.$container.css({height: 34});\n }\n\n this.$tabContainer.hide();\n\n setTimeout(() => {\n this.$actionMenu\n .find('button[data-action=collapse]:first')\n .parent()\n .addClass('hidden');\n this.$actionMenu\n .find('button[data-action=expand]:first')\n .parent()\n .removeClass('hidden');\n }, 200);\n\n // Remember that?\n if (!this.isNew) {\n Craft.MatrixInput.rememberCollapsedEntryId(this.id);\n } else {\n if (!this.$collapsedInput) {\n this.$collapsedInput = $(\n ''\n ).appendTo(this.$container);\n } else {\n this.$collapsedInput.val('1');\n }\n }\n\n this.collapsed = true;\n },\n\n _inputPreviewText: function ($input) {\n if ($input.is('select,multiselect')) {\n const labels = [];\n const $options = $input.find('option:selected');\n for (let k = 0; k < $options.length; k++) {\n labels.push($options.eq(k).text());\n }\n return labels;\n }\n\n if (\n $input.is('input[type=\"checkbox\"]:checked,input[type=\"radio\"]:checked')\n ) {\n const id = $input.attr('id');\n const $label = $(`label[for=\"${id}\"]`);\n if ($label.length) {\n return $label.text();\n }\n }\n\n return Garnish.getInputPostVal($input);\n },\n\n expand: function () {\n if (!this.collapsed) {\n return;\n }\n\n this.$container.removeClass('collapsed');\n\n this.$fieldsContainer.velocity('stop');\n this.$container.velocity('stop');\n\n const collapsedContainerHeight = this.$container.height();\n this.$container.height('auto');\n this.$fieldsContainer.show();\n const expandedContainerHeight = this.$container.height();\n const displayValue = this.$fieldsContainer.css('display') || 'block';\n this.$container.height(collapsedContainerHeight);\n this.$fieldsContainer\n .hide()\n .velocity('fadeIn', {duration: 'fast', display: displayValue});\n\n const animationDuration = Garnish.prefersReducedMotion() ? 0 : 'fast';\n this.$container.velocity(\n {height: expandedContainerHeight},\n animationDuration,\n () => {\n this.$previewContainer.html('');\n this.$container.height('auto');\n this.$container.trigger('scroll');\n this.$tabContainer.show();\n }\n );\n\n setTimeout(() => {\n this.$actionMenu\n .find('button[data-action=collapse]:first')\n .parent()\n .removeClass('hidden');\n this.$actionMenu\n .find('button[data-action=expand]:first')\n .parent()\n .addClass('hidden');\n }, 200);\n\n // Remember that?\n if (!this.isNew && typeof Storage !== 'undefined') {\n const collapsedEntries = Craft.MatrixInput.getCollapsedEntryIds();\n const collapsedEntriesIndex = $.inArray('' + this.id, collapsedEntries);\n\n if (collapsedEntriesIndex !== -1) {\n collapsedEntries.splice(collapsedEntriesIndex, 1);\n Craft.MatrixInput.setCollapsedEntryIds(collapsedEntries);\n }\n }\n\n if (!this.isNew) {\n Craft.MatrixInput.forgetCollapsedEntryId(this.id);\n } else if (this.$collapsedInput) {\n this.$collapsedInput.val('');\n }\n\n this.collapsed = false;\n },\n\n disable: function () {\n this.$container.children('input[name$=\"[enabled]\"]:first').val('');\n this.$container.addClass('disabled-entry');\n\n setTimeout(() => {\n this.$actionMenu\n .find('button[data-action=disable]:first')\n .parent()\n .addClass('hidden');\n this.$actionMenu\n .find('button[data-action=enable]:first')\n .parent()\n .removeClass('hidden');\n }, 200);\n\n this.collapse(true);\n },\n\n enable: function () {\n this.$container.children('input[name$=\"[enabled]\"]:first').val('1');\n this.$container.removeClass('disabled-entry');\n\n setTimeout(() => {\n this.$actionMenu\n .find('button[data-action=disable]:first')\n .parent()\n .removeClass('hidden');\n this.$actionMenu\n .find('button[data-action=enable]:first')\n .parent()\n .addClass('hidden');\n }, 200);\n },\n\n moveUp: function () {\n this.matrix.trigger('beforeMoveEntryUp', {\n entry: this,\n });\n let $prev = this.$container.prev('.matrixblock');\n if ($prev.length) {\n this.$container.insertBefore($prev);\n this.matrix.entrySelect.resetItemOrder();\n }\n this.matrix.trigger('moveEntryUp', {\n entry: this,\n });\n },\n\n moveDown: function () {\n this.matrix.trigger('beforeMoveEntryDown', {\n entry: this,\n });\n let $next = this.$container.next('.matrixblock');\n if ($next.length) {\n this.$container.insertAfter($next);\n this.matrix.entrySelect.resetItemOrder();\n }\n this.matrix.trigger('moveEntryDown', {\n entry: this,\n });\n },\n\n handleActionClick: function (event) {\n event.preventDefault();\n this.onActionSelect(event.target);\n },\n\n onActionSelect: function (option) {\n const batchAction =\n this.matrix.entrySelect.totalSelected > 1 &&\n this.matrix.entrySelect.isSelected(this.$container),\n $option = $(option);\n\n switch ($option.data('action')) {\n case 'collapse': {\n if (batchAction) {\n this.matrix.collapseSelectedEntries();\n } else {\n this.collapse(true);\n }\n\n break;\n }\n\n case 'expand': {\n if (batchAction) {\n this.matrix.expandSelectedEntries();\n } else {\n this.expand();\n }\n\n break;\n }\n\n case 'disable': {\n if (batchAction) {\n this.matrix.disableSelectedEntries();\n } else {\n this.disable();\n }\n\n break;\n }\n\n case 'enable': {\n if (batchAction) {\n this.matrix.enableSelectedEntries();\n } else {\n this.enable();\n this.expand();\n }\n\n break;\n }\n\n case 'moveUp': {\n this.moveUp();\n break;\n }\n\n case 'moveDown': {\n this.moveDown();\n break;\n }\n\n case 'add': {\n const type = $option.data('type');\n this.matrix.addEntry(type, this.$container);\n break;\n }\n\n case 'delete': {\n if (batchAction) {\n if (\n confirm(\n Craft.t(\n 'app',\n 'Are you sure you want to delete the selected entries?'\n )\n )\n ) {\n this.matrix.deleteSelectedEntries();\n }\n } else {\n this.selfDestruct();\n }\n\n break;\n }\n }\n\n this.actionDisclosure.hide();\n },\n\n selfDestruct: function () {\n // Remove any inputs from the form data\n $('[name]', this.$container).removeAttr('name');\n\n this.$container.velocity(\n this.matrix.getHiddenEntryCss(this.$container),\n 'fast',\n () => {\n this.$container.remove();\n this.matrix.updateAddEntryBtn();\n\n this.matrix.trigger('entryDeleted', {\n $entry: this.$container,\n });\n }\n );\n },\n\n updateFieldLayout(data) {\n return new Promise((resolve, reject) => {\n const elementEditor = this.matrix.elementEditor;\n const baseInputName = this.$container.data('base-input-name');\n\n // Ignore if we're already submitting the main form\n if (elementEditor?.submittingForm) {\n reject('Form already being submitted.');\n return;\n }\n\n if (this.cancelToken) {\n this.ignoreFailedRequest = true;\n this.cancelToken.cancel();\n }\n\n const param = (n) => Craft.namespaceInputName(n, baseInputName);\n const extraData = {\n [param('visibleLayoutElements')]: this.visibleLayoutElements,\n [param('elementType')]: 'craft\\\\elements\\\\Entry',\n [param('ownerId')]: this.matrix.settings.ownerId,\n [param('fieldId')]: this.matrix.settings.fieldId,\n [param('sortOrder')]: this.$container.index() + 1,\n [param('typeId')]: this.$container.data('type-id'),\n [param('elementUid')]:\n elementEditor?.getDraftElementUid(this.$container.data('uid')) ??\n this.$container.data('uid'),\n };\n\n const selectedTabId = this.$fieldsContainer\n .children('[data-layout-tab]:not(.hidden)')\n .data('id');\n if (selectedTabId) {\n extraData[param('selectedTab')] = selectedTabId;\n }\n\n data += `&${$.param(extraData)}`;\n\n this.cancelToken = axios.CancelToken.source();\n\n Craft.sendActionRequest('POST', 'elements/update-field-layout', {\n cancelToken: this.cancelToken.token,\n headers: {\n 'content-type': 'application/x-www-form-urlencoded',\n 'X-Craft-Namespace': baseInputName,\n },\n data,\n })\n .then((response) => {\n this._afterUpdateFieldLayout(\n data,\n selectedTabId,\n baseInputName,\n response\n );\n resolve();\n })\n .catch((e) => {\n if (!this.ignoreFailedRequest) {\n reject(e);\n }\n this.ignoreFailedRequest = false;\n })\n .finally(() => {\n this.cancelToken = null;\n });\n });\n },\n\n async _afterUpdateFieldLayout(\n data,\n selectedTabId,\n baseInputName,\n response\n ) {\n // capture the new selected tab ID, in case it just changed\n const newSelectedTabId = this.$fieldsContainer\n .children('[data-layout-tab]:not(.hidden)')\n .data('id');\n\n // Update the visible elements\n let $allTabContainers = $();\n const visibleLayoutElements = {};\n let changedElements = false;\n\n for (const tabInfo of response.data.missingElements) {\n let $tabContainer = this.$fieldsContainer.children(\n `[data-layout-tab=\"${tabInfo.uid}\"]`\n );\n\n if (!$tabContainer.length) {\n $tabContainer = $('
', {\n id: Craft.namespaceId(tabInfo.id, baseInputName),\n class: 'flex-fields',\n 'data-id': tabInfo.id,\n 'data-layout-tab': tabInfo.uid,\n });\n if (tabInfo.id !== selectedTabId) {\n $tabContainer.addClass('hidden');\n }\n $tabContainer.appendTo(this.$fieldsContainer);\n }\n\n $allTabContainers = $allTabContainers.add($tabContainer);\n\n for (const elementInfo of tabInfo.elements) {\n if (elementInfo.html !== false) {\n if (!visibleLayoutElements[tabInfo.uid]) {\n visibleLayoutElements[tabInfo.uid] = [];\n }\n visibleLayoutElements[tabInfo.uid].push(elementInfo.uid);\n\n if (typeof elementInfo.html === 'string') {\n const $oldElement = $tabContainer.children(\n `[data-layout-element=\"${elementInfo.uid}\"]`\n );\n const $newElement = $(elementInfo.html);\n if ($oldElement.length) {\n $oldElement.replaceWith($newElement);\n } else {\n $newElement.appendTo($tabContainer);\n }\n Craft.initUiElements($newElement);\n changedElements = true;\n }\n } else {\n const $oldElement = $tabContainer.children(\n `[data-layout-element=\"${elementInfo.uid}\"]`\n );\n if (\n !$oldElement.length ||\n !Garnish.hasAttr($oldElement, 'data-layout-element-placeholder')\n ) {\n const $placeholder = $('
', {\n class: 'hidden',\n 'data-layout-element': elementInfo.uid,\n 'data-layout-element-placeholder': '',\n });\n\n if ($oldElement.length) {\n $oldElement.replaceWith($placeholder);\n } else {\n $placeholder.appendTo($tabContainer);\n }\n\n changedElements = true;\n }\n }\n }\n }\n\n // Remove any unused tab content containers\n // (`[data-layout-tab=\"\"]` == unconditional containers, so ignore those)\n const $unusedTabContainers = this.$fieldsContainer\n .children('[data-layout-tab]')\n .not($allTabContainers)\n .not('[data-layout-tab=\"\"]');\n if ($unusedTabContainers.length) {\n $unusedTabContainers.remove();\n changedElements = true;\n }\n\n // Make the first tab visible if no others are\n if (!$allTabContainers.filter(':not(.hidden)').length) {\n $allTabContainers.first().removeClass('hidden');\n }\n\n this.visibleLayoutElements = visibleLayoutElements;\n\n // Update the tabs\n if (this.tabManager) {\n this.tabManager.destroy();\n this.tabManager = null;\n this.$tabContainer.html('');\n }\n\n this.hasTabs = !!response.data.tabs;\n\n if (this.hasTabs) {\n this.$tabContainer.append(response.data.tabs);\n this.tabManager = Craft.MatrixInput.initTabs(this.$tabContainer);\n\n // was a new tab selected after the request was kicked off?\n if (\n selectedTabId &&\n newSelectedTabId &&\n selectedTabId !== newSelectedTabId\n ) {\n const $newSelectedTab = this.tabManager.$tabs.filter(\n `[data-id=\"${newSelectedTabId}\"]`\n );\n if ($newSelectedTab.length) {\n // if the new tab is visible - switch to it\n this.tabManager.selectTab($newSelectedTab);\n } else {\n // if the new tab is not visible (e.g. hidden by a condition)\n // switch to the first tab\n this.tabManager.selectTab(this.tabManager.$tabs.first());\n }\n }\n }\n\n await Craft.appendHeadHtml(response.data.headHtml);\n await Craft.appendBodyHtml(response.data.bodyHtml);\n\n // re-grab dismissible tips, re-attach listener, hide on re-load\n this.matrix.elementEditor?.handleDismissibleTips();\n },\n });\n})(jQuery);\n"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","$","jQuery","Craft","MatrixInput","Garnish","Base","extend","id","entryTypes","entryTypesByHandle","inputNamePrefix","inputIdPrefix","showingAddEntryMenu","addEntryBtnGroupWidth","addEntryBtnContainerWidth","$container","$form","$entriesContainer","$addEntryBtnContainer","$addEntryBtn","$addEntryMenuBtn","$statusMessage","entrySort","entrySelect","elementEditor","addingEntry","init","settings","_this","this","formatInputId","maxEntries","setSettings","defaults","closest","children","find","data","entryType","$entries","collapsedEntries","getCollapsedEntryIds","DragSort","axis","filter","$targetItem","hasClass","getSelectedItems","collapseDraggees","magnetStrength","helperLagBase","helperOpacity","onDragStop","trigger","onSortChange","resetItemOrder","Select","multi","vertical","target","checkboxMode","$entry","entry","Entry","inArray","collapse","addListener","_callee","_context","addClass","cp","announce","addEntry","removeClass","disclosureMenu","on","_ref2","_callee2","ev","_context2","currentTarget","_x","updateAddEntryBtn","setTimeout","ownerId","getDraftElementId","canAddMoreEntries","removeAttr","$items","eq","$actionMenu","parent","attr","updateStatusMessage","message","_this2","empty","text","$insertBefore","autofocus","_this3","_callee5","_context5","setFormValue","baseInputName","queue","_callee4","_this3$elementEditor","_yield$Craft$sendActi","_context4","sendActionRequest","fieldId","entryTypeId","ownerElementType","siteId","namespace","staticEntries","blockHtml","pause","insertBefore","appendTo","css","getHiddenEntryCss","velocity","opacity","_callee3","_context3","initUiElements","appendHeadHtml","headHtml","appendBodyHtml","bodyHtml","addItems","requestAnimationFrame","_this3$elementEditor2","scrollContainerToElement","not","first","focus","resume","getEntryTypeByHandle","collapseSelectedEntries","callOnSelectedEntries","expandSelectedEntries","disableSelectedEntries","enableSelectedEntries","deleteSelectedEntries","$selectedItems","marginBottom","outerHeight","collapsedEntryStorageKey","systemUid","localStorage","filterArray","split","setCollapsedEntryIds","ids","join","rememberCollapsedEntryId","Storage","forgetCollapsedEntryId","collapsedEntriesIndex","splice","initTabs","container","$tabs","tabManager","Tabs","$menuBtn","preventDefault","href","$tab","$win","$doc","matrix","$titlebar","$tabContainer","$fieldsContainer","$previewContainer","$collapsedInput","actionDisclosure","formObserver","visibleLayoutElements","cancelToken","ignoreFailedRequest","isNew","collapsed","_this4","substring","$actionMenuBtn","DisclosureMenu","$actionMenuOptions","handleActionClick","hasAttr","_handleTitleBarClick","toggle","FormObserver","updateFieldLayout","expand","animate","_this5","previewHtml","$fields","$inputs","inputPreviewText","j","$input","$maybeLightswitchContainer","getText","_inputPreviewText","Array","isArray","escapeHtml","trim","html","prefersReducedMotion","duration","height","show","hide","val","is","labels","$options","k","$label","concat","getInputPostVal","_this6","collapsedContainerHeight","expandedContainerHeight","displayValue","display","animationDuration","disable","_this7","enable","_this8","moveUp","$prev","moveDown","$next","insertAfter","event","onActionSelect","option","batchAction","totalSelected","isSelected","$option","confirm","selfDestruct","_this9","remove","_this10","_elementEditor$getDra","submittingForm","cancel","param","namespaceInputName","extraData","_defineProperty","index","getDraftElementUid","selectedTabId","axios","CancelToken","source","token","headers","response","_afterUpdateFieldLayout","finally","_this11","_callee6","_this11$matrix$elemen","newSelectedTabId","$allTabContainers","_iterator","_step","tabInfo","_iterator2","_step2","elementInfo","$oldElement","$newElement","_$oldElement","$placeholder","$unusedTabContainers","$newSelectedTab","_context6","_createForOfIteratorHelper","missingElements","uid","namespaceId","class","add","elements","replaceWith","destroy","hasTabs","tabs","append","selectTab","handleDismissibleTips"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"MatrixInput.js","mappings":"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","sources":["webpack:///./MatrixInput.js"],"sourcesContent":["(function ($) {\n /** global: Craft */\n /** global: Garnish */\n /**\n * Matrix input class\n */\n Craft.MatrixInput = Garnish.Base.extend(\n {\n id: null,\n entryTypes: null,\n entryTypesByHandle: null,\n inputNamePrefix: null,\n inputIdPrefix: null,\n\n showingAddEntryMenu: false,\n addEntryBtnGroupWidth: null,\n addEntryBtnContainerWidth: null,\n\n $container: null,\n $form: null,\n $entriesContainer: null,\n $addEntryBtnContainer: null,\n $addEntryBtn: null,\n $addEntryMenuBtn: null,\n $statusMessage: null,\n\n entrySort: null,\n entrySelect: null,\n\n /**\n * @type {Craft.ElementEditor|null}\n */\n elementEditor: null,\n\n addingEntry: false,\n\n init: function (id, entryTypes, inputNamePrefix, settings) {\n this.id = id;\n this.entryTypes = entryTypes;\n this.inputNamePrefix = inputNamePrefix;\n this.inputIdPrefix = Craft.formatInputId(this.inputNamePrefix);\n\n // see if settings was actually set to the maxEntries value\n if (typeof settings === 'number') {\n settings = {maxEntries: settings};\n }\n this.setSettings(settings, Craft.MatrixInput.defaults);\n\n this.$container = $('#' + this.id);\n this.$form = this.$container.closest('form');\n this.$entriesContainer = this.$container.children('.blocks');\n this.$addEntryBtnContainer = this.$container.children('.buttons');\n this.$addEntryBtn =\n this.$addEntryBtnContainer.children('.btn:not(.menubtn)');\n this.$addEntryMenuBtn = this.$addEntryBtnContainer.children('.menubtn');\n this.$statusMessage = this.$container.find('[data-status-message]');\n\n this.$container.data('matrix', this);\n\n this.entryTypesByHandle = {};\n\n for (let i = 0; i < this.entryTypes.length; i++) {\n const entryType = this.entryTypes[i];\n this.entryTypesByHandle[entryType.handle] = entryType;\n }\n\n const $entries = this.$entriesContainer.children('.matrixblock');\n const collapsedEntries = Craft.MatrixInput.getCollapsedEntryIds();\n\n this.entrySort = new Garnish.DragSort($entries, {\n handle: '> .actions > .move',\n axis: 'y',\n filter: () => {\n // Only return all the selected items if the target item is selected\n if (this.entrySort.$targetItem.hasClass('sel')) {\n return this.entrySelect.getSelectedItems();\n } else {\n return this.entrySort.$targetItem;\n }\n },\n collapseDraggees: true,\n magnetStrength: 4,\n helperLagBase: 1.5,\n helperOpacity: 0.9,\n onDragStop: () => {\n this.trigger('entrySortDragStop');\n },\n onSortChange: () => {\n this.entrySelect.resetItemOrder();\n },\n });\n\n this.entrySelect = new Garnish.Select(\n this.$entriesContainer,\n $entries,\n {\n multi: true,\n vertical: true,\n handle: '> .actions > .checkbox, > .titlebar',\n filter: (target) => {\n return !$(target).closest('.tab-label').length;\n },\n checkboxMode: true,\n }\n );\n\n for (let i = 0; i < $entries.length; i++) {\n const $entry = $($entries[i]);\n const entry = new Craft.MatrixInput.Entry(this, $entry);\n\n if (entry.id && $.inArray('' + entry.id, collapsedEntries) !== -1) {\n entry.collapse();\n }\n }\n\n this.addListener(this.$addEntryBtn, 'activate', async function () {\n this.$addEntryBtn.addClass('loading');\n Craft.cp.announce(Craft.t('app', 'Loading'));\n try {\n await this.addEntry(this.$addEntryBtn.data('type'));\n } finally {\n this.$addEntryBtn.removeClass('loading');\n }\n });\n\n if (this.$addEntryMenuBtn.length) {\n this.$addEntryMenuBtn\n .disclosureMenu()\n .data('disclosureMenu')\n .$container.find('button')\n .on('activate', async (ev) => {\n this.$addEntryMenuBtn.addClass('loading');\n Craft.cp.announce(Craft.t('app', 'Loading'));\n try {\n await this.addEntry($(ev.currentTarget).data('type'));\n } finally {\n this.$addEntryMenuBtn.removeClass('loading');\n }\n });\n }\n\n this.updateAddEntryBtn();\n\n setTimeout(() => {\n this.elementEditor = this.$container\n .closest('form')\n .data('elementEditor');\n\n if (this.elementEditor) {\n this.elementEditor.on('update', () => {\n this.settings.ownerId = this.elementEditor.getDraftElementId(\n this.settings.ownerId\n );\n });\n }\n\n this.trigger('afterInit');\n }, 100);\n\n // If this field is nested within something that's deletable, be ready to handle that\n this.$container.closest('.js-deletable').on('delete', (ev) => {\n // Ignore delete events that came from nested elements\n if (ev.target === ev.currentTarget) {\n this.destroy();\n }\n });\n },\n\n canAddMoreEntries: function () {\n return (\n !this.maxEntries ||\n this.$entriesContainer.children().length < this.maxEntries\n );\n },\n\n updateAddEntryBtn: function () {\n if (this.canAddMoreEntries()) {\n this.$addEntryBtn.removeClass('disabled').removeAttr('aria-disabled');\n this.$addEntryMenuBtn.removeClass('disabled');\n\n for (let i = 0; i < this.entrySelect.$items.length; i++) {\n const entry = this.entrySelect.$items.eq(i).data('entry');\n\n if (entry) {\n entry.$actionMenu\n .find('button[data-action=add]')\n .parent()\n .removeClass('disabled');\n entry.$actionMenu\n .find('button[data-action=add]')\n .removeAttr('aria-disabled');\n }\n }\n } else {\n this.$addEntryBtn.addClass('disabled').attr('aria-disabled', 'true');\n this.$addEntryMenuBtn.addClass('disabled');\n\n for (let i = 0; i < this.entrySelect.$items.length; i++) {\n const entry = this.entrySelect.$items.eq(i).data('entry');\n\n if (entry) {\n entry.$actionMenu\n .find('button[data-action=add]')\n .parent()\n .addClass('disabled');\n entry.$actionMenu\n .find('button[data-action=add]')\n .attr('aria-disabled', 'true');\n }\n }\n }\n },\n\n updateStatusMessage: function () {\n this.$statusMessage.empty();\n let message;\n\n if (!this.canAddMoreEntries()) {\n message = Craft.t(\n 'app',\n 'Entry could not be added. Maximum number of entries reached.'\n );\n }\n\n setTimeout(() => {\n this.$statusMessage.text(message);\n }, 250);\n },\n\n async addEntry(type, $insertBefore, autofocus) {\n if (!this.canAddMoreEntries()) {\n this.updateStatusMessage();\n return;\n }\n\n if (this.elementEditor) {\n // First ensure we're working with drafts for all elements leading up\n // to this field’s element\n await this.elementEditor.setFormValue(\n this.settings.baseInputName,\n '*'\n );\n }\n\n await Craft.queue.push(async () => {\n if (this.addingEntry) {\n // only one new entry at a time\n return;\n }\n\n this.addingEntry = true;\n\n const {data} = await Craft.sendActionRequest(\n 'POST',\n 'matrix/create-entry',\n {\n data: {\n fieldId: this.settings.fieldId,\n entryTypeId: this.entryTypesByHandle[type].id,\n ownerId: this.settings.ownerId,\n ownerElementType: this.settings.ownerElementType,\n siteId: this.settings.siteId,\n namespace: this.settings.namespace,\n staticEntries: this.settings.staticEntries,\n },\n }\n );\n\n const $entry = $(data.blockHtml);\n\n // Pause the element editor\n await this.elementEditor?.pause();\n\n if ($insertBefore) {\n $entry.insertBefore($insertBefore);\n } else {\n $entry.appendTo(this.$entriesContainer);\n }\n\n this.trigger('entryAdded', {\n $entry: $entry,\n });\n\n // Animate the entry into position\n $entry.css(this.getHiddenEntryCss($entry)).velocity(\n {\n opacity: 1,\n 'margin-bottom': 10,\n },\n 'fast',\n async () => {\n $entry.css('margin-bottom', '');\n Craft.initUiElements($entry.children('.fields'));\n await Craft.appendHeadHtml(data.headHtml);\n await Craft.appendBodyHtml(data.bodyHtml);\n new Craft.MatrixInput.Entry(this, $entry);\n this.entrySort.addItems($entry);\n this.entrySelect.addItems($entry);\n this.updateAddEntryBtn();\n\n Garnish.requestAnimationFrame(() => {\n if (typeof autofocus === 'undefined' || autofocus) {\n // Scroll to the entry\n Garnish.scrollContainerToElement($entry);\n // Focus on the first focusable element\n $entry\n .find('.flex-fields :focusable')\n .not('.prevent-autofocus')\n .first()\n .focus();\n }\n\n // Resume the element editor\n this.elementEditor?.resume();\n });\n }\n );\n\n this.addingEntry = false;\n });\n },\n\n getEntryTypeByHandle: function (handle) {\n for (let i = 0; i < this.entryTypes.length; i++) {\n if (this.entryTypes[i].handle === handle) {\n return this.entryTypes[i];\n }\n }\n },\n\n collapseSelectedEntries: function () {\n this.callOnSelectedEntries('collapse');\n },\n\n expandSelectedEntries: function () {\n this.callOnSelectedEntries('expand');\n },\n\n disableSelectedEntries: function () {\n this.callOnSelectedEntries('disable');\n },\n\n enableSelectedEntries: function () {\n this.callOnSelectedEntries('enable');\n },\n\n deleteSelectedEntries: function () {\n this.callOnSelectedEntries('selfDestruct');\n },\n\n callOnSelectedEntries: function (fn) {\n for (let i = 0; i < this.entrySelect.$selectedItems.length; i++) {\n this.entrySelect.$selectedItems.eq(i).data('entry')[fn]();\n }\n },\n\n getHiddenEntryCss: function ($entry) {\n return {\n opacity: 0,\n marginBottom: -$entry.outerHeight(),\n };\n },\n\n get maxEntries() {\n return this.settings.maxEntries;\n },\n\n destroy: function () {\n this.entrySort?.destroy();\n this.entrySelect?.destroy();\n delete this.entrySort;\n delete this.entrySelect;\n\n this.$entriesContainer.children('.matrixblock').each((i, container) => {\n $(container).data('entry')?.destroy();\n });\n\n this.base();\n },\n },\n {\n defaults: {\n fieldId: null,\n maxEntries: null,\n namespace: null,\n baseInputName: null,\n ownerElementType: null,\n ownerId: null,\n siteId: null,\n staticEntries: false,\n },\n\n collapsedEntryStorageKey:\n 'Craft-' + Craft.systemUid + '.MatrixInput.collapsedEntries',\n\n getCollapsedEntryIds: function () {\n if (\n typeof localStorage[Craft.MatrixInput.collapsedEntryStorageKey] ===\n 'string'\n ) {\n return Craft.filterArray(\n localStorage[Craft.MatrixInput.collapsedEntryStorageKey].split(',')\n );\n } else {\n return [];\n }\n },\n\n setCollapsedEntryIds: function (ids) {\n localStorage[Craft.MatrixInput.collapsedEntryStorageKey] =\n ids.join(',');\n },\n\n rememberCollapsedEntryId: function (id) {\n if (typeof Storage !== 'undefined') {\n const collapsedEntries = Craft.MatrixInput.getCollapsedEntryIds();\n\n if ($.inArray('' + id, collapsedEntries) === -1) {\n collapsedEntries.push(id);\n Craft.MatrixInput.setCollapsedEntryIds(collapsedEntries);\n }\n }\n },\n\n forgetCollapsedEntryId: function (id) {\n if (typeof Storage !== 'undefined') {\n const collapsedEntries = Craft.MatrixInput.getCollapsedEntryIds();\n const collapsedEntriesIndex = $.inArray('' + id, collapsedEntries);\n\n if (collapsedEntriesIndex !== -1) {\n collapsedEntries.splice(collapsedEntriesIndex, 1);\n Craft.MatrixInput.setCollapsedEntryIds(collapsedEntries);\n }\n }\n },\n\n initTabs(container) {\n const $tabs = $(container).children('.pane-tabs');\n if (!$tabs.length) {\n return;\n }\n\n // init tab manager\n let tabManager = new Craft.Tabs($tabs);\n\n // prevent items in the disclosure menu from changing the URL\n let disclosureMenu = tabManager.$menuBtn.data('trigger');\n $(disclosureMenu.$container)\n .find('li, a')\n .on('click', function (ev) {\n ev.preventDefault();\n });\n\n tabManager.on('selectTab', (ev) => {\n const href = ev.$tab.attr('href');\n\n // Show its content area\n if (href && href.charAt(0) === '#') {\n $(href).removeClass('hidden');\n }\n\n // Trigger a resize event to update any UI components that are listening for it\n Garnish.$win.trigger('resize');\n\n // Fixes Redactor fixed toolbars on previously hidden panes\n Garnish.$doc.trigger('scroll');\n });\n\n tabManager.on('deselectTab', (ev) => {\n const href = ev.$tab.attr('href');\n if (href && href.charAt(0) === '#') {\n // Hide its content area\n $(ev.$tab.attr('href')).addClass('hidden');\n }\n });\n\n return tabManager;\n },\n }\n );\n\n Craft.MatrixInput.Entry = Garnish.Base.extend({\n /**\n * @type {Craft.MatrixInput}\n */\n matrix: null,\n $container: null,\n $titlebar: null,\n $tabContainer: null,\n $fieldsContainer: null,\n $previewContainer: null,\n $actionMenu: null,\n $collapsedInput: null,\n\n tabManager: null,\n actionDisclosure: null,\n formObserver: null,\n visibleLayoutElements: null,\n cancelToken: null,\n ignoreFailedRequest: false,\n\n isNew: null,\n id: null,\n\n collapsed: false,\n\n init: function (matrix, $container) {\n this.matrix = matrix;\n this.$container = $container;\n this.$titlebar = $container.children('.titlebar');\n this.$tabContainer = this.$titlebar.children('.matrixblock-tabs');\n this.$previewContainer = this.$titlebar.children('.preview');\n this.$fieldsContainer = $container.children('.fields');\n\n this.$container.data('entry', this);\n\n this.id = this.$container.data('id');\n this.isNew =\n !this.id ||\n (typeof this.id === 'string' && this.id.substring(0, 3) === 'new');\n\n if (this.$tabContainer.length) {\n this.tabManager = Craft.MatrixInput.initTabs(this.$tabContainer);\n }\n\n const $actionMenuBtn = this.$container.find('> .actions .action-btn');\n const actionDisclosure =\n $actionMenuBtn.data('trigger') ||\n new Garnish.DisclosureMenu($actionMenuBtn);\n\n this.$actionMenu = actionDisclosure.$container;\n this.actionDisclosure = actionDisclosure;\n\n actionDisclosure.on('show', () => {\n this.$container.addClass('active');\n if (this.$container.prev('.matrixblock').length) {\n this.$actionMenu\n .find('button[data-action=moveUp]:first')\n .parent()\n .removeClass('hidden');\n } else {\n this.$actionMenu\n .find('button[data-action=moveUp]:first')\n .parent()\n .addClass('hidden');\n }\n if (this.$container.next('.matrixblock').length) {\n this.$actionMenu\n .find('button[data-action=moveDown]:first')\n .parent()\n .removeClass('hidden');\n } else {\n this.$actionMenu\n .find('button[data-action=moveDown]:first')\n .parent()\n .addClass('hidden');\n }\n });\n\n actionDisclosure.on('hide', () => {\n this.$container.removeClass('active');\n });\n\n this.$actionMenuOptions = this.$actionMenu.find('button[data-action]');\n\n this.addListener(\n this.$actionMenuOptions,\n 'activate',\n this.handleActionClick\n );\n\n // Was this entry already collapsed?\n if (Garnish.hasAttr(this.$container, 'data-collapsed')) {\n this.collapse();\n }\n\n this._handleTitleBarClick = function (ev) {\n // don't expand/collapse the matrix \"block\" if double tapping the tabs\n if (!$(ev.target).closest('.tab-label').length) {\n ev.preventDefault();\n this.toggle();\n }\n };\n\n this.addListener(this.$titlebar, 'doubletap', this._handleTitleBarClick);\n\n this.visibleLayoutElements = this.$container.data(\n 'visible-layout-elements'\n );\n this.formObserver = new Craft.FormObserver(this.$container, (data) => {\n this.updateFieldLayout(data);\n });\n },\n\n toggle: function () {\n if (this.collapsed) {\n this.expand();\n } else {\n this.collapse(true);\n }\n },\n\n collapse: function (animate) {\n if (this.collapsed) {\n return;\n }\n\n this.$container.addClass('collapsed');\n\n let previewHtml = '';\n const $fields = this.$fieldsContainer.children().children();\n\n for (let i = 0; i < $fields.length; i++) {\n const $field = $($fields[i]);\n const $inputs = $field\n .children('.input')\n .find('select,input[type!=\"hidden\"],textarea,.label');\n let inputPreviewText = '';\n\n for (let j = 0; j < $inputs.length; j++) {\n const $input = $($inputs[j]);\n let value;\n\n if ($input.hasClass('label')) {\n const $maybeLightswitchContainer = $input.parent().parent();\n\n if (\n $maybeLightswitchContainer.hasClass('lightswitch') &&\n (($maybeLightswitchContainer.hasClass('on') &&\n $input.hasClass('off')) ||\n (!$maybeLightswitchContainer.hasClass('on') &&\n $input.hasClass('on')))\n ) {\n continue;\n }\n\n value = $input.text();\n } else {\n value = Craft.getText(this._inputPreviewText($input));\n }\n\n if (Array.isArray(value)) {\n value = value.join(', ');\n }\n\n if (value) {\n value = Craft.escapeHtml(value).trim();\n\n if (value) {\n if (inputPreviewText) {\n inputPreviewText += ', ';\n }\n\n inputPreviewText += value;\n }\n }\n }\n\n if (inputPreviewText) {\n previewHtml +=\n (previewHtml ? ' | ' : '') + inputPreviewText;\n }\n }\n\n this.$previewContainer.html(previewHtml);\n\n this.$fieldsContainer.velocity('stop');\n this.$container.velocity('stop');\n\n if (animate && !Garnish.prefersReducedMotion()) {\n this.$fieldsContainer.velocity('fadeOut', {duration: 'fast'});\n this.$container.velocity({height: 34}, 'fast');\n } else {\n this.$previewContainer.show();\n this.$fieldsContainer.hide();\n this.$container.css({height: 34});\n }\n\n this.$tabContainer.hide();\n\n setTimeout(() => {\n this.$actionMenu\n .find('button[data-action=collapse]:first')\n .parent()\n .addClass('hidden');\n this.$actionMenu\n .find('button[data-action=expand]:first')\n .parent()\n .removeClass('hidden');\n }, 200);\n\n // Remember that?\n if (!this.isNew) {\n Craft.MatrixInput.rememberCollapsedEntryId(this.id);\n } else {\n if (!this.$collapsedInput) {\n this.$collapsedInput = $(\n ''\n ).appendTo(this.$container);\n } else {\n this.$collapsedInput.val('1');\n }\n }\n\n this.collapsed = true;\n },\n\n _inputPreviewText: function ($input) {\n if ($input.is('select,multiselect')) {\n const labels = [];\n const $options = $input.find('option:selected');\n for (let k = 0; k < $options.length; k++) {\n labels.push($options.eq(k).text());\n }\n return labels;\n }\n\n if (\n $input.is('input[type=\"checkbox\"]:checked,input[type=\"radio\"]:checked')\n ) {\n const id = $input.attr('id');\n const $label = $(`label[for=\"${id}\"]`);\n if ($label.length) {\n return $label.text();\n }\n }\n\n return Garnish.getInputPostVal($input);\n },\n\n expand: function () {\n if (!this.collapsed) {\n return;\n }\n\n this.$container.removeClass('collapsed');\n\n this.$fieldsContainer.velocity('stop');\n this.$container.velocity('stop');\n\n const collapsedContainerHeight = this.$container.height();\n this.$container.height('auto');\n this.$fieldsContainer.show();\n const expandedContainerHeight = this.$container.height();\n const displayValue = this.$fieldsContainer.css('display') || 'block';\n this.$container.height(collapsedContainerHeight);\n this.$fieldsContainer\n .hide()\n .velocity('fadeIn', {duration: 'fast', display: displayValue});\n\n const animationDuration = Garnish.prefersReducedMotion() ? 0 : 'fast';\n this.$container.velocity(\n {height: expandedContainerHeight},\n animationDuration,\n () => {\n this.$previewContainer.html('');\n this.$container.height('auto');\n this.$container.trigger('scroll');\n this.$tabContainer.show();\n }\n );\n\n setTimeout(() => {\n this.$actionMenu\n .find('button[data-action=collapse]:first')\n .parent()\n .removeClass('hidden');\n this.$actionMenu\n .find('button[data-action=expand]:first')\n .parent()\n .addClass('hidden');\n }, 200);\n\n // Remember that?\n if (!this.isNew && typeof Storage !== 'undefined') {\n const collapsedEntries = Craft.MatrixInput.getCollapsedEntryIds();\n const collapsedEntriesIndex = $.inArray('' + this.id, collapsedEntries);\n\n if (collapsedEntriesIndex !== -1) {\n collapsedEntries.splice(collapsedEntriesIndex, 1);\n Craft.MatrixInput.setCollapsedEntryIds(collapsedEntries);\n }\n }\n\n if (!this.isNew) {\n Craft.MatrixInput.forgetCollapsedEntryId(this.id);\n } else if (this.$collapsedInput) {\n this.$collapsedInput.val('');\n }\n\n this.collapsed = false;\n },\n\n disable: function () {\n this.$container.children('input[name$=\"[enabled]\"]:first').val('');\n this.$container.addClass('disabled-entry');\n\n setTimeout(() => {\n this.$actionMenu\n .find('button[data-action=disable]:first')\n .parent()\n .addClass('hidden');\n this.$actionMenu\n .find('button[data-action=enable]:first')\n .parent()\n .removeClass('hidden');\n }, 200);\n\n this.collapse(true);\n },\n\n enable: function () {\n this.$container.children('input[name$=\"[enabled]\"]:first').val('1');\n this.$container.removeClass('disabled-entry');\n\n setTimeout(() => {\n this.$actionMenu\n .find('button[data-action=disable]:first')\n .parent()\n .removeClass('hidden');\n this.$actionMenu\n .find('button[data-action=enable]:first')\n .parent()\n .addClass('hidden');\n }, 200);\n },\n\n moveUp: function () {\n this.matrix.trigger('beforeMoveEntryUp', {\n entry: this,\n });\n let $prev = this.$container.prev('.matrixblock');\n if ($prev.length) {\n this.$container.insertBefore($prev);\n this.matrix.entrySelect.resetItemOrder();\n }\n this.matrix.trigger('moveEntryUp', {\n entry: this,\n });\n },\n\n moveDown: function () {\n this.matrix.trigger('beforeMoveEntryDown', {\n entry: this,\n });\n let $next = this.$container.next('.matrixblock');\n if ($next.length) {\n this.$container.insertAfter($next);\n this.matrix.entrySelect.resetItemOrder();\n }\n this.matrix.trigger('moveEntryDown', {\n entry: this,\n });\n },\n\n handleActionClick: function (event) {\n event.preventDefault();\n this.onActionSelect(event.target);\n },\n\n onActionSelect: function (option) {\n const batchAction =\n this.matrix.entrySelect.totalSelected > 1 &&\n this.matrix.entrySelect.isSelected(this.$container),\n $option = $(option);\n\n switch ($option.data('action')) {\n case 'collapse': {\n if (batchAction) {\n this.matrix.collapseSelectedEntries();\n } else {\n this.collapse(true);\n }\n\n break;\n }\n\n case 'expand': {\n if (batchAction) {\n this.matrix.expandSelectedEntries();\n } else {\n this.expand();\n }\n\n break;\n }\n\n case 'disable': {\n if (batchAction) {\n this.matrix.disableSelectedEntries();\n } else {\n this.disable();\n }\n\n break;\n }\n\n case 'enable': {\n if (batchAction) {\n this.matrix.enableSelectedEntries();\n } else {\n this.enable();\n this.expand();\n }\n\n break;\n }\n\n case 'moveUp': {\n this.moveUp();\n break;\n }\n\n case 'moveDown': {\n this.moveDown();\n break;\n }\n\n case 'add': {\n const type = $option.data('type');\n this.matrix.addEntry(type, this.$container);\n break;\n }\n\n case 'delete': {\n if (batchAction) {\n if (\n confirm(\n Craft.t(\n 'app',\n 'Are you sure you want to delete the selected entries?'\n )\n )\n ) {\n this.matrix.deleteSelectedEntries();\n }\n } else {\n this.selfDestruct();\n }\n\n break;\n }\n }\n\n this.actionDisclosure?.hide();\n },\n\n selfDestruct: function () {\n this.destroy();\n\n // Remove any inputs from the form data\n $('[name]', this.$container).removeAttr('name');\n\n this.$container.velocity(\n this.matrix.getHiddenEntryCss(this.$container),\n 'fast',\n () => {\n this.$container.remove();\n this.matrix.updateAddEntryBtn();\n\n this.matrix.trigger('entryDeleted', {\n $entry: this.$container,\n });\n }\n );\n },\n\n updateFieldLayout(data) {\n return new Promise((resolve, reject) => {\n const elementEditor = this.matrix.elementEditor;\n const baseInputName = this.$container.data('base-input-name');\n\n // Ignore if we're already submitting the main form\n if (elementEditor?.submittingForm) {\n reject('Form already being submitted.');\n return;\n }\n\n if (this.cancelToken) {\n this.ignoreFailedRequest = true;\n this.cancelToken.cancel();\n }\n\n const param = (n) => Craft.namespaceInputName(n, baseInputName);\n const extraData = {\n [param('visibleLayoutElements')]: this.visibleLayoutElements,\n [param('elementType')]: 'craft\\\\elements\\\\Entry',\n [param('ownerId')]: this.matrix.settings.ownerId,\n [param('fieldId')]: this.matrix.settings.fieldId,\n [param('sortOrder')]: this.$container.index() + 1,\n [param('typeId')]: this.$container.data('type-id'),\n [param('elementUid')]:\n elementEditor?.getDraftElementUid(this.$container.data('uid')) ??\n this.$container.data('uid'),\n };\n\n const selectedTabId = this.$fieldsContainer\n .children('[data-layout-tab]:not(.hidden)')\n .data('id');\n if (selectedTabId) {\n extraData[param('selectedTab')] = selectedTabId;\n }\n\n data += `&${$.param(extraData)}`;\n\n this.cancelToken = axios.CancelToken.source();\n\n Craft.sendActionRequest('POST', 'elements/update-field-layout', {\n cancelToken: this.cancelToken.token,\n headers: {\n 'content-type': 'application/x-www-form-urlencoded',\n 'X-Craft-Namespace': baseInputName,\n },\n data,\n })\n .then((response) => {\n this._afterUpdateFieldLayout(\n data,\n selectedTabId,\n baseInputName,\n response\n );\n resolve();\n })\n .catch((e) => {\n if (!this.ignoreFailedRequest) {\n reject(e);\n }\n this.ignoreFailedRequest = false;\n })\n .finally(() => {\n this.cancelToken = null;\n });\n });\n },\n\n async _afterUpdateFieldLayout(\n data,\n selectedTabId,\n baseInputName,\n response\n ) {\n // capture the new selected tab ID, in case it just changed\n const newSelectedTabId = this.$fieldsContainer\n .children('[data-layout-tab]:not(.hidden)')\n .data('id');\n\n // Update the visible elements\n let $allTabContainers = $();\n const visibleLayoutElements = {};\n let changedElements = false;\n\n for (const tabInfo of response.data.missingElements) {\n let $tabContainer = this.$fieldsContainer.children(\n `[data-layout-tab=\"${tabInfo.uid}\"]`\n );\n\n if (!$tabContainer.length) {\n $tabContainer = $('
', {\n id: Craft.namespaceId(tabInfo.id, baseInputName),\n class: 'flex-fields',\n 'data-id': tabInfo.id,\n 'data-layout-tab': tabInfo.uid,\n });\n if (tabInfo.id !== selectedTabId) {\n $tabContainer.addClass('hidden');\n }\n $tabContainer.appendTo(this.$fieldsContainer);\n }\n\n $allTabContainers = $allTabContainers.add($tabContainer);\n\n for (const elementInfo of tabInfo.elements) {\n if (elementInfo.html !== false) {\n if (!visibleLayoutElements[tabInfo.uid]) {\n visibleLayoutElements[tabInfo.uid] = [];\n }\n visibleLayoutElements[tabInfo.uid].push(elementInfo.uid);\n\n if (typeof elementInfo.html === 'string') {\n const $oldElement = $tabContainer.children(\n `[data-layout-element=\"${elementInfo.uid}\"]`\n );\n const $newElement = $(elementInfo.html);\n if ($oldElement.length) {\n $oldElement.replaceWith($newElement);\n } else {\n $newElement.appendTo($tabContainer);\n }\n Craft.initUiElements($newElement);\n changedElements = true;\n }\n } else {\n const $oldElement = $tabContainer.children(\n `[data-layout-element=\"${elementInfo.uid}\"]`\n );\n if (\n !$oldElement.length ||\n !Garnish.hasAttr($oldElement, 'data-layout-element-placeholder')\n ) {\n const $placeholder = $('
', {\n class: 'hidden',\n 'data-layout-element': elementInfo.uid,\n 'data-layout-element-placeholder': '',\n });\n\n if ($oldElement.length) {\n $oldElement.replaceWith($placeholder);\n } else {\n $placeholder.appendTo($tabContainer);\n }\n\n changedElements = true;\n }\n }\n }\n }\n\n // Remove any unused tab content containers\n // (`[data-layout-tab=\"\"]` == unconditional containers, so ignore those)\n const $unusedTabContainers = this.$fieldsContainer\n .children('[data-layout-tab]')\n .not($allTabContainers)\n .not('[data-layout-tab=\"\"]');\n if ($unusedTabContainers.length) {\n $unusedTabContainers.remove();\n changedElements = true;\n }\n\n // Make the first tab visible if no others are\n if (!$allTabContainers.filter(':not(.hidden)').length) {\n $allTabContainers.first().removeClass('hidden');\n }\n\n this.visibleLayoutElements = visibleLayoutElements;\n\n // Update the tabs\n if (this.tabManager) {\n this.tabManager.destroy();\n this.tabManager = null;\n this.$tabContainer.html('');\n }\n\n this.hasTabs = !!response.data.tabs;\n\n if (this.hasTabs) {\n this.$tabContainer.append(response.data.tabs);\n this.tabManager = Craft.MatrixInput.initTabs(this.$tabContainer);\n\n // was a new tab selected after the request was kicked off?\n if (\n selectedTabId &&\n newSelectedTabId &&\n selectedTabId !== newSelectedTabId\n ) {\n const $newSelectedTab = this.tabManager.$tabs.filter(\n `[data-id=\"${newSelectedTabId}\"]`\n );\n if ($newSelectedTab.length) {\n // if the new tab is visible - switch to it\n this.tabManager.selectTab($newSelectedTab);\n } else {\n // if the new tab is not visible (e.g. hidden by a condition)\n // switch to the first tab\n this.tabManager.selectTab(this.tabManager.$tabs.first());\n }\n }\n }\n\n await Craft.appendHeadHtml(response.data.headHtml);\n await Craft.appendBodyHtml(response.data.bodyHtml);\n\n // re-grab dismissible tips, re-attach listener, hide on re-load\n this.matrix.elementEditor?.handleDismissibleTips();\n },\n\n destroy: function () {\n this.actionDisclosure?.hide();\n\n this.tabManager?.destroy();\n this.actionDisclosure?.destroy();\n this.formObserver?.destroy();\n delete this.tabManager;\n delete this.actionDisclosure;\n delete this.formObserver;\n\n // alert any nested inputs that we're getting deleted\n this.$container.trigger('delete');\n\n this.base();\n },\n });\n})(jQuery);\n"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","$","jQuery","Craft","MatrixInput","Garnish","Base","extend","id","entryTypes","entryTypesByHandle","inputNamePrefix","inputIdPrefix","showingAddEntryMenu","addEntryBtnGroupWidth","addEntryBtnContainerWidth","$container","$form","$entriesContainer","$addEntryBtnContainer","$addEntryBtn","$addEntryMenuBtn","$statusMessage","entrySort","entrySelect","elementEditor","addingEntry","init","settings","_this","this","formatInputId","maxEntries","setSettings","defaults","closest","children","find","data","entryType","$entries","collapsedEntries","getCollapsedEntryIds","DragSort","axis","filter","$targetItem","hasClass","getSelectedItems","collapseDraggees","magnetStrength","helperLagBase","helperOpacity","onDragStop","trigger","onSortChange","resetItemOrder","Select","multi","vertical","target","checkboxMode","$entry","entry","Entry","inArray","collapse","addListener","_callee","_context","addClass","cp","announce","addEntry","removeClass","disclosureMenu","on","_ref2","_callee2","ev","_context2","currentTarget","_x","updateAddEntryBtn","setTimeout","ownerId","getDraftElementId","destroy","canAddMoreEntries","removeAttr","$items","eq","$actionMenu","parent","attr","updateStatusMessage","message","_this2","empty","text","$insertBefore","autofocus","_this3","_callee5","_context5","setFormValue","baseInputName","queue","_callee4","_this3$elementEditor","_yield$Craft$sendActi","_context4","sendActionRequest","fieldId","entryTypeId","ownerElementType","siteId","namespace","staticEntries","blockHtml","pause","insertBefore","appendTo","css","getHiddenEntryCss","velocity","opacity","_callee3","_context3","initUiElements","appendHeadHtml","headHtml","appendBodyHtml","bodyHtml","addItems","requestAnimationFrame","_this3$elementEditor2","scrollContainerToElement","not","first","focus","resume","getEntryTypeByHandle","collapseSelectedEntries","callOnSelectedEntries","expandSelectedEntries","disableSelectedEntries","enableSelectedEntries","deleteSelectedEntries","$selectedItems","marginBottom","outerHeight","_this$entrySort","_this$entrySelect","each","container","_$$data","base","collapsedEntryStorageKey","systemUid","localStorage","filterArray","split","setCollapsedEntryIds","ids","join","rememberCollapsedEntryId","Storage","forgetCollapsedEntryId","collapsedEntriesIndex","splice","initTabs","$tabs","tabManager","Tabs","$menuBtn","preventDefault","href","$tab","$win","$doc","matrix","$titlebar","$tabContainer","$fieldsContainer","$previewContainer","$collapsedInput","actionDisclosure","formObserver","visibleLayoutElements","cancelToken","ignoreFailedRequest","isNew","collapsed","_this4","substring","$actionMenuBtn","DisclosureMenu","$actionMenuOptions","handleActionClick","hasAttr","_handleTitleBarClick","toggle","FormObserver","updateFieldLayout","expand","animate","_this5","previewHtml","$fields","$inputs","inputPreviewText","j","$input","$maybeLightswitchContainer","getText","_inputPreviewText","Array","isArray","escapeHtml","trim","html","prefersReducedMotion","duration","height","show","hide","val","is","labels","$options","k","$label","concat","getInputPostVal","_this6","collapsedContainerHeight","expandedContainerHeight","displayValue","display","animationDuration","disable","_this7","enable","_this8","moveUp","$prev","moveDown","$next","insertAfter","event","onActionSelect","option","_this$actionDisclosur","batchAction","totalSelected","isSelected","$option","confirm","selfDestruct","_this9","remove","_this10","_elementEditor$getDra","submittingForm","cancel","param","namespaceInputName","extraData","_defineProperty","index","getDraftElementUid","selectedTabId","axios","CancelToken","source","token","headers","response","_afterUpdateFieldLayout","finally","_this11","_callee6","_this11$matrix$elemen","newSelectedTabId","$allTabContainers","_iterator","_step","tabInfo","_iterator2","_step2","elementInfo","$oldElement","$newElement","_$oldElement","$placeholder","$unusedTabContainers","$newSelectedTab","_context6","_createForOfIteratorHelper","missingElements","uid","namespaceId","class","add","elements","replaceWith","hasTabs","tabs","append","selectTab","handleDismissibleTips","_this$actionDisclosur2","_this$tabManager","_this$actionDisclosur3","_this$formObserver"],"sourceRoot":""} \ No newline at end of file diff --git a/src/web/assets/matrix/src/MatrixInput.js b/src/web/assets/matrix/src/MatrixInput.js index 883601db104..f01597ff38d 100644 --- a/src/web/assets/matrix/src/MatrixInput.js +++ b/src/web/assets/matrix/src/MatrixInput.js @@ -156,6 +156,14 @@ this.trigger('afterInit'); }, 100); + + // If this field is nested within something that's deletable, be ready to handle that + this.$container.closest('.js-deletable').on('delete', (ev) => { + // Ignore delete events that came from nested elements + if (ev.target === ev.currentTarget) { + this.destroy(); + } + }); }, canAddMoreEntries: function () { @@ -356,6 +364,19 @@ get maxEntries() { return this.settings.maxEntries; }, + + destroy: function () { + this.entrySort?.destroy(); + this.entrySelect?.destroy(); + delete this.entrySort; + delete this.entrySelect; + + this.$entriesContainer.children('.matrixblock').each((i, container) => { + $(container).data('entry')?.destroy(); + }); + + this.base(); + }, }, { defaults: { @@ -925,10 +946,12 @@ } } - this.actionDisclosure.hide(); + this.actionDisclosure?.hide(); }, selfDestruct: function () { + this.destroy(); + // Remove any inputs from the form data $('[name]', this.$container).removeAttr('name'); @@ -1154,5 +1177,21 @@ // re-grab dismissible tips, re-attach listener, hide on re-load this.matrix.elementEditor?.handleDismissibleTips(); }, + + destroy: function () { + this.actionDisclosure?.hide(); + + this.tabManager?.destroy(); + this.actionDisclosure?.destroy(); + this.formObserver?.destroy(); + delete this.tabManager; + delete this.actionDisclosure; + delete this.formObserver; + + // alert any nested inputs that we're getting deleted + this.$container.trigger('delete'); + + this.base(); + }, }); })(jQuery);