PageSourceSearch

https://nmh.no/cpresources/c22570c/js/smith.js?v=1790595525

js nmh.no collected 2026-10-02 03:34:33 UTC 4,336 bytes, 2 lines download raw bytes

1void 0===Craft.Smith&&(Craft.Smith={}),function($){Craft.Smith.Init=Garnish.Base.extend({smithMenus:[],init:function(t){this.initSmith(),Garnish.on(Craft.CpScreenSlideout,"load",this.initSmith.bind(this))},initSmith:function(){Garnish.requestAnimationFrame($.proxy((function(){for(var t=Garnish.$doc.find(".matrix-field"),e=0;e<t.length;e++)for(var i=$(t[e]),a=i.find("> .blocks > .matrixblock"),n=0;n<a.length;n++){var s=$(a[n]),r=s.find(".actions .settings.menubtn");s.hasClass("static")||this.smithMenus.push(new Craft.Smith.Menu(i,s,a))}Garnish.on(Craft.MatrixInput,"blockAdded",$.proxy(this,"blockAdded")),Craft.SuperTable&&Craft.SuperTable.MatrixInputAlt&&Garnish.on(Craft.SuperTable.MatrixInputAlt,"blockAdded",$.proxy(this,"blockAdded"))}),this))},blockAdded:function(t){Garnish.requestAnimationFrame($.proxy((function(){var e=t.target.$container,i=e.find("> .blocks > .matrixblock"),a=$(t.$block),n;a.data("block")?($.each(this.smithMenus,(function(t,e){e.$matrixBlocks=i})),a.hasClass("static")||setTimeout((()=>{this.smithMenus.push(new Craft.Smith.Menu(e,a,i))}),200)):this.blockAdded(t)}),this))}}),Craft.Smith.Menu=Garnish.Base.extend({init:function(t,e,i){if(this.$matrixField=t,this.$matrixBlock=e,this.$matrixBlocks=i,this.$matrixBlock.data("renderedSmith"))return;this.blockInstance=this.$matrixBlock.data("entry");var a=this.blockInstance.$actionMenu.find('[data-action="delete"]').parents("ul");this.$copyBtn=$('<a data-icon="copy" data-action="copy">'+Craft.t("app","Copy")+"</a>"),this.$pasteBtn=$('<a data-icon="paste" data-action="paste">'+Craft.t("app","Paste")+"</a>"),this.$cloneBtn=$('<a data-icon="clone" data-action="clone">
1'+Craft.t("app","Clone")+"</a>");const n=$("<ul/>");this.$copyBtn.appendTo(n).wrap("<li/>"),this.$pasteBtn.appendTo(n).wrap("<li/>"),this.$cloneBtn.appendTo(n).wrap("<li/>"),n.insertBefore(a),$('<hr class="padded">').insertBefore(a),this.addListener(this.$copyBtn,"click",this.handleClick),this.addListener(this.$pasteBtn,"click",this.handleClick),this.addListener(this.$cloneBtn,"click",this.handleClick),this.checkPaste(),this.$matrixBlock.data("renderedSmith",!0)},handleClick:function(t){var e=$(t.target);e.hasClass("disabled")||e.hasClass("sel")||("copy"==e.data("action")&&this.copyBlock(t),"paste"==e.data("action")&&this.pasteBlock(t),"clone"==e.data("action")&&this.cloneBlock(t),this.blockInstance.actionDisclosure.hide())},checkPaste:function(){var t=!1;try{var e=JSON.parse(localStorage.getItem("smith:block")),i=this.$matrixField.attr("id");e&&i.includes(e.fieldId)&&(t=!0)}catch(t){}t?this.$pasteBtn.enable():this.$pasteBtn.disable()},copyBlock:function(t){var e=this._serializeBlocks();localStorage.setItem("smith:block",JSON.stringify(e));var i=e.blocks.length,a=1==i?"1 block copied":"{n} blocks copied";Craft.cp.displayNotice(Craft.t("app",a,{n:i})),this.checkPaste()},pasteBlock:function(t,e){try{if(!e)var e=JSON.parse(localStorage.getItem("smith:block"));var i=this.$matrixField.find(".blocks"),a=$('<div class="spinner smith-spinner"></div>').insertAfter(this.$matrixBlock),n=this.$matrixField.data("matrix"),s=a;e.target={fieldId:n.settings.fieldId,ownerId:n.settings.ownerId,ownerElementType:n.settings.ownerElementType,siteId:n.settings.siteId,namespace:n.settings.namespace},Craft.sendActionRequest("POST","smith/field/render-matrix-blocks",{data:e}).then((t=>{for(var e=0;e<t.data.blocks.length;e++){var i=t.data.blocks[e];const a=$(i.blockHtml);a.insertBefore(s),n.trigger("entryAdded",{$entry:a}),Craft.initUiElements(a.children(".fields")),Craft.appendHeadHtml(i.headHtml),Craft.appendBodyHtml(i.bodyHtml),new Craft.MatrixInput.Entry(n,a),n.entrySort.addItems(a),n.entrySelect.addItems(a),n.updateAddEntryBtn()}})).catch((t=>{console.error(t)})).finally((()=>{a.remove()}))}catch(t){}},cloneBlock:function(t){var e=this._serializeBlocks();this.pasteBlock(t,e)},_serializeBlocks:function(){var t=this.$matrixField.data("matrix"),e=t.entrySelect.$selectedItems,i={fieldId:t.id,blocks:[]};e.length||(e=this.$matrixBlock);for(var a=0;a<e.length;a++){var n=$(e[a]);i.blocks.push({id:n.data("id"),uid:n.data("uid"),fieldId:t.settings.fieldId,entryTypeId:n.data("type-id"),ownerId:t.settings.ownerId,ownerElementType:t.settings.ownerElementType,siteId:t.settings.siteId,namespace:t.settings.namespace})}return i}})}(jQuery);
2//# sourceMappingURL=smith.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.