popnoire/site/OFF_plugins/field-engineer/fields/engineer/assets/js/script.min.js
2026-02-12 15:22:46 +01:00

1 line
No EOL
10 KiB
JavaScript

var EgrAdd=function(){var e={};return e.add=function(t,r){var n=e.name(r),i=e.row(r),a=e.fieldsets(i);a.append(e.matchFieldset(i,n,t).clone()),EgrId.replace(a.children(".egr-fieldset").last()),EgrSort.sort(r),EgrCount.trigger(t,r),EgrTrigger.trigger(i),EgrRender.render(t)},e.name=function(e){return e.attr("data-add")},e.row=function(e){return e.closest(".egr-row")},e.id=function(e){return e.attr("data-id")},e.fieldsets=function(e){return e.children(".egr-fieldsets")},e.matchRow=function(t,r){var n=e.id(t);return $('.egr-outline[data-id="'+r.attr("data-name")+'"] .egr-row[data-id="'+n+'"]')},e.matchFieldsets=function(t,r){return e.matchRow(t,r).children(".egr-fieldsets")},e.matchFieldset=function(t,r,n){return e.matchFieldsets(t,n).children('[data-fieldset-name="'+r+'"]')},e}(),EgrClone=function(){var e={};return e.clone=function(t,r){var n=r.closest(".egr-fieldset"),i=e.duplicate(n);e.setSelects(i,e.getSelects(n)),EgrId.replace(i),EgrCount.trigger(t,r),EgrTrigger.trigger(r.closest(".egr-row")),EgrRender.render(t)},e.duplicate=function(e){var t=e.clone(!0);return e.after(t),e.next()},e.getSelects=function(e){var t=[],r=0;return e.find("select").each(function(e){$(this).val(),t[r]=$(this).val(),r++}),t},e.setSelects=function(e,t){var r=0;e.find("select").each(function(e){$(this).val(t[r]),r++})},e}(),EgrCount=function(){var e={};return e.trigger=function(e,t){var r=t.closest(".egr-row"),n=r.children(".egr-fieldsets").children(".egr-fieldset").length;r.attr("data-count",n)},e}(),EgrDelete=function(){var e={};return e.deleteMessage=function(t,r){var n=$(document).find(".egr-outline .egr-element-delete").first();e.deleteCancel(t,r),t.find(".egr-actions").hide(),r.closest(".egr-fieldset").addClass("egr-delete-active"),r.closest(".egr-fieldset").append(n.clone())},e.deleteAction=function(e,t){var r=t.closest(".egr-fieldsets");t.closest(".egr-fieldset").remove(),EgrSort.sort(e),EgrCount.trigger(e,r),EgrRender.render(e)},e.deleteCancel=function(e,t){e.find(".egr-element-delete").remove(),e.find(".egr-delete-active").removeClass("egr-delete-active")},e}(),EgrId=function(){var e={};return e.replace=function(t){var r=(new Date).getTime();e.replaceIds(t,r),e.replaceFors(t,r),e.replaceClasses(t,r),e.replaceNames(t,r),e.replacePrefixes(t,r),e.addFieldsetCount(t)},e.replaceIds=function(e,t){e.find('[id^="form-field-"]').each(function(e){var r=$(this).attr("id").replace(/_egr__/g,"_"+t+"_egr__");$(this).attr("id",r)})},e.replaceFors=function(e,t){e.find('[for^="form-field-"]').each(function(e){var r=$(this).attr("for").replace(/_egr__/g,"_"+t+"_egr__");$(this).attr("for",r)})},e.replaceClasses=function(e,t){e.find('[data-field-name][class^="field "]').each(function(e){var r=$(this).attr("class").replace(/_egr__/g,"_"+t+"_egr__");$(this).attr("class",r)})},e.replaceNames=function(e,t){e.find("[name]").each(function(e){var r=$(this).attr("name").replace(/_egr__/g,"_"+t+"_egr__");$(this).attr("name",r)})},e.replacePrefixes=function(e,t){e.find("[data-prefix]").each(function(e){var r=$(this).attr("data-prefix").replace(/_egr__/g,"_"+t+"_egr__");$(this).attr("data-prefix",r)})},e.addFieldsetCount=function(e){var t=e.closest(".egr-row"),r=t.children(".egr-row-actions").find(".egr-add-select").length;r=0==r?1:r,t.attr("data-fieldset-count",r)},e}(),EgrOutline=function(){var e={};return e.set=function(e){var t=e.find(".egr-outline"),r=e.attr("data-name");$(".mainbar").children(".section").prepend('<div class="egr-outline" data-id="'+r+'">'+t.html()+"</div>"),t.remove()},e}();EgrRender=function(){var e={};return e.render=function(t){var r=t.find(".egr-presentation").children(),n="",i=t.find(".egr-output").find("textarea");n=e.renderLoop(r,n,1,!0),i.val(n),i.blur()},e.renderLoop=function(t,r,n){return t.each(function(t){var i=$(this),a=i.attr("data-field-name"),o=i.parents(".egr-row").length,d=" ".repeat(o);if(i.hasClass("egr-row")){n||(r+=d+a+":\n");var c=$(this).children(".egr-fieldsets").children();o>0&&(d+=" "),c.each(function(t){var n=$(this),a=n.children(".egr-fields").children();void 0!=n.attr("data-fieldset-name")&&(r+=d+"-\n",r+=e.setFieldsetName(d,i,n)),r=e.renderLoop(a,r,!1)})}else{i.parent().parent();var s=e.getSelector(a,i),l=e.findFormElement(s,i),f=e.getElement(l,a,d);f&&(r+=d+f)}}),r},e.getSelector=function(e,t){return e+t.attr("data-prefix")},e.findFormElement=function(e,t){var r='[name="'+e+'"]:not(label)',n='[name^="'+e+'["]:not(label)';return t.find(r+","+n)},e.getElement=function(t,r,n){var i=t.prop("nodeName"),a=t.length<2,o="";switch(i){case"TEXTAREA":o+=e.textarea(t,r,n);break;case"INPUT":switch(t.attr("type")){case"radio":o+=e.radio(t,r,n);break;case"checkbox":o+=a?e.checkbox(t,r,n):e.checkboxes(t,r,n);break;default:t.hasClass("images")?o+=e.textarea(t,r,n):o+=a?e.input(t,r,a,n):"datetime"==r?e.input(t,r):e.inputs(t,r,n)}break;case"SELECT":o+=e.select(t,r,n)}return o},e.setFieldsetName=function(e,t,r){var n=r.attr("data-fieldset-name");return 1==t.attr("data-fieldset-count")&&"default"==n?"":e+" _fieldset: "+n+"\n"},e.inputs=function(e,t,r){var n="",i=r+" ";return e.each(function(e){var t=$(this).val();t=t.replace(/"/g,'\\"'),n+=i+'- "'+t+'"\n'}),n=n.slice(0,-1),t+": \n"+n+"\n"},e.input=function(e,t){var r="";return e.each(function(e){r+=$(this).val()+" "}),r=r.slice(0,-1),r=r.replace(/"/g,'\\"'),t+': "'+r+'"\n'},e.textarea=function(t,r,n){var i=t.val(),a=n+" ";return i.indexOf("\n")>-1?""!=(i=i.replace(/(?:\r\n|\r|\n)/g,"\n"+a))?r+": |\n"+a+i+"\n":"":e.input(t,r)},e.select=function(e,t){var r=e.val();return r=r.replace(/"/g,'\\"'),t+': "'+r+'"\n'},e.radio=function(e,t){return out="",e.each(function(e){if($(this).is(":checked")){var r=$(this).val();"true"!=r&&"false"!=r||(r="'"+r+"'"),out+=t+": "+r+"\n"}}),out},e.checkbox=function(e,t){return out="",e.each(function(e){if($(this).is(":checked")){var r=$(this).val();"on"==r&&(r="true"),out+=t+": "+r+"\n"}else out+=t+": false\n"}),out},e.checkboxes=function(e,t,r){return out="",e.each(function(e){$(this).is(":checked")&&(out+=r+" - "+$(this).val()+"\n")}),""!=out&&(out=t+":\n"+out),out},e}(),function(e){e.fn.engineer=function(){return this.each(function(){var t=e(this);if(t.data("engineer"))return!0;t.data("engineer",!0),EgrOutline.set(t),t.on("click",".egr [data-add]",function(){EgrAdd.add(t,e(this))}),t.on("click",".egr-delete-apply",function(){EgrDelete.deleteAction(t,e(this))}),t.on("click",".egr-delete-cancel",function(){EgrDelete.deleteCancel(t,e(this))}),t.on("click",".egr-clone",function(){EgrClone.clone(t,e(this))}),t.on("click",".egr-fieldset",function(r){e(r.target).closest(".egr-fieldset").not(this).length||EgrToggleActive.toggle(t,e(this))}),t.on("click",".egr-delete",function(){EgrDelete.deleteMessage(t,e(this))}),e(document).on("click",function(r){e(r.target).closest(".egr-add-button").not(this).length||e(document).find(".egr-dropdown-active").removeClass("egr-dropdown-active"),e(r.target).closest(".egr-fieldset").not(this).length||EgrToggleActive.remove(t,e(this))}),t.on("click",".egr-sort-up",function(r){EgrSort.sortUp(t,e(this))}),t.on("click",".egr-sort-down",function(r){EgrSort.sortDown(t,e(this))}),t.on("click",".egr-add-button",function(r){e(r.target).closest(".egr-add-button").not(this).length||EgrToggleDropdown.toggle(t,e(this))}),EgrSort.sort(t),t.find(".egr-presentation").on("input click change","input, select, textarea",function(){EgrRender.render(t,e(this))})})}}(jQuery);var EgrSort=function(){var e={};return e.sort=function(e){var t=e.find(".egr"),r=!0;t.sortable({items:".egr-sorted-fieldset",handle:".egr-sort",start:function(e,n){r&&(t.sortable("refreshPositions"),r=!1)},update:function(t,r){EgrRender.render(e)}})},e.removeClasses=function(e,t){e.find(".egr-sorted-row").removeClass("egr-sorted-row"),e.find(".egr-sorted-fieldsets").removeClass("egr-sorted-fieldsets"),e.find(".egr-sorted-fieldset").removeClass("egr-sorted-fieldset")},e.toggle=function(t,r){var n=r.closest(".egr-row"),i=n.children(".egr-fieldsets"),a=i.children(".egr-fieldset");e.removeClasses(t,r),n.addClass("egr-sorted-row"),i.addClass("egr-sorted-fieldsets"),a.addClass("egr-sorted-fieldset"),EgrSort.sort(t)},e.sortUp=function(e,t){var r=t.closest(".egr-fieldset"),n=r.prev(),i=n.clone(!0);r.after(i),n.remove(),EgrRender.render(e)},e.sortDown=function(e,t){var r=t.closest(".egr-fieldset"),n=r.next(),i=n.clone(!0);r.before(i),n.remove(),EgrRender.render(e)},e}(),EgrToggleActive=function(){var e={};return e.toggle=function(e,t){t.hasClass("egr-delete-active")||(e.find(".egr-actions").hide(),t.children(".egr-actions").css("display","flex"),EgrSort.toggle(e,t))},e.remove=function(e,t){e.find(".egr-actions").hide()},e}(),EgrToggleDropdown=function(){var e={};return e.toggle=function(t,r){e.count(r)>1&&(r.parent().hasClass("egr-dropdown-active")?r.parent().removeClass("egr-dropdown-active"):(t.find(".egr-dropdown-active").removeClass("egr-dropdown-active"),r.parent().addClass("egr-dropdown-active")))},e.count=function(e){return e.find(".egr-add-select").length},e}(),EgrTrigger=function(){var e={};return e.trigger=function(t){e.triggerFields(t),e.triggerPlugins(t),e.checkDuplicates(t)},e.triggerFields=function(e){e.find('[data-field="urlfield"]').removeData("urlfield").off("click").urlfield(),e.find('[data-field="date"]').removeData("date").off("change").date(),e.find('[data-field="imagefield"]').removeData("imagefield").imagefield(),e.find('[data-field="autocomplete"]').removeData("autocomplete").off("keydown keyup").autocomplete(),e.find('[data-field="editor"]').removeData("editor").off("keydown click").editor(),e.find('[data-field="counter"]').removeData("counter").counter()},e.triggerPlugins=function(e){e.find('[data-field="images"]').length&&e.find('[data-field="images"]').removeData("images").images(),e.find('[data-field="hero"]').length&&e.find('[data-field="hero"]').removeData("hero").hero(),e.find('[data-field="quickselect"]').length&&e.find('[data-field="quickselect"]').removeData("quickselect").quickselect(),e.find('[data-field="list"]').length&&e.find('[data-field="list"]').removeData("list").list()},e.checkDuplicates=function(t){var r=0,n=[];t.closest(".egr").find(".field").each(function(e){var t=$(this).attr("class").split(" ");$.each(t,function(e,t){t.endsWith("_egr__")&&(n[r]=t,r++)})}),e.hasDuplicates(n)&&console.log("Error: There are duplicates!")},e.hasDuplicates=function(e){return new Set(e).size!==e.length},e}();