mirror of
https://github.com/getformwork/formwork.git
synced 2025-02-24 17:52:41 +01:00
1 line
24 KiB
JavaScript
1 line
24 KiB
JavaScript
var Formwork={init:function(){Formwork.Modals.init(),Formwork.Forms.init(),Formwork.Tooltips.init(),Formwork.Dashboard.init(),Formwork.Pages.init(),Formwork.Updates.init(),$(".toggle-navigation").click(function(){$(".sidebar").toggleClass("show")}),$("[data-chart-data]").each(function(){new Formwork.Chart(this,$(this).data("chart-data"))}),$("meta[name=notification]").each(function(){var t=$(this);new Formwork.Notification(t.attr("content"),t.data("type"),t.data("interval")),t.remove()}),0<$("[data-command=save]").length&&$(document).keydown(function(){if(!event.altKey&&(event.ctrlKey||event.metaKey)&&83==event.which)return $("[data-command=save]").click(),!1})}};$(function(){Formwork.init()}),Formwork.Chart=function(t,e){var a=new Chartist.Line(t,e,{showArea:!0,fullWidth:!0,scaleMinSpace:20,divisor:5,chartPadding:20,lineSmooth:!1,low:0,axisX:{showGrid:!1,labelOffset:{x:0,y:10}},axisY:{onlyInteger:!0,offset:15,labelOffset:{x:0,y:5}}}),n=-1!==navigator.userAgent.indexOf("Firefox");$(a.container).on("mouseover",".ct-point",function(){var t=$(this),e={x:0,y:-8};if(n){var a=parseFloat(t.css("stroke-width"));e.x+=a/2,e.y+=a/2}new Formwork.Tooltip(t.attr("ct:value"),{referenceElement:t,offset:e}).show()})},Formwork.Dashboard={init:function(){$("[data-command=clear-cache]").click(function(){new Formwork.Request({method:"POST",url:Formwork.Utils.uriPrependBase("/admin/cache/clear/",location.pathname),data:{"csrf-token":$("meta[name=csrf-token]").attr("content")}},function(t){Formwork.Notification(t.message,t.status,5e3)})}),$("[data-command=make-backup]").click(function(){var a=$(this);a.attr("disabled",!0),new Formwork.Request({method:"POST",url:Formwork.Utils.uriPrependBase("/admin/backup/make/",location.pathname),data:{"csrf-token":$("meta[name=csrf-token]").attr("content")}},function(e){Formwork.Notification(e.message,e.status,5e3),setTimeout(function(){if("success"===e.status){var t=$("meta[name=csrf-token]").attr("content");Formwork.Utils.download(e.data.uri,t)}a.removeAttr("disabled")},1e3)})})}},Formwork.Editor=function(t){var e,i=$("#"+t)[0],a=".editor-toolbar[data-for="+t+"]";function n(){var t=[location.pathname,i.scrollTop,i.selectionEnd].join("#");$(i).is(":focus")?window.sessionStorage.setItem("formworkEditorCursorPosition",t):window.sessionStorage.removeItem("formworkEditorCursorPosition")}function o(){return/\n+===\n+/.test(i.value)}function r(){$("[data-command=summary]",a).attr("disabled",o())}function s(){var t=i.selectionStart;return 0===t?void 0:i.value.substring(t-1,t)}function c(t,e){void 0===e&&(e=t);var a=i.selectionStart,n=i.selectionEnd,o=a===n?"":i.value.substring(a,n);i.value=i.value.substring(0,a)+t+o+e+i.value.substring(n,i.value.length),i.setSelectionRange(a+t.length,a+t.length+o.length),$(i).blur().focus()}null!==(e=window.sessionStorage.getItem("formworkEditorCursorPosition"))&&(e=e.split("#"))[0]===location.pathname&&(i.scrollTop=e[1],i.setSelectionRange(e[2],e[2]),$(i).focus()),$("[data-command=bold]",a).click(function(){c("**")}),$("[data-command=italic]",a).click(function(){c("_")}),$("[data-command=ul]",a).click(function(){var t=s();c(void 0===t?"- ":("\n"===t?"\n":"\n\n")+"- ","")}),$("[data-command=ol]",a).click(function(){var t,e,a=s(),n="\n"===a?"\n":"\n\n",o=/^\d+\./.exec((t=i.value,-1!=(e=t.lastIndexOf("\n"))?t.substring(e+1):t));c(o?"\n"+(parseInt(o)+1)+". ":void 0===a?"1. ":n+"1. ","")}),$("[data-command=quote]",a).click(function(){var t=s();c(void 0===t?"> ":("\n"===t?"\n":"\n\n")+"> ","")}),$("[data-command=link]",a).click(function(){var t=i.selectionStart,e=i.selectionEnd,a=t===e?"":i.value.substring(t,e),n=i.value.substring(0,t),o=i.value.substring(e,i.value.length);/^(https?:\/\/|mailto:)/i.test(a)?(i.value=n+"[]("+a+")"+o,i.focus(),i.setSelectionRange(t+1,t+1)):""!==a?(i.value=n+"["+a+"](http://)"+o,i.focus(),i.setSelectionRange(t+a.length+10,t+a.length+10)):c("[","](http://)")}),$("[data-command=image]",a).click(function(){var t=s(),e="\n\n";"\n"===t?e="\n":void 0===t&&(e=""),c(e+"")}),$("[data-command=summary]",a).click(function(){var t=s();o()||(console.log(t),c((void 0===t||"\n"===t?"":"\n")+"\n===\n\n",""),$(this).attr("disabled",!0))}),$(i).keyup(Formwork.Utils.debounce(r,1e3)),r(),$(document).keydown(function(t){if(!t.altKey&&(t.ctrlKey||t.metaKey))switch(t.which){case 66:return $("[data-command=bold]",a).click(),!1;case 73:return $("[data-command=italic]",a).click(),!1;case 89:case 90:return!1}}),$(window).on("beforeunload",n),$(i).closest("form").on("submit",n)},Formwork.Form=function(t){var a=$(window),n=$(t);function o(){var t=n.find(":file");if(0<t.length)for(var e=0;e<t.length;e++)if(0<t[e].files.length)return!0;return n.serialize()!=n.data("original-data")}n.data("original-data",n.serialize()),a.on("beforeunload",function(){if(o())return!0}),n.submit(function(){a.off("beforeunload")}),$('a[href]:not([href^="#"]):not([target="_blank"])').click(function(t){if(o()){var e=this;t.preventDefault(),Formwork.Modals.show("changesModal",null,function(t){t.find("[data-command=continue]").click(function(){a.off("beforeunload"),window.location.href=$(this).data("href")}).attr("data-href",e.href)})}})},Formwork.Forms={init:function(){$("[data-form]").each(function(){new Formwork.Form($(this))}),$("input[data-enable]").change(function(){var t=$(this),a=t.is(":checked");$.each(t.data("enable").split(","),function(t,e){$('input[name="'+e+'"]').attr("disabled",!a)})}),$(".input-reset").click(function(){var t=$("#"+$(this).data("reset"));t.val(""),t.change()}),$("input:file").each(function(){var t=$(this),e=$('label[for="'+t.attr("id")+'"] span').html();t.data("originalLabel",e)}).on("change input",function(){var t=$(this),e=$('label[for="'+t.attr("id")+'"] span'),a=t.prop("files");a.length?e.text(a[0].name):e.html(t.data("originalLabel"))}),$("input:file[data-auto-upload]").change(function(){$(this).closest("form").submit()}),$(".file-input-label").on("drag dragstart dragend dragover dragenter dragleave drop",function(t){t.preventDefault()}).on("drop",function(t){var e=$("#"+$(this).attr("for"));e.prop("files",t.originalEvent.dataTransfer.files),e.change()}).on("dragover dragenter",function(){$(this).addClass("drag")}).on("dragleave drop",function(){$(this).removeClass("drag")}),$(".tag-input").tagInput(),$(".image-input").click(function(){var e=$(this),a=e.val();Formwork.Modals.show("imagesModal",null,function(t){t.find(".image-picker-confirm").data("target",e),t.find(".image-picker-thumbnail").each(function(){var t=$(this);if(t.data("text")==a)return t.addClass("selected"),!1})})}),$(".image-picker").each(function(){var t=$(this),e=t.children("option");if(0<e.length){for(var a=$("<div>",{class:"image-picker-thumbnails"}),n=0;n<e.length;n++)$("<div>",{class:"image-picker-thumbnail","data-value":e[n].value,"data-text":e[n].text}).css({"background-image":"url("+e[n].value+")"}).appendTo(a);t.before(a),$(".image-picker-empty-state").hide()}t.hide()}),$(".image-picker-confirm").click(function(){var t=$(this);t.data("target").val(t.parent().find(".image-picker-thumbnail.selected").data("text"))}),$(".image-picker-thumbnail").click(function(){var t=$(this);t.siblings().removeClass("selected"),t.addClass("selected"),t.parent().siblings(".image-input").val(t.data("value"))}),$("[data-command=upload]").click(function(){$("#"+$(this).data("upload-target")).click()}),$(".editor-textarea").each(function(){new Formwork.Editor($(this).attr("id"))}),$("input[type=range]").on("change input",function(){var t=$(this);t.next(".range-input-value").text(t.val())})}},Formwork.Modals={init:function(){$("[data-modal]").click(function(){var t=$(this),e=t.data("modal"),a=t.data("modal-action");a?Formwork.Modals.show(e,a):Formwork.Modals.show(e)}),$(".modal [data-dismiss]").click(function(){var t=$(this);if(t.is("[data-validate]")&&!Formwork.Modals.validate(t.data("dismiss")))return;Formwork.Modals.hide(t.data("dismiss"))}),$(".modal").click(function(t){t.target===this&&Formwork.Modals.hide()}),$(document).keyup(function(t){27==t.which&&Formwork.Modals.hide()})},show:function(t,e,a){var n=$("#"+t);n.addClass("show"),null!==e&&n.find("form").attr("action",e),n.find("[autofocus]").first().focus(),"function"==typeof a&&a(n),this.createBackdrop()},hide:function(t){(void 0===t?$(".modal"):$("#"+t)).removeClass("show"),this.removeBackdrop()},createBackdrop:function(){$(".modal-backdrop").length||$("<div>",{class:"modal-backdrop"}).appendTo("body")},removeBackdrop:function(){$(".modal-backdrop").remove()},validate:function(t){var e=!1,a=$("#"+t);return a.find("[required]").each(function(){var t=$(this);if(""===t.val())return t.addClass("animated shake").focus(),a.find(".modal-error").show(),e=!1;e=!0}),e}},Formwork.Notification=function(t,e,a){var n=$("<div>",{class:"notification"}).text(t);if(0<$(".notification").length){var o=$(".notification:last"),i=o.offset().top+o.outerHeight(!0);n.css("top",i)}e&&n.addClass("notification-"+e),n.appendTo("body");var r=setTimeout(s,a);function s(){var e=!1,a=n.outerHeight(!0);$(".notification").each(function(){var t=$(this);t.is(n)?(e=!0,t.addClass("fadeout")):e&&t.css("top","-="+a)}),setTimeout(function(){n.remove()},400)}n.click(s),n.mouseenter(function(){clearTimeout(r)}),n.mouseleave(function(){r=setTimeout(s,1e3)})},Formwork.Pages={init:function(){$(".page-children-toggle").click(function(t){t.stopPropagation();var e=$(this);e.closest("li").children(".pages-list").toggle(),e.toggleClass("toggle-expanded toggle-collapsed")}),$(".page-details a").click(function(t){t.stopPropagation()}),$("[data-command=expand-all-pages]").click(function(){$(this).blur(),$(".pages-children").show(),$(".pages-list").find(".page-children-toggle").removeClass("toggle-collapsed").addClass("toggle-expanded")}),$("[data-command=collapse-all-pages]").click(function(){$(this).blur(),$(".pages-children").hide(),$(".pages-list").find(".page-children-toggle").removeClass("toggle-expanded").addClass("toggle-collapsed")}),$(".page-search").focus(function(){$(".pages-children").each(function(){var t=$(this);t.data("visible",t.is(":visible"))})}),$(".page-search").keyup(Formwork.Utils.debounce(function(){var t=$(this).val();if(0===t.length)$(".pages-children").each(function(){var t=$(this);t.toggle(t.data("visible"))}),$(".page-details").css("padding-left",""),$(".pages-item, .page-children-toggle").show();else{var n=new RegExp(Formwork.Utils.escapeRegExp(t),"i");$(".pages-children").show(),$(".page-children-toggle").hide(),$(".page-details").css("padding-left","0"),$(".page-title a").each(function(){var t=$(this),e=t.closest(".pages-item"),a=!!t.text().match(n);a&&0,e.toggle(a)})}},100)),$(".page-details").click(function(){var t=$(this).find(".page-children-toggle").first();t.length&&t.click()}),$("#page-title","#newPageModal").keyup(function(){$("#page-slug","#newPageModal").val(Formwork.Utils.slug($(this).val()))}),$("#page-slug","#newPageModal").keyup(function(){var t=$(this);t.val(t.val().replace(" ","-").replace(/[^A-Za-z0-9\-]/g,""))}).blur(function(){""===$(this).val()&&$("#page-title","#newPageModal").trigger("keyup")}),$("#page-parent","#newPageModal").change(function(){var t=$(this).find("option:selected"),e=$("#page-template","#newPageModal"),a=t.data("allowed-templates");a?(a=a.split(", "),e.data("previous-value",e.val()).val(a[0]).find("option").each(function(){var t=$(this);-1==a.indexOf(t.val())&&t.attr("disabled",!0)})):e.find("option[disabled]").length&&e.val(e.data("previous-value")).removeData("previous-value").find("option").removeAttr("disabled")}),$(".pages-list").each(function(){var t=$(this);if(!1!==t.data("sortable-children")){var a=Sortable.create(this,{filter:"[data-sortable=false]",forceFallback:!0,onStart:function(t){$(t.item).closest(".pages-list").addClass("dragging"),$(".pages-children",t.item).hide(),$(".page-children-toggle").removeClass("toggle-expanded").addClass("toggle-collapsed").css("opacity","0.5")},onMove:function(t){if(!1===$(t.related).data("sortable"))return!1;$(".pages-children",t.related).hide()},onEnd:function(e){if($(e.item).closest(".pages-list").removeClass("dragging"),$(".page-children-toggle").css("opacity",""),e.newIndex!=e.oldIndex){a.option("disabled",!0);var t={"csrf-token":$("meta[name=csrf-token]").attr("content"),parent:$(this.el).data("parent"),from:e.oldIndex,to:e.newIndex};new Formwork.Request({method:"POST",url:Formwork.Utils.uriPrependBase("/admin/pages/reorder/",location.pathname),data:t},function(t){t.status&&Formwork.Notification(t.message,t.status,5e3),t.status&&"error"!=t.status||a.sort($(e.from).data("originalOrder")),a.option("disabled",!1),$(e.from).data("originalOrder",a.toArray())})}}});t.data("originalOrder",a.toArray())}}),$(document).keydown(function(t){if((t.ctrlKey||t.metaKey)&&70==t.which&&$(".page-search:not(:focus)").length)return $(".page-search").focus(),!1})}},Formwork.Request=function(t,e){var a=$.ajax(t);return"function"==typeof e&&a.always(function(){var t=a.responseJSON||{};403==(t.code||a.status)?location.reload():e(t,a)}),a},Formwork.Tooltip=function(t,s){var e,a,n={container:document.body,referenceElement:document.body,position:"top",offset:{x:0,y:0},delay:500},c=$(s.referenceElement);function o(){clearTimeout(a),void 0!==e&&e.fadeOut(100,function(){e.remove()})}return s=$.extend({},n,s),c.on("mouseout",o),{show:function(){a=setTimeout(function(){(e=$('<div class="tooltip" role="tooltip">').appendTo(s.container)).text(t).css(function(t){var e=c.offset();if(0===e.top&&0===e.left){var a=c[0].getBoundingClientRect();e.top=a.top+window.pageYOffset,e.left=a.left+window.pageXOffset}var n=e.top,o=e.left,i=(c.outerWidth()-t.outerWidth())/2,r=(c.outerHeight()-t.outerHeight())/2;switch(s.position){case"top":return{top:Math.round(n-t.outerHeight()+s.offset.y),left:Math.round(o+i+s.offset.x)};case"right":return{top:Math.round(n+r+s.offset.y),left:Math.round(o+c.outerWidth()+s.offset.x)};case"bottom":return{top:Math.round(n+c.outerHeight()+s.offset.y),left:Math.round(o+i+s.offset.x)};case"left":return{top:Math.round(n+r+s.offset.y),left:Math.round(o-t.outerWidth()+s.offset.x)}}}(e)).fadeIn(200)},s.delay)},remove:o}},Formwork.Tooltips={init:function(){$("[title]").each(function(){var t=$(this);t.attr("data-tooltip",t.attr("title")).removeAttr("title")}),$("[data-tooltip]").mouseover(function(){var t=$(this);new Formwork.Tooltip(t.data("tooltip"),{referenceElement:t,position:"bottom",offset:{x:0,y:4}}).show()}),$('[data-overflow-tooltip="true"]').mouseover(function(){var t=$(this);t.prop("offsetWidth")<t.prop("scrollWidth")&&new Formwork.Tooltip(t.text().trim(),{referenceElement:t,position:"bottom",offset:{x:0,y:4}}).show()})}},Formwork.Updates={init:function(){0<$("#updater-component").length&&(setTimeout(function(){var t={"csrf-token":$("meta[name=csrf-token]").attr("content")};new Formwork.Request({method:"POST",url:Formwork.Utils.uriPrependBase("/admin/updates/check/",location.pathname),data:t},function(t){$(".update-status").html(t.message),!1===t.data.uptodate?($(".spinner").addClass("spinner-info"),$(".new-version-name").text(t.data.release.name),$(".new-version").show()):($(".spinner").addClass("spinner-success"),$(".current-version").show())})},1e3),$("[data-command=install-updates]").click(function(){$(".new-version").hide(),$(".spinner").removeClass("spinner-info"),$(".update-status").text($(".update-status").data("installing-text"));var t={"csrf-token":$("meta[name=csrf-token]").attr("content")};new Formwork.Request({method:"POST",url:Formwork.Utils.uriPrependBase("/admin/updates/update/",location.pathname),data:t},function(t){$(".update-status").text(t.data.status),new Formwork.Notification(t.message,t.status,5e3),"success"==t.status?($(".spinner").addClass("spinner-success"),$(".current-version-name").text($(".new-version-name").text()),$(".current-version").show()):$(".spinner").addClass("spinner-error")})}))}},Formwork.Utils={debounce:function(t,e,a){var n,o,i=null;return function(){n=this,o=arguments,i&&clearTimeout(i),a&&!i&&t.apply(n,o),i=setTimeout(function(){a||t.apply(n,o),i=null},e)}},download:function(t,e){var a=$("<form>").attr({action:t,method:"post"});a.append($("<input>").attr({type:"hidden",name:"csrf-token",value:e})),a.appendTo("body").submit().remove()},escapeRegExp:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},slug:function(t){var e,a={"\t":"","\r":"","!":"",'"':"","#":"",$:"","%":"","'":"","(":"",")":"","*":"","+":"",",":"",".":"",":":"",";":"","<":"","=":"",">":"","?":"","@":"","[":"","]":"","^":"","`":"","{":"","|":"","}":"","¡":"","£":"","¤":"","¥":"","¦":"","§":"","«":"","°":"","»":"","‘":"","’":"","“":"","”":"","\n":"-"," ":"-","-":"-","–":"-","—":"-","/":"-","\\":"-",_:"-","~":"-","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"Ae","Ç":"C","Ð":"D","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Œ":"Oe","Š":"S","Þ":"Th","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","à":"a","á":"a","â":"a","ã":"a","ä":"ae","å":"a","æ":"ae","¢":"c","ç":"c","ð":"d","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"oe","ø":"o","œ":"oe","š":"s","ß":"ss","þ":"th","ù":"u","ú":"u","û":"u","ü":"ue","ý":"y","ÿ":"y","Ÿ":"y"};for(e in t=t.toLowerCase(),a)a.hasOwnProperty(e)&&(t=t.split(e).join(a[e]));return t.replace(/[^a-z0-9-]/g,"").replace(/^-+|-+$/g,"").replace(/-+/g,"-")},throttle:function(e,a){var n,o,i=null;return function t(){n=this,o=arguments,i||(e.apply(n,o),i=setTimeout(function(){t.apply(n,o),i=null},a))}},uriPrependBase:function(t,e){var a=/^\/+|\/+$/gm;t=t.replace(a,"").split("/"),e=e.replace(a,"").split("/");for(var n=0;n<e.length;n++)e[n]===t[0]&&e[n+1]!==t[0]&&(e=e.slice(0,n));return"/"+e.concat(t).join("/")+"/"}},function(h){h.fn.datePicker=function(u){var o,i,t=new Date,r={year:t.getFullYear(),month:t.getMonth(),day:t.getDate(),setDate:function(t){this.year=t.getFullYear(),this.month=t.getMonth(),this.day=t.getDate()},lastDay:function(){this.day=f.daysInMonth(this.month,this.year)},prevYear:function(){this.year--},nextYear:function(){this.year++},prevMonth:function(){this.month=f.mod(this.month-1,12),11==this.month&&this.prevYear(),this.day>f.daysInMonth(this.month,this.year)&&this.lastDay()},nextMonth:function(){this.month=f.mod(this.month+1,12),0===this.month&&this.nextYear(),this.day>f.daysInMonth(this.month,this.year)&&this.lastDay()},prevWeek:function(){this.day-=7,this.day<1&&(this.prevMonth(),this.day+=f.daysInMonth(this.month,this.year))},nextWeek:function(){this.day+=7,this.day>f.daysInMonth(this.month,this.year)&&(this.day-=f.daysInMonth(this.month,this.year),this.nextMonth())},prevDay:function(){this.day--,this.day<1&&(this.prevMonth(),this.lastDay())},nextDay:function(){this.day++,this.day>f.daysInMonth(this.month,this.year)&&(this.nextMonth(),this.day=1)}},f={_daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],mod:function(t,e){return(t%e+e)%e},pad:function(t){return 1==t.toString().length?"0"+t:t},isValidDate:function(t){return t&&!isNaN(Date.parse(t))},isLeapYear:function(t){return t%4==0&&t%100!=0||t%400==0},daysInMonth:function(t,e){return 1==t&&this.isLeapYear(e)?29:this._daysInMonth[t]},formatDateTime:function(t){var e=u.format,a=t.getFullYear(),n=t.getMonth()+1,o=t.getDate(),i=t.getHours(),r=t.getMinutes(),s=t.getSeconds(),c=i<12;return-1<e.indexOf("a")&&(i=0<f.mod(i,12)?f.mod(i,12):12),e.replace("YYYY",a).replace("YY",a.toString().substr(-2)).replace("MM",f.pad(n)).replace("DD",f.pad(o)).replace("hh",f.pad(i)).replace("mm",f.pad(r)).replace("ss",f.pad(s)).replace("a",c?"AM":"PM")}};function s(){var t=new Date(r.year,r.month,r.day);e(r.year,r.month,r.day),o.val(f.formatDateTime(t)),o.data("date",t)}function e(t,e,a){var n=1,o=new Date(t,e,1).getDay(),i=f.daysInMonth(e,t),r=u.monthLabels[e],s=f.mod(o-u.weekStarts,7),c='<table class="calendar-table">';c+='<tr><th class="calendar-header" colspan="7">',c+=r+" "+t,c+="</th></tr>",c+="<tr>";for(var l=0;l<7;l++)c+='<td class="calendar-header-day">',c+=u.dayLabels[f.mod(l+u.weekStarts,7)],c+="</td>";for(c+="</tr><tr>",l=0;l<6;l++){for(var d=0;d<7;d++)n<=i&&(0<l||s<=d)?(c+=n==a?'<td class="calendar-day selected">':'<td class="calendar-day">',c+=n++):1==n?(c+='<td class="calendar-prev-month-day">',c+=f.daysInMonth(f.mod(e-1,12),t)-s+d+1):(c+='<td class="calendar-next-month-day">',c+=n++-i),c+="</td>";c+="</tr><tr>"}c+="</tr></table>",h(".calendar-table").replaceWith(c)}function a(){o&&i.is(":visible")&&(i.css({top:o.offset().top+o.outerHeight(),left:o.offset().left}),i.offset().left+i.outerWidth(!0)>h(window).width()&&i.css("left",h(window).width()-i.outerWidth(!0)),h(window).scrollTop()+h(window).height()<i.position().top+i.outerHeight(!0)&&h(window).scrollTop(i.position().top+i.outerHeight(!0)-h(window).height()))}u=h.extend({},h.fn.datePicker.defaults,u),this.each(function(){var n=h(this),t=n.val();n.prop("readonly",!0),n.prop("size",u.format.length),f.isValidDate(t)&&(t=new Date(t),n.data("date",t),n.val(f.formatDateTime(t))),n.change(function(){""===n.val()?n.data("date",""):n.val(f.formatDateTime(n.data("date")))}),n.keydown(function(t){var e=h(this).data("date");switch(r.setDate(f.isValidDate(e)?e:new Date),t.which){case 13:return h(".calendar-day.selected").click(),i.hide(),!1;case 8:return n.val(""),o.blur(),i.hide(),!1;case 27:return o.blur(),i.hide(),!1;case 37:t.ctrlKey||t.metaKey?t.shiftKey?r.prevYear():r.prevMonth():r.prevDay();break;case 38:r.prevWeek();break;case 39:t.ctrlKey||t.metaKey?t.shiftKey?r.nextYear():r.nextMonth():r.nextDay();break;case 40:r.nextWeek();break;case 48:if(t.ctrlKey||t.metaKey){var a=new Date;r.setDate(a)}break;default:return!0}return s(),!1})}),i=h('<div class="calendar"><div class="calendar-buttons"><button class="prevMonth"><i class="i-chevron-left"></i></button><button class="currentMonth">'+u.todayLabel+'</button><button class="nextMonth"><i class="i-chevron-right"></i></button></div><div class="calendar-separator"></div><table class="calendar-table"></table>').appendTo("body"),h(".currentMonth").click(function(){var t=new Date;r.setDate(t),s(),o.blur()}),h(".prevMonth").longclick(function(){r.prevMonth(),e(r.year,r.month)},750,500),h(".nextMonth").longclick(function(){r.nextMonth(),e(r.year,r.month)},750,500),h(".prevMonth, .currentMonth, .nextMonth").mousedown(function(){return!1}),i.on("mousedown",".calendar-day",!1),i.on("click",".calendar-day",function(){var t=new Date(r.year,r.month,parseInt(h(this).text()));o.data("date",t),o.val(f.formatDateTime(t)),o.blur()}),h(".date-input").blur(function(){i.hide()}),h(".date-input").focus(function(){o=h(this);var t=f.isValidDate(o.data("date"))?new Date(o.data("date")):new Date;r.setDate(t),e(r.year,r.month,r.day),i.show(),a()}),h(window).on("touchstart",function(){var t=h(event.target);t.is(".date-input")||t.parents(".calendar, .date-input").length||o.blur()}),h(window).on("resize",Formwork.Utils.throttle(a,100))},h.fn.datePicker.defaults={dayLabels:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],monthLabels:["January","February","March","April","May","June","July","August","September","October","November","December"],weekStarts:0,todayLabel:"Today",format:"YYYY-MM-DD"}}(jQuery),function(t){t.fn.longclick=function(e,a,n){var o;function i(){clearTimeout(o)}t(window).mouseup(i),t(this).mousedown(function(t){1!=t.which?i():(e(),o=window.setTimeout(function(){o=window.setInterval(e,n||250)},a||500))}).mouseout(i)}}(jQuery),function(s){s.fn.tagInput=function(){function o(t){var e=t.parent();e.find(".tag-hidden-input").val(e.data("tags").join(", "))}function i(t,e){t.before('\n<span class="tag">'+e+'<i class="tag-remove"></i></span>')}function n(t,e){-1==t.parent().data("tags").indexOf(e)&&(t.parent().data("tags").push(e),i(t,e),o(t)),t.val("")}function r(t,e){var a=t.parent().data("tags"),n=a.indexOf(e);-1<n&&(a.splice(n,1),t.parent().data("tags",a),o(t))}this.each(function(){var t=s(this),e=t.find(".tag-hidden-input"),a=t.find(".tag-inner-input"),n=[];e.val()&&(n=e.val().split(", "),s.each(n,function(t,e){e=e.trim(),n[t]=e,i(a,e)})),t.data("tags",n).on("mousedown",".tag-remove",!1).on("click",".tag-remove",function(){var t=s(this).parent();return r(a,t.text()),t.remove(),!1})}),this.mousedown(function(){return s(this).find(".tag-inner-input").focus(),!1}),this.find(".tag-inner-input").focus(function(){s(this).parent().addClass("focused")}).blur(function(){var t=s(this),e=t.val().trim();""!==e&&(n(t,e),t.prop("size",1)),t.parent().removeClass("focused")}).keydown(function(t){var e=s(this),a=e.val().trim();switch(t.which){case 8:return""===a?(r(e,e.prev().text()),e.prev().remove(),e.prop("size",1),!1):(e.prop("size",Math.max(e.val().length,1)),!0);case 13:case 188:return""!==a&&n(e,a),e.prop("size",1),!1;default:if(""!==a&&-1<[32].indexOf(t.which))return n(e,a),e.prop("size",1),!1;e.prop("size",e.val().length+2)}})}}(jQuery); |