felixarntz/plugin-lib

View on GitHub
assets/dist/js/fields.min.js

Summary

Maintainability
A
0 mins
Test Coverage
/*!
 * plugin-lib (https://github.com/felixarntz/plugin-lib)
 * By Felix Arntz (https://leaves-and-love.net)
 * Licensed under GPL-2.0-or-later
 */
!function(e,t,i,n,a,r){"use strict";function l(e){var t={};return i.each(e,function(e,n){i.isObject(e)&&!i.isArray(e)?(e=l(e),i.isEmpty(e)||(t[n]=e)):i.isString(e)&&e.match(/%([A-Za-z0-9]+)%/g)&&(t[n]=e)}),t}function o(e,t,n){function a(e,n){return i.isUndefined(t[n])?e:t[n]}i.isUndefined(n)&&(n=l(e)),i.each(n,function(n,r){i.isObject(n)?(i.isObject(e[r])||(e[r]={}),o(e[r],t,n)):e[r]=n.replace(/%([A-Za-z0-9]+)%/g,a)})}function s(e,t){var n=i.deepClone(e);return o(n,{index:t,indexPlus1:t+1}),n}function d(e,t,i){i||(i=0);for(var n=l(e),a=i;a<t.length;a++)o(t[a],{index:a,indexPlus1:a+1},n);return t}function c(e,t){if(i.isEmpty(e))return t;if(i.isObject(t)){var n=e.shift();if(t[n])return c(e,t[n])}}function p(e,t){var n=e.replace(/\%([A-Za-z0-9_\.]+)\%/g,function(e,n){var a=n.split("."),r=c(a,t);return i.isObject(r)?e:(r=""+r,i.isEmpty(r)?e:r)});return-1<n.search("%")?"":n}i.mixin({alias:function(e,t){t(e)},attrs:function(e){var t="";return i.each(e,function(e,n){i.isBoolean(e)&&0!==n.indexOf("data-")?e&&(t+=" "+n):((i.isArray(e)||i.isObject(e))&&(e=window.JSON.stringify(e)),t+=i.isString(e)&&-1!==e.search('"')?" "+n+"='"+e+"'":" "+n+'="'+e+'"')}),t},deepClone:function(e){var t=i.clone(e);return i.each(t,function(e,n){i.isObject(e)&&(t[n]=i.deepClone(e))}),t}});var u={get_data_by_condition_bool_helper:function(e,t,i,n){var a,r,l,o,s,d=i.operator&&"OR"===i.operator.toUpperCase()?"OR":"AND";if(n?(a=i.result_true||!0,r=i.result_false||!1):(a=i.result_false||!1,r=i.result_true||!0),"OR"===d){for(s in Object.keys(t))if(o=Object.keys(t)[s],l=t[o])return r;return a}for(s in Object.keys(t))if(o=Object.keys(t)[s],l=t[o],!l)return a;return r},get_data_by_condition_numeric_comparison_helper:function(e,t,n,a){var r,l,o,s,d,c,p,u,g=n.operator&&"OR"===n.operator.toUpperCase()?"OR":"AND";if(a?(r=n.result_true||!0,l=n.result_false||!1):(r=n.result_false||!1,l=n.result_true||!0),o=0,s=parseFloat,i.isUndefined(n.breakpoint)||(parseInt(n.breakpoint,10)===n.breakpoint?s=i.bind(parseInt,void 0,void 0,10):"string"==typeof n.breakpoint&&n.breakpoint.match(/^((\d{4}-\d{2}-\d{2})|(\d{2}:\d{2}:\d{2})|(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}))$/)&&(s=function(e){var t=new Date(e.replace(" ","T"));return t.getTime()/1e3}),o=s(n.breakpoint)),d=!!n.inclusive,a&&(d=!d),"OR"===g){for(u in Object.keys(t))if(p=Object.keys(t)[u],c=s(t[p]),c>o||c===o&&d)return l;return r}for(u in Object.keys(t))if(p=Object.keys(t)[u],c=s(t[p]),c<o||c===o&&!d)return r;return l},merge_into_result:function(e,t,n){return i.isArray(e)&&i.isArray(t)?e="OR"===n?i.union(e,t):i.intersection(e,t):i.isObject(e)&&i.isObject(t)?e="OR"===n?i.extend(e,t):i.extend(i.pick(e,i.keys(t)),i.pick(t,i.keys(e))):i.isBoolean(e)&&i.isBoolean(t)?e="OR"===n?e||t:e&&t:t}},g={get_data_by_condition_true:function(e,t,i,n){var a=u.get_data_by_condition_bool_helper(e,t,i,!1);n(a)},get_data_by_condition_false:function(e,t,i,n){var a=u.get_data_by_condition_bool_helper(e,t,i,!0);n(a)},get_data_by_condition_greater_than:function(e,t,i,n){var a=u.get_data_by_condition_numeric_comparison_helper(e,t,i,!1);n(a)},get_data_by_condition_lower_than:function(e,t,i,n){var a=u.get_data_by_condition_numeric_comparison_helper(e,t,i,!0);n(a)},get_data_by_map:function(e,t,n,a){var r=n.default||null;if(i.isUndefined(n.map)||i.isEmpty(n.map))return void a(r);var l,o,s=n.map,d=!!n.merge,c=n.operator&&"OR"===n.operator.toUpperCase()?"OR":"AND",p=null,g=[];for(var h in Object.keys(t))l=Object.keys(t)[h],o=t[l],i.isBoolean(o)&&(o=o?1:0),i.isUndefined(s[o])||(d&&!i.contains(g,o)?(g.push(o),p=u.merge_into_result(p,s[o],c)):(g.push(o),p=i.isObject(s[o])?i.clone(s[o]):s[o]));a(null===p?r:p)},get_data_by_named_map:function(e,t,n,a,r){var l=n.default||null;if(i.isUndefined(n.named_map)||i.isEmpty(n.named_map))return void a(l);var o,s,d,c,p=n.named_map,g=!!n.merge,h=n.operator&&"OR"===n.operator.toUpperCase()?"OR":"AND",m=null,f={};for(var b in Object.keys(t)){if(o=Object.keys(t)[b],d=t[o],i.isUndefined(p[o]))if(s=o.replace("-","_"),i.isUndefined(p[s])){if(s=s.replace(r+"_",""),i.isUndefined(p[s]))continue;c=p[s]}else c=p[s];else c=p[o];i.isBoolean(d)&&(d=d?1:0),f[o]=[],i.isUndefined(c[d])||(g&&!i.contains(f[o],d)?(f[o].push(d),m=u.merge_into_result(m,c[d],h)):(f[o].push(d),m=i.isObject(c[d])?i.clone(c[d]):c[d]))}a(null===m?l:m)}},h={},m={callbacks:{},queues:{},queueCount:0,queueTotal:0};h.DependencyResolver={startQueue:function(e){m.queueCount++,m.queueTotal++;var t="queue"+m.queueTotal,i=new h.DependencyResolverQueue(t,e);return m.queues[t]=i,i},finishQueue:function(e){i.isUndefined(m.queues[e])||(delete m.queues[e],m.queueCount--)},addCallback:function(e,t){i.isFunction(t)&&(m.callbacks[e]=t)},getCallback:function(e){return m.callbacks[e]},loadCallbacks:function(){var e=Object.keys(g);for(var i in e)h.DependencyResolver.addCallback(e[i],g[e[i]]);t(document).trigger("pluginLibFieldsAPIDependencyCallbacks",h.DependencyResolver)}},h.DependencyResolverQueue=function(e,t){this.queueIdentifier=e,this.instanceId=t,this.queuedItems=[],this.resolvedProps={},this.busyCount=0,this.finalizeCallback},i.extend(h.DependencyResolverQueue.prototype,{add:function(e,t,i,n,a){i=h.DependencyResolver.getCallback(i),i&&this.queuedItems.push({targetId:e,prop:t,callback:i,values:n,args:a})},resolve:function(e){var t;this.busyCount=this.queuedItems.length,this.finalizeCallback=e;for(var n in this.queuedItems)t=this.queuedItems[n],t.callback(t.prop,t.values,t.args,i.bind(this.resolved,this,t.targetId,t.prop),this.instanceId)},resolved:function(e,t,n){null!==n&&(i.isUndefined(this.resolvedProps[e])&&(this.resolvedProps[e]={}),this.resolvedProps[e][t]=n),this.busyCount--,0===this.busyCount&&this.finalResolved()},finalResolved:function(){h.DependencyResolver.finishQueue(this.queueIdentifier),this.finalizeCallback(this.resolvedProps)}}),h.Field=n.Model.extend({initialize:function(){this.on("change:display",this.onDisplayChange,this)},onDisplayChange:function(e,t){var i=e.get("wrapAttrs"),n=e.get("inputAttrs");i&&(i["aria-hidden"]=t?"false":"true"),n&&(n.tabindex=t?"0":"-1",n["data-required"]&&(n.required=t))},sync:function(){return!1}}),h.FieldManager=n.Collection.extend({model:h.Field,initialize:function(e,t){t=t||{},t.instanceId&&(this.instanceId=t.instanceId),this.dependencyTriggers={},this.on("update",this.updateDependencyTriggers,this),this.on("change:currentValue",this.triggerDependantsUpdate,this)},sync:function(){return!1},setupDependencyTriggers:function(){var e;for(var t in this.models)e=this.models[t],this.addFieldDependencies(e.get("id"),e.get("dependencies"))},updateDependencyTriggers:function(e,t){var i;for(var n in t.added)i=t.added[n],this.addFieldDependencies(i.get("id"),i.get("dependencies"));for(var a in t.removed)i=t.removed[a],this.removeFieldDependencies(i.get("id"))},triggerDependantsUpdate:function(e,t){var n=e.get("id");if(i.isArray(this.dependencyTriggers[n])){var a,r,l=new h.DependencyResolver.startQueue(this.instanceId);for(var o in this.dependencyTriggers[n]){a=this.dependencyTriggers[n][o],r={};for(var s in a.fields)a.fields[s]===n?r[n]=t:r[a.fields[s]]=this.get(a.fields[s]).get("currentValue");l.add(a.targetId,a.prop,a.callback,r,a.args)}l.resolve(i.bind(this.updateDependants,this))}},updateDependants:function(e){i.each(e,i.bind(function(e,t){this.get(t).set(e)},this))},addFieldDependencies:function(e,t){i.isArray(t)&&i.each(t,i.bind(function(t){var n;for(var a in t.fields)n=t.fields[a],i.isUndefined(this.dependencyTriggers[n])&&(this.dependencyTriggers[n]=[]),this.dependencyTriggers[n].push({targetId:e,prop:t.prop,callback:t.callback,fields:t.fields,args:t.args})},this))},removeFieldDependencies:function(e){i.each(this.dependencyTriggers,i.bind(function(t,i){var n=[];for(var a in t)t[a].targetId!==e&&n.push(t[a]);n.length?this.dependencyTriggers[i]=n:delete this.dependencyTriggers[i]},this))}}),h.FieldView=n.View.extend({constructor:function(e){e=e||{};var t;if(e.model){t=e.model,e.el||(e.el="#"+t.get("id")+"-wrap"),e.labelTemplate||(e.labelTemplate="plugin-lib-field-"+t.get("slug")+"-label"),e.contentTemplate||(e.contentTemplate="plugin-lib-field-"+t.get("slug")+"-content"),e.repeatableItemTemplate||(e.repeatableItemTemplate="plugin-lib-field-"+t.get("slug")+"-repeatable-item");var r=t.get("dependencies");if(i.isArray(r)){var l;for(var o in r)l="apply"+("_"+r[o].prop).replace(/_([a-zA-Z0-9])/g,function(e,t){return t.toUpperCase()}),i.isFunction(this[l])&&t.on("change:"+r[o].prop,this[l],this)}this.events=this.getEvents(t)}e.labelTemplate&&(this.labelTemplate=a.template(e.labelTemplate)),e.contentTemplate&&(this.contentTemplate=a.template(e.contentTemplate)),e.repeatableItemTemplate&&(this.repeatableItemTemplate=a.template(e.repeatableItemTemplate)),this.preRender&&this.on("preRender",this.preRender,this),this.postRender&&this.on("postRender",this.postRender,this),n.View.apply(this,arguments)},initialize:function(){var e=this,n=this.$(".content-wrap"),a=n.html();i.isString(a)&&!a.trim().length||!a||(this.model.get("repeatable")&&n.find(".plugin-lib-repeatable-wrap").length?n.find(".plugin-lib-repeatable-item").each(function(){e.trigger("postRender",t(this))}):this.trigger("postRender",n))},renderLabel:function(){var e;this.labelTemplate&&(e=this.$("#"+this.model.get("id")+"-label-wrap"),e.replaceWith(this.labelTemplate(this.model.toJSON())))},renderContent:function(){var e,i=this;this.contentTemplate&&(e=this.$("#"+this.model.get("id")+"-content-wrap"),this.model.get("repeatable")&&e.find(".plugin-lib-repeatable-wrap").length?e.find(".plugin-lib-repeatable-item").each(function(){i.trigger("preRender",t(this))}):this.trigger("preRender",e),this.undelegateEvents(),e.replaceWith(this.contentTemplate(this.model.toJSON())),e=this.$("#"+this.model.get("id")+"-content-wrap"),this.delegateEvents(),this.model.get("repeatable")&&e.find(".plugin-lib-repeatable-wrap").length?e.find(".plugin-lib-repeatable-item").each(function(){i.trigger("postRender",t(this))}):this.trigger("postRender",e))},changeValue:function(e){var t=this.getInputValue(this.$(e.target));this.model.set("currentValue",t),this.model.trigger("changeValue",this.model,t)},changeItemValue:function(e){var t=this.$(e.target),i=t.parents(".plugin-lib-repeatable-item"),n=i.parent().children().index(i),a=this.model.get("items");a[n]&&(a[n].currentValue=this.getInputValue(t),this.model.set("items",a),this.model.trigger("changeItemValue",this.model,a[n],a[n].currentValue))},addItem:function(e){var i=this.model.get("repeatableLimit"),n=this.model.get("items");if(!(i>0&&n.length>=i)){var a=this.$(e.target),r=this.$(a.data("target")),l=r.children().length;a.prop("disabled",!0);var o=s(this.model.get("itemInitial"),l);n.push(o);var d=t(this.repeatableItemTemplate(o));r.append(d),this.trigger("postRender",d),this.model.set("items",n),i>0&&n.length>=i?a.hide():a.prop("disabled",!1),this.model.trigger("addItem",this.model,o)}},addItemOnEnter:function(e){if(13===e.which){var t=this.$(e.target).parents(".plugin-lib-repeatable-item");t.find(".plugin-lib-control").length>1||(e.preventDefault(),e.stopPropagation(),this.addItem({target:this.$(e.target).parents(".plugin-lib-repeatable-wrap").next(".plugin-lib-repeatable-add-button")[0]}),t.next().length&&t.next().find(".plugin-lib-control").focus())}},removeItem:function(e){var i,n=this,a=this.model.get("repeatableLimit"),r=this.model.get("items"),l=this.$(e.target),o=this.$(l.data("target")),s=o.parent(),c=s.children().index(o);l.prop("disabled",!0),r[c]&&(i=r[c],r.splice(c,1),n.trigger("preRender",o),o.remove(),c<r.length&&(r=d(this.model.get("itemInitial"),r,c),s.children().each(function(e){if(!(e<c)){var i=t(this),a=t(n.repeatableItemTemplate(r[e]));n.trigger("preRender",i),n.undelegateEvents(),i.replaceWith(a),n.delegateEvents(),n.trigger("postRender",a)}})),this.model.set("items",r),a>0&&r.length<a&&t('button[data-target="#'+s.attr("id")+'"]').prop("disabled",!1).show(),this.model.trigger("removeItem",this.model,i))},remove:function(){return this.preRender&&this.off("preRender",this.preRender,this),this.postRender&&this.off("postRender",this.postRender,this),n.View.prototype.remove.apply(this,arguments)},getEvents:function(e){return e.get("repeatable")&&i.isArray(e.get("items"))?{"click .plugin-lib-repeatable-add-button":"addItem","keydown .plugin-lib-repeatable-item .plugin-lib-control":"addItemOnEnter","click .plugin-lib-repeatable-remove-button":"removeItem","change :input":"changeItemValue"}:{"change :input":"changeValue"}},getInputValue:function(e){var n,a=null;if(e.is(":checkbox")&&"[]"===e.attr("name").substr(-2))a=[],e.parent().each(":checkbox:checked",i.bind(function(e,t){a.push(this.$(t).val())},this));else if(e.is(":radio"))a=e.parent().find(":radio:checked").val();else if(e.is(":checkbox"))a=!!e.prop("checked");else if(e.is("select")&&e.prop("multiple"))a=[],e.each("option:selected",i.bind(function(e,t){a.push(this.$(t).val())},this));else if(t.fn.datetimepicker&&e.data("xdsoft_datetimepicker"))if(a=e.datetimepicker("getValue"))switch(n={year:(""+a.getFullYear()).padStart(4,"0"),month:(""+(a.getMonth()+1)).padStart(2,"0"),day:(""+a.getDate()).padStart(2,"0"),hour:(""+a.getHours()).padStart(2,"0"),minute:(""+a.getMinutes()).padStart(2,"0"),second:(""+a.getSeconds()).padStart(2,"0")},e.data("store")){case"date":a=n.year+"-"+n.month+"-"+n.day;break;case"time":a=n.hour+":"+n.minute+":"+n.second;break;default:a=n.year+"-"+n.month+"-"+n.day+" "+n.hour+":"+n.minute+":"+n.second}else a=null;else a=e.val();return a},applyLabel:function(e,t){var i=e.get("labelAttrs"),n=this.$(i.id?"#"+i.id:".plugin-lib-label:first");n.length?n.html(t):this.renderLabel()},applyDescription:function(e,t){var i=this.$("#"+e.get("id")+"-description");i.length?t.length?i.html(t):i.remove():t.length&&this.renderContent()},applyDisplay:function(e,i){var n=this.$el;n.find(".plugin-lib-control").each(function(){var e=t(this),n=e.data("select2")?e.data("select2").$selection:void 0;n?n.attr("tabindex",i?"0":"-1"):e.attr("tabindex",i?"0":"-1"),e.data("required")&&t(this).prop("required",i)}),i?(n.addClass("plugin-lib-toggling").removeClass("plugin-lib-hidden").attr("aria-hidden","false"),setTimeout(function(){n.removeClass("plugin-lib-toggling")},800)):(n.addClass("plugin-lib-toggling").addClass("plugin-lib-hidden").attr("aria-hidden","true"),setTimeout(function(){n.removeClass("plugin-lib-toggling")},800))},applyDefault:function(e,t){},applyChoices:function(e,t){this.renderContent()},applyOptgroups:function(e,t){this.renderContent()},applyUnit:function(e,t){var i=this.$(".plugin-lib-unit");i.length?t.length?i.html(t):i.remove():t.length&&this.$("#"+e.get("id")).after('<span class="plugin-lib-unit">'+t+"</span>")}}),h.FieldView.WYSIWYGFieldView=h.FieldView.extend({preRender:function(e){var t,i=e.find(".plugin-lib-control").attr("id");return a.editor&&a.editor.remove?void a.editor.remove(i):(t=window.tinymce.get(i),void(t&&(t.save(),t.remove(),delete window.tinyMCEPreInit.mceInit[i],delete window.tinyMCEPreInit.qtInit[i])))},postRender:function(e){var n,l=e.find(".plugin-lib-control").attr("id"),o=e.find(".plugin-lib-control").data();return a.editor&&a.editor.initialize?(n=i.extend({},a.editor.getDefaultSettings()),n.tinymce.wpautop=!!o.wpautop,"simple"!==o.buttonMode&&(n.tinymce.toolbar1="formatselect,bold,italic,bullist,numlist,blockquote,alignleft,aligncenter,alignright,link,unlink,spellchecker,wp_adv",n.tinymce.toolbar2="strikethrough,hr,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo",n.quicktags.buttons="strong,em,link,block,del,ins,img,ul,ol,li,code,close"),o.mediaButtons&&(n.tinymce.plugins+=",image",n.tinymce.setup=function(){var i=e.find(".wp-editor-wrap .wp-editor-tools"),n=t("<div>").attr({id:"wp-"+l+"-media-buttons",class:"wp-media-buttons"}).append(t("<button>").attr({type:"button",class:"button insert-media add_media","data-editor":l}).html('<span class="wp-media-buttons-icon"></span> '+r.i18nWYSIWYGAddMediaButton));i.prepend(n),e.find(".plugin-lib-control").trigger("editorInitialized")}),void a.editor.initialize(l,n)):void((i.isUndefined(window.tinyMCEPreInit.mceInit[l])||i.isUndefined(window.tinyMCEPreInit.qtInit[l]))&&(window.tinyMCEPreInit.mceInit[l]=this.model.get("tinyMCESettings"),window.tinyMCEPreInit.qtInit[l]=this.model.get("quickTagsSettings"),window.tinymce.init(window.tinyMCEPreInit.mceInit[l]),window.quicktags(window.tinyMCEPreInit.qtInit[l])))}}),h.FieldView.SelectFieldView=h.FieldView.extend({preRender:function(e){e.find("select.plugin-lib-control").select2("destroy")},postRender:function(e){e.find("select.plugin-lib-control").select2({width:"element",closeOnSelect:!0,minimumResultsForSearch:8})}}),h.FieldView.AutocompleteFieldView=h.FieldView.extend({preRender:function(e){e.find(".plugin-lib-control").autocomplete("destroy"),this.model.set("currentLabel","")},postRender:function(e){var n=this.model.get("autocomplete");n||(n=this.model.get("itemInitial").autocomplete),e.find(".plugin-lib-control").autocomplete({source:function(e,a){var l=r.restUrl+n.restPlaceholderSearchRoute.replace("%search%",e.term);t.ajax(l,{method:"GET",dataType:"json",headers:{"X-WP-Nonce":r.restNonce},success:function(e){var t=[];for(var r in e){var l=p(n.valueGenerator,e[r]),o=p(n.labelGenerator,e[r]);i.isEmpty(l)||i.isEmpty(o)||t.push({value:l,label:o})}a(t)},error:function(e){i.isObject(e.responseJSON)&&null!==e.responseJSON&&!i.isEmpty(e.responseJSON.message)&&console.error(e.responseJSON.message),a([])},complete:function(e){var t=e.getResponseHeader("X-WP-Nonce");t&&(r.restNonce=t)}})},select:function(t,i){t.preventDefault(),e.find(".plugin-lib-control").val(i.item.label),e.find(".plugin-lib-control").prev().val(i.item.value).trigger("change")},focus:function(t,i){t.preventDefault(),e.find(".plugin-lib-control").val(i.item.label)}})}});var f=!1;h.FieldView.DatetimeFieldView=h.FieldView.extend({constructor:function(){f||(t.datetimepicker.setLocale(r.language),f=!0),h.FieldView.apply(this,arguments)},preRender:function(e){e.find(".plugin-lib-control").datetimepicker("destroy")},postRender:function(e){function t(e){var t,i="";if(e)switch(t={year:(""+e.getFullYear()).padStart(4,"0"),month:(""+(e.getMonth()+1)).padStart(2,"0"),day:(""+e.getDate()).padStart(2,"0"),hour:(""+e.getHours()).padStart(2,"0"),minute:(""+e.getMinutes()).padStart(2,"0"),second:(""+e.getSeconds()).padStart(2,"0")},n){case"date":i=t.year+"-"+t.month+"-"+t.day;break;case"time":i=t.hour+":"+t.minute+":"+t.second;break;default:i=t.year+"-"+t.month+"-"+t.day+" "+t.hour+":"+t.minute+":"+t.second}return i}var i=e.find(".plugin-lib-control").prev(),n=e.find(".plugin-lib-control").data("store"),a={closeOnDateSelect:!0,formatDate:"Y-m-d",formatTime:"H:i",dayOfWeekStart:r.startOfWeek,scrollMonth:!1,scrollTime:!1,scrollInput:!1,validateOnBlur:!1};switch(n){case"time":a.format=r.timeFormat,a.datepicker=!1;break;case"date":a.format=r.dateFormat,a.timepicker=!1;break;default:a.format=r.datetimeFormat}a.onShow=function(e,t){var a,r={},l=i.val();l&&(r.value=new Date(l)),t.attr("min")&&(a=t.attr("min").split(" "),2===a.length?(r.minDate=a[0],r.minTime=a[1]):1===a.length&&("time"===n?r.minTime=a[0]:r.minDate=a[0])),t.attr("max")&&(a=t.attr("max").split(" "),2===a.length?(r.maxDate=a[0],r.maxTime=a[1]):1===a.length&&("time"===n?r.maxTime=a[0]:r.maxDate=a[0])),"date"!==n&&t.attr("step")&&(r.step=parseInt(t.attr("step"),10)),this.setOptions(r)},a.onChangeDateTime=function(e){e=t(e),i.val(e).trigger("change")},e.find(".plugin-lib-control").datetimepicker(a).on("change",function(e){var n,a=this.value;a?(a=a.trim(),a.length?(a=new Date(a),isNaN(a.valueOf())||(n=t(a))):n=""):n="","undefined"!=typeof n&&i.val(n).trigger("change")})}}),h.FieldView.ColorFieldView=h.FieldView.extend({preRender:function(e){e.find(".plugin-lib-control").wpColorPicker("destroy")},postRender:function(e){e.find(".plugin-lib-control").wpColorPicker({mode:"hsv"})}}),h.FieldView.MediaFieldView=h.FieldView.extend({preRender:function(e){e.find(".plugin-lib-control").wpMediaPicker("destroy")},postRender:function(e){e.find(".plugin-lib-control").wpMediaPicker({filterable:!1,label_add:r.i18nMediaAddButton,label_replace:r.i18nMediaReplaceButton,label_remove:r.i18nMediaRemoveButton,label_modal:r.i18nMediaModalHeading,label_button:r.i18nMediaModalButton})}}),h.FieldView.MapFieldView=h.FieldView.extend({preRender:function(e){e.find(".plugin-lib-control").wpMapPicker("destroy")},postRender:function(e){e.find(".plugin-lib-control").wpMapPicker()}}),h.FieldView.GroupFieldView=h.FieldView.extend({changeValue:function(e){var t,i,n=this.$(e.target),a=n.attr("id"),r=this.getInputValue(n),l=this.model.get("currentValue"),o=this.model.get("fields"),s=Object.keys(o);for(var d in s)if(i=s[d],t=o[i],t.id===a){o[i].currentValue=r,l[i]=r;break}this.model.set("fields",o),this.model.set("currentValue",l)},changeItemValue:function(e){var t=this.$(e.target),i=t.attr("id"),n=this.getInputValue(t),a=t.parents(".plugin-lib-group-control"),r=a.parents(".plugin-lib-repeatable-item"),l=r.parent().children().index(r),o=this.model.get("items");if(o[l]){var s,d,c=Object.keys(o[l].fields);for(var p in c){if(d=c[p],s=o[l].fields[d],s.id===i){o[l].fields[d].currentValue=n,o[l].currentValue[d]=n;break}d=void 0}d&&(this.model.set("items",o),this.model.trigger("changeItemValue",this.model,o[l],o[l].currentValue),this.model.trigger("changeItemValue:"+d,this.model,o[l],o[l].currentValue))}},preRender:function(e){var t;if(this.model.get("repeatable")&&i.isArray(this.model.get("items"))){var n=e.parent().children().index(e),a=this.model.get("items");a[n]&&(t=a[n].fields)}else t=this.model.get("fields");t&&i.each(t,function(t){if(t.backboneView&&"FieldView"!==t.backboneView&&h.FieldView[t.backboneView]&&h.FieldView[t.backboneView].prototype.preRender){var i=e.find("#"+t.wrapAttrs.id);h.FieldView[t.backboneView].prototype.preRender.apply(this,[i])}})},postRender:function(e){var t;if(this.model.get("repeatable")&&i.isArray(this.model.get("items"))){var n=e.parent().children().index(e),a=this.model.get("items");a[n]&&(t=a[n].fields)}else t=this.model.get("fields");t&&i.each(t,function(t){if(t.backboneView&&"FieldView"!==t.backboneView&&h.FieldView[t.backboneView]&&h.FieldView[t.backboneView].prototype.postRender){var i=e.find("#"+t.wrapAttrs.id);h.FieldView[t.backboneView].prototype.postRender.apply(this,[i])}})}}),h.FieldManager.instances={},t(document).ready(function(){h.DependencyResolver.loadCallbacks(),i.each(r.field_managers,function(e,t){e.skip_initialization||(h.FieldManager.instances[t]=new h.FieldManager(i.values(e.fields),{instanceId:t}),h.FieldManager.instances[t].setupDependencyTriggers(),i.each(h.FieldManager.instances[t].models,function(e){var t=e.get("backboneView"),i=h.FieldView;t&&"FieldView"!==t&&h.FieldView[t]&&(i=h.FieldView[t]),new i({model:e})}))})}),e.pluginLibFieldsAPI=h}(window,jQuery,_,Backbone,wp,pluginLibFieldsAPIData);