<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">!function(t){Craft.MatrixInput=Garnish.Base.extend({id:null,blockTypes:null,blockTypesByHandle:null,inputNamePrefix:null,inputIdPrefix:null,showingAddBlockMenu:!1,addBlockBtnGroupWidth:null,addBlockBtnContainerWidth:null,$container:null,$blockContainer:null,$addBlockBtnContainer:null,$addBlockBtnGroup:null,$addBlockBtnGroupBtns:null,$statusMessage:null,blockSort:null,blockSelect:null,totalNewBlocks:0,init:function(a,i,n,o){var s,l=this;for(this.id=a,this.blockTypes=i,this.inputNamePrefix=n,this.inputIdPrefix=Craft.formatInputId(this.inputNamePrefix),"number"==typeof o&amp;&amp;(o={maxBlocks:o}),this.setSettings(o,Craft.MatrixInput.defaults),this.$container=t("#"+this.id),this.$blockContainer=this.$container.children(".blocks"),this.$addBlockBtnContainer=this.$container.children(".buttons"),this.$addBlockBtnGroup=this.$addBlockBtnContainer.children(".btngroup"),this.$addBlockBtnGroupBtns=this.$addBlockBtnGroup.children(".btn"),this.$addBlockMenuBtn=this.$addBlockBtnContainer.children(".menubtn"),this.$statusMessage=this.$container.find("[data-status-message]"),this.$container.data("matrix",this),this.setNewBlockBtn(),this.blockTypesByHandle={},s=0;s&lt;this.blockTypes.length;s++){var c=this.blockTypes[s];this.blockTypesByHandle[c.handle]=c}var d=this.$blockContainer.children(),r=Craft.MatrixInput.getCollapsedBlockIds();for(this.blockSort=new Garnish.DragSort(d,{handle:"&gt; .actions &gt; .move",axis:"y",filter:function(){return l.blockSort.$targetItem.hasClass("sel")?l.blockSelect.getSelectedItems():l.blockSort.$targetItem},collapseDraggees:!0,magnetStrength:4,helperLagBase:1.5,helperOpacity:.9,onDragStop:function(){l.trigger("blockSortDragStop")},onSortChange:function(){l.blockSelect.resetItemOrder()}}),this.blockSelect=new Garnish.Select(this.$blockContainer,d,{multi:!0,vertical:!0,handle:"&gt; .checkbox, &gt; .titlebar",checkboxMode:!0}),s=0;s&lt;d.length;s++){var h=t(d[s]),p=h.data("id"),u="string"==typeof p&amp;&amp;p.match(/new(\d+)/);u&amp;&amp;u[1]&gt;this.totalNewBlocks&amp;&amp;(this.totalNewBlocks=parseInt(u[1]));var f=new e(this,h);f.id&amp;&amp;-1!==t.inArray(""+f.id,r)&amp;&amp;f.collapse()}this.addListener(this.$addBlockBtnGroupBtns,"click",(function(e){var a=t(e.target).data("type");this.addBlock(a)})),this.$addBlockMenuBtn.length&amp;&amp;(this.$addBlockMenuBtn.menubtn(),this.$addBlockMenuBtn.data("menubtn").on("optionSelect",(function(e){l.addBlock(t(e.option).data("type"))}))),this.updateAddBlockBtn(),this.addListener(this.$container,"resize","setNewBlockBtn"),Garnish.$doc.ready(this.setNewBlockBtn.bind(this)),this.trigger("afterInit")},setNewBlockBtn:function(){var t=this;(this.addBlockBtnGroupWidth||(this.addBlockBtnGroupWidth=this.$addBlockBtnGroup.width(),this.addBlockBtnGroupWidth))&amp;&amp;this.addBlockBtnContainerWidth!==(this.addBlockBtnContainerWidth=this.$addBlockBtnContainer.width())&amp;&amp;(this.addBlockBtnGroupWidth&gt;this.addBlockBtnContainerWidth?this.showingAddBlockMenu||(this.$addBlockBtnGroup.addClass("hidden"),this.$addBlockMenuBtn.removeClass("hidden"),this.showingAddBlockMenu=!0):this.showingAddBlockMenu&amp;&amp;(this.$addBlockMenuBtn.addClass("hidden"),this.$addBlockBtnGroup.removeClass("hidden"),this.showingAddBlockMenu=!1,-1!==navigator.userAgent.indexOf("Safari")&amp;&amp;Garnish.requestAnimationFrame((function(){t.$addBlockBtnGroup.css("opacity",.99),Garnish.requestAnimationFrame((function(){t.$addBlockBtnGroup.css("opacity","")}))}))))},canAddMoreBlocks:function(){return!this.maxBlocks||this.$blockContainer.children().length&lt;this.maxBlocks},updateAddBlockBtn:function(){var e,a;if(this.canAddMoreBlocks())for(this.$addBlockBtnGroup.removeClass("disabled"),this.$addBlockMenuBtn.removeClass("disabled"),this.$addBlockBtnGroupBtns.each((function(){t(this).removeAttr("aria-disabled")})),e=0;e&lt;this.blockSelect.$items.length;e++)(a=this.blockSelect.$items.eq(e).data("block"))&amp;&amp;(a.$actionMenu.find("a[data-action=add]").parent().removeClass("disabled"),a.$actionMenu.find("a[data-action=add]").removeAttr("aria-disabled"));else for(this.$addBlockBtnGroup.addClass("disabled"),this.$addBlockMenuBtn.addClass("disabled"),this.$addBlockBtnGroupBtns.each((function(){t(this).attr("aria-disabled","true")})),e=0;e&lt;this.blockSelect.$items.length;e++)(a=this.blockSelect.$items.eq(e).data("block"))&amp;&amp;(a.$actionMenu.find("a[data-action=add]").parent().addClass("disabled"),a.$actionMenu.find("a[data-action=add]").attr("aria-disabled","true"))},updateStatusMessage:function(){var t,e=this;this.$statusMessage.empty(),this.canAddMoreBlocks()||(t=Craft.t("app","Matrix block could not be added. Maximum number of blocks reached.")),setTimeout((function(){e.$statusMessage.text(t)}),250)},addBlock:function(a,i,n){var o=this;if(this.canAddMoreBlocks()){this.totalNewBlocks++;var s="new"+this.totalNewBlocks,l="matrixblock-action-menu-".concat(s),c='\n                &lt;div class="matrixblock" data-id="'.concat(s,'" data-type="').concat(a,'"&gt;\n                  &lt;input type="hidden" name="').concat(this.inputNamePrefix,'[sortOrder][]" value="').concat(s,'"/&gt;\n                  &lt;input type="hidden" name="').concat(this.inputNamePrefix,"[blocks][").concat(s,'][type]" value="').concat(a,'"/&gt;\n                  &lt;input type="hidden" name="').concat(this.inputNamePrefix,"[blocks][").concat(s,'][enabled]" value="1"/&gt;\n                  &lt;div class="titlebar"&gt;\n                    &lt;div class="blocktype"&gt;').concat(this.getBlockTypeByHandle(a).name,'&lt;/div&gt;\n                    &lt;div class="preview"&gt;&lt;/div&gt;\n                  &lt;/div&gt;\n                  &lt;div class="checkbox" title="').concat(Craft.t("app","Select"),'"&gt;&lt;/div&gt;\n                  &lt;div class="actions"&gt;\n                    &lt;div class="status off" title="').concat(Craft.t("app","Disabled"),'"&gt;&lt;/div&gt;\n                    &lt;div&gt;\n                      &lt;button type="button" class="btn settings icon menubtn" title="').concat(Craft.t("app","Actions"),'" aria-controls="').concat(l,'" data-disclosure-trigger&gt;&lt;/button&gt;\n                        &lt;div id="').concat(l,'" class="menu menu--disclosure"&gt;\n                         &lt;ul class="padded"&gt;\n                            &lt;li&gt;&lt;a data-icon="collapse" data-action="collapse" href="#" aria-label="').concat(Craft.t("app","Collapse"),'" type="button" role="button"&gt;').concat(Craft.t("app","Collapse"),'&lt;/a&gt;&lt;/li&gt;\n                            &lt;li class="hidden"&gt;&lt;a data-icon="expand" data-action="expand" href="#" aria-label="').concat(Craft.t("app","Expand"),'" type="button" role="button"&gt;').concat(Craft.t("app","Expand"),'&lt;/a&gt;&lt;/li&gt;\n                            &lt;li&gt;&lt;a data-icon="disabled" data-action="disable" href="#" aria-label="').concat(Craft.t("app","Disable"),'" type="button" role="button"&gt;').concat(Craft.t("app","Disable"),'&lt;/a&gt;&lt;/li&gt;\n                            &lt;li class="hidden"&gt;&lt;a data-icon="enabled" data-action="enable" href="#" aria-label="').concat(Craft.t("app","Enable"),'" type="button" role="button"&gt;').concat(Craft.t("app","Enable"),'&lt;/a&gt;&lt;/li&gt;\n                            &lt;li&gt;&lt;a data-icon="uarr" data-action="moveUp" href="#" aria-label="').concat(Craft.t("app","Move up"),'" type="button" role="button"&gt;').concat(Craft.t("app","Move up"),'&lt;/a&gt;&lt;/li&gt;\n                            &lt;li&gt;&lt;a data-icon="darr" data-action="moveDown" href="#" aria-label="').concat(Craft.t("app","Move down"),'" type="button" role="button"&gt;').concat(Craft.t("app","Move down"),"&lt;/a&gt;&lt;/li&gt;\n                          &lt;/ul&gt;");if(!this.settings.staticBlocks){c+='\n                          &lt;hr class="padded"/&gt;\n                          &lt;ul class="padded"&gt;\n                            &lt;li&gt;&lt;a class="error" data-icon="remove" data-action="delete" href="#" aria-label="'.concat(Craft.t("app","Delete"),'" type="button" role="button"&gt;').concat(Craft.t("app","Delete"),'&lt;/a&gt;&lt;/li&gt;\n                          &lt;/ul&gt;\n                          &lt;hr class="padded"/&gt;\n                          &lt;ul class="padded"&gt;');for(var d=0;d&lt;this.blockTypes.length;d++){var r=this.blockTypes[d];c+='\n                            &lt;li&gt;&lt;a data-icon="plus" data-action="add" data-type="'.concat(r.handle,'" href="#" aria-label="').concat(Craft.t("app","Add {type} above",{type:r.name}),'" type="button" role="button"&gt;').concat(Craft.t("app","Add {type} above",{type:r.name}),"&lt;/a&gt;&lt;/li&gt;")}c+="\n                          &lt;/ul&gt;"}c+='\n                        &lt;/div&gt;\n                      &lt;/div&gt;\n                    &lt;a class="move icon" title="'.concat(Craft.t("app","Reorder"),'" role="button"&gt;&lt;/a&gt;\n                  &lt;/div&gt;\n                &lt;/div&gt;');var h=t(c);window.draftEditor&amp;&amp;window.draftEditor.pause(),i?h.insertBefore(i):h.appendTo(this.$blockContainer);var p=t('&lt;div class="fields"/&gt;').appendTo(h),u=this.getParsedBlockHtml(this.blockTypesByHandle[a].bodyHtml,s),f=this.getParsedBlockHtml(this.blockTypesByHandle[a].footHtml,s);t(u).appendTo(p),this.trigger("blockAdded",{$block:h}),h.css(this.getHiddenBlockCss(h)).velocity({opacity:1,"margin-bottom":10},"fast",(function(){h.css("margin-bottom",""),Garnish.$bod.append(f),Craft.initUiElements(p),new e(o,h),o.blockSort.addItems(h),o.blockSelect.addItems(h),o.updateAddBlockBtn(),Garnish.requestAnimationFrame((function(){(void 0===n||n)&amp;&amp;(Garnish.scrollContainerToElement(h),h.find(".text,[contenteditable]").first().trigger("focus")),window.draftEditor&amp;&amp;window.draftEditor.resume()}))}))}else this.updateStatusMessage()},getBlockTypeByHandle:function(t){for(var e=0;e&lt;this.blockTypes.length;e++)if(this.blockTypes[e].handle===t)return this.blockTypes[e]},collapseSelectedBlocks:function(){this.callOnSelectedBlocks("collapse")},expandSelectedBlocks:function(){this.callOnSelectedBlocks("expand")},disableSelectedBlocks:function(){this.callOnSelectedBlocks("disable")},enableSelectedBlocks:function(){this.callOnSelectedBlocks("enable")},deleteSelectedBlocks:function(){this.callOnSelectedBlocks("selfDestruct")},callOnSelectedBlocks:function(t){for(var e=0;e&lt;this.blockSelect.$selectedItems.length;e++)this.blockSelect.$selectedItems.eq(e).data("block")[t]()},getHiddenBlockCss:function(t){return{opacity:0,marginBottom:-t.outerHeight()}},getParsedBlockHtml:function(t,e){return"string"==typeof t?t.replace(new RegExp("__BLOCK_".concat(this.settings.placeholderKey,"__"),"g"),e):""},get maxBlocks(){return this.settings.maxBlocks}},{defaults:{placeholderKey:null,maxBlocks:null,staticBlocks:!1},collapsedBlockStorageKey:"Craft-"+Craft.systemUid+".MatrixInput.collapsedBlocks",getCollapsedBlockIds:function(){return"string"==typeof localStorage[Craft.MatrixInput.collapsedBlockStorageKey]?Craft.filterArray(localStorage[Craft.MatrixInput.collapsedBlockStorageKey].split(",")):[]},setCollapsedBlockIds:function(t){localStorage[Craft.MatrixInput.collapsedBlockStorageKey]=t.join(",")},rememberCollapsedBlockId:function(e){if("undefined"!=typeof Storage){var a=Craft.MatrixInput.getCollapsedBlockIds();-1===t.inArray(""+e,a)&amp;&amp;(a.push(e),Craft.MatrixInput.setCollapsedBlockIds(a))}},forgetCollapsedBlockId:function(e){if("undefined"!=typeof Storage){var a=Craft.MatrixInput.getCollapsedBlockIds(),i=t.inArray(""+e,a);-1!==i&amp;&amp;(a.splice(i,1),Craft.MatrixInput.setCollapsedBlockIds(a))}}});var e=Garnish.Base.extend({matrix:null,$container:null,$titlebar:null,$fieldsContainer:null,$previewContainer:null,$actionMenu:null,$collapsedInput:null,actionDisclosure:null,isNew:null,id:null,collapsed:!1,init:function(t,e){var a=this;this.matrix=t,this.$container=e,this.$titlebar=e.children(".titlebar"),this.$previewContainer=this.$titlebar.children(".preview"),this.$fieldsContainer=e.children(".fields"),this.$container.data("block",this),this.id=this.$container.data("id"),this.isNew=!this.id||"string"==typeof this.id&amp;&amp;"new"===this.id.substr(0,3);var i=this.$container.find("&gt; .actions [data-disclosure-trigger]"),n=i.data("trigger")||new Garnish.DisclosureMenu(i);this.$actionMenu=n.$container,this.actionDisclosure=n,n.on("show",(function(){a.$container.addClass("active"),a.$container.prev(".matrixblock").length?a.$actionMenu.find("a[data-action=moveUp]:first").parent().removeClass("hidden"):a.$actionMenu.find("a[data-action=moveUp]:first").parent().addClass("hidden"),a.$container.next(".matrixblock").length?a.$actionMenu.find("a[data-action=moveDown]:first").parent().removeClass("hidden"):a.$actionMenu.find("a[data-action=moveDown]:first").parent().addClass("hidden")})),n.on("hide",(function(){a.$container.removeClass("active")})),this.$actionMenuOptions=this.$actionMenu.find("a[data-action]"),this.addListener(this.$actionMenuOptions,"click",this.handleActionClick),this.addListener(this.$actionMenuOptions,"keydown",this.handleActionKeydown),Garnish.hasAttr(this.$container,"data-collapsed")&amp;&amp;this.collapse(),this._handleTitleBarClick=function(t){t.preventDefault(),this.toggle()},this.addListener(this.$titlebar,"doubletap",this._handleTitleBarClick)},toggle:function(){this.collapsed?this.expand():this.collapse(!0)},collapse:function(e){var a=this;if(!this.collapsed){this.$container.addClass("collapsed");for(var i="",n=this.$fieldsContainer.children().children(),o=0;o&lt;n.length;o++){for(var s=t(n[o]).children(".input").find('select,input[type!="hidden"],textarea,.label'),l="",c=0;c&lt;s.length;c++){var d,r=t(s[c]);if(r.hasClass("label")){var h=r.parent().parent();if(h.hasClass("lightswitch")&amp;&amp;(h.hasClass("on")&amp;&amp;r.hasClass("off")||!h.hasClass("on")&amp;&amp;r.hasClass("on")))continue;d=r.text()}else d=Craft.getText(this._inputPreviewText(r));d instanceof Array&amp;&amp;(d=d.join(", ")),d&amp;&amp;(d=Craft.trim(Craft.escapeHtml(d)))&amp;&amp;(l&amp;&amp;(l+=", "),l+=d)}l&amp;&amp;(i+=(i?" &lt;span&gt;|&lt;/span&gt; ":"")+l)}this.$previewContainer.html(i),this.$fieldsContainer.velocity("stop"),this.$container.velocity("stop"),e?(this.$fieldsContainer.velocity("fadeOut",{duration:"fast"}),this.$container.velocity({height:16},"fast")):(this.$previewContainer.show(),this.$fieldsContainer.hide(),this.$container.css({height:16})),setTimeout((function(){a.$actionMenu.find("a[data-action=collapse]:first").parent().addClass("hidden"),a.$actionMenu.find("a[data-action=expand]:first").parent().removeClass("hidden")}),200),this.isNew?this.$collapsedInput?this.$collapsedInput.val("1"):this.$collapsedInput=t('&lt;input type="hidden" name="'+this.matrix.inputNamePrefix+"[blocks]["+this.id+'][collapsed]" value="1"/&gt;').appendTo(this.$container):Craft.MatrixInput.rememberCollapsedBlockId(this.id),this.collapsed=!0}},_inputPreviewText:function(e){if(e.is("select,multiselect")){for(var a=[],i=e.find("option:selected"),n=0;n&lt;i.length;n++)a.push(i.eq(n).text());return a}if(e.is('input[type="checkbox"]:checked,input[type="radio"]:checked')){var o=e.attr("id"),s=t('label[for="'.concat(o,'"]'));if(s.length)return s.text()}return Garnish.getInputPostVal(e)},expand:function(){var e=this;if(this.collapsed){this.$container.removeClass("collapsed"),this.$fieldsContainer.velocity("stop"),this.$container.velocity("stop");var a=this.$container.height();this.$container.height("auto"),this.$fieldsContainer.show();var i=this.$container.height(),n=this.$fieldsContainer.css("display")||"block";if(this.$container.height(a),this.$fieldsContainer.hide().velocity("fadeIn",{duration:"fast",display:n}),this.$container.velocity({height:i},"fast",(function(){e.$previewContainer.html(""),e.$container.height("auto"),e.$container.trigger("scroll")})),setTimeout((function(){e.$actionMenu.find("a[data-action=collapse]:first").parent().removeClass("hidden"),e.$actionMenu.find("a[data-action=expand]:first").parent().addClass("hidden")}),200),!this.isNew&amp;&amp;"undefined"!=typeof Storage){var o=Craft.MatrixInput.getCollapsedBlockIds(),s=t.inArray(""+this.id,o);-1!==s&amp;&amp;(o.splice(s,1),Craft.MatrixInput.setCollapsedBlockIds(o))}this.isNew?this.$collapsedInput&amp;&amp;this.$collapsedInput.val(""):Craft.MatrixInput.forgetCollapsedBlockId(this.id),this.collapsed=!1}},disable:function(){var t=this;this.$container.children('input[name$="[enabled]"]:first').val(""),this.$container.addClass("disabled"),setTimeout((function(){t.$actionMenu.find("a[data-action=disable]:first").parent().addClass("hidden"),t.$actionMenu.find("a[data-action=enable]:first").parent().removeClass("hidden")}),200),this.collapse(!0)},enable:function(){var t=this;this.$container.children('input[name$="[enabled]"]:first').val("1"),this.$container.removeClass("disabled"),setTimeout((function(){t.$actionMenu.find("a[data-action=disable]:first").parent().removeClass("hidden"),t.$actionMenu.find("a[data-action=enable]:first").parent().addClass("hidden")}),200)},moveUp:function(){this.matrix.trigger("beforeMoveBlockUp",{block:this});var t=this.$container.prev(".matrixblock");t.length&amp;&amp;(this.$container.insertBefore(t),this.matrix.blockSelect.resetItemOrder()),this.matrix.trigger("moveBlockUp",{block:this})},moveDown:function(){this.matrix.trigger("beforeMoveBlockDown",{block:this});var t=this.$container.next(".matrixblock");t.length&amp;&amp;(this.$container.insertAfter(t),this.matrix.blockSelect.resetItemOrder()),this.matrix.trigger("moveBlockDown",{block:this})},handleActionClick:function(t){t.preventDefault(),this.onActionSelect(t.target)},handleActionKeydown:function(t){t.keyCode===Garnish.SPACE_KEY&amp;&amp;(t.preventDefault(),this.onActionSelect(t.target))},onActionSelect:function(e){var a=this.matrix.blockSelect.totalSelected&gt;1&amp;&amp;this.matrix.blockSelect.isSelected(this.$container),i=t(e);switch(i.data("action")){case"collapse":a?this.matrix.collapseSelectedBlocks():this.collapse(!0);break;case"expand":a?this.matrix.expandSelectedBlocks():this.expand();break;case"disable":a?this.matrix.disableSelectedBlocks():this.disable();break;case"enable":a?this.matrix.enableSelectedBlocks():(this.enable(),this.expand());break;case"moveUp":this.moveUp();break;case"moveDown":this.moveDown();break;case"add":var n=i.data("type");this.matrix.addBlock(n,this.$container);break;case"delete":a?confirm(Craft.t("app","Are you sure you want to delete the selected blocks?"))&amp;&amp;this.matrix.deleteSelectedBlocks():this.selfDestruct()}this.actionDisclosure.hide()},selfDestruct:function(){var e=this;t("[name]",this.$container).removeAttr("name"),this.$container.velocity(this.matrix.getHiddenBlockCss(this.$container),"fast",(function(){e.$container.remove(),e.matrix.updateAddBlockBtn(),e.matrix.trigger("blockDeleted",{$block:e.$container})}))}})}(jQuery);
//# sourceMappingURL=MatrixInput.js.map</pre></body></html>