Ninja Forms – The Easy and Powerful Forms Builder - Version 3.6.12

Version Description

(22 June 2022) = Bug Fixes: * Fixed naming collision with reCaptcha cookie check * HTML re-enabled in field labels for users with correct capabilities * Removed orphaned repeater field setting from advanced settings * Fixed form imports for non-UTF-8 encoded files

=

Download this release

Release Info

Developer nahuelmahe
Plugin Icon 128x128 Ninja Forms – The Easy and Powerful Forms Builder
Version 3.6.12
Comparing to
See all releases

Code changes from version 3.6.11 to 3.6.12

assets/js/admin-import-export.js CHANGED
@@ -8,7 +8,8 @@ jQuery( document ).ready( function( $ ) {
8
  */
9
  var importFormFile = {
10
  name: '',
11
- content: ''
 
12
  };
13
 
14
  /**
@@ -22,6 +23,8 @@ jQuery( document ).ready( function( $ ) {
22
  $( document ).on( 'click', '#nf-import-form-submit', function( e ) {
23
  // Make sure that our file field isn't empty.
24
  if ( '' == importFormFile.name ) return false;
 
 
25
 
26
  // Settings object for our batch processor
27
  var settings = {
@@ -32,7 +35,7 @@ jQuery( document ).ready( function( $ ) {
32
  // If we don't get back a form ID, then bail.
33
  if ( 'undefined' == typeof response.form_id ) return false;
34
 
35
- jQuery( '#nf-import-file' ).val('');;
36
  jQuery( '#nf-import-url' ).attr( 'href', nfAdmin.builderURL + response.form_id );
37
  var blockingErrors = false;
38
  // If we have errors...
8
  */
9
  var importFormFile = {
10
  name: '',
11
+ content: '',
12
+ extraChecksOff: false
13
  };
14
 
15
  /**
23
  $( document ).on( 'click', '#nf-import-form-submit', function( e ) {
24
  // Make sure that our file field isn't empty.
25
  if ( '' == importFormFile.name ) return false;
26
+ //Get status of trusted source checkbox
27
+ importFormFile.extraChecksOff = document.querySelector('#nf_import_form_turn_off_extra_checks').checked;
28
 
29
  // Settings object for our batch processor
30
  var settings = {
35
  // If we don't get back a form ID, then bail.
36
  if ( 'undefined' == typeof response.form_id ) return false;
37
 
38
+ jQuery( '#nf-import-file' ).val('');
39
  jQuery( '#nf-import-url' ).attr( 'href', nfAdmin.builderURL + response.form_id );
40
  var blockingErrors = false;
41
  // If we have errors...
assets/js/lib/batch-processor.js CHANGED
@@ -2,6 +2,7 @@
2
  * Batch Processor JS Object
3
  */
4
  function NinjaBatchProcessor( settings ) {
 
5
  var that = this;
6
  var modalData = {
7
  closeOnClick: false,
@@ -68,7 +69,7 @@ function NinjaBatchProcessor( settings ) {
68
  batch_type: settings.batch_type,
69
  security: nfAdmin.batchNonce,
70
  extraData: settings.extraData
71
- };
72
  }
73
 
74
  jQuery.post( ajaxurl, data, function( response ) {
2
  * Batch Processor JS Object
3
  */
4
  function NinjaBatchProcessor( settings ) {
5
+
6
  var that = this;
7
  var modalData = {
8
  closeOnClick: false,
69
  batch_type: settings.batch_type,
70
  security: nfAdmin.batchNonce,
71
  extraData: settings.extraData
72
+ };
73
  }
74
 
75
  jQuery.post( ajaxurl, data, function( response ) {
assets/js/lib/global.js CHANGED
@@ -101,7 +101,7 @@ const nf_check_recaptcha_consent = () => {
101
  let stored_responses = [], services = [];
102
 
103
  //Cookie check
104
- if(!check_data_for_recaptcha_consent()){
105
  stored_responses.push( false );
106
  services.push("missing_cookie");
107
  }
@@ -120,11 +120,11 @@ const nf_check_recaptcha_consent = () => {
120
  return nfFrontEnd.nf_consent_status_response;
121
  }
122
  //Get specific recaptcha cookie
123
- const check_data_for_recaptcha_consent = () => {
124
- return getCookie("_grecaptcha") !== "";
125
  }
126
  //Get a cookie
127
- const getCookie = (cname) => {
128
  let name = cname + "=";
129
  let decodedCookie = decodeURIComponent(document.cookie);
130
  let ca = decodedCookie.split(';');
@@ -140,8 +140,10 @@ const getCookie = (cname) => {
140
  return "";
141
  }
142
 
143
- const reload_after_consent = ( submitFieldID, layoutView ) => {
144
- nfRadio.channel( 'fields' ).request("remove:error", submitFieldID, "recaptcha-v3-missing");
145
- nfRadio.channel( 'fields' ).request("remove:error", submitFieldID, "recaptcha-v3-consent");
146
- nfRadio.channel( 'form' ).trigger( 'render:view', layoutView );
 
 
147
  }
101
  let stored_responses = [], services = [];
102
 
103
  //Cookie check
104
+ if(!nf_check_data_for_recaptcha_consent()){
105
  stored_responses.push( false );
106
  services.push("missing_cookie");
107
  }
120
  return nfFrontEnd.nf_consent_status_response;
121
  }
122
  //Get specific recaptcha cookie
123
+ const nf_check_data_for_recaptcha_consent = () => {
124
+ return nf_get_cookie_by_name("_grecaptcha") !== "";
125
  }
126
  //Get a cookie
127
+ const nf_get_cookie_by_name = (cname) => {
128
  let name = cname + "=";
129
  let decodedCookie = decodeURIComponent(document.cookie);
130
  let ca = decodedCookie.split(';');
140
  return "";
141
  }
142
 
143
+ const nf_reload_after_cookie_consent = ( submitFieldID, layoutView ) => {
144
+ if(typeof submitFieldID !== "undefined" && typeof layoutView !== "undefined"){
145
+ nfRadio.channel( 'fields' ).request("remove:error", submitFieldID, "recaptcha-v3-missing");
146
+ nfRadio.channel( 'fields' ).request("remove:error", submitFieldID, "recaptcha-v3-consent");
147
+ nfRadio.channel( 'form' ).trigger( 'render:view', layoutView );
148
+ }
149
  }
assets/js/min/builder.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(){var e,t,n;!function(i){var r,a,l,s,o={},c={},d={},h={},u=Object.prototype.hasOwnProperty,p=[].slice,g=/\.js$/;function f(e,t){return u.call(e,t)}function m(e,t){var n,i,r,a,l,s,o,c,h,u,p,f=t&&t.split("/"),m=d.map,y=m&&m["*"]||{};if(e&&"."===e.charAt(0))if(t){for(l=(e=e.split("/")).length-1,d.nodeIdCompat&&g.test(e[l])&&(e[l]=e[l].replace(g,"")),e=f.slice(0,f.length-1).concat(e),h=0;h<e.length;h+=1)if("."===(p=e[h]))e.splice(h,1),h-=1;else if(".."===p){if(1===h&&(".."===e[2]||".."===e[0]))break;h>0&&(e.splice(h-1,2),h-=2)}e=e.join("/")}else 0===e.indexOf("./")&&(e=e.substring(2));if((f||y)&&m){for(h=(n=e.split("/")).length;h>0;h-=1){if(i=n.slice(0,h).join("/"),f)for(u=f.length;u>0;u-=1)if((r=m[f.slice(0,u).join("/")])&&(r=r[i])){a=r,s=h;break}if(a)break;!o&&y&&y[i]&&(o=y[i],c=h)}!a&&o&&(a=o,s=c),a&&(n.splice(0,s,a),e=n.join("/"))}return e}function y(e,t){return function(){var n=p.call(arguments,0);return"string"!=typeof n[0]&&1===n.length&&n.push(null),a.apply(i,n.concat([e,t]))}}function v(e){return function(t){o[e]=t}}function w(e){if(f(c,e)){var t=c[e];delete c[e],h[e]=!0,r.apply(i,t)}if(!f(o,e)&&!f(h,e))throw new Error("No "+e);return o[e]}function b(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function C(e){return function(){return d&&d.config&&d.config[e]||{}}}l=function(e,t){var n,i=b(e),r=i[0];return e=i[1],r&&(n=w(r=m(r,t))),r?e=n&&n.normalize?n.normalize(e,function(e){return function(t){return m(t,e)}}(t)):m(e,t):(r=(i=b(e=m(e,t)))[0],e=i[1],r&&(n=w(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},s={require:function(e){return y(e)},exports:function(e){var t=o[e];return void 0!==t?t:o[e]={}},module:function(e){return{id:e,uri:"",exports:o[e],config:C(e)}}},r=function(e,t,n,r){var a,d,u,p,g,m,b=[],C=typeof n;if(r=r||e,"undefined"===C||"function"===C){for(t=!t.length&&n.length?["require","exports","module"]:t,g=0;g<t.length;g+=1)if("require"===(d=(p=l(t[g],r)).f))b[g]=s.require(e);else if("exports"===d)b[g]=s.exports(e),m=!0;else if("module"===d)a=b[g]=s.module(e);else if(f(o,d)||f(c,d)||f(h,d))b[g]=w(d);else{if(!p.p)throw new Error(e+" missing "+d);p.p.load(p.n,y(r,!0),v(d),{}),b[g]=o[d]}u=n?n.apply(o[e],b):void 0,e&&(a&&a.exports!==i&&a.exports!==o[e]?o[e]=a.exports:u===i&&m||(o[e]=u))}else e&&(o[e]=n)},e=t=a=function(e,t,n,o,c){if("string"==typeof e)return s[e]?s[e](t):w(l(e,t).f);if(!e.splice){if((d=e).deps&&a(d.deps,d.callback),!t)return;t.splice?(e=t,t=n,n=null):e=i}return t=t||function(){},"function"==typeof n&&(n=o,o=c),o?r(i,e,t,n):setTimeout((function(){r(i,e,t,n)}),4),a},a.config=function(e){return a(e)},e._defined=o,(n=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),f(o,e)||f(c,e)||(c[e]=[e,t,n])}).amd={jQuery:!0}}(),n("../lib/almond",(function(){})),n("views/app/menuItem",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-app-menu-item",initialize:function(){this.listenTo(i.channel("app"),"change:currentDomain",this.render),this.model.on("change",this.render,this)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},events:{"click a":"clickAppMenu"},clickAppMenu:function(e){i.channel("app").trigger("click:menu",e,this.model)},templateHelpers:function(){return{renderDashicons:function(){if(!this.dashicons)return"";var e=document.createElement("span");return e.classList.add("dashicons"),e.classList.add(this.dashicons),e.outerHTML},renderClasses:function(){var e=this.classes;return i.channel("app").request("get:currentDomain").get("id")==this.id&&(e+=" active"),e},renderUrl:function(){if(""!=this.url){var e=i.channel("app").request("get:formModel");return this.url+e.get("id")}return"#"},renderTarget:function(){return""!=this.url?"_blank":"_self"},renderDisabled:function(){return this.disabled?"disabled":""}}}})})),n("views/app/menu",["views/app/menuItem"],(function(e){return Marionette.CollectionView.extend({tagName:"div",childView:e,onShow:function(){jQuery(this.el).find("li:last").unwrap()}})})),n("views/app/menuButtons",[],(function(){return Marionette.ItemView.extend({tagName:"span",template:"#tmpl-nf-app-header-action-button",initialize:function(){this.listenTo(i.channel("app"),"change:clean",this.render,this),this.listenTo(i.channel("app"),"change:loading",this.render,this),this.listenTo(i.channel("app"),"response:updateDB",this.bounceIcon,this)},templateHelpers:function(){var e=this;return{renderPublish:function(){if(e.publishWidth?this.publishWidth=e.publishWidth+"px":this.publishWidth="auto",i.channel("app").request("get:setting","loading"))var t=i.channel("app").request("get:template","#tmpl-nf-add-header-publish-loading");else t=i.channel("app").request("get:template","#tmpl-nf-app-header-publish-button");return t(this)},maybeDisabled:function(){return i.channel("app").request("get:setting","clean")?"disabled":""},maybeRenderCancel:function(){return""},renderPublicLink:function(){var e=Backbone.Radio.channel("app").request("get:formModel");if(!isNaN(e.get("id")))return i.channel("app").request("get:template","#tmpl-nf-app-header-public-link")(this)}}},onShow:function(){jQuery(this.el).find(".publish")},events:{"click .publish":"clickPublish","click .viewChanges":"clickViewChanges","click .publicLink":"clickPublicLink"},clickPublish:function(e){i.channel("app").trigger("click:publish",e)},clickViewChanges:function(e){i.channel("app").trigger("click:viewChanges",e)},clickPublicLink:function(e){i.channel("app").trigger("click:publicLink",e)},bounceIcon:function(e){jQuery(this.el).find(".dashicons-backup").effect("bounce",{times:3},600)}})})),n("views/app/mobileMenuButton",[],(function(){return Marionette.ItemView.extend({tagName:"span",template:"#tmpl-nf-mobile-menu-button",initialize:function(){this.listenTo(i.channel("app"),"change:clean",this.render,this)},templateHelpers:function(){return{maybeDisabled:function(){return i.channel("app").request("get:setting","clean")?"disabled":""}}},events:{"click .nf-mobile-menu":"clickMobileMenu"},clickMobileMenu:function(e){var t=i.channel("app").request("get:builderEl");jQuery(t).toggleClass("nf-menu-expand")}})})),n("views/app/header",["views/app/menu","views/app/menuButtons","views/app/mobileMenuButton"],(function(e,t,n){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-app-header",regions:{menu:".nf-app-menu",buttons:".nf-app-buttons",mobileMenuButton:".nf-mobile-menu-button"},onRender:function(){var r=i.channel("app").request("get:domainCollection");this.menu.show(new e({collection:r})),this.buttons.show(new t),this.mobileMenuButton.show(new n)},events:{"click #nf-logo":"clickLogo"},clickLogo:function(e){}})})),n("views/app/subHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-sub-header"})})),n("views/app/builderHeader",["views/app/header","views/app/subHeader"],(function(e,t){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-header",regions:{app:"#nf-app-header",formTitle:"#nf-app-form-title",appSub:"#nf-app-sub-header"},initialize:function(){this.listenTo(i.channel("app"),"change:currentDomain",this.changeSubHeader)},onShow:function(){this.app.show(new e);var t=i.channel("app").request("get:formModel").get("settings"),n=i.channel("views").request("get:formTitle");this.formTitle.show(new n({model:t})),this.changeSubHeader()},changeSubHeader:function(){var e=i.channel("app").request("get:currentDomain"),t=e.get("getSubHeaderView").call(e);this.appSub.show(t)}})})),n("views/app/main",[],(function(){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-main",className:"nf-main-test",maybeDone:!1,offsetRight:!1,offsetLeft:!1,regions:{gutterLeft:"#nf-main-gutter-left",body:"#nf-main-body",gutterRight:"#nf-main-gutter-right"},initialize:function(){this.listenTo(i.channel("app"),"change:currentDomain",this.render),i.channel("app").reply("get:mainEl",this.getMainEl,this),jQuery(window).on("resize",{context:this},this.resizeBothGutters),this.listenTo(i.channel("drawer"),"before:open",this.setBothGuttersAbsolute),this.listenTo(i.channel("drawer"),"opened",this.setBothGuttersFixed),this.listenTo(i.channel("drawer"),"before:close",this.setBothGuttersAbsolute),this.listenTo(i.channel("drawer"),"closed",this.setBothGuttersFixed),this.listenTo(i.channel("app"),"change:currentDomain",(function(){setTimeout((function(){i.channel("app").request("update:gutters")}),300,this)}),this),i.channel("app").reply("update:gutters",this.updateGutters,this)},onShow:function(){i.channel("main").trigger("show:main",this)},onRender:function(){var e=i.channel("app").request("get:currentDomain"),t=e.get("getMainContentView").call(e);this.body.show(t);var n=e.get("getGutterLeftView").call(e);this.gutterLeft.show(n);var r=e.get("getGutterRightView").call(e);this.gutterRight.show(r),i.channel("main").trigger("render:main")},getMainEl:function(){return jQuery(this.el).parent()},onAttach:function(){this.initialGutterResize()},onBeforeDestroy:function(){jQuery(window).off("resize",this.resize)},initialGutterResize:function(){this.resizeGutter(this.gutterLeft.el),this.resizeGutter(this.gutterRight.el),this.setBothGuttersFixed(this)},resizeBothGutters:function(e){var t=e?e.data.context:this,n=t.gutterLeft.el,i=t.gutterRight.el;t.resizeGutter(n,t),t.resizeGutter(i,t),t.setBothGuttersAbsolute(t),clearTimeout(t.maybeDone),t.maybeDone=setTimeout(t.setBothGuttersFixed,100,t)},resizeGutter:function(e,t){var n=jQuery(e).offset().top,i=jQuery(window).height()-n;jQuery(e).height(i)},setBothGuttersFixed:function(e){e=e||this;var t=(i=jQuery(e.gutterLeft.el).offset()).top,n=i.left;jQuery(e.gutterLeft.el).css({position:"fixed",left:n,top:t});var i=jQuery(e.gutterLeft.el).offset(),r=jQuery(e.gutterRight.el).offset(),a=r.top,l=r.left;jQuery(e.gutterRight.el).css({position:"fixed",left:l,top:a})},setBothGuttersAbsolute:function(e){e=e||this;jQuery(e.gutterLeft.el).offset(),jQuery(e.gutterRight.el).offset();var t=jQuery("#nf-main").scrollTop();jQuery(e.gutterLeft.el).css({position:"absolute",left:0,top:t}),jQuery(e.gutterRight.el).css({position:"absolute",top:t,right:0,left:"auto"})},updateGutters:function(){this.resizeBothGutters()}})})),n("views/app/mobileMenuItem",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-mobile-menu-item",onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},events:{"click a":"clickAppMenu"},clickAppMenu:function(e){i.channel("app").trigger("click:menu",e,this.model)},templateHelpers:function(){return{renderDashicons:function(){if(!this.mobileDashicon)return"";var e=document.createElement("span");return e.classList.add("dashicons"),e.classList.add(this.mobileDashicon),e.outerHTML},renderClasses:function(){var e=this.classes;return i.channel("app").request("get:currentDomain").get("id")==this.id&&(e+=" active"),e},renderUrl:function(){if(""!=this.url){var e=i.channel("app").request("get:formModel");return this.url+e.get("id")}return"#"},renderTarget:function(){return""!=this.url?"_blank":"_self"},renderDisabled:function(){return this.disabled?"disabled":""}}}})})),n("views/app/mobileMenu",["views/app/mobileMenuItem"],(function(e){return Marionette.CompositeView.extend({tagName:"div",template:"#tmpl-nf-mobile-menu",childView:e,initialize:function(){this.listenTo(i.channel("app"),"change:clean",this.render,this)},attachHtml:function(e,t){jQuery(e.el).find(".secondary").append(t.el)},templateHelpers:function(){return{maybeDisabled:function(){return i.channel("app").request("get:setting","clean")?"disabled":""}}},events:{"click .nf-publish":"clickPublish"},clickPublish:function(e){i.channel("app").trigger("click:publish",e);var t=i.channel("app").request("get:builderEl");jQuery(t).toggleClass("nf-menu-expand")}})})),n("views/app/drawer/contentEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-empty"})})),n("views/app/drawer",["views/app/drawer/contentEmpty"],(function(e){return Marionette.LayoutView.extend({template:"#tmpl-nf-drawer",regions:{header:"#nf-drawer-header",content:"#nf-drawer-content",footer:"#nf-drawer-footer"},initialize:function(){i.channel("app").reply("get:drawerEl",this.getEl,this),i.channel("drawer").reply("load:drawerContent",this.loadContent,this),i.channel("drawer").reply("empty:drawerContent",this.emptyContent,this)},onShow:function(){jQuery(this.el).parent().perfectScrollbar()},loadContent:function(e,t){var n=i.channel("app").request("get:drawer",e),r=n.get("getContentView").call(n,t),a=n.get("getHeaderView").call(n,t),l=n.get("getFooterView").call(n,t);this.header.show(a),this.content.show(r),this.footer.show(l)},emptyContent:function(){this.header.empty(),this.content.empty(),this.footer.empty()},getEl:function(){return jQuery(this.el).parent()},events:{"click .nf-toggle-drawer":"clickToggleDrawer"},clickToggleDrawer:function(){i.channel("app").trigger("click:toggleDrawerSize")}})})),n("views/app/drawer/mergeTagItem",[],(function(){return Marionette.ItemView.extend({tagName:"li",template:"#tmpl-nf-merge-tags-item",onBeforeDestroy:function(){this.model.off("change:active",this.render)},initialize:function(){this.model.on("change:active",this.render,this)},events:{"click a":"clickTag"},clickTag:function(e){i.channel("mergeTags").trigger("click:mergeTag",e,this.model)},templateHelpers:function(){return{renderClasses:function(){if(this.active)return"active"}}}})})),n("views/app/drawer/mergeTagsSection",["views/app/drawer/mergeTagItem"],(function(e){return Marionette.CompositeView.extend({tagName:"div",childView:e,template:"#tmpl-nf-merge-tags-section",initialize:function(){this.collection=this.model.get("tags"),this.model.on("change",this.render,this),this.model.get("id")},onBeforeDestroy:function(){(this.model.off("change",this.render),"fields"==this.model.get("id"))&&i.channel("fields").request("get:collection").off("all",this.updateFields,this)},attachHtml:function(e,t){jQuery(e.el).find(".merge-tags").append(t.el)},updateFields:function(){var e=i.channel("fields").request("get:collection");this.model.set("tags",e)}})})),n("models/app/mergeTagModel",[],(function(){return Backbone.Model.extend({defaults:{active:!1,exclude:!1}})})),n("models/app/mergeTagCollection",["models/app/mergeTagModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("views/app/drawer/mergeTagsContent",["views/app/drawer/mergeTagsSection","models/app/mergeTagCollection"],(function(e,t){return Marionette.CollectionView.extend({tagName:"div",template:"#tmpl-nf-merge-tags-content",childView:e,initialize:function(){i.channel("mergeTags").reply("get:view",this.getMergeTagsView,this)},reRender:function(e){var n=i.channel("mergeTags").request("get:collection"),r=n.where({default_group:!0});if("actions"==i.channel("app").request("get:currentDomain").get("id")){var a=n.where({id:"calcs"});r=r.concat(a)}this.collection=new t(r);var l=this,s=e.get("use_merge_tags");"object"==typeof s&&(void 0!==s.exclude&&_.each(s.exclude,(function(e){l.collection.remove(e)})),void 0!==s.include&&_.each(n.models,(function(e){-1!=s.include.indexOf(e.get("id"))&&l.collection.add(e)}))),this.render()},getMergeTagsView:function(){return this}})})),n("views/app/builder",["views/app/builderHeader","views/app/main","views/app/mobileMenu","views/app/drawer","views/app/drawer/mergeTagsContent"],(function(e,t,n,r,a){return Marionette.LayoutView.extend({template:"#tmpl-nf-builder",el:"#nf-builder",regions:{header:"#nf-header",main:"#nf-main",menuDrawer:"#nf-menu-drawer",drawer:"#nf-drawer",mergeTagsContent:".merge-tags-content"},initialize:function(){i.channel("app").reply("get:builderEl",this.getBuilderEl,this),i.channel("app").reply("get:builderView",this.getBuilderView,this),this.render();var l=i.channel("mergeTags").request("get:collection").clone();this.mergeTagsContent.show(new a({collection:l})),this.header.show(new e),this.main.show(new t);var s=i.channel("app").request("get:domainCollection");this.menuDrawer.show(new n({collection:s})),this.drawer.show(new r)},onRender:function(){},getBuilderEl:function(){return this.el},getBuilderView:function(){return this},events:{"click .nf-open-drawer":"openDrawer","click .nf-change-domain":"changeDomain","click .nf-close-drawer":"closeDrawer"},openDrawer:function(e){i.channel("app").trigger("click:openDrawer",e)},closeDrawer:function(){i.channel("app").trigger("click:closeDrawer")},changeDomain:function(e){i.channel("app").trigger("click:menu",e)}})})),n("controllers/app/remote",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting"),"remote",this.addListener)},addListener:function(e,t){var n=e.get("remote").listen;this.listenTo(i.channel("fieldSetting-"+n),"update:setting",this.updateSetting),this.listenTo(i.channel("actionSetting-"+n),"update:setting",this.updateSetting),this.listenTo(i.channel("setting-type-"+e.get("type")),"click:extra",this.clickExtra),e.listenTo(i.channel("setting-remote"),"get:remote",this.getRemote,e),i.channel("setting-remote").trigger("get:remote",t)},clickExtra:function(e,t,n,r){jQuery(e.srcElement).addClass("spin"),i.channel("setting-remote").trigger("get:remote",n)},updateSetting:function(e,t){i.channel("setting-remote").trigger("get:remote",e)},getRemote:function(e){var t=this.get("remote"),n={parentValue:e.get(t.listen),action:t.action,security:t.security?t.security:nfAdmin.ajaxNonce},i=this;jQuery.post(ajaxurl,n,(function(t){t=JSON.parse(t);"textbox"==i.get("type")&&e.set(i.get("name"),t.value),"select"==i.get("type")&&(i.set("options",t.options),i.trigger("rerender"))}))}})})),n("controllers/app/drawer",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:openDrawer",this.clickOpenDrawer),this.listenTo(i.channel("app"),"click:closeDrawer",this.closeDrawer),this.listenTo(i.channel("app"),"click:toggleDrawerSize",this.toggleDrawerSize),i.channel("app").reply("open:drawer",this.openDrawer,this),i.channel("app").reply("close:drawer",this.closeDrawer,this),i.channel("drawer").reply("get:closedRightPos",this.getClosedDrawerPos,this),i.channel("drawer").reply("prevent:close",this.preventClose,this),i.channel("drawer").reply("enable:close",this.enableClose,this),i.channel("drawer").reply("get:preventClose",this.maybePreventClose,this),this.objPreventClose={},this.listenTo(i.channel("drawer"),"filter:focused",this.filterFocused)},closeDrawer:function(){var e=i.channel("app").request("get:currentDrawer");if(!e||this.maybePreventClose())return!1;i.channel("drawer-"+e.get("id")).trigger("before:closeDrawer"),i.channel("drawer").trigger("before:closeDrawer"),i.channel("drawer").trigger("before:close"),i.channel("drawer").request("empty:drawerContent");var t=i.channel("app").request("get:builderEl");jQuery(t).addClass("nf-drawer-closed").removeClass("nf-drawer-opened"),jQuery(t).removeClass("disable-main");var n=this.getClosedDrawerPos(),r=i.channel("app").request("get:drawerEl");jQuery(r).css({right:n});var a=this;this.checkCloseDrawerPos=setInterval((function(){n==jQuery(r).css("right")&&(clearInterval(a.checkCloseDrawerPos),i.channel("app").request("update:currentDrawer",!1),i.channel("drawer").trigger("closed"),jQuery(".nf-master-control").css("z-index",98))}),150)},clickOpenDrawer:function(e){var t=jQuery(e.target).data("drawerid");this.openDrawer(t)},openDrawer:function(e,t){if(this.maybePreventClose())return!1;if(void 0!==(t=t||{}).model){var n=i.channel("app").request("get:currentDomain").get("id");i.channel(n).request("clear:editActive"),t.model.set("editActive",!0),this.dataModel=t.model}i.channel("drawer").request("load:drawerContent",e,t),i.channel("drawer").trigger("before:open");var r=i.channel("app").request("get:builderEl");jQuery(r).addClass("nf-drawer-opened").removeClass("nf-drawer-closed");var a=i.channel("app").request("get:drawerEl");jQuery(a).css({right:"0px"});var l=this;this.hasFocus=!1,jQuery(".nf-master-control").css("z-index",0),this.checkOpenDrawerPos=setInterval((function(){"0px"==jQuery(a).css("right")&&(clearInterval(l.checkOpenDrawerPos),l.hasFocus||(l.focusFilter(),l.hasFocus=!0,i.channel("app").request("update:currentDrawer",e),jQuery(a).scrollTop(0),i.channel("drawer").trigger("opened")))}),150)},toggleDrawerSize:function(){var e=i.channel("app").request("get:drawerEl");jQuery(e).toggleClass("nf-drawer-expand")},focusFilter:function(){var e=i.channel("drawer").request("get:filterEl");jQuery(e).focus()},getClosedDrawerPos:function(){var e=i.channel("app").request("get:builderEl");return"-"+(jQuery(e).width()+300)+"px"},maybePreventClose:function(){return 0!=Object.keys(this.objPreventClose).length},preventClose:function(e){this.objPreventClose[e]=!0,this.dataModel.set("drawerDisabled",!0)},enableClose:function(e){delete this.objPreventClose[e],this.maybePreventClose()||void 0===this.dataModel||this.dataModel.set("drawerDisabled",!1)},filterFocused:function(){clearInterval(this.checkOpenDrawerPos)},getPreventClose:function(){return this.objPreventClose}})})),n("views/app/drawer/headerDefault",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-default",initialize:function(){this.model&&this.model.on("change:drawerDisabled",this.render,this)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el),i.channel("drawer").reply("clear:filter",this.clearFilter,this),i.channel("drawer").reply("blur:filter",this.blurFilter,this),i.channel("drawer").reply("get:filterEl",this.getEl,this)},onBeforeDestroy:function(){this.model&&this.model.off("change:drawerDisabled",this.render)},events:{"keyup .nf-filter":"maybeChangeFilter","input .nf-filter":"changeFilter","focus input":"getFocus"},changeFilter:function(e){var t=i.channel("app").request("get:currentDrawer");i.channel("drawer-"+t.get("id")).trigger("change:filter",e.target.value,e)},maybeChangeFilter:function(e){13==e.keyCode&&(e.addObject=!0,this.changeFilter(e))},clearFilter:function(){var e=jQuery(this.el).find(".nf-filter");""!=jQuery.trim(e.val())&&(e.val(""),e.trigger("input"),e.focus())},blurFilter:function(){jQuery(this.el).find(".nf-filter").blur()},getEl:function(){return jQuery(this.el).find(".nf-filter")},getFocus:function(){i.channel("drawer").trigger("filter:focused")},templateHelpers:function(){return{renderDisabled:function(){return this.drawerDisabled?"disabled":""}}}})})),n("views/app/drawer/footerDefault",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-empty"})})),n("models/app/drawerModel",["views/app/drawer/headerDefault","views/app/drawer/footerDefault"],(function(e,t){return Backbone.Model.extend({defaults:{getHeaderView:function(t){return new e(t)},getFooterView:function(e){return new t(e)}}})})),n("models/app/drawerCollection",["models/app/drawerModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("views/fields/drawer/stagedField",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-staged-field",onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},events:{"click .dashicons-dismiss":"removeStagedField"},removeStagedField:function(e){i.channel("drawer-addField").trigger("click:removeStagedField",e,this.model)}})})),n("views/fields/drawer/stagingEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-staged-fields-empty",onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)}})})),n("views/fields/drawer/stagingCollection",["views/fields/drawer/stagedField","views/fields/drawer/stagingEmpty"],(function(e,t){return Marionette.CollectionView.extend({tagName:"div",childView:e,emptyView:t,activeClass:"nf-staged-fields-active",initialize:function(){i.channel("app").reply("get:stagedFieldsEl",this.getStagedFieldsEl,this)},onShow:function(){this.$el=jQuery(this.el).parent(),jQuery(this.$el).find("span:first").unwrap(),this.setElement(this.$el);jQuery(this.el).sortable({placeholder:"nf-staged-fields-sortable-placeholder",helper:"clone",tolerance:"pointer",over:function(e,t){i.channel("drawer-addField").trigger("over:stagedFields",e,t)},out:function(e,t){i.channel("drawer-addField").trigger("out:stagedFields",t)},receive:function(e,t){i.channel("drawer-addField").trigger("receive:stagedFields",t)},update:function(e,t){i.channel("fields").request("sort:staging")},start:function(e,t){i.channel("drawer-addField").trigger("start:stagedFields",t)},stop:function(e,t){i.channel("drawer-addField").trigger("stop:stagedFields",t)}}),jQuery(this.el).parent().draggable({opacity:.9,connectToSortable:".nf-field-type-droppable",appendTo:"#nf-main",refreshPositions:!0,grid:[3,3],tolerance:"pointer",helper:function(e){var t=jQuery(e.target).parent().width(),n=jQuery(e.target).parent().height(),i=jQuery(e.target).parent().clone(),r=t/4,a=n/2;return jQuery(this).draggable("option","cursorAt",{top:a,left:r}),jQuery(i).css("z-index",1e3),i},start:function(e,t){i.channel("drawer-addField").trigger("startDrag:fieldStaging",this,t)},stop:function(e,t){i.channel("drawer-addField").trigger("stopDrag:fieldStaging",this,t)}})},getStagedFieldsEl:function(){return jQuery(this.el)},onAddChild:function(){jQuery(this.el).addClass(this.activeClass)},onRemoveChild:function(){this.hasStagedFields()||jQuery(this.el).removeClass(this.activeClass)},hasStagedFields:function(){return 0!=this.collection.length}})})),n("models/fields/stagingModel",[],(function(){return Backbone.Model.extend({})})),n("models/fields/stagingCollection",["models/fields/stagingModel"],(function(e){return Backbone.Collection.extend({model:e,comparator:"order"})})),n("views/fields/drawer/typeSection",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-field-type-section",initialize:function(){_.bindAll(this,"render"),i.channel("fields").reply("get:typeSection",this.getTypeSection,this)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el),this.dragging=!1;var e=this;i.channel("app").request("is:mobile")||(jQuery(this.el).find("div.nf-field-type-draggable").draggable({opacity:.9,tolerance:"pointer",connectToSortable:".nf-field-type-droppable",refreshPositions:!0,grid:[5,5],appendTo:"#nf-builder",helper:function(e){var t=jQuery(e.target).parent().width(),n=jQuery(e.target).parent().height(),i=jQuery(e.target).parent().clone(),r=t/4,a=n/2;return jQuery(this).draggable("option","cursorAt",{top:a,left:r}),jQuery(i).css("z-index",1e3),i},start:function(t,n){e.dragging=!0,i.channel("drawer-addField").trigger("startDrag:type",this,n)},stop:function(t,n){e.dragging=!1,i.channel("drawer-addField").trigger("stopDrag:type",this,n)},drag:function(e,t){i.channel("drawer-addField").trigger("drag:type",this,t,e)}}).disableSelection(),jQuery(this.el).find(".nf-item").focus((function(){jQuery(this).addClass("active")})).blur((function(){jQuery(this).removeClass("active")})))},events:{"click .nf-item":"clickFieldType","keydown .nf-item":"maybeClickFieldType","mousedown .nf-item":"mousedownFieldType"},clickFieldType:function(e){this.dragging||i.channel("drawer").trigger("click:fieldType",e)},mousedownFieldType:function(e){jQuery(e.target).addClass("clicked"),setTimeout((function(){jQuery(e.target).removeClass("clicked")}),1500)},maybeClickFieldType:function(e){13==e.keyCode&&(this.clickFieldType(e),i.channel("drawer").request("clear:filter"))},templateHelpers:function(){return{renderFieldTypes:function(){var e=document.createElement("span"),t=this;return _.each(this.fieldTypes,(function(n){var r=i.channel("fields").request("get:type",n),a=r.get("nicename"),l=r.get("icon"),s=i.channel("app").request("get:template","#tmpl-nf-drawer-field-type-button")({id:n,nicename:a,icon:l,type:r,savedField:t.savedField}),o=document.createRange().createContextualFragment(s);e.appendChild(o)})),e.innerHTML},savedField:function(){return this.type.get("savedField")?"nf-saved":""}}},getTypeSection:function(){return this.el}})})),n("views/fields/drawer/typeSectionCollection",["views/fields/drawer/typeSection"],(function(e){return Marionette.CollectionView.extend({tagName:"div",childView:e,onShow:function(){jQuery(this.el).find(".nf-settings").unwrap(),i.channel("fields").request("clear:editActive")}})})),n("views/fields/drawer/addField",["views/fields/drawer/stagingCollection","models/fields/stagingCollection","views/fields/drawer/typeSectionCollection"],(function(e,t,n){return Marionette.LayoutView.extend({template:"#tmpl-nf-drawer-content-add-field",regions:{staging:"#nf-drawer-staging .nf-reservoir",primary:"#nf-drawer-primary",secondary:"#nf-drawer-secondary"},initialize:function(){this.listenTo(i.channel("drawer"),"filter:fieldTypes",this.filterFieldTypes),this.listenTo(i.channel("drawer"),"clear:filter",this.removeFieldTypeFilter),this.savedCollection=i.channel("fields").request("get:savedFields"),this.primaryCollection=this.savedCollection,this.fieldTypeSectionCollection=i.channel("fields").request("get:typeSections"),this.secondaryCollection=this.fieldTypeSectionCollection},onShow:function(){var t=i.channel("fields").request("get:staging");this.staging.show(new e({collection:t})),this.primary.show(new n({collection:this.primaryCollection})),this.secondary.show(new n({collection:this.secondaryCollection}))},getEl:function(){return jQuery(this.el).parent()},filterFieldTypes:function(e){this.primary.reset(),this.secondary.reset(),this.filteredSectionCollection=e,this.primary.show(new n({collection:this.filteredSectionCollection}))},removeFieldTypeFilter:function(){this.primary.show(new n({collection:this.savedCollection})),this.secondary.show(new n({collection:this.fieldTypeSectionCollection}))}})})),n("views/app/drawer/itemSettingCollection",[],(function(){return Marionette.CollectionView.extend({tagName:"div",initialize:function(e){this.childViewOptions={dataModel:e.dataModel}},getChildView:function(e){return i.channel("app").request("get:settingChildView",e)}})})),n("views/app/drawer/itemSettingGroup",["views/app/drawer/itemSettingCollection"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-edit-field-setting-group",regions:{settings:".nf-field-settings"},initialize:function(e){this.model.on("change",this.render,this),this.dataModel=e.dataModel},onBeforeDestroy:function(){this.model.off("change",this.render)},onRender:function(){if(this.settings.show(new e({collection:this.model.get("settings"),dataModel:this.dataModel})),!nfAdmin.devMode&&0==this.$el.find(".calculations").length){var t=!1;this.$el.find(".nf-setting").each((function(e,n){if("none"!==n.style.display)return t=!0,!1})),t||this.$el.hide()}this.model.get("display")||this.settings.empty(),i.channel("drawer").trigger("render:settingGroup",this)},events:{"click .toggle":"clickToggleGroup"},clickToggleGroup:function(e){i.channel("drawer").trigger("click:toggleSettingGroup",e,this.model)},templateHelpers:function(){return{renderLabel:function(){return""!=this.label?i.channel("app").request("get:template","#tmpl-nf-drawer-content-edit-setting-group-label")(this):""},renderArrowDir:function(){return this.display?"down":"right"}}}})})),n("views/app/drawer/itemSettingGroupCollection",["views/app/drawer/itemSettingGroup"],(function(e){return Marionette.CollectionView.extend({tagName:"div",childView:e,initialize:function(e){this.childViewOptions={dataModel:e.dataModel}}})})),n("views/app/drawer/editSettings",["views/app/drawer/itemSettingGroupCollection"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-edit-settings",regions:{settingTitle:".nf-setting-title",settingGroups:".nf-setting-groups"},initialize:function(e){this.dataModel=e.model,this.groupCollection=e.groupCollection},onRender:function(){var t=i.channel("app").request("get:currentDomain"),n=t.get("getSettingsTitleView").call(t,{model:this.model});this.settingTitle.show(n),this.settingGroups.show(new e({collection:this.groupCollection,dataModel:this.dataModel}))},templateHelpers:function(){return{maybeRenderTitle:function(){return void 0!==this.type?i.channel("app").request("get:template","#tmpl-nf-drawer-content-edit-settings-title")(this):""},renderTypeNicename:function(){var e=i.channel("app").request("get:currentDomain").get("id");return i.channel(e).request("get:type",this.type).get("nicename")}}}})})),n("views/app/drawer/headerEditSettings",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-edit-settings",initialize:function(){this.model&&this.model.on("change:drawerDisabled",this.render,this)},onBeforeDestroy:function(){this.model&&this.model.off("change:drawerDisabled",this.render)},templateHelpers:function(){return{renderDisabled:function(){return this.drawerDisabled?"disabled":""}}}})})),n("views/actions/drawer/typeButton",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-action-type-button",onRender:function(){if(jQuery(this.el).disableSelection(),"installed"==this.model.get("section")){var e=this;jQuery(this.el).draggable({opacity:.9,tolerance:"intersect",scroll:!1,helper:"clone",start:function(t,n){e.dragging=!0,i.channel("drawer-addAction").trigger("startDrag:type",this,n)},stop:function(t,n){e.dragging=!1,i.channel("drawer-addAction").trigger("stopDrag:type",this,n)}})}},events:{"click .nf-item":"clickAddAction"},clickAddAction:function(e){if(!this.dragging)if("installed"==this.model.get("section"))i.channel("actions").trigger("click:addAction",this.model);else{var t=this.model.get("modal_content");new jBox("Modal",{content:t,zIndex:99999999,closeButton:"box",overlay:!0,width:600,repositionOnOpen:!0,reposition:!0}).open()}},templateHelpers:function(){return{renderClasses:function(){var e="nf-item";return""!=jQuery.trim(this.image)&&(e+=" nf-has-img"),"installed"==this.section&&(e+=" nf-action-type"),e},renderStyle:function(){return""!=jQuery.trim(this.image)?"background-image: url('"+jQuery.trim(this.image)+"')":""}}}})})),n("views/actions/drawer/typeCollection",["views/actions/drawer/typeButton"],(function(e){return Marionette.CompositeView.extend({template:"#tmpl-nf-drawer-action-type-section",childView:e,templateHelpers:function(){var e=this;return{hasContents:function(){return e.collection.length>0},renderNicename:function(){return e.collection.nicename},renderClasses:function(){return e.collection.slug}}},attachHtml:function(e,t){jQuery(e.el).find(".action-types").append(t.el)}})})),n("models/app/settingModel",[],(function(){return Backbone.Model.extend({defaults:{settings:!1,hide_merge_tags:!1,error:!1},initialize:function(){i.channel("app").trigger("init:settingModel",this),i.channel(this.get("type")).trigger("init:settingModel",this),i.channel("setting-name-"+this.get("name")).trigger("init:settingModel",this),this.on("change:error",this.maybePreventUI,this),void 0!==this.collection&&this.get("use_merge_tags")&&void 0!==this.collection.options.objectType&&this.listenTo(i.channel("app"),"update:fieldKey",this.updateKey)},updateKey:function(e){i.channel("app").trigger("fire:updateFieldKey",e,this)},maybePreventUI:function(){this.get("error")?(i.channel("drawer").request("prevent:close","setting-"+this.get("name")+"-error"),i.channel("app").request("prevent:changeDomain","setting-"+this.get("name")+"-error")):(i.channel("drawer").request("enable:close","setting-"+this.get("name")+"-error"),i.channel("app").request("enable:changeDomain","setting-"+this.get("name")+"-error"))}})})),n("models/app/settingCollection",["models/app/settingModel"],(function(e){return Backbone.Collection.extend({model:e,initialize:function(e,t){this.options=t||{}}})})),n("models/app/settingGroupModel",["models/app/settingCollection"],(function(e){return Backbone.Model.extend({defaults:{display:!1},initialize:function(t){0==this.get("settings")instanceof Backbone.Collection&&this.set("settings",new e(this.get("settings")))}})})),n("models/app/settingGroupCollection",["models/app/settingGroupModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("models/app/typeModel",["models/app/settingGroupCollection"],(function(e){return Backbone.Model.extend({initialize:function(){!1==this.get("settingGroups")instanceof Backbone.Collection&&this.set("settingGroups",new e(this.get("settingGroups"))),i.channel("fields").trigger("init:typeModel",this)}})})),n("models/app/typeCollection",["models/app/typeModel"],(function(e){return Backbone.Collection.extend({model:e,type:!1,initialize:function(e,t){_.each(t,(function(e,t){this[t]=e}),this)}})})),n("views/actions/drawer/addAction",["views/actions/drawer/typeCollection","models/app/typeCollection"],(function(e,t){return Marionette.LayoutView.extend({template:"#tmpl-nf-drawer-content-add-action",regions:{primary:"#nf-drawer-primary",payments:"#nf-drawer-secondary-payments",marketing:"#nf-drawer-secondary-marketing",management:"#nf-drawer-secondary-management",workflow:"#nf-drawer-secondary-workflow",notifications:"#nf-drawer-secondary-notifications",misc:"#nf-drawer-secondary-misc"},initialize:function(){this.listenTo(i.channel("drawer"),"filter:actionTypes",this.filteractionTypes),this.listenTo(i.channel("drawer"),"clear:filter",this.removeactionTypeFilter),this.installedActions=i.channel("actions").request("get:installedActions"),this.primaryCollection=this.installedActions,this.availableActions=i.channel("actions").request("get:availableActions"),this.updateAvailableActionGroups()},onShow:function(){this.primary.show(new e({collection:this.primaryCollection})),this.payments.show(new e({collection:this.paymentsCollection})),this.marketing.show(new e({collection:this.marketingCollection})),this.management.show(new e({collection:this.managementCollection})),this.workflow.show(new e({collection:this.workflowCollection})),this.notifications.show(new e({collection:this.notificationsCollection})),this.misc.show(new e({collection:this.miscCollection}))},getEl:function(){return jQuery(this.el).parent()},filteractionTypes:function(t,n){this.primary.reset().show(new e({collection:t})),this.availableActions=n,this.updateAvailableActionGroups(),this.payments.reset().show(new e({collection:this.paymentsCollection})),this.marketing.reset().show(new e({collection:this.marketingCollection})),this.management.reset().show(new e({collection:this.managementCollection})),this.workflow.reset().show(new e({collection:this.workflowCollection})),this.notifications.reset().show(new e({collection:this.notificationsCollection})),this.misc.reset().show(new e({collection:this.miscCollection}))},removeactionTypeFilter:function(){this.primary.show(new e({collection:this.primaryCollection})),this.availableActions=i.channel("actions").request("get:availableActions"),this.updateAvailableActionGroups(),this.payments.show(new e({collection:this.paymentsCollection})),this.marketing.show(new e({collection:this.marketingCollection})),this.management.show(new e({collection:this.managementCollection})),this.workflow.show(new e({collection:this.workflowCollection})),this.notifications.show(new e({collection:this.notificationsCollection})),this.misc.show(new e({collection:this.miscCollection}))},updateAvailableActionGroups:function(){this.paymentsCollection=new t(this.availableActions.where({group:"payments"}),{slug:"payments",nicename:nfi18n.paymentsActionNicename}),this.marketingCollection=new t(this.availableActions.where({group:"marketing"}),{slug:"marketing",nicename:nfi18n.marketingActionNicename}),this.managementCollection=new t(this.availableActions.where({group:"management"}),{slug:"management",nicename:nfi18n.managementActionNicename}),this.workflowCollection=new t(this.availableActions.where({group:"workflow"}),{slug:"workflow",nicename:nfi18n.workflowActionNicename}),this.notificationsCollection=new t(this.availableActions.where({group:"notifications"}),{slug:"notifications",nicename:nfi18n.notificationsActionNicename}),this.miscCollection=new t(this.availableActions.where({group:"misc"}),{slug:"misc",nicename:nfi18n.miscActionNicename})}})})),n("views/app/drawer/contentViewChangesItem",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-view-changes-item",initialize:function(){this.model.on("change:disabled",this.render,this)},onBeforeDestroy:function(){this.model.off("change:disabled",this.render)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},events:{"click .undoSingle":"undoSingle"},undoSingle:function(e){i.channel("drawer").trigger("click:undoSingle",this.model)}})})),n("views/app/drawer/contentViewChanges",["views/app/drawer/contentViewChangesItem"],(function(e){return Marionette.CollectionView.extend({tagName:"table",className:"nf-changes",childView:e})})),n("views/app/drawer/headerViewChanges",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-view-changes",events:{"click .undoChanges":"clickUndoChanges"},clickUndoChanges:function(e){i.channel("drawer").trigger("click:undoChanges")}})})),n("views/app/drawer/settingError",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-edit-setting-error"})})),n("views/app/drawer/itemSetting",["views/app/drawer/mergeTagsContent","views/app/drawer/settingError"],(function(e,t){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-edit-setting-wrap",regions:{error:".nf-setting-error"},initialize:function(e){this.dataModel=e.dataModel,void 0!==i.channel("setting-type-"+this.model.get("type")).request("renderOnChange")&&i.channel("setting-type-"+this.model.get("type")).request("renderOnChange")&&this.dataModel.on("change:"+this.model.get("name"),this.render,this),this.model.on("change:error",this.renderError,this),this.model.on("change:warning",this.renderWarning,this);var t=this.model.get("deps");if(t){void 0===t.settings&&(t.settings=[],_.each(t,(function(e,n){"settings"!==n&&t.settings.push({name:n,value:e})})),t.match="all");for(var n=t.settings.length-1;n>=0;n--){let e=t.settings[n].name;this.dataModel.on("change:"+e,this.render,this)}}var r=this.model.get("remote");if(r){var a,l,s,o;if(void 0!==r.refresh||r.refresh)a=document.createTextNode(this.model.get("label")),(l=document.createElement("span")).classList.add("dashicons","dashicons-update"),(s=document.createElement("a")).classList.add("extra"),s.appendChild(l),(o=document.createElement("span")).appendChild(a),o.appendChild(s),this.model.set("label",o.innerHTML);i.channel("setting").trigger("remote",this.model,this.dataModel,this),this.model.on("rerender",this.render,this)}this.listenTo(i.channel("drawer"),"opened",this.drawerOpened),this.listenTo(i.channel("drawer"),"closed",this.drawerClosed)},onBeforeDestroy:function(){this.dataModel.off("change:"+this.model.get("name"),this.render),this.model.off("change:error",this.renderError);var e=this.model.get("deps");if(e)for(var t=e.settings.length-1;t>=0;t--){let n=e.settings[t].name;this.dataModel.off("change:"+n,this.render)}if(this.model.get("remote")&&this.model.off("rerender",this.render,this),i.channel("setting-"+this.model.get("name")).trigger("destroy:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("destroy:setting",this.model,this.dataModel,this),"textbox"==this.model.get("type")){var n=this.model.get("name"),r=this.dataModel.get(n);this.dataModel.set(n,_.unescape(r),{silent:!0})}},onBeforeRender:function(){if("textbox"==this.model.get("type")){var e=this.model.get("name"),t=this.dataModel.get(e);this.dataModel.set(e,_.escape(t),{silent:!0})}i.channel("app").trigger("before:renderSetting",this.model,this.dataModel),i.channel("setting-type-"+this.model.get("type")).trigger("before:renderSetting",this.model,this.dataModel,this),i.channel("setting-"+this.model.get("name")).trigger("before:renderSetting",this.model,this.dataModel,this)},onRender:function(){this.mergeTagsContentView=!1;i.channel("setting-"+this.model.get("name")).trigger("render:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("render:setting",this.model,this.dataModel,this),jQuery(this.el).find(".nf-help").each((function(){var e=jQuery(this).next(".nf-help-text");jQuery(this).jBox("Tooltip",{content:e,maxWidth:200,theme:"TooltipBorder",trigger:"click",closeOnClick:!0})})),this.model.get("use_merge_tags")&&i.channel("mergeTags").request("init",this);var e=this.model.get("mask");if(void 0!==e){var t=jQuery(this.$el).find("input");switch(jQuery(t).attr("contentEditable",!0),e.type){case"numeric":t.autoNumeric({aSep:thousandsSeparator,aDec:decimalPoint});break;case"currency":var n=i.channel("settings").request("get:setting","currency"),r=nfAdmin.currencySymbols[n]||"";t.autoNumeric({aSign:jQuery("<div />").html(r).text(),aSep:thousandsSeparator,aDec:decimalPoint});break;case"custom":e.format&&t.mask(e.format);break;default:console.log('Notice: Mask type of "'+e.type+'" is not supported.')}}this.renderError()},onShow:function(){i.channel("setting-"+this.model.get("name")).trigger("show:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("show:setting",this.model,this.dataModel,this)},onAttach:function(){i.channel("setting-"+this.model.get("name")).trigger("attach:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("attach:setting",this.model,this.dataModel,this)},renderError:function(){this.model.get("error")?(jQuery(this.el).find(".nf-setting").addClass("nf-error"),this.error.show(new t({model:this.model}))):(jQuery(this.el).find(".nf-setting").removeClass("nf-error"),this.error.empty())},renderWarning:function(){this.model.get("warning")?(jQuery(this.el).find(".nf-setting").addClass("nf-warning"),this.error.show(new t({model:this.model}))):(jQuery(this.el).find(".nf-setting").removeClass("nf-warning"),this.error.empty())},templateHelpers:function(){var e=this;return{renderVisible:function(){if(!nfAdmin.devMode){if("Action"==e.dataModel.get("objectType")&&"email"==e.dataModel.get("type")){if("cc"==this.name)return'style="display:none;"';if("bcc"==this.name)return'style="display:none;"';if("from_name"==this.name)return'style="display:none;"';if("from_address"==this.name)return'style="display:none;"';if("email_format"==this.name)return'style="display:none;"'}if("Action"==e.dataModel.get("objectType")&&"save"==e.dataModel.get("type")&&"submitter_email"==this.name)return'style="display:none;"';if("label_pos"==this.name)return'style="display:none;"';if("input_limit"==this.name)return'style="display:none;"';if("input_limit_type"==this.name)return'style="display:none;"';if("input_limit_msg"==this.name)return'style="display:none;"';if("help_text"==this.name)return'style="display:none;"';if("disable_input"==this.name)return'style="display:none;"';if("disable_browser_autocomplete"==this.name)return'style="display:none;"';if("mask"==this.name)return'style="display:none;"';if("custom_mask"==this.name)return'style="display:none;"';if("custom_name_attribute"==this.name)return'style="display:none;"';if("personally_identifiable"==this.name)return'style="display:none;"';if("key"==this.name)return'style="display:none;"';if("admin_label"==this.name)return'style="display:none;"';if("num_sort"==this.name)return'style="display:none;"';if("user_state"==this.name)return'style="display:none;"';if("checkbox"==e.dataModel.get("type")){if("checked_value"==this.name)return'style="display:none;"';if("unchecked_value"==this.name)return'style="display:none;"';if("checked_calc_value"==this.name)return'style="display:none;"';if("unchecked_calc_value"==this.name)return'style="display:none;"'}if("starrating"==e.dataModel.get("type")&&"default"==this.name)return'style="display:none;"';if("listmultiselect"==e.dataModel.get("type")&&"box_size"==this.name)return'style="display:none;"';if("date"==e.dataModel.get("type")){if("year_range_start"==this.name)return'style="display:none;"';if("year_range_end"==this.name)return'style="display:none;"'}}return i.channel("settings").request("check:deps",this,e)},renderSetting:function(){return void 0!==e.dataModel.get(this.name)?this.value=e.dataModel.get(this.name):void 0===this.value&&(this.value=""),i.channel("app").request("get:template","#tmpl-nf-edit-setting-"+this.type)(this)},renderLabelClasses:function(){var e="";return this.use_merge_tags&&(e+=" has-merge-tags"),"rte"==this.type&&(e+=" rte"),e},renderClasses:function(){var e="nf-setting ";return void 0!==this.width?e+="nf-"+this.width:e+=" nf-one-half",this.error&&(e+=" nf-error"),e},renderTooltip:function(){return this.help?((e=document.createElement("div")).innerHTML=this.help,(t=document.createElement("div")).classList.add("nf-help-text"),t.appendChild(e),(n=document.createElement("span")).classList.add("dashicons","dashicons-admin-comments"),(i=document.createElement("a")).classList.add("nf-help"),i.setAttribute("href","#"),i.setAttribute("tabindex","-1"),i.appendChild(n),(r=document.createElement("span")).appendChild(i),r.appendChild(t),r.innerHTML):"";var e,t,n,i,r},renderEmailFieldOptions:function(){var e=i.channel("fields").request("get:collection");initialOption=document.createElement("option"),initialOption.value="",initialOption.label="--",initialOption.innerHTML="--";var t=document.createElement("select");t.classList.add("setting"),t.setAttribute("data-id","my_seledt"),t.appendChild(initialOption);var n=this;return e.each((function(e){if("email"!=e.get("type"))return"";var i=document.createElement("option");i.value=e.get("key"),i.innerHTML=e.get("label"),i.label=e.get("label"),n.value===e.get("key")&&i.setAttribute("selected","selected"),t.appendChild(i),1})),label=document.createElement("label"),label.classList.add("nf-select"),label.appendChild(t),emptyContainer=document.createElement("div"),label.appendChild(emptyContainer),label.innerHTML},renderMergeTags:function(){return this.use_merge_tags&&!this.hide_merge_tags?'<span class="dashicons dashicons-list-view merge-tags"></span>':""},renderMinMax:function(){var e="";return void 0!==this.min_val&&null!=this.min_val&&jQuery.isNumeric(this.min_val)&&(e=e+"min='"+this.min_val+"'"),void 0!==this.max_val&&""!=this.max_val&&jQuery.isNumeric(this.max_val)&&(e=e+" max='"+this.max_val+"'"),void 0!==this.step&&""!=this.step&&jQuery.isNumeric(this.step)&&(e=e+" step='"+this.step+"'"),e},renderMinMaxHelper:function(){var e="";return void 0!==this.min_val&&null!=this.min_val&&jQuery.isNumeric(this.min_val)&&(0==e.length&&(e="("),e=e+nfi18n.minVal+": "+this.min_val),void 0!==this.max_val&&""!=this.max_val&&jQuery.isNumeric(this.max_val)&&(0==e.length?e="(":e+=", ",e=e+nfi18n.maxVal+": "+this.max_val),0<e.length&&(e+=")"),e}}},events:{"change .setting":"changeSetting","keyup .setting":"keyUpSetting","click .setting":"clickSetting","click .extra":"clickExtra"},changeSetting:function(e){if("textbox"==this.model.get("type")&&this.model.get("name").endsWith("_class")){const t=/^[a-zA-Z 0-9-_]+$/;-1===e.target.value.search(t)&&""!==e.target.value?this.model.set("error","HTML classes only allow - _ and alphanumeric characters."):0!==e.target.value.search(t)&&""!==e.target.value||this.model.unset("error")}else if("textbox"==this.model.get("type")&&"title"===this.model.get("name")){const t=/[/"<>`]/;if(-1!==e.target.value.search(t)&&""!==e.target.value){const n=e.target.value.search(t),i=e.target.value.charAt(n);this.model.set("error","The forbidden "+i+' character was found. Title must not contain / " < > ` characters.')}else-1!==e.target.value.search(t)&&""!==e.target.value||this.model.unset("error")}i.channel("app").trigger("change:setting",e,this.model,this.dataModel)},keyUpSetting:function(e){i.channel("app").trigger("keyup:setting",e,this.model,this.dataModel),i.channel("setting-"+this.model.get("name")).trigger("keyup:setting",e,this.model,this.dataModel)},clickSetting:function(e){i.channel("app").trigger("click:setting",e,this.model,this.dataModel),i.channel("setting-type-"+this.model.get("type")).trigger("click:setting",e,this.model,this.dataModel,this)},clickExtra:function(e){i.channel("setting-type-"+this.model.get("type")).trigger("click:extra",e,this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("name")).trigger("click:extra",e,this.model,this.dataModel,this),i.channel("setting-name-"+this.model.get("name")).trigger("click:extra",e,this.model,this.dataModel,this)},drawerOpened:function(){i.channel("setting-type-"+this.model.get("type")).trigger("drawer:opened",this.model,this.dataModel,this)},drawerClosed:function(){i.channel("setting-type-"+this.model.get("type")).trigger("drawer:closed",this.model,this.dataModel,this)}})})),n("views/app/drawer/contentPublicLink",["views/app/drawer/itemSetting"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-public-link",regions:{embedForm:".embed-form",enablePublicLink:".enable-public-link",copyPublicLink:".copy-public-link"},onRender:function(){var t=Backbone.Radio.channel("app").request("get:formModel"),n=i.channel("settings").request("get:settings"),r=i.channel("settings").request("get:settingModel","allow_public_link");this.enablePublicLink.show(new e({model:r,dataModel:n}));var a="[ninja_form id='{FORM_ID}']".replace("{FORM_ID}",t.get("id"));n.set("embed_form",a);var l=i.channel("settings").request("get:settingModel","embed_form");this.embedForm.show(new e({model:l,dataModel:n}));var s=n.get("public_link_key");s||(s=i.channel("app").request("generate:publicLinkKey"));var o=nfAdmin.publicLinkStructure.replace("[FORM_ID]",s);n.set("public_link",o);var c=i.channel("settings").request("get:settingModel","public_link");this.copyPublicLink.show(new e({model:c,dataModel:n}))},events:{"click #embed_form + .js-click-copytext":"copyFormEmbedHandler","click #public_link + div > .js-click-copytext":"copyPublicLinkHandler","click #public_link + div > .js-click-resettext":"confirmResetPublicLinkHandler","click #public_link + div > .js-click-confirm":"resetPublicLinkHandler","click #public_link + div > .js-click-cancel":"cancelResetPublicLinkHandler"},copyFormEmbedHandler:function(e){document.getElementById("embed_form").select(),document.execCommand("copy"),e.target.innerHTML="Copied!",setTimeout((function(){e.target.innerHTML="Copy"}),1500)},copyPublicLinkHandler:function(e){document.getElementById("public_link").select(),document.execCommand("copy"),e.target.innerHTML="Copied!",setTimeout((function(){e.target.innerHTML="Copy"}),1500)},confirmResetPublicLinkHandler:function(e){_.each(e.target.parentNode.children,(function(e){e.classList.contains("js-click-copytext")||e.classList.contains("js-click-resettext")?e.style.display="none":e.style.display="inline-block"}))},resetPublicLinkHandler:function(e){var t=i.channel("app").request("generate:publicLinkKey"),n=nfAdmin.publicLinkStructure.replace("[FORM_ID]",t);i.channel("settings").request("get:settings").set("public_link",n),this.cancelResetPublicLinkHandler(e),_.each(e.target.parentNode.children,(function(e){e.classList.contains("js-click-resettext")?(e.style.display="inline-block",e.classList.add("primary"),e.classList.remove("secondary"),e.innerHTML="Link Reset!",setTimeout((function(){e.classList.add("secondary"),e.classList.remove("primary"),e.innerHTML="Reset"}),1500)):e.style.display="none",e.classList.contains("js-click-copytext")&&setTimeout((function(){e.style.display="inline-block"}),1500)})),jQuery("#public_link").val(n)},cancelResetPublicLinkHandler:function(e){_.each(e.target.parentNode.children,(function(e){e.classList.contains("js-click-cancel")||e.classList.contains("js-click-confirm")?e.style.display="none":e.style.display="inline-block"}))}})})),n("views/app/drawer/headerPublicLink",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-public-link"})})),n("views/app/drawer/contentNewForm",["views/app/drawer/itemSetting"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-new-form",regions:{formName:".new-form-name",formSubmit:".new-form-submit"},onRender:function(){var t=i.channel("settings").request("get:settingModel","title"),n=i.channel("settings").request("get:settingModel","add_submit"),r=i.channel("settings").request("get:settings");this.formName.show(new e({model:t,dataModel:r})),void 0===i.channel("fields").request("get:collection").findWhere({type:"submit"})?this.formSubmit.show(new e({model:n,dataModel:r})):r.set("add_submit",0)},events:{"click .publish":"clickPublish"},clickPublish:function(e){i.channel("app").trigger("click:confirmPublish",e)}})})),n("views/app/drawer/headerNewForm",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-new-form"})})),n("controllers/app/drawerConfig",["models/app/drawerCollection","views/fields/drawer/addField","views/app/drawer/editSettings","views/app/drawer/headerEditSettings","views/actions/drawer/addAction","views/app/drawer/contentViewChanges","views/app/drawer/headerViewChanges","views/app/drawer/contentPublicLink","views/app/drawer/headerPublicLink","views/app/drawer/contentNewForm","views/app/drawer/headerNewForm"],(function(e,t,n,r,a,l,s,o,c,d,h,u){return Marionette.Object.extend({initialize:function(){this.collection=new e([{id:"addField",getContentView:function(e){return new t(e)}},{id:"addAction",getContentView:function(e){return new a(e)}},{id:"editSettings",getHeaderView:function(e){if(void 0!==e.typeModel)var t=i.channel(e.typeModel.get("id")).request("get:drawerHeaderView")||r;else t=r;return new t(e)},getContentView:function(e){return new n(e)}},{id:"viewChanges",getHeaderView:function(e){return new s(e)},getContentView:function(e){return new l(e)}},{id:"publicLink",getHeaderView:function(e){return new c(e)},getContentView:function(e){return new o(e)}},{id:"newForm",getHeaderView:function(e){return new h(e)},getContentView:function(e){return new d(e)}}]),i.channel("app").reply("get:drawerCollection",this.getDrawerCollection,this),i.channel("app").reply("get:drawer",this.getDrawer,this)},getDrawerCollection:function(){return this.collection},getDrawer:function(e){return this.collection.get(e)}})})),n("views/app/drawer/defaultSettingsTitle",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-edit-settings-title-default",templateHelpers:function(){return{renderTypeNicename:function(){var e=i.channel("app").request("get:currentDomain").get("id"),t=i.channel(e).request("get:type",this.type);return void 0!==t?t.get("nicename"):""}}}})})),n("views/app/empty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-empty"})})),n("models/app/domainModel",["views/app/drawer/defaultSettingsTitle","views/app/empty"],(function(e,t){return Backbone.Model.extend({defaults:{dashicons:"",classes:"",active:!1,url:"",hotkeys:!1,disabled:!1,getSettingsTitleView:function(t){return new e(t)},getDefaultSettingsTitleView:function(t){return new e(t)},getGutterLeftView:function(e){return new t},getGutterRightView:function(e){return new t}}})})),n("models/app/domainCollection",["models/app/domainModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("views/fields/subHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-sub-header-fields"})})),n("views/fields/mainContentFieldCollection",[],(function(){return Marionette.CollectionView.extend({tagName:"div",reorderOnSort:!0,getChildView:function(){return i.channel("views").request("get:fieldItem")},getEmptyView:function(){return i.channel("views").request("get:mainContentEmpty")},initialize:function(){i.channel("fields").reply("get:sortableEl",this.getSortableEl,this),i.channel("fields").reply("init:sortable",this.initSortable,this),i.channel("fields").reply("destroy:sortable",this.destroySortable,this)},onRender:function(){if(this.collection.models.length>0){jQuery(this.el).addClass("nf-field-type-droppable").addClass("nf-fields-sortable");this.initSortable()}i.channel("app").trigger("render:fieldsSortable",this)},getSortableEl:function(){return this.el},initSortable:function(){if(i.channel("app").request("is:mobile"));else;jQuery(this.el).sortable({containment:"parent",helper:"clone",cancel:".nf-item-controls",placeholder:"nf-fields-sortable-placeholder",opacity:.95,grid:[5,5],appendTo:"#nf-main",scrollSensitivity:10,receive:function(e,t){t.item.dropping||jQuery(t.item).hasClass("nf-over-repeater")||i.channel("app").request("receive:fieldsSortable",t)},over:function(e,t){t.item.dropping||i.channel("app").request("over:fieldsSortable",t)},out:function(e,t){t.item.dropping||i.channel("app").request("out:fieldsSortable",t)},start:function(e,t){t.item.dropping||i.channel("app").request("start:fieldsSortable",t)},update:function(e,t){t.item.dropping||i.channel("app").request("update:fieldsSortable",t,this)},stop:function(e,t){t.item.dropping||i.channel("app").request("stop:fieldsSortable",t)}})},destroySortable:function(){jQuery(this.el).sortable("destroy")},onAddChild:function(e){i.channel("fields").request("get:adding")&&(e.$el.hide().show("clip"),i.channel("fields").request("set:adding",!1))}})})),n("views/fields/drawer/addSavedField",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-add-saved-field",initialize:function(){this.model.on("change:addSavedLoading",this.renderAddButton,this)},onRender:function(){this.renderAddButton()},renderAddButton:function(){if(this.model.get("addSavedLoading"))var e=i.channel("app").request("get:template","#tmpl-nf-add-saved-field-loading");else e=i.channel("app").request("get:template","#tmpl-nf-add-saved-field-button");jQuery(this.el).find(".add-button").html(e(this))},onBeforeDestroy:function(){this.model.off("change:addSavedLoading",this.render)},events:{"click .nf-button":"clickAddSavedField"},clickAddSavedField:function(e){i.channel("drawer").trigger("click:addSavedField",e,this.model)}})})),n("views/fields/drawer/settingsTitle",["views/fields/drawer/addSavedField"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-edit-settings-title-fields",initialize:function(){this.model.on("change:saved",this.render,this),this.model.on("change:label",this.renderjBoxContent,this)},regions:{addSaved:".nf-add-saved-field"},onBeforeDestroy:function(){this.model.off("change:saved",this.render),this.addSavedjBox.destroy(),this.model.unset("jBox",{silent:!0})},onRender:function(){this.renderjBoxContent();var e=this;this.addSavedjBox=new jBox("Tooltip",{trigger:"click",title:"Add to Favorite Fields",position:{x:"left",y:"center"},outside:"x",closeOnClick:"body",onCreated:function(){this.setContent(jQuery(e.el).find(".nf-add-saved-field"))}}),this.addSavedjBox.attach(jQuery(this.el).find(".dashicons")),this.model.set("jBox",this.addSavedjBox,{silent:!0})},renderjBoxContent:function(){this.addSaved&&this.addSaved.show(new e({model:this.model}))},templateHelpers:function(){return{renderTypeNicename:function(){var e=i.channel("app").request("get:currentDomain").get("id"),t=i.channel(e).request("get:type",this.type),n=t.get("nicename");this.saved&&(n+=" - "+i.channel(e).request("get:type",t.get("type")).get("nicename"));return n},renderSavedStar:function(){if(this.saved)var e="filled";else e="empty";return'<span class="dashicons dashicons-star-'+e+'"></span>'}}}})})),n("views/actions/mainHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-main-header-actions",initialize:function(){var e=i.channel("actions").request("get:collection");this.listenTo(e,"add",this.render),this.listenTo(e,"remove",this.render)},onRender:function(){0==i.channel("actions").request("get:collection").models.length?jQuery(this.el).hide():jQuery(this.el).show()}})})),n("views/actions/subHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-sub-header-actions"})})),n("views/app/itemControls",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-item-controls",initialize:function(){},onRender:function(){this.currentDomain=i.channel("app").request("get:currentDomain")},events:{"mouseover .nf-item-control":"mouseoverItemControl","click .nf-edit-settings":"clickEdit","singletap .nf-item-control":"singleTapEdit","click .nf-item-delete":"clickDelete","click .nf-item-duplicate":"clickDuplicateField"},clickEdit:function(e){i.channel("app").request("is:mobile")||i.channel("app").trigger("click:edit",e,this.model)},singleTapEdit:function(e){i.channel("app").trigger("click:edit",e,this.model)},clickDelete:function(e){i.channel("app").trigger("click:delete",e,this.model)},clickDuplicateField:function(e){i.channel("app").trigger("click:duplicate",e,this.model)},mouseoverItemControl:function(e){i.channel("app").trigger("mouseover:itemControl",e,this.model)}})})),n("views/actions/actionItem",["views/app/itemControls"],(function(e){return Marionette.LayoutView.extend({tagName:"tr",template:"#tmpl-nf-action-item",regions:{itemControls:".nf-item-controls"},initialize:function(){this.template=i.channel("actions").request("get:actionItemTemplate")||this.template,this.model.on("change:label",this.render,this),this.model.on("change:editActive",this.render,this),this.model.on("change:active",this.maybeDeactivate,this)},onBeforeDestroy:function(){this.model.off("change:label",this.render),this.model.off("change:editActive",this.render),this.model.off("change:active",this.maybeDeactivate)},onRender:function(){this.model.get("editActive")?jQuery(this.el).addClass("active"):jQuery(this.el).removeClass("active"),this.maybeDeactivate(),this.itemControls.show(new e({model:this.model}))},maybeDeactivate:function(){0==this.model.get("active")?jQuery(this.el).addClass("deactivated"):jQuery(this.el).removeClass("deactivated")},events:{"change input":"changeToggle",click:"maybeClickEdit"},maybeClickEdit:function(e){"TR"==jQuery(e.target).parent().prop("tagName")&&i.channel("app").trigger("click:edit",e,this.model)},changeToggle:function(e){var t=jQuery(e.target).data("setting"),n=i.channel("actions").request("get:settingModel",t);i.channel("app").request("change:setting",e,n,this.model),i.channel("app").request("update:db")},templateHelpers:function(){return{renderToggle:function(e){this.settingName=e||"active";var t=this.label;this.label="",this.value=this[this.settingName],this.name=this.id+"-"+this.settingName;var n=i.channel("app").request("get:template","#tmpl-nf-edit-setting-toggle");return n=n(this),this.label=t,n},renderTypeNicename:function(){var e=i.channel("actions").request("get:type",this.type);if(void 0!==e)return e.get("nicename")},renderTooltip:function(){return""},renderMergeTags:function(){return this.use_merge_tags?'<span class="dashicons dashicons-list-view merge-tags"></span>':""}}}})})),n("views/actions/mainContentEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-main-content-actions-empty",onBeforeDestroy:function(){jQuery(this.el).parent().parent().removeClass("nf-actions-empty")},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},onShow:function(){jQuery(this.el).parent().parent().addClass("nf-actions-empty")}})})),n("views/actions/mainContent",["views/actions/actionItem","views/actions/mainContentEmpty"],(function(e,t){return Marionette.CompositeView.extend({template:"#tmpl-nf-action-table",childView:e,emptyView:t,initialize:function(){this.template=i.channel("actions").request("get:mainContentTemplate")||this.template},onRender:function(){jQuery(this.el).droppable({accept:".nf-action-type-draggable",activeClass:"nf-droppable-active",hoverClass:"nf-droppable-hover",drop:function(e,t){i.channel("app").request("drop:actionType",e,t)}})},attachHtml:function(e,t){void 0!==i.channel("actions").request("get:type",t.model.get("type"))&&jQuery(e.el).find("tbody").append(t.el)}})})),n("views/advanced/mainHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-main-header-settings"})})),n("views/advanced/subHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-sub-header-settings"})})),n("views/advanced/settingItem",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-form-setting-type",onBeforeDestroy:function(){this.model.off("change:editActive",this.updateActiveClass)},initialize:function(){this.model.on("change:editActive",this.updateActiveClass,this)},events:{click:"clickEdit"},clickEdit:function(e){i.channel("settings").trigger("click:edit",e,this.model)},templateHelpers:function(){return{renderClasses:function(){var e="nf-setting-wrap "+this.id;return this.editActive&&(e+=" active"),e}}},updateActiveClass:function(){this.model.get("editActive")?jQuery(this.el).find(".nf-setting-wrap").addClass("active"):jQuery(this.el).find(".nf-setting-wrap").removeClass("active")}})})),n("views/advanced/mainContent",["views/advanced/settingItem"],(function(e){return Marionette.CompositeView.extend({childView:e,template:"#tmpl-nf-advanced-main-content",attachHtml:function(e,t){jQuery(e.el).find(".child-view-container").append(t.el)}})})),n("models/fields/fieldModel",[],(function(){return Backbone.Model.extend({defaults:{objectType:"Field",objectDomain:"fields",editActive:!1,order:999,idAttribute:"id"},initialize:function(){var e=this.get("type");if(void 0!==e){this.on("change",this.changeSetting,this);var t=i.channel("fields").request("get:type",this.get("type")),n=t.get("parentType");_.each(t.get("settingDefaults"),(function(e,t){void 0===this.get(t)&&this.set(t,e,{silent:!0})}),this),"saved"==t.get("section")&&this.set("type",t.get("type")),"listimage"===e&&(this.get=this.listimageGet,this.set=this.listimageSet),i.channel("fields").trigger("init:fieldModel",this),i.channel("fields-"+n).trigger("init:fieldModel",this),i.channel("fields-"+this.get("type")).trigger("init:fieldModel",this),this.listenTo(i.channel("app"),"fire:updateFieldKey",this.updateFieldKey)}},listimageGet:function(e){return"options"===e&&(e="image_options"),Backbone.Model.prototype.get.call(this,e)},listimageSet:function(e,t){return"options"===e&&(e="image_options"),Backbone.Model.prototype.set.call(this,e,t)},changeSetting:function(e,t){i.channel("fieldSetting-"+_.keys(e.changedAttributes())[0]).trigger("update:setting",this,t.settingModel),i.channel("fields").trigger("update:setting",this,t.settingModel),i.channel("app").trigger("update:setting",this,t.settingModel)},updateFieldKey:function(e,t){i.channel("app").trigger("replace:fieldKey",this,e,t)},formatLabel:function(){var e=this.get("admin_label");return""==e&&(e=this.get("label")),e}})})),n("models/fields/fieldCollection",["models/fields/fieldModel"],(function(e){var t=Backbone.Collection.extend({model:e,comparator:function(e){return parseInt(e.get("order"))},tmpNum:1,initialize:function(){this.on("add",this.addField,this),this.on("remove",this.removeField,this),this.listenTo(this,"add:field",this.addNewField),this.listenTo(this,"append:field",this.appendNewField),this.listenTo(this,"remove:field",this.removeFieldResponse),this.newIDs=[]},addField:function(e){this.newIDs.push(e.get("id"))},removeField:function(e){this.removedIDs=this.removedIDs||{},this.removedIDs[e.get("id")]=e.get("id")},addNewField:function(e){this.add(e)},appendNewField:function(e){if(0==this.length)var t=0;else t=this.at(this.length-1).get("order")+1;e.set("order",t,{silent:!0}),this.add(e)},removeFieldResponse:function(e){this.remove(e)},fieldExists:function(e){return-1!=this.indexOf(e)}});return t})),n("controllers/app/domainConfig",["models/app/domainCollection","views/fields/subHeader","views/fields/mainContentFieldCollection","views/fields/drawer/settingsTitle","views/actions/mainHeader","views/actions/subHeader","views/actions/mainContent","views/advanced/mainHeader","views/advanced/subHeader","views/advanced/mainContent","views/app/empty","models/fields/fieldCollection"],(function(e,t,n,r,a,l,s,o,c,d,h,u){return Marionette.Object.extend({initialize:function(){i.channel("formContent").request("add:viewFilter",this.defaultFormContentView,10,this),i.channel("formContent").request("add:loadFilter",this.defaultFormContentLoad,10,this),i.channel("formContentGutters").request("add:leftFilter",this.defaultFormContentGutterView,10,this),i.channel("formContentGutters").request("add:rightFilter",this.defaultFormContentGutterView,10,this),this.collection=new e([{id:"fields",nicename:nfi18n.domainFormFields,hotkeys:{Esc:"close:drawer","Ctrl+Shift+n":"add:newField","Ctrl+Shift+a":"changeDomain:actions","Ctrl+Shift+s":"changeDomain:settings","Alt+Ctrl+t":"open:mergeTags",up:"up:mergeTags",down:"down:mergeTags","Shift+return":"return:mergeTags"},mobileDashicon:"dashicons-menu",getSubHeaderView:function(){return new t},getMainContentView:function(e){var t=i.channel("settings").request("get:setting","formContentData");t||(t=i.channel("settings").request("get:setting","fieldContentsData"));var n=i.channel("formContent").request("get:loadFilters"),r=_.without(n,void 0);t=(l=_.first(r))(t,i.channel("app").request("get:formModel"),!0);var a=i.channel("formContent").request("get:viewFilters"),l=(r=_.without(a,void 0),_.first(r));return formContentView=l(),i.channel("settings").request("update:setting","formContentData",t,!0),new formContentView({collection:t})},getSettingsTitleView:function(e){return"fields"==e.model.get("objectDomain")?new r(e):this.get("getDefaultSettingsTitleView").call(this,e)},getGutterLeftView:function(e){var t=i.channel("formContentGutters").request("get:leftFilters"),n=_.without(t,void 0),r=_.first(n);return gutterView=r(),new gutterView},getGutterRightView:function(){var e=i.channel("formContentGutters").request("get:rightFilters"),t=_.without(e,void 0),n=_.first(t);return gutterView=n(),new gutterView}},{id:"actions",nicename:nfi18n.domainActions,hotkeys:{Esc:"close:drawer","Ctrl+Shift+n":"add:newAction","Ctrl+Shift+f":"changeDomain:fields","Ctrl+Shift+s":"changeDomain:settings","Alt+Ctrl+t":"open:mergeTags",up:"up:mergeTags",down:"down:mergeTags","Shift+return":"return:mergeTags"},mobileDashicon:"dashicons-external",getSubHeaderView:function(){return new l},getMainContentView:function(){var e=i.channel("actions").request("get:collection");return new s({collection:e})}},{id:"settings",nicename:nfi18n.domainAdvanced,hotkeys:{Esc:"close:drawer","Ctrl+Shift+f":"changeDomain:fields","Ctrl+Shift+a":"changeDomain:actions","Alt+Ctrl+t":"open:mergeTags",up:"up:mergeTags",down:"down:mergeTags","Shift+return":"return:mergeTags"},mobileDashicon:"dashicons-admin-generic",getSubHeaderView:function(){return new c},getMainContentView:function(){var e=i.channel("settings").request("get:typeCollection");return new d({collection:e})}},{id:"preview",nicename:"Preview Form",classes:"preview",dashicons:"dashicons-visibility",mobileDashicon:"dashicons-visibility",url:nfAdmin.previewurl}]),i.channel("app").trigger("init:domainCollection",this.collection),i.channel("app").reply("get:domainCollection",this.getDomainCollection,this),i.channel("app").reply("get:domainModel",this.getDomainModel,this)},getDomainCollection:function(){return this.collection},getDomainModel:function(e){return this.collection.get(e)},defaultFormContentView:function(e){return n},defaultFormContentLoad:function(e){var t=i.channel("fields").request("get:collection"),n=i.channel("formContent").request("get:loadFilters");if(1==_.without(n,void 0).length||void 0===e||!0==e instanceof Backbone.Collection)return t;var r=_.map(e,(function(e){return t.findWhere({key:e})}),this);return new u(r)},defaultFormContentGutterView:function(e){return h}})})),n("models/app/appModel",[],(function(){return Backbone.Model.extend({defaults:{loading:!1},initialize:function(){this.on("change:clean",this.changeStatus,this)},changeStatus:function(){i.channel("app").trigger("change:clean",this.get("clean"))}})})),n("controllers/app/data",["models/app/appModel"],(function(e){return Marionette.Object.extend({initialize:function(){var t=i.channel("app").request("get:domainCollection");this.model=new e({currentDrawer:!1,currentDomain:t.get("fields"),clean:!0});var n=1==nfAdmin.mobile;this.model.set("mobile",n),i.channel("app").reply("is:mobile",this.isMobile,this),i.channel("app").reply("get:data",this.getData,this),i.channel("app").reply("get:setting",this.getSetting,this),i.channel("app").reply("get:currentDomain",this.getCurrentDomain,this),i.channel("app").reply("get:currentDrawer",this.getCurrentDrawer,this),i.channel("drawer").reply("get:current",this.getCurrentDrawer,this),i.channel("app").reply("update:currentDomain",this.updateCurrentDomain,this),i.channel("app").reply("update:currentDrawer",this.updateCurrentDrawer,this),i.channel("app").reply("update:setting",this.updateSetting,this),i.channel("settings").reply("check:deps",this.checkDeps,this)},checkDeps:function(e,t){if(!e.deps)return"";let n=e.deps.settings,i=e.deps.match,r=!1;for(var a=n.length-1;a>=0;a--){let e=n[a].name,l=n[a].value;if(t.dataModel.get(e)==l){if("any"==i){r=!1;break}}else r=!0}return r?'style="display:none;"':""},updateCurrentDomain:function(e){this.updateSetting("currentDomain",e)},updateSetting:function(e,t){return this.model.set(e,t),!0},getSetting:function(e){return this.model.get(e)},getData:function(){return this.model},getCurrentDomain:function(){return this.model.get("currentDomain")},updateCurrentDrawer:function(e){return this.updateSetting("currentDrawer",e),!0},getCurrentDrawer:function(){var e=this.model.get("currentDrawer");return i.channel("app").request("get:drawer",e)},isMobile:function(){return this.model.get("mobile")}})})),n("controllers/app/drawerToggleSettingGroup",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer"),"click:toggleSettingGroup",this.toggleSettingGroup)},toggleSettingGroup:function(e,t){if(t.get("display")){var n=!1;_.each(t.get("settings").models,(function(e){e.get("error")&&(n=!0)})),n||t.set("display",!1)}else t.set("display",!0)}})})),n("controllers/app/updateDB",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer"),"closed",this.updateDB),i.channel("app").reply("update:db",this.updateDB,this),i.channel("formContent").request("add:saveFilter",this.defaultSaveFilter,10,this)},updateDB:function(e){if(i.channel("app").request("get:setting","clean"))return!1;if("preview"==(e=e||"preview"))var t="nf_preview_update";else if("publish"==e)t="nf_save_form";var n=i.channel("app").request("get:formModel");_.each(n.get("fields").models,(function(e,t){e.unset("jBox",{silent:!0})}));var r=i.channel("settings").request("get:setting","formContentData");r||(r=i.channel("settings").request("get:setting","fieldContentsData"));var a=i.channel("formContent").request("get:saveFilters"),l=_.without(a,void 0);if(r=_.first(l)(r),"publish"==e&&n.get("show_publish_options")){i.channel("app").request("open:drawer","newForm");var s=i.channel("app").request("get:builderEl");return jQuery(s).addClass("disable-main"),!1}var o=i.channel("app").request("get:formModel"),c=JSON.parse(JSON.stringify(o));c.settings.formContentData=r;var d=o.get("fields").removedIDs;_.each(c.fields,(function(e){var t=e.id;delete e.id,delete e.parent_id;var n={};for(var i in e)e.hasOwnProperty(i)&&(null!==e[i]&&(n[i]=e[i]),delete e[i]);for(var r in n)null===n[r]&&delete n[r];e.settings=n,e.id=t})),c.deleted_fields=d;d=o.get("actions").removedIDs;for(var h in _.each(c.actions,(function(e){var t=e.id;delete e.id,delete e.parent_id;var n={};for(var i in e)e.hasOwnProperty(i)&&(null!==e[i]&&(n[i]=e[i]),delete e[i]);e.settings=n,e.id=t})),c.settings)null===c.settings[h]&&delete c.settings[h];if(c.deleted_actions=d,c=JSON.stringify(c),i.channel("app").trigger("before:updateDB",c),"publish"==e&&(i.channel("app").request("update:setting","loading",!0),i.channel("app").trigger("change:loading"),i.channel("app").request("is:mobile")&&i.channel("notices").request("add","publishing","Your Changes Are Being Published",{autoClose:!1})),"nf_save_form"===t){var u=1e5,p=[];if(u<c.length&&(p=c.match(new RegExp(".{1,100000}","g"))),1<p.length)this.saveChunkedForm(p,0,"nf_batch_process",e,n.get("id"),!0);else{var g=this,f=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},(function(t){f=t,g.handleFinalResponse(f,e)})).fail((function(t,n,i){g.handleFinalFailure(t,n,i,e)}))}}else if("nf_preview_update"===t){g=this,f=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},(function(t){f=t,g.handleFinalResponse(f,e)})).fail((function(t,n,i){g.handleFinalFailure(t,n,i,e)}))}},saveChunkedForm:function(e,t,n,i,r,a){var l=e.length,s={action:n,batch_type:"chunked_publish",data:{new_publish:a,chunk_total:l,chunk_current:t,chunk:e[t],form_id:r},security:nfAdmin.batchNonce},o=this;jQuery.post(ajaxurl,s).then((function(a){try{var l=JSON.parse(a);"success"!==l.last_request||l.batch_complete?l.batch_complete&&o.handleFinalResponse(a,i):(console.log("Chunk "+t+" processed"),o.saveChunkedForm(e,l.requesting,n,i,r,!1))}catch(e){console.log("There was an error in parsing the response"),console.log(e)}})).fail((function(e,t,n){console.log("There was an error sending form data"),console.log(n),o.handleFinalFailure(e,t,n,i)}))},handleFinalResponse:function(e,t){try{(e=JSON.parse(e)).action=t,i.channel("app").trigger("response:updateDB",e),i.channel("app").request("is:mobile")}catch(e){console.log("Something went wrong!"),console.log(e)}},handleFinalFailure:function(e,t,n,i){"preview"!=i?alert(e.status+" "+n+"\r\nAn error on the server caused your form not to publish.\r\nPlease contact Ninja Forms Support with your PHP Error Logs.\r\nhttps://ninjaforms.com/contact"):console.log(n)},defaultSaveFilter:function(e){return e.pluck("key")}})})),n("models/app/formModel",[],(function(){return Backbone.Model.extend({initialize:function(){jQuery.isNumeric(this.get("id"))?this.set("show_publish_options",!1,{silent:!0}):this.set("show_publish_options",!0,{silent:!0})}})})),n("controllers/app/formData",["models/app/formModel"],(function(e){return Marionette.Object.extend({initialize:function(){this.model=new e({id:preloadedFormData.id}),this.model.set("fields",i.channel("fields").request("get:collection")),this.model.set("actions",i.channel("actions").request("get:collection")),this.model.set("settings",i.channel("settings").request("get:settings")),i.channel("app").reply("get:formModel",this.getFormModel,this)},getFormModel:function(){return this.model}})})),n("controllers/app/previewLink",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:sendChanges",this.disablePreview,this),this.listenTo(i.channel("app"),"response:sendChanges",this.enablePreview,this),this.listenTo(i.channel("app"),"change:clean",this.changePreviewNicename,this)},disablePreview:function(){i.channel("app").request("get:domainCollection").get("preview").set("disabled",!0)},changePreviewNicename:function(e){if(e)t="Preview Form";else var t="Preview Changes";i.channel("app").request("get:domainCollection").get("preview").set("nicename",t)},enablePreview:function(){i.channel("app").request("get:domainCollection").get("preview").set("disabled",!1)}})})),n("controllers/app/menuButtons",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:publish",this.publish),this.listenTo(i.channel("app"),"click:viewChanges",this.viewChanges),this.listenTo(i.channel("app"),"click:publicLink",this.publicLink)},publish:function(){i.channel("app").request("update:db","publish")},viewChanges:function(){var e=i.channel("changes").request("get:collection");i.channel("app").request("open:drawer","viewChanges",{collection:e})},publicLink:function(){i.channel("app").request("open:drawer","publicLink")}})})),n("models/app/changeModel",[],(function(){return Backbone.Model.extend({defaults:{disabled:!1}})})),n("models/app/changeCollection",["models/app/changeModel"],(function(e){return Backbone.Collection.extend({model:e,comparator:function(e){return-parseInt(e.cid.replace("c",""))}})})),n("controllers/app/trackChanges",["models/app/changeCollection","models/app/changeModel"],(function(e,t){return Marionette.Object.extend({initialize:function(){this.collection=new e,i.channel("changes").reply("register:change",this.registerChange,this),i.channel("changes").reply("get:collection",this.getCollection,this),this.listenTo(i.channel("app"),"change:clean",this.maybeResetCollection)},registerChange:function(e,n,r,a,l){l=void 0!==l?l:{};void 0===a.dashicon&&(a.dashicon="admin-generic");var s=new t({action:e,model:n,changes:r,label:a,data:l});return this.collection.add(s),i.channel("fields-repeater").trigger("clearEditActive",n),s},getCollection:function(){return this.collection},maybeResetCollection:function(e){e&&this.collection.reset()}})})),n("controllers/app/undoChanges",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer"),"click:undoChanges",this.undoChanges,this),this.listenTo(i.channel("drawer"),"click:undoSingle",this.undoSingle,this)},undoChanges:function(){var e=i.channel("changes").request("get:collection");e.sort();var t=this;_.each(e.models,(function(e){t.undoSingle(e,!0)})),e.reset(),i.channel("app").request("update:db"),i.channel("app").request("update:setting","clean",!0),i.channel("app").request("close:drawer"),this.dispatchClick()},undoSingle:function(e,t){i.channel("changes").request("undo:"+e.get("action"),e,t),this.dispatchClick()},dispatchClick:function(){if(!document.cookie.includes("nf_undo")){var e=new Date;e.setTime(e.getTime()+6048e5);var t="expires="+e.toUTCString();document.cookie="nf_undo=1;"+t+";path=/";var n={action:"nf_undo_click",security:nfAdmin.ajaxNonce};jQuery.post(ajaxurl,n)}}})})),n("controllers/app/publishResponse",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"response:updateDB",this.publishResponse)},publishResponse:function(e){if("publish"!==e.action)return!1;void 0!==e.data.new_ids&&(void 0!==e.data.new_ids.fields&&_.each(e.data.new_ids.fields,(function(e,t){var n=i.channel("fields").request("get:field",t);n?n.set("id",e):(n=i.channel("fields-repeater").request("get:childField",t,null,e)).set("id",e)})),void 0!==e.data.new_ids.actions&&_.each(e.data.new_ids.actions,(function(e,t){var n=i.channel("actions").request("get:action",t);n&&n.set("id",e)})),void 0!==e.data.new_ids.forms&&_.each(e.data.new_ids.forms,(function(e,t){i.channel("app").request("get:formModel").set("id",e),history.replaceState("","","admin.php?page=ninja-forms&form_id="+e)}))),i.channel("app").request("update:setting","loading",!1),i.channel("app").trigger("change:loading"),i.channel("app").request("is:mobile")&&i.channel("notices").request("close","publishing"),i.channel("app").trigger("app:published",e),i.channel("app").request("update:setting","clean",!0)}})})),n("controllers/app/changeDomain",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:menu",this.changeAppDomain),i.channel("app").reply("change:currentDomain",this.changeAppDomain,this),i.channel("app").reply("prevent:changeDomain",this.preventChange,this),i.channel("app").reply("enable:changeDomain",this.enableChange,this),this.objPreventChange={}},changeAppDomain:function(e,t){if(this.maybePreventChange())return!1;if(void 0===t){var n=jQuery(e.target).data("domain");t=i.channel("app").request("get:domainModel",n)}if(i.channel("app").request("get:currentDrawer")&&i.channel("app").request("close:drawer"),0==t.get("url").length){var r=i.channel("app").request("get:mainEl");i.channel("app").request("update:currentDomain",t),jQuery(r).scrollTop(0),i.channel("app").trigger("change:currentDomain",t)}},maybePreventChange:function(){return 0!=Object.keys(this.objPreventChange).length},preventChange:function(e){this.objPreventChange[e]=!0},enableChange:function(e){delete this.objPreventChange[e]}})})),n("controllers/app/pushstate",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"change:currentDomain",this.changePushState)},changePushState:function(){var e=i.channel("app").request("get:currentDomain");history.pushState(null,null,window.location.href+"&domain="+e.get("id"));var t=window.location.toString().replace(/domain=\\d+/,"");console.log(t)}})})),n("controllers/app/hotkeys",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("main"),"render:main",this.changeHotkeys),this.listenTo(i.channel("drawer"),"opened",this.changeHotkeys),this.listenTo(i.channel("drawer"),"render:settingGroup",this.changeHotkeys),this.listenTo(i.channel("hotkeys"),"add:newField",this.addNewField),this.listenTo(i.channel("hotkeys"),"add:newAction",this.addNewAction),this.listenTo(i.channel("hotkeys"),"changeDomain:fields",this.changeDomainFields),this.listenTo(i.channel("hotkeys"),"changeDomain:actions",this.changeDomainActions),this.listenTo(i.channel("hotkeys"),"changeDomain:settings",this.changeDomainSettings),this.listenTo(i.channel("hotkeys"),"close:drawer",this.closeDrawer)},changeHotkeys:function(){var e=i.channel("app").request("get:currentDomain");jQuery(document).off(".nfDomainHotkeys"),jQuery("input").off(".nfDomainHotkeys"),e.get("hotkeys")&&jQuery.each(e.get("hotkeys"),(function(e,t){jQuery(document).on("keydown.nfDomainHotkeys",null,e,(function(e){i.channel("hotkeys").trigger(t,e)})),jQuery("input").on("keydown.nfDomainHotkeys",null,e,(function(e){i.channel("hotkeys").trigger(t,e)})),jQuery("textarea").on("keydown.nfDomainHotkeys",null,e,(function(e){i.channel("hotkeys").trigger(t,e)}))}))},addNewField:function(){"addField"!=i.channel("app").request("get:currentDrawer")?i.channel("app").request("open:drawer","addField"):i.channel("app").request("close:drawer")},addNewAction:function(){"addAction"!=i.channel("app").request("get:currentDrawer")?i.channel("app").request("open:drawer","addAction"):i.channel("app").request("close:drawer")},changeDomainFields:function(){var e=i.channel("app").request("get:domainCollection").get("fields");i.channel("app").request("change:currentDomain",{},e)},changeDomainActions:function(){var e=i.channel("app").request("get:domainCollection").get("actions");i.channel("app").request("change:currentDomain",{},e)},changeDomainSettings:function(){var e=i.channel("app").request("get:domainCollection").get("settings");i.channel("app").request("change:currentDomain",{},e)},closeDrawer:function(){i.channel("app").request("close:drawer")}})})),n("controllers/app/cleanState",[],(function(){return Marionette.Object.extend({initialize:function(){this.ignoreAttributes=["editActive"],this.listenTo(i.channel("app"),"update:setting",this.setAppClean)},setAppClean:function(e){for(var t in e.changedAttributes())e.changedAttributes()[t];i.channel("undo-"+e.get("type")).request("ignore:attributes",this.ignoreAttributes)||this.ignoreAttributes;if(-1!=this.ignoreAttributes.indexOf(t))return!1;i.channel("app").request("update:setting","clean",!1),i.channel("fields-repeater").trigger("clearEditActive",e)}})})),n("controllers/app/coreUndo",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("changes").reply("undo:changeSetting",this.undoChangeSetting,this),i.channel("changes").reply("undo:addObject",this.undoAddObject,this),i.channel("changes").reply("undo:removeObject",this.undoRemoveObject,this),i.channel("changes").reply("undo:duplicateObject",this.undoDuplicateObject,this),i.channel("changes").reply("undo:sortFields",this.undoSortFields,this),i.channel("changes").reply("undo:addListOption",this.undoAddListOption,this),i.channel("changes").reply("undo:removeListOption",this.undoRemoveListOption,this),i.channel("changes").reply("undo:sortListOptions",this.undoSortListOptions,this)},undoChangeSetting:function(e,t){var n=e.get("model"),i=e.get("changes"),r=i.attr,a=i.before;n.set(r,a),this.maybeRemoveChange(e,t)},undoAddObject:function(e,t){var n=e.get("model"),r=e.get("data").collection;if(void 0!==r.newIDs&&delete r.newIDs[n.get("id")],!t){var a=i.channel("changes").request("get:collection"),l=a.where({model:n});_.each(l,(function(t){t!==e&&a.remove(t)}))}r.remove(n),this.maybeRemoveChange(e,t)},undoDuplicateObject:function(e,t){var n=e.get("model"),r=e.get("data").collection;if(!t){var a=i.channel("changes").request("get:collection"),l=a.where({model:n});_.each(l,(function(t){t!==e&&a.remove(t)}))}r.remove(n),this.maybeRemoveChange(e,t)},undoRemoveObject:function(e,t){var n=e.get("model"),r=e.get("data").collection;if(i.channel(n.get("objectDomain")).request("add",n),delete r.removedIDs[n.get("id")],!t){var a=i.channel("changes").request("get:collection").where({model:n});_.each(a,(function(t){t!==e&&t.set("disabled",!1)}))}r.trigger("reset",r),this.maybeRemoveChange(e,t)},undoSortFields:function(e,t){var n=e.get("data").fields,r=i.channel("fields").request("get:collection");_.each(n,(function(e){var t=e.before;e.model.set("order",t)})),r.sort(),this.maybeRemoveChange(e,t)},undoAddListOption:function(e,t){var n=e.get("model");if(!t){var r=i.channel("changes").request("get:collection"),a=r.where({model:n});_.each(a,(function(t){t!==e&&r.remove(t)}))}n.collection.remove(n),this.maybeRemoveChange(e,t)},undoRemoveListOption:function(e,t){var n=e.get("model");if(e.get("data").collection.add(n),!t){var r=i.channel("changes").request("get:collection").where({model:n});_.each(r,(function(t){t!==e&&t.set("disabled",!1)}))}this.maybeRemoveChange(e,t)},undoSortListOptions:function(e,t){var n=e.get("data"),i=n.collection,r=n.objModels;_.each(r,(function(e){var t=e.before;e.model.set("order",t)})),i.sort(),this.maybeRemoveChange(e,t)},maybeRemoveChange:function(e,t){if(!(t=void 0!==t&&t)){i.channel("app").request("update:db");var n=i.channel("changes").request("get:collection");n.remove(e),0==n.length&&(i.channel("app").request("update:setting","clean",!0),i.channel("app").request("close:drawer"))}}})})),n("controllers/app/cloneModelDeep",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("clone:modelDeep",this.cloneModelDeep,this)},cloneModelDeep:function(e){var t={};_.each(e.attributes,(function(e,n){if(e instanceof Backbone.Collection){var r=i.channel("app").request("clone:collectionDeep",e);t[n]=r}else e instanceof Backbone.Model&&(t[n]=this.cloneModelDeep(e))}),this);var n=e.clone();return _.each(t,(function(e,t){n.set(t,e)})),n}})})),n("controllers/app/getSettingChildView",["views/app/drawer/itemSetting"],(function(e){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("get:settingChildView",this.getSettingChildView,this)},getSettingChildView:function(t){var n=t.get("type");return i.channel(n).request("get:settingChildView",t)||e}})})),n("controllers/app/changeSettingDefault",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("change:setting",this.changeSetting,this),this.listenTo(i.channel("app"),"change:setting",this.changeSetting,this)},changeSetting:function(e,t,n,r){var a=t.get("name"),l=n.get(a);(r=r||null)||(r=i.channel(t.get("type")).request("before:updateSetting",e,n,a,t)),void 0===r&&(r=jQuery(e.target).val()),n.set(a,r,{settingModel:t}),i.channel("setting-"+a).trigger("after:updateSetting",n,t);var s=r,o={attr:a,before:l,after:s},c=(i.channel("app").request("get:currentDomain").get("id"),{object:n.get("objectType"),label:n.get("label"),change:"Changed "+t.get("label")+" from "+l+" to "+s});i.channel("changes").request("register:change","changeSetting",n,o,c)}})})),n("views/app/drawer/typeSettingFieldset",["views/app/drawer/itemSetting"],(function(e){return Marionette.CompositeView.extend({template:"#tmpl-nf-edit-setting-wrap",childView:e,initialize:function(e){this.collection=this.model.get("settings"),this.childViewOptions={dataModel:e.dataModel},this.dataModel=e.dataModel;var t=this.model.get("deps");if(t){void 0===t.settings&&(t.settings=[],_.each(t,(function(e,n){"settings"!==n&&t.settings.push({name:n,value:e})})),t.match="all");for(var n=t.settings.length-1;n>=0;n--){let e=t.settings[n].name;this.dataModel.on("change:"+e,this.render,this)}}this.model.on("rerender",this.render,this)},onBeforeDestroy:function(){var e=this.model.get("deps");if(e)for(var t=e.settings.length-1;t>=0;t--)name=e.settings[t].name,this.dataModel.off("change:"+name,this.render)},onBeforeRender:function(){i.channel("app").trigger("before:renderSetting",this.model,this.dataModel),i.channel("setting-type-"+this.model.get("type")).trigger("before:renderSetting",this.model,this.dataModel,this),i.channel("setting-"+this.model.get("name")).trigger("before:renderSetting",this.model,this.dataModel,this)},onRender:function(){i.channel("setting-"+this.model.get("name")).trigger("render:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("render:setting",this.model,this.dataModel,this)},templateHelpers:function(){var e=this;return{renderVisible:function(){if(!nfAdmin.devMode){if("help"==this.name)return'style="display:none;"';if("classes"==this.name)return'style="display:none;"';if("input_limit_set"==this.name)return'style="display:none;"';if("checkbox"==e.dataModel.get("type")&&"checkbox_values"==this.name)return'style="display:none;"';if("date"==e.dataModel.get("type")&&"year_range"==this.name)return'style="display:none;"'}return i.channel("settings").request("check:deps",this,e)},renderSetting:function(){return i.channel("app").request("get:template","#tmpl-nf-edit-setting-"+this.type)(this)},renderClasses:function(){var e="";return void 0!==this.width?e+=this.width:e+=" one-half",this.error&&(e+=" nf-error"),e},renderError:function(){return this.error?this.error:""}}},attachHtml:function(e,t){jQuery(e.el).find(".nf-field-sub-settings").append(t.el)}})})),n("controllers/app/fieldset",["views/app/drawer/typeSettingFieldset","models/app/settingCollection"],(function(e,t){return Marionette.Object.extend({initialize:function(){i.channel("fieldset").reply("get:settingChildView",this.getSettingChildView,this),this.listenTo(i.channel("fieldset"),"init:settingModel",this.createSettingsCollection)},getSettingChildView:function(t){return e},createSettingsCollection:function(e){e.set("settings",new t(e.get("settings")))}})})),n("controllers/app/toggleSetting",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("setting-type-toggle").reply("renderOnChange",(function(){return!1})),i.channel("toggle").reply("before:updateSetting",this.updateSetting,this)},updateSetting:function(e,t,n,i){if(jQuery(e.target).prop("checked"))var r=1;else r=0;return r}})})),n("controllers/app/buttonToggleSetting",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("setting-type-button-toggle").reply("renderOnChange",(function(){return!1})),i.channel("button-toggle").reply("before:updateSetting",this.updateSetting,this)},updateSetting:function(e,t,n,i){return e.target.value}})})),n("controllers/app/numberSetting",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("number").reply("before:updateSetting",this.updateSetting,this)},updateSetting:function(e,t,n,i){var r=i.get("min_val"),a=i.get("max_val");return null!=r&&e.target.value<r&&(t.set("value",r),e.target.value=r),null!=a&&e.target.value>a&&(t.set("value",a),e.target.value=a),e.target.value}})})),n("controllers/app/radioSetting",[],(function(){return Marionette.Object.extend({initialize:function(){console.log(i.channel("radio")),i.channel("radio").reply("before:updateSetting",this.updateSetting,this)},updateSetting:function(e,t,n,i){console.log("test")}})})),n("controllers/app/itemControls",[],(function(){return Marionette.Object.extend({deleting:!1,initialize:function(){this.listenTo(i.channel("app"),"click:edit",this.clickEdit),this.listenTo(i.channel("app"),"click:delete",this.maybeDelete),this.listenTo(i.channel("app"),"click:duplicate",this.clickDuplicate)},clickEdit:function(e,t){if(!this.deleting){var n=i.channel("app").request("get:currentDomain").get("id"),r=i.channel(n).request("get:type",t.get("type"));i.channel("app").request("open:drawer","editSettings",{model:t,groupCollection:r.get("settingGroups")}),i.channel("fields-repeater").trigger("clearEditActive",t)}},maybeDelete:function(e,t){this.deleting=!0;var n=t.get("id");if("field"!=t.get("objectType").toLowerCase())this.clickDelete(e,t);else if("tmp"===n.toString().substring(0,3)||-1!=jQuery.inArray(t.get("type"),["html","submit","hr","recaptcha","spam","creditcard","creditcardcvc","creditcardexpiration","creditcardfullname","creditcardnumber","creditcardzip"]))this.clickDelete(e,t);else{var i=Backbone.Radio.channel("app").request("get:formModel"),r={action:"nf_maybe_delete_field",security:nfAdmin.ajaxNonce,formID:i.get("id"),fieldKey:t.get("key"),fieldID:n},a=this;jQuery.post(ajaxurl,r).done((function(n){var i=JSON.parse(n);if(i.data.hasOwnProperty("errors")){var r=i.data.errors;return Array.isArray(r)?r.forEach((function(e){r+=e+"\n"})):r=r,console.log("Maybe Delete Field Errors: ",r),alert(r),null}return i.data.field_has_data?(a.doDeleteFieldModal(e,t),!1):(a.clickDelete(e,t),!1)}))}},doDeleteFieldModal:function(e,t){var n=this,i={width:400,closeOnClick:!1,closeOnEsc:!0,content:nfi18n.fieldDataDeleteMsg,btnPrimary:{text:nfi18n.delete,callback:function(){r.toggleModal(!1),r.destroy(),n.clickDelete(e,t)}},btnSecondary:{text:nfi18n.cancel,callback:function(){r.toggleModal(!1),r.destroy(),n.deleting=!1}}},r=new NinjaModal(i)},clickDelete:function(e,t){var n=i.channel("app").request("clone:modelDeep",t),r={object:t.get("objectType"),label:t.get("label"),change:"Removed",dashicon:"dismiss"},a={collection:t.collection},l=i.channel("changes").request("get:collection").where({model:t});_.each(l,(function(e){var i=e.get("data");void 0!==i.fields&&_.each(i.fields,(function(e,r){e.model==t&&(i.fields[r].model=n)})),e.set("data",i),e.set("model",n),e.set("disabled",!0)})),i.channel("changes").request("register:change","removeObject",n,null,r,a);var s=i.channel("app").request("get:currentDomain").get("id");i.channel(s).request("delete",t),this.deleting=!1},clickDuplicate:function(e,t){var n=i.channel("app").request("clone:modelDeep",t),r=i.channel("app").request("get:currentDomain").get("id");n.set("label",n.get("label")+" Copy",{silent:!0});var a=i.channel(r).request("get:tmpID");n.set("id",a),i.channel(r).request("add",n,!1,!1,"duplicate");var l={object:t.get("objectType"),label:t.get("label"),change:"Duplicated",dashicon:"admin-page"},s={collection:i.channel(r).request("get:collection")};i.channel("changes").request("register:change","duplicateObject",n,null,l,s),t.trigger("change:label",t),i.channel("app").request("update:db")}})})),n("controllers/app/mergeTags",["models/app/mergeTagCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.tagSectionCollection=new e;var t=this;_.each(mergeTags,(function(n){if(n.tags)var i=new e(n.tags);else i="";t.tagSectionCollection.add({id:n.id,label:n.label,tags:i,default_group:n.default_group})}));var n=this.tagSectionCollection.get("fields").get("tags"),r=i.channel("fields").request("get:collection");_.each(r.models,(function(e){"submit"!==e.get("type")&&n.add({id:e.get("id"),label:e.get("label"),tag:t.getFieldKeyFormat(e.get("key"))})}));var a=new e,l=i.channel("app").request("get:formModel").get("settings").get("calculations");_.each(l.models,(function(e){a.add({label:e.get("name"),tag:"{calc:"+e.get("name")+"}"})})),this.tagSectionCollection.get("calcs").set("tags",a),this.currentElement={},this.settingModel={},this.open=!1,this.listenTo(i.channel("mergeTags"),"click:mergeTag",this.clickMergeTag),this.listenTo(i.channel("fields"),"add:field",this.addFieldTags),this.listenTo(i.channel("fields"),"delete:field",this.deleteFieldTags),this.listenTo(i.channel("option-repeater-calculations"),"update:option",this.updateCalcTags),this.listenTo(i.channel("option-repeater-calculations"),"remove:option",this.updateCalcTags),i.channel("mergeTags").reply("update:currentElement",this.updateCurrentElement,this),i.channel("mergeTags").reply("update:currentSetting",this.updateCurrentSetting,this),i.channel("mergeTags").reply("get:collection",this.getCollection,this),i.channel("mergeTags").reply("get:mergeTag",this.getSectionModel,this),this.listenTo(i.channel("fieldSetting-id"),"update:setting",this.updateID),this.listenTo(i.channel("fieldSetting-key"),"update:setting",this.updateKey),this.listenTo(i.channel("app"),"replace:fieldKey",this.replaceFieldKey),i.channel("app").reply("get:fieldKeyFormat",this.getFieldKeyFormat,this)},initMergeTags:function(e){var t=i.channel("mergeTags").request("get:view");this.jBoxes={};var n=this;jQuery(e.el).find(".merge-tags").each((function(){if(void 0===jQuery(this).data("jBox-id")){var i=jQuery(this).jBox("Tooltip",{title:"Insert Merge Tag",trigger:"click",position:{x:"center",y:"bottom"},closeOnClick:"body",closeOnEsc:!0,theme:"TooltipBorder",maxHeight:200,onOpen:function(){t.reRender(e.model),this.setContent(jQuery(".merge-tags-content"));var i=jQuery(this.target).prev(".setting");0==i.length&&(i=jQuery(e.el).find(".setting")),n.updateCurrentSetting(e.model),n.updateCurrentElement(i)},onClose:function(){}});jQuery(this).data("jBox-id",i.id)}}))},clickMergeTag:function(e,t){if(void 0!==this.settingModel.get("settingModel")&&"calculations"==this.settingModel.get("settingModel").get("name")){console.log(t);var n=jQuery(this.currentElement).val(),i=(a=jQuery(this.currentElement).caret())+t.get("tag").length,r=void 0!==t.get("calcTag")?t.get("calcTag"):t.get("tag");n=n.substr(0,a)+r+n.substr(a),jQuery(this.currentElement).val(n).caret(i).trigger("change")}else if("rte"==this.settingModel.get("type"))jQuery(this.currentElement).summernote("insertText",t.get("tag"));else{var a;n=jQuery(this.currentElement).val(),i=(a=jQuery(this.currentElement).caret())+t.get("tag").length;n=n.substr(0,a)+t.get("tag")+n.substr(a),jQuery(this.currentElement).val(n).caret(i).trigger("change")}},addFieldTags:function(e){"submit"!==e.get("type")&&this.tagSectionCollection.get("fields").get("tags").add({id:e.get("id"),label:e.get("label"),tag:this.getFieldKeyFormat(e.get("key")),calcTag:this.getFieldKeyFormatCalc(e.get("key"))})},deleteFieldTags:function(e){var t=e.get("id"),n=this.tagSectionCollection.get("fields").get("tags").get(t);this.tagSectionCollection.get("fields").get("tags").remove(n)},updateCalcTags:function(t){var n=new e,r=i.channel("app").request("get:formModel").get("settings").get("calculations");_.each(r.models,(function(e){n.add({label:e.get("name"),tag:"{calc:"+e.get("name")+"}"})})),this.tagSectionCollection.get("calcs").set("tags",n)},openMergeTags:function(e){"TEXTAREA"!=jQuery(e.target)[0].tagName&&"INPUT"!=jQuery(e.target)[0].tagName||jQuery(e.target).parent().find(".merge-tags").click()},returnMergeTags:function(e){if(this.open){e.preventDefault();var t=this.fields.where({active:!0})[0];t&&this.clickMergeTag(e,t)}},upMergeTags:function(e){this.open&&(e.preventDefault(),this.changeActiveTag("up"))},downMergeTags:function(e){this.open&&(e.preventDefault(),this.changeActiveTag("down"))},changeActiveTag:function(e){if("down"==e)var t=1;else t=-1;if(0<this.fields.where({active:!0}).length){var n=this.fields.where({active:!0})[0],i=this.fields.indexOf(n);n.set("active",!1);var r=this.fields.models[i+t];r&&r.set("active",!0)}else 0<this.fields.where({active:!0})?console.log("system"):0<this.userInfo.where({active:!0})?console.log("userinfo"):0<this.fields.models.length?this.fields.models[0].set("active",!0):this.system.models[0].set("active",!0)},updateCurrentElement:function(e){this.currentElement=e},updateCurrentSetting:function(e){this.settingModel=e},getCollection:function(){return this.tagSectionCollection},getSectionModel:function(e){return this.tagSectionCollection.get(e)},updateOpen:function(e){this.open=e,_.each(this.tagSectionCollection.get("fields").models,(function(e){e.set("active",!1)}))},updateID:function(e){var t=this.getFieldKeyFormat(e.get("key")),n=this.tagSectionCollection.get("fields").get("tags").find((function(e){return t==e.get("tag")}));void 0!==n&&n.set("id",e.get("id"))},updateKey:function(e){var t=e.get("key"),n=this.tagSectionCollection.get("fields").get("tags").get(e.get("id"));void 0!==n&&n.set("tag",this.getFieldKeyFormat(t))},getFieldKeyFormat:function(e){return"{field:"+e+"}"},getFieldKeyFormatCalc:function(e){return"{field:"+e+":calc}"},replaceFieldKey:function(e,t,n){var i=this.getFieldKeyFormat(t._previousAttributes.key),r=this.getFieldKeyFormat(t.get("key")),a=n.get("name"),l=e.get(a);if("calculations"==a&&void 0!==e.get("calculations"))return e.get("calculations").each((function(e){var t=i.slice(0,i.length-1)+":calc}",n=r.slice(0,r.length-1)+":calc}";if("string"==typeof(l=e.get("eq"))){var a=new RegExp(t,"g"),s=l.replace(a,n);a=new RegExp(i,"g"),s=s.replace(a,r),e.set("eq",s)}})),!1;if("string"==typeof l){var s=new RegExp(i,"g");newVal=l.replace(s,r),e.set(a,newVal)}}})})),n("models/app/mergeTagLookupCollection",["models/app/mergeTagModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("views/app/drawer/mergeTag",[],(function(){return Marionette.ItemView.extend({tagName:"li",template:"#tmpl-nf-merge-tag-box-tag",events:{click:"insertTag"},insertTag:function(){i.channel("mergeTags").request("insert:tag",this.model.get("tag"))}})})),n("views/app/drawer/mergeTagList",["views/app/drawer/mergeTag"],(function(e){return Marionette.CollectionView.extend({tagName:"ul",childView:e,calc:!1,initialize:function(){i.channel("merge-tags").reply("update:taglist",this.sectionFilter,this),i.channel("merge-tags").reply("filtersearch",this.searchFilter,this)},filter:function(e,t,n){return"fields"==e.get("section")},sectionFilter:function(e,t){if(this.filter=function(t,n,i){return e==t.get("section")},t&&(this.calc=!0),this.calc){var n=this.excludeFromCalcs();this.filter=function(t,i,r){return e==t.get("section")&&-1==n.indexOf(t.get("tag"))}}this.render(),i.channel("merge-tags").trigger("after:filtersearch",e)},searchFilter:function(e){if(this.calc)var t=this.excludeFromCalcs();this.filter=function(n,i,r){var a=n.get("label").toLowerCase().indexOf(e.toLowerCase().replace(":",""))>=0,l=n.get("tag").toLowerCase().indexOf(e.toLowerCase())>=0;return(!this.calc||-1==t.indexOf(n.get("tag")))&&(a||l)},this.render(),i.channel("merge-tags").trigger("after:filtersearch")},excludeFromCalcs:function(){var e=i.channel("fields").request("get:collection"),t=[],n=["product","quantity","total","shipping","date"];return _.each(e.models,(function(e){-1!=n.indexOf(e.get("type"))&&t.push("{field:"+e.get("key")+"}")})),t}})})),n("views/app/drawer/mergeTagGroup",[],(function(){return Marionette.ItemView.extend({tagName:"li",template:"#tmpl-nf-merge-tag-box-section",events:{click:"onClick"},initialize:function(){this.listenTo(i.channel("merge-tags"),"after:filtersearch",this.updateActive)},onClick:function(){this.updateTags()},updateTags:function(){i.channel("merge-tags").request("update:taglist",this.model.get("id"))},updateActive:function(e){this.$el.removeClass("active"),e==this.model.get("id")&&this.$el.addClass("active")},setActive:function(){this.$el.addClass("active"),this.$el.siblings().removeClass("active")}})})),n("views/app/drawer/mergeTagGroupList",["views/app/drawer/mergeTagGroup"],(function(e){return Marionette.CollectionView.extend({tagName:"ul",childView:e,initialize:function(){this.listenTo(i.channel("merge-tags"),"open",this.render,this)},filter:function(e,t,n){return 0<e.get("tags").length}})})),n("views/app/drawer/mergeTagFilter",[],(function(){return Marionette.ItemView.extend({template:"#tmpl-nf-merge-tag-box-filter",events:{"keyup input":"updateFilter"},updateFilter:function(e){if(13==e.keyCode){var t=jQuery("#merge-tags-box .merge-tag-list ul li span").first().data("tag");return i.channel("mergeTags").request("insert:tag",t),jQuery("#merge-tags-box").css("display","none"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),void jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay")}var n=this.$el.find("input").val();i.channel("merge-tags").request("filtersearch",n)}})})),n("views/app/drawer/mergeTagBox",[],(function(){return Marionette.LayoutView.extend({el:"#merge-tags-box",template:"#tmpl-nf-merge-tag-box",regions:{filter:".merge-tag-filter",sections:".merge-tag-sections",tags:".merge-tag-list"}})})),n("controllers/app/mergeTagBox",["models/app/mergeTagModel","models/app/mergeTagLookupCollection","views/app/drawer/mergeTag","views/app/drawer/mergeTagList","views/app/drawer/mergeTagGroup","views/app/drawer/mergeTagGroupList","views/app/drawer/mergeTagFilter","views/app/drawer/mergeTagBox"],(function(e,t,n,r,a,l,s,o){return Marionette.Object.extend({caret:0,old:"",initialize:function(){this.listenTo(i.channel("drawer"),"render:settingGroup",(function(){jQuery(".merge-tags").off("click"),jQuery(".merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("app"),"after:appStart",this.afterAppStart),this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting),this.listenTo(i.channel("drawer"),"before:close",this.beforeDrawerClose);var e=this;i.channel("mergeTags").reply("set:caret",(function(t){e.caret=t})),i.channel("mergeTags").reply("get:caret",(function(){return e.caret}));e=this;i.channel("mergeTags").reply("set:old",(function(t){e.old=t})),i.channel("mergeTags").reply("get:old",(function(){return e.old})),i.channel("mergeTags").reply("insert:tag",this.insertTag.bind(this)),this.listenTo(i.channel("option-repeater"),"add:option",(function(t){var n="#"+t.cid+" .has-merge-tags input.setting";jQuery(n).on("focus",(function(t){e.focusCallback(t,n,"option-repeater")})),jQuery(n).on("keyup",(function(t){e.keyupCallback(t,n,"option-repeater")})),jQuery(n).siblings(".nf-list-options .merge-tags").off("click"),jQuery(n).siblings(".nf-list-options .merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("drawer"),"opened",(function(){jQuery(".nf-list-options .merge-tags").off("click"),jQuery(".nf-list-options .merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("setting-calculations-option"),"render:setting",this.renderSetting),this.listenTo(i.channel("drawer"),"opened",(function(){jQuery(".nf-list-options.calculations .merge-tags").off("click"),jQuery(".nf-list-options.calculations .merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("summernote"),"focus",(function(t,n){e.focusCallback(!1,n,"rte")})),this.listenTo(i.channel("summernote"),"keydown",(function(e,t){jQuery(t).closest(".nf-setting").find(".setting").summernote("saveRange")})),this.listenTo(i.channel("summernote"),"keyup",(function(t,n){e.keyupCallback(t,n,"rte")})),this.listenTo(i.channel("setting-type-rte"),"render:setting",(function(){jQuery(".note-editor .merge-tags").off("click"),jQuery(".note-editor .merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("drawer"),"opened",(function(){jQuery(".note-editor .merge-tags").off("click"),jQuery(".note-editor .merge-tags").on("click",this.mergeTagsButtonClick)})),jQuery(document).on("keyup",(function(e){27==e.keyCode&&(i.channel("mergeTags").request("insert:tag",""),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").blur(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay"))})),this.listenTo(Backbone.Radio.channel("fields"),"add:field",this.afterAppStart),this.listenTo(Backbone.Radio.channel("fields"),"delete:field",this.afterAppStart),this.listenTo(Backbone.Radio.channel("fieldSetting-key"),"update:setting",this.afterAppStart),this.listenTo(Backbone.Radio.channel("calcs"),"update:calc",this.afterAppStart),this.listenTo(Backbone.Radio.channel("app"),"change:currentDomain",this.afterAppStart)},afterAppStart:function(){var e=Backbone.Radio.channel("app").request("get:currentDomain"),n=i.channel("mergeTags").request("get:collection"),a=[];n.each((function(t){t.get("tags").each((function(n){"fields"==e.get("id")&&"{submission:sequence}"==n.get("tag")||a.push({label:n.get("label"),tag:n.get("tag"),section:t.get("id")})}))}));var c=new o;c.render();var d=new t(a),h=new r({collection:d}),u=new l({collection:n});c.getRegion("tags").show(h),c.getRegion("sections").show(u),c.getRegion("filter").show(new s)},beforeRenderSetting:function(e,t){if(void 0!==e.get("use_merge_tags")&&e.get("use_merge_tags")){var n=e.get("name");this.listenTo(i.channel("setting-"+n),"render:setting",this.renderSetting)}},renderSetting:function(e,t,n){n.$el.find(".merge-tags").off("click"),n.$el.find(".merge-tags").on("click",this.mergeTagsButtonClick),0==jQuery("#merge-tags-box").length&&this.afterAppStart(),jQuery("#nf-drawer").on("scroll",(function(){if(0!=jQuery(".merge-tag-focus").length){var e=jQuery(".merge-tag-focus").closest(".nf-setting").find(".note-editor");if(0!=e.length)var t=e.offset().top-jQuery(window).scrollTop(),n=e.outerHeight();else t=jQuery(".merge-tag-focus").offset().top-jQuery(window).scrollTop(),n=jQuery(".merge-tag-focus").outerHeight();var i=t+n,r=window.innerHeight,a=jQuery("#merge-tags-box").outerHeight();i+a>r&&(i=t-a),0>i&&(i=t),jQuery("#merge-tags-box").css("top",i);var l=jQuery("#merge-tags-box").outerHeight();jQuery("#nf-drawer").css("padding-bottom",l+"px");var s=jQuery(".merge-tag-focus").closest(".nf-list-options-tbody");if(0!=s.length){var o=s.offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",o)}else{var c=jQuery(".merge-tag-focus").closest(".nf-settings").offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",c),jQuery("#merge-tags-box").css("width",jQuery(".merge-tag-focus").closest(".nf-settings").width())}}})),jQuery(n.el).find(".setting").on("focus",this.focusCallback),jQuery(n.el).find(".setting").on("keyup",this.keyupCallback)},beforeDrawerClose:function(){jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close")},insertTag:function(e){var t=jQuery(".merge-tag-focus");if(0!=t.closest(".nf-setting").first().find(".note-editable").length&&(t=t.closest(".nf-setting").first().find(".note-editable")),1<t.length&&(t=t.first()),t.hasClass("note-editable"))var n=t.closest(".nf-setting").find(".setting").summernote("code");else n=t.val();for(var r=i.channel("mergeTags").request("get:old"),a=e,l=i.channel("mergeTags").request("get:caret"),s=/{([a-zA-Z0-9]|:|_||-})*/g;match=s.exec(n);)if(r==match[0]){var o=n.slice(0,match.index)+a+n.slice(s.lastIndex);if(t.hasClass("note-editable")){t.closest(".nf-setting").find(".setting").summernote("code",o);var c=t,d=null;_.each(c[0].childNodes,(function(e,t){if(!d&&(e.nodeValue||e.innerHTML)){if(e.nodeValue)var n=e.nodeValue;else if(e.innerHTML)n=e.innerHTML;if(-1!=n.indexOf(a)){var i=(n=n.replace(/&nbsp;/g," ")).indexOf(a)+r.length;-1==l&&(l=n.indexOf(a)+1),l==i&&(d=c[0].childNodes[t])}}})),d||(d=c[0].childNodes[0]);var h=l-r.length+a.length,u=document.createRange(),p=window.getSelection();if(0!=d.childNodes.length)try{u.setStart(d.childNodes[0],h)}catch(e){console.log(d),console.log("error")}else try{u.setStart(d,h)}catch(e){console.log("error")}u.collapse(!0),p.removeAllRanges(),p.addRange(u)}else t.val(o),t.change(),t.caret(l-r.length+a.length)}jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),t.removeClass("merge-tag-focus"),t.closest(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay")},mergeTagsButtonClick:function(e){var t=jQuery(this);if(!t.hasClass("open-media-manager")){if(t.siblings().hasClass("merge-tag-focus"))return i.channel("mergeTags").request("insert:tag",""),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),void jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay");if(0!==t.closest(".nf-setting, .nf-table-row").find(".note-tools").length){var n=t.closest(".note-editor").siblings(".setting").first();t.closest(".nf-setting").find(".setting").summernote("insertText","{"),i.channel("mergeTags").request("set:caret",-1)}else{var r=(n=t.siblings(".setting").first()).val()||"";n.val(r+"{").change(),i.channel("mergeTags").request("set:caret",r.length+1)}t.parent().hasClass("note-tools"),i.channel("mergeTags").request("set:old","{"),n.addClass("merge-tag-focus");var a=t.attr("autocomplete");t.attr("autocomplete","off"),t.data("autocomplete",a);var l=t.closest(".nf-setting, .nf-table-row");if(0!=l.find(".note-editor").length?l.find(".note-editor").addClass("merge-tag-focus-overlay"):l.addClass("merge-tag-focus-overlay"),"eq"==jQuery(e.target).prev("textarea").data("id"))var s=!0;else s=!1;i.channel("merge-tags").request("update:taglist","fields",s),jQuery("#merge-tags-box").css("display","block"),i.channel("drawer").request("prevent:close"),jQuery(".merge-tag-focus-overlay").off("click"),jQuery(".merge-tag-focus-overlay").on("click",(function(e){jQuery(e.target).hasClass("note-editor")&&(i.channel("mergeTags").request("insert:tag",""),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay"))})),setTimeout((function(){jQuery("#merge-tags-box").find(".merge-tag-filter").find("input").focus()}),500)}},focusCallback:function(e,t,n){n=n||"setting";var i=void 0===t?jQuery(this):jQuery(t);if(jQuery(".merge-tag-focus").each((function(e,t){this!=t&&t.removeClass("merge-tag-focus")})),"rte"==n)var r=i.closest(".nf-setting").find(".note-editor").offset().top-jQuery(window).scrollTop(),a=i.closest(".nf-setting").find(".note-editor").outerHeight();else r=i.offset().top-jQuery(window).scrollTop(),a=i.outerHeight();var l=r+a,s=window.innerHeight,o=jQuery("#merge-tags-box").outerHeight();l+o>s&&(l=r-o),0>l&&(l=r),jQuery("#merge-tags-box").css("top",l);var c=i.closest(".nf-list-options-tbody");if(0!=c.length){var d=c.offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",d)}else if("rte"==n){var h=i.closest(".nf-setting").find(".note-editor").offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",h),jQuery("#merge-tags-box").css("width",i.closest(".nf-setting").find(".note-editor").width())}else{h=jQuery(this).closest(".nf-settings").offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",h),jQuery("#merge-tags-box").css("width",i.closest(".nf-settings").width())}jQuery(this).data("id")},keyupCallback:function(e,t,n){n=n||"setting";if(13==e.keyCode){var r=jQuery("#merge-tags-box .merge-tag-list ul li span").first().data("tag");return i.channel("mergeTags").request("insert:tag",r),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),void jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay")}if(void 0!==t)var a=jQuery(t);else a=jQuery(this);var l=jQuery(this).data("id");if(!l||"eq"!=l){if("rte"==n){var s=a.summernote("createRange");if(s)var o=s.so;else o=0;a.closest(".nf-setting").find(".setting").summernote("saveRange")}else o=a.caret();if(i.channel("mergeTags").request("set:caret",o),"rte"==n)var c=a.summernote("code").match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));else c=a.val().match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));if(0!==(c=_.filter(c,(function(e){return-1==e.indexOf("}")}))).length){i.channel("mergeTags").request("set:old",c[0]),jQuery("#merge-tags-box").css("display","block"),i.channel("drawer").request("prevent:close"),a.addClass("merge-tag-focus");var d=jQuery("#merge-tags-box").outerHeight();jQuery("#nf-drawer").css("padding-bottom",d+"px");var h=a.attr("autocomplete");a.attr("autocomplete","off"),a.data("autocomplete",h);var u=a.closest(".nf-setting, .nf-table-row");0!=u.find(".note-editor").length?u.find(".note-editor").addClass("merge-tag-focus-overlay"):u.addClass("merge-tag-focus-overlay"),u.off("click"),u.on("click",(function(e){-1!==(jQuery(e.target).attr("class")||[]).indexOf("merge-tag-focus-overlay")&&(i.channel("mergeTags").request("insert:tag",""),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay"))}));c[0].replace("{","")}else jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay")}}})})),n("controllers/app/itemSettingFill",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t){e.get("fill")}})})),n("controllers/app/confirmPublish",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:confirmPublish",this.confirmPublish)},confirmPublish:function(){var e=i.channel("app").request("get:formModel");1==e.get("settings").get("add_submit")&&i.channel("fields").request("add",{type:"submit",label:"Submit",order:9999}),e.set("show_publish_options",!1),i.channel("app").request("update:db","publish")}})})),n("controllers/app/rte",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("setting-type-rte").reply("renderOnChange",(function(){return!1})),this.listenTo(i.channel("rte"),"init:settingModel",this.initSettingModel),this.listenTo(i.channel("setting-type-rte"),"render:setting",this.renderSetting),this.listenTo(i.channel("setting-type-rte"),"destroy:setting",this.destroySetting),this.listenTo(i.channel("setting-type-rte"),"click:extra",this.clickExtra),this.meta_image_frame,jQuery.summernote.options.icons={align:"dashicons dashicons-editor-alignleft",alignCenter:"dashicons dashicons-editor-aligncenter",alignJustify:"dashicons dashicons-editor-justify",alignLeft:"dashicons dashicons-editor-alignleft",alignRight:"dashicons dashicons-editor-alignright",indent:"dashicons dashicons-editor-indent",outdent:"dashicons dashicons-editor-outdent",bold:"dashicons dashicons-editor-bold",caret:"dashicons dashicons-arrow-down",close:"dashicons dashicons-dismiss",code:"dashicons dashicons-editor-code",eraser:"dashicons dashicons-editor-removeformatting",italic:"dashicons dashicons-editor-italic",link:"dashicons dashicons-admin-links",unlink:"dashicons dashicons-editor-unlink",magic:"dashicons dashicons-editor-paragraph",minus:"dashicons dashicons-minus",orderedlist:"dashicons dashicons-editor-ol",redo:"dashicons dashicons-redo",square:"dashicons fa-square",table:"dashicons dashicons-editor-table",underline:"dashicons dashicons-editor-underline",undo:"dashicons dashicons-undo",unorderedlist:"dashicons dashicons-editor-ul"},this.currentContext={}},initSettingModel:function(e){e.set("hide_merge_tags",!0)},initRTE:function(e,t,n){var r=this,a=this.mergeTags();jQuery(n.el).find("div.setting").summernote({toolbar:[["paragraphStyle",["style"]],["fontStyle",["bold","italic","underline","clear"]],["lists",["ul","ol"]],["paragraph",["paragraph"]],["customGroup",["linkButton","unlink"]],["table",["table"]],["actions",["undo","redo"]],["tools",["mediaButton","mergeTags","codeview"]]],buttons:{linkButton:function(e){return r.linkButton(e)},mergeTags:a,mediaButton:function(e){return r.mediaButton(e)}},height:150,codemirror:{theme:"monokai",lineNumbers:!0,lineWrapping:!0,callbacks:{onBlur:function(n){var i=n.getValue();r.updateDataModel(e,t,i)}}},prettifyHtml:!0,callbacks:{onBlur:function(n,a){var l=jQuery(this).summernote("code");r.updateDataModel(e,t,l),i.channel("summernote").trigger("blur",e,t,l)},onFocus:function(e,t){i.channel("summernote").trigger("focus",e,this,t)},onKeydown:function(e,t){i.channel("summernote").trigger("keydown",e,this,t)},onKeyup:function(e,t){i.channel("summernote").trigger("keyup",e,this,t)}}})},updateDataModel:function(e,t,n){var r=e.get("name"),a=t.get(r),l=n,s={attr:r,before:a,after:l},o={object:t.get("objectType"),label:t.get("label"),change:"Changed "+e.get("label")+" from "+a+" to "+l};i.channel("changes").request("register:change","changeSetting",t,s,o),t.set(e.get("name"),l)},renderSetting:function(e,t,n){this.initRTE(e,t,n);var i=jQuery(n.el).find(".link-button").next(".dropdown-menu").find("button");i.replaceWith((function(){return jQuery("<div/>",{class:jQuery(i).attr("class"),html:this.innerHTML})}))},destroySetting:function(e,t,n){this.removeRTE(e,t,n)},removeRTE:function(e,t,n){jQuery(n.el).find("div.setting").summernote("destroy")},drawerOpened:function(e,t,n){this.initRTE(e,t,n)},linkButton:function(e){var t=this,n=jQuery.summernote.ui,r=i.channel("app").request("get:template","#tmpl-nf-rte-link-button"),a=i.channel("app").request("get:template","#tmpl-nf-rte-link-dropdown");return n.buttonGroup([n.button({className:"dropdown-toggle link-button",contents:r({}),tooltip:"Insert Link",click:function(n){t.clickLinkButton(n,e)},data:{toggle:"dropdown"}}),n.dropdown([n.buttonGroup({children:[n.button({contents:a({}),tooltip:""})]})])]).render()},mergeTags:function(e){var t=jQuery.summernote.ui,n=i.channel("app").request("get:template","#tmpl-nf-rte-merge-tags-button");return t.button({className:"dropdown-toggle merge-tags",contents:n({}),tooltip:"Merge Tags"}).render()},mediaButton:function(e){var t=this,n=jQuery.summernote.ui,r=i.channel("app").request("get:template","#tmpl-nf-rte-media-button");return n.button({className:"dropdown-toggle",contents:r({}),tooltip:"Insert Media",click:function(n){t.openMediaManager(n,e)}}).render()},openMediaManager:function(e,t){if(t.invoke("editor.createRange"),t.invoke("editor.saveRange"),this.currentContext=t,this.meta_image_frame)this.meta_image_frame.open();else{this.meta_image_frame=wp.media.frames.meta_image_frame=wp.media({title:"Select a file",button:{text:"insert"}});var n=this;this.meta_image_frame.on("select",(function(){var e=n.meta_image_frame.state().get("selection").first().toJSON();n.insertMedia(e,t)})),this.meta_image_frame.open()}},clickLinkButton:function(e,t){var n=t.invoke("editor.createRange");t.invoke("editor.saveRange");var i=n.toString();this.currentContext=t,jQuery(e.target).closest(".note-customGroup > .note-btn-group").on("hide.bs.dropdown",(function(e){return!1})),jQuery(e.target).closest(".note-customGroup > .note-btn-group").on("shown.bs.dropdown",(function(e){jQuery(e.target).parent().parent().find(".link-text").val(i),jQuery(e.target).parent().parent().find(".link-url").focus()}))},clickExtra:function(e,t,n,i){var r=jQuery(e.target).parent().find(".link-text"),a=jQuery(e.target).parent().find(".link-url"),l=jQuery(e.target).parent().find(".link-new-window");if(this.currentContext.invoke("editor.restoreRange"),jQuery(e.target).hasClass("insert-link")){var s=r.val(),o=a.val(),c=!!l.prop("checked");0!=s.length&&0!=o.length&&this.currentContext.invoke("editor.createLink",{text:s,url:o,isNewWindow:c})}r.val(""),a.val(""),l.prop("checked",!1),jQuery(e.target).closest("div.note-btn-group.open").removeClass("open")},insertMedia:function(e,t){this.currentContext.invoke("editor.restoreRange"),"image"==e.type?this.currentContext.invoke("editor.insertImage",e.url):this.currentContext.invoke("editor.createLink",{text:e.title||e.filename,url:e.url})}})})),n("controllers/app/settingFieldSelect",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("field-select"),"init:settingModel",this.trackKeyChanges),this.listenTo(i.channel("setting-type-field-select"),"before:renderSetting",this.beforeRender),this.listenTo(i.channel("field-select"),"init:settingModel",(function(){this.listenTo(i.channel("app"),"change:setting",this.maybeSwitchToFieldsDomain)})),this.listenTo(i.channel("app"),"change:currentDomain",this.autoOpenDrawer),this.listenTo(i.channel("drawer"),"opened",this.filterDrawerContents),this.listenTo(i.channel("drawer"),"closed",this.SwitchToFieldsDomain)},trackKeyChanges:function(e){e.listenTo(i.channel("app"),"update:fieldKey",e.updateKey),this.listenTo(i.channel("app"),"replace:fieldKey",this.updateFieldMap)},updateFieldMap:function(e,t,n){var i=t._previousAttributes.key,r=t.get("key");"field-select"==n.get("type")&&e.get(n.get("name"))==i&&e.set(n.get("name"),r)},beforeRender:function(e,t){var n=i.channel("fields").request("get:collection"),r=e.get("field_types"),a=[{label:"--",value:0}];_.each(n.models,(function(n){if(t.cid!=n.cid&&(void 0===r||0==r.length||_.contains(r,n.get("type")))){var i=e.get("field_filter");if(i&&void 0!==i[n.get("type")]){var l=!1;if(_.each(i[n.get("type")],(function(e,t){console.log(e+":"+n.get(t)),e!=n.get(t)&&(l=!0)})),l)return}var s=n.get("key");if("key"===e.get("field_value_format"))s=n.get("key");else s="{field:"+n.get("key")+"}";a.push({label:n.get("label"),value:s})}})),void 0!==r&&0!=r.length&&_.each(r,(function(e){var t=i.channel("fields").request("get:type",e);a.push({label:"-- Add "+t.get("nicename")+" Field",value:"addField:"+e})})),e.set("options",a)},maybeSwitchToFieldsDomain:function(e,t,n){if("field-select"==t.get("type")){var r=t.get("name"),a=n.get(r);if(a){var l=a.split(":");"addField"==l[0]&&(this.openDrawer="addField",this.filterDrawer=l[1],n.set(r,""),this.switchDomain=!0,i.channel("app").request("close:drawer"))}}},SwitchToFieldsDomain:function(){if(this.switchDomain){var e=i.channel("app").request("get:domainModel","fields");i.channel("app").request("change:currentDomain",null,e),this.switchDomain=null}},autoOpenDrawer:function(){this.openDrawer&&(i.channel("app").request("open:drawer",this.openDrawer),this.openDrawer=null)},filterDrawerContents:function(){this.filterDrawer&&(i.channel("drawer-addField").trigger("change:filter",this.filterDrawer),this.filterDrawer=null)}})})),n("controllers/app/settingFieldList",["views/app/drawer/typeSettingFieldset","models/app/settingCollection"],(function(e,t){return Marionette.Object.extend({fieldListSettings:[],initialize:function(){this.listenTo(i.channel("field-list"),"init:settingModel",this.registerFieldListSettings),this.listenTo(i.channel("fields"),"update:setting",this.updateFieldListSettingKeys),i.channel("field-list").reply("get:settingChildView",this.getSettingChildView,this)},registerFieldListSettings:function(e){this.fieldListSettings.push(e.get("name"))},updateFieldListSettingKeys:function(e){if(void 0!==e.changed.key){var t=e._previousAttributes.key,n=e.changed.key,i=this;_.each(Backbone.Radio.channel("actions").request("get:collection").models,(function(e){_.each(e.attributes,(function(r,a){var l="";_.each(i.fieldListSettings,(function(i){if(a==i+"-"+t&&l!=t){var r=e.get(i+"-"+t);e.set(i+"-"+n,r),e.set(i+"-"+t,0),l=t}}))}))}))}},getSettingChildView:function(n){var r=_.filter(i.channel("fields").request("get:collection").models,(function(e){return _.contains(n.get("field_types"),e.get("type"))})),a=_.map(r,(function(e){return{name:n.get("name")+"-"+e.get("key"),type:"toggle",label:e.get("label"),width:"full"}}));return n.set("settings",new t(a)),e}})})),n("controllers/app/settingHTML",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-type-html"),"before:renderSetting",this.init)},init:function(e,t){"undefined"!=e.get("mirror")&&t.on("change:"+e.get("mirror"),this.update,e)},update:function(e,t){e.set(this.get("name"),t)}})})),n("controllers/app/settingColor",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("setting-type-color").reply("renderOnChange",this.setRenderFalse),this.listenTo(i.channel("setting-type-color"),"destroy:setting",this.closeColorPickers),this.listenTo(i.channel("setting-type-color"),"render:setting",this.initColorPicker)},initColorPicker:function(e,t,n){e.get("name");var r=jQuery(n.el).find("input");jQuery(r).wpColorPicker({change:function(n,r){i.channel("app").request("change:setting",n,e,t,r.color.toString())}})},setRenderFalse:function(){return!1},closeColorPickers:function(e,t,n){jQuery(n.el).find(".wp-color-picker").wpColorPicker("close")}})})),n("controllers/app/changeMenu",[],(function(){return Marionette.Object.extend({editFormText:"",initialize:function(){this.editFormText=nfAdmin.editFormText||"Edit Form",this.listenTo(i.channel("app"),"after:appStart",this.changeMenu),this.listenTo(i.channel("app"),"response:updateDB",this.formPublish)},changeMenu:function(){var e=i.channel("app").request("get:formModel");this.isNewForm(e.id)?this.highlightAddNew():this.appendEditForm()},isNewForm:function(e){return isNaN(e)},highlightAddNew:function(){jQuery(".wp-submenu li").removeClass("current"),jQuery('a[href="admin.php?page=ninja-forms&form_id=new"]').parent().addClass("current")},appendEditForm:function(){var e,t,n;jQuery('li a:contains("'+this.editFormText+'")').length>0||(e=document.createTextNode(this.editFormText),(t=document.createElement("a")).appendChild(e),(n=document.createElement("li")).appendChild(t),n.classList.add("current"),jQuery(".wp-submenu li").removeClass("current"),jQuery('a[href="admin.php?page=ninja-forms#new-form"]').parent().after(n))},formPublish:function(e){if("publish"!==e.action)return!1;this.changeMenu()}})})),n("controllers/app/mobile",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:menu",this.closeMobileMenu)},closeMobileMenu:function(){var e=i.channel("app").request("get:builderEl");jQuery(e).removeClass("nf-menu-expand")}})})),n("controllers/app/notices",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("notices").reply("add",this.addNotice,this),i.channel("notices").reply("close",this.closeNotice,this),this.notices={}},addNotice:function(e,t,n){var r={content:t,color:"green",zIndex:1e7,constructOnInit:!0,stack:!0,animation:{open:"flip",close:"flip"}};if(i.channel("app").request("is:mobile"))var a={position:{x:"center",y:"top"},animation:{open:"slide:top",close:"slide:left"},autoClose:2e3,offset:{x:0,y:55}};else a={attributes:{x:"left",y:"bottom"},autoClose:4e3};a=jQuery.extend(a,r);n=jQuery.extend(a,n);this.notices[e]=new jBox("Notice",n)},closeNotice:function(e){void 0!==this.notices[e]&&this.notices[e].close()},openNotice:function(e){void 0!==this.notices[e]&&this.notices[e].open()}})})),n("controllers/app/unloadCheck",[],(function(){return Marionette.Object.extend({initialize:function(){jQuery(window).bind("beforeunload",this.maybePrompt)},maybePrompt:function(e){if(!i.channel("app").request("get:setting","clean"))return"You have unsaved changes."}})})),n("controllers/app/formContentFilters",[],(function(){return Marionette.Object.extend({initialize:function(){this.viewFilters=[],this.saveFilters=[],this.loadFilters=[],i.channel("formContent").reply("add:viewFilter",this.addViewFilter,this),i.channel("formContent").reply("add:saveFilter",this.addSaveFilter,this),i.channel("formContent").reply("add:loadFilter",this.addLoadFilter,this),i.channel("formContent").reply("get:viewFilters",this.getViewFilters,this),i.channel("formContent").reply("get:saveFilters",this.getSaveFilters,this),i.channel("formContent").reply("get:loadFilters",this.getLoadFilters,this),i.channel("fieldContents").reply("add:viewFilter",this.addViewFilter,this),i.channel("fieldContents").reply("add:saveFilter",this.addSaveFilter,this),i.channel("fieldContents").reply("add:loadFilter",this.addLoadFilter,this),i.channel("fieldContents").reply("get:viewFilters",this.getViewFilters,this),i.channel("fieldContents").reply("get:saveFilters",this.getSaveFilters,this),i.channel("fieldContents").reply("get:loadFilters",this.getLoadFilters,this)},addViewFilter:function(e,t){this.viewFilters[t]=e},getViewFilters:function(){return this.viewFilters},addSaveFilter:function(e,t){this.saveFilters[t]=e},getSaveFilters:function(){return this.saveFilters},addLoadFilter:function(e,t){this.loadFilters[t]=e},getLoadFilters:function(){return this.loadFilters}})})),n("controllers/app/formContentGutterFilters",[],(function(){return Marionette.Object.extend({initialize:function(){this.leftFilters=[],this.rightFilters=[],i.channel("formContentGutters").reply("add:leftFilter",this.addLeftFilter,this),i.channel("formContentGutters").reply("add:rightFilter",this.addRightFilter,this),i.channel("formContentGutters").reply("get:leftFilters",this.getLeftFilters,this),i.channel("formContentGutters").reply("get:rightFilters",this.getRightFilters,this)},addLeftFilter:function(e,t){this.leftFilters[t]=e},addRightFilter:function(e,t){this.rightFilters[t]=e},getLeftFilters:function(){return this.leftFilters},getRightFilters:function(){return this.rightFilters}})})),n("controllers/app/cloneCollectionDeep",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("clone:collectionDeep",this.cloneCollectionDeep,this)},cloneCollectionDeep:function(e){var t=[];return _.each(e.models,(function(e){var n=i.channel("app").request("clone:modelDeep",e);t.push(n)})),new e.constructor(t,e.options)}})})),n("controllers/app/trackKeyDown",[],(function(){return Marionette.Object.extend({keys:[],initialize:function(){var e=this;jQuery(document).on("keydown",(function(t){e.keyDown(t,e)})),jQuery(document).on("keyup",(function(t){e.keyUp(t,e)})),i.channel("app").reply("get:keydown",this.getKeyDown,this)},keyDown:function(e,t){t.keys[e.keyCode]=e.keyCode},keyUp:function(e,t){-1!=t.keys.indexOf(e.keyCode)&&delete t.keys[e.keyCode]},getKeyDown:function(){return this.keys}})})),n("controllers/app/perfectScroll",[],(function(){return Marionette.Object.extend({movedPos:!1,initialize:function(){this.listenTo(i.channel("main"),"show:main",this.initPerfectScroll),this.listenTo(i.channel("drawer"),"opened",this.moveRail),this.listenTo(i.channel("drawer"),"before:closeDrawer",this.resetRail)},initPerfectScroll:function(e){i.channel("app").request("is:mobile")||jQuery(e.el).parent().perfectScrollbar({suppressScrollX:!0}),jQuery("head").append('<style id="ps-scrollbar-css" type="text/css"></style>')},moveRail:function(){var e=i.channel("app").request("get:drawerEl"),t=jQuery(e).outerWidth();jQuery("#ps-scrollbar-css").text(".ps-scrollbar-moved { right: "+t+"px !important; } "),jQuery("#nf-main .ps-scrollbar-y-rail").addClass("ps-scrollbar-moved ")},resetRail:function(){jQuery(".ps-scrollbar-y-rail").removeClass("ps-scrollbar-moved ")}})})),n("controllers/app/getNewSettingGroupCollection",["models/app/settingGroupCollection"],(function(e){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("get:settingGroupCollectionDefinition",this.getNewSettingGroupCollection,this)},getNewSettingGroupCollection:function(){return e}})})),n("controllers/app/settingMedia",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-type-media"),"click:extra",this.clickExtra)},clickExtra:function(e,t,n,i){var r=jQuery(e.target).parent().find(".setting");if(jQuery(e.target).hasClass("open-media-manager")){if(this.meta_image_frame)return void this.meta_image_frame.open();this.meta_image_frame=wp.media.frames.meta_image_frame=wp.media({title:"Select a file",button:{text:"insert"}});var a=this;this.meta_image_frame.on("select",(function(){var e=a.meta_image_frame.state().get("selection").first().toJSON();r.val(e.url).change()})),this.meta_image_frame.open()}}})})),n("controllers/app/publicLink",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"after:appStart",this.validatePublicLink,this),i.channel("app").reply("generate:publicLinkKey",this.newPublicLinkKey,this)},newPublicLinkKey:function(){for(var e=i.channel("settings").request("get:settings"),t=i.channel("app").request("get:formModel").get("id"),n=0;n<4;n++){t+=Math.random().toString(36).slice(-1)}return e.set("public_link_key",t),t},validatePublicLink:function(){var e=i.channel("app").request("get:formModel").get("id"),t=i.channel("settings").request("get:settings");if(void 0===t.get("public_link_key"))return!1;if(0===t.get("public_link_key").indexOf(e))return!1;var n=this.newPublicLinkKey(),r=nfAdmin.publicLinkStructure.replace("[FORM_ID]",n);t.set("public_link",r)}})})),n("models/fields/typeSectionModel",[],(function(){return Backbone.Model.extend({defaults:{classes:""}})})),n("models/fields/typeSectionCollection",["models/fields/typeSectionModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("controllers/fields/types",["models/app/typeCollection","models/fields/typeSectionCollection"],(function(e,t){return Marionette.Object.extend({initialize:function(){this.sections=new t(fieldTypeSections),this.listenTo(i.channel("fields"),"init:typeModel",this.registerSection),this.collection=new e(fieldTypeData,{type:"fields"}),i.channel("fields").reply("get:type",this.getFieldType,this),i.channel("fields").reply("get:typeCollection",this.getTypeCollection,this),i.channel("fields").reply("get:typeSections",this.getTypeSections,this),i.channel("fields").reply("get:savedFields",this.getSavedFields,this),this.listenTo(i.channel("drawer"),"click:fieldType",this.addField)},registerSection:function(e){"fields"==e.collection.type&&e.get("section")&&this.sections.get(e.get("section")).get("fieldTypes").push(e.get("id"))},getFieldType:function(e){return this.collection.get(e)},getTypeCollection:function(e){return this.collection},addField:function(e){var t=jQuery(e.target).data("id");if(e.shiftKey)i.channel("fields").request("add:stagedField",t);else{var n=i.channel("fields").request("add",{type:t,label:i.channel("fields").request("get:type",t).get("nicename")});console.log(n);var r={object:"Field",label:n.get("label"),change:"Added",dashicon:"plus-alt"},a={collection:i.channel("fields").request("get:collection")};i.channel("changes").request("register:change","addObject",n,null,r,a),i.channel("fields").request("redraw:collection")}},getTypeSections:function(){return this.sections},getSavedFields:function(){this.sections.get("saved")}})})),n("controllers/fields/fieldTypeDrag",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"startDrag:type",this.startDrag),this.listenTo(i.channel("drawer-addField"),"stopDrag:type",this.stopDrag),i.channel("drawer-addField").reply("get:typeHelperClone",this.getCurrentDraggableHelperClone,this)},startDrag:function(e,t){this.drawerEl=i.channel("app").request("get:drawerEl"),this.mainEl=i.channel("app").request("get:mainEl"),jQuery(this.drawerEl)[0].style.setProperty("overflow","visible","important"),this.draggableHelperClone=jQuery(t.helper).clone()},stopDrag:function(e,t){jQuery(this.drawerEl)[0].style.setProperty("overflow","hidden","important")},getCurrentDraggableHelperClone:function(){return this.draggableHelperClone}})})),n("controllers/fields/stagingDrag",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"startDrag:fieldStaging",this.startDrag),this.listenTo(i.channel("drawer-addField"),"stopDrag:fieldStaging",this.stopDrag)},startDrag:function(e,t){this.drawerEl=i.channel("app").request("get:drawerEl"),this.mainEl=i.channel("app").request("get:mainEl"),jQuery(this.drawerEl)[0].style.setProperty("overflow","visible","important");var n=i.channel("fields").request("get:staging"),r=i.channel("app").request("get:template","#tmpl-nf-staged-fields-drag");jQuery(t.helper).html(r({num:n.models.length})),jQuery(t.helper).prop("id","nf-staged-fields-drag"),jQuery(t.item).css("opacity","0.7")},stopDrag:function(e,t){jQuery(this.drawerEl)[0].style.setProperty("overflow","hidden","important")}})})),n("controllers/fields/staging",["models/fields/stagingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.collection=new e,i.channel("fields").reply("add:stagedField",this.addStagedField,this),i.channel("fields").reply("remove:stagedField",this.removeStagedField,this),i.channel("fields").reply("get:staging",this.getStagingCollection,this),i.channel("fields").reply("sort:staging",this.sortStagedFields,this),i.channel("fields").reply("clear:staging",this.clearStagedFields,this),this.listenTo(i.channel("drawer-addField"),"click:removeStagedField",this.removeStagedField),this.listenTo(i.channel("drawer-addField"),"before:closeDrawer",this.beforeCloseDrawer)},getStagingCollection:function(){return this.collection},addStagedField:function(e,t){t=t||!1;var n=i.channel("fields").request("get:type",e),r="nf-staged-field-"+jQuery.now(),a={id:r,slug:n.get("type"),nicename:n.get("nicename"),icon:n.get("icon")},l=this.collection.add(a);return t||i.channel("fields").trigger("add:stagedField",l),r},removeStagedField:function(e,t){this.collection.remove(t),i.channel("fields").trigger("remove:stagedField",t)},beforeCloseDrawer:function(){if(0!=this.collection.models.length){var e=i.channel("fields").request("get:collection");_.each(this.collection.models,(function(t){var n={id:i.channel("fields").request("get:tmpID"),label:t.get("nicename"),type:t.get("slug")},r=i.channel("fields").request("add",n,!1),a={object:"Field",label:r.get("label"),change:"Added",dashicon:"plus-alt"},l={collection:e};i.channel("changes").request("register:change","addObject",r,null,a,l)})),e.trigger("reset",e),this.collection.reset()}i.channel("fields").request("sort:fields",null,null,!1)},sortStagedFields:function(){var e=i.channel("app").request("get:stagedFieldsEl"),t=jQuery(e).sortable("toArray");_.each(this.collection.models,(function(e){var n=e.get("id"),i=t.indexOf(n);e.set("order",i)})),this.collection.sort()},clearStagedFields:function(){this.collection.reset()}})})),n("controllers/fields/stagingSortable",["models/fields/stagingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"receive:stagedFields",this.receiveStagedFields),this.listenTo(i.channel("drawer-addField"),"over:stagedFields",this.overStagedFields),this.listenTo(i.channel("drawer-addField"),"out:stagedFields",this.outStagedFields),this.listenTo(i.channel("drawer-addField"),"start:stagedFields",this.startStagedFields),this.listenTo(i.channel("drawer-addField"),"stop:stagedFields",this.stopStagedFields)},receiveStagedFields:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=jQuery(e.item).data("id"),n=i.channel("fields").request("add:stagedField",t);jQuery(e.helper).prop("id",n),i.channel("fields").request("sort:staging"),jQuery(e.helper).remove(),i.channel("drawer-addField").trigger("drop:fieldType",t)}},addActiveClass:function(){var e=i.channel("app").request("get:stagedFieldsEl");jQuery(e).addClass("nf-droppable-active")},removeActiveClass:function(){var e=i.channel("app").request("get:stagedFieldsEl");jQuery(e).removeClass("nf-droppable-active")},overStagedFields:function(e,t){if(jQuery(t.item).hasClass("nf-field-type-draggable")){var n=jQuery(t.item).data("id"),r=i.channel("fields").request("get:type",n).get("nicename");this.currentHelper=t.helper,jQuery(t.helper).html(r+'<span class="dashicons dashicons-dismiss"></span>'),jQuery(t.helper).removeClass("nf-field-type-button").addClass("nf-item-dock").css({opacity:"0.8",width:"",height:""});var a=i.channel("app").request("get:stagedFieldsEl");jQuery(a).hasClass("ui-sortable")&&jQuery(a).addClass("nf-droppable-hover")}},outStagedFields:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=i.channel("drawer-addField").request("get:typeHelperClone");jQuery(this.currentHelper).html(jQuery(t).html()),jQuery(this.currentHelper).removeClass("nf-item-dock").addClass("nf-field-type-button");var n=i.channel("app").request("get:stagedFieldsEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}},startStagedFields:function(e){jQuery(e.item).show(),jQuery(e.item).css({display:"inline",opacity:"0.7"}),jQuery(e.helper).css("opacity","0.5")},stopStagedFields:function(e){jQuery(e.item).css("opacity",""),jQuery(e.helper).remove()}})})),n("controllers/fields/filterTypes",["models/fields/typeSectionCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"change:filter",this.filterFieldTypes)},filterFieldTypes:function(t,n){if(""!=jQuery.trim(t)){var r=[];_.each(this.filterCollection(t),(function(e){r.push(e.get("id"))}));var a=new e([{id:"filtered",nicename:"Filtered Fields",fieldTypes:r}]),l=i.channel("app").request("update:hiddenFields")||[];l=l.concat(["product","quantity","shipping","total","button"]);for(var s=a.models[0].get("fieldTypes").length-1;s>=0;s--){-1<l.indexOf(a.models[0].get("fieldTypes")[s])&&a.models[0].get("fieldTypes").splice(s,1)}i.channel("drawer").trigger("filter:fieldTypes",a),void 0!==n&&n.addObject&&0<r.length&&(i.channel("fields").request("add:stagedField",r[0]),i.channel("drawer").request("clear:filter"))}else i.channel("drawer").trigger("clear:filter")},filterCollection:function(e){return e=e.toLowerCase(),i.channel("fields").request("get:typeCollection").filter((function(t){var n=!1;return(-1!=t.get("type").toLowerCase().indexOf(e)||-1!=t.get("nicename").toLowerCase().indexOf(e))&&(n=!0),t.get("tags")&&0==e.indexOf("#")&&_.each(t.get("tags"),(function(t){e.replace("#","").length>1&&-1!=t.toLowerCase().indexOf(e.replace("#",""))&&(n=!0)})),t.get("alias")&&_.each(t.get("alias"),(function(t){-1!=t.toLowerCase().indexOf(e)&&(n=!0)})),n}))}})})),n("views/fields/preview/element",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-field-input",initialize:function(){var e=this.model.get("type");if(this.model.set("value",this.model.get("default")),"date"==e&&this.model.get("date_default")){var t=this.model.get("date_format");"default"!=t&&""!=t||(t=this.convertDateFormat(nfAdmin.dateFormat)),this.model.set("value",moment().format(t))}"phone"==e&&(e="tel"),"spam"==e&&(e="input"),"confirm"==e&&(e="input"),"password"==e&&(e="input"),"passwordconfirm"==e&&(e="input"),"quantity"==e&&(e="number"),"terms"==e&&(e="listcheckbox"),"liststate"==e&&(e="listselect"),"listcountry"==e&&(e="listselect"),"listmultiselect"==e&&(e="listselect"),"save"==e&&(e="submit"),1==jQuery("#tmpl-nf-builder-field-"+e).length?this.template="#tmpl-nf-builder-field-"+e:this.template="#tmpl-nf-field-"+e},onRender:function(){this.model.get("container_class").includes("two-col-list")&&(jQuery(this.el).find("> ul").css("display","grid"),jQuery(this.el).find("> ul").css("grid-template-columns","repeat(2, 1fr)")),this.model.get("container_class").includes("three-col-list")&&(jQuery(this.el).find("> ul").css("display","grid"),jQuery(this.el).find("> ul").css("grid-template-columns","repeat(3, 1fr)")),this.model.get("container_class").includes("four-col-list")&&(jQuery(this.el).find("> ul").css("display","grid"),jQuery(this.el).find("> ul").css("grid-template-columns","repeat(4, 1fr)"))},templateHelpers:function(){return{renderClasses:function(){},renderPlaceholder:function(){if(void 0!==this.placeholder)return'placeholder="'+jQuery.trim(_.escape(this.placeholder))+'"'},maybeDisabled:function(){if(void 0!==this.disable_input&&this.disable_input)return'disabled="disabled"'},maybeRequired:function(){},maybeInputLimit:function(){},maybeDisableAutocomplete:function(){},maybeChecked:function(){if("checked"==this.default_value)return' checked="checked"'},renderOptions:function(){switch(this.type){case"terms":if(!this.taxonomy)return"(No taxonomy selected)";var e=fieldTypeData.find((function(e){return"terms"==e.id})).settingGroups.find((function(e){return"primary"==e.id})).settings.find((function(e){return"taxonomy_terms"==e.name})).settings,t=Object.keys(this).filter(function(e){return 0==e.indexOf("taxonomy_term_")&&this[e]}.bind(this));return 0==t.length?"(No available terms selected)":t.reduce(function(t,n){var i=e.find((function(e){return n==e.name}));return void 0===i?t:t+'<li><input type="checkbox"><div>'+i.label+"</div></li>"}.bind(this),"");case"liststate":case"listselect":if(0==this.options.models.length)return"";var n=this.options.models.filter((function(e){return e.get("selected")}));return 0==n.length&&(n=this.options.models),"<option>"+_.escape(n[0].get("label"))+"</option>";case"listmultiselect":return this.options.models.reduce((function(e,t){return e+"<option"+(t.get("selected")?' selected="selected"':"")+">"+_.escape(t.get("label"))+"</option>"}),"");case"listcheckbox":return this.options.models.reduce((function(e,t){return e+'<li><input type="checkbox"'+(t.get("selected")?' checked="checked"':"")+"><div>"+_.escape(t.get("label"))+"</div></li>"}),"");case"listradio":var i=!1;return this.options.models.reduce((function(e,t){return e+'<li><input type="radio"'+(i=t.get("selected")&&!i?' checked="checked"':"")+"><div>"+_.escape(t.get("label"))+"</div></li>"}),"");case"listcountry":var r=this.default,a=window.fieldTypeData.find((function(e){return"listcountry"==e.id})).settingGroups.find((function(e){return"primary"==e.id})).settings.find((function(e){return"default"==e.name})).options.find((function(e){return r==e.value})),l=void 0!==a?a.label:"--";return"<option>"+_.escape(l)+"</option>";default:return""}},renderOtherAttributes:function(){var e=[];if("listmultiselect"==this.type){e.push("multiple");var t=this.multi_size||"5";e.push('size="'+t+'"')}return e.join(" ")},renderProduct:function(){},renderNumberDefault:function(){return this.value},renderCurrencyFormatting:function(){},renderRatings:function(){for(var e="",t=0;t<this.number_of_stars;t++)e+='<i class="fa fa-star" aria-hidden="true"></i>&nbsp;';return e},renderHourOptions:function(){html="";let e=12;void 0!==this.hours_24&&1==this.hours_24&&(e=24);for(var t=0;t<e;t++){let e=label=t;t<10&&(e=label="0"+t),html+='<option value="'+e+'">'+label+"</option>",t=t++}return html},renderMinuteOptions:function(){var e="";let t=5;void 0!==this.minute_increment&&(t=this.minute_increment);let n=0;for(;n<60;){let i=label=n;n<10&&(i=label="0"+n),e+='<option value="'+i+'">'+label+"</option>",n+=t}return e},maybeRenderAMPM:function(){if(void 0!==this.hours_24&&1!=this.hours_24)return'<div style="float:left;"><select class="ampm" style="float:left;"><option value="am">AM</option><option value="pm">PM</option></select></div>'},maybeRenderTime:function(){return"time_only"==this.date_mode||"date_and_time"==this.date_mode}}},convertDateFormat:function(e){return e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace("D","ddd")).replace("d","DD")).replace("l","dddd")).replace("j","D")).replace("N","")).replace("S","")).replace("w","d")).replace("z","")).replace("W","W")).replace("M","MMM")).replace("F","MMMM")).replace("m","MM")).replace("n","M")).replace("t","")).replace("L","")).replace("o","YYYY")).replace("Y","YYYY")).replace("y","YY")).replace("a","")).replace("A","")).replace("B","")).replace("g","")).replace("G","")).replace("h","")).replace("H","")).replace("i","")).replace("s","")).replace("u","")).replace("v","")).replace("e","")).replace("I","")).replace("O","")).replace("P","")).replace("T","")).replace("Z","")).replace("c","")).replace("r","")).replace("u","")}})})),n("views/fields/preview/repeaterElementEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-repeater-content-fields-empty",initialize:function(e){this.repeaterFieldModel=e.repeaterFieldModel},onBeforeDestroy:function(){jQuery(this.el).parent().removeClass("nf-fields-empty-droppable").droppable("destroy")},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},onShow:function(){jQuery(this.el).parent().hasClass("ui-sortable")&&jQuery(this.el).parent().sortable("destroy"),jQuery(this.el).parent().addClass("nf-fields-empty-droppable");let e=this;jQuery(this.el).parent().droppable({accept:function(e){if(jQuery(e).hasClass("nf-stage")||jQuery(e).hasClass("nf-field-type-button"))return!0},activeClass:"nf-droppable-active",hoverClass:"nf-droppable-hover",tolerance:"pointer",over:function(e,t){t.item=t.draggable,jQuery(t.item).addClass("nf-over-repeater"),i.channel("app").request("over:fieldsSortable",t)},out:function(e,t){t.item=t.draggable,jQuery(t.item).removeClass("nf-over-repeater"),i.channel("app").request("out:fieldsSortable",t)},drop:function(t,n){n.item=null!=n.item?n.item:n.draggable,i.channel("fields-repeater").request("add:childField",n,e,t)}})}})})),n("views/fields/preview/repeaterElementCollection",["views/fields/preview/repeaterElementEmpty"],(function(e){return Marionette.CollectionView.extend({tagName:"div",emptyView:e,getChildView:function(){return i.channel("views").request("get:fieldItem")},initialize:function(e){this.emptyViewOptions={repeaterFieldModel:e.repeaterFieldModel},this.repeaterFieldModel=e.repeaterFieldModel,i.channel("fields-repeater").reply("init:sortable",this.initSortable,this),i.channel("fields-repeater").reply("get:sortableEl",this.getSortableEl,this),i.channel("fields-repeater").reply("get:repeaterFieldsCollection",this.getRepeaterFieldsCollection,this)},onRender:function(){if(this.collection.models.length>0){jQuery(this.el).addClass("nf-field-type-droppable");this.initSortable()}},initSortable:function(){if(void 0!==jQuery(this.el).sortable("instance"))return!1;jQuery(this.el).addClass("nf-field-type-droppable").addClass("nf-fields-sortable");let e=this;jQuery(this.el).sortable({containment:"parent",helper:"clone",cancel:".nf-item-controls",placeholder:"nf-fields-sortable-placeholder",opacity:.95,grid:[5,5],appendTo:"#nf-main",scrollSensitivity:10,receive:function(t,n){i.channel("fields-repeater").request("receive:fields",n,e,t)},over:function(t,n){jQuery(n.item).addClass("nf-over-repeater"),n.item.dropping||i.channel("fields-repeater").request("over:repeaterField",n,e,t)},out:function(t,n){jQuery(n.item).removeClass("nf-over-repeater"),n.item.dropping||i.channel("fields-repeater").request("out:repeaterField",n,e,t)},start:function(t,n){n.item.dropping||i.channel("fields-repeater").request("start:repeaterField",n,e,t)},remove:function(t,n){let r=jQuery(n.item).data("id"),a=e.repeaterFieldModel.get("fields").get(r);i.channel("app").trigger("click:delete",t,a)},update:function(t,n){i.channel("fields-repeater").request("update:repeaterField",n,e,t)},stop:function(t,n){n.item.dropping||i.channel("fields-repeater").request("stop:repeaterField",n,e,t)}})},destroySortable:function(){jQuery(this.el).sortable("destroy")},onAddChild:function(e){i.channel("fields").request("get:adding")&&(e.$el.hide().show("clip"),i.channel("fields").request("set:adding",!1))},getSortableEl:function(){return this.el},getRepeaterFieldsCollection:function(){return this.repeaterFieldModel.get("fields")}})})),n("views/fields/preview/repeaterElementLayout",["views/fields/preview/repeaterElementCollection"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-field-repeater",regions:{fields:".nf-repeater-fieldsets"},initialize:function(e){this.collection=e.collection,this.model=e.model},onRender:function(){this.fields.show(new e({collection:this.collection,repeaterFieldModel:this.model}))}})})),n("views/fields/preview/label",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-field-label",initialize:function(e){},onRender:function(){},templateHelpers:function(){return{renderLabelClasses:function(){},maybeRenderHelp:function(){}}}})})),n("views/fields/fieldItem",["views/app/itemControls","views/fields/preview/element","views/fields/preview/repeaterElementLayout","views/fields/preview/label"],(function(e,t,n,r){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-main-content-field",doingShortcut:!1,regions:{itemControls:".nf-item-controls",previewLabel:".nf-realistic-field--label",previewElement:".nf-realistic-field--element"},initialize:function(){this.model.on("change:editActive",this.render,this),this.model.on("change:label",this.render,this),this.model.on("change:required",this.render,this),this.model.on("change:id",this.render,this)},onBeforeDestroy:function(){this.model.off("change:editActive",this.render),this.model.off("change:label",this.render),this.model.off("change:required",this.render),this.model.off("change:id",this.render)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el),this.itemControls.show(new e({model:this.model})),jQuery(this.el).disableSelection();var a=this.model.get("type");"phone"==a&&(a="tel"),"spam"==a&&(a="input"),"confirm"==a&&(a="input"),"password"==a&&(a="input"),"passwordconfirm"==a&&(a="input"),"quantity"==a&&(a="number"),"terms"==a&&(a="listcheckbox"),"liststate"==a&&(a="listselect"),"listcountry"==a&&(a="listselect"),"listmultiselect"==a&&(a="listselect"),"save"==a&&(a="submit");var l=jQuery("#tmpl-nf-field-"+a).length;if(-1==["html","hidden","note","recaptcha"].indexOf(this.model.get("type"))&&l){"repeater"==a?this.previewElement.show(new n({collection:this.model.get("fields"),model:this.model})):this.previewElement.show(new t({model:this.model}));-1==["submit","save","hr"].indexOf(this.model.get("type"))&&this.previewLabel.show(new r({model:this.model,itemView:this})),jQuery(this.el).find(".nf-placeholder-label").hide()}i.channel("app").request("is:mobile")&&jQuery(this.el).on("taphold",(function(e,t){jQuery(e.target).hasClass("nf-edit-settings")||(jQuery(this).addClass("ui-sortable-helper drag-selected"),jQuery(this).ClassyWiggle("start",{degrees:[".65","1",".65","0","-.65","-1","-.65","0"],delay:50}))})),i.channel("fields-"+a).trigger("render:itemView",this)},templateHelpers:function(){return{renderClasses:function(){var e="nf-field-wrap "+this.type;return this.editActive&&(e+=" active"),e},renderRequired:function(){return 1==this.required?'<span class="required">*</span>':""},getFieldID:function(){return jQuery.isNumeric(this.id)?"field-"+this.id:this.id},renderIcon:function(){var e,t;return e=i.channel("fields").request("get:type",this.type),(t=document.createElement("span")).classList.add("fa","fa-"+e.get("icon")),t.outerHTML},labelPosition:function(){return this.label_pos},renderDescriptionText:function(){return jQuery.trim(this.desc_text)}}},events:{"mouseover .nf-item-control":"mouseoverItemControl",mousedown:"maybeShortcut",click:"maybeClickEdit",singletap:"maybeTapEdit",swipeleft:"swipeLeft",swiperight:"swipeRight",tapend:"tapend"},maybeClickEdit:function(e){if(this.doingShortcut)return this.doingShortcut=!1,!1;(jQuery(e.target).parent().hasClass("nf-fields-sortable")||jQuery(e.target).parent().hasClass("nf-field-wrap")||jQuery(e.target).hasClass("nf-field-wrap"))&&!i.channel("app").request("is:mobile")&&(jQuery(":focus").blur(),i.channel("app").trigger("click:edit",e,this.model))},maybeShortcut:function(e){var t=i.channel("app").request("get:keydown");return-1==t.indexOf(16)||(-1!=t.indexOf(68)?(i.channel("app").trigger("click:delete",e,this.model),this.doingShortcut=!0,!1):-1!=t.indexOf(67)?(this.doingShortcut=!0,i.channel("app").trigger("click:duplicate",e,this.model),!1):void 0)},maybeTapEdit:function(e){jQuery(e.target).parent().hasClass("nf-fields-sortable")&&i.channel("app").trigger("click:edit",e,this.model)},swipeLeft:function(e,t){jQuery(t.startEvnt.target).closest("div").find(".nf-item-duplicate").show(),jQuery(t.startEvnt.target).closest("div").find(".nf-item-delete").show()},swipeRight:function(e,t){jQuery(t.startEvnt.target).closest("div").find(".nf-item-duplicate").hide(),jQuery(t.startEvnt.target).closest("div").find(".nf-item-delete").hide()},tapend:function(e,t){jQuery(this.el).ClassyWiggle("stop"),jQuery(this.el).removeClass("ui-sortable-helper drag-selected")},remove:function(){i.channel("fields").request("get:removing")?this.$el.hide("clip",(function(){jQuery(this).remove()})):this.$el.remove(),i.channel("fields").request("set:removing",!1)},mouseoverItemControl:function(e){jQuery(this.el).find(".nf-item-control").css("display","")}})})),n("controllers/fields/sortable",["models/fields/fieldModel","views/fields/fieldItem"],(function(e,t){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"startDrag:type",this.addActiveClass),this.listenTo(i.channel("drawer-addField"),"stopDrag:type",this.removeActiveClass),this.listenTo(i.channel("drawer-addField"),"startDrag:fieldStaging",this.addActiveClass),this.listenTo(i.channel("drawer-addField"),"stopDrag:fieldStaging",this.removeActiveClass),i.channel("app").reply("receive:fieldsSortable",this.receiveFieldsSortable,this),i.channel("app").reply("over:fieldsSortable",this.overfieldsSortable,this),i.channel("app").reply("out:fieldsSortable",this.outFieldsSortable,this),i.channel("app").reply("stop:fieldsSortable",this.stopFieldsSortable,this),i.channel("app").reply("start:fieldsSortable",this.startFieldsSortable,this),i.channel("app").reply("update:fieldsSortable",this.updateFieldsSortable,this),i.channel("app").reply("receive:repeaterField",this.receiveRepeaterField,this)},addActiveClass:function(){var e=i.channel("fields").request("get:sortableEl");jQuery(e).addClass("nf-droppable-active")},removeActiveClass:function(){var e=i.channel("fields").request("get:sortableEl");jQuery(e).removeClass("nf-droppable-active")},receiveFieldsSortable:function(e){if(e=this.receiveRepeaterField(e),jQuery(e.item).hasClass("nf-field-type-draggable")){var t=jQuery(e.item).data("id"),n=this.addField(t,!1);jQuery(e.helper).prop("id",n),i.channel("fields").request("sort:fields"),jQuery(e.helper).remove(),i.channel("fields").trigger("drop:fieldType",t,n)}else if(jQuery(e.item).hasClass("nf-stage")){var r=this;i.channel("fields").request("sort:staging");var a=i.channel("fields").request("get:staging"),l=i.channel("fields").request("get:sortableEl");if(jQuery(l).hasClass("ui-sortable"))var s=jQuery(l).sortable("toArray");else s=["nf-staged-fields-drag"];var o=s.indexOf("nf-staged-fields-drag");_.each(a.models,(function(e,t){var n=r.addField(e.get("slug"));s.splice(o+t,0,n)}));o=s.indexOf("nf-staged-fields-drag");s.splice(o,1),i.channel("fields").request("sort:fields",s),i.channel("fields").request("clear:staging"),jQuery(e.helper).remove()}},addField:function(e,t){t=t||!1;var n=i.channel("fields").request("get:type",e),r=i.channel("fields").request("get:tmpID"),a=i.channel("fields").request("add",{id:r,label:n.get("nicename"),type:e},t),l={object:"Field",label:a.get("label"),change:"Added",dashicon:"plus-alt"},s={collection:i.channel("fields").request("get:collection")};return i.channel("changes").request("register:change","addObject",a,null,l,s),r},overfieldsSortable:function(n){if(jQuery(n.item).hasClass("nf-field-type-draggable")){var r=jQuery(n.helper).data("id"),a=i.channel("fields").request("get:type",r),l=(a.get("nicename"),i.channel("fields").request("get:sortableEl"));jQuery(l).width();this.currentHelper=n.helper;var s=new e({label:a.get("nicename"),type:r}),o=new t({model:s}).render().$el[0];jQuery(n.helper).html(o.outerHTML)}else if(jQuery(n.item).hasClass("nf-stage")){l=i.channel("fields").request("get:sortableEl");jQuery(l).hasClass("ui-sortable")&&jQuery(l).addClass("nf-droppable-hover")}},outFieldsSortable:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=i.channel("drawer-addField").request("get:typeHelperClone");jQuery(this.currentHelper).html(jQuery(t).html()),jQuery(this.currentHelper).removeClass("nf-field-wrap").addClass("nf-field-type-button").css({width:"",height:""});var n=i.channel("fields").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}else if(jQuery(e.item).hasClass("nf-stage")){n=i.channel("fields").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}},stopFieldsSortable:function(e){jQuery(e.item).css("opacity",""),jQuery(e.helper).remove(),i.channel("fields").trigger("sortable:stop",e)},startFieldsSortable:function(e){if(!jQuery(e.item).hasClass("nf-field-type-draggable")&&!jQuery(e.item).hasClass("nf-stage")){if(jQuery(e.item).show(),jQuery(e.item).hasClass("nf-field-wrap"))var t=jQuery(e.item).clone();else if(jQuery(e.item).parent().hasClass("layouts-cell"))t=$parentHelper.clone();else t=jQuery(e.item).clone();t.find(".nf-item-controls").remove(),jQuery(e.helper).html(t.html()),jQuery(e.helper).css("opacity","0.5"),jQuery(e.item).css("opacity","0.25")}i.channel("fields").trigger("sortable:start",e)},updateFieldsSortable:function(e,t){if(i.channel("fields").request("sort:fields"),!jQuery(e.item).hasClass("nf-field-type-draggable")&&!jQuery(e.item).hasClass("nf-stage")){var n=i.channel("fields").request("get:collection"),r=jQuery(e.item).prop("id").replace("field-",""),a=n.get(r),l={fields:[]};_.each(n.models,(function(e){var t=e._previousAttributes.order,n=e.get("order");l.fields.push({model:e,attr:"order",before:t,after:n})}));var s={object:"Field",label:a.get("label"),change:"Re-ordered from "+a._previousAttributes.order+" to "+a.get("order"),dashicon:"sort"};i.channel("changes").request("register:change","sortFields",a,null,s,l)}},receiveRepeaterField:function(e){if(-1!==String(jQuery(e.item).data("id")).indexOf(".")){jQuery(e.item).removeClass("nf-field-wrap");let t=jQuery(e.item).attr("class");jQuery(e.item).data("id",t),jQuery(e.item).addClass("nf-field-type-draggable")}return e}})})),n("controllers/fields/data",["models/fields/fieldCollection","models/fields/fieldModel"],(function(e,t){return Marionette.Object.extend({adding:!1,removing:!1,initialize:function(){this.collection=new e(preloadedFormData.fields),this.collection.removedIDs={},i.channel("fields").reply("get:collection",this.getFieldCollection,this),i.channel("fields").reply("get:field",this.getField,this),i.channel("fields").reply("redraw:collection",this.redrawFieldCollection,this),i.channel("fields").reply("get:tmpID",this.getTmpFieldID,this),i.channel("fields").reply("add",this.addField,this),i.channel("fields").reply("delete",this.deleteField,this),i.channel("fields").reply("sort:fields",this.sortFields,this),i.channel("fields").reply("get:adding",this.getAdding,this),i.channel("fields").reply("set:adding",this.setAdding,this),i.channel("fields").reply("get:removing",this.getRemoving,this),i.channel("fields").reply("set:removing",this.setRemoving,this)},getFieldCollection:function(){return this.collection},redrawFieldCollection:function(){this.collection.trigger("reset",this.collection)},getField:function(e){return this.collection.findWhere({key:e})?this.collection.findWhere({key:e}):this.collection.get(e)},addField:function(e,n,r,a){if(i.channel("fields").request("set:adding",!0),n=n||!1,a=a||"",r=void 0===r||r,!1==e instanceof Backbone.Model){void 0===e.id&&(e.id=this.getTmpFieldID());var l=new t(e)}else l=e;if(jQuery.isNumeric(l.get("type"))){var s=i.channel("fields").request("get:type",l.get("type"));l.set("type",s.get("parentType"))}var o=this.collection.add(l,{silent:n});return i.channel("app").request("update:setting","clean",!1),i.channel("fields").trigger("add:field",l),r&&i.channel("fields").trigger("render:newField",o,a),"duplicate"==a&&i.channel("fields").trigger("render:duplicateField",o,a),i.channel("fields").trigger("after:addField",l),l},updateFieldSetting:function(e,t,n){this.collection.get(e).set(t,n)},sortFields:function(e,t,n){null==n&&(n=!0);var r=i.channel("fields").request("get:sortableEl");if(jQuery(r).hasClass("ui-sortable")){e=e||jQuery(r).sortable("toArray");_.each(this.collection.models,(function(t){t.get("order");var n=t.get("id");if(jQuery.isNumeric(n))var i="field-"+n;else i=n;var r=e.indexOf(i)+1;t.set("order",r)})),this.collection.sort(),n&&(i.channel("app").request("update:setting","clean",!1),i.channel("app").request("update:db"))}},deleteField:function(e){i.channel("fields").trigger("delete:field",e),this.removing=!0,this.collection.remove(e),i.channel("app").request("update:setting","clean",!1),i.channel("app").request("update:db")},getTmpFieldID:function(){var e=this.collection.tmpNum;return this.collection.tmpNum++,"tmp-"+e},getAdding:function(){return this.adding},setAdding:function(e){this.adding=e},getRemoving:function(){return this.removing},setRemoving:function(e){this.removing=e}})})),n("models/app/optionRepeaterModel",[],(function(){return Backbone.Model.extend({defaults:{errors:{},max_options:0},initialize:function(){this.on("change:errors",this.changeErrors,this)},changeErrors:function(e){if(0==_.size(e.get("errors"))){var t=!1;_.each(e.collection.models,(function(e){0!=_.size(e.get("errors"))&&(t=!0)})),t||e.collection.settingModel.set("error",!1)}else e.collection.settingModel.set("error",!0)}})})),n("models/app/optionRepeaterCollection",["models/app/optionRepeaterModel"],(function(e){return Backbone.Collection.extend({model:e,comparator:function(e){return parseInt(e.get("order"))},initialize:function(e,t){this.on("sort",this.changeCollection,this),this.on("add",this.addOption,this),this.settingModel=t.settingModel},changeCollection:function(){i.channel("option-repeater").trigger("sort:options",this),void 0!==this.settingModel&&i.channel("option-repeater-"+this.settingModel.get("name")).trigger("sort:options",this)},addOption:function(e,t){e.set("settingModel",this.settingModel)}})})),n("views/app/drawer/optionRepeaterError",[],(function(){return Marionette.ItemView.extend({tagName:"div",className:"nf-error",template:"#tmpl-nf-edit-setting-option-repeater-error",templateHelpers:function(){var e=this;return{renderErrors:function(){return void 0!==e.errors?e.errors[Object.keys(errors)[0]]:""}}}})})),n("views/app/drawer/optionRepeaterOption",["views/app/drawer/optionRepeaterError"],(function(e){return Marionette.LayoutView.extend({tagName:"div",className:"nf-table-row",template:"#tmpl-nf-edit-setting-option-repeater-default-row",id:function(){return this.model.cid},regions:{error:".nf-option-error"},initialize:function(e){this.settingModel=e.settingModel,this.dataModel=e.dataModel,this.collection=e.collection,this.columns=e.columns,this.parentView=e.parentView,this.model.on("change:errors",this.renderErrors,this),void 0!==this.settingModel.get("tmpl_row")&&(this.template="#"+this.settingModel.get("tmpl_row")),this.hasErrors=!1},onBeforeDestroy:function(){this.model.off("change",this.render),this.model.off("change:errors",this.renderErrors)},onBeforeRender:function(){if(this.model.get("label")){var e=this.model.get("label");this.model.set("label",_.escape(e),{silent:!0})}},onRender:function(){if(i.channel("mergeTags").request("init",this),i.channel("setting-"+this.settingModel.get("name")+"-option").trigger("render:setting",this.model,this.dataModel,this),this.model.get("label")){var e=this.model.get("label");this.model.set("label",_.unescape(e),{silent:!0})}},onShow:function(){this.model.get("new")&&(jQuery(this.el).find("input:first").focus(),this.model.set("new",!1))},events:{"change .setting":"changeOption","click .nf-delete":"deleteOption",keyup:"keyupOption"},changeOption:function(e){i.channel("option-repeater").trigger("change:option",e,this.model,this.dataModel,this.settingModel,this)},deleteOption:function(e){i.channel("option-repeater").trigger("click:deleteOption",this.model,this.collection,this.dataModel,this)},keyupOption:function(e){this.maybeAddOption(e),i.channel("option-repeater").trigger("keyup:option",e,this.model,this.dataModel,this.settingModel,this),i.channel("option-repeater-"+this.settingModel.get("name")).trigger("keyup:option",e,this.model,this.dataModel,this.settingModel,this)},maybeAddOption:function(e){13==e.keyCode&&"calculations"!=this.settingModel.get("name")&&(i.channel("option-repeater").trigger("click:addOption",this.collection,this.dataModel,this),jQuery(this.parentView.children.findByIndex(this.parentView.children.length-1).el).find('[data-id="label"]').focus())},renderErrors:function(){0==Object.keys(this.model.get("errors"))?this.hasErrors&&(this.error.empty(),jQuery(this.el).removeClass("nf-error")):(this.hasErrors=!0,this.error.show(new e({model:this.model})),jQuery(this.el).addClass("nf-error"))},templateHelpers:function(){var e=this;return{getColumns:function(){var t=e.columns;return nfAdmin.devMode||(delete t.value,delete t.calc),t},renderFieldSelect:function(e,t){var n,r,a,l,s=i.channel("fields").request("get:collection");return(n=document.createElement("option")).value="",n.label="--",n.innerHTML="--",(r=document.createElement("select")).classList.add("setting"),r.setAttribute("data-id",e),r.appendChild(n),s.each((function(e){var n=document.createElement("option");t==e.get("key")&&n.setAttribute("selected","selected"),n.value=e.get("key"),n.innerHTML=e.formatLabel(),n.label=e.formatLabel(),r.appendChild(n)})),(l=document.createElement("label")).classList.add("nf-select"),l.appendChild(r),(a=document.createElement("div")).style.bottom="6px",l.appendChild(a),l.innerHTML},renderNonSaveFieldSelect:function(e,t){var n,r,a,l,s=i.channel("fields").request("get:collection");(n=document.createElement("option")).value="",n.label="--",n.innerHTML="--",(r=document.createElement("select")).classList.add("setting"),r.setAttribute("data-id",e),r.appendChild(n);var o=["html","submit","hr","recaptcha","spam","creditcard","creditcardcvc","creditcardexpiration","creditcardfullname","creditcardnumber","creditcardzip"];return s.each((function(e){if(-1!==jQuery.inArray(e.get("type"),o))return"";var n=document.createElement("option");t==e.get("key")&&n.setAttribute("selected","selected"),n.value=e.get("key"),n.innerHTML=e.formatLabel(),n.label=e.formatLabel(),r.appendChild(n)})),(l=document.createElement("label")).classList.add("nf-select"),l.appendChild(r),(a=document.createElement("div")).style.bottom="6px",l.appendChild(a),l.innerHTML},renderOptions:function(t,n){if(void 0!==e.options.columns[t]){var i=document.createElement("select");return _.each(e.options.columns[t].options,(function(e){var t=document.createElement("option");n===e.value&&t.setAttribute("selected","selected"),t.setAttribute("value",e.value),t.setAttribute("label",e.label),t.innerText=e.label,i.appendChild(t)})),i.innerHTML}}}}})})),n("views/app/drawer/optionRepeaterEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"tr",template:"#tmpl-nf-edit-setting-option-repeater-empty"})})),n("views/app/drawer/optionRepeaterComposite",["views/app/drawer/optionRepeaterOption","views/app/drawer/optionRepeaterEmpty","models/app/optionRepeaterCollection"],(function(e,t,n){return Marionette.CompositeView.extend({template:"#tmpl-nf-edit-setting-option-repeater-wrap",childView:e,emptyView:t,reorderOnSort:!1,initialize:function(e){var t=e.dataModel.get(this.model.get("name"));0==t instanceof Backbone.Collection&&((t=new n([],{settingModel:this.model})).add(e.dataModel.get(this.model.get("name"))),e.dataModel.set(this.model.get("name"),t,{silent:!0})),this.collection=t,this.dataModel=e.dataModel,this.childViewOptions={parentView:this,settingModel:this.model,collection:this.collection,dataModel:e.dataModel,columns:this.model.get("columns")};var r=this.model.get("deps");if(r){void 0===r.settings&&(r.settings=[],_.each(r,(function(e,t){"settings"!==t&&r.settings.push({name:t,value:e})})),r.match="all");for(var a=r.settings.length-1;a>=0;a--){let e=r.settings[a].name;this.dataModel.on("change:"+e,this.render,this)}}this.listenTo(i.channel("option-repeater"),"added:option",this.maybeHideNew),this.listenTo(i.channel("option-repeater"),"removed:option",this.maybeHideNew)},onBeforeDestroy:function(){var e=this.model.get("deps");if(e)for(var t=e.settings.length-1;t>=0;t--)name=e.settings[t].name,this.dataModel.off("change:"+name,this.render)},onRender:function(){var e=this;jQuery(this.el).find(".nf-list-options-tbody").sortable({handle:".handle",helper:"clone",placeholder:"nf-list-options-sortable-placeholder",forcePlaceholderSize:!0,opacity:.95,tolerance:"pointer",start:function(e,t){i.channel("option-repeater").request("start:optionSortable",t)},stop:function(e,t){i.channel("option-repeater").request("stop:optionSortable",t)},update:function(t,n){i.channel("option-repeater").request("update:optionSortable",n,this,e)}}),e.setupTooltip(),e.maybeHideNew(e.collection),i.channel("setting-"+this.model.get("name")).trigger("render:setting",this.model,this.dataModel,this)},onAttach:function(){var e=jQuery(this.el).find(".nf-open-import-tooltip"),t=jQuery(e).jBox("Tooltip",{title:"<h3>Please enter your options below:</h3>",content:"1"==nfAdmin.devMode?jQuery(this.el).find(".nf-dev-import-options"):jQuery(this.el).find(".nf-import-options"),trigger:"click",closeOnClick:"body",closeButton:"box",offset:{x:20,y:0},addClass:"import-options",onOpen:function(){var e=this;setTimeout((function(){jQuery(e.content).find("textarea").focus()}),200)}});jQuery(this.el).find(".nf-import").on("click",{view:this,jBox:t},this.clickImport),i.channel("setting-"+this.model.get("name")).trigger("attach:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("attach:setting",this.model,this.dataModel,this)},setupTooltip:function(){jQuery(this.el).find(".nf-list-options").find(".nf-help").each((function(){var e=jQuery(this).next(".nf-help-text");jQuery(this).jBox("Tooltip",{content:e,maxWidth:200,theme:"TooltipBorder",trigger:"click",closeOnClick:!0})}))},templateHelpers:function(){var e=this;return{renderHeaders:function(){var t,n,i,r,a,l,s,o;"Field"==e.dataModel.get("objectType")&&-1!==e.dataModel.get("type").indexOf("list")&&(t=document.createTextNode(nfi18n.valueChars),(n=document.createElement("div")).classList.add("nf-help-text"),n.appendChild(t),(i=document.createElement("span")).classList.add("dashicons","dashicons-admin-comments"),(r=document.createElement("a")).classList.add("nf-help"),r.setAttribute("href","#"),r.setAttribute("tabindex","-1"),r.appendChild(i),(a=document.createElement("span")).appendChild(r),a.appendChild(n),void 0!==e.model.get("columns")&&void 0!==e.model.get("columns").value&&-1==e.model.get("columns").value.header.indexOf(a.innerHTML)&&(e.model.get("columns").value.header+=a.innerHTML));return s=document.createElement("div"),(l=document.createElement("span")).appendChild(s),nfAdmin.devMode||(delete this.columns.value,delete this.columns.calc),_.each(this.columns,(function(e){var t,n;t=document.createRange().createContextualFragment(e.header),(n=document.createElement("div")).appendChild(t),l.appendChild(n)})),o=document.createElement("div"),l.appendChild(o),l.innerHTML},renderSetting:function(){return i.channel("app").request("get:template","#tmpl-nf-edit-setting-"+this.type)(this)},renderClasses:function(){var e="";return void 0!==this.width?e+=this.width:e+=" one-half",this.error&&(e+=" nf-error"),e},renderVisible:function(){return i.channel("settings").request("check:deps",this,e)},renderError:function(){return this.error?this.error:""},renderFieldsetClasses:function(){return e.model.get("name")},currencySymbol:function(){return i.channel("settings").request("get:setting","currency")||nfi18n.currency_symbol}}},attachHtml:function(e,t){jQuery(e.el).find(".nf-list-options-tbody").append(t.el),i.channel("mergeTags").request("init",this)},events:{"click .nf-add-new":"clickAddOption","click .extra":"clickExtra"},maybeHideNew:function(e){if(void 0===e.settingModel)return!1;var t=e.settingModel.get("max_options");0!==t&&e.models.length>=t?jQuery(this.el).find(".nf-add-new").addClass("disabled"):jQuery(this.el).find(".nf-add-new").removeClass("disabled")},clickAddOption:function(e){i.channel("option-repeater").trigger("click:addOption",this.collection,this.dataModel),jQuery(this.children.findByIndex(this.children.length-1).el).find('[data-id="label"]').focus()},clickExtra:function(e){i.channel("option-repeater").trigger("click:extra",e,this.collection,this.dataModel),i.channel("option-repeater-"+this.model.get("name")).trigger("click:extra",e,this.model,this.collection,this.dataModel)},clickImport:function(e){var t=jQuery(e.data.jBox.content).find("textarea"),n=t.val().trimLeft().trimRight();if(0==n.length)return e.data.jBox.close(),!1;var r=n.split(/\n/);_.isArray(r)&&_.each(r,(function(t){var n=t.split(","),r=n[0],a=n[1]||jQuery.slugify(r,{separator:"-"}),l=n[2]||"";r=r.trimLeft().trimRight(),a=a.trimLeft().trimRight(),l=l.trimLeft().trimRight();var s=e.data.view.collection.add({label:n[0],value:a,calc:l});r={object:"field",label:n[0],change:"Option Added",dashicon:"plus-alt"};i.channel("changes").request("register:change","addListOption",s,null,r),i.channel("option-repeater-"+e.data.view.model.get("name")).trigger("add:option",s),i.channel("option-repeater").trigger("add:option",s),i.channel("app").trigger("update:setting",s)}),this),t.val(""),e.data.jBox.close()}})})),n("controllers/app/optionRepeater",["models/app/optionRepeaterModel","models/app/optionRepeaterCollection","views/app/drawer/optionRepeaterComposite"],(function(e,t,n){return Marionette.Object.extend({initialize:function(){i.channel("option-repeater").reply("get:settingChildView",this.getSettingChildView,this),this.listenTo(i.channel("option-repeater"),"change:option",this.changeOption),this.listenTo(i.channel("option-repeater"),"click:addOption",this.addOption),this.listenTo(i.channel("option-repeater"),"click:deleteOption",this.deleteOption),i.channel("option-repeater").reply("update:optionSortable",this.updateOptionSortable,this),i.channel("option-repeater").reply("stop:optionSortable",this.stopOptionSortable,this),i.channel("option-repeater").reply("start:optionSortable",this.startOptionSortable,this),this.listenTo(i.channel("option-repeater"),"init:dataModel",this.convertSettings)},changeOption:function(e,t,n,r,a){var l=jQuery(e.target).data("id");if("selected"==l)if(jQuery(e.target).prop("checked"))var s=1;else s=0;else s=jQuery(e.target).val();var o=t.get(l);t.set(l,s),this.triggerDataModel(t,n);var c=s,d={attr:l,before:o,after:c},h={object:n.get("objectType"),label:n.get("label"),change:"Option "+t.get("label")+" "+l+" changed from "+o+" to "+c};i.channel("changes").request("register:change","changeSetting",t,d,h),i.channel("option-repeater").trigger("update:option",t,n,r,a),i.channel("option-repeater-option-"+l).trigger("update:option",e,t,n,r,a),i.channel("option-repeater-"+r.get("name")).trigger("update:option",t,n,r,a)},addOption:function(t,n){var r={order:t.length,new:!0,options:{}};if(void 0!==t.settingModel){var a=t.settingModel.get("max_options");if(0!==a&&t.models.length>=a)return;_.each(t.settingModel.get("columns"),(function(e,t){r[t]=e.default,void 0!==e.options&&(r.options[t]=e.options)}))}var l=new e(r);t.add(l);var s={object:n.get("objectType"),label:n.get("label"),change:"Option Added",dashicon:"plus-alt"};i.channel("changes").request("register:change","addListOption",l,null,s),void 0!==t.settingModel&&i.channel("option-repeater-"+t.settingModel.get("name")).trigger("add:option",l),i.channel("option-repeater").trigger("add:option",l),i.channel("option-repeater").trigger("added:option",t),this.triggerDataModel(l,n)},deleteOption:function(e,t,n){var r=i.channel("app").request("clone:modelDeep",e),a={object:n.get("objectType"),label:n.get("label"),change:"Option "+r.get("label")+" Removed",dashicon:"dismiss"},l={collection:t};i.channel("changes").request("register:change","removeListOption",r,null,a,l);var s=i.channel("changes").request("get:collection").where({model:e});_.each(s,(function(e){"object"==typeof e.get("data")&&_.each(e.get("data"),(function(e){e.model==e&&(e.model=r)})),e.set("model",r),e.set("disabled",!0)})),t.remove(e),i.channel("option-repeater").trigger("remove:option",e),i.channel("option-repeater").trigger("removed:option",t),i.channel("option-repeater-"+t.settingModel.get("name")).trigger("remove:option",e),this.triggerDataModel(e,n)},triggerDataModel:function(e,t){i.channel("app").trigger("update:setting",e)},getSettingChildView:function(e){return n},updateOptionSortable:function(e,t,n){var r=jQuery(t).sortable("toArray"),a=n.collection.get({cid:jQuery(e.item).prop("id")}),l={collection:n.collection,objModels:[]};_.each(r,(function(e,t){var i=n.collection.get({cid:e}),r=i.get("order");i.set("order",t);var a=t;l.objModels.push({model:i,attr:"order",before:r,after:a})})),n.collection.sort({silent:!0});var s={object:n.dataModel.get("objectType"),label:n.dataModel.get("label"),change:"Option "+a.get("label")+" re-ordered from "+a._previousAttributes.order+" to "+a.get("order"),dashicon:"sort"};i.channel("changes").request("register:change","sortListOptions",a,null,s,l),this.triggerDataModel(a,n.dataModel),i.channel("option-repeater").trigger("sort:option",a,n),i.channel("option-repeater-"+n.model.get("name")).trigger("sort:option",a,n)},stopOptionSortable:function(e){jQuery(e.item).css("opacity","")},startOptionSortable:function(e){jQuery(e.placeholder).find("div").remove(),jQuery(e.item).css("opacity","0.5").show()},convertSettings:function(e,n){var i=e.get(n.get("name"));0==i instanceof Backbone.Collection&&((i=new t([],{settingModel:n})).add(e.get(n.get("name"))),e.set(n.get("name"),i,{silent:!0}))}})})),n("views/app/drawer/imageOptionRepeaterOption",["views/app/drawer/optionRepeaterError"],(function(e){return Marionette.LayoutView.extend({tagName:"div",className:"nf-table-row",template:"#tmpl-nf-edit-setting-image-option-repeater-default-row",id:function(){return this.model.cid},regions:{error:".nf-option-error"},initialize:function(e){this.settingModel=e.settingModel,this.dataModel=e.dataModel,this.collection=e.collection,this.columns=e.columns,this.parentView=e.parentView,this.model.on("change:errors",this.renderErrors,this),void 0!==this.settingModel.get("tmpl_row")&&(this.template="#"+this.settingModel.get("tmpl_row")),this.listenTo(i.channel("image-option-repeater"),"click:extra",this.clickExtra),this.hasErrors=!1},onBeforeDestroy:function(){this.model.off("change",this.render),this.model.off("change:errors",this.renderErrors)},onBeforeRender:function(){if(this.model.get("image")){var e=this.model.get("image");this.model.set("image",_.escape(e),{silent:!0})}},onRender:function(){if(i.channel("mergeTags").request("init",this),i.channel("setting-"+this.settingModel.get("name")+"-option").trigger("render:setting",this.model,this.dataModel,this),this.model.get("image")){var e=this.model.get("image");this.model.set("image",_.unescape(e),{silent:!0})}},onShow:function(){this.model.get("new")&&(jQuery(this.el).find("input:first").focus(),this.model.set("new",!1))},events:{"change .setting":"changeOption","click .nf-delete":"deleteOption",keyup:"keyupOption"},changeOption:function(e){i.channel("image-option-repeater").trigger("change:option",e,this.model,this.dataModel,this.settingModel,this)},deleteOption:function(e){i.channel("image-option-repeater").trigger("click:deleteOption",this.model,this.collection,this.dataModel,this)},keyupOption:function(e){this.maybeAddOption(e),i.channel("image-option-repeater").trigger("keyup:option",e,this.model,this.dataModel,this.settingModel,this),i.channel("image-option-repeater-"+this.settingModel.get("name")).trigger("keyup:option",e,this.model,this.dataModel,this.settingModel,this)},maybeAddOption:function(e){13==e.keyCode&&"calculations"!=this.settingModel.get("name")&&(i.channel("image-option-repeater").trigger("click:addOption",this.collection,this.dataModel,this),jQuery(this.parentView.children.findByIndex(this.parentView.children.length-1).el).find('[data-id="image"]').focus())},clickExtra:function(e,t,n,i){var r=jQuery(e.target).parent().find(".setting"),a=jQuery(e.target).parent().parent().parent(),l=jQuery(a[0]).find('[data-id="value"]'),s=jQuery(a[0]).find('[data-id="image_id"]'),o=jQuery(a[0]).find('[data-id="label"]');if(jQuery(e.target).hasClass("open-media-manager")&&this.el.id===a[0].id){if(this.meta_image_frame)return void this.meta_image_frame.open();this.meta_image_frame=wp.media.frames.meta_image_frame=wp.media({title:"Select a file",button:{text:"insert"}});var c=this;this.meta_image_frame.on("select",(function(){var e=c.meta_image_frame.state().get("selection").first().toJSON();r.val(e.url).change(),l.val(e.filename).change(),o.val(e.title).change(),s.val(e.id).change();var t=a.find(".option-image-container");if(t)if($imgs=jQuery(t).find("img"),$imgs.length>0)jQuery($imgs[0]).attr("src",e.url);else{var n=document.createElement("img");n.style="max-width:100px;display:inline-block;",n.src=e.url,jQuery(t).append(n)}})),this.meta_image_frame.open()}},renderErrors:function(){0==Object.keys(this.model.get("errors"))?this.hasErrors&&(this.error.empty(),jQuery(this.el).removeClass("nf-error")):(this.hasErrors=!0,this.error.show(new e({model:this.model})),jQuery(this.el).addClass("nf-error"))},templateHelpers:function(){var e=this;return{getColumns:function(){var t=e.columns;return nfAdmin.devMode||(delete t.value,delete t.calc),t},renderFieldSelect:function(e,t){var n,r,a,l,s=i.channel("fields").request("get:collection");return(n=document.createElement("option")).value="",n.image="",n.innerHTML="--",(r=document.createElement("select")).classList.add("setting"),r.setAttribute("data-id",e),r.appendChild(n),s.each((function(e){var n=document.createElement("option");t==e.get("key")&&n.setAttribute("selected","selected"),n.value=e.get("key"),n.innerHTML=e.formatLabel(),n.image=e.formatLabel(),r.appendChild(n)})),(l=document.createElement("image")).classList.add("nf-select"),l.appendChild(r),(a=document.createElement("div")).style.bottom="6px",l.appendChild(a),l.innerHTML},renderNonSaveFieldSelect:function(e,t){var n,r,a,l,s=i.channel("fields").request("get:collection");(n=document.createElement("option")).value="",n.image="",n.innerHTML="--",(r=document.createElement("select")).classList.add("setting"),r.setAttribute("data-id",e),r.appendChild(n);var o=["html","submit","hr","recaptcha","spam","creditcard","creditcardcvc","creditcardexpiration","creditcardfullname","creditcardnumber","creditcardzip"];return s.each((function(e){if(-1!==jQuery.inArray(e.get("type"),o))return"";var n=document.createElement("option");t==e.get("key")&&n.setAttribute("selected","selected"),n.value=e.get("key"),n.innerHTML=e.formatLabel(),n.image=e.formatLabel(),r.appendChild(n)})),(l=document.createElement("image")).classList.add("nf-select"),l.appendChild(r),(a=document.createElement("div")).style.bottom="6px",l.appendChild(a),l.innerHTML},renderOptions:function(t,n){if(void 0!==e.options.columns[t]){var i=document.createElement("select");return _.each(e.options.columns[t].options,(function(e){var t=document.createElement("option");n===e.value&&t.setAttribute("selected","selected"),t.setAttribute("value",e.value),t.setAttribute("image_id",e.image_id),t.setAttribute("image",e.image),t.innerText=e.image,i.appendChild(t)})),i.innerHTML}}}}})})),n("views/app/drawer/imageOptionRepeaterComposite",["views/app/drawer/imageOptionRepeaterOption","views/app/drawer/optionRepeaterEmpty","models/app/optionRepeaterCollection"],(function(e,t,n){return Marionette.CompositeView.extend({template:"#tmpl-nf-edit-setting-image-option-repeater-wrap",childView:e,emptyView:t,reorderOnSort:!1,initialize:function(e){var t=e.dataModel.get(this.model.get("name"));0==t instanceof Backbone.Collection&&((t=new n([],{settingModel:this.model})).add(e.dataModel.get(this.model.get("name"))),e.dataModel.set(this.model.get("name"),t,{silent:!0})),this.collection=t,this.dataModel=e.dataModel,this.childViewOptions={parentView:this,settingModel:this.model,collection:this.collection,dataModel:e.dataModel,columns:this.model.get("columns")};var r=this.model.get("deps");if(r){void 0===r.settings&&(r.settings=[],_.each(r,(function(e,t){"settings"!==t&&r.settings.push({name:t,value:e})})),r.match="all");for(var a=r.settings.length-1;a>=0;a--){let e=r.settings[a].name;this.dataModel.on("change:"+e,this.render,this)}}this.listenTo(i.channel("image-option-repeater"),"added:option",this.maybeHideNew),this.listenTo(i.channel("image-option-repeater"),"removed:option",this.maybeHideNew)},onBeforeDestroy:function(){var e=this.model.get("deps");if(e)for(var t=e.settings.length-1;t>=0;t--){let n=e.settings[t].name;this.dataModel.off("change:"+n,this.render)}},onRender:function(){var e=this;jQuery(this.el).find(".nf-listimage-options-tbody").sortable({handle:".handle",helper:"clone",placeholder:"nf-listimage-options-sortable-placeholder",forcePlaceholderSize:!0,opacity:.95,tolerance:"pointer",start:function(e,t){i.channel("image-option-repeater").request("start:optionSortable",t)},stop:function(e,t){i.channel("image-option-repeater").request("stop:optionSortable",t)},update:function(t,n){i.channel("image-option-repeater").request("update:optionSortable",n,this,e)}}),e.setupTooltip(),e.maybeHideNew(e.collection),i.channel("setting-"+this.model.get("name")).trigger("render:setting",this.model,this.dataModel,this)},onAttach:function(){},setupTooltip:function(){jQuery(this.el).find(".nf-listimage-options").find(".nf-help").each((function(){var e=jQuery(this).next(".nf-help-text");jQuery(this).jBox("Tooltip",{content:e,maxWidth:200,theme:"TooltipBorder",trigger:"click",closeOnClick:!0})}))},templateHelpers:function(){var e=this;return{renderHeaders:function(){var t,n,i,r,a,l,s,o;"Field"==e.dataModel.get("objectType")&&-1!==e.dataModel.get("type").indexOf("list")&&(t=document.createTextNode(nfi18n.valueChars),(n=document.createElement("div")).classList.add("nf-help-text"),n.appendChild(t),(i=document.createElement("span")).classList.add("dashicons","dashicons-admin-comments"),(r=document.createElement("a")).classList.add("nf-help"),r.setAttribute("href","#"),r.setAttribute("tabindex","-1"),r.appendChild(i),(a=document.createElement("span")).appendChild(r),a.appendChild(n),void 0!==e.model.get("columns")&&void 0!==e.model.get("columns").value&&-1==e.model.get("columns").value.header.indexOf(a.innerHTML)&&(e.model.get("columns").value.header+=a.innerHTML));return s=document.createElement("div"),(l=document.createElement("span")).appendChild(s),nfAdmin.devMode||(delete this.columns.value,delete this.columns.calc),_.each(this.columns,(function(e){var t,n;t=document.createRange().createContextualFragment(e.header),(n=document.createElement("div")).appendChild(t),l.appendChild(n)})),o=document.createElement("div"),l.appendChild(o),l.innerHTML},renderSetting:function(){return i.channel("app").request("get:template","#tmpl-nf-edit-setting-"+this.type)(this)},renderClasses:function(){var e="";return void 0!==this.width?e+=this.width:e+=" one-half",this.error&&(e+=" nf-error"),e},renderVisible:function(){return i.channel("settings").request("check:deps",this,e)},renderError:function(){return this.error?this.error:""},renderFieldsetClasses:function(){return e.model.get("name")},currencySymbol:function(){return i.channel("settings").request("get:setting","currency")||nfi18n.currency_symbol}}},attachHtml:function(e,t){jQuery(e.el).find(".nf-listimage-options-tbody").append(t.el),i.channel("mergeTags").request("init",this)},events:{"click .nf-add-new":"clickAddOption","click .extra":"clickExtra"},maybeHideNew:function(e){if(void 0===e.settingModel)return!1;var t=e.settingModel.get("max_options");0!==t&&e.models.length>=t?jQuery(this.el).find(".nf-add-new").addClass("disabled"):jQuery(this.el).find(".nf-add-new").removeClass("disabled")},clickAddOption:function(e){i.channel("image-option-repeater").trigger("click:addOption",this.collection,this.dataModel),jQuery(this.children.findByIndex(this.children.length-1).el).find('[data-id="image"]').focus()},clickExtra:function(e){i.channel("image-option-repeater").trigger("click:extra",e,this.collection,this.dataModel),i.channel("image-option-repeater-"+this.model.get("name")).trigger("click:extra",e,this.model,this.collection,this.dataModel)},clickImport:function(e){var t=jQuery(e.data.jBox.content).find("textarea"),n=t.val().trimLeft().trimRight();if(0==n.length)return e.data.jBox.close(),!1;var r=n.split(/\n/);_.isArray(r)&&_.each(r,(function(t){var n=t.split(","),r=n[0],a=n[1]||jQuery.slugify(r,{separator:"-"}),l=n[2]||"";r=r.trimLeft().trimRight(),a=a.trimLeft().trimRight(),l=l.trimLeft().trimRight();var s=e.data.view.collection.add({image:n[0],value:a,calc:l});r={object:"field",image:n[0],change:"Option Added",dashicon:"plus-alt"};i.channel("changes").request("register:change","addListOption",s,null,r),i.channel("image-option-repeater-"+e.data.view.model.get("name")).trigger("add:option",s),i.channel("image-option-repeater").trigger("add:option",s),i.channel("app").trigger("update:setting",s)}),this),t.val(""),e.data.jBox.close()}})})),n("controllers/app/imageOptionRepeater",["models/app/optionRepeaterModel","models/app/optionRepeaterCollection","views/app/drawer/imageOptionRepeaterComposite"],(function(e,t,n){return Marionette.Object.extend({initialize:function(){i.channel("image-option-repeater").reply("get:settingChildView",this.getSettingChildView,this),this.listenTo(i.channel("image-option-repeater"),"change:option",this.changeOption),this.listenTo(i.channel("image-option-repeater"),"click:addOption",this.addOption),this.listenTo(i.channel("image-option-repeater"),"click:deleteOption",this.deleteOption),i.channel("image-option-repeater").reply("update:optionSortable",this.updateOptionSortable,this),i.channel("image-option-repeater").reply("stop:optionSortable",this.stopOptionSortable,this),i.channel("image-option-repeater").reply("start:optionSortable",this.startOptionSortable,this),this.listenTo(i.channel("image-option-repeater"),"init:dataModel",this.convertSettings)},changeOption:function(e,t,n,r,a){var l=jQuery(e.target).data("id");if("selected"==l)if(jQuery(e.target).prop("checked"))var s=1;else s=0;else s=jQuery(e.target).val();var o=t.get(l);t.set(l,s),this.triggerDataModel(t,n);var c=s,d={attr:l,before:o,after:c},h={object:n.get("objectType"),label:n.get("label"),change:"Option "+t.get("label")+" "+l+" changed from "+o+" to "+c};i.channel("changes").request("register:change","changeSetting",t,d,h),i.channel("image-option-repeater").trigger("update:option",t,n,r,a),i.channel("image-option-repeater-option-"+l).trigger("update:option",e,t,n,r,a),i.channel("image-option-repeater-"+r.get("name")).trigger("update:option",t,n,r,a)},addOption:function(t,n){var r={order:t.length,new:!0,options:{}};if(void 0!==t.settingModel){var a=t.settingModel.get("max_options");if(0!==a&&t.models.length>=a)return;_.each(t.settingModel.get("columns"),(function(e,t){r[t]=e.default,void 0!==e.options&&(r.options[t]=e.options)}))}var l=new e(r);t.add(l);var s={object:n.get("objectType"),image:n.get("image"),change:"Option Added",dashicon:"plus-alt"};i.channel("changes").request("register:change","addListOption",l,null,s),void 0!==t.settingModel&&i.channel("image-option-repeater-"+t.settingModel.get("name")).trigger("add:option",l),i.channel("image-option-repeater").trigger("add:option",l),i.channel("image-option-repeater").trigger("added:option",t),this.triggerDataModel(l,n)},deleteOption:function(e,t,n){var r=i.channel("app").request("clone:modelDeep",e),a={object:n.get("objectType"),image:n.get("image"),change:"Option "+r.get("image")+" Removed",dashicon:"dismiss"},l={collection:t};i.channel("changes").request("register:change","removeListOption",r,null,a,l);var s=i.channel("changes").request("get:collection").where({model:e});_.each(s,(function(e){"object"==typeof e.get("data")&&_.each(e.get("data"),(function(e){e.model==e&&(e.model=r)})),e.set("model",r),e.set("disabled",!0)})),t.remove(e),i.channel("image-option-repeater").trigger("remove:option",e),i.channel("image-option-repeater").trigger("removed:option",t),i.channel("image-option-repeater-"+t.settingModel.get("name")).trigger("remove:option",e),this.triggerDataModel(e,n)},triggerDataModel:function(e,t){i.channel("app").trigger("update:setting",e)},getSettingChildView:function(e){return n},updateOptionSortable:function(e,t,n){var r=jQuery(t).sortable("toArray"),a=n.collection.get({cid:jQuery(e.item).prop("id")}),l={collection:n.collection,objModels:[]};_.each(r,(function(e,t){var i=n.collection.get({cid:e}),r=i.get("order");i.set("order",t);var a=t;l.objModels.push({model:i,attr:"order",before:r,after:a})})),n.collection.sort({silent:!0});var s={object:n.dataModel.get("objectType"),image:n.dataModel.get("image"),change:"Option "+a.get("image")+" re-ordered from "+a._previousAttributes.order+" to "+a.get("order"),dashicon:"sort"};i.channel("changes").request("register:change","sortListOptions",a,null,s,l),this.triggerDataModel(a,n.dataModel),i.channel("image-option-repeater").trigger("sort:option",a,n),i.channel("image-option-repeater-"+n.model.get("name")).trigger("sort:option",a,n)},stopOptionSortable:function(e){jQuery(e.item).css("opacity","")},startOptionSortable:function(e){jQuery(e.placeholder).find("div").remove(),jQuery(e.item).css("opacity","0.5").show()},convertSettings:function(e,n){var i=e.get(n.get("name"));0==i instanceof Backbone.Collection&&((i=new t([],{settingModel:n})).add(e.get(n.get("name"))),e.set(n.get("name"),i,{silent:!0}))}})})),n("controllers/fields/editActive",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("fields").reply("clear:editActive",this.clearEditActive,this),this.listenTo(i.channel("drawer-editSettings"),"before:closeDrawer",this.clearEditActive)},clearEditActive:function(){var e=i.channel("fields").request("get:collection");_.each(e.models,(function(e){e.set("editActive",!1)}))}})})),n("controllers/fields/fieldSettings",["models/app/settingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.collection=new e(fieldSettings,{objectType:"fields"}),i.channel("fields").reply("get:settingModel",this.getSettingModel,this),i.channel("fields").reply("get:settingCollection",this.getSettingCollection,this)},getSettingModel:function(e){return this.collection.findWhere({name:e})},getSettingCollection:function(){return this.collection}})})),n("controllers/fields/fieldCreditCard",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"after:addField",this.dropCreditCardField)},dropCreditCardField:function(e){if("creditcard"==e.get("type")){var t=e.get("order");i.channel("fields").request("delete",e),_.each(["creditcardfullname","creditcardnumber","creditcardcvc","creditcardexpiration","creditcardzip"],(function(e){var n=i.channel("fields").request("get:type",e),r={id:i.channel("fields").request("get:tmpID"),type:e,label:n.get("nicename"),order:t};i.channel("fields").request("add",r)}))}},stageCreditCardField:function(e){"creditcard"==e.get("slug")&&(i.channel("fields").request("remove:stagedField","",e),_.each(["creditcardfullname","creditcardnumber","creditcardcvc","creditcardexpiration","creditcardzip"],(function(e){i.channel("fields").request("add:stagedField",e)})))}})})),n("controllers/fields/fieldList",["models/app/optionRepeaterCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("option-repeater-option-label"),"update:option",this.updateOptionLabel),this.listenTo(i.channel("option-repeater-option-value"),"update:option",this.updateOptionValue),this.listenTo(i.channel("fields-list"),"init:fieldModel",this.convertOptions)},updateOptionLabel:function(e,t,n,i,r){"list"==_.findWhere(fieldTypeData,{id:n.get("type")}).parentType&&(t.get("manual_value")||(value=jQuery.slugify(t.get("label"),{separator:"-"}),t.set("value",value),t.trigger("change",t),jQuery(r.el).find('[data-id="value"]').focus().select()))},updateOptionValue:function(e,t,n,i,r){if("Field"==n.get("objectType")){var a=t.get("value");a=a.replace(/[^0-9a-zA-Z _@.-]/g,""),t.set("value",a),r.render()}var l=_.findWhere(fieldTypeData,{id:n.get("type")});void 0!==l&&"list"==l.parentType&&(t.set("manual_value",!0),jQuery(r.el).find('[data-id="calc"]').focus().select())},convertOptions:function(t){var n=t.get("options"),r=i.channel("fields").request("get:settingModel","options");0==n instanceof Backbone.Collection&&((n=new e([],{settingModel:r})).add(t.get("options")),t.set("options",n,{silent:!0}))}})})),n("controllers/fields/fieldPassword",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"after:addField",this.addField)},addField:function(e){if("password"==e.get("type")){var t=e.get("order");this.insertField("passwordconfirm",t+1).set("confirm_field",e.get("key"))}},insertField:function(e,t){var n=i.channel("fields").request("get:type",e),r={id:i.channel("fields").request("get:tmpID"),type:e,label:n.get("nicename"),order:t};return i.channel("fields").request("add",r)}})})),n("controllers/fields/fieldQuantity",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){if("product_assignment"==e.get("name")){var i=this.getProductFields(e);e.set("options",i)}},getProductFields:function(e){var t=[e.get("select_product")],n=i.channel("fields").request("get:collection");return _.each(n.models,(function(e){"product"==e.get("type")&&t.push({label:e.get("label"),value:e.get("id")})})),t}})})),n("controllers/fields/fieldShipping",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-shipping_options"),"render:setting",this.addMask),this.listenTo(i.channel("setting-shipping_options-option"),"render:setting",this.addMask)},addMask:function(e,t,n){jQuery(n.el).find('[data-id="value"]').each((function(){jQuery(this).autoNumeric({aSign:"$",aSep:thousandsSeparator,aDec:decimalPoint})}))}})})),n("controllers/fields/key",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"add:field",this.newFieldKey),this.listenTo(i.channel("fieldSetting-label"),"update:setting",this.updateLabel),this.listenTo(i.channel("fieldSetting-key"),"update:setting",this.updateKey),this.listenTo(i.channel("setting-key"),"keyup:setting",this.keyUp)},newFieldKey:function(e){var t=(new Date).valueOf(),n=this.slugify(e.get("type")+"_"+t);e.set("key",n,{silent:!0}),"undefined"==e.get("manual_key")&&e.set("manual_key",!1,{silent:!0})},updateLabel:function(e){if(!e.get("manual_key")&&0!=jQuery.trim(e.get("label")).length){delete e.changed.label;var t=(new Date).valueOf(),n=this.slugify(e.get("label")+"_"+t);-1==n.indexOf("_")&&(n="field_"+n),e.set("key",n)}},updateKey:function(e){var t=e.get("key");this.settingModel=i.channel("fields").request("get:settingModel","key"),this.setError(t,e)},keyUp:function(e,t,n){n.set("manual_key",!0),this.settingModel=t;var i=jQuery(e.target).val();this.setError(i,n)},setError:function(e,t){var n=!1;""==jQuery.trim(e)?n="Field keys can't be empty. Please enter a key.":e!=e.toLowerCase()?n="Field keys must be lowercase.":e!=e.replace(" ","_")?n='Field keys must cannot use spaces. Separate with "_" instead.':"_"==e.slice(-1)?n='Field keys cannot end with a "_"':e!=this.slugify(e)?n="Invalid Format.":e!=this.keyExists(e,t)&&(n="Field keys must be unique. Please enter another key."),n?this.settingModel.set("error",n):(i.channel("app").trigger("update:fieldKey",t),this.settingModel.set("error",!1))},keyExists:function(e,t){var n=this.slugify(e);0!=n.length&&(e=n);var r=i.channel("fields").request("get:collection"),a=1,l=e;return _.each(r.models,(function(n){t!=n&&l==n.get("key")&&(l=e+"_"+a,a++)})),e=l},slugify:function(e){return jQuery.slugify(e,{separator:"_"})}})})),n("controllers/fields/notices",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"add:stagedField",this.addStagedField)},addStagedField:function(e){i.channel("notices").request("add","addStagedField",e.get("nicename")+" added to staging")}})})),n("controllers/fields/mobile",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"sortable:start",this.startWiggle),this.listenTo(i.channel("fields"),"sortable:stop",this.stopWiggle)},initWiggle:function(e){i.channel("app").request("is:mobile")&&jQuery(e.el).find(".nf-field-wrap").on("taphold",(function(){jQuery(this).ClassyWiggle("start",{degrees:[".65","1",".65","0","-.65","-1","-.65","0"],delay:50})}))},startWiggle:function(e){i.channel("app").request("is:mobile")&&(jQuery(e.item).removeClass("ui-sortable-helper").ClassyWiggle("stop"),jQuery(e.helper).css("opacity","0.75").ClassyWiggle("start",{degrees:[".5","1",".5","0","-.5","-1","-.5","0"]}))},stopWiggle:function(e){i.channel("app").request("is:mobile")&&(jQuery(e.helper).ClassyWiggle("stop"),jQuery(e.item).removeClass("ui-sortable-helper drag-selected"))}})})),n("controllers/fields/savedFields",[],(function(){return Marionette.Object.extend({ignoreAttributes:["editActive","order","saved","jBox"],initialize:function(){this.listenTo(i.channel("fields"),"update:setting",this.updateField),this.listenTo(i.channel("drawer"),"click:addSavedField",this.clickAddSavedField,this)},updateField:function(e){if(e.get("saved")){var t=!1,n=_.keys(e.changedAttributes()),i=this;_.each(n,(function(e){-1==i.ignoreAttributes.indexOf(e)&&(t=!0)})),t&&e.set("saved",!1)}},clickAddSavedField:function(e,t){var n=i.channel("app").request("clone:modelDeep",t).attributes;n.saved=!0,delete n.jBox,delete n.editActive,delete n.created_at,delete n.order,delete n.id,delete n.formID,delete n.parent_id;var r=i.channel("fields").request("get:type",n.type),a=_.clone(r.attributes),l=jQuery(e.target).parent().parent().find("input").val();console.log(l),a.nicename=l,n.label=l,n.nicename=l,t.set("addSavedLoading",!0);var s=JSON.stringify(n);jQuery.post(ajaxurl,{action:"nf_create_saved_field",field:s,security:nfAdmin.ajaxNonce},(function(e){e=JSON.parse(e),a.id=e.data.id,a.nicename=l,a.settingDefaults=n;i.channel("fields").request("get:typeCollection").add(a);i.channel("fields").request("get:typeSections").get("saved").get("fieldTypes").push(a.id),t.set("addSavedLoading",!1),t.unset("addSavedLoading",{silent:!0}),t.get("jBox").close(),i.channel("notices").request("add","addSaved","Saved Field Added")}))}})})),n("controllers/fields/fieldDatepicker",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-type-datepicker"),"render:setting",this.addDatepicker)},addDatepicker:function(e,t,n){let r=jQuery(n.el).find(".setting")[0],a={},l=i.channel("setting-type-datepicker").request("filter:settings",a,e,r);void 0!==l&&(a=l);var s=flatpickr(r,a);i.channel("setting-type-datepicker").trigger("loadComplete",s,e,t,n)}})})),n("controllers/fields/fieldDisplayCalc",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-calc_var"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){},getProductFields:function(e){var t=[e.get("select_product")],n=i.channel("fields").request("get:collection");return _.each(n.models,(function(e){"product"==e.get("type")&&t.push({label:e.get("label"),value:e.get("id")})})),t}})})),n("controllers/fields/fieldRepeater",["models/fields/fieldCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields-repeater"),"init:fieldModel",this.setupCollection,this),i.channel("fields-repeater").reply("add:childField",this.addChildField,this),i.channel("fields-repeater").reply("receive:fields",this.receiveFields,this),i.channel("fields-repeater").reply("get:childField",this.getChildField,this),i.channel("fields-repeater").reply("process:stagedField",this.processStagedFields,this),i.channel("fields-repeater").reply("sort:repeaterField",this.sortRepeaterField,this),i.channel("fields-repeater").reply("over:repeaterField",this.overRepeaterField,this),i.channel("fields-repeater").reply("out:repeaterField",this.outRepeaterField,this),i.channel("fields-repeater").reply("stop:repeaterField",this.stopRepeaterField,this),i.channel("fields-repeater").reply("start:repeaterField",this.startRepeaterField,this),i.channel("fields-repeater").reply("update:repeaterField",this.updateRepeaterField,this)},setupCollection:function(t){let n=t.get("fields");if(!1==n instanceof Backbone.Collection){let r=new e(n);t.set("fields",r),r.listenTo(i.channel("fields-repeater"),"clearEditActive",this.clearEditActive,r),r.listenTo(i.channel("app"),"after:appStart",this.clearEditActive,r),r.listenTo(i.channel("fields"),"delete:field",this.maybeDeleteField,r)}},maybeDeleteField:function(e){e.get("droppedInRepeater")||this.remove(e),e.set("droppedInRepeater",!1)},clearEditActive:function(e){_.each(this.models,(function(t){e.cid!==t.cid&&(t.set("editActive",!0),t.set("editActive",!1))}))},receiveFields:function(e,t,n){jQuery(e.item).hasClass("nf-stage")?this.processStagedFields(e,t,n):this.addChildField(e,t,n)},addChildField:function(e,t,n){let r,a=void 0!==e.item?jQuery(e.item).data("id"):e.get("slug"),l=i.channel("fields").request("get:field",a),s=t.repeaterFieldModel.get("fields");if("repeater"===a)return;null!=l&&(a=l.attributes.type,i.channel("app").trigger("click:delete",n,l)),r=i.channel("fields").request("get:type",a);let o=null!=i.channel("fields").request("get:tmpID")?i.channel("fields").request("get:tmpID"):"tmp";newField=s.add({id:o,label:r.get("nicename"),type:a,repeaterField:!0});let c=i.channel("fields-repeater").request("get:sortableEl");jQuery(c).hasClass("ui-sortable")||i.channel("fields-repeater").request("init:sortable");let d=jQuery(c).sortable("toArray");_.each(d,(function(e,t){!1==e.length>0?d[t]=o:e===o&&d.splice(t,1)})),i.channel("fields-repeater").request("sort:repeaterField",d);var h={object:"Field",label:newField.get("label"),change:"Added",dashicon:"plus-alt"},u={collection:s};return i.channel("changes").request("register:change","addObject",newField,null,h,u),void 0!==o&&void 0!==e.helper&&(jQuery(e.helper).prop("id",o),i.channel("app").request("stop:fieldsSortable",e),jQuery(e.helper).remove(),i.channel("fields").trigger("drop:fieldType",a,o)),o},getChildField:function(e,t,n){if(void 0===e)return;let r;if(null==t&&void 0!==n){const e=n.split(".")[0];t=i.channel("fields").request("get:field",e)}if(t){r=t.get("fields").get(e)}return r},processStagedFields(e,t,n){i.channel("fields").request("sort:staging");var r=i.channel("fields").request("get:staging"),a=i.channel("fields-repeater").request("get:sortableEl");let l=[];l=jQuery(a).hasClass("repeater")?jQuery(a).sortable("toArray"):["nf-staged-fields-drag"];let s=l.indexOf("nf-staged-fields-drag");_.each(r.models,(function(e,r){var a=i.channel("fields-repeater").request("add:childField",e,t,n);l.splice(s+r,0,a)})),s=l.indexOf("nf-staged-fields-drag"),l.splice(s,1),i.channel("fields").request("sort:fields",l),i.channel("fields").request("clear:staging"),jQuery(e.helper).remove()},sortRepeaterField:function(e,t,n){let r=i.channel("fields-repeater").request("get:repeaterFieldsCollection");null==n&&(n=!0);var a=i.channel("fields-repeater").request("get:sortableEl");if(jQuery(a).hasClass("ui-sortable")){e=e||jQuery(a).sortable("toArray");_.each(r.models,(function(t){t.get("order");var n=t.get("id");if(jQuery.isNumeric(n))var i="field-"+n;else i=n;var r=e.indexOf(i)+1;t.set("order",r)})),r.sort(),n&&(i.channel("app").request("update:setting","clean",!1),i.channel("app").request("update:db"))}},overRepeaterField:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=jQuery(e.helper).data("id"),n=(i.channel("fields").request("get:type",t).get("nicename"),i.channel("fields-repeater").request("get:sortableEl"));this.currentHelper=e.helper}else if(jQuery(e.item).hasClass("nf-stage")){n=i.channel("fields-repeater").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).addClass("nf-droppable-hover")}},outRepeaterField:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=i.channel("drawer-addField").request("get:typeHelperClone");jQuery(this.currentHelper).html(jQuery(t).html()),jQuery(this.currentHelper).removeClass("nf-field-wrap").addClass("nf-field-type-button").css({width:"",height:""});var n=i.channel("fields-repeater").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}else if(jQuery(e.item).hasClass("nf-stage")){n=i.channel("fields-repeater").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}},stopRepeaterField:function(e){jQuery(e.item).css("opacity",""),jQuery(e.helper).remove()},startRepeaterField:function(e){if(!jQuery(e.item).hasClass("nf-field-type-draggable")&&!jQuery(e.item).hasClass("nf-stage")){if(jQuery(e.item).show(),jQuery(e.item).hasClass("nf-field-wrap"))var t=jQuery(e.item).clone();else if(jQuery(e.item).parent().hasClass("layouts-cell"))t=$parentHelper.clone();else t=jQuery(e.item).clone();t.find(".nf-item-controls").remove(),jQuery(e.helper).html(t.html()),jQuery(e.helper).css("opacity","0.5"),jQuery(e.item).css("opacity","0.25")}},updateRepeaterField:function(e,t){if(i.channel("fields-repeater").request("sort:repeaterField"),!jQuery(e.item).hasClass("nf-field-type-draggable")&&!jQuery(e.item).hasClass("nf-stage")){var n=i.channel("fields-repeater").request("get:repeaterFieldsCollection"),r=jQuery(e.item).prop("id").replace("field-",""),a=n.get(r),l={fields:[]};_.each(n.models,(function(e){var t=e._previousAttributes.order,n=e.get("order");l.fields.push({model:e,attr:"order",before:t,after:n})}));a.get("label"),a._previousAttributes.order,a.get("order")}}})})),n("controllers/actions/types",["models/app/typeCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.installedActions=new e(_.filter(actionTypeData,(function(e){return"installed"==e.section})),{slug:"installed",nicename:nfi18n.installed}),this.availableActions=new e(_.filter(actionTypeData,(function(e){return"available"==e.section})),{slug:"available",nicename:nfi18n.available}),i.channel("actions").reply("get:type",this.getType,this),i.channel("actions").reply("get:installedActions",this.getInstalledActions,this),i.channel("actions").reply("get:availableActions",this.getAvailableActions,this)},getType:function(e){var t=this.installedActions.get(e);return t||(t=this.availableActions.get(e)),t},getInstalledActions:function(){return this.installedActions},getAvailableActions:function(){return this.availableActions},addStagedField:function(e){var t=jQuery(e.target).data("id");i.channel("fields").request("add:stagedField",t)},getTypeSections:function(){return this.fieldTypeSections}})})),n("models/actions/actionModel",[],(function(){return Backbone.Model.extend({defaults:{objectType:"Action",objectDomain:"actions",editActive:!1},initialize:function(){this.on("change",this.changeSetting,this);var e=i.channel("actions").request("get:type",this.get("type"));if(void 0!==e){var t=this;_.each(e.get("settingDefaults"),(function(e,n){t.get(n)||t.set(n,e,{silent:!0})})),i.channel("actions").trigger("init:actionModel",this),i.channel("actions-"+this.get("type")).trigger("init:actionModel",this),this.listenTo(i.channel("app"),"fire:updateFieldKey",this.updateFieldKey)}},changeSetting:function(e,t){i.channel("actionSetting-"+_.keys(this.changedAttributes())[0]).trigger("update:setting",this,t.settingModel),i.channel("actions").trigger("update:setting",this,t.settingModel),i.channel("app").trigger("update:setting",this,t.settingModel)},updateFieldKey:function(e,t){i.channel("app").trigger("replace:fieldKey",this,e,t)}})})),n("models/actions/actionCollection",["models/actions/actionModel"],(function(e){return Backbone.Collection.extend({model:e,comparator:"order",tmpNum:1,initialize:function(){this.on("add",this.addAction,this),this.on("remove",this.removeAction,this),this.newIDs=[]},addAction:function(e){this.newIDs.push(e.get("id"))},removeAction:function(e){this.removedIDs[e.get("id")]=e.get("id")}})})),n("controllers/actions/data",["models/actions/actionCollection","models/actions/actionModel"],(function(e,t){return Marionette.Object.extend({initialize:function(){if(this.collection=new e(preloadedFormData.actions),this.collection.tmpNum=1,0!=this.collection.models.length){var t=this;_.each(this.collection.models,(function(e){jQuery.isNumeric(e.get("id"))||t.collection.tmpNum++}))}this.collection.removedIDs={},i.channel("actions").reply("get:collection",this.getCollection,this),i.channel("actions").reply("get:action",this.getAction,this),i.channel("actions").reply("get:tmpID",this.getTmpID,this),i.channel("actions").reply("add",this.addAction,this),i.channel("actions").reply("delete",this.deleteAction,this)},getCollection:function(){return this.collection},getAction:function(e){return this.collection.get(e)},addAction:function(e,n){if(n=n||!1,!1==e instanceof Backbone.Model)var r=new t(e);else r=e;return this.collection.add(r,{silent:n}),i.channel("app").request("update:setting","clean",!1),r},deleteAction:function(e){this.collection.remove(e),i.channel("app").request("update:setting","clean",!1),i.channel("app").request("update:db")},getTmpID:function(){var e=this.collection.tmpNum;return this.collection.tmpNum++,"tmp-"+e}})})),n("controllers/actions/actionSettings",["models/app/settingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.collection=new e(actionSettings,{objectType:"actions"}),i.channel("actions").reply("get:settingModel",this.getSettingModel,this)},getSettingModel:function(e){return this.collection.findWhere({name:e})}})})),n("controllers/actions/editActive",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("actions").reply("clear:editActive",this.clearEditActive,this),this.listenTo(i.channel("drawer-editSettings"),"before:closeDrawer",this.clearEditActive)},clearEditActive:function(){var e=i.channel("actions").request("get:collection");_.each(e.models,(function(e){e.set("editActive",!1)}))}})})),n("controllers/actions/emailFromSetting",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actionSetting-from_address"),"update:setting",this.updateFromAddress)},updateFromAddress:function(e,t){if(void 0!==t){var n=e.get("from_address").trim();return"{wp:admin_email}"==n?t.set("warning",!1):n&&!this.isValidEmail(n)||nfAdmin.home_url_host!=n.replace(/.*@/,"")?t.set("warning",nfi18n.errorInvalidEmailFromAddress):t.set("warning",!1)}},isValidEmail:function(e){return/^.+@.+\..+$/.test(e)}})})),n("controllers/actions/addActionTypes",["models/actions/actionCollection","models/actions/actionModel"],(function(e,t){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actions"),"click:addAction",this.addAction),i.channel("actions").reply("add:actionType",this.addAction,this)},addAction:function(e){var t={id:i.channel("actions").request("get:tmpID"),type:e.get("id"),label:e.get("settingDefaults").label||e.get("nicename")},n=i.channel("actions").request("add",t),r={object:"Action",label:n.get("label"),change:"Added",dashicon:"plus-alt"};t={collection:i.channel("actions").request("get:collection")};i.channel("changes").request("register:change","addObject",n,null,r,t),i.channel("app").trigger("click:edit",{},n)}})})),n("controllers/actions/typeDrag",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addAction"),"startDrag:type",this.startDrag),this.listenTo(i.channel("drawer-addAction"),"stopDrag:type",this.stopDrag),i.channel("drawer-addAction").reply("get:typeHelperClone",this.getCurrentDraggableHelperClone,this)},startDrag:function(e,t){this.drawerEl=i.channel("app").request("get:drawerEl"),this.mainEl=i.channel("app").request("get:mainEl"),jQuery(this.drawerEl)[0].style.setProperty("overflow","visible","important"),this.draggableHelperClone=jQuery(t.helper).clone()},stopDrag:function(e,t){jQuery(this.drawerEl)[0].style.setProperty("overflow","hidden","important")},getCurrentDraggableHelperClone:function(){return this.draggableHelperClone}})})),n("controllers/actions/droppable",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("drop:actionType",this.dropActionType,this)},dropActionType:function(e,t){var n=jQuery(t.helper).data("type"),r=i.channel("actions").request("get:type",n);i.channel("actions").request("add:actionType",r)}})})),n("models/actions/typeModel",[],(function(){return Backbone.Model.extend({})})),n("models/actions/typeCollection",["models/actions/typeModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("controllers/actions/filterTypes",["models/actions/typeCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addAction"),"change:filter",this.filterActionTypes)},filterActionTypes:function(t,n){if(""!=jQuery.trim(t)){var r=[],a=i.channel("actions").request("get:installedActions");_.each(this.filterCollection(t,a),(function(e){r.push(e)}));var l=[],s=i.channel("actions").request("get:availableActions");_.each(this.filterCollection(t,s),(function(e){l.push(e)}));var o=new e(r);o.slug="installed",o.nicename="Installed";var c=new e(l);c.slug="available",c.nicename="Available",i.channel("drawer").trigger("filter:actionTypes",o,c),n.addObject&&0<o.length&&(i.channel("actions").request("add:actionType",o.models[0]),i.channel("drawer").request("clear:filter"))}else i.channel("drawer").trigger("clear:filter")},filterCollection:function(e,t){return e=e.toLowerCase(),t.filter((function(t){var n=!1;return(-1!=t.get("id").toLowerCase().indexOf(e)||-1!=t.get("nicename").toLowerCase().indexOf(e))&&(n=!0),t.get("tags")&&0==e.indexOf("#")&&_.each(t.get("tags"),(function(t){e.replace("#","").length>1&&-1!=t.toLowerCase().indexOf(e.replace("#",""))&&(n=!0)})),t.get("alias")&&_.each(t.get("alias"),(function(t){-1!=t.toLowerCase().indexOf(e)&&(n=!0)})),n}))}})})),n("controllers/actions/newsletterList",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-newsletter_list"),"show:setting",this.defaultFields),this.listenTo(i.channel("setting-type-newsletter_list"),"click:extra",this.clickListUpdate),this.listenTo(i.channel("actionSetting-newsletter_list"),"update:setting",this.maybeRenderFields),this.listenTo(i.channel("actionSetting-newsletter_list"),"update:setting",this.maybeRenderGroups),this.listenTo(i.channel("setting-name-newsletter_list_fields"),"init:settingModel",this.registerFieldsListener),this.listenTo(i.channel("setting-name-newsletter_list_groups"),"init:settingModel",this.registerGroupsListener)},defaultFields:function(e,t){this.maybeRenderFields(t,e),this.maybeRenderGroups(t,e)},registerFieldsListener:function(e){e.listenTo(i.channel("newsletter_list_fields"),"update:fieldMapping",this.updateFieldMapping,e)},registerGroupsListener:function(e){e.listenTo(i.channel("newsletter_list_groups"),"update:interestGroups",this.updateInterestGroups,e)},clickListUpdate:function(e,t,n,i){var r={action:"nf_"+n.attributes.type+"_get_lists",security:nfAdmin.ajaxNonce},a=this;jQuery(e.srcElement).addClass("spin"),jQuery.post(ajaxurl,r,(function(e){e=JSON.parse(e);a.updateLists(t,e.lists,i,n),n.set("newsletter_list",e.lists[0].value,{settingModel:t})})).always((function(){jQuery(e.srcElement).removeClass("spin")}))},updateLists:function(e,t,n,i){e.set("options",t),n.render()},maybeRenderFields:function(e,t){if(void 0!==t){var n=e.get("newsletter_list"),r=t.get("options");_.each(r,(function(e){n==e.value&&i.channel("newsletter_list_fields").trigger("update:fieldMapping",e.fields)})),e.set("newsletter_list_fields",0)}},maybeRenderGroups:function(e,t){if(void 0!==t){var n=e.get("newsletter_list"),r=t.get("options");_.each(r,(function(e){n==e.value&&i.channel("newsletter_list_groups").trigger("update:interestGroups",e.groups)})),e.set("newsletter_list_fields",0)}},updateFieldMapping:function(e){var t=this.get("settings");t.reset(),_.each(e,(function(e){t.add({name:e.value,type:"textbox",label:e.label,width:"full",use_merge_tags:{exclude:["user","post","system","querystrings"]}})})),this.set("settings",t)},updateInterestGroups:function(e){var t=this.get("settings");t.reset(),_.each(e,(function(e){t.add({name:e.value,type:"toggle",label:e.label,width:"full"})})),this.set("settings",t)}})})),n("controllers/actions/deleteFieldListener",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actions"),"init:actionModel",this.registerListener)},registerListener:function(e){e.listenTo(i.channel("fields"),"delete:field",this.maybeUpdateSettings)},maybeUpdateSettings:function(e){var t="{field:"+e.get("key")+"}";_.each(this.attributes,(function(e,n){if(_.isString(e))this.set(n,e.replace(t,""));else if(_.isArray(e))_.each(e,(function(i,r){_.isString(i)?console.log("string replace"):_.isArray(i)?console.log("array search"):_.isObject(i)&&(_.mapObject(i,(function(n,i){return _.isString(n)&&-1!=n.indexOf(t)&&e.splice(r,1),n})),this.set(n,e))}),this);else if(e instanceof Backbone.Collection){var i=e.filter((function(e){return _.every(e.attributes,(function(e){return!_.isString(e)||-1==e.indexOf(t)}))}));this.set(n,i)}}),this)}})})),n("controllers/actions/collectPaymentFields",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){if("field"!=e.get("total_type"))return!1;var r=this.getFields(e),a=t.get("payment_total");a=(a=a.replace("{field:","")).replace("}","");var l=i.channel("fields").request("get:field",a);void 0!==l&&void 0===_.findWhere(r,{value:t.get("payment_total")})&&r.push({label:l.get("label"),value:"{field:"+l.get("key")+"}"}),e.set("options",r)},getFields:function(e){var t=[e.get("default_options")],n=i.channel("fields").request("get:collection");return _.each(n.models,(function(e){"number"!=e.get("type")&&"total"!=e.get("type")&&"checkbox"!=e.get("type")||t.push({label:e.get("label"),value:"{field:"+e.get("key")+"}"})})),t=_.sortBy(t,(function(e){return e.label}))}})})),n("controllers/actions/collectPaymentCalculations",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){if("calc"==e.get("total_type")){var r=i.channel("app").request("get:formModel"),a=this.getCalcs(r,e);e.set("options",a)}},getCalcs:function(e,t){var n=[t.get("default_options")],i=e.get("settings").get("calculations");return _.each(i.models,(function(e){n.push({label:e.get("name"),value:"{calc:"+e.get("name")+"}"})})),n=_.sortBy(n,(function(e){return e.label}))}})})),n("controllers/actions/collectPaymentFixed",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){if("payment_total_type"!=e.get("name")||_.isEmpty(t.get("payment_total")))return!1;("undefined"==t.get("payment_total_type")||_.isEmpty(t.get("payment_total_type")))&&(-1!=t.get("payment_total").indexOf("{field")?t.set("payment_total_type","field"):-1!=t.get("payment_total").indexOf("{calc")?t.set("payment_total_type","calc"):t.set("payment_total_type","fixed"))}})})),n("controllers/actions/collectPayment",[],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actions-collectpayment"),"init:actionModel",this.initCollectPayment),this.listenTo(i.channel("app"),"before:renderSetting",this.maybeClearTotal)},initCollectPayment:function(e){e.listenTo(i.channel("calcs"),"update:calcName",this.maybeUpdateTotal)},maybeError:function(){},maybeUpdateTotal:function(e,t){if("calc"==this.get("payment_total_type")){var n=this.get("payment_total").replace("{calc:"+t+"}","{calc:"+e.get("name")+"}");this.set("payment_total",n)}},maybeClearTotal:function(e,t,n){"fixed"==t.get("payment_total_type")&&(-1==t.get("payment_total").indexOf("{field")&&-1==t.get("payment_total").indexOf("{calc")||t.set("payment_total",""))}})})),n("controllers/actions/save",[],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actions-save"),"init:actionModel",this.initSave)},initSave:function(e){this.model=e,this.listenTo(Backbone.Radio.channel("fields"),"add:field",this.checkFieldAdded),this.listenTo(Backbone.Radio.channel("fields"),"delete:field",this.checkFieldDeleted)},checkFieldAdded:function(e){"email"==e.get("type")&&(""===this.model.get("submitter_email")&&this.model.set("submitter_email",e.get("key")))},checkFieldDeleted:function(e){this.model.get("submitter_email")==e.get("key")&&this.model.set("submitter_email","")}})})),n("controllers/advanced/types",["models/app/typeCollection"],(function(e){return Marionette.Object.extend({initialize:function(){if(this.collection=new e(formSettingTypeData),!nfAdmin.devMode){var t=this.collection.where({id:"calculations"});this.collection.remove(t)}i.channel("settings").reply("get:type",this.getType,this),i.channel("settings").reply("get:typeCollection",this.getCollection,this)},getType:function(e){return this.collection.get(e)},getCollection:function(){return this.collection}})})),n("models/advanced/settingsModel",[],(function(){return Backbone.Model.extend({defaults:{objectType:"Form Setting",editActive:!1},initialize:function(){this.bind("change",this.changeSetting,this);var e=i.channel("settings").request("get:collection");_.each(e.models,(function(e){void 0===this.get(e.get("name"))&&this.set(e.get("name"),e.get("value"),{silent:!0}),i.channel(e.get("type")).trigger("init:dataModel",this,e)}),this),this.listenTo(i.channel("app"),"fire:updateFieldKey",this.updateFieldKey)},changeSetting:function(e,t){i.channel("app").trigger("update:setting",this,t.settingModel)},updateFieldKey:function(e,t){i.channel("app").trigger("replace:fieldKey",this,e,t)}})})),n("controllers/advanced/data",["models/advanced/settingsModel"],(function(e){return Marionette.Object.extend({initialize:function(){this.model=new e(preloadedFormData.settings),i.channel("settings").reply("get:settings",this.getSettings,this),i.channel("settings").reply("get:setting",this.getSetting,this),i.channel("settings").reply("update:setting",this.updateSetting,this)},getSettings:function(){return this.model},updateSetting:function(e,t,n){n=n||!1,this.model.set(e,t,{silent:n})},getSetting:function(e){return this.model.get(e)}})})),n("controllers/advanced/formSettings",["models/app/settingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.collection=new e(formSettings,{objectType:"settings"}),i.channel("settings").reply("get:settingModel",this.getSettingModel,this),i.channel("settings").reply("get:collection",this.getSettingCollection,this)},getSettingModel:function(e){return this.collection.findWhere({name:e})},getSettingCollection:function(){return this.collection}})})),n("controllers/advanced/editActive",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("settings").reply("clear:editActive",this.clearEditActive,this),this.listenTo(i.channel("drawer-editSettings"),"before:closeDrawer",this.clearEditActive)},clearEditActive:function(){var e=i.channel("settings").request("get:typeCollection");_.each(e.models,(function(e){e.set("editActive",!1)}))}})})),n("controllers/advanced/clickEdit",["models/advanced/settingsModel"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("settings"),"click:edit",this.clickEdit)},clickEdit:function(e,t){var n=i.channel("settings").request("get:settings");i.channel("app").request("open:drawer","editSettings",{model:n,groupCollection:t.get("settingGroups"),typeModel:t}),i.channel("drawer").request("get:preventClose")||t.set("editActive",!0)}})})),n("controllers/advanced/calculations",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("option-repeater-calculations"),"keyup:option",this.keyUp),this.listenTo(i.channel("option-repeater-calculations"),"update:option",this.updateCalc),this.listenTo(i.channel("option-repeater-calculations"),"sort:option",this.sortCalc)},keyUp:function(e,t){var n=jQuery(e.target).val(),i=jQuery(e.target).data("id");"name"==i?(this.checkName(n,t),this.checkEQ(t.get("eq"),t)):"eq"==i?this.checkEQ(n,t):"dec"==i&&this.checkDec(n,t)},updateCalc:function(e){this.checkName(e.get("name"),e,!1),this.checkEQ(e.get("eq"),e),this.checkDec(e.get("dec"),e),Backbone.Radio.channel("calcs").trigger("update:calc",e)},sortCalc:function(e,t){this.checkAllCalcs(t.collection)},checkName:function(e,t,n){n=n||!0;var r=t.get("errors"),a=t.collection.where({name:jQuery.trim(e)});if(e==t.get("name")&&(a=[]),0!=a.length)r.nameExists="Calculation names must be unique. Please enter another name.";else{var l=t.get("name");t.set("name",e,{silent:n}),i.channel("calcs").trigger("update:calcName",t,l),delete r.nameExists}t.set("errors",r),t.trigger("change:errors",t)},checkEQ:function(e,t){var n=t.get("errors"),i=!1,r=!1,a=e.match(new RegExp(/{calc:(.*?)}/g));if(a){var l=t.collection;a=a.map((function(e){var a=e.replace("}","").replace("{calc:",""),s=l.findWhere({name:a});a==t.get("name")?(n.selfRef="A calculation can't reference itself!",i=!0):s&&s.get("order")>t.get("order")&&(r=!0,n.futureCalc="Can't reference a future calculation!")}))}i||delete n.selfRef,r||delete n.futureCalc,t.set("errors",n),t.trigger("change:errors",t)},checkDec:function(e,t){if(void 0===e)return!1;var n=t.get("errors"),i=!1,r=Math.abs(parseInt(e.trim()));""!==e.trim()&&r.toString()!==e.trim()&&(i=!0,n.nonIntDec="Decimals must be a non-negative integer!"),i||delete n.nonIntDec,t.set("errors",n),t.trigger("change:errors",t)},checkAllCalcs:function(e){var t=this;e.models.map((function(e){t.checkName(e.get("name"),e),t.checkEQ(e.get("eq"),e),t.checkDec(e.get("dec"),e)}))}})})),n("controllers/loadControllers",["controllers/app/remote","controllers/app/drawer","controllers/app/drawerConfig","controllers/app/domainConfig","controllers/app/data","controllers/app/drawerToggleSettingGroup","controllers/app/updateDB","controllers/app/formData","controllers/app/previewLink","controllers/app/menuButtons","controllers/app/trackChanges","controllers/app/undoChanges","controllers/app/publishResponse","controllers/app/changeDomain","controllers/app/pushstate","controllers/app/hotkeys","controllers/app/cleanState","controllers/app/coreUndo","controllers/app/cloneModelDeep","controllers/app/getSettingChildView","controllers/app/changeSettingDefault","controllers/app/fieldset","controllers/app/toggleSetting","controllers/app/buttonToggleSetting","controllers/app/numberSetting","controllers/app/radioSetting","controllers/app/itemControls","controllers/app/mergeTags","controllers/app/mergeTagBox","controllers/app/itemSettingFill","controllers/app/confirmPublish","controllers/app/rte","controllers/app/settingFieldSelect","controllers/app/settingFieldList","controllers/app/settingHTML","controllers/app/settingColor","controllers/app/changeMenu","controllers/app/mobile","controllers/app/notices","controllers/app/unloadCheck","controllers/app/formContentFilters","controllers/app/formContentGutterFilters","controllers/app/cloneCollectionDeep","controllers/app/trackKeyDown","controllers/app/perfectScroll","controllers/app/getNewSettingGroupCollection","controllers/app/settingMedia","controllers/app/publicLink","controllers/fields/types","controllers/fields/fieldTypeDrag","controllers/fields/stagingDrag","controllers/fields/staging","controllers/fields/stagingSortable","controllers/fields/filterTypes","controllers/fields/sortable","controllers/fields/data","controllers/app/optionRepeater","controllers/app/imageOptionRepeater","controllers/fields/editActive","controllers/fields/fieldSettings","controllers/fields/fieldCreditCard","controllers/fields/fieldList","controllers/fields/fieldPassword","controllers/fields/fieldQuantity","controllers/fields/fieldShipping","controllers/fields/key","controllers/fields/notices","controllers/fields/mobile","controllers/fields/savedFields","controllers/fields/fieldDatepicker","controllers/fields/fieldDisplayCalc","controllers/fields/fieldRepeater","controllers/actions/types","controllers/actions/data","controllers/actions/actionSettings","controllers/actions/editActive","controllers/actions/emailFromSetting","controllers/actions/addActionTypes","controllers/actions/typeDrag","controllers/actions/droppable","controllers/actions/filterTypes","controllers/actions/newsletterList","controllers/actions/deleteFieldListener","controllers/actions/collectPaymentFields","controllers/actions/collectPaymentCalculations","controllers/actions/collectPaymentFixed","controllers/actions/collectPayment","controllers/actions/save","controllers/advanced/types","controllers/advanced/data","controllers/advanced/formSettings","controllers/advanced/editActive","controllers/advanced/clickEdit","controllers/advanced/calculations"],(function(e,t,n,i,r,a,l,s,o,c,d,h,u,p,g,f,m,y,v,w,b,C,j,k,M,T,S,x,F,Q,_,q,D,O,A,E,L,R,V,N,z,B,H,I,P,G,$,K,W,U,J,Y,Z,X,ee,te,ne,ie,re,ae,le,se,oe,ce,de,he,ue,pe,ge,fe,me,ye,ve,we,be,Ce,je,ke,Me,Te,Se,xe,Fe,Qe,_e,qe,De,Oe,Ae,Ee,Le,Re,Ve,Ne){return Marionette.Object.extend({initialize:function(){new z,new B,new f,new e,new t,new n,new i,new a,new o,new c,new d,new h,new u,new p,new m,new y,new v,new S,new _,new q,new D,new O,new A,new E,new $,new L,new R,new V,new N,new l,new H,new I,new P,new G,new K,new C,new ne,new ie,new W,new U,new J,new Y,new Z,new X,new ee,new b,new j,new k,new M,new T,new w,new re,new ae,new le,new se,new oe,new ce,new de,new he,new ue,new pe,new ge,new fe,new me,new ye,new xe,new Fe,new _e,new De,new Oe,new ve,new we,new be,new Ce,new je,new ke,new Me,new Te,new Se,new Qe,new qe,new Ae,new Le,new Ne,new Ee,new Re,new Ve,new r,new te,new s,new x,new F,new Q}})})),n("views/fields/mainContentEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-main-content-fields-empty",onBeforeDestroy:function(){jQuery(this.el).parent().removeClass("nf-fields-empty-droppable").droppable("destroy")},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},onShow:function(){jQuery(this.el).parent().hasClass("ui-sortable")&&jQuery(this.el).parent().sortable("destroy"),jQuery(this.el).parent().addClass("nf-fields-empty-droppable"),jQuery(this.el).parent().droppable({accept:function(e){if(jQuery(e).hasClass("nf-stage")||jQuery(e).hasClass("nf-field-type-button"))return!0},activeClass:"nf-droppable-active",hoverClass:"nf-droppable-hover",tolerance:"pointer",over:function(e,t){t.item=t.draggable,i.channel("app").request("over:fieldsSortable",t)},out:function(e,t){t.item=t.draggable,i.channel("app").request("out:fieldsSortable",t)},drop:function(e,t){t.item=t.draggable,i.channel("app").request("receive:fieldsSortable",t);var n=i.channel("fields").request("get:collection");n.trigger("reset",n)}})}})})),n("views/app/formTitle",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-header-form-title",initialize:function(){this.model.on("change:title",this.render,this)},templateHelpers:function(){return{renderTitle:function(){var e=i.channel("app").request("get:formModel");return _.escape(e.get("settings").get("title"))}}}})})),n("views/loadViews",["views/fields/fieldItem","views/fields/mainContentEmpty","views/app/formTitle"],(function(e,t,n){return Marionette.Object.extend({initialize:function(){i.channel("views").reply("get:fieldItem",this.getFieldItem),i.channel("views").reply("get:mainContentEmpty",this.getMainContentEmpty),i.channel("views").reply("get:formTitle",this.getFormTitle)},getFieldItem:function(t){return e},getMainContentEmpty:function(){return t},getFormTitle:function(){return n}})}));var i=Backbone.Radio;jQuery(document).ready((function(e){t(["views/app/builder","controllers/loadControllers","views/loadViews"],(function(t,n,r){(new(Marionette.Application.extend({initialize:function(e){var t=this;Marionette.Renderer.render=function(e,n){return(e=t.template(e))(n)},i.channel("app").trigger("before:loadControllers",this);new n;i.channel("app").trigger("after:loadControllers",this),i.channel("app").trigger("before:loadViews",this);new r;i.channel("app").trigger("after:loadViews",this),i.channel("app").reply("get:template",this.template)},onStart:function(){new t;i.channel("app").trigger("after:appStart",this),0==nfAdmin.formID&&i.channel("app").request("open:drawer","addField")},template:function(t){return _.template(e(t).html(),{evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g,variable:"data"})}}))).start()}))})),n("main",(function(){}))}();
2
  //# sourceMappingURL=builder.js.map
1
+ !function(){var e,t,n;!function(i){var r,a,l,s,o={},c={},d={},h={},u=Object.prototype.hasOwnProperty,p=[].slice,g=/\.js$/;function f(e,t){return u.call(e,t)}function m(e,t){var n,i,r,a,l,s,o,c,h,u,p,f=t&&t.split("/"),m=d.map,y=m&&m["*"]||{};if(e&&"."===e.charAt(0))if(t){for(l=(e=e.split("/")).length-1,d.nodeIdCompat&&g.test(e[l])&&(e[l]=e[l].replace(g,"")),e=f.slice(0,f.length-1).concat(e),h=0;h<e.length;h+=1)if("."===(p=e[h]))e.splice(h,1),h-=1;else if(".."===p){if(1===h&&(".."===e[2]||".."===e[0]))break;h>0&&(e.splice(h-1,2),h-=2)}e=e.join("/")}else 0===e.indexOf("./")&&(e=e.substring(2));if((f||y)&&m){for(h=(n=e.split("/")).length;h>0;h-=1){if(i=n.slice(0,h).join("/"),f)for(u=f.length;u>0;u-=1)if((r=m[f.slice(0,u).join("/")])&&(r=r[i])){a=r,s=h;break}if(a)break;!o&&y&&y[i]&&(o=y[i],c=h)}!a&&o&&(a=o,s=c),a&&(n.splice(0,s,a),e=n.join("/"))}return e}function y(e,t){return function(){var n=p.call(arguments,0);return"string"!=typeof n[0]&&1===n.length&&n.push(null),a.apply(i,n.concat([e,t]))}}function v(e){return function(t){o[e]=t}}function w(e){if(f(c,e)){var t=c[e];delete c[e],h[e]=!0,r.apply(i,t)}if(!f(o,e)&&!f(h,e))throw new Error("No "+e);return o[e]}function b(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function C(e){return function(){return d&&d.config&&d.config[e]||{}}}l=function(e,t){var n,i=b(e),r=i[0];return e=i[1],r&&(n=w(r=m(r,t))),r?e=n&&n.normalize?n.normalize(e,function(e){return function(t){return m(t,e)}}(t)):m(e,t):(r=(i=b(e=m(e,t)))[0],e=i[1],r&&(n=w(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},s={require:function(e){return y(e)},exports:function(e){var t=o[e];return void 0!==t?t:o[e]={}},module:function(e){return{id:e,uri:"",exports:o[e],config:C(e)}}},r=function(e,t,n,r){var a,d,u,p,g,m,b=[],C=typeof n;if(r=r||e,"undefined"===C||"function"===C){for(t=!t.length&&n.length?["require","exports","module"]:t,g=0;g<t.length;g+=1)if("require"===(d=(p=l(t[g],r)).f))b[g]=s.require(e);else if("exports"===d)b[g]=s.exports(e),m=!0;else if("module"===d)a=b[g]=s.module(e);else if(f(o,d)||f(c,d)||f(h,d))b[g]=w(d);else{if(!p.p)throw new Error(e+" missing "+d);p.p.load(p.n,y(r,!0),v(d),{}),b[g]=o[d]}u=n?n.apply(o[e],b):void 0,e&&(a&&a.exports!==i&&a.exports!==o[e]?o[e]=a.exports:u===i&&m||(o[e]=u))}else e&&(o[e]=n)},e=t=a=function(e,t,n,o,c){if("string"==typeof e)return s[e]?s[e](t):w(l(e,t).f);if(!e.splice){if((d=e).deps&&a(d.deps,d.callback),!t)return;t.splice?(e=t,t=n,n=null):e=i}return t=t||function(){},"function"==typeof n&&(n=o,o=c),o?r(i,e,t,n):setTimeout((function(){r(i,e,t,n)}),4),a},a.config=function(e){return a(e)},e._defined=o,(n=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),f(o,e)||f(c,e)||(c[e]=[e,t,n])}).amd={jQuery:!0}}(),n("../lib/almond",(function(){})),n("views/app/menuItem",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-app-menu-item",initialize:function(){this.listenTo(i.channel("app"),"change:currentDomain",this.render),this.model.on("change",this.render,this)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},events:{"click a":"clickAppMenu"},clickAppMenu:function(e){i.channel("app").trigger("click:menu",e,this.model)},templateHelpers:function(){return{renderDashicons:function(){if(!this.dashicons)return"";var e=document.createElement("span");return e.classList.add("dashicons"),e.classList.add(this.dashicons),e.outerHTML},renderClasses:function(){var e=this.classes;return i.channel("app").request("get:currentDomain").get("id")==this.id&&(e+=" active"),e},renderUrl:function(){if(""!=this.url){var e=i.channel("app").request("get:formModel");return this.url+e.get("id")}return"#"},renderTarget:function(){return""!=this.url?"_blank":"_self"},renderDisabled:function(){return this.disabled?"disabled":""}}}})})),n("views/app/menu",["views/app/menuItem"],(function(e){return Marionette.CollectionView.extend({tagName:"div",childView:e,onShow:function(){jQuery(this.el).find("li:last").unwrap()}})})),n("views/app/menuButtons",[],(function(){return Marionette.ItemView.extend({tagName:"span",template:"#tmpl-nf-app-header-action-button",initialize:function(){this.listenTo(i.channel("app"),"change:clean",this.render,this),this.listenTo(i.channel("app"),"change:loading",this.render,this),this.listenTo(i.channel("app"),"response:updateDB",this.bounceIcon,this)},templateHelpers:function(){var e=this;return{renderPublish:function(){if(e.publishWidth?this.publishWidth=e.publishWidth+"px":this.publishWidth="auto",i.channel("app").request("get:setting","loading"))var t=i.channel("app").request("get:template","#tmpl-nf-add-header-publish-loading");else t=i.channel("app").request("get:template","#tmpl-nf-app-header-publish-button");return t(this)},maybeDisabled:function(){return i.channel("app").request("get:setting","clean")?"disabled":""},maybeRenderCancel:function(){return""},renderPublicLink:function(){var e=Backbone.Radio.channel("app").request("get:formModel");if(!isNaN(e.get("id")))return i.channel("app").request("get:template","#tmpl-nf-app-header-public-link")(this)}}},onShow:function(){jQuery(this.el).find(".publish")},events:{"click .publish":"clickPublish","click .viewChanges":"clickViewChanges","click .publicLink":"clickPublicLink"},clickPublish:function(e){i.channel("app").trigger("click:publish",e)},clickViewChanges:function(e){i.channel("app").trigger("click:viewChanges",e)},clickPublicLink:function(e){i.channel("app").trigger("click:publicLink",e)},bounceIcon:function(e){jQuery(this.el).find(".dashicons-backup").effect("bounce",{times:3},600)}})})),n("views/app/mobileMenuButton",[],(function(){return Marionette.ItemView.extend({tagName:"span",template:"#tmpl-nf-mobile-menu-button",initialize:function(){this.listenTo(i.channel("app"),"change:clean",this.render,this)},templateHelpers:function(){return{maybeDisabled:function(){return i.channel("app").request("get:setting","clean")?"disabled":""}}},events:{"click .nf-mobile-menu":"clickMobileMenu"},clickMobileMenu:function(e){var t=i.channel("app").request("get:builderEl");jQuery(t).toggleClass("nf-menu-expand")}})})),n("views/app/header",["views/app/menu","views/app/menuButtons","views/app/mobileMenuButton"],(function(e,t,n){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-app-header",regions:{menu:".nf-app-menu",buttons:".nf-app-buttons",mobileMenuButton:".nf-mobile-menu-button"},onRender:function(){var r=i.channel("app").request("get:domainCollection");this.menu.show(new e({collection:r})),this.buttons.show(new t),this.mobileMenuButton.show(new n)},events:{"click #nf-logo":"clickLogo"},clickLogo:function(e){}})})),n("views/app/subHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-sub-header"})})),n("views/app/builderHeader",["views/app/header","views/app/subHeader"],(function(e,t){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-header",regions:{app:"#nf-app-header",formTitle:"#nf-app-form-title",appSub:"#nf-app-sub-header"},initialize:function(){this.listenTo(i.channel("app"),"change:currentDomain",this.changeSubHeader)},onShow:function(){this.app.show(new e);var t=i.channel("app").request("get:formModel").get("settings"),n=i.channel("views").request("get:formTitle");this.formTitle.show(new n({model:t})),this.changeSubHeader()},changeSubHeader:function(){var e=i.channel("app").request("get:currentDomain"),t=e.get("getSubHeaderView").call(e);this.appSub.show(t)}})})),n("views/app/main",[],(function(){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-main",className:"nf-main-test",maybeDone:!1,offsetRight:!1,offsetLeft:!1,regions:{gutterLeft:"#nf-main-gutter-left",body:"#nf-main-body",gutterRight:"#nf-main-gutter-right"},initialize:function(){this.listenTo(i.channel("app"),"change:currentDomain",this.render),i.channel("app").reply("get:mainEl",this.getMainEl,this),jQuery(window).on("resize",{context:this},this.resizeBothGutters),this.listenTo(i.channel("drawer"),"before:open",this.setBothGuttersAbsolute),this.listenTo(i.channel("drawer"),"opened",this.setBothGuttersFixed),this.listenTo(i.channel("drawer"),"before:close",this.setBothGuttersAbsolute),this.listenTo(i.channel("drawer"),"closed",this.setBothGuttersFixed),this.listenTo(i.channel("app"),"change:currentDomain",(function(){setTimeout((function(){i.channel("app").request("update:gutters")}),300,this)}),this),i.channel("app").reply("update:gutters",this.updateGutters,this)},onShow:function(){i.channel("main").trigger("show:main",this)},onRender:function(){var e=i.channel("app").request("get:currentDomain"),t=e.get("getMainContentView").call(e);this.body.show(t);var n=e.get("getGutterLeftView").call(e);this.gutterLeft.show(n);var r=e.get("getGutterRightView").call(e);this.gutterRight.show(r),i.channel("main").trigger("render:main")},getMainEl:function(){return jQuery(this.el).parent()},onAttach:function(){this.initialGutterResize()},onBeforeDestroy:function(){jQuery(window).off("resize",this.resize)},initialGutterResize:function(){this.resizeGutter(this.gutterLeft.el),this.resizeGutter(this.gutterRight.el),this.setBothGuttersFixed(this)},resizeBothGutters:function(e){var t=e?e.data.context:this,n=t.gutterLeft.el,i=t.gutterRight.el;t.resizeGutter(n,t),t.resizeGutter(i,t),t.setBothGuttersAbsolute(t),clearTimeout(t.maybeDone),t.maybeDone=setTimeout(t.setBothGuttersFixed,100,t)},resizeGutter:function(e,t){var n=jQuery(e).offset().top,i=jQuery(window).height()-n;jQuery(e).height(i)},setBothGuttersFixed:function(e){e=e||this;var t=(i=jQuery(e.gutterLeft.el).offset()).top,n=i.left;jQuery(e.gutterLeft.el).css({position:"fixed",left:n,top:t});var i=jQuery(e.gutterLeft.el).offset(),r=jQuery(e.gutterRight.el).offset(),a=r.top,l=r.left;jQuery(e.gutterRight.el).css({position:"fixed",left:l,top:a})},setBothGuttersAbsolute:function(e){e=e||this;jQuery(e.gutterLeft.el).offset(),jQuery(e.gutterRight.el).offset();var t=jQuery("#nf-main").scrollTop();jQuery(e.gutterLeft.el).css({position:"absolute",left:0,top:t}),jQuery(e.gutterRight.el).css({position:"absolute",top:t,right:0,left:"auto"})},updateGutters:function(){this.resizeBothGutters()}})})),n("views/app/mobileMenuItem",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-mobile-menu-item",onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},events:{"click a":"clickAppMenu"},clickAppMenu:function(e){i.channel("app").trigger("click:menu",e,this.model)},templateHelpers:function(){return{renderDashicons:function(){if(!this.mobileDashicon)return"";var e=document.createElement("span");return e.classList.add("dashicons"),e.classList.add(this.mobileDashicon),e.outerHTML},renderClasses:function(){var e=this.classes;return i.channel("app").request("get:currentDomain").get("id")==this.id&&(e+=" active"),e},renderUrl:function(){if(""!=this.url){var e=i.channel("app").request("get:formModel");return this.url+e.get("id")}return"#"},renderTarget:function(){return""!=this.url?"_blank":"_self"},renderDisabled:function(){return this.disabled?"disabled":""}}}})})),n("views/app/mobileMenu",["views/app/mobileMenuItem"],(function(e){return Marionette.CompositeView.extend({tagName:"div",template:"#tmpl-nf-mobile-menu",childView:e,initialize:function(){this.listenTo(i.channel("app"),"change:clean",this.render,this)},attachHtml:function(e,t){jQuery(e.el).find(".secondary").append(t.el)},templateHelpers:function(){return{maybeDisabled:function(){return i.channel("app").request("get:setting","clean")?"disabled":""}}},events:{"click .nf-publish":"clickPublish"},clickPublish:function(e){i.channel("app").trigger("click:publish",e);var t=i.channel("app").request("get:builderEl");jQuery(t).toggleClass("nf-menu-expand")}})})),n("views/app/drawer/contentEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-empty"})})),n("views/app/drawer",["views/app/drawer/contentEmpty"],(function(e){return Marionette.LayoutView.extend({template:"#tmpl-nf-drawer",regions:{header:"#nf-drawer-header",content:"#nf-drawer-content",footer:"#nf-drawer-footer"},initialize:function(){i.channel("app").reply("get:drawerEl",this.getEl,this),i.channel("drawer").reply("load:drawerContent",this.loadContent,this),i.channel("drawer").reply("empty:drawerContent",this.emptyContent,this)},onShow:function(){jQuery(this.el).parent().perfectScrollbar()},loadContent:function(e,t){var n=i.channel("app").request("get:drawer",e),r=n.get("getContentView").call(n,t),a=n.get("getHeaderView").call(n,t),l=n.get("getFooterView").call(n,t);this.header.show(a),this.content.show(r),this.footer.show(l)},emptyContent:function(){this.header.empty(),this.content.empty(),this.footer.empty()},getEl:function(){return jQuery(this.el).parent()},events:{"click .nf-toggle-drawer":"clickToggleDrawer"},clickToggleDrawer:function(){i.channel("app").trigger("click:toggleDrawerSize")}})})),n("views/app/drawer/mergeTagItem",[],(function(){return Marionette.ItemView.extend({tagName:"li",template:"#tmpl-nf-merge-tags-item",onBeforeDestroy:function(){this.model.off("change:active",this.render)},initialize:function(){this.model.on("change:active",this.render,this)},events:{"click a":"clickTag"},clickTag:function(e){i.channel("mergeTags").trigger("click:mergeTag",e,this.model)},templateHelpers:function(){return{renderClasses:function(){if(this.active)return"active"}}}})})),n("views/app/drawer/mergeTagsSection",["views/app/drawer/mergeTagItem"],(function(e){return Marionette.CompositeView.extend({tagName:"div",childView:e,template:"#tmpl-nf-merge-tags-section",initialize:function(){this.collection=this.model.get("tags"),this.model.on("change",this.render,this),this.model.get("id")},onBeforeDestroy:function(){(this.model.off("change",this.render),"fields"==this.model.get("id"))&&i.channel("fields").request("get:collection").off("all",this.updateFields,this)},attachHtml:function(e,t){jQuery(e.el).find(".merge-tags").append(t.el)},updateFields:function(){var e=i.channel("fields").request("get:collection");this.model.set("tags",e)}})})),n("models/app/mergeTagModel",[],(function(){return Backbone.Model.extend({defaults:{active:!1,exclude:!1}})})),n("models/app/mergeTagCollection",["models/app/mergeTagModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("views/app/drawer/mergeTagsContent",["views/app/drawer/mergeTagsSection","models/app/mergeTagCollection"],(function(e,t){return Marionette.CollectionView.extend({tagName:"div",template:"#tmpl-nf-merge-tags-content",childView:e,initialize:function(){i.channel("mergeTags").reply("get:view",this.getMergeTagsView,this)},reRender:function(e){var n=i.channel("mergeTags").request("get:collection"),r=n.where({default_group:!0});if("actions"==i.channel("app").request("get:currentDomain").get("id")){var a=n.where({id:"calcs"});r=r.concat(a)}this.collection=new t(r);var l=this,s=e.get("use_merge_tags");"object"==typeof s&&(void 0!==s.exclude&&_.each(s.exclude,(function(e){l.collection.remove(e)})),void 0!==s.include&&_.each(n.models,(function(e){-1!=s.include.indexOf(e.get("id"))&&l.collection.add(e)}))),this.render()},getMergeTagsView:function(){return this}})})),n("views/app/builder",["views/app/builderHeader","views/app/main","views/app/mobileMenu","views/app/drawer","views/app/drawer/mergeTagsContent"],(function(e,t,n,r,a){return Marionette.LayoutView.extend({template:"#tmpl-nf-builder",el:"#nf-builder",regions:{header:"#nf-header",main:"#nf-main",menuDrawer:"#nf-menu-drawer",drawer:"#nf-drawer",mergeTagsContent:".merge-tags-content"},initialize:function(){i.channel("app").reply("get:builderEl",this.getBuilderEl,this),i.channel("app").reply("get:builderView",this.getBuilderView,this),this.render();var l=i.channel("mergeTags").request("get:collection").clone();this.mergeTagsContent.show(new a({collection:l})),this.header.show(new e),this.main.show(new t);var s=i.channel("app").request("get:domainCollection");this.menuDrawer.show(new n({collection:s})),this.drawer.show(new r)},onRender:function(){},getBuilderEl:function(){return this.el},getBuilderView:function(){return this},events:{"click .nf-open-drawer":"openDrawer","click .nf-change-domain":"changeDomain","click .nf-close-drawer":"closeDrawer"},openDrawer:function(e){i.channel("app").trigger("click:openDrawer",e)},closeDrawer:function(){i.channel("app").trigger("click:closeDrawer")},changeDomain:function(e){i.channel("app").trigger("click:menu",e)}})})),n("controllers/app/remote",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting"),"remote",this.addListener)},addListener:function(e,t){var n=e.get("remote").listen;this.listenTo(i.channel("fieldSetting-"+n),"update:setting",this.updateSetting),this.listenTo(i.channel("actionSetting-"+n),"update:setting",this.updateSetting),this.listenTo(i.channel("setting-type-"+e.get("type")),"click:extra",this.clickExtra),e.listenTo(i.channel("setting-remote"),"get:remote",this.getRemote,e),i.channel("setting-remote").trigger("get:remote",t)},clickExtra:function(e,t,n,r){jQuery(e.srcElement).addClass("spin"),i.channel("setting-remote").trigger("get:remote",n)},updateSetting:function(e,t){i.channel("setting-remote").trigger("get:remote",e)},getRemote:function(e){var t=this.get("remote"),n={parentValue:e.get(t.listen),action:t.action,security:t.security?t.security:nfAdmin.ajaxNonce},i=this;jQuery.post(ajaxurl,n,(function(t){t=JSON.parse(t);"textbox"==i.get("type")&&e.set(i.get("name"),t.value),"select"==i.get("type")&&(i.set("options",t.options),i.trigger("rerender"))}))}})})),n("controllers/app/drawer",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:openDrawer",this.clickOpenDrawer),this.listenTo(i.channel("app"),"click:closeDrawer",this.closeDrawer),this.listenTo(i.channel("app"),"click:toggleDrawerSize",this.toggleDrawerSize),i.channel("app").reply("open:drawer",this.openDrawer,this),i.channel("app").reply("close:drawer",this.closeDrawer,this),i.channel("drawer").reply("get:closedRightPos",this.getClosedDrawerPos,this),i.channel("drawer").reply("prevent:close",this.preventClose,this),i.channel("drawer").reply("enable:close",this.enableClose,this),i.channel("drawer").reply("get:preventClose",this.maybePreventClose,this),this.objPreventClose={},this.listenTo(i.channel("drawer"),"filter:focused",this.filterFocused)},closeDrawer:function(){var e=i.channel("app").request("get:currentDrawer");if(!e||this.maybePreventClose())return!1;i.channel("drawer-"+e.get("id")).trigger("before:closeDrawer"),i.channel("drawer").trigger("before:closeDrawer"),i.channel("drawer").trigger("before:close"),i.channel("drawer").request("empty:drawerContent");var t=i.channel("app").request("get:builderEl");jQuery(t).addClass("nf-drawer-closed").removeClass("nf-drawer-opened"),jQuery(t).removeClass("disable-main");var n=this.getClosedDrawerPos(),r=i.channel("app").request("get:drawerEl");jQuery(r).css({right:n});var a=this;this.checkCloseDrawerPos=setInterval((function(){n==jQuery(r).css("right")&&(clearInterval(a.checkCloseDrawerPos),i.channel("app").request("update:currentDrawer",!1),i.channel("drawer").trigger("closed"),jQuery(".nf-master-control").css("z-index",98))}),150)},clickOpenDrawer:function(e){var t=jQuery(e.target).data("drawerid");this.openDrawer(t)},openDrawer:function(e,t){if(this.maybePreventClose())return!1;if(void 0!==(t=t||{}).model){var n=i.channel("app").request("get:currentDomain").get("id");i.channel(n).request("clear:editActive"),t.model.set("editActive",!0),this.dataModel=t.model}i.channel("drawer").request("load:drawerContent",e,t),i.channel("drawer").trigger("before:open");var r=i.channel("app").request("get:builderEl");jQuery(r).addClass("nf-drawer-opened").removeClass("nf-drawer-closed");var a=i.channel("app").request("get:drawerEl");jQuery(a).css({right:"0px"});var l=this;this.hasFocus=!1,jQuery(".nf-master-control").css("z-index",0),this.checkOpenDrawerPos=setInterval((function(){"0px"==jQuery(a).css("right")&&(clearInterval(l.checkOpenDrawerPos),l.hasFocus||(l.focusFilter(),l.hasFocus=!0,i.channel("app").request("update:currentDrawer",e),jQuery(a).scrollTop(0),i.channel("drawer").trigger("opened")))}),150)},toggleDrawerSize:function(){var e=i.channel("app").request("get:drawerEl");jQuery(e).toggleClass("nf-drawer-expand")},focusFilter:function(){var e=i.channel("drawer").request("get:filterEl");jQuery(e).focus()},getClosedDrawerPos:function(){var e=i.channel("app").request("get:builderEl");return"-"+(jQuery(e).width()+300)+"px"},maybePreventClose:function(){return 0!=Object.keys(this.objPreventClose).length},preventClose:function(e){this.objPreventClose[e]=!0,this.dataModel.set("drawerDisabled",!0)},enableClose:function(e){delete this.objPreventClose[e],this.maybePreventClose()||void 0===this.dataModel||this.dataModel.set("drawerDisabled",!1)},filterFocused:function(){clearInterval(this.checkOpenDrawerPos)},getPreventClose:function(){return this.objPreventClose}})})),n("views/app/drawer/headerDefault",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-default",initialize:function(){this.model&&this.model.on("change:drawerDisabled",this.render,this)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el),i.channel("drawer").reply("clear:filter",this.clearFilter,this),i.channel("drawer").reply("blur:filter",this.blurFilter,this),i.channel("drawer").reply("get:filterEl",this.getEl,this)},onBeforeDestroy:function(){this.model&&this.model.off("change:drawerDisabled",this.render)},events:{"keyup .nf-filter":"maybeChangeFilter","input .nf-filter":"changeFilter","focus input":"getFocus"},changeFilter:function(e){var t=i.channel("app").request("get:currentDrawer");i.channel("drawer-"+t.get("id")).trigger("change:filter",e.target.value,e)},maybeChangeFilter:function(e){13==e.keyCode&&(e.addObject=!0,this.changeFilter(e))},clearFilter:function(){var e=jQuery(this.el).find(".nf-filter");""!=jQuery.trim(e.val())&&(e.val(""),e.trigger("input"),e.focus())},blurFilter:function(){jQuery(this.el).find(".nf-filter").blur()},getEl:function(){return jQuery(this.el).find(".nf-filter")},getFocus:function(){i.channel("drawer").trigger("filter:focused")},templateHelpers:function(){return{renderDisabled:function(){return this.drawerDisabled?"disabled":""}}}})})),n("views/app/drawer/footerDefault",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-empty"})})),n("models/app/drawerModel",["views/app/drawer/headerDefault","views/app/drawer/footerDefault"],(function(e,t){return Backbone.Model.extend({defaults:{getHeaderView:function(t){return new e(t)},getFooterView:function(e){return new t(e)}}})})),n("models/app/drawerCollection",["models/app/drawerModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("views/fields/drawer/stagedField",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-staged-field",onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},events:{"click .dashicons-dismiss":"removeStagedField"},removeStagedField:function(e){i.channel("drawer-addField").trigger("click:removeStagedField",e,this.model)}})})),n("views/fields/drawer/stagingEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-staged-fields-empty",onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)}})})),n("views/fields/drawer/stagingCollection",["views/fields/drawer/stagedField","views/fields/drawer/stagingEmpty"],(function(e,t){return Marionette.CollectionView.extend({tagName:"div",childView:e,emptyView:t,activeClass:"nf-staged-fields-active",initialize:function(){i.channel("app").reply("get:stagedFieldsEl",this.getStagedFieldsEl,this)},onShow:function(){this.$el=jQuery(this.el).parent(),jQuery(this.$el).find("span:first").unwrap(),this.setElement(this.$el);jQuery(this.el).sortable({placeholder:"nf-staged-fields-sortable-placeholder",helper:"clone",tolerance:"pointer",over:function(e,t){i.channel("drawer-addField").trigger("over:stagedFields",e,t)},out:function(e,t){i.channel("drawer-addField").trigger("out:stagedFields",t)},receive:function(e,t){i.channel("drawer-addField").trigger("receive:stagedFields",t)},update:function(e,t){i.channel("fields").request("sort:staging")},start:function(e,t){i.channel("drawer-addField").trigger("start:stagedFields",t)},stop:function(e,t){i.channel("drawer-addField").trigger("stop:stagedFields",t)}}),jQuery(this.el).parent().draggable({opacity:.9,connectToSortable:".nf-field-type-droppable",appendTo:"#nf-main",refreshPositions:!0,grid:[3,3],tolerance:"pointer",helper:function(e){var t=jQuery(e.target).parent().width(),n=jQuery(e.target).parent().height(),i=jQuery(e.target).parent().clone(),r=t/4,a=n/2;return jQuery(this).draggable("option","cursorAt",{top:a,left:r}),jQuery(i).css("z-index",1e3),i},start:function(e,t){i.channel("drawer-addField").trigger("startDrag:fieldStaging",this,t)},stop:function(e,t){i.channel("drawer-addField").trigger("stopDrag:fieldStaging",this,t)}})},getStagedFieldsEl:function(){return jQuery(this.el)},onAddChild:function(){jQuery(this.el).addClass(this.activeClass)},onRemoveChild:function(){this.hasStagedFields()||jQuery(this.el).removeClass(this.activeClass)},hasStagedFields:function(){return 0!=this.collection.length}})})),n("models/fields/stagingModel",[],(function(){return Backbone.Model.extend({})})),n("models/fields/stagingCollection",["models/fields/stagingModel"],(function(e){return Backbone.Collection.extend({model:e,comparator:"order"})})),n("views/fields/drawer/typeSection",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-field-type-section",initialize:function(){_.bindAll(this,"render"),i.channel("fields").reply("get:typeSection",this.getTypeSection,this)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el),this.dragging=!1;var e=this;i.channel("app").request("is:mobile")||(jQuery(this.el).find("div.nf-field-type-draggable").draggable({opacity:.9,tolerance:"pointer",connectToSortable:".nf-field-type-droppable",refreshPositions:!0,grid:[5,5],appendTo:"#nf-builder",helper:function(e){var t=jQuery(e.target).parent().width(),n=jQuery(e.target).parent().height(),i=jQuery(e.target).parent().clone(),r=t/4,a=n/2;return jQuery(this).draggable("option","cursorAt",{top:a,left:r}),jQuery(i).css("z-index",1e3),i},start:function(t,n){e.dragging=!0,i.channel("drawer-addField").trigger("startDrag:type",this,n)},stop:function(t,n){e.dragging=!1,i.channel("drawer-addField").trigger("stopDrag:type",this,n)},drag:function(e,t){i.channel("drawer-addField").trigger("drag:type",this,t,e)}}).disableSelection(),jQuery(this.el).find(".nf-item").focus((function(){jQuery(this).addClass("active")})).blur((function(){jQuery(this).removeClass("active")})))},events:{"click .nf-item":"clickFieldType","keydown .nf-item":"maybeClickFieldType","mousedown .nf-item":"mousedownFieldType"},clickFieldType:function(e){this.dragging||i.channel("drawer").trigger("click:fieldType",e)},mousedownFieldType:function(e){jQuery(e.target).addClass("clicked"),setTimeout((function(){jQuery(e.target).removeClass("clicked")}),1500)},maybeClickFieldType:function(e){13==e.keyCode&&(this.clickFieldType(e),i.channel("drawer").request("clear:filter"))},templateHelpers:function(){return{renderFieldTypes:function(){var e=document.createElement("span"),t=this;return _.each(this.fieldTypes,(function(n){var r=i.channel("fields").request("get:type",n),a=r.get("nicename"),l=r.get("icon"),s=i.channel("app").request("get:template","#tmpl-nf-drawer-field-type-button")({id:n,nicename:a,icon:l,type:r,savedField:t.savedField}),o=document.createRange().createContextualFragment(s);e.appendChild(o)})),e.innerHTML},savedField:function(){return this.type.get("savedField")?"nf-saved":""}}},getTypeSection:function(){return this.el}})})),n("views/fields/drawer/typeSectionCollection",["views/fields/drawer/typeSection"],(function(e){return Marionette.CollectionView.extend({tagName:"div",childView:e,onShow:function(){jQuery(this.el).find(".nf-settings").unwrap(),i.channel("fields").request("clear:editActive")}})})),n("views/fields/drawer/addField",["views/fields/drawer/stagingCollection","models/fields/stagingCollection","views/fields/drawer/typeSectionCollection"],(function(e,t,n){return Marionette.LayoutView.extend({template:"#tmpl-nf-drawer-content-add-field",regions:{staging:"#nf-drawer-staging .nf-reservoir",primary:"#nf-drawer-primary",secondary:"#nf-drawer-secondary"},initialize:function(){this.listenTo(i.channel("drawer"),"filter:fieldTypes",this.filterFieldTypes),this.listenTo(i.channel("drawer"),"clear:filter",this.removeFieldTypeFilter),this.savedCollection=i.channel("fields").request("get:savedFields"),this.primaryCollection=this.savedCollection,this.fieldTypeSectionCollection=i.channel("fields").request("get:typeSections"),this.secondaryCollection=this.fieldTypeSectionCollection},onShow:function(){var t=i.channel("fields").request("get:staging");this.staging.show(new e({collection:t})),this.primary.show(new n({collection:this.primaryCollection})),this.secondary.show(new n({collection:this.secondaryCollection}))},getEl:function(){return jQuery(this.el).parent()},filterFieldTypes:function(e){this.primary.reset(),this.secondary.reset(),this.filteredSectionCollection=e,this.primary.show(new n({collection:this.filteredSectionCollection}))},removeFieldTypeFilter:function(){this.primary.show(new n({collection:this.savedCollection})),this.secondary.show(new n({collection:this.fieldTypeSectionCollection}))}})})),n("views/app/drawer/itemSettingCollection",[],(function(){return Marionette.CollectionView.extend({tagName:"div",initialize:function(e){this.childViewOptions={dataModel:e.dataModel}},getChildView:function(e){return i.channel("app").request("get:settingChildView",e)}})})),n("views/app/drawer/itemSettingGroup",["views/app/drawer/itemSettingCollection"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-edit-field-setting-group",regions:{settings:".nf-field-settings"},initialize:function(e){this.model.on("change",this.render,this),this.dataModel=e.dataModel},onBeforeDestroy:function(){this.model.off("change",this.render)},onRender:function(){if(this.settings.show(new e({collection:this.model.get("settings"),dataModel:this.dataModel})),!nfAdmin.devMode&&0==this.$el.find(".calculations").length){var t=!1;this.$el.find(".nf-setting").each((function(e,n){if("none"!==n.style.display)return t=!0,!1})),t||this.$el.hide()}this.model.get("display")||this.settings.empty(),i.channel("drawer").trigger("render:settingGroup",this)},events:{"click .toggle":"clickToggleGroup"},clickToggleGroup:function(e){i.channel("drawer").trigger("click:toggleSettingGroup",e,this.model)},templateHelpers:function(){return{renderLabel:function(){return""!=this.label?i.channel("app").request("get:template","#tmpl-nf-drawer-content-edit-setting-group-label")(this):""},renderArrowDir:function(){return this.display?"down":"right"}}}})})),n("views/app/drawer/itemSettingGroupCollection",["views/app/drawer/itemSettingGroup"],(function(e){return Marionette.CollectionView.extend({tagName:"div",childView:e,initialize:function(e){this.childViewOptions={dataModel:e.dataModel}}})})),n("views/app/drawer/editSettings",["views/app/drawer/itemSettingGroupCollection"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-edit-settings",regions:{settingTitle:".nf-setting-title",settingGroups:".nf-setting-groups"},initialize:function(e){this.dataModel=e.model,this.groupCollection=e.groupCollection},onRender:function(){var t=i.channel("app").request("get:currentDomain"),n=t.get("getSettingsTitleView").call(t,{model:this.model});this.settingTitle.show(n),this.settingGroups.show(new e({collection:this.groupCollection,dataModel:this.dataModel}))},templateHelpers:function(){return{maybeRenderTitle:function(){return void 0!==this.type?i.channel("app").request("get:template","#tmpl-nf-drawer-content-edit-settings-title")(this):""},renderTypeNicename:function(){var e=i.channel("app").request("get:currentDomain").get("id");return i.channel(e).request("get:type",this.type).get("nicename")}}}})})),n("views/app/drawer/headerEditSettings",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-edit-settings",initialize:function(){this.model&&this.model.on("change:drawerDisabled",this.render,this)},onBeforeDestroy:function(){this.model&&this.model.off("change:drawerDisabled",this.render)},templateHelpers:function(){return{renderDisabled:function(){return this.drawerDisabled?"disabled":""}}}})})),n("views/actions/drawer/typeButton",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-action-type-button",onRender:function(){if(jQuery(this.el).disableSelection(),"installed"==this.model.get("section")){var e=this;jQuery(this.el).draggable({opacity:.9,tolerance:"intersect",scroll:!1,helper:"clone",start:function(t,n){e.dragging=!0,i.channel("drawer-addAction").trigger("startDrag:type",this,n)},stop:function(t,n){e.dragging=!1,i.channel("drawer-addAction").trigger("stopDrag:type",this,n)}})}},events:{"click .nf-item":"clickAddAction"},clickAddAction:function(e){if(!this.dragging)if("installed"==this.model.get("section"))i.channel("actions").trigger("click:addAction",this.model);else{var t=this.model.get("modal_content");new jBox("Modal",{content:t,zIndex:99999999,closeButton:"box",overlay:!0,width:600,repositionOnOpen:!0,reposition:!0}).open()}},templateHelpers:function(){return{renderClasses:function(){var e="nf-item";return""!=jQuery.trim(this.image)&&(e+=" nf-has-img"),"installed"==this.section&&(e+=" nf-action-type"),e},renderStyle:function(){return""!=jQuery.trim(this.image)?"background-image: url('"+jQuery.trim(this.image)+"')":""}}}})})),n("views/actions/drawer/typeCollection",["views/actions/drawer/typeButton"],(function(e){return Marionette.CompositeView.extend({template:"#tmpl-nf-drawer-action-type-section",childView:e,templateHelpers:function(){var e=this;return{hasContents:function(){return e.collection.length>0},renderNicename:function(){return e.collection.nicename},renderClasses:function(){return e.collection.slug}}},attachHtml:function(e,t){jQuery(e.el).find(".action-types").append(t.el)}})})),n("models/app/settingModel",[],(function(){return Backbone.Model.extend({defaults:{settings:!1,hide_merge_tags:!1,error:!1},initialize:function(){i.channel("app").trigger("init:settingModel",this),i.channel(this.get("type")).trigger("init:settingModel",this),i.channel("setting-name-"+this.get("name")).trigger("init:settingModel",this),this.on("change:error",this.maybePreventUI,this),void 0!==this.collection&&this.get("use_merge_tags")&&void 0!==this.collection.options.objectType&&this.listenTo(i.channel("app"),"update:fieldKey",this.updateKey)},updateKey:function(e){i.channel("app").trigger("fire:updateFieldKey",e,this)},maybePreventUI:function(){this.get("error")?(i.channel("drawer").request("prevent:close","setting-"+this.get("name")+"-error"),i.channel("app").request("prevent:changeDomain","setting-"+this.get("name")+"-error")):(i.channel("drawer").request("enable:close","setting-"+this.get("name")+"-error"),i.channel("app").request("enable:changeDomain","setting-"+this.get("name")+"-error"))}})})),n("models/app/settingCollection",["models/app/settingModel"],(function(e){return Backbone.Collection.extend({model:e,initialize:function(e,t){this.options=t||{}}})})),n("models/app/settingGroupModel",["models/app/settingCollection"],(function(e){return Backbone.Model.extend({defaults:{display:!1},initialize:function(t){0==this.get("settings")instanceof Backbone.Collection&&this.set("settings",new e(this.get("settings")))}})})),n("models/app/settingGroupCollection",["models/app/settingGroupModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("models/app/typeModel",["models/app/settingGroupCollection"],(function(e){return Backbone.Model.extend({initialize:function(){!1==this.get("settingGroups")instanceof Backbone.Collection&&this.set("settingGroups",new e(this.get("settingGroups"))),i.channel("fields").trigger("init:typeModel",this)}})})),n("models/app/typeCollection",["models/app/typeModel"],(function(e){return Backbone.Collection.extend({model:e,type:!1,initialize:function(e,t){_.each(t,(function(e,t){this[t]=e}),this)}})})),n("views/actions/drawer/addAction",["views/actions/drawer/typeCollection","models/app/typeCollection"],(function(e,t){return Marionette.LayoutView.extend({template:"#tmpl-nf-drawer-content-add-action",regions:{primary:"#nf-drawer-primary",payments:"#nf-drawer-secondary-payments",marketing:"#nf-drawer-secondary-marketing",management:"#nf-drawer-secondary-management",workflow:"#nf-drawer-secondary-workflow",notifications:"#nf-drawer-secondary-notifications",misc:"#nf-drawer-secondary-misc"},initialize:function(){this.listenTo(i.channel("drawer"),"filter:actionTypes",this.filteractionTypes),this.listenTo(i.channel("drawer"),"clear:filter",this.removeactionTypeFilter),this.installedActions=i.channel("actions").request("get:installedActions"),this.primaryCollection=this.installedActions,this.availableActions=i.channel("actions").request("get:availableActions"),this.updateAvailableActionGroups()},onShow:function(){this.primary.show(new e({collection:this.primaryCollection})),this.payments.show(new e({collection:this.paymentsCollection})),this.marketing.show(new e({collection:this.marketingCollection})),this.management.show(new e({collection:this.managementCollection})),this.workflow.show(new e({collection:this.workflowCollection})),this.notifications.show(new e({collection:this.notificationsCollection})),this.misc.show(new e({collection:this.miscCollection}))},getEl:function(){return jQuery(this.el).parent()},filteractionTypes:function(t,n){this.primary.reset().show(new e({collection:t})),this.availableActions=n,this.updateAvailableActionGroups(),this.payments.reset().show(new e({collection:this.paymentsCollection})),this.marketing.reset().show(new e({collection:this.marketingCollection})),this.management.reset().show(new e({collection:this.managementCollection})),this.workflow.reset().show(new e({collection:this.workflowCollection})),this.notifications.reset().show(new e({collection:this.notificationsCollection})),this.misc.reset().show(new e({collection:this.miscCollection}))},removeactionTypeFilter:function(){this.primary.show(new e({collection:this.primaryCollection})),this.availableActions=i.channel("actions").request("get:availableActions"),this.updateAvailableActionGroups(),this.payments.show(new e({collection:this.paymentsCollection})),this.marketing.show(new e({collection:this.marketingCollection})),this.management.show(new e({collection:this.managementCollection})),this.workflow.show(new e({collection:this.workflowCollection})),this.notifications.show(new e({collection:this.notificationsCollection})),this.misc.show(new e({collection:this.miscCollection}))},updateAvailableActionGroups:function(){this.paymentsCollection=new t(this.availableActions.where({group:"payments"}),{slug:"payments",nicename:nfi18n.paymentsActionNicename}),this.marketingCollection=new t(this.availableActions.where({group:"marketing"}),{slug:"marketing",nicename:nfi18n.marketingActionNicename}),this.managementCollection=new t(this.availableActions.where({group:"management"}),{slug:"management",nicename:nfi18n.managementActionNicename}),this.workflowCollection=new t(this.availableActions.where({group:"workflow"}),{slug:"workflow",nicename:nfi18n.workflowActionNicename}),this.notificationsCollection=new t(this.availableActions.where({group:"notifications"}),{slug:"notifications",nicename:nfi18n.notificationsActionNicename}),this.miscCollection=new t(this.availableActions.where({group:"misc"}),{slug:"misc",nicename:nfi18n.miscActionNicename})}})})),n("views/app/drawer/contentViewChangesItem",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-view-changes-item",initialize:function(){this.model.on("change:disabled",this.render,this)},onBeforeDestroy:function(){this.model.off("change:disabled",this.render)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},events:{"click .undoSingle":"undoSingle"},undoSingle:function(e){i.channel("drawer").trigger("click:undoSingle",this.model)}})})),n("views/app/drawer/contentViewChanges",["views/app/drawer/contentViewChangesItem"],(function(e){return Marionette.CollectionView.extend({tagName:"table",className:"nf-changes",childView:e})})),n("views/app/drawer/headerViewChanges",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-view-changes",events:{"click .undoChanges":"clickUndoChanges"},clickUndoChanges:function(e){i.channel("drawer").trigger("click:undoChanges")}})})),n("views/app/drawer/settingError",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-edit-setting-error"})})),n("views/app/drawer/itemSetting",["views/app/drawer/mergeTagsContent","views/app/drawer/settingError"],(function(e,t){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-edit-setting-wrap",regions:{error:".nf-setting-error"},initialize:function(e){this.dataModel=e.dataModel,void 0!==i.channel("setting-type-"+this.model.get("type")).request("renderOnChange")&&i.channel("setting-type-"+this.model.get("type")).request("renderOnChange")&&this.dataModel.on("change:"+this.model.get("name"),this.render,this),this.model.on("change:error",this.renderError,this),this.model.on("change:warning",this.renderWarning,this);var t=this.model.get("deps");if(t){void 0===t.settings&&(t.settings=[],_.each(t,(function(e,n){"settings"!==n&&t.settings.push({name:n,value:e})})),t.match="all");for(var n=t.settings.length-1;n>=0;n--){let e=t.settings[n].name;this.dataModel.on("change:"+e,this.render,this)}}var r=this.model.get("remote");if(r){var a,l,s,o;if(void 0!==r.refresh||r.refresh)a=document.createTextNode(this.model.get("label")),(l=document.createElement("span")).classList.add("dashicons","dashicons-update"),(s=document.createElement("a")).classList.add("extra"),s.appendChild(l),(o=document.createElement("span")).appendChild(a),o.appendChild(s),this.model.set("label",o.innerHTML);i.channel("setting").trigger("remote",this.model,this.dataModel,this),this.model.on("rerender",this.render,this)}this.listenTo(i.channel("drawer"),"opened",this.drawerOpened),this.listenTo(i.channel("drawer"),"closed",this.drawerClosed)},onBeforeDestroy:function(){this.dataModel.off("change:"+this.model.get("name"),this.render),this.model.off("change:error",this.renderError);var e=this.model.get("deps");if(e)for(var t=e.settings.length-1;t>=0;t--){let n=e.settings[t].name;this.dataModel.off("change:"+n,this.render)}if(this.model.get("remote")&&this.model.off("rerender",this.render,this),i.channel("setting-"+this.model.get("name")).trigger("destroy:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("destroy:setting",this.model,this.dataModel,this),"textbox"==this.model.get("type")){var n=this.model.get("name"),r=this.dataModel.get(n);this.dataModel.set(n,_.unescape(r),{silent:!0})}},onBeforeRender:function(){if("textbox"==this.model.get("type")){var e=this.model.get("name"),t=this.dataModel.get(e);this.dataModel.set(e,_.escape(t),{silent:!0})}i.channel("app").trigger("before:renderSetting",this.model,this.dataModel),i.channel("setting-type-"+this.model.get("type")).trigger("before:renderSetting",this.model,this.dataModel,this),i.channel("setting-"+this.model.get("name")).trigger("before:renderSetting",this.model,this.dataModel,this)},onRender:function(){this.mergeTagsContentView=!1;i.channel("setting-"+this.model.get("name")).trigger("render:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("render:setting",this.model,this.dataModel,this),jQuery(this.el).find(".nf-help").each((function(){var e=jQuery(this).next(".nf-help-text");jQuery(this).jBox("Tooltip",{content:e,maxWidth:200,theme:"TooltipBorder",trigger:"click",closeOnClick:!0})})),this.model.get("use_merge_tags")&&i.channel("mergeTags").request("init",this);var e=this.model.get("mask");if(void 0!==e){var t=jQuery(this.$el).find("input");switch(jQuery(t).attr("contentEditable",!0),e.type){case"numeric":t.autoNumeric({aSep:thousandsSeparator,aDec:decimalPoint});break;case"currency":var n=i.channel("settings").request("get:setting","currency"),r=nfAdmin.currencySymbols[n]||"";t.autoNumeric({aSign:jQuery("<div />").html(r).text(),aSep:thousandsSeparator,aDec:decimalPoint});break;case"custom":e.format&&t.mask(e.format);break;default:console.log('Notice: Mask type of "'+e.type+'" is not supported.')}}this.renderError()},onShow:function(){i.channel("setting-"+this.model.get("name")).trigger("show:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("show:setting",this.model,this.dataModel,this)},onAttach:function(){i.channel("setting-"+this.model.get("name")).trigger("attach:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("attach:setting",this.model,this.dataModel,this)},renderError:function(){this.model.get("error")?(jQuery(this.el).find(".nf-setting").addClass("nf-error"),this.error.show(new t({model:this.model}))):(jQuery(this.el).find(".nf-setting").removeClass("nf-error"),this.error.empty())},renderWarning:function(){this.model.get("warning")?(jQuery(this.el).find(".nf-setting").addClass("nf-warning"),this.error.show(new t({model:this.model}))):(jQuery(this.el).find(".nf-setting").removeClass("nf-warning"),this.error.empty())},templateHelpers:function(){var e=this;return{renderVisible:function(){if(!nfAdmin.devMode){if("Action"==e.dataModel.get("objectType")&&"email"==e.dataModel.get("type")){if("cc"==this.name)return'style="display:none;"';if("bcc"==this.name)return'style="display:none;"';if("from_name"==this.name)return'style="display:none;"';if("from_address"==this.name)return'style="display:none;"';if("email_format"==this.name)return'style="display:none;"'}if("Action"==e.dataModel.get("objectType")&&"save"==e.dataModel.get("type")&&"submitter_email"==this.name)return'style="display:none;"';if("label_pos"==this.name)return'style="display:none;"';if("input_limit"==this.name)return'style="display:none;"';if("input_limit_type"==this.name)return'style="display:none;"';if("input_limit_msg"==this.name)return'style="display:none;"';if("help_text"==this.name)return'style="display:none;"';if("disable_input"==this.name)return'style="display:none;"';if("disable_browser_autocomplete"==this.name)return'style="display:none;"';if("mask"==this.name)return'style="display:none;"';if("custom_mask"==this.name)return'style="display:none;"';if("custom_name_attribute"==this.name)return'style="display:none;"';if("personally_identifiable"==this.name)return'style="display:none;"';if("key"==this.name)return'style="display:none;"';if("admin_label"==this.name)return'style="display:none;"';if("num_sort"==this.name)return'style="display:none;"';if("user_state"==this.name)return'style="display:none;"';if("checkbox"==e.dataModel.get("type")){if("checked_value"==this.name)return'style="display:none;"';if("unchecked_value"==this.name)return'style="display:none;"';if("checked_calc_value"==this.name)return'style="display:none;"';if("unchecked_calc_value"==this.name)return'style="display:none;"'}if("starrating"==e.dataModel.get("type")&&"default"==this.name)return'style="display:none;"';if("listmultiselect"==e.dataModel.get("type")&&"box_size"==this.name)return'style="display:none;"';if("date"==e.dataModel.get("type")){if("year_range_start"==this.name)return'style="display:none;"';if("year_range_end"==this.name)return'style="display:none;"'}}return i.channel("settings").request("check:deps",this,e)},renderSetting:function(){return void 0!==e.dataModel.get(this.name)?this.value=e.dataModel.get(this.name):void 0===this.value&&(this.value=""),i.channel("app").request("get:template","#tmpl-nf-edit-setting-"+this.type)(this)},renderLabelClasses:function(){var e="";return this.use_merge_tags&&(e+=" has-merge-tags"),"rte"==this.type&&(e+=" rte"),e},renderClasses:function(){var e="nf-setting ";return void 0!==this.width?e+="nf-"+this.width:e+=" nf-one-half",this.error&&(e+=" nf-error"),e},renderTooltip:function(){return this.help?((e=document.createElement("div")).innerHTML=this.help,(t=document.createElement("div")).classList.add("nf-help-text"),t.appendChild(e),(n=document.createElement("span")).classList.add("dashicons","dashicons-admin-comments"),(i=document.createElement("a")).classList.add("nf-help"),i.setAttribute("href","#"),i.setAttribute("tabindex","-1"),i.appendChild(n),(r=document.createElement("span")).appendChild(i),r.appendChild(t),r.innerHTML):"";var e,t,n,i,r},renderEmailFieldOptions:function(){var e=i.channel("fields").request("get:collection");initialOption=document.createElement("option"),initialOption.value="",initialOption.label="--",initialOption.innerHTML="--";var t=document.createElement("select");t.classList.add("setting"),t.setAttribute("data-id","my_seledt"),t.appendChild(initialOption);var n=this;return e.each((function(e){if("email"!=e.get("type"))return"";var i=document.createElement("option");i.value=e.get("key"),i.innerHTML=e.get("label"),i.label=e.get("label"),n.value===e.get("key")&&i.setAttribute("selected","selected"),t.appendChild(i),1})),label=document.createElement("label"),label.classList.add("nf-select"),label.appendChild(t),emptyContainer=document.createElement("div"),label.appendChild(emptyContainer),label.innerHTML},renderMergeTags:function(){return this.use_merge_tags&&!this.hide_merge_tags?'<span class="dashicons dashicons-list-view merge-tags"></span>':""},renderMinMax:function(){var e="";return void 0!==this.min_val&&null!=this.min_val&&jQuery.isNumeric(this.min_val)&&(e=e+"min='"+this.min_val+"'"),void 0!==this.max_val&&""!=this.max_val&&jQuery.isNumeric(this.max_val)&&(e=e+" max='"+this.max_val+"'"),void 0!==this.step&&""!=this.step&&jQuery.isNumeric(this.step)&&(e=e+" step='"+this.step+"'"),e},renderMinMaxHelper:function(){var e="";return void 0!==this.min_val&&null!=this.min_val&&jQuery.isNumeric(this.min_val)&&(0==e.length&&(e="("),e=e+nfi18n.minVal+": "+this.min_val),void 0!==this.max_val&&""!=this.max_val&&jQuery.isNumeric(this.max_val)&&(0==e.length?e="(":e+=", ",e=e+nfi18n.maxVal+": "+this.max_val),0<e.length&&(e+=")"),e}}},events:{"change .setting":"changeSetting","keyup .setting":"keyUpSetting","click .setting":"clickSetting","click .extra":"clickExtra"},changeSetting:function(e){if("textbox"==this.model.get("type")&&this.model.get("name").endsWith("_class")){const t=/^[a-zA-Z 0-9-_]+$/;-1===e.target.value.search(t)&&""!==e.target.value?this.model.set("error","HTML classes only allow - _ and alphanumeric characters."):0!==e.target.value.search(t)&&""!==e.target.value||this.model.unset("error")}else if("textbox"==this.model.get("type")&&"title"===this.model.get("name")){const t=/[/"<>`]/;if(-1!==e.target.value.search(t)&&""!==e.target.value){const n=e.target.value.search(t),i=e.target.value.charAt(n);this.model.set("error","The forbidden "+i+' character was found. Title must not contain / " < > ` characters.')}else-1!==e.target.value.search(t)&&""!==e.target.value||this.model.unset("error")}i.channel("app").trigger("change:setting",e,this.model,this.dataModel)},keyUpSetting:function(e){i.channel("app").trigger("keyup:setting",e,this.model,this.dataModel),i.channel("setting-"+this.model.get("name")).trigger("keyup:setting",e,this.model,this.dataModel)},clickSetting:function(e){i.channel("app").trigger("click:setting",e,this.model,this.dataModel),i.channel("setting-type-"+this.model.get("type")).trigger("click:setting",e,this.model,this.dataModel,this)},clickExtra:function(e){i.channel("setting-type-"+this.model.get("type")).trigger("click:extra",e,this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("name")).trigger("click:extra",e,this.model,this.dataModel,this),i.channel("setting-name-"+this.model.get("name")).trigger("click:extra",e,this.model,this.dataModel,this)},drawerOpened:function(){i.channel("setting-type-"+this.model.get("type")).trigger("drawer:opened",this.model,this.dataModel,this)},drawerClosed:function(){i.channel("setting-type-"+this.model.get("type")).trigger("drawer:closed",this.model,this.dataModel,this)}})})),n("views/app/drawer/contentPublicLink",["views/app/drawer/itemSetting"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-public-link",regions:{embedForm:".embed-form",enablePublicLink:".enable-public-link",copyPublicLink:".copy-public-link"},onRender:function(){var t=Backbone.Radio.channel("app").request("get:formModel"),n=i.channel("settings").request("get:settings"),r=i.channel("settings").request("get:settingModel","allow_public_link");this.enablePublicLink.show(new e({model:r,dataModel:n}));var a="[ninja_form id='{FORM_ID}']".replace("{FORM_ID}",t.get("id"));n.set("embed_form",a);var l=i.channel("settings").request("get:settingModel","embed_form");this.embedForm.show(new e({model:l,dataModel:n}));var s=n.get("public_link_key");s||(s=i.channel("app").request("generate:publicLinkKey"));var o=nfAdmin.publicLinkStructure.replace("[FORM_ID]",s);n.set("public_link",o);var c=i.channel("settings").request("get:settingModel","public_link");this.copyPublicLink.show(new e({model:c,dataModel:n}))},events:{"click #embed_form + .js-click-copytext":"copyFormEmbedHandler","click #public_link + div > .js-click-copytext":"copyPublicLinkHandler","click #public_link + div > .js-click-resettext":"confirmResetPublicLinkHandler","click #public_link + div > .js-click-confirm":"resetPublicLinkHandler","click #public_link + div > .js-click-cancel":"cancelResetPublicLinkHandler"},copyFormEmbedHandler:function(e){document.getElementById("embed_form").select(),document.execCommand("copy"),e.target.innerHTML="Copied!",setTimeout((function(){e.target.innerHTML="Copy"}),1500)},copyPublicLinkHandler:function(e){document.getElementById("public_link").select(),document.execCommand("copy"),e.target.innerHTML="Copied!",setTimeout((function(){e.target.innerHTML="Copy"}),1500)},confirmResetPublicLinkHandler:function(e){_.each(e.target.parentNode.children,(function(e){e.classList.contains("js-click-copytext")||e.classList.contains("js-click-resettext")?e.style.display="none":e.style.display="inline-block"}))},resetPublicLinkHandler:function(e){var t=i.channel("app").request("generate:publicLinkKey"),n=nfAdmin.publicLinkStructure.replace("[FORM_ID]",t);i.channel("settings").request("get:settings").set("public_link",n),this.cancelResetPublicLinkHandler(e),_.each(e.target.parentNode.children,(function(e){e.classList.contains("js-click-resettext")?(e.style.display="inline-block",e.classList.add("primary"),e.classList.remove("secondary"),e.innerHTML="Link Reset!",setTimeout((function(){e.classList.add("secondary"),e.classList.remove("primary"),e.innerHTML="Reset"}),1500)):e.style.display="none",e.classList.contains("js-click-copytext")&&setTimeout((function(){e.style.display="inline-block"}),1500)})),jQuery("#public_link").val(n)},cancelResetPublicLinkHandler:function(e){_.each(e.target.parentNode.children,(function(e){e.classList.contains("js-click-cancel")||e.classList.contains("js-click-confirm")?e.style.display="none":e.style.display="inline-block"}))}})})),n("views/app/drawer/headerPublicLink",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-public-link"})})),n("views/app/drawer/contentNewForm",["views/app/drawer/itemSetting"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-new-form",regions:{formName:".new-form-name",formSubmit:".new-form-submit"},onRender:function(){var t=i.channel("settings").request("get:settingModel","title"),n=i.channel("settings").request("get:settingModel","add_submit"),r=i.channel("settings").request("get:settings");this.formName.show(new e({model:t,dataModel:r})),void 0===i.channel("fields").request("get:collection").findWhere({type:"submit"})?this.formSubmit.show(new e({model:n,dataModel:r})):r.set("add_submit",0)},events:{"click .publish":"clickPublish"},clickPublish:function(e){i.channel("app").trigger("click:confirmPublish",e)}})})),n("views/app/drawer/headerNewForm",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-header-new-form"})})),n("controllers/app/drawerConfig",["models/app/drawerCollection","views/fields/drawer/addField","views/app/drawer/editSettings","views/app/drawer/headerEditSettings","views/actions/drawer/addAction","views/app/drawer/contentViewChanges","views/app/drawer/headerViewChanges","views/app/drawer/contentPublicLink","views/app/drawer/headerPublicLink","views/app/drawer/contentNewForm","views/app/drawer/headerNewForm"],(function(e,t,n,r,a,l,s,o,c,d,h,u){return Marionette.Object.extend({initialize:function(){this.collection=new e([{id:"addField",getContentView:function(e){return new t(e)}},{id:"addAction",getContentView:function(e){return new a(e)}},{id:"editSettings",getHeaderView:function(e){if(void 0!==e.typeModel)var t=i.channel(e.typeModel.get("id")).request("get:drawerHeaderView")||r;else t=r;return new t(e)},getContentView:function(e){return new n(e)}},{id:"viewChanges",getHeaderView:function(e){return new s(e)},getContentView:function(e){return new l(e)}},{id:"publicLink",getHeaderView:function(e){return new c(e)},getContentView:function(e){return new o(e)}},{id:"newForm",getHeaderView:function(e){return new h(e)},getContentView:function(e){return new d(e)}}]),i.channel("app").reply("get:drawerCollection",this.getDrawerCollection,this),i.channel("app").reply("get:drawer",this.getDrawer,this)},getDrawerCollection:function(){return this.collection},getDrawer:function(e){return this.collection.get(e)}})})),n("views/app/drawer/defaultSettingsTitle",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-edit-settings-title-default",templateHelpers:function(){return{renderTypeNicename:function(){var e=i.channel("app").request("get:currentDomain").get("id"),t=i.channel(e).request("get:type",this.type);return void 0!==t?t.get("nicename"):""}}}})})),n("views/app/empty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-empty"})})),n("models/app/domainModel",["views/app/drawer/defaultSettingsTitle","views/app/empty"],(function(e,t){return Backbone.Model.extend({defaults:{dashicons:"",classes:"",active:!1,url:"",hotkeys:!1,disabled:!1,getSettingsTitleView:function(t){return new e(t)},getDefaultSettingsTitleView:function(t){return new e(t)},getGutterLeftView:function(e){return new t},getGutterRightView:function(e){return new t}}})})),n("models/app/domainCollection",["models/app/domainModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("views/fields/subHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-sub-header-fields"})})),n("views/fields/mainContentFieldCollection",[],(function(){return Marionette.CollectionView.extend({tagName:"div",reorderOnSort:!0,getChildView:function(){return i.channel("views").request("get:fieldItem")},getEmptyView:function(){return i.channel("views").request("get:mainContentEmpty")},initialize:function(){i.channel("fields").reply("get:sortableEl",this.getSortableEl,this),i.channel("fields").reply("init:sortable",this.initSortable,this),i.channel("fields").reply("destroy:sortable",this.destroySortable,this)},onRender:function(){if(this.collection.models.length>0){jQuery(this.el).addClass("nf-field-type-droppable").addClass("nf-fields-sortable");this.initSortable()}i.channel("app").trigger("render:fieldsSortable",this)},getSortableEl:function(){return this.el},initSortable:function(){if(i.channel("app").request("is:mobile"));else;jQuery(this.el).sortable({containment:"parent",helper:"clone",cancel:".nf-item-controls",placeholder:"nf-fields-sortable-placeholder",opacity:.95,grid:[5,5],appendTo:"#nf-main",scrollSensitivity:10,receive:function(e,t){t.item.dropping||jQuery(t.item).hasClass("nf-over-repeater")||i.channel("app").request("receive:fieldsSortable",t)},over:function(e,t){t.item.dropping||i.channel("app").request("over:fieldsSortable",t)},out:function(e,t){t.item.dropping||i.channel("app").request("out:fieldsSortable",t)},start:function(e,t){t.item.dropping||i.channel("app").request("start:fieldsSortable",t)},update:function(e,t){t.item.dropping||i.channel("app").request("update:fieldsSortable",t,this)},stop:function(e,t){t.item.dropping||i.channel("app").request("stop:fieldsSortable",t)}})},destroySortable:function(){jQuery(this.el).sortable("destroy")},onAddChild:function(e){i.channel("fields").request("get:adding")&&(e.$el.hide().show("clip"),i.channel("fields").request("set:adding",!1))}})})),n("views/fields/drawer/addSavedField",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-add-saved-field",initialize:function(){this.model.on("change:addSavedLoading",this.renderAddButton,this)},onRender:function(){this.renderAddButton()},renderAddButton:function(){if(this.model.get("addSavedLoading"))var e=i.channel("app").request("get:template","#tmpl-nf-add-saved-field-loading");else e=i.channel("app").request("get:template","#tmpl-nf-add-saved-field-button");jQuery(this.el).find(".add-button").html(e(this))},onBeforeDestroy:function(){this.model.off("change:addSavedLoading",this.render)},events:{"click .nf-button":"clickAddSavedField"},clickAddSavedField:function(e){i.channel("drawer").trigger("click:addSavedField",e,this.model)}})})),n("views/fields/drawer/settingsTitle",["views/fields/drawer/addSavedField"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-drawer-content-edit-settings-title-fields",initialize:function(){this.model.on("change:saved",this.render,this),this.model.on("change:label",this.renderjBoxContent,this)},regions:{addSaved:".nf-add-saved-field"},onBeforeDestroy:function(){this.model.off("change:saved",this.render),this.addSavedjBox.destroy(),this.model.unset("jBox",{silent:!0})},onRender:function(){this.renderjBoxContent();var e=this;this.addSavedjBox=new jBox("Tooltip",{trigger:"click",title:"Add to Favorite Fields",position:{x:"left",y:"center"},outside:"x",closeOnClick:"body",onCreated:function(){this.setContent(jQuery(e.el).find(".nf-add-saved-field"))}}),this.addSavedjBox.attach(jQuery(this.el).find(".dashicons")),this.model.set("jBox",this.addSavedjBox,{silent:!0})},renderjBoxContent:function(){this.addSaved&&this.addSaved.show(new e({model:this.model}))},templateHelpers:function(){return{renderTypeNicename:function(){var e=i.channel("app").request("get:currentDomain").get("id"),t=i.channel(e).request("get:type",this.type),n=t.get("nicename");this.saved&&(n+=" - "+i.channel(e).request("get:type",t.get("type")).get("nicename"));return n},renderSavedStar:function(){if(this.saved)var e="filled";else e="empty";return'<span class="dashicons dashicons-star-'+e+'"></span>'}}}})})),n("views/actions/mainHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-main-header-actions",initialize:function(){var e=i.channel("actions").request("get:collection");this.listenTo(e,"add",this.render),this.listenTo(e,"remove",this.render)},onRender:function(){0==i.channel("actions").request("get:collection").models.length?jQuery(this.el).hide():jQuery(this.el).show()}})})),n("views/actions/subHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-sub-header-actions"})})),n("views/app/itemControls",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-item-controls",initialize:function(){},onRender:function(){this.currentDomain=i.channel("app").request("get:currentDomain")},events:{"mouseover .nf-item-control":"mouseoverItemControl","click .nf-edit-settings":"clickEdit","singletap .nf-item-control":"singleTapEdit","click .nf-item-delete":"clickDelete","click .nf-item-duplicate":"clickDuplicateField"},clickEdit:function(e){i.channel("app").request("is:mobile")||i.channel("app").trigger("click:edit",e,this.model)},singleTapEdit:function(e){i.channel("app").trigger("click:edit",e,this.model)},clickDelete:function(e){i.channel("app").trigger("click:delete",e,this.model)},clickDuplicateField:function(e){i.channel("app").trigger("click:duplicate",e,this.model)},mouseoverItemControl:function(e){i.channel("app").trigger("mouseover:itemControl",e,this.model)}})})),n("views/actions/actionItem",["views/app/itemControls"],(function(e){return Marionette.LayoutView.extend({tagName:"tr",template:"#tmpl-nf-action-item",regions:{itemControls:".nf-item-controls"},initialize:function(){this.template=i.channel("actions").request("get:actionItemTemplate")||this.template,this.model.on("change:label",this.render,this),this.model.on("change:editActive",this.render,this),this.model.on("change:active",this.maybeDeactivate,this)},onBeforeDestroy:function(){this.model.off("change:label",this.render),this.model.off("change:editActive",this.render),this.model.off("change:active",this.maybeDeactivate)},onRender:function(){this.model.get("editActive")?jQuery(this.el).addClass("active"):jQuery(this.el).removeClass("active"),this.maybeDeactivate(),this.itemControls.show(new e({model:this.model}))},maybeDeactivate:function(){0==this.model.get("active")?jQuery(this.el).addClass("deactivated"):jQuery(this.el).removeClass("deactivated")},events:{"change input":"changeToggle",click:"maybeClickEdit"},maybeClickEdit:function(e){"TR"==jQuery(e.target).parent().prop("tagName")&&i.channel("app").trigger("click:edit",e,this.model)},changeToggle:function(e){var t=jQuery(e.target).data("setting"),n=i.channel("actions").request("get:settingModel",t);i.channel("app").request("change:setting",e,n,this.model),i.channel("app").request("update:db")},templateHelpers:function(){return{renderToggle:function(e){this.settingName=e||"active";var t=this.label;this.label="",this.value=this[this.settingName],this.name=this.id+"-"+this.settingName;var n=i.channel("app").request("get:template","#tmpl-nf-edit-setting-toggle");return n=n(this),this.label=t,n},renderTypeNicename:function(){var e=i.channel("actions").request("get:type",this.type);if(void 0!==e)return e.get("nicename")},renderTooltip:function(){return""},renderMergeTags:function(){return this.use_merge_tags?'<span class="dashicons dashicons-list-view merge-tags"></span>':""}}}})})),n("views/actions/mainContentEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-main-content-actions-empty",onBeforeDestroy:function(){jQuery(this.el).parent().parent().removeClass("nf-actions-empty")},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},onShow:function(){jQuery(this.el).parent().parent().addClass("nf-actions-empty")}})})),n("views/actions/mainContent",["views/actions/actionItem","views/actions/mainContentEmpty"],(function(e,t){return Marionette.CompositeView.extend({template:"#tmpl-nf-action-table",childView:e,emptyView:t,initialize:function(){this.template=i.channel("actions").request("get:mainContentTemplate")||this.template},onRender:function(){jQuery(this.el).droppable({accept:".nf-action-type-draggable",activeClass:"nf-droppable-active",hoverClass:"nf-droppable-hover",drop:function(e,t){i.channel("app").request("drop:actionType",e,t)}})},attachHtml:function(e,t){void 0!==i.channel("actions").request("get:type",t.model.get("type"))&&jQuery(e.el).find("tbody").append(t.el)}})})),n("views/advanced/mainHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-main-header-settings"})})),n("views/advanced/subHeader",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-sub-header-settings"})})),n("views/advanced/settingItem",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-form-setting-type",onBeforeDestroy:function(){this.model.off("change:editActive",this.updateActiveClass)},initialize:function(){this.model.on("change:editActive",this.updateActiveClass,this)},events:{click:"clickEdit"},clickEdit:function(e){i.channel("settings").trigger("click:edit",e,this.model)},templateHelpers:function(){return{renderClasses:function(){var e="nf-setting-wrap "+this.id;return this.editActive&&(e+=" active"),e}}},updateActiveClass:function(){this.model.get("editActive")?jQuery(this.el).find(".nf-setting-wrap").addClass("active"):jQuery(this.el).find(".nf-setting-wrap").removeClass("active")}})})),n("views/advanced/mainContent",["views/advanced/settingItem"],(function(e){return Marionette.CompositeView.extend({childView:e,template:"#tmpl-nf-advanced-main-content",attachHtml:function(e,t){jQuery(e.el).find(".child-view-container").append(t.el)}})})),n("models/fields/fieldModel",[],(function(){return Backbone.Model.extend({defaults:{objectType:"Field",objectDomain:"fields",editActive:!1,order:999,idAttribute:"id"},initialize:function(){var e=this.get("type");if(void 0!==e){this.on("change",this.changeSetting,this);var t=i.channel("fields").request("get:type",this.get("type")),n=t.get("parentType");_.each(t.get("settingDefaults"),(function(e,t){void 0===this.get(t)&&this.set(t,e,{silent:!0})}),this),"saved"==t.get("section")&&this.set("type",t.get("type")),"listimage"===e&&(this.get=this.listimageGet,this.set=this.listimageSet),i.channel("fields").trigger("init:fieldModel",this),i.channel("fields-"+n).trigger("init:fieldModel",this),i.channel("fields-"+this.get("type")).trigger("init:fieldModel",this),this.listenTo(i.channel("app"),"fire:updateFieldKey",this.updateFieldKey)}},listimageGet:function(e){return"options"===e&&(e="image_options"),Backbone.Model.prototype.get.call(this,e)},listimageSet:function(e,t){return"options"===e&&(e="image_options"),Backbone.Model.prototype.set.call(this,e,t)},changeSetting:function(e,t){i.channel("fieldSetting-"+_.keys(e.changedAttributes())[0]).trigger("update:setting",this,t.settingModel),i.channel("fields").trigger("update:setting",this,t.settingModel),i.channel("app").trigger("update:setting",this,t.settingModel)},updateFieldKey:function(e,t){i.channel("app").trigger("replace:fieldKey",this,e,t)},formatLabel:function(){var e=this.get("admin_label");return""==e&&(e=this.get("label")),e}})})),n("models/fields/fieldCollection",["models/fields/fieldModel"],(function(e){var t=Backbone.Collection.extend({model:e,comparator:function(e){return parseInt(e.get("order"))},tmpNum:1,initialize:function(){this.on("add",this.addField,this),this.on("remove",this.removeField,this),this.listenTo(this,"add:field",this.addNewField),this.listenTo(this,"append:field",this.appendNewField),this.listenTo(this,"remove:field",this.removeFieldResponse),this.newIDs=[]},addField:function(e){this.newIDs.push(e.get("id"))},removeField:function(e){this.removedIDs=this.removedIDs||{},this.removedIDs[e.get("id")]=e.get("id")},addNewField:function(e){this.add(e)},appendNewField:function(e){if(0==this.length)var t=0;else t=this.at(this.length-1).get("order")+1;e.set("order",t,{silent:!0}),this.add(e)},removeFieldResponse:function(e){this.remove(e)},fieldExists:function(e){return-1!=this.indexOf(e)}});return t})),n("controllers/app/domainConfig",["models/app/domainCollection","views/fields/subHeader","views/fields/mainContentFieldCollection","views/fields/drawer/settingsTitle","views/actions/mainHeader","views/actions/subHeader","views/actions/mainContent","views/advanced/mainHeader","views/advanced/subHeader","views/advanced/mainContent","views/app/empty","models/fields/fieldCollection"],(function(e,t,n,r,a,l,s,o,c,d,h,u){return Marionette.Object.extend({initialize:function(){i.channel("formContent").request("add:viewFilter",this.defaultFormContentView,10,this),i.channel("formContent").request("add:loadFilter",this.defaultFormContentLoad,10,this),i.channel("formContentGutters").request("add:leftFilter",this.defaultFormContentGutterView,10,this),i.channel("formContentGutters").request("add:rightFilter",this.defaultFormContentGutterView,10,this),this.collection=new e([{id:"fields",nicename:nfi18n.domainFormFields,hotkeys:{Esc:"close:drawer","Ctrl+Shift+n":"add:newField","Ctrl+Shift+a":"changeDomain:actions","Ctrl+Shift+s":"changeDomain:settings","Alt+Ctrl+t":"open:mergeTags",up:"up:mergeTags",down:"down:mergeTags","Shift+return":"return:mergeTags"},mobileDashicon:"dashicons-menu",getSubHeaderView:function(){return new t},getMainContentView:function(e){var t=i.channel("settings").request("get:setting","formContentData");t||(t=i.channel("settings").request("get:setting","fieldContentsData"));var n=i.channel("formContent").request("get:loadFilters"),r=_.without(n,void 0);t=(l=_.first(r))(t,i.channel("app").request("get:formModel"),!0);var a=i.channel("formContent").request("get:viewFilters"),l=(r=_.without(a,void 0),_.first(r));return formContentView=l(),i.channel("settings").request("update:setting","formContentData",t,!0),new formContentView({collection:t})},getSettingsTitleView:function(e){return"fields"==e.model.get("objectDomain")?new r(e):this.get("getDefaultSettingsTitleView").call(this,e)},getGutterLeftView:function(e){var t=i.channel("formContentGutters").request("get:leftFilters"),n=_.without(t,void 0),r=_.first(n);return gutterView=r(),new gutterView},getGutterRightView:function(){var e=i.channel("formContentGutters").request("get:rightFilters"),t=_.without(e,void 0),n=_.first(t);return gutterView=n(),new gutterView}},{id:"actions",nicename:nfi18n.domainActions,hotkeys:{Esc:"close:drawer","Ctrl+Shift+n":"add:newAction","Ctrl+Shift+f":"changeDomain:fields","Ctrl+Shift+s":"changeDomain:settings","Alt+Ctrl+t":"open:mergeTags",up:"up:mergeTags",down:"down:mergeTags","Shift+return":"return:mergeTags"},mobileDashicon:"dashicons-external",getSubHeaderView:function(){return new l},getMainContentView:function(){var e=i.channel("actions").request("get:collection");return new s({collection:e})}},{id:"settings",nicename:nfi18n.domainAdvanced,hotkeys:{Esc:"close:drawer","Ctrl+Shift+f":"changeDomain:fields","Ctrl+Shift+a":"changeDomain:actions","Alt+Ctrl+t":"open:mergeTags",up:"up:mergeTags",down:"down:mergeTags","Shift+return":"return:mergeTags"},mobileDashicon:"dashicons-admin-generic",getSubHeaderView:function(){return new c},getMainContentView:function(){var e=i.channel("settings").request("get:typeCollection");return new d({collection:e})}},{id:"preview",nicename:"Preview Form",classes:"preview",dashicons:"dashicons-visibility",mobileDashicon:"dashicons-visibility",url:nfAdmin.previewurl}]),i.channel("app").trigger("init:domainCollection",this.collection),i.channel("app").reply("get:domainCollection",this.getDomainCollection,this),i.channel("app").reply("get:domainModel",this.getDomainModel,this)},getDomainCollection:function(){return this.collection},getDomainModel:function(e){return this.collection.get(e)},defaultFormContentView:function(e){return n},defaultFormContentLoad:function(e){var t=i.channel("fields").request("get:collection"),n=i.channel("formContent").request("get:loadFilters");if(1==_.without(n,void 0).length||void 0===e||!0==e instanceof Backbone.Collection)return t;var r=_.map(e,(function(e){return t.findWhere({key:e})}),this);return new u(r)},defaultFormContentGutterView:function(e){return h}})})),n("models/app/appModel",[],(function(){return Backbone.Model.extend({defaults:{loading:!1},initialize:function(){this.on("change:clean",this.changeStatus,this)},changeStatus:function(){i.channel("app").trigger("change:clean",this.get("clean"))}})})),n("controllers/app/data",["models/app/appModel"],(function(e){return Marionette.Object.extend({initialize:function(){var t=i.channel("app").request("get:domainCollection");this.model=new e({currentDrawer:!1,currentDomain:t.get("fields"),clean:!0});var n=1==nfAdmin.mobile;this.model.set("mobile",n),i.channel("app").reply("is:mobile",this.isMobile,this),i.channel("app").reply("get:data",this.getData,this),i.channel("app").reply("get:setting",this.getSetting,this),i.channel("app").reply("get:currentDomain",this.getCurrentDomain,this),i.channel("app").reply("get:currentDrawer",this.getCurrentDrawer,this),i.channel("drawer").reply("get:current",this.getCurrentDrawer,this),i.channel("app").reply("update:currentDomain",this.updateCurrentDomain,this),i.channel("app").reply("update:currentDrawer",this.updateCurrentDrawer,this),i.channel("app").reply("update:setting",this.updateSetting,this),i.channel("settings").reply("check:deps",this.checkDeps,this)},checkDeps:function(e,t){if(!e.deps)return"";let n=e.deps.settings,i=e.deps.match,r=!1;for(var a=n.length-1;a>=0;a--){let e=n[a].name,l=n[a].value;if(t.dataModel.get(e)==l){if("any"==i){r=!1;break}}else r=!0}return r?'style="display:none;"':""},updateCurrentDomain:function(e){this.updateSetting("currentDomain",e)},updateSetting:function(e,t){return this.model.set(e,t),!0},getSetting:function(e){return this.model.get(e)},getData:function(){return this.model},getCurrentDomain:function(){return this.model.get("currentDomain")},updateCurrentDrawer:function(e){return this.updateSetting("currentDrawer",e),!0},getCurrentDrawer:function(){var e=this.model.get("currentDrawer");return i.channel("app").request("get:drawer",e)},isMobile:function(){return this.model.get("mobile")}})})),n("controllers/app/drawerToggleSettingGroup",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer"),"click:toggleSettingGroup",this.toggleSettingGroup)},toggleSettingGroup:function(e,t){if(t.get("display")){var n=!1;_.each(t.get("settings").models,(function(e){e.get("error")&&(n=!0)})),n||t.set("display",!1)}else t.set("display",!0)}})})),n("controllers/app/updateDB",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer"),"closed",this.updateDB),i.channel("app").reply("update:db",this.updateDB,this),i.channel("formContent").request("add:saveFilter",this.defaultSaveFilter,10,this)},updateDB:function(e){if(i.channel("app").request("get:setting","clean"))return!1;if("preview"==(e=e||"preview"))var t="nf_preview_update";else if("publish"==e)t="nf_save_form";var n=i.channel("app").request("get:formModel");_.each(n.get("fields").models,(function(e,t){e.unset("jBox",{silent:!0})}));var r=i.channel("settings").request("get:setting","formContentData");r||(r=i.channel("settings").request("get:setting","fieldContentsData"));var a=i.channel("formContent").request("get:saveFilters"),l=_.without(a,void 0);if(r=_.first(l)(r),"publish"==e&&n.get("show_publish_options")){i.channel("app").request("open:drawer","newForm");var s=i.channel("app").request("get:builderEl");return jQuery(s).addClass("disable-main"),!1}var o=i.channel("app").request("get:formModel"),c=JSON.parse(JSON.stringify(o));c.settings.formContentData=r;var d=o.get("fields").removedIDs;_.each(c.fields,(function(e){var t=e.id;delete e.id,delete e.parent_id;var n={};for(var i in e)e.hasOwnProperty(i)&&(null!==e[i]&&(n[i]=e[i]),delete e[i]);for(var r in n)null===n[r]&&delete n[r];e.settings=n,e.id=t})),c.deleted_fields=d;d=o.get("actions").removedIDs;for(var h in _.each(c.actions,(function(e){var t=e.id;delete e.id,delete e.parent_id;var n={};for(var i in e)e.hasOwnProperty(i)&&(null!==e[i]&&(n[i]=e[i]),delete e[i]);e.settings=n,e.id=t})),c.settings)null===c.settings[h]&&delete c.settings[h];if(c.deleted_actions=d,c=JSON.stringify(c),i.channel("app").trigger("before:updateDB",c),"publish"==e&&(i.channel("app").request("update:setting","loading",!0),i.channel("app").trigger("change:loading"),i.channel("app").request("is:mobile")&&i.channel("notices").request("add","publishing","Your Changes Are Being Published",{autoClose:!1})),"nf_save_form"===t){var u=1e5,p=[];if(u<c.length&&(p=c.match(new RegExp(".{1,100000}","g"))),1<p.length)this.saveChunkedForm(p,0,"nf_batch_process",e,n.get("id"),!0);else{var g=this,f=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},(function(t){f=t,g.handleFinalResponse(f,e)})).fail((function(t,n,i){g.handleFinalFailure(t,n,i,e)}))}}else if("nf_preview_update"===t){g=this,f=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},(function(t){f=t,g.handleFinalResponse(f,e)})).fail((function(t,n,i){g.handleFinalFailure(t,n,i,e)}))}},saveChunkedForm:function(e,t,n,i,r,a){var l=e.length,s={action:n,batch_type:"chunked_publish",data:{new_publish:a,chunk_total:l,chunk_current:t,chunk:e[t],form_id:r},security:nfAdmin.batchNonce},o=this;jQuery.post(ajaxurl,s).then((function(a){try{var l=JSON.parse(a);"success"!==l.last_request||l.batch_complete?l.batch_complete&&o.handleFinalResponse(a,i):(console.log("Chunk "+t+" processed"),o.saveChunkedForm(e,l.requesting,n,i,r,!1))}catch(e){console.log("There was an error in parsing the response"),console.log(e)}})).fail((function(e,t,n){console.log("There was an error sending form data"),console.log(n),o.handleFinalFailure(e,t,n,i)}))},handleFinalResponse:function(e,t){try{(e=JSON.parse(e)).action=t,i.channel("app").trigger("response:updateDB",e),i.channel("app").request("is:mobile")}catch(e){console.log("Something went wrong!"),console.log(e)}},handleFinalFailure:function(e,t,n,i){"preview"!=i?alert(e.status+" "+n+"\r\nAn error on the server caused your form not to publish.\r\nPlease contact Ninja Forms Support with your PHP Error Logs.\r\nhttps://ninjaforms.com/contact"):console.log(n)},defaultSaveFilter:function(e){return e.pluck("key")}})})),n("models/app/formModel",[],(function(){return Backbone.Model.extend({initialize:function(){jQuery.isNumeric(this.get("id"))?this.set("show_publish_options",!1,{silent:!0}):this.set("show_publish_options",!0,{silent:!0})}})})),n("controllers/app/formData",["models/app/formModel"],(function(e){return Marionette.Object.extend({initialize:function(){this.model=new e({id:preloadedFormData.id}),this.model.set("fields",i.channel("fields").request("get:collection")),this.model.set("actions",i.channel("actions").request("get:collection")),this.model.set("settings",i.channel("settings").request("get:settings")),i.channel("app").reply("get:formModel",this.getFormModel,this)},getFormModel:function(){return this.model}})})),n("controllers/app/previewLink",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:sendChanges",this.disablePreview,this),this.listenTo(i.channel("app"),"response:sendChanges",this.enablePreview,this),this.listenTo(i.channel("app"),"change:clean",this.changePreviewNicename,this)},disablePreview:function(){i.channel("app").request("get:domainCollection").get("preview").set("disabled",!0)},changePreviewNicename:function(e){if(e)t="Preview Form";else var t="Preview Changes";i.channel("app").request("get:domainCollection").get("preview").set("nicename",t)},enablePreview:function(){i.channel("app").request("get:domainCollection").get("preview").set("disabled",!1)}})})),n("controllers/app/menuButtons",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:publish",this.publish),this.listenTo(i.channel("app"),"click:viewChanges",this.viewChanges),this.listenTo(i.channel("app"),"click:publicLink",this.publicLink)},publish:function(){i.channel("app").request("update:db","publish")},viewChanges:function(){var e=i.channel("changes").request("get:collection");i.channel("app").request("open:drawer","viewChanges",{collection:e})},publicLink:function(){i.channel("app").request("open:drawer","publicLink")}})})),n("models/app/changeModel",[],(function(){return Backbone.Model.extend({defaults:{disabled:!1}})})),n("models/app/changeCollection",["models/app/changeModel"],(function(e){return Backbone.Collection.extend({model:e,comparator:function(e){return-parseInt(e.cid.replace("c",""))}})})),n("controllers/app/trackChanges",["models/app/changeCollection","models/app/changeModel"],(function(e,t){return Marionette.Object.extend({initialize:function(){this.collection=new e,i.channel("changes").reply("register:change",this.registerChange,this),i.channel("changes").reply("get:collection",this.getCollection,this),this.listenTo(i.channel("app"),"change:clean",this.maybeResetCollection)},registerChange:function(e,n,r,a,l){l=void 0!==l?l:{};void 0===a.dashicon&&(a.dashicon="admin-generic");var s=new t({action:e,model:n,changes:r,label:a,data:l});return this.collection.add(s),i.channel("fields-repeater").trigger("clearEditActive",n),s},getCollection:function(){return this.collection},maybeResetCollection:function(e){e&&this.collection.reset()}})})),n("controllers/app/undoChanges",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer"),"click:undoChanges",this.undoChanges,this),this.listenTo(i.channel("drawer"),"click:undoSingle",this.undoSingle,this)},undoChanges:function(){var e=i.channel("changes").request("get:collection");e.sort();var t=this;_.each(e.models,(function(e){t.undoSingle(e,!0)})),e.reset(),i.channel("app").request("update:db"),i.channel("app").request("update:setting","clean",!0),i.channel("app").request("close:drawer"),this.dispatchClick()},undoSingle:function(e,t){i.channel("changes").request("undo:"+e.get("action"),e,t),this.dispatchClick()},dispatchClick:function(){if(!document.cookie.includes("nf_undo")){var e=new Date;e.setTime(e.getTime()+6048e5);var t="expires="+e.toUTCString();document.cookie="nf_undo=1;"+t+";path=/";var n={action:"nf_undo_click",security:nfAdmin.ajaxNonce};jQuery.post(ajaxurl,n)}}})})),n("controllers/app/publishResponse",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"response:updateDB",this.publishResponse)},publishResponse:function(e){if("publish"!==e.action)return!1;void 0!==e.data.new_ids&&(void 0!==e.data.new_ids.fields&&_.each(e.data.new_ids.fields,(function(e,t){var n=i.channel("fields").request("get:field",t);n?n.set("id",e):(n=i.channel("fields-repeater").request("get:childField",t,null,e)).set("id",e)})),void 0!==e.data.new_ids.actions&&_.each(e.data.new_ids.actions,(function(e,t){var n=i.channel("actions").request("get:action",t);n&&n.set("id",e)})),void 0!==e.data.new_ids.forms&&_.each(e.data.new_ids.forms,(function(e,t){i.channel("app").request("get:formModel").set("id",e),history.replaceState("","","admin.php?page=ninja-forms&form_id="+e)}))),i.channel("app").request("update:setting","loading",!1),i.channel("app").trigger("change:loading"),i.channel("app").request("is:mobile")&&i.channel("notices").request("close","publishing"),i.channel("app").trigger("app:published",e),i.channel("app").request("update:setting","clean",!0)}})})),n("controllers/app/changeDomain",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:menu",this.changeAppDomain),i.channel("app").reply("change:currentDomain",this.changeAppDomain,this),i.channel("app").reply("prevent:changeDomain",this.preventChange,this),i.channel("app").reply("enable:changeDomain",this.enableChange,this),this.objPreventChange={}},changeAppDomain:function(e,t){if(this.maybePreventChange())return!1;if(void 0===t){var n=jQuery(e.target).data("domain");t=i.channel("app").request("get:domainModel",n)}if(i.channel("app").request("get:currentDrawer")&&i.channel("app").request("close:drawer"),0==t.get("url").length){var r=i.channel("app").request("get:mainEl");i.channel("app").request("update:currentDomain",t),jQuery(r).scrollTop(0),i.channel("app").trigger("change:currentDomain",t)}},maybePreventChange:function(){return 0!=Object.keys(this.objPreventChange).length},preventChange:function(e){this.objPreventChange[e]=!0},enableChange:function(e){delete this.objPreventChange[e]}})})),n("controllers/app/pushstate",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"change:currentDomain",this.changePushState)},changePushState:function(){var e=i.channel("app").request("get:currentDomain");history.pushState(null,null,window.location.href+"&domain="+e.get("id"));var t=window.location.toString().replace(/domain=\\d+/,"");console.log(t)}})})),n("controllers/app/hotkeys",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("main"),"render:main",this.changeHotkeys),this.listenTo(i.channel("drawer"),"opened",this.changeHotkeys),this.listenTo(i.channel("drawer"),"render:settingGroup",this.changeHotkeys),this.listenTo(i.channel("hotkeys"),"add:newField",this.addNewField),this.listenTo(i.channel("hotkeys"),"add:newAction",this.addNewAction),this.listenTo(i.channel("hotkeys"),"changeDomain:fields",this.changeDomainFields),this.listenTo(i.channel("hotkeys"),"changeDomain:actions",this.changeDomainActions),this.listenTo(i.channel("hotkeys"),"changeDomain:settings",this.changeDomainSettings),this.listenTo(i.channel("hotkeys"),"close:drawer",this.closeDrawer)},changeHotkeys:function(){var e=i.channel("app").request("get:currentDomain");jQuery(document).off(".nfDomainHotkeys"),jQuery("input").off(".nfDomainHotkeys"),e.get("hotkeys")&&jQuery.each(e.get("hotkeys"),(function(e,t){jQuery(document).on("keydown.nfDomainHotkeys",null,e,(function(e){i.channel("hotkeys").trigger(t,e)})),jQuery("input").on("keydown.nfDomainHotkeys",null,e,(function(e){i.channel("hotkeys").trigger(t,e)})),jQuery("textarea").on("keydown.nfDomainHotkeys",null,e,(function(e){i.channel("hotkeys").trigger(t,e)}))}))},addNewField:function(){"addField"!=i.channel("app").request("get:currentDrawer")?i.channel("app").request("open:drawer","addField"):i.channel("app").request("close:drawer")},addNewAction:function(){"addAction"!=i.channel("app").request("get:currentDrawer")?i.channel("app").request("open:drawer","addAction"):i.channel("app").request("close:drawer")},changeDomainFields:function(){var e=i.channel("app").request("get:domainCollection").get("fields");i.channel("app").request("change:currentDomain",{},e)},changeDomainActions:function(){var e=i.channel("app").request("get:domainCollection").get("actions");i.channel("app").request("change:currentDomain",{},e)},changeDomainSettings:function(){var e=i.channel("app").request("get:domainCollection").get("settings");i.channel("app").request("change:currentDomain",{},e)},closeDrawer:function(){i.channel("app").request("close:drawer")}})})),n("controllers/app/cleanState",[],(function(){return Marionette.Object.extend({initialize:function(){this.ignoreAttributes=["editActive"],this.listenTo(i.channel("app"),"update:setting",this.setAppClean)},setAppClean:function(e){for(var t in e.changedAttributes())e.changedAttributes()[t];i.channel("undo-"+e.get("type")).request("ignore:attributes",this.ignoreAttributes)||this.ignoreAttributes;if(-1!=this.ignoreAttributes.indexOf(t))return!1;i.channel("app").request("update:setting","clean",!1),i.channel("fields-repeater").trigger("clearEditActive",e)}})})),n("controllers/app/coreUndo",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("changes").reply("undo:changeSetting",this.undoChangeSetting,this),i.channel("changes").reply("undo:addObject",this.undoAddObject,this),i.channel("changes").reply("undo:removeObject",this.undoRemoveObject,this),i.channel("changes").reply("undo:duplicateObject",this.undoDuplicateObject,this),i.channel("changes").reply("undo:sortFields",this.undoSortFields,this),i.channel("changes").reply("undo:addListOption",this.undoAddListOption,this),i.channel("changes").reply("undo:removeListOption",this.undoRemoveListOption,this),i.channel("changes").reply("undo:sortListOptions",this.undoSortListOptions,this)},undoChangeSetting:function(e,t){var n=e.get("model"),i=e.get("changes"),r=i.attr,a=i.before;n.set(r,a),this.maybeRemoveChange(e,t)},undoAddObject:function(e,t){var n=e.get("model"),r=e.get("data").collection;if(void 0!==r.newIDs&&delete r.newIDs[n.get("id")],!t){var a=i.channel("changes").request("get:collection"),l=a.where({model:n});_.each(l,(function(t){t!==e&&a.remove(t)}))}r.remove(n),this.maybeRemoveChange(e,t)},undoDuplicateObject:function(e,t){var n=e.get("model"),r=e.get("data").collection;if(!t){var a=i.channel("changes").request("get:collection"),l=a.where({model:n});_.each(l,(function(t){t!==e&&a.remove(t)}))}r.remove(n),this.maybeRemoveChange(e,t)},undoRemoveObject:function(e,t){var n=e.get("model"),r=e.get("data").collection;if(i.channel(n.get("objectDomain")).request("add",n),delete r.removedIDs[n.get("id")],!t){var a=i.channel("changes").request("get:collection").where({model:n});_.each(a,(function(t){t!==e&&t.set("disabled",!1)}))}r.trigger("reset",r),this.maybeRemoveChange(e,t)},undoSortFields:function(e,t){var n=e.get("data").fields,r=i.channel("fields").request("get:collection");_.each(n,(function(e){var t=e.before;e.model.set("order",t)})),r.sort(),this.maybeRemoveChange(e,t)},undoAddListOption:function(e,t){var n=e.get("model");if(!t){var r=i.channel("changes").request("get:collection"),a=r.where({model:n});_.each(a,(function(t){t!==e&&r.remove(t)}))}n.collection.remove(n),this.maybeRemoveChange(e,t)},undoRemoveListOption:function(e,t){var n=e.get("model");if(e.get("data").collection.add(n),!t){var r=i.channel("changes").request("get:collection").where({model:n});_.each(r,(function(t){t!==e&&t.set("disabled",!1)}))}this.maybeRemoveChange(e,t)},undoSortListOptions:function(e,t){var n=e.get("data"),i=n.collection,r=n.objModels;_.each(r,(function(e){var t=e.before;e.model.set("order",t)})),i.sort(),this.maybeRemoveChange(e,t)},maybeRemoveChange:function(e,t){if(!(t=void 0!==t&&t)){i.channel("app").request("update:db");var n=i.channel("changes").request("get:collection");n.remove(e),0==n.length&&(i.channel("app").request("update:setting","clean",!0),i.channel("app").request("close:drawer"))}}})})),n("controllers/app/cloneModelDeep",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("clone:modelDeep",this.cloneModelDeep,this)},cloneModelDeep:function(e){var t={};_.each(e.attributes,(function(e,n){if(e instanceof Backbone.Collection){var r=i.channel("app").request("clone:collectionDeep",e);t[n]=r}else e instanceof Backbone.Model&&(t[n]=this.cloneModelDeep(e))}),this);var n=e.clone();return _.each(t,(function(e,t){n.set(t,e)})),n}})})),n("controllers/app/getSettingChildView",["views/app/drawer/itemSetting"],(function(e){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("get:settingChildView",this.getSettingChildView,this)},getSettingChildView:function(t){var n=t.get("type");return i.channel(n).request("get:settingChildView",t)||e}})})),n("controllers/app/changeSettingDefault",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("change:setting",this.changeSetting,this),this.listenTo(i.channel("app"),"change:setting",this.changeSetting,this)},changeSetting:function(e,t,n,r){var a=t.get("name"),l=n.get(a);(r=r||null)||(r=i.channel(t.get("type")).request("before:updateSetting",e,n,a,t)),void 0===r&&(r=jQuery(e.target).val()),n.set(a,r,{settingModel:t}),i.channel("setting-"+a).trigger("after:updateSetting",n,t);var s=r,o={attr:a,before:l,after:s},c=(i.channel("app").request("get:currentDomain").get("id"),{object:n.get("objectType"),label:n.get("label"),change:"Changed "+t.get("label")+" from "+l+" to "+s});i.channel("changes").request("register:change","changeSetting",n,o,c)}})})),n("views/app/drawer/typeSettingFieldset",["views/app/drawer/itemSetting"],(function(e){return Marionette.CompositeView.extend({template:"#tmpl-nf-edit-setting-wrap",childView:e,initialize:function(e){this.collection=this.model.get("settings"),this.childViewOptions={dataModel:e.dataModel},this.dataModel=e.dataModel;var t=this.model.get("deps");if(t){void 0===t.settings&&(t.settings=[],_.each(t,(function(e,n){"settings"!==n&&t.settings.push({name:n,value:e})})),t.match="all");for(var n=t.settings.length-1;n>=0;n--){let e=t.settings[n].name;this.dataModel.on("change:"+e,this.render,this)}}this.model.on("rerender",this.render,this)},onBeforeDestroy:function(){var e=this.model.get("deps");if(e)for(var t=e.settings.length-1;t>=0;t--)name=e.settings[t].name,this.dataModel.off("change:"+name,this.render)},onBeforeRender:function(){i.channel("app").trigger("before:renderSetting",this.model,this.dataModel),i.channel("setting-type-"+this.model.get("type")).trigger("before:renderSetting",this.model,this.dataModel,this),i.channel("setting-"+this.model.get("name")).trigger("before:renderSetting",this.model,this.dataModel,this)},onRender:function(){i.channel("setting-"+this.model.get("name")).trigger("render:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("render:setting",this.model,this.dataModel,this)},templateHelpers:function(){var e=this;return{renderVisible:function(){if(!nfAdmin.devMode){if("help"==this.name)return'style="display:none;"';if("classes"==this.name)return'style="display:none;"';if("input_limit_set"==this.name)return'style="display:none;"';if("checkbox"==e.dataModel.get("type")&&"checkbox_values"==this.name)return'style="display:none;"';if("date"==e.dataModel.get("type")&&"year_range"==this.name)return'style="display:none;"'}return i.channel("settings").request("check:deps",this,e)},renderSetting:function(){return i.channel("app").request("get:template","#tmpl-nf-edit-setting-"+this.type)(this)},renderClasses:function(){var e="";return void 0!==this.width?e+=this.width:e+=" one-half",this.error&&(e+=" nf-error"),e},renderError:function(){return this.error?this.error:""}}},attachHtml:function(e,t){jQuery(e.el).find(".nf-field-sub-settings").append(t.el)}})})),n("controllers/app/fieldset",["views/app/drawer/typeSettingFieldset","models/app/settingCollection"],(function(e,t){return Marionette.Object.extend({initialize:function(){i.channel("fieldset").reply("get:settingChildView",this.getSettingChildView,this),this.listenTo(i.channel("fieldset"),"init:settingModel",this.createSettingsCollection)},getSettingChildView:function(t){return e},createSettingsCollection:function(e){e.set("settings",new t(e.get("settings")))}})})),n("controllers/app/toggleSetting",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("setting-type-toggle").reply("renderOnChange",(function(){return!1})),i.channel("toggle").reply("before:updateSetting",this.updateSetting,this)},updateSetting:function(e,t,n,i){if(jQuery(e.target).prop("checked"))var r=1;else r=0;return r}})})),n("controllers/app/buttonToggleSetting",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("setting-type-button-toggle").reply("renderOnChange",(function(){return!1})),i.channel("button-toggle").reply("before:updateSetting",this.updateSetting,this)},updateSetting:function(e,t,n,i){return e.target.value}})})),n("controllers/app/numberSetting",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("number").reply("before:updateSetting",this.updateSetting,this)},updateSetting:function(e,t,n,i){var r=i.get("min_val"),a=i.get("max_val");return null!=r&&e.target.value<r&&(t.set("value",r),e.target.value=r),null!=a&&e.target.value>a&&(t.set("value",a),e.target.value=a),e.target.value}})})),n("controllers/app/radioSetting",[],(function(){return Marionette.Object.extend({initialize:function(){console.log(i.channel("radio")),i.channel("radio").reply("before:updateSetting",this.updateSetting,this)},updateSetting:function(e,t,n,i){console.log("test")}})})),n("controllers/app/itemControls",[],(function(){return Marionette.Object.extend({deleting:!1,initialize:function(){this.listenTo(i.channel("app"),"click:edit",this.clickEdit),this.listenTo(i.channel("app"),"click:delete",this.maybeDelete),this.listenTo(i.channel("app"),"click:duplicate",this.clickDuplicate)},clickEdit:function(e,t){if(!this.deleting){var n=i.channel("app").request("get:currentDomain").get("id"),r=i.channel(n).request("get:type",t.get("type"));i.channel("app").request("open:drawer","editSettings",{model:t,groupCollection:r.get("settingGroups")}),i.channel("fields-repeater").trigger("clearEditActive",t)}},maybeDelete:function(e,t){this.deleting=!0;var n=t.get("id");if("field"!=t.get("objectType").toLowerCase())this.clickDelete(e,t);else if("tmp"===n.toString().substring(0,3)||-1!=jQuery.inArray(t.get("type"),["html","submit","hr","recaptcha","spam","creditcard","creditcardcvc","creditcardexpiration","creditcardfullname","creditcardnumber","creditcardzip"]))this.clickDelete(e,t);else{var i=Backbone.Radio.channel("app").request("get:formModel"),r={action:"nf_maybe_delete_field",security:nfAdmin.ajaxNonce,formID:i.get("id"),fieldKey:t.get("key"),fieldID:n},a=this;jQuery.post(ajaxurl,r).done((function(n){var i=JSON.parse(n);if(i.data.hasOwnProperty("errors")){var r=i.data.errors;return Array.isArray(r)?r.forEach((function(e){r+=e+"\n"})):r=r,console.log("Maybe Delete Field Errors: ",r),alert(r),null}return i.data.field_has_data?(a.doDeleteFieldModal(e,t),!1):(a.clickDelete(e,t),!1)}))}},doDeleteFieldModal:function(e,t){var n=this,i={width:400,closeOnClick:!1,closeOnEsc:!0,content:nfi18n.fieldDataDeleteMsg,btnPrimary:{text:nfi18n.delete,callback:function(){r.toggleModal(!1),r.destroy(),n.clickDelete(e,t)}},btnSecondary:{text:nfi18n.cancel,callback:function(){r.toggleModal(!1),r.destroy(),n.deleting=!1}}},r=new NinjaModal(i)},clickDelete:function(e,t){var n=i.channel("app").request("clone:modelDeep",t),r={object:t.get("objectType"),label:t.get("label"),change:"Removed",dashicon:"dismiss"},a={collection:t.collection},l=i.channel("changes").request("get:collection").where({model:t});_.each(l,(function(e){var i=e.get("data");void 0!==i.fields&&_.each(i.fields,(function(e,r){e.model==t&&(i.fields[r].model=n)})),e.set("data",i),e.set("model",n),e.set("disabled",!0)})),i.channel("changes").request("register:change","removeObject",n,null,r,a);var s=i.channel("app").request("get:currentDomain").get("id");i.channel(s).request("delete",t),this.deleting=!1},clickDuplicate:function(e,t){var n=i.channel("app").request("clone:modelDeep",t),r=i.channel("app").request("get:currentDomain").get("id");n.set("label",n.get("label")+" Copy",{silent:!0});var a=i.channel(r).request("get:tmpID");n.set("id",a),i.channel(r).request("add",n,!1,!1,"duplicate");var l={object:t.get("objectType"),label:t.get("label"),change:"Duplicated",dashicon:"admin-page"},s={collection:i.channel(r).request("get:collection")};i.channel("changes").request("register:change","duplicateObject",n,null,l,s),t.trigger("change:label",t),i.channel("app").request("update:db")}})})),n("controllers/app/mergeTags",["models/app/mergeTagCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.tagSectionCollection=new e;var t=this;_.each(mergeTags,(function(n){if(n.tags)var i=new e(n.tags);else i="";t.tagSectionCollection.add({id:n.id,label:n.label,tags:i,default_group:n.default_group})}));var n=this.tagSectionCollection.get("fields").get("tags"),r=i.channel("fields").request("get:collection");_.each(r.models,(function(e){"submit"!==e.get("type")&&n.add({id:e.get("id"),label:e.get("label"),tag:t.getFieldKeyFormat(e.get("key"))})}));var a=new e,l=i.channel("app").request("get:formModel").get("settings").get("calculations");_.each(l.models,(function(e){a.add({label:e.get("name"),tag:"{calc:"+e.get("name")+"}"})})),this.tagSectionCollection.get("calcs").set("tags",a),this.currentElement={},this.settingModel={},this.open=!1,this.listenTo(i.channel("mergeTags"),"click:mergeTag",this.clickMergeTag),this.listenTo(i.channel("fields"),"add:field",this.addFieldTags),this.listenTo(i.channel("fields"),"delete:field",this.deleteFieldTags),this.listenTo(i.channel("option-repeater-calculations"),"update:option",this.updateCalcTags),this.listenTo(i.channel("option-repeater-calculations"),"remove:option",this.updateCalcTags),i.channel("mergeTags").reply("update:currentElement",this.updateCurrentElement,this),i.channel("mergeTags").reply("update:currentSetting",this.updateCurrentSetting,this),i.channel("mergeTags").reply("get:collection",this.getCollection,this),i.channel("mergeTags").reply("get:mergeTag",this.getSectionModel,this),this.listenTo(i.channel("fieldSetting-id"),"update:setting",this.updateID),this.listenTo(i.channel("fieldSetting-key"),"update:setting",this.updateKey),this.listenTo(i.channel("app"),"replace:fieldKey",this.replaceFieldKey),i.channel("app").reply("get:fieldKeyFormat",this.getFieldKeyFormat,this)},initMergeTags:function(e){var t=i.channel("mergeTags").request("get:view");this.jBoxes={};var n=this;jQuery(e.el).find(".merge-tags").each((function(){if(void 0===jQuery(this).data("jBox-id")){var i=jQuery(this).jBox("Tooltip",{title:"Insert Merge Tag",trigger:"click",position:{x:"center",y:"bottom"},closeOnClick:"body",closeOnEsc:!0,theme:"TooltipBorder",maxHeight:200,onOpen:function(){t.reRender(e.model),this.setContent(jQuery(".merge-tags-content"));var i=jQuery(this.target).prev(".setting");0==i.length&&(i=jQuery(e.el).find(".setting")),n.updateCurrentSetting(e.model),n.updateCurrentElement(i)},onClose:function(){}});jQuery(this).data("jBox-id",i.id)}}))},clickMergeTag:function(e,t){if(void 0!==this.settingModel.get("settingModel")&&"calculations"==this.settingModel.get("settingModel").get("name")){console.log(t);var n=jQuery(this.currentElement).val(),i=(a=jQuery(this.currentElement).caret())+t.get("tag").length,r=void 0!==t.get("calcTag")?t.get("calcTag"):t.get("tag");n=n.substr(0,a)+r+n.substr(a),jQuery(this.currentElement).val(n).caret(i).trigger("change")}else if("rte"==this.settingModel.get("type"))jQuery(this.currentElement).summernote("insertText",t.get("tag"));else{var a;n=jQuery(this.currentElement).val(),i=(a=jQuery(this.currentElement).caret())+t.get("tag").length;n=n.substr(0,a)+t.get("tag")+n.substr(a),jQuery(this.currentElement).val(n).caret(i).trigger("change")}},addFieldTags:function(e){"submit"!==e.get("type")&&this.tagSectionCollection.get("fields").get("tags").add({id:e.get("id"),label:e.get("label"),tag:this.getFieldKeyFormat(e.get("key")),calcTag:this.getFieldKeyFormatCalc(e.get("key"))})},deleteFieldTags:function(e){var t=e.get("id"),n=this.tagSectionCollection.get("fields").get("tags").get(t);this.tagSectionCollection.get("fields").get("tags").remove(n)},updateCalcTags:function(t){var n=new e,r=i.channel("app").request("get:formModel").get("settings").get("calculations");_.each(r.models,(function(e){n.add({label:e.get("name"),tag:"{calc:"+e.get("name")+"}"})})),this.tagSectionCollection.get("calcs").set("tags",n)},openMergeTags:function(e){"TEXTAREA"!=jQuery(e.target)[0].tagName&&"INPUT"!=jQuery(e.target)[0].tagName||jQuery(e.target).parent().find(".merge-tags").click()},returnMergeTags:function(e){if(this.open){e.preventDefault();var t=this.fields.where({active:!0})[0];t&&this.clickMergeTag(e,t)}},upMergeTags:function(e){this.open&&(e.preventDefault(),this.changeActiveTag("up"))},downMergeTags:function(e){this.open&&(e.preventDefault(),this.changeActiveTag("down"))},changeActiveTag:function(e){if("down"==e)var t=1;else t=-1;if(0<this.fields.where({active:!0}).length){var n=this.fields.where({active:!0})[0],i=this.fields.indexOf(n);n.set("active",!1);var r=this.fields.models[i+t];r&&r.set("active",!0)}else 0<this.fields.where({active:!0})?console.log("system"):0<this.userInfo.where({active:!0})?console.log("userinfo"):0<this.fields.models.length?this.fields.models[0].set("active",!0):this.system.models[0].set("active",!0)},updateCurrentElement:function(e){this.currentElement=e},updateCurrentSetting:function(e){this.settingModel=e},getCollection:function(){return this.tagSectionCollection},getSectionModel:function(e){return this.tagSectionCollection.get(e)},updateOpen:function(e){this.open=e,_.each(this.tagSectionCollection.get("fields").models,(function(e){e.set("active",!1)}))},updateID:function(e){var t=this.getFieldKeyFormat(e.get("key")),n=this.tagSectionCollection.get("fields").get("tags").find((function(e){return t==e.get("tag")}));void 0!==n&&n.set("id",e.get("id"))},updateKey:function(e){var t=e.get("key"),n=this.tagSectionCollection.get("fields").get("tags").get(e.get("id"));void 0!==n&&n.set("tag",this.getFieldKeyFormat(t))},getFieldKeyFormat:function(e){return"{field:"+e+"}"},getFieldKeyFormatCalc:function(e){return"{field:"+e+":calc}"},replaceFieldKey:function(e,t,n){var i=this.getFieldKeyFormat(t._previousAttributes.key),r=this.getFieldKeyFormat(t.get("key")),a=n.get("name"),l=e.get(a);if("calculations"==a&&void 0!==e.get("calculations"))return e.get("calculations").each((function(e){var t=i.slice(0,i.length-1)+":calc}",n=r.slice(0,r.length-1)+":calc}";if("string"==typeof(l=e.get("eq"))){var a=new RegExp(t,"g"),s=l.replace(a,n);a=new RegExp(i,"g"),s=s.replace(a,r),e.set("eq",s)}})),!1;if("string"==typeof l){var s=new RegExp(i,"g");newVal=l.replace(s,r),e.set(a,newVal)}}})})),n("models/app/mergeTagLookupCollection",["models/app/mergeTagModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("views/app/drawer/mergeTag",[],(function(){return Marionette.ItemView.extend({tagName:"li",template:"#tmpl-nf-merge-tag-box-tag",events:{click:"insertTag"},insertTag:function(){i.channel("mergeTags").request("insert:tag",this.model.get("tag"))}})})),n("views/app/drawer/mergeTagList",["views/app/drawer/mergeTag"],(function(e){return Marionette.CollectionView.extend({tagName:"ul",childView:e,calc:!1,initialize:function(){i.channel("merge-tags").reply("update:taglist",this.sectionFilter,this),i.channel("merge-tags").reply("filtersearch",this.searchFilter,this)},filter:function(e,t,n){return"fields"==e.get("section")},sectionFilter:function(e,t){if(this.filter=function(t,n,i){return e==t.get("section")},t&&(this.calc=!0),this.calc){var n=this.excludeFromCalcs();this.filter=function(t,i,r){return e==t.get("section")&&-1==n.indexOf(t.get("tag"))}}this.render(),i.channel("merge-tags").trigger("after:filtersearch",e)},searchFilter:function(e){if(this.calc)var t=this.excludeFromCalcs();this.filter=function(n,i,r){var a=n.get("label").toLowerCase().indexOf(e.toLowerCase().replace(":",""))>=0,l=n.get("tag").toLowerCase().indexOf(e.toLowerCase())>=0;return(!this.calc||-1==t.indexOf(n.get("tag")))&&(a||l)},this.render(),i.channel("merge-tags").trigger("after:filtersearch")},excludeFromCalcs:function(){var e=i.channel("fields").request("get:collection"),t=[],n=["product","quantity","total","shipping","date"];return _.each(e.models,(function(e){-1!=n.indexOf(e.get("type"))&&t.push("{field:"+e.get("key")+"}")})),t}})})),n("views/app/drawer/mergeTagGroup",[],(function(){return Marionette.ItemView.extend({tagName:"li",template:"#tmpl-nf-merge-tag-box-section",events:{click:"onClick"},initialize:function(){this.listenTo(i.channel("merge-tags"),"after:filtersearch",this.updateActive)},onClick:function(){this.updateTags()},updateTags:function(){i.channel("merge-tags").request("update:taglist",this.model.get("id"))},updateActive:function(e){this.$el.removeClass("active"),e==this.model.get("id")&&this.$el.addClass("active")},setActive:function(){this.$el.addClass("active"),this.$el.siblings().removeClass("active")}})})),n("views/app/drawer/mergeTagGroupList",["views/app/drawer/mergeTagGroup"],(function(e){return Marionette.CollectionView.extend({tagName:"ul",childView:e,initialize:function(){this.listenTo(i.channel("merge-tags"),"open",this.render,this)},filter:function(e,t,n){return 0<e.get("tags").length}})})),n("views/app/drawer/mergeTagFilter",[],(function(){return Marionette.ItemView.extend({template:"#tmpl-nf-merge-tag-box-filter",events:{"keyup input":"updateFilter"},updateFilter:function(e){if(13==e.keyCode){var t=jQuery("#merge-tags-box .merge-tag-list ul li span").first().data("tag");return i.channel("mergeTags").request("insert:tag",t),jQuery("#merge-tags-box").css("display","none"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),void jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay")}var n=this.$el.find("input").val();i.channel("merge-tags").request("filtersearch",n)}})})),n("views/app/drawer/mergeTagBox",[],(function(){return Marionette.LayoutView.extend({el:"#merge-tags-box",template:"#tmpl-nf-merge-tag-box",regions:{filter:".merge-tag-filter",sections:".merge-tag-sections",tags:".merge-tag-list"}})})),n("controllers/app/mergeTagBox",["models/app/mergeTagModel","models/app/mergeTagLookupCollection","views/app/drawer/mergeTag","views/app/drawer/mergeTagList","views/app/drawer/mergeTagGroup","views/app/drawer/mergeTagGroupList","views/app/drawer/mergeTagFilter","views/app/drawer/mergeTagBox"],(function(e,t,n,r,a,l,s,o){return Marionette.Object.extend({caret:0,old:"",initialize:function(){this.listenTo(i.channel("drawer"),"render:settingGroup",(function(){jQuery(".merge-tags").off("click"),jQuery(".merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("app"),"after:appStart",this.afterAppStart),this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting),this.listenTo(i.channel("drawer"),"before:close",this.beforeDrawerClose);var e=this;i.channel("mergeTags").reply("set:caret",(function(t){e.caret=t})),i.channel("mergeTags").reply("get:caret",(function(){return e.caret}));e=this;i.channel("mergeTags").reply("set:old",(function(t){e.old=t})),i.channel("mergeTags").reply("get:old",(function(){return e.old})),i.channel("mergeTags").reply("insert:tag",this.insertTag.bind(this)),this.listenTo(i.channel("option-repeater"),"add:option",(function(t){var n="#"+t.cid+" .has-merge-tags input.setting";jQuery(n).on("focus",(function(t){e.focusCallback(t,n,"option-repeater")})),jQuery(n).on("keyup",(function(t){e.keyupCallback(t,n,"option-repeater")})),jQuery(n).siblings(".nf-list-options .merge-tags").off("click"),jQuery(n).siblings(".nf-list-options .merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("drawer"),"opened",(function(){jQuery(".nf-list-options .merge-tags").off("click"),jQuery(".nf-list-options .merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("setting-calculations-option"),"render:setting",this.renderSetting),this.listenTo(i.channel("drawer"),"opened",(function(){jQuery(".nf-list-options.calculations .merge-tags").off("click"),jQuery(".nf-list-options.calculations .merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("summernote"),"focus",(function(t,n){e.focusCallback(!1,n,"rte")})),this.listenTo(i.channel("summernote"),"keydown",(function(e,t){jQuery(t).closest(".nf-setting").find(".setting").summernote("saveRange")})),this.listenTo(i.channel("summernote"),"keyup",(function(t,n){e.keyupCallback(t,n,"rte")})),this.listenTo(i.channel("setting-type-rte"),"render:setting",(function(){jQuery(".note-editor .merge-tags").off("click"),jQuery(".note-editor .merge-tags").on("click",this.mergeTagsButtonClick)})),this.listenTo(i.channel("drawer"),"opened",(function(){jQuery(".note-editor .merge-tags").off("click"),jQuery(".note-editor .merge-tags").on("click",this.mergeTagsButtonClick)})),jQuery(document).on("keyup",(function(e){27==e.keyCode&&(i.channel("mergeTags").request("insert:tag",""),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").blur(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay"))})),this.listenTo(Backbone.Radio.channel("fields"),"add:field",this.afterAppStart),this.listenTo(Backbone.Radio.channel("fields"),"delete:field",this.afterAppStart),this.listenTo(Backbone.Radio.channel("fieldSetting-key"),"update:setting",this.afterAppStart),this.listenTo(Backbone.Radio.channel("calcs"),"update:calc",this.afterAppStart),this.listenTo(Backbone.Radio.channel("app"),"change:currentDomain",this.afterAppStart)},afterAppStart:function(){var e=Backbone.Radio.channel("app").request("get:currentDomain"),n=i.channel("mergeTags").request("get:collection"),a=[];n.each((function(t){t.get("tags").each((function(n){"fields"==e.get("id")&&"{submission:sequence}"==n.get("tag")||a.push({label:n.get("label"),tag:n.get("tag"),section:t.get("id")})}))}));var c=new o;c.render();var d=new t(a),h=new r({collection:d}),u=new l({collection:n});c.getRegion("tags").show(h),c.getRegion("sections").show(u),c.getRegion("filter").show(new s)},beforeRenderSetting:function(e,t){if(void 0!==e.get("use_merge_tags")&&e.get("use_merge_tags")){var n=e.get("name");this.listenTo(i.channel("setting-"+n),"render:setting",this.renderSetting)}},renderSetting:function(e,t,n){n.$el.find(".merge-tags").off("click"),n.$el.find(".merge-tags").on("click",this.mergeTagsButtonClick),0==jQuery("#merge-tags-box").length&&this.afterAppStart(),jQuery("#nf-drawer").on("scroll",(function(){if(0!=jQuery(".merge-tag-focus").length){var e=jQuery(".merge-tag-focus").closest(".nf-setting").find(".note-editor");if(0!=e.length)var t=e.offset().top-jQuery(window).scrollTop(),n=e.outerHeight();else t=jQuery(".merge-tag-focus").offset().top-jQuery(window).scrollTop(),n=jQuery(".merge-tag-focus").outerHeight();var i=t+n,r=window.innerHeight,a=jQuery("#merge-tags-box").outerHeight();i+a>r&&(i=t-a),0>i&&(i=t),jQuery("#merge-tags-box").css("top",i);var l=jQuery("#merge-tags-box").outerHeight();jQuery("#nf-drawer").css("padding-bottom",l+"px");var s=jQuery(".merge-tag-focus").closest(".nf-list-options-tbody");if(0!=s.length){var o=s.offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",o)}else{var c=jQuery(".merge-tag-focus").closest(".nf-settings").offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",c),jQuery("#merge-tags-box").css("width",jQuery(".merge-tag-focus").closest(".nf-settings").width())}}})),jQuery(n.el).find(".setting").on("focus",this.focusCallback),jQuery(n.el).find(".setting").on("keyup",this.keyupCallback)},beforeDrawerClose:function(){jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close")},insertTag:function(e){var t=jQuery(".merge-tag-focus");if(0!=t.closest(".nf-setting").first().find(".note-editable").length&&(t=t.closest(".nf-setting").first().find(".note-editable")),1<t.length&&(t=t.first()),t.hasClass("note-editable"))var n=t.closest(".nf-setting").find(".setting").summernote("code");else n=t.val();for(var r=i.channel("mergeTags").request("get:old"),a=e,l=i.channel("mergeTags").request("get:caret"),s=/{([a-zA-Z0-9]|:|_||-})*/g;match=s.exec(n);)if(r==match[0]){var o=n.slice(0,match.index)+a+n.slice(s.lastIndex);if(t.hasClass("note-editable")){t.closest(".nf-setting").find(".setting").summernote("code",o);var c=t,d=null;_.each(c[0].childNodes,(function(e,t){if(!d&&(e.nodeValue||e.innerHTML)){if(e.nodeValue)var n=e.nodeValue;else if(e.innerHTML)n=e.innerHTML;if(-1!=n.indexOf(a)){var i=(n=n.replace(/&nbsp;/g," ")).indexOf(a)+r.length;-1==l&&(l=n.indexOf(a)+1),l==i&&(d=c[0].childNodes[t])}}})),d||(d=c[0].childNodes[0]);var h=l-r.length+a.length,u=document.createRange(),p=window.getSelection();if(0!=d.childNodes.length)try{u.setStart(d.childNodes[0],h)}catch(e){console.log(d),console.log("error")}else try{u.setStart(d,h)}catch(e){console.log("error")}u.collapse(!0),p.removeAllRanges(),p.addRange(u)}else t.val(o),t.change(),t.caret(l-r.length+a.length)}jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),t.removeClass("merge-tag-focus"),t.closest(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay")},mergeTagsButtonClick:function(e){var t=jQuery(this);if(!t.hasClass("open-media-manager")){if(t.siblings().hasClass("merge-tag-focus"))return i.channel("mergeTags").request("insert:tag",""),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),void jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay");if(0!==t.closest(".nf-setting, .nf-table-row").find(".note-tools").length){var n=t.closest(".note-editor").siblings(".setting").first();t.closest(".nf-setting").find(".setting").summernote("insertText","{"),i.channel("mergeTags").request("set:caret",-1)}else{var r=(n=t.siblings(".setting").first()).val()||"";n.val(r+"{").change(),i.channel("mergeTags").request("set:caret",r.length+1)}t.parent().hasClass("note-tools"),i.channel("mergeTags").request("set:old","{"),n.addClass("merge-tag-focus");var a=t.attr("autocomplete");t.attr("autocomplete","off"),t.data("autocomplete",a);var l=t.closest(".nf-setting, .nf-table-row");if(0!=l.find(".note-editor").length?l.find(".note-editor").addClass("merge-tag-focus-overlay"):l.addClass("merge-tag-focus-overlay"),"eq"==jQuery(e.target).prev("textarea").data("id"))var s=!0;else s=!1;i.channel("merge-tags").request("update:taglist","fields",s),jQuery("#merge-tags-box").css("display","block"),i.channel("drawer").request("prevent:close"),jQuery(".merge-tag-focus-overlay").off("click"),jQuery(".merge-tag-focus-overlay").on("click",(function(e){jQuery(e.target).hasClass("note-editor")&&(i.channel("mergeTags").request("insert:tag",""),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay"))})),setTimeout((function(){jQuery("#merge-tags-box").find(".merge-tag-filter").find("input").focus()}),500)}},focusCallback:function(e,t,n){n=n||"setting";var i=void 0===t?jQuery(this):jQuery(t);if(jQuery(".merge-tag-focus").each((function(e,t){this!=t&&t.removeClass("merge-tag-focus")})),"rte"==n)var r=i.closest(".nf-setting").find(".note-editor").offset().top-jQuery(window).scrollTop(),a=i.closest(".nf-setting").find(".note-editor").outerHeight();else r=i.offset().top-jQuery(window).scrollTop(),a=i.outerHeight();var l=r+a,s=window.innerHeight,o=jQuery("#merge-tags-box").outerHeight();l+o>s&&(l=r-o),0>l&&(l=r),jQuery("#merge-tags-box").css("top",l);var c=i.closest(".nf-list-options-tbody");if(0!=c.length){var d=c.offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",d)}else if("rte"==n){var h=i.closest(".nf-setting").find(".note-editor").offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",h),jQuery("#merge-tags-box").css("width",i.closest(".nf-setting").find(".note-editor").width())}else{h=jQuery(this).closest(".nf-settings").offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",h),jQuery("#merge-tags-box").css("width",i.closest(".nf-settings").width())}jQuery(this).data("id")},keyupCallback:function(e,t,n){n=n||"setting";if(13==e.keyCode){var r=jQuery("#merge-tags-box .merge-tag-list ul li span").first().data("tag");return i.channel("mergeTags").request("insert:tag",r),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),void jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay")}if(void 0!==t)var a=jQuery(t);else a=jQuery(this);var l=jQuery(this).data("id");if(!l||"eq"!=l){if("rte"==n){var s=a.summernote("createRange");if(s)var o=s.so;else o=0;a.closest(".nf-setting").find(".setting").summernote("saveRange")}else o=a.caret();if(i.channel("mergeTags").request("set:caret",o),"rte"==n)var c=a.summernote("code").match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));else c=a.val().match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));if(0!==(c=_.filter(c,(function(e){return-1==e.indexOf("}")}))).length){i.channel("mergeTags").request("set:old",c[0]),jQuery("#merge-tags-box").css("display","block"),i.channel("drawer").request("prevent:close"),a.addClass("merge-tag-focus");var d=jQuery("#merge-tags-box").outerHeight();jQuery("#nf-drawer").css("padding-bottom",d+"px");var h=a.attr("autocomplete");a.attr("autocomplete","off"),a.data("autocomplete",h);var u=a.closest(".nf-setting, .nf-table-row");0!=u.find(".note-editor").length?u.find(".note-editor").addClass("merge-tag-focus-overlay"):u.addClass("merge-tag-focus-overlay"),u.off("click"),u.on("click",(function(e){-1!==(jQuery(e.target).attr("class")||[]).indexOf("merge-tag-focus-overlay")&&(i.channel("mergeTags").request("insert:tag",""),jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay"))}));c[0].replace("{","")}else jQuery("#merge-tags-box").css("display","none"),i.channel("drawer").request("enable:close"),jQuery("#merge-tags-box").removeClass(),jQuery(".merge-tag-focus").removeClass("merge-tag-focus"),jQuery(".merge-tag-focus-overlay").removeClass("merge-tag-focus-overlay")}}})})),n("controllers/app/itemSettingFill",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t){e.get("fill")}})})),n("controllers/app/confirmPublish",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:confirmPublish",this.confirmPublish)},confirmPublish:function(){var e=i.channel("app").request("get:formModel");1==e.get("settings").get("add_submit")&&i.channel("fields").request("add",{type:"submit",label:"Submit",order:9999}),e.set("show_publish_options",!1),i.channel("app").request("update:db","publish")}})})),n("controllers/app/rte",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("setting-type-rte").reply("renderOnChange",(function(){return!1})),this.listenTo(i.channel("rte"),"init:settingModel",this.initSettingModel),this.listenTo(i.channel("setting-type-rte"),"render:setting",this.renderSetting),this.listenTo(i.channel("setting-type-rte"),"destroy:setting",this.destroySetting),this.listenTo(i.channel("setting-type-rte"),"click:extra",this.clickExtra),this.meta_image_frame,jQuery.summernote.options.icons={align:"dashicons dashicons-editor-alignleft",alignCenter:"dashicons dashicons-editor-aligncenter",alignJustify:"dashicons dashicons-editor-justify",alignLeft:"dashicons dashicons-editor-alignleft",alignRight:"dashicons dashicons-editor-alignright",indent:"dashicons dashicons-editor-indent",outdent:"dashicons dashicons-editor-outdent",bold:"dashicons dashicons-editor-bold",caret:"dashicons dashicons-arrow-down",close:"dashicons dashicons-dismiss",code:"dashicons dashicons-editor-code",eraser:"dashicons dashicons-editor-removeformatting",italic:"dashicons dashicons-editor-italic",link:"dashicons dashicons-admin-links",unlink:"dashicons dashicons-editor-unlink",magic:"dashicons dashicons-editor-paragraph",minus:"dashicons dashicons-minus",orderedlist:"dashicons dashicons-editor-ol",redo:"dashicons dashicons-redo",square:"dashicons fa-square",table:"dashicons dashicons-editor-table",underline:"dashicons dashicons-editor-underline",undo:"dashicons dashicons-undo",unorderedlist:"dashicons dashicons-editor-ul"},this.currentContext={}},initSettingModel:function(e){e.set("hide_merge_tags",!0)},initRTE:function(e,t,n){var r=this,a=this.mergeTags();jQuery(n.el).find("div.setting").summernote({toolbar:[["paragraphStyle",["style"]],["fontStyle",["bold","italic","underline","clear"]],["lists",["ul","ol"]],["paragraph",["paragraph"]],["customGroup",["linkButton","unlink"]],["table",["table"]],["actions",["undo","redo"]],["tools",["mediaButton","mergeTags","codeview"]]],buttons:{linkButton:function(e){return r.linkButton(e)},mergeTags:a,mediaButton:function(e){return r.mediaButton(e)}},height:150,codemirror:{theme:"monokai",lineNumbers:!0,lineWrapping:!0,callbacks:{onBlur:function(n){var i=n.getValue();r.updateDataModel(e,t,i)}}},prettifyHtml:!0,callbacks:{onBlur:function(n,a){var l=jQuery(this).summernote("code");r.updateDataModel(e,t,l),i.channel("summernote").trigger("blur",e,t,l)},onFocus:function(e,t){i.channel("summernote").trigger("focus",e,this,t)},onKeydown:function(e,t){i.channel("summernote").trigger("keydown",e,this,t)},onKeyup:function(e,t){i.channel("summernote").trigger("keyup",e,this,t)}}})},updateDataModel:function(e,t,n){var r=e.get("name"),a=t.get(r),l=n,s={attr:r,before:a,after:l},o={object:t.get("objectType"),label:t.get("label"),change:"Changed "+e.get("label")+" from "+a+" to "+l};i.channel("changes").request("register:change","changeSetting",t,s,o),t.set(e.get("name"),l)},renderSetting:function(e,t,n){this.initRTE(e,t,n);var i=jQuery(n.el).find(".link-button").next(".dropdown-menu").find("button");i.replaceWith((function(){return jQuery("<div/>",{class:jQuery(i).attr("class"),html:this.innerHTML})}))},destroySetting:function(e,t,n){this.removeRTE(e,t,n)},removeRTE:function(e,t,n){jQuery(n.el).find("div.setting").summernote("destroy")},drawerOpened:function(e,t,n){this.initRTE(e,t,n)},linkButton:function(e){var t=this,n=jQuery.summernote.ui,r=i.channel("app").request("get:template","#tmpl-nf-rte-link-button"),a=i.channel("app").request("get:template","#tmpl-nf-rte-link-dropdown");return n.buttonGroup([n.button({className:"dropdown-toggle link-button",contents:r({}),tooltip:"Insert Link",click:function(n){t.clickLinkButton(n,e)},data:{toggle:"dropdown"}}),n.dropdown([n.buttonGroup({children:[n.button({contents:a({}),tooltip:""})]})])]).render()},mergeTags:function(e){var t=jQuery.summernote.ui,n=i.channel("app").request("get:template","#tmpl-nf-rte-merge-tags-button");return t.button({className:"dropdown-toggle merge-tags",contents:n({}),tooltip:"Merge Tags"}).render()},mediaButton:function(e){var t=this,n=jQuery.summernote.ui,r=i.channel("app").request("get:template","#tmpl-nf-rte-media-button");return n.button({className:"dropdown-toggle",contents:r({}),tooltip:"Insert Media",click:function(n){t.openMediaManager(n,e)}}).render()},openMediaManager:function(e,t){if(t.invoke("editor.createRange"),t.invoke("editor.saveRange"),this.currentContext=t,this.meta_image_frame)this.meta_image_frame.open();else{this.meta_image_frame=wp.media.frames.meta_image_frame=wp.media({title:"Select a file",button:{text:"insert"}});var n=this;this.meta_image_frame.on("select",(function(){var e=n.meta_image_frame.state().get("selection").first().toJSON();n.insertMedia(e,t)})),this.meta_image_frame.open()}},clickLinkButton:function(e,t){var n=t.invoke("editor.createRange");t.invoke("editor.saveRange");var i=n.toString();this.currentContext=t,jQuery(e.target).closest(".note-customGroup > .note-btn-group").on("hide.bs.dropdown",(function(e){return!1})),jQuery(e.target).closest(".note-customGroup > .note-btn-group").on("shown.bs.dropdown",(function(e){jQuery(e.target).parent().parent().find(".link-text").val(i),jQuery(e.target).parent().parent().find(".link-url").focus()}))},clickExtra:function(e,t,n,i){var r=jQuery(e.target).parent().find(".link-text"),a=jQuery(e.target).parent().find(".link-url"),l=jQuery(e.target).parent().find(".link-new-window");if(this.currentContext.invoke("editor.restoreRange"),jQuery(e.target).hasClass("insert-link")){var s=r.val(),o=a.val(),c=!!l.prop("checked");0!=s.length&&0!=o.length&&this.currentContext.invoke("editor.createLink",{text:s,url:o,isNewWindow:c})}r.val(""),a.val(""),l.prop("checked",!1),jQuery(e.target).closest("div.note-btn-group.open").removeClass("open")},insertMedia:function(e,t){this.currentContext.invoke("editor.restoreRange"),"image"==e.type?this.currentContext.invoke("editor.insertImage",e.url):this.currentContext.invoke("editor.createLink",{text:e.title||e.filename,url:e.url})}})})),n("controllers/app/settingFieldSelect",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("field-select"),"init:settingModel",this.trackKeyChanges),this.listenTo(i.channel("setting-type-field-select"),"before:renderSetting",this.beforeRender),this.listenTo(i.channel("field-select"),"init:settingModel",(function(){this.listenTo(i.channel("app"),"change:setting",this.maybeSwitchToFieldsDomain)})),this.listenTo(i.channel("app"),"change:currentDomain",this.autoOpenDrawer),this.listenTo(i.channel("drawer"),"opened",this.filterDrawerContents),this.listenTo(i.channel("drawer"),"closed",this.SwitchToFieldsDomain)},trackKeyChanges:function(e){e.listenTo(i.channel("app"),"update:fieldKey",e.updateKey),this.listenTo(i.channel("app"),"replace:fieldKey",this.updateFieldMap)},updateFieldMap:function(e,t,n){var i=t._previousAttributes.key,r=t.get("key");"field-select"==n.get("type")&&e.get(n.get("name"))==i&&e.set(n.get("name"),r)},beforeRender:function(e,t){var n=i.channel("fields").request("get:collection"),r=e.get("field_types"),a=[{label:"--",value:0}];_.each(n.models,(function(n){if(t.cid!=n.cid&&(void 0===r||0==r.length||_.contains(r,n.get("type")))){var i=e.get("field_filter");if(i&&void 0!==i[n.get("type")]){var l=!1;if(_.each(i[n.get("type")],(function(e,t){console.log(e+":"+n.get(t)),e!=n.get(t)&&(l=!0)})),l)return}var s=n.get("key");if("key"===e.get("field_value_format"))s=n.get("key");else s="{field:"+n.get("key")+"}";a.push({label:n.get("label"),value:s})}})),void 0!==r&&0!=r.length&&_.each(r,(function(e){var t=i.channel("fields").request("get:type",e);a.push({label:"-- Add "+t.get("nicename")+" Field",value:"addField:"+e})})),e.set("options",a)},maybeSwitchToFieldsDomain:function(e,t,n){if("field-select"==t.get("type")){var r=t.get("name"),a=n.get(r);if(a){var l=a.split(":");"addField"==l[0]&&(this.openDrawer="addField",this.filterDrawer=l[1],n.set(r,""),this.switchDomain=!0,i.channel("app").request("close:drawer"))}}},SwitchToFieldsDomain:function(){if(this.switchDomain){var e=i.channel("app").request("get:domainModel","fields");i.channel("app").request("change:currentDomain",null,e),this.switchDomain=null}},autoOpenDrawer:function(){this.openDrawer&&(i.channel("app").request("open:drawer",this.openDrawer),this.openDrawer=null)},filterDrawerContents:function(){this.filterDrawer&&(i.channel("drawer-addField").trigger("change:filter",this.filterDrawer),this.filterDrawer=null)}})})),n("controllers/app/settingFieldList",["views/app/drawer/typeSettingFieldset","models/app/settingCollection"],(function(e,t){return Marionette.Object.extend({fieldListSettings:[],initialize:function(){this.listenTo(i.channel("field-list"),"init:settingModel",this.registerFieldListSettings),this.listenTo(i.channel("fields"),"update:setting",this.updateFieldListSettingKeys),i.channel("field-list").reply("get:settingChildView",this.getSettingChildView,this)},registerFieldListSettings:function(e){this.fieldListSettings.push(e.get("name"))},updateFieldListSettingKeys:function(e){if(void 0!==e.changed.key){var t=e._previousAttributes.key,n=e.changed.key,i=this;_.each(Backbone.Radio.channel("actions").request("get:collection").models,(function(e){_.each(e.attributes,(function(r,a){var l="";_.each(i.fieldListSettings,(function(i){if(a==i+"-"+t&&l!=t){var r=e.get(i+"-"+t);e.set(i+"-"+n,r),e.set(i+"-"+t,0),l=t}}))}))}))}},getSettingChildView:function(n){var r=_.filter(i.channel("fields").request("get:collection").models,(function(e){return _.contains(n.get("field_types"),e.get("type"))})),a=_.map(r,(function(e){return{name:n.get("name")+"-"+e.get("key"),type:"toggle",label:e.get("label"),width:"full"}}));return n.set("settings",new t(a)),e}})})),n("controllers/app/settingHTML",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-type-html"),"before:renderSetting",this.init)},init:function(e,t){"undefined"!=e.get("mirror")&&t.on("change:"+e.get("mirror"),this.update,e)},update:function(e,t){e.set(this.get("name"),t)}})})),n("controllers/app/settingColor",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("setting-type-color").reply("renderOnChange",this.setRenderFalse),this.listenTo(i.channel("setting-type-color"),"destroy:setting",this.closeColorPickers),this.listenTo(i.channel("setting-type-color"),"render:setting",this.initColorPicker)},initColorPicker:function(e,t,n){e.get("name");var r=jQuery(n.el).find("input");jQuery(r).wpColorPicker({change:function(n,r){i.channel("app").request("change:setting",n,e,t,r.color.toString())}})},setRenderFalse:function(){return!1},closeColorPickers:function(e,t,n){jQuery(n.el).find(".wp-color-picker").wpColorPicker("close")}})})),n("controllers/app/changeMenu",[],(function(){return Marionette.Object.extend({editFormText:"",initialize:function(){this.editFormText=nfAdmin.editFormText||"Edit Form",this.listenTo(i.channel("app"),"after:appStart",this.changeMenu),this.listenTo(i.channel("app"),"response:updateDB",this.formPublish)},changeMenu:function(){var e=i.channel("app").request("get:formModel");this.isNewForm(e.id)?this.highlightAddNew():this.appendEditForm()},isNewForm:function(e){return isNaN(e)},highlightAddNew:function(){jQuery(".wp-submenu li").removeClass("current"),jQuery('a[href="admin.php?page=ninja-forms&form_id=new"]').parent().addClass("current")},appendEditForm:function(){var e,t,n;jQuery('li a:contains("'+this.editFormText+'")').length>0||(e=document.createTextNode(this.editFormText),(t=document.createElement("a")).appendChild(e),(n=document.createElement("li")).appendChild(t),n.classList.add("current"),jQuery(".wp-submenu li").removeClass("current"),jQuery('a[href="admin.php?page=ninja-forms#new-form"]').parent().after(n))},formPublish:function(e){if("publish"!==e.action)return!1;this.changeMenu()}})})),n("controllers/app/mobile",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"click:menu",this.closeMobileMenu)},closeMobileMenu:function(){var e=i.channel("app").request("get:builderEl");jQuery(e).removeClass("nf-menu-expand")}})})),n("controllers/app/notices",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("notices").reply("add",this.addNotice,this),i.channel("notices").reply("close",this.closeNotice,this),this.notices={}},addNotice:function(e,t,n){var r={content:t,color:"green",zIndex:1e7,constructOnInit:!0,stack:!0,animation:{open:"flip",close:"flip"}};if(i.channel("app").request("is:mobile"))var a={position:{x:"center",y:"top"},animation:{open:"slide:top",close:"slide:left"},autoClose:2e3,offset:{x:0,y:55}};else a={attributes:{x:"left",y:"bottom"},autoClose:4e3};a=jQuery.extend(a,r);n=jQuery.extend(a,n);this.notices[e]=new jBox("Notice",n)},closeNotice:function(e){void 0!==this.notices[e]&&this.notices[e].close()},openNotice:function(e){void 0!==this.notices[e]&&this.notices[e].open()}})})),n("controllers/app/unloadCheck",[],(function(){return Marionette.Object.extend({initialize:function(){jQuery(window).bind("beforeunload",this.maybePrompt)},maybePrompt:function(e){if(!i.channel("app").request("get:setting","clean"))return"You have unsaved changes."}})})),n("controllers/app/formContentFilters",[],(function(){return Marionette.Object.extend({initialize:function(){this.viewFilters=[],this.saveFilters=[],this.loadFilters=[],i.channel("formContent").reply("add:viewFilter",this.addViewFilter,this),i.channel("formContent").reply("add:saveFilter",this.addSaveFilter,this),i.channel("formContent").reply("add:loadFilter",this.addLoadFilter,this),i.channel("formContent").reply("get:viewFilters",this.getViewFilters,this),i.channel("formContent").reply("get:saveFilters",this.getSaveFilters,this),i.channel("formContent").reply("get:loadFilters",this.getLoadFilters,this),i.channel("fieldContents").reply("add:viewFilter",this.addViewFilter,this),i.channel("fieldContents").reply("add:saveFilter",this.addSaveFilter,this),i.channel("fieldContents").reply("add:loadFilter",this.addLoadFilter,this),i.channel("fieldContents").reply("get:viewFilters",this.getViewFilters,this),i.channel("fieldContents").reply("get:saveFilters",this.getSaveFilters,this),i.channel("fieldContents").reply("get:loadFilters",this.getLoadFilters,this)},addViewFilter:function(e,t){this.viewFilters[t]=e},getViewFilters:function(){return this.viewFilters},addSaveFilter:function(e,t){this.saveFilters[t]=e},getSaveFilters:function(){return this.saveFilters},addLoadFilter:function(e,t){this.loadFilters[t]=e},getLoadFilters:function(){return this.loadFilters}})})),n("controllers/app/formContentGutterFilters",[],(function(){return Marionette.Object.extend({initialize:function(){this.leftFilters=[],this.rightFilters=[],i.channel("formContentGutters").reply("add:leftFilter",this.addLeftFilter,this),i.channel("formContentGutters").reply("add:rightFilter",this.addRightFilter,this),i.channel("formContentGutters").reply("get:leftFilters",this.getLeftFilters,this),i.channel("formContentGutters").reply("get:rightFilters",this.getRightFilters,this)},addLeftFilter:function(e,t){this.leftFilters[t]=e},addRightFilter:function(e,t){this.rightFilters[t]=e},getLeftFilters:function(){return this.leftFilters},getRightFilters:function(){return this.rightFilters}})})),n("controllers/app/cloneCollectionDeep",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("clone:collectionDeep",this.cloneCollectionDeep,this)},cloneCollectionDeep:function(e){var t=[];return _.each(e.models,(function(e){var n=i.channel("app").request("clone:modelDeep",e);t.push(n)})),new e.constructor(t,e.options)}})})),n("controllers/app/trackKeyDown",[],(function(){return Marionette.Object.extend({keys:[],initialize:function(){var e=this;jQuery(document).on("keydown",(function(t){e.keyDown(t,e)})),jQuery(document).on("keyup",(function(t){e.keyUp(t,e)})),i.channel("app").reply("get:keydown",this.getKeyDown,this)},keyDown:function(e,t){t.keys[e.keyCode]=e.keyCode},keyUp:function(e,t){-1!=t.keys.indexOf(e.keyCode)&&delete t.keys[e.keyCode]},getKeyDown:function(){return this.keys}})})),n("controllers/app/perfectScroll",[],(function(){return Marionette.Object.extend({movedPos:!1,initialize:function(){this.listenTo(i.channel("main"),"show:main",this.initPerfectScroll),this.listenTo(i.channel("drawer"),"opened",this.moveRail),this.listenTo(i.channel("drawer"),"before:closeDrawer",this.resetRail)},initPerfectScroll:function(e){i.channel("app").request("is:mobile")||jQuery(e.el).parent().perfectScrollbar({suppressScrollX:!0}),jQuery("head").append('<style id="ps-scrollbar-css" type="text/css"></style>')},moveRail:function(){var e=i.channel("app").request("get:drawerEl"),t=jQuery(e).outerWidth();jQuery("#ps-scrollbar-css").text(".ps-scrollbar-moved { right: "+t+"px !important; } "),jQuery("#nf-main .ps-scrollbar-y-rail").addClass("ps-scrollbar-moved ")},resetRail:function(){jQuery(".ps-scrollbar-y-rail").removeClass("ps-scrollbar-moved ")}})})),n("controllers/app/getNewSettingGroupCollection",["models/app/settingGroupCollection"],(function(e){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("get:settingGroupCollectionDefinition",this.getNewSettingGroupCollection,this)},getNewSettingGroupCollection:function(){return e}})})),n("controllers/app/settingMedia",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-type-media"),"click:extra",this.clickExtra)},clickExtra:function(e,t,n,i){var r=jQuery(e.target).parent().find(".setting");if(jQuery(e.target).hasClass("open-media-manager")){if(this.meta_image_frame)return void this.meta_image_frame.open();this.meta_image_frame=wp.media.frames.meta_image_frame=wp.media({title:"Select a file",button:{text:"insert"}});var a=this;this.meta_image_frame.on("select",(function(){var e=a.meta_image_frame.state().get("selection").first().toJSON();r.val(e.url).change()})),this.meta_image_frame.open()}}})})),n("controllers/app/publicLink",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"after:appStart",this.validatePublicLink,this),i.channel("app").reply("generate:publicLinkKey",this.newPublicLinkKey,this)},newPublicLinkKey:function(){for(var e=i.channel("settings").request("get:settings"),t=i.channel("app").request("get:formModel").get("id"),n=0;n<4;n++){t+=Math.random().toString(36).slice(-1)}return e.set("public_link_key",t),t},validatePublicLink:function(){var e=i.channel("app").request("get:formModel").get("id"),t=i.channel("settings").request("get:settings");if(void 0===t.get("public_link_key"))return!1;if(0===t.get("public_link_key").indexOf(e))return!1;var n=this.newPublicLinkKey(),r=nfAdmin.publicLinkStructure.replace("[FORM_ID]",n);t.set("public_link",r)}})})),n("models/fields/typeSectionModel",[],(function(){return Backbone.Model.extend({defaults:{classes:""}})})),n("models/fields/typeSectionCollection",["models/fields/typeSectionModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("controllers/fields/types",["models/app/typeCollection","models/fields/typeSectionCollection"],(function(e,t){return Marionette.Object.extend({initialize:function(){this.sections=new t(fieldTypeSections),this.listenTo(i.channel("fields"),"init:typeModel",this.registerSection),this.collection=new e(fieldTypeData,{type:"fields"}),i.channel("fields").reply("get:type",this.getFieldType,this),i.channel("fields").reply("get:typeCollection",this.getTypeCollection,this),i.channel("fields").reply("get:typeSections",this.getTypeSections,this),i.channel("fields").reply("get:savedFields",this.getSavedFields,this),this.listenTo(i.channel("drawer"),"click:fieldType",this.addField)},registerSection:function(e){"fields"==e.collection.type&&e.get("section")&&this.sections.get(e.get("section")).get("fieldTypes").push(e.get("id"))},getFieldType:function(e){return this.collection.get(e)},getTypeCollection:function(e){return this.collection},addField:function(e){var t=jQuery(e.target).data("id");if(e.shiftKey)i.channel("fields").request("add:stagedField",t);else{var n=i.channel("fields").request("add",{type:t,label:i.channel("fields").request("get:type",t).get("nicename")});console.log(n);var r={object:"Field",label:n.get("label"),change:"Added",dashicon:"plus-alt"},a={collection:i.channel("fields").request("get:collection")};i.channel("changes").request("register:change","addObject",n,null,r,a),i.channel("fields").request("redraw:collection")}},getTypeSections:function(){return this.sections},getSavedFields:function(){this.sections.get("saved")}})})),n("controllers/fields/fieldTypeDrag",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"startDrag:type",this.startDrag),this.listenTo(i.channel("drawer-addField"),"stopDrag:type",this.stopDrag),i.channel("drawer-addField").reply("get:typeHelperClone",this.getCurrentDraggableHelperClone,this)},startDrag:function(e,t){this.drawerEl=i.channel("app").request("get:drawerEl"),this.mainEl=i.channel("app").request("get:mainEl"),jQuery(this.drawerEl)[0].style.setProperty("overflow","visible","important"),this.draggableHelperClone=jQuery(t.helper).clone()},stopDrag:function(e,t){jQuery(this.drawerEl)[0].style.setProperty("overflow","hidden","important")},getCurrentDraggableHelperClone:function(){return this.draggableHelperClone}})})),n("controllers/fields/stagingDrag",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"startDrag:fieldStaging",this.startDrag),this.listenTo(i.channel("drawer-addField"),"stopDrag:fieldStaging",this.stopDrag)},startDrag:function(e,t){this.drawerEl=i.channel("app").request("get:drawerEl"),this.mainEl=i.channel("app").request("get:mainEl"),jQuery(this.drawerEl)[0].style.setProperty("overflow","visible","important");var n=i.channel("fields").request("get:staging"),r=i.channel("app").request("get:template","#tmpl-nf-staged-fields-drag");jQuery(t.helper).html(r({num:n.models.length})),jQuery(t.helper).prop("id","nf-staged-fields-drag"),jQuery(t.item).css("opacity","0.7")},stopDrag:function(e,t){jQuery(this.drawerEl)[0].style.setProperty("overflow","hidden","important")}})})),n("controllers/fields/staging",["models/fields/stagingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.collection=new e,i.channel("fields").reply("add:stagedField",this.addStagedField,this),i.channel("fields").reply("remove:stagedField",this.removeStagedField,this),i.channel("fields").reply("get:staging",this.getStagingCollection,this),i.channel("fields").reply("sort:staging",this.sortStagedFields,this),i.channel("fields").reply("clear:staging",this.clearStagedFields,this),this.listenTo(i.channel("drawer-addField"),"click:removeStagedField",this.removeStagedField),this.listenTo(i.channel("drawer-addField"),"before:closeDrawer",this.beforeCloseDrawer)},getStagingCollection:function(){return this.collection},addStagedField:function(e,t){t=t||!1;var n=i.channel("fields").request("get:type",e),r="nf-staged-field-"+jQuery.now(),a={id:r,slug:n.get("type"),nicename:n.get("nicename"),icon:n.get("icon")},l=this.collection.add(a);return t||i.channel("fields").trigger("add:stagedField",l),r},removeStagedField:function(e,t){this.collection.remove(t),i.channel("fields").trigger("remove:stagedField",t)},beforeCloseDrawer:function(){if(0!=this.collection.models.length){var e=i.channel("fields").request("get:collection");_.each(this.collection.models,(function(t){var n={id:i.channel("fields").request("get:tmpID"),label:t.get("nicename"),type:t.get("slug")},r=i.channel("fields").request("add",n,!1),a={object:"Field",label:r.get("label"),change:"Added",dashicon:"plus-alt"},l={collection:e};i.channel("changes").request("register:change","addObject",r,null,a,l)})),e.trigger("reset",e),this.collection.reset()}i.channel("fields").request("sort:fields",null,null,!1)},sortStagedFields:function(){var e=i.channel("app").request("get:stagedFieldsEl"),t=jQuery(e).sortable("toArray");_.each(this.collection.models,(function(e){var n=e.get("id"),i=t.indexOf(n);e.set("order",i)})),this.collection.sort()},clearStagedFields:function(){this.collection.reset()}})})),n("controllers/fields/stagingSortable",["models/fields/stagingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"receive:stagedFields",this.receiveStagedFields),this.listenTo(i.channel("drawer-addField"),"over:stagedFields",this.overStagedFields),this.listenTo(i.channel("drawer-addField"),"out:stagedFields",this.outStagedFields),this.listenTo(i.channel("drawer-addField"),"start:stagedFields",this.startStagedFields),this.listenTo(i.channel("drawer-addField"),"stop:stagedFields",this.stopStagedFields)},receiveStagedFields:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=jQuery(e.item).data("id"),n=i.channel("fields").request("add:stagedField",t);jQuery(e.helper).prop("id",n),i.channel("fields").request("sort:staging"),jQuery(e.helper).remove(),i.channel("drawer-addField").trigger("drop:fieldType",t)}},addActiveClass:function(){var e=i.channel("app").request("get:stagedFieldsEl");jQuery(e).addClass("nf-droppable-active")},removeActiveClass:function(){var e=i.channel("app").request("get:stagedFieldsEl");jQuery(e).removeClass("nf-droppable-active")},overStagedFields:function(e,t){if(jQuery(t.item).hasClass("nf-field-type-draggable")){var n=jQuery(t.item).data("id"),r=i.channel("fields").request("get:type",n).get("nicename");this.currentHelper=t.helper,jQuery(t.helper).html(r+'<span class="dashicons dashicons-dismiss"></span>'),jQuery(t.helper).removeClass("nf-field-type-button").addClass("nf-item-dock").css({opacity:"0.8",width:"",height:""});var a=i.channel("app").request("get:stagedFieldsEl");jQuery(a).hasClass("ui-sortable")&&jQuery(a).addClass("nf-droppable-hover")}},outStagedFields:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=i.channel("drawer-addField").request("get:typeHelperClone");jQuery(this.currentHelper).html(jQuery(t).html()),jQuery(this.currentHelper).removeClass("nf-item-dock").addClass("nf-field-type-button");var n=i.channel("app").request("get:stagedFieldsEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}},startStagedFields:function(e){jQuery(e.item).show(),jQuery(e.item).css({display:"inline",opacity:"0.7"}),jQuery(e.helper).css("opacity","0.5")},stopStagedFields:function(e){jQuery(e.item).css("opacity",""),jQuery(e.helper).remove()}})})),n("controllers/fields/filterTypes",["models/fields/typeSectionCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"change:filter",this.filterFieldTypes)},filterFieldTypes:function(t,n){if(""!=jQuery.trim(t)){var r=[];_.each(this.filterCollection(t),(function(e){r.push(e.get("id"))}));var a=new e([{id:"filtered",nicename:"Filtered Fields",fieldTypes:r}]),l=i.channel("app").request("update:hiddenFields")||[];l=l.concat(["product","quantity","shipping","total","button"]);for(var s=a.models[0].get("fieldTypes").length-1;s>=0;s--){-1<l.indexOf(a.models[0].get("fieldTypes")[s])&&a.models[0].get("fieldTypes").splice(s,1)}i.channel("drawer").trigger("filter:fieldTypes",a),void 0!==n&&n.addObject&&0<r.length&&(i.channel("fields").request("add:stagedField",r[0]),i.channel("drawer").request("clear:filter"))}else i.channel("drawer").trigger("clear:filter")},filterCollection:function(e){return e=e.toLowerCase(),i.channel("fields").request("get:typeCollection").filter((function(t){var n=!1;return(-1!=t.get("type").toLowerCase().indexOf(e)||-1!=t.get("nicename").toLowerCase().indexOf(e))&&(n=!0),t.get("tags")&&0==e.indexOf("#")&&_.each(t.get("tags"),(function(t){e.replace("#","").length>1&&-1!=t.toLowerCase().indexOf(e.replace("#",""))&&(n=!0)})),t.get("alias")&&_.each(t.get("alias"),(function(t){-1!=t.toLowerCase().indexOf(e)&&(n=!0)})),n}))}})})),n("views/fields/preview/element",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-field-input",initialize:function(){var e=this.model.get("type");if(this.model.set("value",this.model.get("default")),"date"==e&&this.model.get("date_default")){var t=this.model.get("date_format");"default"!=t&&""!=t||(t=this.convertDateFormat(nfAdmin.dateFormat)),this.model.set("value",moment().format(t))}"phone"==e&&(e="tel"),"spam"==e&&(e="input"),"confirm"==e&&(e="input"),"password"==e&&(e="input"),"passwordconfirm"==e&&(e="input"),"quantity"==e&&(e="number"),"terms"==e&&(e="listcheckbox"),"liststate"==e&&(e="listselect"),"listcountry"==e&&(e="listselect"),"listmultiselect"==e&&(e="listselect"),"save"==e&&(e="submit"),1==jQuery("#tmpl-nf-builder-field-"+e).length?this.template="#tmpl-nf-builder-field-"+e:this.template="#tmpl-nf-field-"+e},onRender:function(){this.model.get("container_class").includes("two-col-list")&&(jQuery(this.el).find("> ul").css("display","grid"),jQuery(this.el).find("> ul").css("grid-template-columns","repeat(2, 1fr)")),this.model.get("container_class").includes("three-col-list")&&(jQuery(this.el).find("> ul").css("display","grid"),jQuery(this.el).find("> ul").css("grid-template-columns","repeat(3, 1fr)")),this.model.get("container_class").includes("four-col-list")&&(jQuery(this.el).find("> ul").css("display","grid"),jQuery(this.el).find("> ul").css("grid-template-columns","repeat(4, 1fr)"))},templateHelpers:function(){return{renderClasses:function(){},maybeFilterHTML:function(){return void 0!==nfAdmin.filter_esc_status?nfAdmin.filter_esc_status:"false"},renderPlaceholder:function(){if(void 0!==this.placeholder)return'placeholder="'+jQuery.trim(_.escape(this.placeholder))+'"'},maybeDisabled:function(){if(void 0!==this.disable_input&&this.disable_input)return'disabled="disabled"'},maybeRequired:function(){},maybeInputLimit:function(){},maybeDisableAutocomplete:function(){},maybeChecked:function(){if("checked"==this.default_value)return' checked="checked"'},renderOptions:function(){let e;switch(this.type){case"terms":if(!this.taxonomy)return"(No taxonomy selected)";var t=fieldTypeData.find((function(e){return"terms"==e.id})).settingGroups.find((function(e){return"primary"==e.id})).settings.find((function(e){return"taxonomy_terms"==e.name})).settings,n=Object.keys(this).filter(function(e){return 0==e.indexOf("taxonomy_term_")&&this[e]}.bind(this));return 0==n.length?"(No available terms selected)":n.reduce(function(e,n){var i=t.find((function(e){return n==e.name}));return void 0===i?e:e+'<li><input type="checkbox"><div>'+i.label+"</div></li>"}.bind(this),"");case"liststate":case"listselect":if(0==this.options.models.length)return"";var i=this.options.models.filter((function(e){return e.get("selected")}));return 0==i.length&&(i=this.options.models),e=void 0!==nfAdmin.filter_esc_status&&"true"===nfAdmin.filter_esc_status?_.escape(i[0].get("label")):i[0].get("label"),"<option>"+e+"</option>";case"listmultiselect":return this.options.models.reduce((function(t,n){return e=void 0!==nfAdmin.filter_esc_status&&"true"===nfAdmin.filter_esc_status?_.escape(n.get("label")):n.get("label"),t+"<option"+(n.get("selected")?' selected="selected"':"")+">"+e+"</option>"}),"");case"listcheckbox":return this.options.models.reduce((function(t,n){return e=void 0!==nfAdmin.filter_esc_status&&"true"===nfAdmin.filter_esc_status?_.escape(n.get("label")):n.get("label"),t+'<li><input type="checkbox"'+(n.get("selected")?' checked="checked"':"")+"><div>"+e+"</div></li>"}),"");case"listradio":var r=!1;return this.options.models.reduce((function(t,n){return e=void 0!==nfAdmin.filter_esc_status&&"true"===nfAdmin.filter_esc_status?_.escape(n.get("label")):n.get("label"),t+'<li><input type="radio"'+(r=n.get("selected")&&!r?' checked="checked"':"")+"><div>"+e+"</div></li>"}),"");case"listcountry":var a=this.default,l=window.fieldTypeData.find((function(e){return"listcountry"==e.id})).settingGroups.find((function(e){return"primary"==e.id})).settings.find((function(e){return"default"==e.name})).options.find((function(e){return a==e.value}));return e=void 0!==l?l.label:"--",e=void 0!==nfAdmin.filter_esc_status&&"true"===nfAdmin.filter_esc_status?_.escape(e):e,"<option>"+e+"</option>";default:return""}},renderOtherAttributes:function(){var e=[];if("listmultiselect"==this.type){e.push("multiple");var t=this.multi_size||"5";e.push('size="'+t+'"')}return e.join(" ")},renderProduct:function(){},renderNumberDefault:function(){return this.value},renderCurrencyFormatting:function(){},renderRatings:function(){for(var e="",t=0;t<this.number_of_stars;t++)e+='<i class="fa fa-star" aria-hidden="true"></i>&nbsp;';return e},renderHourOptions:function(){html="";let e=12;void 0!==this.hours_24&&1==this.hours_24&&(e=24);for(var t=0;t<e;t++){let e=label=t;t<10&&(e=label="0"+t),html+='<option value="'+e+'">'+label+"</option>",t=t++}return html},renderMinuteOptions:function(){var e="";let t=5;void 0!==this.minute_increment&&(t=this.minute_increment);let n=0;for(;n<60;){let i=label=n;n<10&&(i=label="0"+n),e+='<option value="'+i+'">'+label+"</option>",n+=t}return e},maybeRenderAMPM:function(){if(void 0!==this.hours_24&&1!=this.hours_24)return'<div style="float:left;"><select class="ampm" style="float:left;"><option value="am">AM</option><option value="pm">PM</option></select></div>'},maybeRenderTime:function(){return"time_only"==this.date_mode||"date_and_time"==this.date_mode}}},convertDateFormat:function(e){return e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace("D","ddd")).replace("d","DD")).replace("l","dddd")).replace("j","D")).replace("N","")).replace("S","")).replace("w","d")).replace("z","")).replace("W","W")).replace("M","MMM")).replace("F","MMMM")).replace("m","MM")).replace("n","M")).replace("t","")).replace("L","")).replace("o","YYYY")).replace("Y","YYYY")).replace("y","YY")).replace("a","")).replace("A","")).replace("B","")).replace("g","")).replace("G","")).replace("h","")).replace("H","")).replace("i","")).replace("s","")).replace("u","")).replace("v","")).replace("e","")).replace("I","")).replace("O","")).replace("P","")).replace("T","")).replace("Z","")).replace("c","")).replace("r","")).replace("u","")}})})),n("views/fields/preview/repeaterElementEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-repeater-content-fields-empty",initialize:function(e){this.repeaterFieldModel=e.repeaterFieldModel},onBeforeDestroy:function(){jQuery(this.el).parent().removeClass("nf-fields-empty-droppable").droppable("destroy")},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},onShow:function(){jQuery(this.el).parent().hasClass("ui-sortable")&&jQuery(this.el).parent().sortable("destroy"),jQuery(this.el).parent().addClass("nf-fields-empty-droppable");let e=this;jQuery(this.el).parent().droppable({accept:function(e){if(jQuery(e).hasClass("nf-stage")||jQuery(e).hasClass("nf-field-type-button"))return!0},activeClass:"nf-droppable-active",hoverClass:"nf-droppable-hover",tolerance:"pointer",over:function(e,t){t.item=t.draggable,jQuery(t.item).addClass("nf-over-repeater"),i.channel("app").request("over:fieldsSortable",t)},out:function(e,t){t.item=t.draggable,jQuery(t.item).removeClass("nf-over-repeater"),i.channel("app").request("out:fieldsSortable",t)},drop:function(t,n){n.item=null!=n.item?n.item:n.draggable,i.channel("fields-repeater").request("add:childField",n,e,t)}})}})})),n("views/fields/preview/repeaterElementCollection",["views/fields/preview/repeaterElementEmpty"],(function(e){return Marionette.CollectionView.extend({tagName:"div",emptyView:e,getChildView:function(){return i.channel("views").request("get:fieldItem")},initialize:function(e){this.emptyViewOptions={repeaterFieldModel:e.repeaterFieldModel},this.repeaterFieldModel=e.repeaterFieldModel,i.channel("fields-repeater").reply("init:sortable",this.initSortable,this),i.channel("fields-repeater").reply("get:sortableEl",this.getSortableEl,this),i.channel("fields-repeater").reply("get:repeaterFieldsCollection",this.getRepeaterFieldsCollection,this)},onRender:function(){if(this.collection.models.length>0){jQuery(this.el).addClass("nf-field-type-droppable");this.initSortable()}},initSortable:function(){if(void 0!==jQuery(this.el).sortable("instance"))return!1;jQuery(this.el).addClass("nf-field-type-droppable").addClass("nf-fields-sortable");let e=this;jQuery(this.el).sortable({containment:"parent",helper:"clone",cancel:".nf-item-controls",placeholder:"nf-fields-sortable-placeholder",opacity:.95,grid:[5,5],appendTo:"#nf-main",scrollSensitivity:10,receive:function(t,n){i.channel("fields-repeater").request("receive:fields",n,e,t)},over:function(t,n){jQuery(n.item).addClass("nf-over-repeater"),n.item.dropping||i.channel("fields-repeater").request("over:repeaterField",n,e,t)},out:function(t,n){jQuery(n.item).removeClass("nf-over-repeater"),n.item.dropping||i.channel("fields-repeater").request("out:repeaterField",n,e,t)},start:function(t,n){n.item.dropping||i.channel("fields-repeater").request("start:repeaterField",n,e,t)},remove:function(t,n){let r=jQuery(n.item).data("id"),a=e.repeaterFieldModel.get("fields").get(r);i.channel("app").trigger("click:delete",t,a)},update:function(t,n){i.channel("fields-repeater").request("update:repeaterField",n,e,t)},stop:function(t,n){n.item.dropping||i.channel("fields-repeater").request("stop:repeaterField",n,e,t)}})},destroySortable:function(){jQuery(this.el).sortable("destroy")},onAddChild:function(e){i.channel("fields").request("get:adding")&&(e.$el.hide().show("clip"),i.channel("fields").request("set:adding",!1))},getSortableEl:function(){return this.el},getRepeaterFieldsCollection:function(){return this.repeaterFieldModel.get("fields")}})})),n("views/fields/preview/repeaterElementLayout",["views/fields/preview/repeaterElementCollection"],(function(e){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-field-repeater",regions:{fields:".nf-repeater-fieldsets"},initialize:function(e){this.collection=e.collection,this.model=e.model},onRender:function(){this.fields.show(new e({collection:this.collection,repeaterFieldModel:this.model}))},templateHelpers:function(){return{maybeFilterHTML:function(){return void 0!==nfAdmin.filter_esc_status?nfAdmin.filter_esc_status:"false"}}}})})),n("views/fields/preview/label",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-field-label",initialize:function(e){},onRender:function(){},templateHelpers:function(){return{renderLabelClasses:function(){},maybeFilterHTML:function(){return void 0!==nfAdmin.filter_esc_status?nfAdmin.filter_esc_status:"false"},maybeRenderHelp:function(){}}}})})),n("views/fields/fieldItem",["views/app/itemControls","views/fields/preview/element","views/fields/preview/repeaterElementLayout","views/fields/preview/label"],(function(e,t,n,r){return Marionette.LayoutView.extend({tagName:"div",template:"#tmpl-nf-main-content-field",doingShortcut:!1,regions:{itemControls:".nf-item-controls",previewLabel:".nf-realistic-field--label",previewElement:".nf-realistic-field--element"},initialize:function(){this.model.on("change:editActive",this.render,this),this.model.on("change:label",this.render,this),this.model.on("change:required",this.render,this),this.model.on("change:id",this.render,this)},onBeforeDestroy:function(){this.model.off("change:editActive",this.render),this.model.off("change:label",this.render),this.model.off("change:required",this.render),this.model.off("change:id",this.render)},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el),this.itemControls.show(new e({model:this.model})),jQuery(this.el).disableSelection();var a=this.model.get("type");"phone"==a&&(a="tel"),"spam"==a&&(a="input"),"confirm"==a&&(a="input"),"password"==a&&(a="input"),"passwordconfirm"==a&&(a="input"),"quantity"==a&&(a="number"),"terms"==a&&(a="listcheckbox"),"liststate"==a&&(a="listselect"),"listcountry"==a&&(a="listselect"),"listmultiselect"==a&&(a="listselect"),"save"==a&&(a="submit");var l=jQuery("#tmpl-nf-field-"+a).length;if(-1==["html","hidden","note","recaptcha"].indexOf(this.model.get("type"))&&l){"repeater"==a?this.previewElement.show(new n({collection:this.model.get("fields"),model:this.model})):this.previewElement.show(new t({model:this.model}));-1==["submit","save","hr"].indexOf(this.model.get("type"))&&this.previewLabel.show(new r({model:this.model,itemView:this})),jQuery(this.el).find(".nf-placeholder-label").hide()}i.channel("app").request("is:mobile")&&jQuery(this.el).on("taphold",(function(e,t){jQuery(e.target).hasClass("nf-edit-settings")||(jQuery(this).addClass("ui-sortable-helper drag-selected"),jQuery(this).ClassyWiggle("start",{degrees:[".65","1",".65","0","-.65","-1","-.65","0"],delay:50}))})),i.channel("fields-"+a).trigger("render:itemView",this)},templateHelpers:function(){return{renderClasses:function(){var e="nf-field-wrap "+this.type;return this.editActive&&(e+=" active"),e},maybeFilterHTML:function(){return void 0!==nfAdmin.filter_esc_status?nfAdmin.filter_esc_status:"false"},renderRequired:function(){return 1==this.required?'<span class="required">*</span>':""},getFieldID:function(){return jQuery.isNumeric(this.id)?"field-"+this.id:this.id},renderIcon:function(){var e,t;return e=i.channel("fields").request("get:type",this.type),(t=document.createElement("span")).classList.add("fa","fa-"+e.get("icon")),t.outerHTML},labelPosition:function(){return this.label_pos},renderDescriptionText:function(){return jQuery.trim(this.desc_text)}}},events:{"mouseover .nf-item-control":"mouseoverItemControl",mousedown:"maybeShortcut",click:"maybeClickEdit",singletap:"maybeTapEdit",swipeleft:"swipeLeft",swiperight:"swipeRight",tapend:"tapend"},maybeClickEdit:function(e){if(this.doingShortcut)return this.doingShortcut=!1,!1;(jQuery(e.target).parent().hasClass("nf-fields-sortable")||jQuery(e.target).parent().hasClass("nf-field-wrap")||jQuery(e.target).hasClass("nf-field-wrap"))&&!i.channel("app").request("is:mobile")&&(jQuery(":focus").blur(),i.channel("app").trigger("click:edit",e,this.model))},maybeShortcut:function(e){var t=i.channel("app").request("get:keydown");return-1==t.indexOf(16)||(-1!=t.indexOf(68)?(i.channel("app").trigger("click:delete",e,this.model),this.doingShortcut=!0,!1):-1!=t.indexOf(67)?(this.doingShortcut=!0,i.channel("app").trigger("click:duplicate",e,this.model),!1):void 0)},maybeTapEdit:function(e){jQuery(e.target).parent().hasClass("nf-fields-sortable")&&i.channel("app").trigger("click:edit",e,this.model)},swipeLeft:function(e,t){jQuery(t.startEvnt.target).closest("div").find(".nf-item-duplicate").show(),jQuery(t.startEvnt.target).closest("div").find(".nf-item-delete").show()},swipeRight:function(e,t){jQuery(t.startEvnt.target).closest("div").find(".nf-item-duplicate").hide(),jQuery(t.startEvnt.target).closest("div").find(".nf-item-delete").hide()},tapend:function(e,t){jQuery(this.el).ClassyWiggle("stop"),jQuery(this.el).removeClass("ui-sortable-helper drag-selected")},remove:function(){i.channel("fields").request("get:removing")?this.$el.hide("clip",(function(){jQuery(this).remove()})):this.$el.remove(),i.channel("fields").request("set:removing",!1)},mouseoverItemControl:function(e){jQuery(this.el).find(".nf-item-control").css("display","")}})})),n("controllers/fields/sortable",["models/fields/fieldModel","views/fields/fieldItem"],(function(e,t){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addField"),"startDrag:type",this.addActiveClass),this.listenTo(i.channel("drawer-addField"),"stopDrag:type",this.removeActiveClass),this.listenTo(i.channel("drawer-addField"),"startDrag:fieldStaging",this.addActiveClass),this.listenTo(i.channel("drawer-addField"),"stopDrag:fieldStaging",this.removeActiveClass),i.channel("app").reply("receive:fieldsSortable",this.receiveFieldsSortable,this),i.channel("app").reply("over:fieldsSortable",this.overfieldsSortable,this),i.channel("app").reply("out:fieldsSortable",this.outFieldsSortable,this),i.channel("app").reply("stop:fieldsSortable",this.stopFieldsSortable,this),i.channel("app").reply("start:fieldsSortable",this.startFieldsSortable,this),i.channel("app").reply("update:fieldsSortable",this.updateFieldsSortable,this),i.channel("app").reply("receive:repeaterField",this.receiveRepeaterField,this)},addActiveClass:function(){var e=i.channel("fields").request("get:sortableEl");jQuery(e).addClass("nf-droppable-active")},removeActiveClass:function(){var e=i.channel("fields").request("get:sortableEl");jQuery(e).removeClass("nf-droppable-active")},receiveFieldsSortable:function(e){if(e=this.receiveRepeaterField(e),jQuery(e.item).hasClass("nf-field-type-draggable")){var t=jQuery(e.item).data("id"),n=this.addField(t,!1);jQuery(e.helper).prop("id",n),i.channel("fields").request("sort:fields"),jQuery(e.helper).remove(),i.channel("fields").trigger("drop:fieldType",t,n)}else if(jQuery(e.item).hasClass("nf-stage")){var r=this;i.channel("fields").request("sort:staging");var a=i.channel("fields").request("get:staging"),l=i.channel("fields").request("get:sortableEl");if(jQuery(l).hasClass("ui-sortable"))var s=jQuery(l).sortable("toArray");else s=["nf-staged-fields-drag"];var o=s.indexOf("nf-staged-fields-drag");_.each(a.models,(function(e,t){var n=r.addField(e.get("slug"));s.splice(o+t,0,n)}));o=s.indexOf("nf-staged-fields-drag");s.splice(o,1),i.channel("fields").request("sort:fields",s),i.channel("fields").request("clear:staging"),jQuery(e.helper).remove()}},addField:function(e,t){t=t||!1;var n=i.channel("fields").request("get:type",e),r=i.channel("fields").request("get:tmpID"),a=i.channel("fields").request("add",{id:r,label:n.get("nicename"),type:e},t),l={object:"Field",label:a.get("label"),change:"Added",dashicon:"plus-alt"},s={collection:i.channel("fields").request("get:collection")};return i.channel("changes").request("register:change","addObject",a,null,l,s),r},overfieldsSortable:function(n){if(jQuery(n.item).hasClass("nf-field-type-draggable")){var r=jQuery(n.helper).data("id"),a=i.channel("fields").request("get:type",r),l=(a.get("nicename"),i.channel("fields").request("get:sortableEl"));jQuery(l).width();this.currentHelper=n.helper;var s=new e({label:a.get("nicename"),type:r}),o=new t({model:s}).render().$el[0];jQuery(n.helper).html(o.outerHTML)}else if(jQuery(n.item).hasClass("nf-stage")){l=i.channel("fields").request("get:sortableEl");jQuery(l).hasClass("ui-sortable")&&jQuery(l).addClass("nf-droppable-hover")}},outFieldsSortable:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=i.channel("drawer-addField").request("get:typeHelperClone");jQuery(this.currentHelper).html(jQuery(t).html()),jQuery(this.currentHelper).removeClass("nf-field-wrap").addClass("nf-field-type-button").css({width:"",height:""});var n=i.channel("fields").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}else if(jQuery(e.item).hasClass("nf-stage")){n=i.channel("fields").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}},stopFieldsSortable:function(e){jQuery(e.item).css("opacity",""),jQuery(e.helper).remove(),i.channel("fields").trigger("sortable:stop",e)},startFieldsSortable:function(e){if(!jQuery(e.item).hasClass("nf-field-type-draggable")&&!jQuery(e.item).hasClass("nf-stage")){if(jQuery(e.item).show(),jQuery(e.item).hasClass("nf-field-wrap"))var t=jQuery(e.item).clone();else if(jQuery(e.item).parent().hasClass("layouts-cell"))t=$parentHelper.clone();else t=jQuery(e.item).clone();t.find(".nf-item-controls").remove(),jQuery(e.helper).html(t.html()),jQuery(e.helper).css("opacity","0.5"),jQuery(e.item).css("opacity","0.25")}i.channel("fields").trigger("sortable:start",e)},updateFieldsSortable:function(e,t){if(i.channel("fields").request("sort:fields"),!jQuery(e.item).hasClass("nf-field-type-draggable")&&!jQuery(e.item).hasClass("nf-stage")){var n=i.channel("fields").request("get:collection"),r=jQuery(e.item).prop("id").replace("field-",""),a=n.get(r),l={fields:[]};_.each(n.models,(function(e){var t=e._previousAttributes.order,n=e.get("order");l.fields.push({model:e,attr:"order",before:t,after:n})}));var s={object:"Field",label:a.get("label"),change:"Re-ordered from "+a._previousAttributes.order+" to "+a.get("order"),dashicon:"sort"};i.channel("changes").request("register:change","sortFields",a,null,s,l)}},receiveRepeaterField:function(e){if(-1!==String(jQuery(e.item).data("id")).indexOf(".")){jQuery(e.item).removeClass("nf-field-wrap");let t=jQuery(e.item).attr("class");jQuery(e.item).data("id",t),jQuery(e.item).addClass("nf-field-type-draggable")}return e}})})),n("controllers/fields/data",["models/fields/fieldCollection","models/fields/fieldModel"],(function(e,t){return Marionette.Object.extend({adding:!1,removing:!1,initialize:function(){this.collection=new e(preloadedFormData.fields),this.collection.removedIDs={},i.channel("fields").reply("get:collection",this.getFieldCollection,this),i.channel("fields").reply("get:field",this.getField,this),i.channel("fields").reply("redraw:collection",this.redrawFieldCollection,this),i.channel("fields").reply("get:tmpID",this.getTmpFieldID,this),i.channel("fields").reply("add",this.addField,this),i.channel("fields").reply("delete",this.deleteField,this),i.channel("fields").reply("sort:fields",this.sortFields,this),i.channel("fields").reply("get:adding",this.getAdding,this),i.channel("fields").reply("set:adding",this.setAdding,this),i.channel("fields").reply("get:removing",this.getRemoving,this),i.channel("fields").reply("set:removing",this.setRemoving,this)},getFieldCollection:function(){return this.collection},redrawFieldCollection:function(){this.collection.trigger("reset",this.collection)},getField:function(e){return this.collection.findWhere({key:e})?this.collection.findWhere({key:e}):this.collection.get(e)},addField:function(e,n,r,a){if(i.channel("fields").request("set:adding",!0),n=n||!1,a=a||"",r=void 0===r||r,!1==e instanceof Backbone.Model){void 0===e.id&&(e.id=this.getTmpFieldID());var l=new t(e)}else l=e;if(jQuery.isNumeric(l.get("type"))){var s=i.channel("fields").request("get:type",l.get("type"));l.set("type",s.get("parentType"))}var o=this.collection.add(l,{silent:n});return i.channel("app").request("update:setting","clean",!1),i.channel("fields").trigger("add:field",l),r&&i.channel("fields").trigger("render:newField",o,a),"duplicate"==a&&i.channel("fields").trigger("render:duplicateField",o,a),i.channel("fields").trigger("after:addField",l),l},updateFieldSetting:function(e,t,n){this.collection.get(e).set(t,n)},sortFields:function(e,t,n){null==n&&(n=!0);var r=i.channel("fields").request("get:sortableEl");if(jQuery(r).hasClass("ui-sortable")){e=e||jQuery(r).sortable("toArray");_.each(this.collection.models,(function(t){t.get("order");var n=t.get("id");if(jQuery.isNumeric(n))var i="field-"+n;else i=n;var r=e.indexOf(i)+1;t.set("order",r)})),this.collection.sort(),n&&(i.channel("app").request("update:setting","clean",!1),i.channel("app").request("update:db"))}},deleteField:function(e){i.channel("fields").trigger("delete:field",e),this.removing=!0,this.collection.remove(e),i.channel("app").request("update:setting","clean",!1),i.channel("app").request("update:db")},getTmpFieldID:function(){var e=this.collection.tmpNum;return this.collection.tmpNum++,"tmp-"+e},getAdding:function(){return this.adding},setAdding:function(e){this.adding=e},getRemoving:function(){return this.removing},setRemoving:function(e){this.removing=e}})})),n("models/app/optionRepeaterModel",[],(function(){return Backbone.Model.extend({defaults:{errors:{},max_options:0},initialize:function(){this.on("change:errors",this.changeErrors,this)},changeErrors:function(e){if(0==_.size(e.get("errors"))){var t=!1;_.each(e.collection.models,(function(e){0!=_.size(e.get("errors"))&&(t=!0)})),t||e.collection.settingModel.set("error",!1)}else e.collection.settingModel.set("error",!0)}})})),n("models/app/optionRepeaterCollection",["models/app/optionRepeaterModel"],(function(e){return Backbone.Collection.extend({model:e,comparator:function(e){return parseInt(e.get("order"))},initialize:function(e,t){this.on("sort",this.changeCollection,this),this.on("add",this.addOption,this),this.settingModel=t.settingModel},changeCollection:function(){i.channel("option-repeater").trigger("sort:options",this),void 0!==this.settingModel&&i.channel("option-repeater-"+this.settingModel.get("name")).trigger("sort:options",this)},addOption:function(e,t){e.set("settingModel",this.settingModel)}})})),n("views/app/drawer/optionRepeaterError",[],(function(){return Marionette.ItemView.extend({tagName:"div",className:"nf-error",template:"#tmpl-nf-edit-setting-option-repeater-error",templateHelpers:function(){var e=this;return{renderErrors:function(){return void 0!==e.errors?e.errors[Object.keys(errors)[0]]:""}}}})})),n("views/app/drawer/optionRepeaterOption",["views/app/drawer/optionRepeaterError"],(function(e){return Marionette.LayoutView.extend({tagName:"div",className:"nf-table-row",template:"#tmpl-nf-edit-setting-option-repeater-default-row",id:function(){return this.model.cid},regions:{error:".nf-option-error"},initialize:function(e){this.settingModel=e.settingModel,this.dataModel=e.dataModel,this.collection=e.collection,this.columns=e.columns,this.parentView=e.parentView,this.model.on("change:errors",this.renderErrors,this),void 0!==this.settingModel.get("tmpl_row")&&(this.template="#"+this.settingModel.get("tmpl_row")),this.hasErrors=!1},onBeforeDestroy:function(){this.model.off("change",this.render),this.model.off("change:errors",this.renderErrors)},onBeforeRender:function(){if(this.model.get("label")){var e=this.model.get("label");this.model.set("label",_.escape(e),{silent:!0})}},onRender:function(){if(i.channel("mergeTags").request("init",this),i.channel("setting-"+this.settingModel.get("name")+"-option").trigger("render:setting",this.model,this.dataModel,this),this.model.get("label")){var e=this.model.get("label");this.model.set("label",_.unescape(e),{silent:!0})}},onShow:function(){this.model.get("new")&&(jQuery(this.el).find("input:first").focus(),this.model.set("new",!1))},events:{"change .setting":"changeOption","click .nf-delete":"deleteOption",keyup:"keyupOption"},changeOption:function(e){i.channel("option-repeater").trigger("change:option",e,this.model,this.dataModel,this.settingModel,this)},deleteOption:function(e){i.channel("option-repeater").trigger("click:deleteOption",this.model,this.collection,this.dataModel,this)},keyupOption:function(e){this.maybeAddOption(e),i.channel("option-repeater").trigger("keyup:option",e,this.model,this.dataModel,this.settingModel,this),i.channel("option-repeater-"+this.settingModel.get("name")).trigger("keyup:option",e,this.model,this.dataModel,this.settingModel,this)},maybeAddOption:function(e){13==e.keyCode&&"calculations"!=this.settingModel.get("name")&&(i.channel("option-repeater").trigger("click:addOption",this.collection,this.dataModel,this),jQuery(this.parentView.children.findByIndex(this.parentView.children.length-1).el).find('[data-id="label"]').focus())},renderErrors:function(){0==Object.keys(this.model.get("errors"))?this.hasErrors&&(this.error.empty(),jQuery(this.el).removeClass("nf-error")):(this.hasErrors=!0,this.error.show(new e({model:this.model})),jQuery(this.el).addClass("nf-error"))},templateHelpers:function(){var e=this;return{getColumns:function(){var t=e.columns;return nfAdmin.devMode||(delete t.value,delete t.calc),t},renderFieldSelect:function(e,t){var n,r,a,l,s=i.channel("fields").request("get:collection");return(n=document.createElement("option")).value="",n.label="--",n.innerHTML="--",(r=document.createElement("select")).classList.add("setting"),r.setAttribute("data-id",e),r.appendChild(n),s.each((function(e){var n=document.createElement("option");t==e.get("key")&&n.setAttribute("selected","selected"),n.value=e.get("key"),n.innerHTML=e.formatLabel(),n.label=e.formatLabel(),r.appendChild(n)})),(l=document.createElement("label")).classList.add("nf-select"),l.appendChild(r),(a=document.createElement("div")).style.bottom="6px",l.appendChild(a),l.innerHTML},renderNonSaveFieldSelect:function(e,t){var n,r,a,l,s=i.channel("fields").request("get:collection");(n=document.createElement("option")).value="",n.label="--",n.innerHTML="--",(r=document.createElement("select")).classList.add("setting"),r.setAttribute("data-id",e),r.appendChild(n);var o=["html","submit","hr","recaptcha","spam","creditcard","creditcardcvc","creditcardexpiration","creditcardfullname","creditcardnumber","creditcardzip"];return s.each((function(e){if(-1!==jQuery.inArray(e.get("type"),o))return"";var n=document.createElement("option");t==e.get("key")&&n.setAttribute("selected","selected"),n.value=e.get("key"),n.innerHTML=e.formatLabel(),n.label=e.formatLabel(),r.appendChild(n)})),(l=document.createElement("label")).classList.add("nf-select"),l.appendChild(r),(a=document.createElement("div")).style.bottom="6px",l.appendChild(a),l.innerHTML},renderOptions:function(t,n){if(void 0!==e.options.columns[t]){var i=document.createElement("select");return _.each(e.options.columns[t].options,(function(e){var t=document.createElement("option");n===e.value&&t.setAttribute("selected","selected"),t.setAttribute("value",e.value),t.setAttribute("label",e.label),t.innerText=e.label,i.appendChild(t)})),i.innerHTML}}}}})})),n("views/app/drawer/optionRepeaterEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"tr",template:"#tmpl-nf-edit-setting-option-repeater-empty"})})),n("views/app/drawer/optionRepeaterComposite",["views/app/drawer/optionRepeaterOption","views/app/drawer/optionRepeaterEmpty","models/app/optionRepeaterCollection"],(function(e,t,n){return Marionette.CompositeView.extend({template:"#tmpl-nf-edit-setting-option-repeater-wrap",childView:e,emptyView:t,reorderOnSort:!1,initialize:function(e){var t=e.dataModel.get(this.model.get("name"));0==t instanceof Backbone.Collection&&((t=new n([],{settingModel:this.model})).add(e.dataModel.get(this.model.get("name"))),e.dataModel.set(this.model.get("name"),t,{silent:!0})),this.collection=t,this.dataModel=e.dataModel,this.childViewOptions={parentView:this,settingModel:this.model,collection:this.collection,dataModel:e.dataModel,columns:this.model.get("columns")};var r=this.model.get("deps");if(r){void 0===r.settings&&(r.settings=[],_.each(r,(function(e,t){"settings"!==t&&r.settings.push({name:t,value:e})})),r.match="all");for(var a=r.settings.length-1;a>=0;a--){let e=r.settings[a].name;this.dataModel.on("change:"+e,this.render,this)}}this.listenTo(i.channel("option-repeater"),"added:option",this.maybeHideNew),this.listenTo(i.channel("option-repeater"),"removed:option",this.maybeHideNew)},onBeforeDestroy:function(){var e=this.model.get("deps");if(e)for(var t=e.settings.length-1;t>=0;t--)name=e.settings[t].name,this.dataModel.off("change:"+name,this.render)},onRender:function(){var e=this;jQuery(this.el).find(".nf-list-options-tbody").sortable({handle:".handle",helper:"clone",placeholder:"nf-list-options-sortable-placeholder",forcePlaceholderSize:!0,opacity:.95,tolerance:"pointer",start:function(e,t){i.channel("option-repeater").request("start:optionSortable",t)},stop:function(e,t){i.channel("option-repeater").request("stop:optionSortable",t)},update:function(t,n){i.channel("option-repeater").request("update:optionSortable",n,this,e)}}),e.setupTooltip(),e.maybeHideNew(e.collection),i.channel("setting-"+this.model.get("name")).trigger("render:setting",this.model,this.dataModel,this)},onAttach:function(){var e=jQuery(this.el).find(".nf-open-import-tooltip"),t=jQuery(e).jBox("Tooltip",{title:"<h3>Please enter your options below:</h3>",content:"1"==nfAdmin.devMode?jQuery(this.el).find(".nf-dev-import-options"):jQuery(this.el).find(".nf-import-options"),trigger:"click",closeOnClick:"body",closeButton:"box",offset:{x:20,y:0},addClass:"import-options",onOpen:function(){var e=this;setTimeout((function(){jQuery(e.content).find("textarea").focus()}),200)}});jQuery(this.el).find(".nf-import").on("click",{view:this,jBox:t},this.clickImport),i.channel("setting-"+this.model.get("name")).trigger("attach:setting",this.model,this.dataModel,this),i.channel("setting-type-"+this.model.get("type")).trigger("attach:setting",this.model,this.dataModel,this)},setupTooltip:function(){jQuery(this.el).find(".nf-list-options").find(".nf-help").each((function(){var e=jQuery(this).next(".nf-help-text");jQuery(this).jBox("Tooltip",{content:e,maxWidth:200,theme:"TooltipBorder",trigger:"click",closeOnClick:!0})}))},templateHelpers:function(){var e=this;return{renderHeaders:function(){var t,n,i,r,a,l,s,o;"Field"==e.dataModel.get("objectType")&&-1!==e.dataModel.get("type").indexOf("list")&&(t=document.createTextNode(nfi18n.valueChars),(n=document.createElement("div")).classList.add("nf-help-text"),n.appendChild(t),(i=document.createElement("span")).classList.add("dashicons","dashicons-admin-comments"),(r=document.createElement("a")).classList.add("nf-help"),r.setAttribute("href","#"),r.setAttribute("tabindex","-1"),r.appendChild(i),(a=document.createElement("span")).appendChild(r),a.appendChild(n),void 0!==e.model.get("columns")&&void 0!==e.model.get("columns").value&&-1==e.model.get("columns").value.header.indexOf(a.innerHTML)&&(e.model.get("columns").value.header+=a.innerHTML));return s=document.createElement("div"),(l=document.createElement("span")).appendChild(s),nfAdmin.devMode||(delete this.columns.value,delete this.columns.calc),_.each(this.columns,(function(e){var t,n;t=document.createRange().createContextualFragment(e.header),(n=document.createElement("div")).appendChild(t),l.appendChild(n)})),o=document.createElement("div"),l.appendChild(o),l.innerHTML},renderSetting:function(){return i.channel("app").request("get:template","#tmpl-nf-edit-setting-"+this.type)(this)},renderClasses:function(){var e="";return void 0!==this.width?e+=this.width:e+=" one-half",this.error&&(e+=" nf-error"),e},renderVisible:function(){return i.channel("settings").request("check:deps",this,e)},renderError:function(){return this.error?this.error:""},renderFieldsetClasses:function(){return e.model.get("name")},currencySymbol:function(){return i.channel("settings").request("get:setting","currency")||nfi18n.currency_symbol}}},attachHtml:function(e,t){jQuery(e.el).find(".nf-list-options-tbody").append(t.el),i.channel("mergeTags").request("init",this)},events:{"click .nf-add-new":"clickAddOption","click .extra":"clickExtra"},maybeHideNew:function(e){if(void 0===e.settingModel)return!1;var t=e.settingModel.get("max_options");0!==t&&e.models.length>=t?jQuery(this.el).find(".nf-add-new").addClass("disabled"):jQuery(this.el).find(".nf-add-new").removeClass("disabled")},clickAddOption:function(e){i.channel("option-repeater").trigger("click:addOption",this.collection,this.dataModel),jQuery(this.children.findByIndex(this.children.length-1).el).find('[data-id="label"]').focus()},clickExtra:function(e){i.channel("option-repeater").trigger("click:extra",e,this.collection,this.dataModel),i.channel("option-repeater-"+this.model.get("name")).trigger("click:extra",e,this.model,this.collection,this.dataModel)},clickImport:function(e){var t=jQuery(e.data.jBox.content).find("textarea"),n=t.val().trimLeft().trimRight();if(0==n.length)return e.data.jBox.close(),!1;var r=n.split(/\n/);_.isArray(r)&&_.each(r,(function(t){var n=t.split(","),r=n[0],a=n[1]||jQuery.slugify(r,{separator:"-"}),l=n[2]||"";r=r.trimLeft().trimRight(),a=a.trimLeft().trimRight(),l=l.trimLeft().trimRight();var s=e.data.view.collection.add({label:n[0],value:a,calc:l});r={object:"field",label:n[0],change:"Option Added",dashicon:"plus-alt"};i.channel("changes").request("register:change","addListOption",s,null,r),i.channel("option-repeater-"+e.data.view.model.get("name")).trigger("add:option",s),i.channel("option-repeater").trigger("add:option",s),i.channel("app").trigger("update:setting",s)}),this),t.val(""),e.data.jBox.close()}})})),n("controllers/app/optionRepeater",["models/app/optionRepeaterModel","models/app/optionRepeaterCollection","views/app/drawer/optionRepeaterComposite"],(function(e,t,n){return Marionette.Object.extend({initialize:function(){i.channel("option-repeater").reply("get:settingChildView",this.getSettingChildView,this),this.listenTo(i.channel("option-repeater"),"change:option",this.changeOption),this.listenTo(i.channel("option-repeater"),"click:addOption",this.addOption),this.listenTo(i.channel("option-repeater"),"click:deleteOption",this.deleteOption),i.channel("option-repeater").reply("update:optionSortable",this.updateOptionSortable,this),i.channel("option-repeater").reply("stop:optionSortable",this.stopOptionSortable,this),i.channel("option-repeater").reply("start:optionSortable",this.startOptionSortable,this),this.listenTo(i.channel("option-repeater"),"init:dataModel",this.convertSettings)},changeOption:function(e,t,n,r,a){var l=jQuery(e.target).data("id");if("selected"==l)if(jQuery(e.target).prop("checked"))var s=1;else s=0;else s=jQuery(e.target).val();var o=t.get(l);t.set(l,s),this.triggerDataModel(t,n);var c=s,d={attr:l,before:o,after:c},h={object:n.get("objectType"),label:n.get("label"),change:"Option "+t.get("label")+" "+l+" changed from "+o+" to "+c};i.channel("changes").request("register:change","changeSetting",t,d,h),i.channel("option-repeater").trigger("update:option",t,n,r,a),i.channel("option-repeater-option-"+l).trigger("update:option",e,t,n,r,a),i.channel("option-repeater-"+r.get("name")).trigger("update:option",t,n,r,a)},addOption:function(t,n){var r={order:t.length,new:!0,options:{}};if(void 0!==t.settingModel){var a=t.settingModel.get("max_options");if(0!==a&&t.models.length>=a)return;_.each(t.settingModel.get("columns"),(function(e,t){r[t]=e.default,void 0!==e.options&&(r.options[t]=e.options)}))}var l=new e(r);t.add(l);var s={object:n.get("objectType"),label:n.get("label"),change:"Option Added",dashicon:"plus-alt"};i.channel("changes").request("register:change","addListOption",l,null,s),void 0!==t.settingModel&&i.channel("option-repeater-"+t.settingModel.get("name")).trigger("add:option",l),i.channel("option-repeater").trigger("add:option",l),i.channel("option-repeater").trigger("added:option",t),this.triggerDataModel(l,n)},deleteOption:function(e,t,n){var r=i.channel("app").request("clone:modelDeep",e),a={object:n.get("objectType"),label:n.get("label"),change:"Option "+r.get("label")+" Removed",dashicon:"dismiss"},l={collection:t};i.channel("changes").request("register:change","removeListOption",r,null,a,l);var s=i.channel("changes").request("get:collection").where({model:e});_.each(s,(function(e){"object"==typeof e.get("data")&&_.each(e.get("data"),(function(e){e.model==e&&(e.model=r)})),e.set("model",r),e.set("disabled",!0)})),t.remove(e),i.channel("option-repeater").trigger("remove:option",e),i.channel("option-repeater").trigger("removed:option",t),i.channel("option-repeater-"+t.settingModel.get("name")).trigger("remove:option",e),this.triggerDataModel(e,n)},triggerDataModel:function(e,t){i.channel("app").trigger("update:setting",e)},getSettingChildView:function(e){return n},updateOptionSortable:function(e,t,n){var r=jQuery(t).sortable("toArray"),a=n.collection.get({cid:jQuery(e.item).prop("id")}),l={collection:n.collection,objModels:[]};_.each(r,(function(e,t){var i=n.collection.get({cid:e}),r=i.get("order");i.set("order",t);var a=t;l.objModels.push({model:i,attr:"order",before:r,after:a})})),n.collection.sort({silent:!0});var s={object:n.dataModel.get("objectType"),label:n.dataModel.get("label"),change:"Option "+a.get("label")+" re-ordered from "+a._previousAttributes.order+" to "+a.get("order"),dashicon:"sort"};i.channel("changes").request("register:change","sortListOptions",a,null,s,l),this.triggerDataModel(a,n.dataModel),i.channel("option-repeater").trigger("sort:option",a,n),i.channel("option-repeater-"+n.model.get("name")).trigger("sort:option",a,n)},stopOptionSortable:function(e){jQuery(e.item).css("opacity","")},startOptionSortable:function(e){jQuery(e.placeholder).find("div").remove(),jQuery(e.item).css("opacity","0.5").show()},convertSettings:function(e,n){var i=e.get(n.get("name"));0==i instanceof Backbone.Collection&&((i=new t([],{settingModel:n})).add(e.get(n.get("name"))),e.set(n.get("name"),i,{silent:!0}))}})})),n("views/app/drawer/imageOptionRepeaterOption",["views/app/drawer/optionRepeaterError"],(function(e){return Marionette.LayoutView.extend({tagName:"div",className:"nf-table-row",template:"#tmpl-nf-edit-setting-image-option-repeater-default-row",id:function(){return this.model.cid},regions:{error:".nf-option-error"},initialize:function(e){this.settingModel=e.settingModel,this.dataModel=e.dataModel,this.collection=e.collection,this.columns=e.columns,this.parentView=e.parentView,this.model.on("change:errors",this.renderErrors,this),void 0!==this.settingModel.get("tmpl_row")&&(this.template="#"+this.settingModel.get("tmpl_row")),this.listenTo(i.channel("image-option-repeater"),"click:extra",this.clickExtra),this.hasErrors=!1},onBeforeDestroy:function(){this.model.off("change",this.render),this.model.off("change:errors",this.renderErrors)},onBeforeRender:function(){if(this.model.get("image")){var e=this.model.get("image");this.model.set("image",_.escape(e),{silent:!0})}},onRender:function(){if(i.channel("mergeTags").request("init",this),i.channel("setting-"+this.settingModel.get("name")+"-option").trigger("render:setting",this.model,this.dataModel,this),this.model.get("image")){var e=this.model.get("image");this.model.set("image",_.unescape(e),{silent:!0})}},onShow:function(){this.model.get("new")&&(jQuery(this.el).find("input:first").focus(),this.model.set("new",!1))},events:{"change .setting":"changeOption","click .nf-delete":"deleteOption",keyup:"keyupOption"},changeOption:function(e){i.channel("image-option-repeater").trigger("change:option",e,this.model,this.dataModel,this.settingModel,this)},deleteOption:function(e){i.channel("image-option-repeater").trigger("click:deleteOption",this.model,this.collection,this.dataModel,this)},keyupOption:function(e){this.maybeAddOption(e),i.channel("image-option-repeater").trigger("keyup:option",e,this.model,this.dataModel,this.settingModel,this),i.channel("image-option-repeater-"+this.settingModel.get("name")).trigger("keyup:option",e,this.model,this.dataModel,this.settingModel,this)},maybeAddOption:function(e){13==e.keyCode&&"calculations"!=this.settingModel.get("name")&&(i.channel("image-option-repeater").trigger("click:addOption",this.collection,this.dataModel,this),jQuery(this.parentView.children.findByIndex(this.parentView.children.length-1).el).find('[data-id="image"]').focus())},clickExtra:function(e,t,n,i){var r=jQuery(e.target).parent().find(".setting"),a=jQuery(e.target).parent().parent().parent(),l=jQuery(a[0]).find('[data-id="value"]'),s=jQuery(a[0]).find('[data-id="image_id"]'),o=jQuery(a[0]).find('[data-id="label"]');if(jQuery(e.target).hasClass("open-media-manager")&&this.el.id===a[0].id){if(this.meta_image_frame)return void this.meta_image_frame.open();this.meta_image_frame=wp.media.frames.meta_image_frame=wp.media({title:"Select a file",button:{text:"insert"}});var c=this;this.meta_image_frame.on("select",(function(){var e=c.meta_image_frame.state().get("selection").first().toJSON();r.val(e.url).change(),l.val(e.filename).change(),o.val(e.title).change(),s.val(e.id).change();var t=a.find(".option-image-container");if(t)if($imgs=jQuery(t).find("img"),$imgs.length>0)jQuery($imgs[0]).attr("src",e.url);else{var n=document.createElement("img");n.style="max-width:100px;display:inline-block;",n.src=e.url,jQuery(t).append(n)}})),this.meta_image_frame.open()}},renderErrors:function(){0==Object.keys(this.model.get("errors"))?this.hasErrors&&(this.error.empty(),jQuery(this.el).removeClass("nf-error")):(this.hasErrors=!0,this.error.show(new e({model:this.model})),jQuery(this.el).addClass("nf-error"))},templateHelpers:function(){var e=this;return{getColumns:function(){var t=e.columns;return nfAdmin.devMode||(delete t.value,delete t.calc),t},renderFieldSelect:function(e,t){var n,r,a,l,s=i.channel("fields").request("get:collection");return(n=document.createElement("option")).value="",n.image="",n.innerHTML="--",(r=document.createElement("select")).classList.add("setting"),r.setAttribute("data-id",e),r.appendChild(n),s.each((function(e){var n=document.createElement("option");t==e.get("key")&&n.setAttribute("selected","selected"),n.value=e.get("key"),n.innerHTML=e.formatLabel(),n.image=e.formatLabel(),r.appendChild(n)})),(l=document.createElement("image")).classList.add("nf-select"),l.appendChild(r),(a=document.createElement("div")).style.bottom="6px",l.appendChild(a),l.innerHTML},renderNonSaveFieldSelect:function(e,t){var n,r,a,l,s=i.channel("fields").request("get:collection");(n=document.createElement("option")).value="",n.image="",n.innerHTML="--",(r=document.createElement("select")).classList.add("setting"),r.setAttribute("data-id",e),r.appendChild(n);var o=["html","submit","hr","recaptcha","spam","creditcard","creditcardcvc","creditcardexpiration","creditcardfullname","creditcardnumber","creditcardzip"];return s.each((function(e){if(-1!==jQuery.inArray(e.get("type"),o))return"";var n=document.createElement("option");t==e.get("key")&&n.setAttribute("selected","selected"),n.value=e.get("key"),n.innerHTML=e.formatLabel(),n.image=e.formatLabel(),r.appendChild(n)})),(l=document.createElement("image")).classList.add("nf-select"),l.appendChild(r),(a=document.createElement("div")).style.bottom="6px",l.appendChild(a),l.innerHTML},renderOptions:function(t,n){if(void 0!==e.options.columns[t]){var i=document.createElement("select");return _.each(e.options.columns[t].options,(function(e){var t=document.createElement("option");n===e.value&&t.setAttribute("selected","selected"),t.setAttribute("value",e.value),t.setAttribute("image_id",e.image_id),t.setAttribute("image",e.image),t.innerText=e.image,i.appendChild(t)})),i.innerHTML}}}}})})),n("views/app/drawer/imageOptionRepeaterComposite",["views/app/drawer/imageOptionRepeaterOption","views/app/drawer/optionRepeaterEmpty","models/app/optionRepeaterCollection"],(function(e,t,n){return Marionette.CompositeView.extend({template:"#tmpl-nf-edit-setting-image-option-repeater-wrap",childView:e,emptyView:t,reorderOnSort:!1,initialize:function(e){var t=e.dataModel.get(this.model.get("name"));0==t instanceof Backbone.Collection&&((t=new n([],{settingModel:this.model})).add(e.dataModel.get(this.model.get("name"))),e.dataModel.set(this.model.get("name"),t,{silent:!0})),this.collection=t,this.dataModel=e.dataModel,this.childViewOptions={parentView:this,settingModel:this.model,collection:this.collection,dataModel:e.dataModel,columns:this.model.get("columns")};var r=this.model.get("deps");if(r){void 0===r.settings&&(r.settings=[],_.each(r,(function(e,t){"settings"!==t&&r.settings.push({name:t,value:e})})),r.match="all");for(var a=r.settings.length-1;a>=0;a--){let e=r.settings[a].name;this.dataModel.on("change:"+e,this.render,this)}}this.listenTo(i.channel("image-option-repeater"),"added:option",this.maybeHideNew),this.listenTo(i.channel("image-option-repeater"),"removed:option",this.maybeHideNew)},onBeforeDestroy:function(){var e=this.model.get("deps");if(e)for(var t=e.settings.length-1;t>=0;t--){let n=e.settings[t].name;this.dataModel.off("change:"+n,this.render)}},onRender:function(){var e=this;jQuery(this.el).find(".nf-listimage-options-tbody").sortable({handle:".handle",helper:"clone",placeholder:"nf-listimage-options-sortable-placeholder",forcePlaceholderSize:!0,opacity:.95,tolerance:"pointer",start:function(e,t){i.channel("image-option-repeater").request("start:optionSortable",t)},stop:function(e,t){i.channel("image-option-repeater").request("stop:optionSortable",t)},update:function(t,n){i.channel("image-option-repeater").request("update:optionSortable",n,this,e)}}),e.setupTooltip(),e.maybeHideNew(e.collection),i.channel("setting-"+this.model.get("name")).trigger("render:setting",this.model,this.dataModel,this)},onAttach:function(){},setupTooltip:function(){jQuery(this.el).find(".nf-listimage-options").find(".nf-help").each((function(){var e=jQuery(this).next(".nf-help-text");jQuery(this).jBox("Tooltip",{content:e,maxWidth:200,theme:"TooltipBorder",trigger:"click",closeOnClick:!0})}))},templateHelpers:function(){var e=this;return{renderHeaders:function(){var t,n,i,r,a,l,s,o;"Field"==e.dataModel.get("objectType")&&-1!==e.dataModel.get("type").indexOf("list")&&(t=document.createTextNode(nfi18n.valueChars),(n=document.createElement("div")).classList.add("nf-help-text"),n.appendChild(t),(i=document.createElement("span")).classList.add("dashicons","dashicons-admin-comments"),(r=document.createElement("a")).classList.add("nf-help"),r.setAttribute("href","#"),r.setAttribute("tabindex","-1"),r.appendChild(i),(a=document.createElement("span")).appendChild(r),a.appendChild(n),void 0!==e.model.get("columns")&&void 0!==e.model.get("columns").value&&-1==e.model.get("columns").value.header.indexOf(a.innerHTML)&&(e.model.get("columns").value.header+=a.innerHTML));return s=document.createElement("div"),(l=document.createElement("span")).appendChild(s),nfAdmin.devMode||(delete this.columns.value,delete this.columns.calc),_.each(this.columns,(function(e){var t,n;t=document.createRange().createContextualFragment(e.header),(n=document.createElement("div")).appendChild(t),l.appendChild(n)})),o=document.createElement("div"),l.appendChild(o),l.innerHTML},renderSetting:function(){return i.channel("app").request("get:template","#tmpl-nf-edit-setting-"+this.type)(this)},renderClasses:function(){var e="";return void 0!==this.width?e+=this.width:e+=" one-half",this.error&&(e+=" nf-error"),e},renderVisible:function(){return i.channel("settings").request("check:deps",this,e)},renderError:function(){return this.error?this.error:""},renderFieldsetClasses:function(){return e.model.get("name")},currencySymbol:function(){return i.channel("settings").request("get:setting","currency")||nfi18n.currency_symbol}}},attachHtml:function(e,t){jQuery(e.el).find(".nf-listimage-options-tbody").append(t.el),i.channel("mergeTags").request("init",this)},events:{"click .nf-add-new":"clickAddOption","click .extra":"clickExtra"},maybeHideNew:function(e){if(void 0===e.settingModel)return!1;var t=e.settingModel.get("max_options");0!==t&&e.models.length>=t?jQuery(this.el).find(".nf-add-new").addClass("disabled"):jQuery(this.el).find(".nf-add-new").removeClass("disabled")},clickAddOption:function(e){i.channel("image-option-repeater").trigger("click:addOption",this.collection,this.dataModel),jQuery(this.children.findByIndex(this.children.length-1).el).find('[data-id="image"]').focus()},clickExtra:function(e){i.channel("image-option-repeater").trigger("click:extra",e,this.collection,this.dataModel),i.channel("image-option-repeater-"+this.model.get("name")).trigger("click:extra",e,this.model,this.collection,this.dataModel)},clickImport:function(e){var t=jQuery(e.data.jBox.content).find("textarea"),n=t.val().trimLeft().trimRight();if(0==n.length)return e.data.jBox.close(),!1;var r=n.split(/\n/);_.isArray(r)&&_.each(r,(function(t){var n=t.split(","),r=n[0],a=n[1]||jQuery.slugify(r,{separator:"-"}),l=n[2]||"";r=r.trimLeft().trimRight(),a=a.trimLeft().trimRight(),l=l.trimLeft().trimRight();var s=e.data.view.collection.add({image:n[0],value:a,calc:l});r={object:"field",image:n[0],change:"Option Added",dashicon:"plus-alt"};i.channel("changes").request("register:change","addListOption",s,null,r),i.channel("image-option-repeater-"+e.data.view.model.get("name")).trigger("add:option",s),i.channel("image-option-repeater").trigger("add:option",s),i.channel("app").trigger("update:setting",s)}),this),t.val(""),e.data.jBox.close()}})})),n("controllers/app/imageOptionRepeater",["models/app/optionRepeaterModel","models/app/optionRepeaterCollection","views/app/drawer/imageOptionRepeaterComposite"],(function(e,t,n){return Marionette.Object.extend({initialize:function(){i.channel("image-option-repeater").reply("get:settingChildView",this.getSettingChildView,this),this.listenTo(i.channel("image-option-repeater"),"change:option",this.changeOption),this.listenTo(i.channel("image-option-repeater"),"click:addOption",this.addOption),this.listenTo(i.channel("image-option-repeater"),"click:deleteOption",this.deleteOption),i.channel("image-option-repeater").reply("update:optionSortable",this.updateOptionSortable,this),i.channel("image-option-repeater").reply("stop:optionSortable",this.stopOptionSortable,this),i.channel("image-option-repeater").reply("start:optionSortable",this.startOptionSortable,this),this.listenTo(i.channel("image-option-repeater"),"init:dataModel",this.convertSettings)},changeOption:function(e,t,n,r,a){var l=jQuery(e.target).data("id");if("selected"==l)if(jQuery(e.target).prop("checked"))var s=1;else s=0;else s=jQuery(e.target).val();var o=t.get(l);t.set(l,s),this.triggerDataModel(t,n);var c=s,d={attr:l,before:o,after:c},h={object:n.get("objectType"),label:n.get("label"),change:"Option "+t.get("label")+" "+l+" changed from "+o+" to "+c};i.channel("changes").request("register:change","changeSetting",t,d,h),i.channel("image-option-repeater").trigger("update:option",t,n,r,a),i.channel("image-option-repeater-option-"+l).trigger("update:option",e,t,n,r,a),i.channel("image-option-repeater-"+r.get("name")).trigger("update:option",t,n,r,a)},addOption:function(t,n){var r={order:t.length,new:!0,options:{}};if(void 0!==t.settingModel){var a=t.settingModel.get("max_options");if(0!==a&&t.models.length>=a)return;_.each(t.settingModel.get("columns"),(function(e,t){r[t]=e.default,void 0!==e.options&&(r.options[t]=e.options)}))}var l=new e(r);t.add(l);var s={object:n.get("objectType"),image:n.get("image"),change:"Option Added",dashicon:"plus-alt"};i.channel("changes").request("register:change","addListOption",l,null,s),void 0!==t.settingModel&&i.channel("image-option-repeater-"+t.settingModel.get("name")).trigger("add:option",l),i.channel("image-option-repeater").trigger("add:option",l),i.channel("image-option-repeater").trigger("added:option",t),this.triggerDataModel(l,n)},deleteOption:function(e,t,n){var r=i.channel("app").request("clone:modelDeep",e),a={object:n.get("objectType"),image:n.get("image"),change:"Option "+r.get("image")+" Removed",dashicon:"dismiss"},l={collection:t};i.channel("changes").request("register:change","removeListOption",r,null,a,l);var s=i.channel("changes").request("get:collection").where({model:e});_.each(s,(function(e){"object"==typeof e.get("data")&&_.each(e.get("data"),(function(e){e.model==e&&(e.model=r)})),e.set("model",r),e.set("disabled",!0)})),t.remove(e),i.channel("image-option-repeater").trigger("remove:option",e),i.channel("image-option-repeater").trigger("removed:option",t),i.channel("image-option-repeater-"+t.settingModel.get("name")).trigger("remove:option",e),this.triggerDataModel(e,n)},triggerDataModel:function(e,t){i.channel("app").trigger("update:setting",e)},getSettingChildView:function(e){return n},updateOptionSortable:function(e,t,n){var r=jQuery(t).sortable("toArray"),a=n.collection.get({cid:jQuery(e.item).prop("id")}),l={collection:n.collection,objModels:[]};_.each(r,(function(e,t){var i=n.collection.get({cid:e}),r=i.get("order");i.set("order",t);var a=t;l.objModels.push({model:i,attr:"order",before:r,after:a})})),n.collection.sort({silent:!0});var s={object:n.dataModel.get("objectType"),image:n.dataModel.get("image"),change:"Option "+a.get("image")+" re-ordered from "+a._previousAttributes.order+" to "+a.get("order"),dashicon:"sort"};i.channel("changes").request("register:change","sortListOptions",a,null,s,l),this.triggerDataModel(a,n.dataModel),i.channel("image-option-repeater").trigger("sort:option",a,n),i.channel("image-option-repeater-"+n.model.get("name")).trigger("sort:option",a,n)},stopOptionSortable:function(e){jQuery(e.item).css("opacity","")},startOptionSortable:function(e){jQuery(e.placeholder).find("div").remove(),jQuery(e.item).css("opacity","0.5").show()},convertSettings:function(e,n){var i=e.get(n.get("name"));0==i instanceof Backbone.Collection&&((i=new t([],{settingModel:n})).add(e.get(n.get("name"))),e.set(n.get("name"),i,{silent:!0}))}})})),n("controllers/fields/editActive",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("fields").reply("clear:editActive",this.clearEditActive,this),this.listenTo(i.channel("drawer-editSettings"),"before:closeDrawer",this.clearEditActive)},clearEditActive:function(){var e=i.channel("fields").request("get:collection");_.each(e.models,(function(e){e.set("editActive",!1)}))}})})),n("controllers/fields/fieldSettings",["models/app/settingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.collection=new e(fieldSettings,{objectType:"fields"}),i.channel("fields").reply("get:settingModel",this.getSettingModel,this),i.channel("fields").reply("get:settingCollection",this.getSettingCollection,this)},getSettingModel:function(e){return this.collection.findWhere({name:e})},getSettingCollection:function(){return this.collection}})})),n("controllers/fields/fieldCreditCard",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"after:addField",this.dropCreditCardField)},dropCreditCardField:function(e){if("creditcard"==e.get("type")){var t=e.get("order");i.channel("fields").request("delete",e),_.each(["creditcardfullname","creditcardnumber","creditcardcvc","creditcardexpiration","creditcardzip"],(function(e){var n=i.channel("fields").request("get:type",e),r={id:i.channel("fields").request("get:tmpID"),type:e,label:n.get("nicename"),order:t};i.channel("fields").request("add",r)}))}},stageCreditCardField:function(e){"creditcard"==e.get("slug")&&(i.channel("fields").request("remove:stagedField","",e),_.each(["creditcardfullname","creditcardnumber","creditcardcvc","creditcardexpiration","creditcardzip"],(function(e){i.channel("fields").request("add:stagedField",e)})))}})})),n("controllers/fields/fieldList",["models/app/optionRepeaterCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("option-repeater-option-label"),"update:option",this.updateOptionLabel),this.listenTo(i.channel("option-repeater-option-value"),"update:option",this.updateOptionValue),this.listenTo(i.channel("fields-list"),"init:fieldModel",this.convertOptions)},updateOptionLabel:function(e,t,n,i,r){"list"==_.findWhere(fieldTypeData,{id:n.get("type")}).parentType&&(t.get("manual_value")||(value=jQuery.slugify(t.get("label"),{separator:"-"}),t.set("value",value),t.trigger("change",t),jQuery(r.el).find('[data-id="value"]').focus().select()))},updateOptionValue:function(e,t,n,i,r){if("Field"==n.get("objectType")){var a=t.get("value");a=a.replace(/[^0-9a-zA-Z _@.-]/g,""),t.set("value",a),r.render()}var l=_.findWhere(fieldTypeData,{id:n.get("type")});void 0!==l&&"list"==l.parentType&&(t.set("manual_value",!0),jQuery(r.el).find('[data-id="calc"]').focus().select())},convertOptions:function(t){var n=t.get("options"),r=i.channel("fields").request("get:settingModel","options");0==n instanceof Backbone.Collection&&((n=new e([],{settingModel:r})).add(t.get("options")),t.set("options",n,{silent:!0}))}})})),n("controllers/fields/fieldPassword",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"after:addField",this.addField)},addField:function(e){if("password"==e.get("type")){var t=e.get("order");this.insertField("passwordconfirm",t+1).set("confirm_field",e.get("key"))}},insertField:function(e,t){var n=i.channel("fields").request("get:type",e),r={id:i.channel("fields").request("get:tmpID"),type:e,label:n.get("nicename"),order:t};return i.channel("fields").request("add",r)}})})),n("controllers/fields/fieldQuantity",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){if("product_assignment"==e.get("name")){var i=this.getProductFields(e);e.set("options",i)}},getProductFields:function(e){var t=[e.get("select_product")],n=i.channel("fields").request("get:collection");return _.each(n.models,(function(e){"product"==e.get("type")&&t.push({label:e.get("label"),value:e.get("id")})})),t}})})),n("controllers/fields/fieldShipping",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-shipping_options"),"render:setting",this.addMask),this.listenTo(i.channel("setting-shipping_options-option"),"render:setting",this.addMask)},addMask:function(e,t,n){jQuery(n.el).find('[data-id="value"]').each((function(){jQuery(this).autoNumeric({aSign:"$",aSep:thousandsSeparator,aDec:decimalPoint})}))}})})),n("controllers/fields/key",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"add:field",this.newFieldKey),this.listenTo(i.channel("fieldSetting-label"),"update:setting",this.updateLabel),this.listenTo(i.channel("fieldSetting-key"),"update:setting",this.updateKey),this.listenTo(i.channel("setting-key"),"keyup:setting",this.keyUp)},newFieldKey:function(e){var t=(new Date).valueOf(),n=this.slugify(e.get("type")+"_"+t);e.set("key",n,{silent:!0}),"undefined"==e.get("manual_key")&&e.set("manual_key",!1,{silent:!0})},updateLabel:function(e){if(!e.get("manual_key")&&0!=jQuery.trim(e.get("label")).length){delete e.changed.label;var t=(new Date).valueOf(),n=this.slugify(e.get("label")+"_"+t);-1==n.indexOf("_")&&(n="field_"+n),e.set("key",n)}},updateKey:function(e){var t=e.get("key");this.settingModel=i.channel("fields").request("get:settingModel","key"),this.setError(t,e)},keyUp:function(e,t,n){n.set("manual_key",!0),this.settingModel=t;var i=jQuery(e.target).val();this.setError(i,n)},setError:function(e,t){var n=!1;""==jQuery.trim(e)?n="Field keys can't be empty. Please enter a key.":e!=e.toLowerCase()?n="Field keys must be lowercase.":e!=e.replace(" ","_")?n='Field keys must cannot use spaces. Separate with "_" instead.':"_"==e.slice(-1)?n='Field keys cannot end with a "_"':e!=this.slugify(e)?n="Invalid Format.":e!=this.keyExists(e,t)&&(n="Field keys must be unique. Please enter another key."),n?this.settingModel.set("error",n):(i.channel("app").trigger("update:fieldKey",t),this.settingModel.set("error",!1))},keyExists:function(e,t){var n=this.slugify(e);0!=n.length&&(e=n);var r=i.channel("fields").request("get:collection"),a=1,l=e;return _.each(r.models,(function(n){t!=n&&l==n.get("key")&&(l=e+"_"+a,a++)})),e=l},slugify:function(e){return jQuery.slugify(e,{separator:"_"})}})})),n("controllers/fields/notices",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"add:stagedField",this.addStagedField)},addStagedField:function(e){i.channel("notices").request("add","addStagedField",e.get("nicename")+" added to staging")}})})),n("controllers/fields/mobile",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields"),"sortable:start",this.startWiggle),this.listenTo(i.channel("fields"),"sortable:stop",this.stopWiggle)},initWiggle:function(e){i.channel("app").request("is:mobile")&&jQuery(e.el).find(".nf-field-wrap").on("taphold",(function(){jQuery(this).ClassyWiggle("start",{degrees:[".65","1",".65","0","-.65","-1","-.65","0"],delay:50})}))},startWiggle:function(e){i.channel("app").request("is:mobile")&&(jQuery(e.item).removeClass("ui-sortable-helper").ClassyWiggle("stop"),jQuery(e.helper).css("opacity","0.75").ClassyWiggle("start",{degrees:[".5","1",".5","0","-.5","-1","-.5","0"]}))},stopWiggle:function(e){i.channel("app").request("is:mobile")&&(jQuery(e.helper).ClassyWiggle("stop"),jQuery(e.item).removeClass("ui-sortable-helper drag-selected"))}})})),n("controllers/fields/savedFields",[],(function(){return Marionette.Object.extend({ignoreAttributes:["editActive","order","saved","jBox"],initialize:function(){this.listenTo(i.channel("fields"),"update:setting",this.updateField),this.listenTo(i.channel("drawer"),"click:addSavedField",this.clickAddSavedField,this)},updateField:function(e){if(e.get("saved")){var t=!1,n=_.keys(e.changedAttributes()),i=this;_.each(n,(function(e){-1==i.ignoreAttributes.indexOf(e)&&(t=!0)})),t&&e.set("saved",!1)}},clickAddSavedField:function(e,t){var n=i.channel("app").request("clone:modelDeep",t).attributes;n.saved=!0,delete n.jBox,delete n.editActive,delete n.created_at,delete n.order,delete n.id,delete n.formID,delete n.parent_id;var r=i.channel("fields").request("get:type",n.type),a=_.clone(r.attributes),l=jQuery(e.target).parent().parent().find("input").val();console.log(l),a.nicename=l,n.label=l,n.nicename=l,t.set("addSavedLoading",!0);var s=JSON.stringify(n);jQuery.post(ajaxurl,{action:"nf_create_saved_field",field:s,security:nfAdmin.ajaxNonce},(function(e){e=JSON.parse(e),a.id=e.data.id,a.nicename=l,a.settingDefaults=n;i.channel("fields").request("get:typeCollection").add(a);i.channel("fields").request("get:typeSections").get("saved").get("fieldTypes").push(a.id),t.set("addSavedLoading",!1),t.unset("addSavedLoading",{silent:!0}),t.get("jBox").close(),i.channel("notices").request("add","addSaved","Saved Field Added")}))}})})),n("controllers/fields/fieldDatepicker",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-type-datepicker"),"render:setting",this.addDatepicker)},addDatepicker:function(e,t,n){let r=jQuery(n.el).find(".setting")[0],a={},l=i.channel("setting-type-datepicker").request("filter:settings",a,e,r);void 0!==l&&(a=l);var s=flatpickr(r,a);i.channel("setting-type-datepicker").trigger("loadComplete",s,e,t,n)}})})),n("controllers/fields/fieldDisplayCalc",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-calc_var"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){},getProductFields:function(e){var t=[e.get("select_product")],n=i.channel("fields").request("get:collection");return _.each(n.models,(function(e){"product"==e.get("type")&&t.push({label:e.get("label"),value:e.get("id")})})),t}})})),n("controllers/fields/fieldRepeater",["models/fields/fieldCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("fields-repeater"),"init:fieldModel",this.setupCollection,this),i.channel("fields-repeater").reply("add:childField",this.addChildField,this),i.channel("fields-repeater").reply("receive:fields",this.receiveFields,this),i.channel("fields-repeater").reply("get:childField",this.getChildField,this),i.channel("fields-repeater").reply("process:stagedField",this.processStagedFields,this),i.channel("fields-repeater").reply("sort:repeaterField",this.sortRepeaterField,this),i.channel("fields-repeater").reply("over:repeaterField",this.overRepeaterField,this),i.channel("fields-repeater").reply("out:repeaterField",this.outRepeaterField,this),i.channel("fields-repeater").reply("stop:repeaterField",this.stopRepeaterField,this),i.channel("fields-repeater").reply("start:repeaterField",this.startRepeaterField,this),i.channel("fields-repeater").reply("update:repeaterField",this.updateRepeaterField,this)},setupCollection:function(t){let n=t.get("fields");if(!1==n instanceof Backbone.Collection){let r=new e(n);t.set("fields",r),r.listenTo(i.channel("fields-repeater"),"clearEditActive",this.clearEditActive,r),r.listenTo(i.channel("app"),"after:appStart",this.clearEditActive,r),r.listenTo(i.channel("fields"),"delete:field",this.maybeDeleteField,r)}},maybeDeleteField:function(e){e.get("droppedInRepeater")||this.remove(e),e.set("droppedInRepeater",!1)},clearEditActive:function(e){_.each(this.models,(function(t){e.cid!==t.cid&&(t.set("editActive",!0),t.set("editActive",!1))}))},receiveFields:function(e,t,n){jQuery(e.item).hasClass("nf-stage")?this.processStagedFields(e,t,n):this.addChildField(e,t,n)},addChildField:function(e,t,n){let r,a=void 0!==e.item?jQuery(e.item).data("id"):e.get("slug"),l=i.channel("fields").request("get:field",a),s=t.repeaterFieldModel.get("fields");if("repeater"===a)return;null!=l&&(a=l.attributes.type,i.channel("app").trigger("click:delete",n,l)),r=i.channel("fields").request("get:type",a);let o=null!=i.channel("fields").request("get:tmpID")?i.channel("fields").request("get:tmpID"):"tmp";newField=s.add({id:o,label:r.get("nicename"),type:a,repeaterField:!0});let c=i.channel("fields-repeater").request("get:sortableEl");jQuery(c).hasClass("ui-sortable")||i.channel("fields-repeater").request("init:sortable");let d=jQuery(c).sortable("toArray");_.each(d,(function(e,t){!1==e.length>0?d[t]=o:e===o&&d.splice(t,1)})),i.channel("fields-repeater").request("sort:repeaterField",d);var h={object:"Field",label:newField.get("label"),change:"Added",dashicon:"plus-alt"},u={collection:s};return i.channel("changes").request("register:change","addObject",newField,null,h,u),void 0!==o&&void 0!==e.helper&&(jQuery(e.helper).prop("id",o),i.channel("app").request("stop:fieldsSortable",e),jQuery(e.helper).remove(),i.channel("fields").trigger("drop:fieldType",a,o)),o},getChildField:function(e,t,n){if(void 0===e)return;let r;if(null==t&&void 0!==n){const e=n.split(".")[0];t=i.channel("fields").request("get:field",e)}if(t){r=t.get("fields").get(e)}return r},processStagedFields(e,t,n){i.channel("fields").request("sort:staging");var r=i.channel("fields").request("get:staging"),a=i.channel("fields-repeater").request("get:sortableEl");let l=[];l=jQuery(a).hasClass("repeater")?jQuery(a).sortable("toArray"):["nf-staged-fields-drag"];let s=l.indexOf("nf-staged-fields-drag");_.each(r.models,(function(e,r){var a=i.channel("fields-repeater").request("add:childField",e,t,n);l.splice(s+r,0,a)})),s=l.indexOf("nf-staged-fields-drag"),l.splice(s,1),i.channel("fields").request("sort:fields",l),i.channel("fields").request("clear:staging"),jQuery(e.helper).remove()},sortRepeaterField:function(e,t,n){let r=i.channel("fields-repeater").request("get:repeaterFieldsCollection");null==n&&(n=!0);var a=i.channel("fields-repeater").request("get:sortableEl");if(jQuery(a).hasClass("ui-sortable")){e=e||jQuery(a).sortable("toArray");_.each(r.models,(function(t){t.get("order");var n=t.get("id");if(jQuery.isNumeric(n))var i="field-"+n;else i=n;var r=e.indexOf(i)+1;t.set("order",r)})),r.sort(),n&&(i.channel("app").request("update:setting","clean",!1),i.channel("app").request("update:db"))}},overRepeaterField:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=jQuery(e.helper).data("id"),n=(i.channel("fields").request("get:type",t).get("nicename"),i.channel("fields-repeater").request("get:sortableEl"));this.currentHelper=e.helper}else if(jQuery(e.item).hasClass("nf-stage")){n=i.channel("fields-repeater").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).addClass("nf-droppable-hover")}},outRepeaterField:function(e){if(jQuery(e.item).hasClass("nf-field-type-draggable")){var t=i.channel("drawer-addField").request("get:typeHelperClone");jQuery(this.currentHelper).html(jQuery(t).html()),jQuery(this.currentHelper).removeClass("nf-field-wrap").addClass("nf-field-type-button").css({width:"",height:""});var n=i.channel("fields-repeater").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}else if(jQuery(e.item).hasClass("nf-stage")){n=i.channel("fields-repeater").request("get:sortableEl");jQuery(n).hasClass("ui-sortable")&&jQuery(n).removeClass("nf-droppable-hover")}},stopRepeaterField:function(e){jQuery(e.item).css("opacity",""),jQuery(e.helper).remove()},startRepeaterField:function(e){if(!jQuery(e.item).hasClass("nf-field-type-draggable")&&!jQuery(e.item).hasClass("nf-stage")){if(jQuery(e.item).show(),jQuery(e.item).hasClass("nf-field-wrap"))var t=jQuery(e.item).clone();else if(jQuery(e.item).parent().hasClass("layouts-cell"))t=$parentHelper.clone();else t=jQuery(e.item).clone();t.find(".nf-item-controls").remove(),jQuery(e.helper).html(t.html()),jQuery(e.helper).css("opacity","0.5"),jQuery(e.item).css("opacity","0.25")}},updateRepeaterField:function(e,t){if(i.channel("fields-repeater").request("sort:repeaterField"),!jQuery(e.item).hasClass("nf-field-type-draggable")&&!jQuery(e.item).hasClass("nf-stage")){var n=i.channel("fields-repeater").request("get:repeaterFieldsCollection"),r=jQuery(e.item).prop("id").replace("field-",""),a=n.get(r),l={fields:[]};_.each(n.models,(function(e){var t=e._previousAttributes.order,n=e.get("order");l.fields.push({model:e,attr:"order",before:t,after:n})}));a.get("label"),a._previousAttributes.order,a.get("order")}}})})),n("controllers/actions/types",["models/app/typeCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.installedActions=new e(_.filter(actionTypeData,(function(e){return"installed"==e.section})),{slug:"installed",nicename:nfi18n.installed}),this.availableActions=new e(_.filter(actionTypeData,(function(e){return"available"==e.section})),{slug:"available",nicename:nfi18n.available}),i.channel("actions").reply("get:type",this.getType,this),i.channel("actions").reply("get:installedActions",this.getInstalledActions,this),i.channel("actions").reply("get:availableActions",this.getAvailableActions,this)},getType:function(e){var t=this.installedActions.get(e);return t||(t=this.availableActions.get(e)),t},getInstalledActions:function(){return this.installedActions},getAvailableActions:function(){return this.availableActions},addStagedField:function(e){var t=jQuery(e.target).data("id");i.channel("fields").request("add:stagedField",t)},getTypeSections:function(){return this.fieldTypeSections}})})),n("models/actions/actionModel",[],(function(){return Backbone.Model.extend({defaults:{objectType:"Action",objectDomain:"actions",editActive:!1},initialize:function(){this.on("change",this.changeSetting,this);var e=i.channel("actions").request("get:type",this.get("type"));if(void 0!==e){var t=this;_.each(e.get("settingDefaults"),(function(e,n){t.get(n)||t.set(n,e,{silent:!0})})),i.channel("actions").trigger("init:actionModel",this),i.channel("actions-"+this.get("type")).trigger("init:actionModel",this),this.listenTo(i.channel("app"),"fire:updateFieldKey",this.updateFieldKey)}},changeSetting:function(e,t){i.channel("actionSetting-"+_.keys(this.changedAttributes())[0]).trigger("update:setting",this,t.settingModel),i.channel("actions").trigger("update:setting",this,t.settingModel),i.channel("app").trigger("update:setting",this,t.settingModel)},updateFieldKey:function(e,t){i.channel("app").trigger("replace:fieldKey",this,e,t)}})})),n("models/actions/actionCollection",["models/actions/actionModel"],(function(e){return Backbone.Collection.extend({model:e,comparator:"order",tmpNum:1,initialize:function(){this.on("add",this.addAction,this),this.on("remove",this.removeAction,this),this.newIDs=[]},addAction:function(e){this.newIDs.push(e.get("id"))},removeAction:function(e){this.removedIDs[e.get("id")]=e.get("id")}})})),n("controllers/actions/data",["models/actions/actionCollection","models/actions/actionModel"],(function(e,t){return Marionette.Object.extend({initialize:function(){if(this.collection=new e(preloadedFormData.actions),this.collection.tmpNum=1,0!=this.collection.models.length){var t=this;_.each(this.collection.models,(function(e){jQuery.isNumeric(e.get("id"))||t.collection.tmpNum++}))}this.collection.removedIDs={},i.channel("actions").reply("get:collection",this.getCollection,this),i.channel("actions").reply("get:action",this.getAction,this),i.channel("actions").reply("get:tmpID",this.getTmpID,this),i.channel("actions").reply("add",this.addAction,this),i.channel("actions").reply("delete",this.deleteAction,this)},getCollection:function(){return this.collection},getAction:function(e){return this.collection.get(e)},addAction:function(e,n){if(n=n||!1,!1==e instanceof Backbone.Model)var r=new t(e);else r=e;return this.collection.add(r,{silent:n}),i.channel("app").request("update:setting","clean",!1),r},deleteAction:function(e){this.collection.remove(e),i.channel("app").request("update:setting","clean",!1),i.channel("app").request("update:db")},getTmpID:function(){var e=this.collection.tmpNum;return this.collection.tmpNum++,"tmp-"+e}})})),n("controllers/actions/actionSettings",["models/app/settingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.collection=new e(actionSettings,{objectType:"actions"}),i.channel("actions").reply("get:settingModel",this.getSettingModel,this)},getSettingModel:function(e){return this.collection.findWhere({name:e})}})})),n("controllers/actions/editActive",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("actions").reply("clear:editActive",this.clearEditActive,this),this.listenTo(i.channel("drawer-editSettings"),"before:closeDrawer",this.clearEditActive)},clearEditActive:function(){var e=i.channel("actions").request("get:collection");_.each(e.models,(function(e){e.set("editActive",!1)}))}})})),n("controllers/actions/emailFromSetting",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actionSetting-from_address"),"update:setting",this.updateFromAddress)},updateFromAddress:function(e,t){if(void 0!==t){var n=e.get("from_address").trim();return"{wp:admin_email}"==n?t.set("warning",!1):n&&!this.isValidEmail(n)||nfAdmin.home_url_host!=n.replace(/.*@/,"")?t.set("warning",nfi18n.errorInvalidEmailFromAddress):t.set("warning",!1)}},isValidEmail:function(e){return/^.+@.+\..+$/.test(e)}})})),n("controllers/actions/addActionTypes",["models/actions/actionCollection","models/actions/actionModel"],(function(e,t){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actions"),"click:addAction",this.addAction),i.channel("actions").reply("add:actionType",this.addAction,this)},addAction:function(e){var t={id:i.channel("actions").request("get:tmpID"),type:e.get("id"),label:e.get("settingDefaults").label||e.get("nicename")},n=i.channel("actions").request("add",t),r={object:"Action",label:n.get("label"),change:"Added",dashicon:"plus-alt"};t={collection:i.channel("actions").request("get:collection")};i.channel("changes").request("register:change","addObject",n,null,r,t),i.channel("app").trigger("click:edit",{},n)}})})),n("controllers/actions/typeDrag",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addAction"),"startDrag:type",this.startDrag),this.listenTo(i.channel("drawer-addAction"),"stopDrag:type",this.stopDrag),i.channel("drawer-addAction").reply("get:typeHelperClone",this.getCurrentDraggableHelperClone,this)},startDrag:function(e,t){this.drawerEl=i.channel("app").request("get:drawerEl"),this.mainEl=i.channel("app").request("get:mainEl"),jQuery(this.drawerEl)[0].style.setProperty("overflow","visible","important"),this.draggableHelperClone=jQuery(t.helper).clone()},stopDrag:function(e,t){jQuery(this.drawerEl)[0].style.setProperty("overflow","hidden","important")},getCurrentDraggableHelperClone:function(){return this.draggableHelperClone}})})),n("controllers/actions/droppable",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("app").reply("drop:actionType",this.dropActionType,this)},dropActionType:function(e,t){var n=jQuery(t.helper).data("type"),r=i.channel("actions").request("get:type",n);i.channel("actions").request("add:actionType",r)}})})),n("models/actions/typeModel",[],(function(){return Backbone.Model.extend({})})),n("models/actions/typeCollection",["models/actions/typeModel"],(function(e){return Backbone.Collection.extend({model:e})})),n("controllers/actions/filterTypes",["models/actions/typeCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("drawer-addAction"),"change:filter",this.filterActionTypes)},filterActionTypes:function(t,n){if(""!=jQuery.trim(t)){var r=[],a=i.channel("actions").request("get:installedActions");_.each(this.filterCollection(t,a),(function(e){r.push(e)}));var l=[],s=i.channel("actions").request("get:availableActions");_.each(this.filterCollection(t,s),(function(e){l.push(e)}));var o=new e(r);o.slug="installed",o.nicename="Installed";var c=new e(l);c.slug="available",c.nicename="Available",i.channel("drawer").trigger("filter:actionTypes",o,c),n.addObject&&0<o.length&&(i.channel("actions").request("add:actionType",o.models[0]),i.channel("drawer").request("clear:filter"))}else i.channel("drawer").trigger("clear:filter")},filterCollection:function(e,t){return e=e.toLowerCase(),t.filter((function(t){var n=!1;return(-1!=t.get("id").toLowerCase().indexOf(e)||-1!=t.get("nicename").toLowerCase().indexOf(e))&&(n=!0),t.get("tags")&&0==e.indexOf("#")&&_.each(t.get("tags"),(function(t){e.replace("#","").length>1&&-1!=t.toLowerCase().indexOf(e.replace("#",""))&&(n=!0)})),t.get("alias")&&_.each(t.get("alias"),(function(t){-1!=t.toLowerCase().indexOf(e)&&(n=!0)})),n}))}})})),n("controllers/actions/newsletterList",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("setting-newsletter_list"),"show:setting",this.defaultFields),this.listenTo(i.channel("setting-type-newsletter_list"),"click:extra",this.clickListUpdate),this.listenTo(i.channel("actionSetting-newsletter_list"),"update:setting",this.maybeRenderFields),this.listenTo(i.channel("actionSetting-newsletter_list"),"update:setting",this.maybeRenderGroups),this.listenTo(i.channel("setting-name-newsletter_list_fields"),"init:settingModel",this.registerFieldsListener),this.listenTo(i.channel("setting-name-newsletter_list_groups"),"init:settingModel",this.registerGroupsListener)},defaultFields:function(e,t){this.maybeRenderFields(t,e),this.maybeRenderGroups(t,e)},registerFieldsListener:function(e){e.listenTo(i.channel("newsletter_list_fields"),"update:fieldMapping",this.updateFieldMapping,e)},registerGroupsListener:function(e){e.listenTo(i.channel("newsletter_list_groups"),"update:interestGroups",this.updateInterestGroups,e)},clickListUpdate:function(e,t,n,i){var r={action:"nf_"+n.attributes.type+"_get_lists",security:nfAdmin.ajaxNonce},a=this;jQuery(e.srcElement).addClass("spin"),jQuery.post(ajaxurl,r,(function(e){e=JSON.parse(e);a.updateLists(t,e.lists,i,n),n.set("newsletter_list",e.lists[0].value,{settingModel:t})})).always((function(){jQuery(e.srcElement).removeClass("spin")}))},updateLists:function(e,t,n,i){e.set("options",t),n.render()},maybeRenderFields:function(e,t){if(void 0!==t){var n=e.get("newsletter_list"),r=t.get("options");_.each(r,(function(e){n==e.value&&i.channel("newsletter_list_fields").trigger("update:fieldMapping",e.fields)})),e.set("newsletter_list_fields",0)}},maybeRenderGroups:function(e,t){if(void 0!==t){var n=e.get("newsletter_list"),r=t.get("options");_.each(r,(function(e){n==e.value&&i.channel("newsletter_list_groups").trigger("update:interestGroups",e.groups)})),e.set("newsletter_list_fields",0)}},updateFieldMapping:function(e){var t=this.get("settings");t.reset(),_.each(e,(function(e){t.add({name:e.value,type:"textbox",label:e.label,width:"full",use_merge_tags:{exclude:["user","post","system","querystrings"]}})})),this.set("settings",t)},updateInterestGroups:function(e){var t=this.get("settings");t.reset(),_.each(e,(function(e){t.add({name:e.value,type:"toggle",label:e.label,width:"full"})})),this.set("settings",t)}})})),n("controllers/actions/deleteFieldListener",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actions"),"init:actionModel",this.registerListener)},registerListener:function(e){e.listenTo(i.channel("fields"),"delete:field",this.maybeUpdateSettings)},maybeUpdateSettings:function(e){var t="{field:"+e.get("key")+"}";_.each(this.attributes,(function(e,n){if(_.isString(e))this.set(n,e.replace(t,""));else if(_.isArray(e))_.each(e,(function(i,r){_.isString(i)?console.log("string replace"):_.isArray(i)?console.log("array search"):_.isObject(i)&&(_.mapObject(i,(function(n,i){return _.isString(n)&&-1!=n.indexOf(t)&&e.splice(r,1),n})),this.set(n,e))}),this);else if(e instanceof Backbone.Collection){var i=e.filter((function(e){return _.every(e.attributes,(function(e){return!_.isString(e)||-1==e.indexOf(t)}))}));this.set(n,i)}}),this)}})})),n("controllers/actions/collectPaymentFields",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){if("field"!=e.get("total_type"))return!1;var r=this.getFields(e),a=t.get("payment_total");a=(a=a.replace("{field:","")).replace("}","");var l=i.channel("fields").request("get:field",a);void 0!==l&&void 0===_.findWhere(r,{value:t.get("payment_total")})&&r.push({label:l.get("label"),value:"{field:"+l.get("key")+"}"}),e.set("options",r)},getFields:function(e){var t=[e.get("default_options")],n=i.channel("fields").request("get:collection");return _.each(n.models,(function(e){"number"!=e.get("type")&&"total"!=e.get("type")&&"checkbox"!=e.get("type")||t.push({label:e.get("label"),value:"{field:"+e.get("key")+"}"})})),t=_.sortBy(t,(function(e){return e.label}))}})})),n("controllers/actions/collectPaymentCalculations",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){if("calc"==e.get("total_type")){var r=i.channel("app").request("get:formModel"),a=this.getCalcs(r,e);e.set("options",a)}},getCalcs:function(e,t){var n=[t.get("default_options")],i=e.get("settings").get("calculations");return _.each(i.models,(function(e){n.push({label:e.get("name"),value:"{calc:"+e.get("name")+"}"})})),n=_.sortBy(n,(function(e){return e.label}))}})})),n("controllers/actions/collectPaymentFixed",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("app"),"before:renderSetting",this.beforeRenderSetting)},beforeRenderSetting:function(e,t,n){if("payment_total_type"!=e.get("name")||_.isEmpty(t.get("payment_total")))return!1;("undefined"==t.get("payment_total_type")||_.isEmpty(t.get("payment_total_type")))&&(-1!=t.get("payment_total").indexOf("{field")?t.set("payment_total_type","field"):-1!=t.get("payment_total").indexOf("{calc")?t.set("payment_total_type","calc"):t.set("payment_total_type","fixed"))}})})),n("controllers/actions/collectPayment",[],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actions-collectpayment"),"init:actionModel",this.initCollectPayment),this.listenTo(i.channel("app"),"before:renderSetting",this.maybeClearTotal)},initCollectPayment:function(e){e.listenTo(i.channel("calcs"),"update:calcName",this.maybeUpdateTotal)},maybeError:function(){},maybeUpdateTotal:function(e,t){if("calc"==this.get("payment_total_type")){var n=this.get("payment_total").replace("{calc:"+t+"}","{calc:"+e.get("name")+"}");this.set("payment_total",n)}},maybeClearTotal:function(e,t,n){"fixed"==t.get("payment_total_type")&&(-1==t.get("payment_total").indexOf("{field")&&-1==t.get("payment_total").indexOf("{calc")||t.set("payment_total",""))}})})),n("controllers/actions/save",[],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("actions-save"),"init:actionModel",this.initSave)},initSave:function(e){this.model=e,this.listenTo(Backbone.Radio.channel("fields"),"add:field",this.checkFieldAdded),this.listenTo(Backbone.Radio.channel("fields"),"delete:field",this.checkFieldDeleted)},checkFieldAdded:function(e){"email"==e.get("type")&&(""===this.model.get("submitter_email")&&this.model.set("submitter_email",e.get("key")))},checkFieldDeleted:function(e){this.model.get("submitter_email")==e.get("key")&&this.model.set("submitter_email","")}})})),n("controllers/advanced/types",["models/app/typeCollection"],(function(e){return Marionette.Object.extend({initialize:function(){if(this.collection=new e(formSettingTypeData),!nfAdmin.devMode){var t=this.collection.where({id:"calculations"});this.collection.remove(t)}i.channel("settings").reply("get:type",this.getType,this),i.channel("settings").reply("get:typeCollection",this.getCollection,this)},getType:function(e){return this.collection.get(e)},getCollection:function(){return this.collection}})})),n("models/advanced/settingsModel",[],(function(){return Backbone.Model.extend({defaults:{objectType:"Form Setting",editActive:!1},initialize:function(){this.bind("change",this.changeSetting,this);var e=i.channel("settings").request("get:collection");_.each(e.models,(function(e){void 0===this.get(e.get("name"))&&this.set(e.get("name"),e.get("value"),{silent:!0}),i.channel(e.get("type")).trigger("init:dataModel",this,e)}),this),this.listenTo(i.channel("app"),"fire:updateFieldKey",this.updateFieldKey)},changeSetting:function(e,t){i.channel("app").trigger("update:setting",this,t.settingModel)},updateFieldKey:function(e,t){i.channel("app").trigger("replace:fieldKey",this,e,t)}})})),n("controllers/advanced/data",["models/advanced/settingsModel"],(function(e){return Marionette.Object.extend({initialize:function(){this.model=new e(preloadedFormData.settings),i.channel("settings").reply("get:settings",this.getSettings,this),i.channel("settings").reply("get:setting",this.getSetting,this),i.channel("settings").reply("update:setting",this.updateSetting,this)},getSettings:function(){return this.model},updateSetting:function(e,t,n){n=n||!1,this.model.set(e,t,{silent:n})},getSetting:function(e){return this.model.get(e)}})})),n("controllers/advanced/formSettings",["models/app/settingCollection"],(function(e){return Marionette.Object.extend({initialize:function(){this.collection=new e(formSettings,{objectType:"settings"}),i.channel("settings").reply("get:settingModel",this.getSettingModel,this),i.channel("settings").reply("get:collection",this.getSettingCollection,this)},getSettingModel:function(e){return this.collection.findWhere({name:e})},getSettingCollection:function(){return this.collection}})})),n("controllers/advanced/editActive",[],(function(){return Marionette.Object.extend({initialize:function(){i.channel("settings").reply("clear:editActive",this.clearEditActive,this),this.listenTo(i.channel("drawer-editSettings"),"before:closeDrawer",this.clearEditActive)},clearEditActive:function(){var e=i.channel("settings").request("get:typeCollection");_.each(e.models,(function(e){e.set("editActive",!1)}))}})})),n("controllers/advanced/clickEdit",["models/advanced/settingsModel"],(function(e){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("settings"),"click:edit",this.clickEdit)},clickEdit:function(e,t){var n=i.channel("settings").request("get:settings");i.channel("app").request("open:drawer","editSettings",{model:n,groupCollection:t.get("settingGroups"),typeModel:t}),i.channel("drawer").request("get:preventClose")||t.set("editActive",!0)}})})),n("controllers/advanced/calculations",[],(function(){return Marionette.Object.extend({initialize:function(){this.listenTo(i.channel("option-repeater-calculations"),"keyup:option",this.keyUp),this.listenTo(i.channel("option-repeater-calculations"),"update:option",this.updateCalc),this.listenTo(i.channel("option-repeater-calculations"),"sort:option",this.sortCalc)},keyUp:function(e,t){var n=jQuery(e.target).val(),i=jQuery(e.target).data("id");"name"==i?(this.checkName(n,t),this.checkEQ(t.get("eq"),t)):"eq"==i?this.checkEQ(n,t):"dec"==i&&this.checkDec(n,t)},updateCalc:function(e){this.checkName(e.get("name"),e,!1),this.checkEQ(e.get("eq"),e),this.checkDec(e.get("dec"),e),Backbone.Radio.channel("calcs").trigger("update:calc",e)},sortCalc:function(e,t){this.checkAllCalcs(t.collection)},checkName:function(e,t,n){n=n||!0;var r=t.get("errors"),a=t.collection.where({name:jQuery.trim(e)});if(e==t.get("name")&&(a=[]),0!=a.length)r.nameExists="Calculation names must be unique. Please enter another name.";else{var l=t.get("name");t.set("name",e,{silent:n}),i.channel("calcs").trigger("update:calcName",t,l),delete r.nameExists}t.set("errors",r),t.trigger("change:errors",t)},checkEQ:function(e,t){var n=t.get("errors"),i=!1,r=!1,a=e.match(new RegExp(/{calc:(.*?)}/g));if(a){var l=t.collection;a=a.map((function(e){var a=e.replace("}","").replace("{calc:",""),s=l.findWhere({name:a});a==t.get("name")?(n.selfRef="A calculation can't reference itself!",i=!0):s&&s.get("order")>t.get("order")&&(r=!0,n.futureCalc="Can't reference a future calculation!")}))}i||delete n.selfRef,r||delete n.futureCalc,t.set("errors",n),t.trigger("change:errors",t)},checkDec:function(e,t){if(void 0===e)return!1;var n=t.get("errors"),i=!1,r=Math.abs(parseInt(e.trim()));""!==e.trim()&&r.toString()!==e.trim()&&(i=!0,n.nonIntDec="Decimals must be a non-negative integer!"),i||delete n.nonIntDec,t.set("errors",n),t.trigger("change:errors",t)},checkAllCalcs:function(e){var t=this;e.models.map((function(e){t.checkName(e.get("name"),e),t.checkEQ(e.get("eq"),e),t.checkDec(e.get("dec"),e)}))}})})),n("controllers/loadControllers",["controllers/app/remote","controllers/app/drawer","controllers/app/drawerConfig","controllers/app/domainConfig","controllers/app/data","controllers/app/drawerToggleSettingGroup","controllers/app/updateDB","controllers/app/formData","controllers/app/previewLink","controllers/app/menuButtons","controllers/app/trackChanges","controllers/app/undoChanges","controllers/app/publishResponse","controllers/app/changeDomain","controllers/app/pushstate","controllers/app/hotkeys","controllers/app/cleanState","controllers/app/coreUndo","controllers/app/cloneModelDeep","controllers/app/getSettingChildView","controllers/app/changeSettingDefault","controllers/app/fieldset","controllers/app/toggleSetting","controllers/app/buttonToggleSetting","controllers/app/numberSetting","controllers/app/radioSetting","controllers/app/itemControls","controllers/app/mergeTags","controllers/app/mergeTagBox","controllers/app/itemSettingFill","controllers/app/confirmPublish","controllers/app/rte","controllers/app/settingFieldSelect","controllers/app/settingFieldList","controllers/app/settingHTML","controllers/app/settingColor","controllers/app/changeMenu","controllers/app/mobile","controllers/app/notices","controllers/app/unloadCheck","controllers/app/formContentFilters","controllers/app/formContentGutterFilters","controllers/app/cloneCollectionDeep","controllers/app/trackKeyDown","controllers/app/perfectScroll","controllers/app/getNewSettingGroupCollection","controllers/app/settingMedia","controllers/app/publicLink","controllers/fields/types","controllers/fields/fieldTypeDrag","controllers/fields/stagingDrag","controllers/fields/staging","controllers/fields/stagingSortable","controllers/fields/filterTypes","controllers/fields/sortable","controllers/fields/data","controllers/app/optionRepeater","controllers/app/imageOptionRepeater","controllers/fields/editActive","controllers/fields/fieldSettings","controllers/fields/fieldCreditCard","controllers/fields/fieldList","controllers/fields/fieldPassword","controllers/fields/fieldQuantity","controllers/fields/fieldShipping","controllers/fields/key","controllers/fields/notices","controllers/fields/mobile","controllers/fields/savedFields","controllers/fields/fieldDatepicker","controllers/fields/fieldDisplayCalc","controllers/fields/fieldRepeater","controllers/actions/types","controllers/actions/data","controllers/actions/actionSettings","controllers/actions/editActive","controllers/actions/emailFromSetting","controllers/actions/addActionTypes","controllers/actions/typeDrag","controllers/actions/droppable","controllers/actions/filterTypes","controllers/actions/newsletterList","controllers/actions/deleteFieldListener","controllers/actions/collectPaymentFields","controllers/actions/collectPaymentCalculations","controllers/actions/collectPaymentFixed","controllers/actions/collectPayment","controllers/actions/save","controllers/advanced/types","controllers/advanced/data","controllers/advanced/formSettings","controllers/advanced/editActive","controllers/advanced/clickEdit","controllers/advanced/calculations"],(function(e,t,n,i,r,a,l,s,o,c,d,h,u,p,g,f,m,y,v,w,b,C,j,k,M,T,F,S,x,Q,_,q,D,A,O,E,L,R,V,N,z,B,H,I,P,G,$,K,W,U,J,Y,Z,X,ee,te,ne,ie,re,ae,le,se,oe,ce,de,he,ue,pe,ge,fe,me,ye,ve,we,be,Ce,je,ke,Me,Te,Fe,Se,xe,Qe,_e,qe,De,Ae,Oe,Ee,Le,Re,Ve,Ne){return Marionette.Object.extend({initialize:function(){new z,new B,new f,new e,new t,new n,new i,new a,new o,new c,new d,new h,new u,new p,new m,new y,new v,new F,new _,new q,new D,new A,new O,new E,new $,new L,new R,new V,new N,new l,new H,new I,new P,new G,new K,new C,new ne,new ie,new W,new U,new J,new Y,new Z,new X,new ee,new b,new j,new k,new M,new T,new w,new re,new ae,new le,new se,new oe,new ce,new de,new he,new ue,new pe,new ge,new fe,new me,new ye,new Se,new xe,new _e,new De,new Ae,new ve,new we,new be,new Ce,new je,new ke,new Me,new Te,new Fe,new Qe,new qe,new Oe,new Le,new Ne,new Ee,new Re,new Ve,new r,new te,new s,new S,new x,new Q}})})),n("views/fields/mainContentEmpty",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-main-content-fields-empty",onBeforeDestroy:function(){jQuery(this.el).parent().removeClass("nf-fields-empty-droppable").droppable("destroy")},onRender:function(){this.$el=this.$el.children(),this.$el.unwrap(),this.setElement(this.$el)},onShow:function(){jQuery(this.el).parent().hasClass("ui-sortable")&&jQuery(this.el).parent().sortable("destroy"),jQuery(this.el).parent().addClass("nf-fields-empty-droppable"),jQuery(this.el).parent().droppable({accept:function(e){if(jQuery(e).hasClass("nf-stage")||jQuery(e).hasClass("nf-field-type-button"))return!0},activeClass:"nf-droppable-active",hoverClass:"nf-droppable-hover",tolerance:"pointer",over:function(e,t){t.item=t.draggable,i.channel("app").request("over:fieldsSortable",t)},out:function(e,t){t.item=t.draggable,i.channel("app").request("out:fieldsSortable",t)},drop:function(e,t){t.item=t.draggable,i.channel("app").request("receive:fieldsSortable",t);var n=i.channel("fields").request("get:collection");n.trigger("reset",n)}})}})})),n("views/app/formTitle",[],(function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-header-form-title",initialize:function(){this.model.on("change:title",this.render,this)},templateHelpers:function(){return{renderTitle:function(){var e=i.channel("app").request("get:formModel");return _.escape(e.get("settings").get("title"))}}}})})),n("views/loadViews",["views/fields/fieldItem","views/fields/mainContentEmpty","views/app/formTitle"],(function(e,t,n){return Marionette.Object.extend({initialize:function(){i.channel("views").reply("get:fieldItem",this.getFieldItem),i.channel("views").reply("get:mainContentEmpty",this.getMainContentEmpty),i.channel("views").reply("get:formTitle",this.getFormTitle)},getFieldItem:function(t){return e},getMainContentEmpty:function(){return t},getFormTitle:function(){return n}})}));var i=Backbone.Radio;jQuery(document).ready((function(e){t(["views/app/builder","controllers/loadControllers","views/loadViews"],(function(t,n,r){(new(Marionette.Application.extend({initialize:function(e){var t=this;Marionette.Renderer.render=function(e,n){return(e=t.template(e))(n)},i.channel("app").trigger("before:loadControllers",this);new n;i.channel("app").trigger("after:loadControllers",this),i.channel("app").trigger("before:loadViews",this);new r;i.channel("app").trigger("after:loadViews",this),i.channel("app").reply("get:template",this.template)},onStart:function(){new t;i.channel("app").trigger("after:appStart",this),0==nfAdmin.formID&&i.channel("app").request("open:drawer","addField")},template:function(t){return _.template(e(t).html(),{evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g,variable:"data"})}}))).start()}))})),n("main",(function(){}))}();
2
  //# sourceMappingURL=builder.js.map
assets/js/min/builder.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../config-wrap-start-default.js","../lib/almond.js","views/app/menuItem.js","views/app/menu.js","views/app/menuButtons.js","views/app/mobileMenuButton.js","views/app/header.js","views/app/subHeader.js","views/app/builderHeader.js","views/app/main.js","views/app/mobileMenuItem.js","views/app/mobileMenu.js","views/app/drawer/contentEmpty.js","views/app/drawer.js","views/app/drawer/mergeTagItem.js","views/app/drawer/mergeTagsSection.js","models/app/mergeTagModel.js","models/app/mergeTagCollection.js","views/app/drawer/mergeTagsContent.js","views/app/builder.js","controllers/app/remote.js","controllers/app/drawer.js","views/app/drawer/headerDefault.js","views/app/drawer/footerDefault.js","models/app/drawerModel.js","models/app/drawerCollection.js","views/fields/drawer/stagedField.js","views/fields/drawer/stagingEmpty.js","views/fields/drawer/stagingCollection.js","models/fields/stagingModel.js","models/fields/stagingCollection.js","views/fields/drawer/typeSection.js","views/fields/drawer/typeSectionCollection.js","views/fields/drawer/addField.js","views/app/drawer/itemSettingCollection.js","views/app/drawer/itemSettingGroup.js","views/app/drawer/itemSettingGroupCollection.js","views/app/drawer/editSettings.js","views/app/drawer/headerEditSettings.js","views/actions/drawer/typeButton.js","views/actions/drawer/typeCollection.js","models/app/settingModel.js","models/app/settingCollection.js","models/app/settingGroupModel.js","models/app/settingGroupCollection.js","models/app/typeModel.js","models/app/typeCollection.js","views/actions/drawer/addAction.js","views/app/drawer/contentViewChangesItem.js","views/app/drawer/contentViewChanges.js","views/app/drawer/headerViewChanges.js","views/app/drawer/settingError.js","views/app/drawer/itemSetting.js","views/app/drawer/contentPublicLink.js","views/app/drawer/headerPublicLink.js","views/app/drawer/contentNewForm.js","views/app/drawer/headerNewForm.js","controllers/app/drawerConfig.js","views/app/drawer/defaultSettingsTitle.js","views/app/empty.js","models/app/domainModel.js","models/app/domainCollection.js","views/fields/subHeader.js","views/fields/mainContentFieldCollection.js","views/fields/drawer/addSavedField.js","views/fields/drawer/settingsTitle.js","views/actions/mainHeader.js","views/actions/subHeader.js","views/app/itemControls.js","views/actions/actionItem.js","views/actions/mainContentEmpty.js","views/actions/mainContent.js","views/advanced/mainHeader.js","views/advanced/subHeader.js","views/advanced/settingItem.js","views/advanced/mainContent.js","models/fields/fieldModel.js","models/fields/fieldCollection.js","controllers/app/domainConfig.js","models/app/appModel.js","controllers/app/data.js","controllers/app/drawerToggleSettingGroup.js","controllers/app/updateDB.js","models/app/formModel.js","controllers/app/formData.js","controllers/app/previewLink.js","controllers/app/menuButtons.js","models/app/changeModel.js","models/app/changeCollection.js","controllers/app/trackChanges.js","controllers/app/undoChanges.js","controllers/app/publishResponse.js","controllers/app/changeDomain.js","controllers/app/pushstate.js","controllers/app/hotkeys.js","controllers/app/cleanState.js","controllers/app/coreUndo.js","controllers/app/cloneModelDeep.js","controllers/app/getSettingChildView.js","controllers/app/changeSettingDefault.js","views/app/drawer/typeSettingFieldset.js","controllers/app/fieldset.js","controllers/app/toggleSetting.js","controllers/app/buttonToggleSetting.js","controllers/app/numberSetting.js","controllers/app/radioSetting.js","controllers/app/itemControls.js","controllers/app/mergeTags.js","models/app/mergeTagLookupCollection.js","views/app/drawer/mergeTag.js","views/app/drawer/mergeTagList.js","views/app/drawer/mergeTagGroup.js","views/app/drawer/mergeTagGroupList.js","views/app/drawer/mergeTagFilter.js","views/app/drawer/mergeTagBox.js","controllers/app/mergeTagBox.js","controllers/app/itemSettingFill.js","controllers/app/confirmPublish.js","controllers/app/rte.js","controllers/app/settingFieldSelect.js","controllers/app/settingFieldList.js","controllers/app/settingHTML.js","controllers/app/settingColor.js","controllers/app/changeMenu.js","controllers/app/mobile.js","controllers/app/notices.js","controllers/app/unloadCheck.js","controllers/app/formContentFilters.js","controllers/app/formContentGutterFilters.js","controllers/app/cloneCollectionDeep.js","controllers/app/trackKeyDown.js","controllers/app/perfectScroll.js","controllers/app/getNewSettingGroupCollection.js","controllers/app/settingMedia.js","controllers/app/publicLink.js","models/fields/typeSectionModel.js","models/fields/typeSectionCollection.js","controllers/fields/types.js","controllers/fields/fieldTypeDrag.js","controllers/fields/stagingDrag.js","controllers/fields/staging.js","controllers/fields/stagingSortable.js","controllers/fields/filterTypes.js","views/fields/preview/element.js","views/fields/preview/repeaterElementEmpty.js","views/fields/preview/repeaterElementCollection.js","views/fields/preview/repeaterElementLayout.js","views/fields/preview/label.js","views/fields/fieldItem.js","controllers/fields/sortable.js","controllers/fields/data.js","models/app/optionRepeaterModel.js","models/app/optionRepeaterCollection.js","views/app/drawer/optionRepeaterError.js","views/app/drawer/optionRepeaterOption.js","views/app/drawer/optionRepeaterEmpty.js","views/app/drawer/optionRepeaterComposite.js","controllers/app/optionRepeater.js","views/app/drawer/imageOptionRepeaterOption.js","views/app/drawer/imageOptionRepeaterComposite.js","controllers/app/imageOptionRepeater.js","controllers/fields/editActive.js","controllers/fields/fieldSettings.js","controllers/fields/fieldCreditCard.js","controllers/fields/fieldList.js","controllers/fields/fieldPassword.js","controllers/fields/fieldQuantity.js","controllers/fields/fieldShipping.js","controllers/fields/key.js","controllers/fields/notices.js","controllers/fields/mobile.js","controllers/fields/savedFields.js","controllers/fields/fieldDatepicker.js","controllers/fields/fieldDisplayCalc.js","controllers/fields/fieldRepeater.js","controllers/actions/types.js","models/actions/actionModel.js","models/actions/actionCollection.js","controllers/actions/data.js","controllers/actions/actionSettings.js","controllers/actions/editActive.js","controllers/actions/emailFromSetting.js","controllers/actions/addActionTypes.js","controllers/actions/typeDrag.js","controllers/actions/droppable.js","models/actions/typeModel.js","models/actions/typeCollection.js","controllers/actions/filterTypes.js","controllers/actions/newsletterList.js","controllers/actions/deleteFieldListener.js","controllers/actions/collectPaymentFields.js","controllers/actions/collectPaymentCalculations.js","controllers/actions/collectPaymentFixed.js","controllers/actions/collectPayment.js","controllers/actions/save.js","controllers/advanced/types.js","models/advanced/settingsModel.js","controllers/advanced/data.js","controllers/advanced/formSettings.js","controllers/advanced/editActive.js","controllers/advanced/clickEdit.js","controllers/advanced/calculations.js","controllers/loadControllers.js","views/fields/mainContentEmpty.js","views/app/formTitle.js","views/loadViews.js","main.js"],"names":["requirejs","require","define","undef","main","req","makeMap","handlers","defined","waiting","config","defining","hasOwn","Object","prototype","hasOwnProperty","aps","slice","jsSuffixRegExp","hasProp","obj","prop","call","normalize","name","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","i","j","part","baseParts","split","map","starMap","charAt","length","nodeIdCompat","test","replace","concat","splice","join","indexOf","substring","makeRequire","relName","forceSync","args","arguments","push","apply","makeLoad","depName","value","callDep","Error","splitPrefix","prefix","index","makeConfig","plugin","parts","makeNormalize","f","n","pr","p","exports","e","module","id","uri","deps","callback","cjsModule","ret","usingExports","callbackType","load","undefined","alt","setTimeout","cfg","_defined","amd","jQuery","Marionette","ItemView","extend","tagName","template","initialize","this","listenTo","nfRadio","channel","render","model","on","onRender","$el","children","unwrap","setElement","events","clickAppMenu","trigger","templateHelpers","renderDashicons","dashicons","icon","document","createElement","classList","add","outerHTML","renderClasses","classes","request","get","renderUrl","url","formModel","renderTarget","renderDisabled","disabled","appMenuItemView","CollectionView","childView","onShow","el","find","bounceIcon","that","renderPublish","publishWidth","maybeDisabled","maybeRenderCancel","renderPublicLink","Backbone","Radio","isNaN","publicLink","clickPublish","clickViewChanges","clickPublicLink","changeModel","effect","times","clickMobileMenu","builderEl","toggleClass","appMenuCollectionView","appMenuButtonsView","mobileMenuButtonView","LayoutView","regions","menu","buttons","mobileMenuButton","appDomainCollection","show","collection","clickLogo","appHeaderView","appSubHeaderView","app","formTitle","appSub","changeSubHeader","formSettings","formTitleView","currentDomain","subHeaderView","className","maybeDone","offsetRight","offsetLeft","gutterLeft","body","gutterRight","reply","getMainEl","window","context","resizeBothGutters","setBothGuttersAbsolute","setBothGuttersFixed","updateGutters","bodyView","gutterLeftView","gutterRightView","parent","onAttach","initialGutterResize","onBeforeDestroy","off","resize","resizeGutter","data","leftEl","rightEl","clearTimeout","top","offset","height","topLeft","leftLeft","left","css","position","topRight","leftRight","scrollTop","right","mobileDashicon","mobileMenuItemView","CompositeView","attachHtml","collectionView","append","drawerEmptyView","header","content","footer","getEl","loadContent","emptyContent","perfectScrollbar","drawerID","drawer","contentView","headerView","footerView","empty","clickToggleDrawer","clickTag","active","mergeTagItemView","updateFields","fieldCollection","set","Model","defaults","exclude","mergeTagModel","Collection","mergeTagsSectionView","MergeTagCollection","getMergeTagsView","reRender","settingModel","mergeTagCollection","defaultGroups","where","default_group","calcMergeTagGroup","useMergeTags","_","each","remove","include","models","sectionModel","mainView","mobileMenuView","drawerView","mergeTagsContentView","menuDrawer","mergeTagsContent","getBuilderEl","getBuilderView","mergeTagsClone","clone","openDrawer","closeDrawer","changeDomain","addListener","dataModel","listen","updateSetting","clickExtra","getRemote","settingView","srcElement","addClass","remote","parentValue","action","security","nfAdmin","ajaxNonce","post","ajaxurl","response","JSON","parse","options","clickOpenDrawer","toggleDrawerSize","getClosedDrawerPos","preventClose","enableClose","maybePreventClose","objPreventClose","filterFocused","currentDrawer","removeClass","rightClosed","drawerEl","checkCloseDrawerPos","setInterval","clearInterval","target","currentDomainID","hasFocus","checkOpenDrawerPos","focusFilter","filterEl","focus","width","keys","key","getPreventClose","clearFilter","blurFilter","changeFilter","maybeChangeFilter","keyCode","addObject","trim","val","blur","getFocus","drawerDisabled","defaultHeaderView","defaultFooterView","getHeaderView","getFooterView","drawerModel","removeStagedField","stagedFieldView","stagedFieldsEmptyView","emptyView","activeClass","getStagedFieldsEl","sortable","placeholder","helper","tolerance","over","ui","out","receive","update","start","stop","draggable","opacity","connectToSortable","appendTo","refreshPositions","grid","element","onAddChild","onRemoveChild","hasStagedFields","stagingModel","comparator","bindAll","getTypeSection","dragging","drag","disableSelection","clickFieldType","mousedownFieldType","maybeClickFieldType","renderFieldTypes","html","fieldTypes","type","nicename","templateHTML","renderType","savedField","htmlFragments","createRange","createContextualFragment","appendChild","innerHTML","fieldTypeSectionView","drawerStagingView","StagingCollection","fieldTypeSectionCollectionView","staging","primary","secondary","filterFieldTypes","removeFieldTypeFilter","savedCollection","primaryCollection","fieldTypeSectionCollection","secondaryCollection","stagingCollection","filteredSectionCollection","reset","childViewOptions","getChildView","itemSettingCollectionView","settings","devMode","visibleSettings","setting","style","display","hide","clickToggleGroup","renderLabel","label","groupLabel","renderArrowDir","itemSettingGroupView","itemSettingGroupCollectionView","settingTitle","settingGroups","groupCollection","titleView","maybeRenderTitle","title","renderTypeNicename","domainID","scroll","clickAddAction","modalContent","jBox","zIndex","closeButton","overlay","repositionOnOpen","reposition","open","image","section","renderStyle","actionTypeButtonView","hasContents","renderNicename","slug","hide_merge_tags","error","maybePreventUI","objectType","updateKey","keyModel","SettingCollection","settingGroupModel","SettingGroupCollection","typeModel","option","actionTypeCollectionView","actionTypeCollection","payments","marketing","management","workflow","notifications","misc","filteractionTypes","removeactionTypeFilter","installedActions","availableActions","updateAvailableActionGroups","paymentsCollection","marketingCollection","managementCollection","workflowCollection","notificationsCollection","miscCollection","filteredInstalled","filteredAvailable","group","nfi18n","paymentsActionNicename","marketingActionNicename","managementActionNicename","workflowActionNicename","notificationsActionNicename","miscActionNicename","undoSingle","viewChangesItem","clickUndoChanges","settingErrorView","renderError","renderWarning","dep","match","labelText","updateIcon","updateLink","labelWrapper","refresh","createTextNode","drawerOpened","drawerClosed","unescape","silent","onBeforeRender","escape","next","maxWidth","theme","closeOnClick","mask","input","attr","autoNumeric","aSep","thousandsSeparator","aDec","decimalPoint","currency","currencySymbol","currencySymbols","aSign","text","format","console","log","renderVisible","renderSetting","renderLabelClasses","use_merge_tags","renderTooltip","help","helpText","helpTextContainer","helpIcon","helpIconLink","setAttribute","helpTextWrapper","renderEmailFieldOptions","fields","initialOption","select","field","emptyContainer","renderMergeTags","renderMinMax","minMaxStr","min_val","isNumeric","max_val","step","renderMinMaxHelper","minMaxHelperStr","minVal","maxVal","changeSetting","endsWith","regexp","search","unset","foundIndex","foundChar","keyUpSetting","clickSetting","itemSettingView","embedForm","enablePublicLink","copyPublicLink","formSettingsDataModel","allowPublicLinkSettingModel","embedFormSettingModel","public_link_key","publicLinkStructure","publicLinkSettingModel","copyFormEmbedHandler","getElementById","execCommand","copyPublicLinkHandler","confirmResetPublicLinkHandler","parentNode","node","contains","resetPublicLinkHandler","cancelResetPublicLinkHandler","formName","formSubmit","titleSettingModel","addSubmitSettingModel","findWhere","drawerCollection","addFieldView","editSettingsView","editSettingsHeaderView","addActionView","viewChangesView","viewChangesHeaderView","publicLinkView","publicLinkHeaderView","newFormView","newFormHeaderView","mobileItemControlsView","getContentView","view","getDrawerCollection","getDrawer","DefaultSettingsTitleView","EmptyView","hotkeys","getSettingsTitleView","getDefaultSettingsTitleView","getGutterLeftView","getGutterRightView","domainModel","reorderOnSort","getEmptyView","getSortableEl","initSortable","destroySortable","containment","cancel","scrollSensitivity","item","dropping","hasClass","renderAddButton","button","clickAddSavedField","addSavedFieldView","renderjBoxContent","addSaved","addSavedjBox","destroy","x","y","outside","onCreated","setContent","attach","displayName","saved","renderSavedStar","star","actionCollection","clickEdit","singleTapEdit","clickDelete","clickDuplicateField","mouseoverItemControl","itemControlsView","itemControls","maybeDeactivate","click","maybeClickEdit","changeToggle","renderToggle","settingName","actionLabel","actionView","droppable","accept","hoverClass","drop","updateActiveClass","editActive","settingItem","objectDomain","order","idAttribute","fieldType","parentType","listimageGet","listimageSet","updateFieldKey","attributes","changedAttributes","formatLabel","fieldModel","parseInt","tmpNum","addField","removeField","addNewField","appendNewField","removeFieldResponse","newIDs","removedIDs","at","fieldExists","fieldsSubHeaderView","FieldsMainContentFieldCollectionView","fieldsSettingsTitleView","actionsMainHeaderView","actionsSubHeaderView","actionsMainContentView","settingsMainHeaderView","settingsSubHeaderView","settingsMainContentView","FieldCollection","defaultFormContentView","defaultFormContentLoad","defaultFormContentGutterView","domainFormFields","Esc","up","down","getSubHeaderView","getMainContentView","formContentData","formContentLoadFilters","sortedArray","without","first","formContentViewFilters","formContentView","gutterFilters","gutterView","domainActions","domainAdvanced","previewurl","getDomainCollection","getDomainModel","fieldModels","loading","changeStatus","appModel","clean","mobile","isMobile","getData","getSetting","getCurrentDomain","getCurrentDrawer","updateCurrentDomain","updateCurrentDrawer","checkDeps","deps_settings","currentDrawerID","toggleSettingGroup","errors","updateDB","defaultSaveFilter","jsAction","formContentSaveDataFilters","formData","stringify","parent_id","deleted_fields","actions","deleted_actions","autoClose","chunk_size","data_chunks","RegExp","saveChunkedForm","responseData","form","handleFinalResponse","fail","xhr","status","handleFinalFailure","chunks","currentChunk","formId","new_publish","total_chunks","postObj","batch_type","chunk_total","chunk_current","chunk","form_id","batchNonce","then","res","last_request","batch_complete","requesting","exception","alert","pluck","preloadedFormData","getFormModel","disablePreview","enablePreview","changePreviewNicename","publish","viewChanges","changeCollection","cid","ChangeModel","registerChange","getCollection","maybeResetCollection","changes","dashicon","undoChanges","sort","change","dispatchClick","undoAll","cookie","includes","d","Date","setTime","getTime","expires","toUTCString","cname","publishResponse","new_ids","newID","oldID","forms","history","replaceState","changeAppDomain","preventChange","enableChange","objPreventChange","maybePreventChange","mainEl","changePushState","pushState","location","href","newUrl","toString","changeHotkeys","addNewAction","changeDomainFields","changeDomainActions","changeDomainSettings","hotkey","msg","fieldsDomain","actionsDomain","settingsDomain","ignoreAttributes","setAppClean","undoChangeSetting","undoAddObject","undoRemoveObject","undoDuplicateObject","undoSortFields","undoAddListOption","undoRemoveListOption","undoSortListOptions","before","maybeRemoveChange","objectModel","results","objectCollection","objModels","cloneModelDeep","clonedCollection","newModel","getSettingChildView","after","object","fieldsetView","settingCollection","createSettingsCollection","settingTypeModel","deleting","maybeDelete","clickDuplicate","modelID","toLowerCase","inArray","formID","fieldKey","fieldID","done","Array","isArray","forEach","field_has_data","doDeleteFieldModal","modalData","closeOnEsc","fieldDataDeleteMsg","btnPrimary","delete","deleteModal","toggleModal","btnSecondary","NinjaModal","tmpID","tagSectionCollection","mergeTags","tagSection","tags","fieldTags","tag","getFieldKeyFormat","calcTags","calcCollection","calcModel","currentElement","clickMergeTag","addFieldTags","deleteFieldTags","updateCalcTags","updateCurrentElement","updateCurrentSetting","getSectionModel","updateID","replaceFieldKey","initMergeTags","mergeTagsView","jBoxes","maxHeight","onOpen","prev","onClose","tagModel","currentValue","newPos","currentPos","caret","substr","summernote","calcTag","getFieldKeyFormatCalc","optionModel","calc","openMergeTags","returnMergeTags","preventDefault","currentModel","upMergeTags","changeActiveTag","downMergeTags","dir","inc","currentIndex","nextModel","userInfo","system","updateOpen","targetTag","oldTag","fieldMergeTag","newKey","oldKey","_previousAttributes","oldVal","oldCalcKey","newCalcKey","re","newVal","insertTag","mergeTagView","sectionFilter","searchFilter","filter","child","fieldsToRemove","excludeFromCalcs","term","blacklist","updateActive","onClick","updateTags","setActive","siblings","mergeTagGroupView","updateFilter","event","firstFilteredTag","sections","MergeTagModel","MergeTagLookupCollection","MergeTagView","MergeTagListView","MergeTagGroupView","MergeTagGroupListView","MergeTagFilterView","MergeTagBoxLayout","old","mergeTagsButtonClick","afterAppStart","beforeRenderSetting","beforeDrawerClose","bind","selector","focusCallback","keyupCallback","closest","layout","tagCollection","mergeTagListView","mergeTagGroupListView","getRegion","rteEditor","posY","outerHeight","tagBoxY","windowHeight","innerHeight","tagBoxHeight","boxHeight","repeaterRow","scrollLeft","posX","$input","str","caretPos","patt","exec","string","childNode","childNodes","nodeValue","range","sel","getSelection","setStart","err","collapse","removeAllRanges","addRange","$this","$inputSetting","autocomplete","$overlayElement","dataID","so","mergetags","mergetag","confirmPublish","initSettingModel","destroySetting","meta_image_frame","icons","align","alignCenter","alignJustify","alignLeft","alignRight","indent","outdent","bold","close","code","eraser","italic","link","unlink","magic","minus","orderedlist","redo","square","table","underline","undo","unorderedlist","currentContext","initRTE","toolbar","linkButton","mediaButton","codemirror","lineNumbers","lineWrapping","callbacks","onBlur","editor","getValue","updateDataModel","prettifyHtml","onFocus","onKeydown","onKeyup","linkMenu","replaceWith","class","removeRTE","linkDropdown","buttonGroup","contents","tooltip","clickLinkButton","toggle","dropdown","mergeTagsButton","openMediaManager","invoke","wp","media","frames","media_attachment","state","toJSON","insertMedia","textEl","urlEl","isNewWindowEl","isNewWindow","filename","trackKeyChanges","beforeRender","maybeSwitchToFieldsDomain","autoOpenDrawer","filterDrawerContents","SwitchToFieldsDomain","updateFieldMap","fieldFilter","bail","fieldTypeModel","rubble","filterDrawer","switchDomain","fieldDomainModel","fieldListSettings","registerFieldListSettings","updateFieldListSettingKeys","changed","actionModel","lastChanged","oldValue","init","changedSettingValue","setRenderFalse","closeColorPickers","initColorPicker","wpColorPicker","color","editFormText","changeMenu","formPublish","isNewForm","highlightAddNew","appendEditForm","editFormLinkText","editFormLink","editFormListItem","closeMobileMenu","addNotice","closeNotice","notices","appDefaults","constructOnInit","stack","animation","openNotice","maybePrompt","viewFilters","saveFilters","loadFilters","addViewFilter","addSaveFilter","addLoadFilter","getViewFilters","getSaveFilters","getLoadFilters","priority","leftFilters","rightFilters","addLeftFilter","addRightFilter","getLeftFilters","getRightFilters","cloneCollectionDeep","constructor","keyDown","keyUp","getKeyDown","movedPos","initPerfectScroll","moveRail","resetRail","suppressScrollX","outerWidth","getNewSettingGroupCollection","validatePublicLink","newPublicLinkKey","Math","random","typeSectionModel","TypeCollection","SectionCollection","fieldTypeSections","registerSection","fieldTypeData","getFieldType","getTypeCollection","getTypeSections","getSavedFields","shiftKey","startDrag","stopDrag","getCurrentDraggableHelperClone","setProperty","draggableHelperClone","stagedFields","num","addStagedField","getStagingCollection","sortStagedFields","clearStagedFields","beforeCloseDrawer","now","tmpField","sortableEl","pos","receiveStagedFields","overStagedFields","outStagedFields","startStagedFields","stopStagedFields","addActiveClass","stagedFieldsEl","removeActiveClass","currentHelper","helperClone","filtered","filterCollection","hiddenFields","found","alias","convertDateFormat","dateFormat","moment","renderPlaceholder","disable_input","maybeRequired","maybeInputLimit","maybeDisableAutocomplete","maybeChecked","default_value","renderOptions","taxonomy","taxonomyTerms","typeData","settingGroup","enabledTaxonomyTerms","attribute","reduce","enabledTaxonomyTerm","terms","checked","defaultValue","default","defaultOption","optionLabel","renderOtherAttributes","multi_size","renderProduct","renderNumberDefault","renderCurrencyFormatting","renderRatings","ratingOutput","number_of_stars","renderHourOptions","hours","hours_24","renderMinuteOptions","minute_increment","maybeRenderAMPM","maybeRenderTime","date_mode","repeaterFieldModel","emptyViewOptions","getRepeaterFieldsCollection","droppedFieldID","droppedFieldModel","previewRepeaterElementCollectionView","maybeRenderHelp","previewElementView","previewRepeaterElementView","previewLabelView","doingShortcut","previewLabel","previewElement","isFieldTypeTemplateAvailable","itemView","touch","ClassyWiggle","degrees","delay","renderRequired","required","getFieldID","renderIcon","labelPosition","label_pos","renderDescriptionText","desc_text","mousedown","singletap","swipeleft","swiperight","tapend","maybeShortcut","maybeTapEdit","swipeLeft","startEvnt","swipeRight","FieldModel","FieldItemView","receiveFieldsSortable","overfieldsSortable","outFieldsSortable","stopFieldsSortable","startFieldsSortable","updateFieldsSortable","receiveRepeaterField","insertedAt","fieldTypeEl","newHelper","$parentHelper","dragFieldID","dragModel","oldPos","String","adding","removing","getFieldCollection","getField","redrawFieldCollection","getTmpFieldID","deleteField","sortFields","getAdding","setAdding","getRemoving","setRemoving","renderTrigger","savedType","updateFieldSetting","max_options","changeErrors","size","errorsFound","opt","listOptionModel","addOption","renderErrors","ErrorView","columns","parentView","hasErrors","keyup","changeOption","deleteOption","keyupOption","maybeAddOption","findByIndex","getColumns","renderFieldSelect","bottom","renderNonSaveFieldSelect","removeFieldsLookup","column","optionNode","innerText","listOptionView","listEmptyView","listOptionCollection","optionCollection","maybeHideNew","handle","forcePlaceholderSize","setupTooltip","importLink","clickImport","renderHeaders","beforeColumns","afterColumns","valueChars","col","headerText","headerContainer","renderFieldsetClasses","currency_symbol","limit","clickAddOption","textarea","trimLeft","trimRight","lines","line","row","slugify","separator","listCompositeView","updateOptionSortable","stopOptionSortable","startOptionSortable","convertSettings","optionView","triggerDataModel","modelData","new","newOrder","optionContainerDiv","valueEl","imageIdEl","labelEl","img_container","$imgs","new_img","src","image_id","clearEditActive","fieldSettings","getSettingModel","getSettingCollection","dropCreditCardField","newField","stageCreditCardField","ListOptionCollection","updateOptionLabel","updateOptionValue","convertOptions","insertField","productFields","getProductFields","addMask","newFieldKey","updateLabel","valueOf","setError","keyExists","testKey","startWiggle","stopWiggle","initWiggle","updateField","modified","fieldData","created_at","newType","newTypeDefaults","settingDefaults","addDatepicker","datePickerSettings","filteredDatePickerSettings","dateObject","flatpickr","setupCollection","addChildField","receiveFields","getChildField","processStagedFields","sortRepeaterField","overRepeaterField","outRepeaterField","stopRepeaterField","startRepeaterField","updateRepeaterField","maybeDeleteField","elId","repeaterField","sortableElArray","childFieldID","parentFieldModel","childFieldModel","parentID","actionTypeData","installed","available","getType","getInstalledActions","getAvailableActions","actionType","addAction","removeAction","getAction","getTmpID","deleteAction","actionSettings","updateFromAddress","isValidEmail","home_url_host","errorInvalidEmailFromAddress","email","dropActionType","type_slug","actionTypeModel","typeCollection","filterActionTypes","newInstalled","newAvailable","defaultFields","clickListUpdate","maybeRenderFields","maybeRenderGroups","registerFieldsListener","registerGroupsListener","updateFieldMapping","updateInterestGroups","updateLists","lists","always","selectedList","list","groups","registerListener","maybeUpdateSettings","isString","isObject","mapObject","filteredCollection","every","getFields","field_key","returnFields","sortBy","calcModels","calcs","getCalcs","returnCalcs","isEmpty","initCollectPayment","maybeClearTotal","maybeUpdateTotal","maybeError","oldName","initSave","checkFieldAdded","checkFieldDeleted","newFieldModel","formSettingTypeData","calculations","settingsModel","getSettings","updateCalc","sortCalc","checkName","checkEQ","checkDec","checkAllCalcs","nameExists","eq","errorSelfRef","errorFutureCalc","targetCalc","selfRef","futureCalc","dec","errorNonIntDec","abs","nonIntDec","Remote","Drawer","DrawerConfig","DomainConfig","AppData","DrawerToggleSettingGroup","UpdateDB","FormData","PreviewLink","AppMenuButtons","AppTrackChanges","AppUndoChanges","AppPublishResponse","AppChangeDomain","Pushstate","Hotkeys","CleanState","CoreUndo","CloneModelDeep","DrawerSettingChildView","ChangeSettingDefault","Fieldset","ToggleSetting","ButtonToggleSetting","NumberSetting","RadioSetting","ItemControls","MergeTags","MergeTagsBox","ItemSettingFill","ConfirmPublish","RTE","SettingFieldSelect","SettingFieldList","SettingHTML","SettingColor","ChangeMenu","AppMobile","AppNotices","AppUnloadCheck","FormContentFilters","FormContentGutterFilters","CloneCollectionDeep","TrackKeyDown","PerfectScroll","GetNewSettingGroupCollection","SettingMedia","PublicLink","FieldTypes","FieldTypeDrag","FieldStagingDrag","StagedFieldsData","StagedFieldsSortable","DrawerFilterFieldTypes","MainContentFieldsSortable","FieldData","OptionRepeater","imageOptionRepeater","FieldsEditActive","FieldSettings","FieldCreditCard","FieldList","FieldPassword","FieldQuantity","FieldShipping","FieldKey","Notices","FieldsMobile","SavedFields","FieldDatepicker","FieldDisplayCalc","FieldRepeater","ActionTypes","ActionData","ActionSettings","ActionEditActive","ActionEmailFromSetting","ActionAddTypes","ActionTypeDrag","ActionDroppable","ActionFilterTypes","ActionNewsletterList","ActionDeleteFieldListener","ActionCollectPaymentFields","ActionCollectPaymentCalculations","ActionCollectPaymentFixed","ActionCollectPayment","ActionSave","SettingTypes","SettingData","FormSettings","SettingsEditActive","SettingsClickEdit","AdvancedCalculations","renderTitle","fieldItemView","mainContentEmptyView","FormTitleView","getFieldItem","getMainContentEmpty","getFormTitle","ready","$","BuilderView","LoadControllers","LoadViews","Application","Renderer","onStart","evaluate","interpolate","variable"],"mappings":"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CACA,uCACA,2BACA,gCACA,sCACA,gCACA,+BACA,+BACA,4BACA,8BACA,kCACA,iCACA,sBACA,qCACA,mCACA,8BACA,+BACA,6BACA,yBACA,0BACA,8BACA,qCACA,2CACA,sCACA,+BACA,gCACA,+CACA,+BACA,6BAIA,2BACA,mCACA,iCACA,6BACA,qCACA,iCACA,8BACA,0BACA,iCACA,sCACA,gCACA,mCACA,qCACA,+BACA,mCACA,mCACA,mCACA,yBACA,6BACA,4BACA,iCACA,qCACA,sCACA,mCAKA,4BACA,2BACA,qCACA,iCACA,uCACA,qCACA,+BACA,gCACA,kCACA,qCACA,0CACA,2CACA,iDACA,0CACA,qCACA,2BAKA,6BACA,4BACA,oCACA,kCACA,iCACA,sCAEA,SAIAmhD,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAIAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAIAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAKAC,GACAC,GACAC,GACAC,GACAC,GACAC,IA2HA,OAxHArhD,WAAAhF,OAAAkF,OAAA,CACAG,WAAA,WAIA,IAAA29C,EACA,IAAAC,EACA,IAAA1B,EACA,IAAAf,EACA,IAAAC,EACA,IAAAC,EACA,IAAAC,EACA,IAAAE,EACA,IAAAG,EACA,IAAAC,EACA,IAAAC,EACA,IAAAC,EACA,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","file":"builder.js","sourcesContent":["(function () {\n","/**\n * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/almond for details\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*jslint sloppy: true */\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === \".\") {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // Node .js allowance:\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n //Lop off the last part of baseParts, so that . matches the\n //\"directory\" and not name of the baseName's module. For instance,\n //baseName of \"one/two/three\", maps to \"one/two/three.js\", but we\n //want the directory, \"one/two\" for this normalization.\n name = baseParts.slice(0, baseParts.length - 1).concat(name);\n\n //start trimDots\n for (i = 0; i < name.length; i += 1) {\n part = name[i];\n if (part === \".\") {\n name.splice(i, 1);\n i -= 1;\n } else if (part === \"..\") {\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join(\"/\");\n } else if (name.indexOf('./') === 0) {\n // No baseName, so this is ID is resolved relative\n // to baseUrl, pull off the leading dot.\n name = name.substring(2);\n }\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relName) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relName));\n } else {\n name = normalize(name, relName);\n }\n } else {\n name = normalize(name, relName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relName);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, callback).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\ndefine(\"../lib/almond\", function(){});\n\n","/**\n * Renders an application menu item from a domain model.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/menuItem',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-app-menu-item',\n\n\t\tinitialize: function() {\n\t\t\t// Listen for domain changes and re-render when we detect one.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:currentDomain', this.render );\n\t\t\t// When we change the model (to disable it, for example), re-render.\n\t\t\tthis.model.on( 'change', this.render, this );\n\t\t},\n\n\t\t/**\n\t\t * When we render this view, remove the extra <div> tag created by backbone.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tonRender: function() {\n\t\t\tthis.$el = this.$el.children();\n\t\t\tthis.$el.unwrap();\n\t\t\tthis.setElement( this.$el );\n\t\t},\n\n\t\t// Listen for clicks on our app menu.\n\t\tevents: {\n\t\t\t'click a': 'clickAppMenu'\n\t\t},\n\n\t\t/**\n\t\t * When we click on a menu item, fire a radio event.\n\t\t * This lets us separate the logic from the click event and view.\n\t\t * We pass this.model so that we know what item was clicked.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object\te event\n\t\t * @return return\n\t\t */\n\t\tclickAppMenu: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:menu', e, this.model );\n\t\t},\n\n\t\t/**\n\t\t * These functions are available to templates, and help us to remove logic from template files.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return Object\n\t\t */\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * If we have any dashicons in our model, render them.\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderDashicons: function() {\n\t\t\t\t\tif ( ! this.dashicons ) return '';\n\n\t\t\t\t\tvar icon = document.createElement( 'span' );\n\t\t\t\t\ticon.classList.add( 'dashicons' );\n\t\t\t\t\ticon.classList.add( this.dashicons );\n\n\t\t\t\t\treturn icon.outerHTML;\n\t\t\t\t},\n\t\t\t\t/**\n\t\t\t\t * Render classes for our menu item, including active.\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderClasses: function() {\n\t\t\t\t\tvar classes = this.classes;\n\t\t\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\t\t\tif ( currentDomain.get( 'id' ) == this.id ) {\n\t\t\t\t\t\tclasses += ' active';\n\t\t\t\t\t}\n\t\t\t\t\treturn classes;\n\t\t\t\t},\n\t\t\t\t/**\n\t\t\t\t * If our menu is a link (like preview), render its url.\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderUrl: function() {\n\t\t\t\t\tif ( '' != this.url ) {\n\t\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\t\t\t\t\t\treturn this.url + formModel.get( 'id' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '#';\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t/**\n\t\t\t\t * If our menu is a link (like preview), render its target.\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderTarget: function() {\n\t\t\t\t\tif ( '' != this.url ) {\n\t\t\t\t\t\treturn '_blank';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '_self';\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t/**\n\t\t\t\t * If our menu item is disabled, output 'disabled'\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderDisabled: function() {\n\t\t\t\t\tif ( this.disabled ) {\n\t\t\t\t\t\treturn 'disabled';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn view;\n} );\n\n","/**\n * Collection view that takes our app menu items and renders an individual view for each.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/menu',['views/app/menuItem'], function( appMenuItemView ) {\n\tvar view = Marionette.CollectionView.extend( {\n\t\ttagName: 'div',\n\t\tchildView: appMenuItemView,\n\n\t\t/**\n\t\t * When we show this view, get rid of the extra <div> tag added by backbone.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tonShow: function() {\n\t\t\tjQuery( this.el ).find( 'li:last' ).unwrap();\n\t\t}\n\t} );\n\n\treturn view;\n} );\n","/**\n * Renders the action buttons to the right of the app menu. i.e. Publish\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/menuButtons',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'span',\n\t\ttemplate: '#tmpl-nf-app-header-action-button',\n\n\t\tinitialize: function() {\n\t\t\t// Listen to changes on the app 'clean' state. When it changes, re-render.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:clean', this.render, this );\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:loading', this.render, this );\n\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'response:updateDB', this.bounceIcon, this );\n\t\t},\n\n\t\t/**\n\t\t * These functions are available to templates, and help us to remove logic from template files.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return Object\n\t\t */\n\t\ttemplateHelpers: function () {\n\t\t\tvar that = this;\n\t \treturn {\n\n\t \t\t/**\n\t \t\t * Render our Publish button. If we're loading, render the loading version.\n\t \t\t *\n\t \t\t * @since 3.0\n\t \t\t * @return string\n\t \t\t */\n\t \t\trenderPublish: function() {\n\t \t\t\tif ( that.publishWidth ) {\n\t \t\t\t\tthis.publishWidth = that.publishWidth + 'px';\n\t \t\t\t} else {\n\t \t\t\t\tthis.publishWidth = 'auto';\n\t \t\t\t}\n\n\t \t\t\tif ( nfRadio.channel( 'app' ).request( 'get:setting', 'loading' ) ) {\n\t \t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-add-header-publish-loading' );\n\t \t\t\t} else {\n\t \t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-app-header-publish-button' );\n\t \t\t\t}\n\t \t\t\treturn template( this );\n\t \t\t},\n\n\t \t\t/**\n\t \t\t * If our app state is clean, disable publish.\n\t \t\t * \n\t \t\t * @since 3.0\n\t \t\t * @return string\n\t \t\t */\n\t \t\tmaybeDisabled: function() {\n\t \t\t\tif ( nfRadio.channel( 'app' ).request( 'get:setting', 'clean' ) ) {\n\t \t\t\t\treturn 'disabled';\n\t \t\t\t} else {\n\t \t\t\t\treturn '';\n\t \t\t\t}\n\t \t\t},\n\n\t \t\t/**\n\t \t\t * [DEPRECATED] If our app isn't clean, render our 'viewChanges' button.\n\t \t\t * @since version\n\t \t\t * @return {[type]} [description]\n\t \t\t */\n\t \t\tmaybeRenderCancel: function() {\n\t\t\t\t\treturn '';\n\t\t\t\t},\n\n\t \t\trenderPublicLink: function() {\n\t\t\t\t\t\t// Don't show public link if the form has a temp ID\n\t\t\t\t\t\tvar formModel = Backbone.Radio.channel('app').request('get:formModel');\n\t\t\t\t\t\tif (isNaN(formModel.get('id'))) { return };\n\t\t\t\t\t\t// Otherwise, display normally\n\t \t\t\tvar publicLink = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-app-header-public-link' );\n\t \t\t\t\treturn publicLink( this );\n\t \t\t},\n\t\t\t};\n\t\t},\n\n\t\tonShow: function() {\n\t\t\tvar publishEL = jQuery( this.el ).find( '.publish' );\n\t\t\t// this.publishWidth = jQuery( publishEL ).outerWidth( true );\n\t\t},\n\n\t\t/**\n\t\t * Listen for clicks on the Publish or view changes button.\n\t\t * @type {Object}\n\t\t */\n\t\tevents: {\n\t\t\t'click .publish': 'clickPublish',\n\t\t\t'click .viewChanges': 'clickViewChanges',\n\t\t\t'click .publicLink': 'clickPublicLink',\n\t\t},\n\n\t\t/**\n\t\t * When we click publish, trigger a radio event.\n\t\t * This lets us separate the logic from the click event and view.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object \te event\n\t\t * @return void\n\t\t */\n\t\tclickPublish: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:publish', e );\n\t\t},\n\n\t\t/**\n\t\t * When we click view changes, trigger a radio event.\n\t\t * This lets us separate the logic from the click event and view.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object \te event\n\t\t * @return void\n\t\t */\n\t\tclickViewChanges: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:viewChanges', e );\n\t\t},\n\n\t\tclickPublicLink: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:publicLink', e );\n\t\t},\n\n\t\tbounceIcon: function( changeModel ) {\n\t\t\tjQuery( this.el ).find( '.dashicons-backup' ).effect( 'bounce', { times: 3 }, 600 );\n\t\t}\n\n\t});\n\n\treturn view;\n} );\n\n","/**\n * Renders the action buttons to the right of the app menu. i.e. Publish\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/mobileMenuButton',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'span',\n\t\ttemplate: '#tmpl-nf-mobile-menu-button',\n\n\t\tinitialize: function() {\n\t\t\t// Listen to changes on the app 'clean' state. When it changes, re-render.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:clean', this.render, this );\n\t\t},\n\n\t\t/**\n\t\t * These functions are available to templates, and help us to remove logic from template files.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return Object\n\t\t */\n\t\ttemplateHelpers: function () {\n\t\t\tvar that = this;\n\t \treturn {\n\t \t\t/**\n\t \t\t * If our app state is clean, disable button.\n\t \t\t * \n\t \t\t * @since 3.0\n\t \t\t * @return string\n\t \t\t */\n\t \t\tmaybeDisabled: function() {\n\t \t\t\tif ( nfRadio.channel( 'app' ).request( 'get:setting', 'clean' ) ) {\n\t \t\t\t\treturn 'disabled';\n\t \t\t\t} else {\n\t \t\t\t\treturn '';\n\t \t\t\t}\n\t \t\t}\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Listen for clicks on the mobile menu button.\n\t\t * @type {Object}\n\t\t */\n\t\tevents: {\n\t\t\t'click .nf-mobile-menu': 'clickMobileMenu'\n\t\t},\n\n\t\t/**\n\t\t * When we click publish, trigger a radio event.\n\t\t * This lets us separate the logic from the click event and view.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object \te event\n\t\t * @return void\n\t\t */\n\t\tclickMobileMenu: function( e) {\n\t\t\tvar builderEl = nfRadio.channel( 'app' ).request( 'get:builderEl' );\n\t\t\tjQuery( builderEl ).toggleClass( 'nf-menu-expand' );\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Main application header. Includes links to all of our domains.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/header',['views/app/menu', 'views/app/menuButtons', 'views/app/mobileMenuButton'], function( appMenuCollectionView, appMenuButtonsView, mobileMenuButtonView ) {\n\tvar view = Marionette.LayoutView.extend( {\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-app-header',\n\n\t\tregions: {\n\t\t\t// Menu is our main app menu.\n\t\t\tmenu: '.nf-app-menu',\n\t\t\t// Buttons represents the 'view changes' and 'Publish' buttons.\n\t\t\tbuttons: '.nf-app-buttons',\n\t\t\tmobileMenuButton: '.nf-mobile-menu-button'\n\t\t},\n\n\t\t/**\n\t\t * Since this is a layout region, we need to fill the two areas: menu and buttons whenever we show this view.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tonRender: function() {\n\t\t\t// Get our domains\n\t\t\tvar appDomainCollection = nfRadio.channel( 'app' ).request( 'get:domainCollection' );\n\t\t\t// show the menu area using the appropriate view, passing our domain collection.\n\t\t\tthis.menu.show( new appMenuCollectionView( { collection: appDomainCollection } ) );\n\t\t\tthis.buttons.show( new appMenuButtonsView() );\n\t\t\tthis.mobileMenuButton.show( new mobileMenuButtonView() );\n\t\t},\n\n\t\tevents: {\n\t\t\t'click #nf-logo': 'clickLogo'\n\t\t},\n\n\t\tclickLogo: function( e ) {\n\t\t\t\n\t\t}\n\n\t} );\n\n\treturn view;\n} );\n","/**\n * Renders our sub-header. i.e. add new field, add new action, etc.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/subHeader',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-sub-header'\n\t});\n\n\treturn view;\n} );\n","/**\n * Renders our builder header.\n *\n * This is a layout view and handles two regions:\n * app - menu/buttons\n * subapp - title, add new field, etc.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/builderHeader',[ 'views/app/header', 'views/app/subHeader' ], function( appHeaderView, appSubHeaderView ) {\n\n\tvar view = Marionette.LayoutView.extend({\n\t\ttagName: \"div\",\n\t\ttemplate: \"#tmpl-nf-header\",\n\n\t\tregions: {\n\t\t\tapp: \"#nf-app-header\",\n\t\t\tformTitle: \"#nf-app-form-title\",\n\t\t\tappSub: \"#nf-app-sub-header\"\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:currentDomain', this.changeSubHeader );\n\t\t},\n\n\t\tonShow: function() {\n\t\t\tthis.app.show( new appHeaderView() );\n\n\t\t\tvar formData = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\t\t\tvar formSettings = formData.get( 'settings' );\n\n\t\t\tvar formTitleView = nfRadio.channel( 'views' ).request( 'get:formTitle' );\n\t\t\tthis.formTitle.show( new formTitleView( { model: formSettings } ) );\n\n\t\t\tthis.changeSubHeader();\n\t\t},\n\n\t\tchangeSubHeader: function() {\n\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\tvar subHeaderView = currentDomain.get( 'getSubHeaderView' ).call( currentDomain );\n\t\t\tthis.appSub.show( subHeaderView );\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Renders our builder.\n *\n * This is a layout view and handles three regions:\n * gutterLeft - gutter to the left of our main content area\n * body - main content area\n * gutterRight - gutter to the right of our main content area\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2016 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/main',[], function() {\n\n\tvar view = Marionette.LayoutView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-main',\n\t\tclassName: 'nf-main-test',\n\t\tmaybeDone: false,\n\n\t\toffsetRight: false,\n\t\toffsetLeft: false,\n\n\t\tregions: {\n\t\t\tgutterLeft: '#nf-main-gutter-left',\n\t\t\tbody: '#nf-main-body',\n\t\t\tgutterRight: '#nf-main-gutter-right'\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:currentDomain', this.render );\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:mainEl', this.getMainEl, this );\n\n\t\t\t/*\n\t\t\t * Make sure that our gutters resize to match our screen upon resize or drawer open/close.\n\t\t\t */\n\t\t\tjQuery( window ).on( 'resize', { context: this }, this.resizeBothGutters );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'before:open', this.setBothGuttersAbsolute );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'opened', this.setBothGuttersFixed );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'before:close', this.setBothGuttersAbsolute );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'closed', this.setBothGuttersFixed );\n\t\t\t// ... or Domain Change.\n this.listenTo( nfRadio.channel( 'app' ), 'change:currentDomain', function(){\n // @todo Using a timeout feels like a hack, but there may be a timing issue here.\n \tsetTimeout(function(){\n nfRadio.channel( 'app' ).request( 'update:gutters' );\n\t\t\t\t}, 300, this );\n\t\t\t}, this );\n\n\n\t\t\t/*\n\t\t\t * Reply to messages requesting that we resize our gutters.\n\t\t\t */\n\t\t\tnfRadio.channel( 'app' ).reply( 'update:gutters', this.updateGutters, this );\n\t\t},\n\n\t\tonShow: function() {\n\t\t\tnfRadio.channel( 'main' ).trigger( 'show:main', this );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\tvar bodyView = currentDomain.get( 'getMainContentView' ).call( currentDomain );\n\t\t\tthis.body.show( bodyView );\n\n\t\t\tvar gutterLeftView = currentDomain.get( 'getGutterLeftView' ).call( currentDomain );\n\t\t\tthis.gutterLeft.show( gutterLeftView );\n\n\t\t\tvar gutterRightView = currentDomain.get( 'getGutterRightView' ).call( currentDomain );\n\t\t\tthis.gutterRight.show( gutterRightView );\n\t\t\t\n\t\t\tnfRadio.channel( 'main' ).trigger( 'render:main' );\n\t\t},\n\n\t\tgetMainEl: function() {\n\t\t\treturn jQuery( this.el ).parent();\n\t\t},\n\n\t\tonAttach: function() {\n\t\t\tthis.initialGutterResize();\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tjQuery( window ).off( 'resize', this.resize );\n\t\t},\n\n\t\tinitialGutterResize: function() {\n\t\t\tthis.resizeGutter( this.gutterLeft.el );\n\t\t\tthis.resizeGutter( this.gutterRight.el );\n\t\t\tthis.setBothGuttersFixed( this );\n\t\t},\n\n\t\tresizeBothGutters: function( e ) {\n\t\t\tvar context = ( e ) ? e.data.context : this;\n\n\t\t\tvar leftEl = context.gutterLeft.el;\n\t\t\tvar rightEl = context.gutterRight.el;\n\t\t\t\n\t\t\tcontext.resizeGutter( leftEl, context );\n\t\t\tcontext.resizeGutter( rightEl, context );\n\n\t\t\tcontext.setBothGuttersAbsolute( context );\n\n\t\t\t/*\n\t\t\t * Clear our timeout. If the timeout runs, it means we've stopped resizing.\n\t\t\t */\t\n\t\t\tclearTimeout( context.maybeDone );\n\t\t\t/*\n\t\t\t * Add our timeout.\n\t\t\t */\n\t\t\tcontext.maybeDone = setTimeout( context.setBothGuttersFixed, 100, context );\n\t\t},\n\n\t\tresizeGutter: function( el, context ) {\n\t\t\tvar top = jQuery( el ).offset().top;\n\t\t\tvar viewHeight = jQuery( window ).height();\n\t\t\tvar height = viewHeight - top;\n\t\t\tjQuery( el ).height( height );\n\t\t},\n\n\t\tsetBothGuttersFixed: function( context ) {\n\t\t\tcontext = context || this;\n\n\t\t\tvar offsetLeft = jQuery( context.gutterLeft.el ).offset();\n\t\t\tvar topLeft = offsetLeft.top;\n\t\t\tvar leftLeft = offsetLeft.left;\n\n\t\t\tjQuery( context.gutterLeft.el ).css( { position: 'fixed', left: leftLeft, top: topLeft } );\t\t\tvar offsetLeft = jQuery( context.gutterLeft.el ).offset();\n\t\t\t\n\t\t\tvar offsetRight = jQuery( context.gutterRight.el ).offset();\n\t\t\tvar topRight = offsetRight.top;\n\t\t\tvar leftRight = offsetRight.left;\n\n\t\t\tjQuery( context.gutterRight.el ).css( { position: 'fixed', left: leftRight, top: topRight } );\n\t\t},\n\n\t\tsetBothGuttersAbsolute: function( context ) {\n\t\t\tcontext = context || this;\n\n\t\t\tvar offsetLeft = jQuery( context.gutterLeft.el ).offset();\n\t\t\tvar offsetRight = jQuery( context.gutterRight.el ).offset();\n\n\t\t\tvar scrollTop = jQuery( '#nf-main' ).scrollTop();\n\n\t\t\tjQuery( context.gutterLeft.el ).css( { position: 'absolute', left: 0, top: scrollTop } );\n\t\t\tjQuery( context.gutterRight.el ).css( { position: 'absolute', top: scrollTop, right: 0, left: 'auto' } );\n\t\t},\n\n\t\tupdateGutters: function() {\n\t\t\tthis.resizeBothGutters();\n\t\t}\n\n\t});\n\n\treturn view;\n} );\n\n","/**\n * Renders an application menu item from a domain model.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/mobileMenuItem',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-mobile-menu-item',\n\n\t\t/**\n\t\t * When we render this view, remove the extra <div> tag created by backbone.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tonRender: function() {\n\t\t\tthis.$el = this.$el.children();\n\t\t\tthis.$el.unwrap();\n\t\t\tthis.setElement( this.$el );\n\t\t},\n\n\t\t// Listen for clicks on our app menu.\n\t\tevents: {\n\t\t\t'click a': 'clickAppMenu'\n\t\t},\n\n\t\t/**\n\t\t * When we click on a menu item, fire a radio event.\n\t\t * This lets us separate the logic from the click event and view.\n\t\t * We pass this.model so that we know what item was clicked.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object\te event\n\t\t * @return return\n\t\t */\n\t\tclickAppMenu: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:menu', e, this.model );\n\t\t},\n\n\t\t/**\n\t\t * These functions are available to templates, and help us to remove logic from template files.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return Object\n\t\t */\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\t/**\n\t\t\t\t * If we have any dashicons in our model, render them.\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderDashicons: function() {\n\t\t\t\t\tif ( ! this.mobileDashicon ) return '';\n\n var icon = document.createElement( 'span' );\n icon.classList.add( 'dashicons' );\n icon.classList.add( this.mobileDashicon );\n\n return icon.outerHTML;\n\t\t\t\t},\n\t\t\t\t/**\n\t\t\t\t * Render classes for our menu item, including active.\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderClasses: function() {\n\t\t\t\t\tvar classes = this.classes;\n\t\t\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\t\t\tif ( currentDomain.get( 'id' ) == this.id ) {\n\t\t\t\t\t\tclasses += ' active';\n\t\t\t\t\t}\n\t\t\t\t\treturn classes;\n\t\t\t\t},\n\t\t\t\t/**\n\t\t\t\t * If our menu is a link (like preview), render its url.\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderUrl: function() {\n\t\t\t\t\tif ( '' != this.url ) {\n\t\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\t\t\t\t\t\treturn this.url + formModel.get( 'id' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '#';\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t/**\n\t\t\t\t * If our menu is a link (like preview), render its target.\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderTarget: function() {\n\t\t\t\t\tif ( '' != this.url ) {\n\t\t\t\t\t\treturn '_blank';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '_self';\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t/**\n\t\t\t\t * If our menu item is disabled, output 'disabled'\n\t\t\t\t * \n\t\t\t\t * @since 3.0\n\t\t\t\t * @return string\n\t\t\t\t */\n\t\t\t\trenderDisabled: function() {\n\t\t\t\t\tif ( this.disabled ) {\n\t\t\t\t\t\treturn 'disabled';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn view;\n} );\n\n","/**\n * Single item view used for the menu drawer.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/mobileMenu',['views/app/mobileMenuItem'], function( mobileMenuItemView ) {\n\tvar view = Marionette.CompositeView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-mobile-menu',\n\t\tchildView: mobileMenuItemView,\n\n\t\tinitialize: function() {\n\t\t\t// Listen to changes on the app 'clean' state. When it changes, re-render.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:clean', this.render, this );\n\t\t},\n\n\t\tattachHtml: function( collectionView, childView ) {\n\t\t\tjQuery( collectionView.el ).find( '.secondary' ).append( childView.el );\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\t/**\n\t \t\t * If our app state is clean, disable button.\n\t \t\t * \n\t \t\t * @since 3.0\n\t \t\t * @return string\n\t \t\t */\n\t \t\tmaybeDisabled: function() {\n\t \t\t\tif ( nfRadio.channel( 'app' ).request( 'get:setting', 'clean' ) ) {\n\t \t\t\t\treturn 'disabled';\n\t \t\t\t} else {\n\t \t\t\t\treturn '';\n\t \t\t\t}\n\t \t\t}\n\t\t\t};\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .nf-publish': 'clickPublish'\n\t\t},\n\n\t\t/**\n\t\t * When we click publish, trigger a radio event.\n\t\t * This lets us separate the logic from the click event and view.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object \te event\n\t\t * @return void\n\t\t */\n\t\tclickPublish: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:publish', e );\n\t\t\tvar builderEl = nfRadio.channel( 'app' ).request( 'get:builderEl' );\n\t\t\tjQuery( builderEl ).toggleClass( 'nf-menu-expand' );\n\t\t},\n\t});\n\n\treturn view;\n} );\n","/**\n * Empty drawer content view.\n * Called before we close the drawer.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/contentEmpty',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-empty'\n\t});\n\n\treturn view;\n} );\n","/**\n * Renders our drawer region\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer',['views/app/drawer/contentEmpty'], function( drawerEmptyView ) {\n\n\tvar view = Marionette.LayoutView.extend( {\n\t\ttemplate: '#tmpl-nf-drawer',\n\n\t\tregions: {\n\t\t\theader: '#nf-drawer-header',\n\t\t\tcontent: '#nf-drawer-content',\n\t\t\tfooter: '#nf-drawer-footer'\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:drawerEl', this.getEl, this );\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'load:drawerContent', this.loadContent, this );\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'empty:drawerContent', this.emptyContent, this );\n\t\t},\n\n\t\tonShow: function() {\n\t\t\tjQuery( this.el ).parent().perfectScrollbar();\n\t\t},\n\n\t\tloadContent: function( drawerID, data ) {\n\t\t\tvar drawer = nfRadio.channel( 'app' ).request( 'get:drawer', drawerID );\n\t\t\tvar contentView = drawer.get( 'getContentView' ).call( drawer, data );\n\t\t\tvar headerView = drawer.get( 'getHeaderView' ).call( drawer, data );\n\t\t\tvar footerView = drawer.get( 'getFooterView' ).call( drawer, data );\n\n\t\t\tthis.header.show( headerView );\n\t\t\tthis.content.show( contentView );\n\t\t\tthis.footer.show( footerView );\n\n\t\t},\n\n\t\temptyContent: function() {\n\t\t\tthis.header.empty();\n\t\t\tthis.content.empty();\n\t\t\tthis.footer.empty();\n\t\t},\n\n\t\tgetEl: function() {\n\t\t\treturn jQuery( this.el ).parent();\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .nf-toggle-drawer': 'clickToggleDrawer'\n\t\t},\n\n\t\tclickToggleDrawer: function() {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:toggleDrawerSize' );\n\t\t}\n\n\t} );\n\n\treturn view;\n} );\n\n","/**\n * Single item view used for merge tags.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/mergeTagItem',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'li',\n\n\t\ttemplate: '#tmpl-nf-merge-tags-item',\n\n\t\tonBeforeDestroy: function() {\n\t\t\tthis.model.off( 'change:active', this.render );\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.model.on( 'change:active', this.render, this );\n\t\t},\n\n\t\tevents: {\n\t\t\t'click a': 'clickTag'\n\t\t},\n\n\t\tclickTag: function( e ) {\n\t\t\tnfRadio.channel( 'mergeTags' ).trigger( 'click:mergeTag', e, this.model );\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\trenderClasses: function() {\n\t\t\t\t\tif ( this.active ) {\n\t\t\t\t\t\treturn 'active';\n\t\t\t\t\t}\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Merge tags popup section\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/mergeTagsSection',['views/app/drawer/mergeTagItem'], function( mergeTagItemView ) {\n\tvar view = Marionette.CompositeView.extend({\n\t\ttagName: 'div',\n\t\tchildView: mergeTagItemView,\n\t\ttemplate: '#tmpl-nf-merge-tags-section',\n\n\t\tinitialize: function() {\n\t\t\tthis.collection = this.model.get( 'tags' );\n\t\t\tthis.model.on( 'change', this.render, this );\n\t\t\tif ( 'fields' == this.model.get( 'id' ) ) {\n\t\t\t\t// var fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\t\t\t\t// fieldCollection.on( 'all', this.updateFields, this );\n\t\t\t}\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tthis.model.off( 'change', this.render );\n\t\t\tif ( 'fields' == this.model.get( 'id' ) ) {\n\t\t\t\tvar fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\t\t\t\tfieldCollection.off( 'all', this.updateFields, this );\n\t\t\t}\n\t\t},\n\n\t\tattachHtml: function( collectionView, childView ) {\n\t\t\tjQuery( collectionView.el ).find( '.merge-tags' ).append( childView.el );\n\t\t},\n\n\t\tupdateFields: function() {\n\t\t\tvar fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\t\t\tthis.model.set( 'tags', fieldCollection );\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Model that represents our merge tags.\n * \n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/mergeTagModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tactive: false,\n\t\t\texclude: false\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Collections of merge tags.\n * \n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/mergeTagCollection',['models/app/mergeTagModel'], function( mergeTagModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: mergeTagModel\n\t} );\n\treturn collection;\n} );\n","/**\n * Merge tags popup\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/mergeTagsContent',['views/app/drawer/mergeTagsSection', 'models/app/mergeTagCollection'], function( mergeTagsSectionView, MergeTagCollection ) {\n\tvar view = Marionette.CollectionView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-merge-tags-content',\n\t\tchildView: mergeTagsSectionView,\n\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'mergeTags' ).reply( 'get:view', this.getMergeTagsView, this );\n\t\t},\n\n\t\treRender: function( settingModel ) {\n\t\t\tvar mergeTagCollection = nfRadio.channel( 'mergeTags' ).request( 'get:collection' );\n\t\t\tvar defaultGroups = mergeTagCollection.where( { default_group: true } );\n\n\t\t\t/*\n\t\t\t * For the Actions Domain, Add Calc Merge Tags as a Default Group.\n\t\t\t */\n\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\tif( 'actions' == currentDomain.get( 'id' ) ){\n\t\t\t\tvar calcMergeTagGroup = mergeTagCollection.where( { id: 'calcs' } );\n defaultGroups = defaultGroups.concat( calcMergeTagGroup );\n }\n\n\t\t\tthis.collection = new MergeTagCollection( defaultGroups );\n\t\t\tvar that = this;\n\t\t\tvar useMergeTags = settingModel.get( 'use_merge_tags' );\n\t\t\tif ( 'object' == typeof useMergeTags ) {\n\t\t\t\tif ( 'undefined' != typeof useMergeTags.exclude ) {\n\t\t\t\t\t_.each( useMergeTags.exclude, function( exclude ) {\n\t\t\t\t\t\tthat.collection.remove( exclude )\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tif ( 'undefined' != typeof useMergeTags.include ) {\n\t\t\t\t\t_.each( mergeTagCollection.models, function( sectionModel ) {\n\t\t\t\t\t\tif ( -1 != useMergeTags.include.indexOf( sectionModel.get( 'id' ) ) ) {\n\t\t\t\t\t\t\t// console.log( sectionModel );\n\t\t\t\t\t\t\tthat.collection.add( sectionModel );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.render();\n\t\t},\n\n\t\tgetMergeTagsView: function() {\n\t\t\treturn this;\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Builder view.\n *\n * This layout view has regions that represent our application areas:\n * header\n * main\n * menuDrawer - Mobile side-menu\n * drawer\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/builder',['views/app/builderHeader', 'views/app/main', 'views/app/mobileMenu', 'views/app/drawer', 'views/app/drawer/mergeTagsContent'], function( headerView, mainView, mobileMenuView, drawerView, mergeTagsContentView ) {\n\tvar view = Marionette.LayoutView.extend( {\n\t\ttemplate: \"#tmpl-nf-builder\",\n\t\tel: '#nf-builder',\n\n\t\tregions: {\n\t\t\theader: \"#nf-header\",\n\t\t\tmain: \"#nf-main\",\n\t\t\tmenuDrawer: \"#nf-menu-drawer\",\n\t\t\tdrawer: \"#nf-drawer\",\n\t\t\tmergeTagsContent: '.merge-tags-content'\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\t// Respond to requests asking for the builder dom element.\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:builderEl', this.getBuilderEl, this );\n\t\t\t// Respond to requests asking for the builder view\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:builderView', this.getBuilderView, this );\n\t\t\t// Layout views aren't self-rendering.\n\t\t\tthis.render();\n\t\t\tvar mergeTags = nfRadio.channel( 'mergeTags' ).request( 'get:collection' );\n\t\t\tvar mergeTagsClone = mergeTags.clone();\n\t\t\tthis.mergeTagsContent.show( new mergeTagsContentView( { collection: mergeTagsClone } ) );\n\t\t\t// Show our header.\n\t\t\tthis.header.show( new headerView() );\n\t\t\t// Show our main content.\n\t\t\tthis.main.show( new mainView() );\n\t\t\t// Show our mobile menu\n\t\t\tvar appDomainCollection = nfRadio.channel( 'app' ).request( 'get:domainCollection' );\n\t\t\tthis.menuDrawer.show( new mobileMenuView( { collection: appDomainCollection } ) );\n\t\t\t// Show our drawer.\n\t\t\tthis.drawer.show( new drawerView() );\n\n\n\t\t},\n\n\t\tonRender: function() {\n\n\t\t},\n\n\t\tgetBuilderEl: function() {\n\t\t\treturn this.el;\n\t\t},\n\n\t\tgetBuilderView: function() {\n\t\t\treturn this;\n\t\t},\n\n\t\t// Listen for clicks\n\t\tevents: {\n\t\t\t'click .nf-open-drawer': 'openDrawer',\n\t\t\t'click .nf-change-domain': 'changeDomain',\n\t\t\t'click .nf-close-drawer': 'closeDrawer'\n\t\t},\n\n\t\t/**\n\t\t * Someone clicked to open a drawer, so fire a radio event.\n\t\t * This lets us separate the logic from the click event and view.\n\t\t *\n\t\t * @since 3.0\n\t\t * @param Object \te \tevent\n\t\t * @return void\n\t\t */\n\t\topenDrawer: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:openDrawer', e );\n\t\t},\n\t\t/**\n\t\t * Someone clicked to close a drawer, so fire a radio event.\n\t\t * This lets us separate the logic from the click event and view.\n\t\t *\n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tcloseDrawer: function() {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:closeDrawer' );\n\t\t},\n\t\t/**\n\t\t * Someone clicked to change the domain, so fire a radio event.\n\t\t * This lets us separate the logic from the click event and view.\n\t\t *\n\t\t * @since 3.0\n\t\t * @param Object \te \tevent\n\t\t * @return void\n\t\t */\n\t\tchangeDomain: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:menu', e );\n\t\t}\n\n\t} );\n\n\treturn view;\n} );\n\n","\ndefine( 'controllers/app/remote',[], function() {\n return Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'setting' ), 'remote', this.addListener );\n },\n\n addListener: function( model, dataModel ) {\n\n var listenTo = model.get( 'remote' ).listen;\n\n // TODO: Change seems to be triggering twice on each update.\n this.listenTo( nfRadio.channel( 'fieldSetting-' + listenTo ), 'update:setting', this.updateSetting );\n this.listenTo( nfRadio.channel( 'actionSetting-' + listenTo ), 'update:setting', this.updateSetting );\n\n this.listenTo( nfRadio.channel( 'setting-type-' + model.get( 'type' ) ), 'click:extra', this.clickExtra );\n\n model.listenTo( nfRadio.channel( 'setting-remote' ), 'get:remote', this.getRemote, model );\n\n // Auto-trigger get:remote on drawer load.\n nfRadio.channel( 'setting-remote' ).trigger( 'get:remote', dataModel );\n },\n\n clickExtra: function( e, settingModel, dataModel, settingView ) {\n jQuery( e.srcElement ).addClass( 'spin' );\n nfRadio.channel( 'setting-remote' ).trigger( 'get:remote', dataModel );\n },\n\n updateSetting: function( dataModel, settingModel ) {\n nfRadio.channel( 'setting-remote' ).trigger( 'get:remote', dataModel );\n },\n\n getRemote: function( dataModel ) {\n\n var remote = this.get( 'remote' );\n\n var data = {\n parentValue: dataModel.get( remote.listen ),\n action: remote.action,\n security: ( remote.security ) ? remote.security : nfAdmin.ajaxNonce\n };\n\n // TODO: Disable setting and lock drawer while updating.\n var that = this;\n jQuery.post( ajaxurl, data, function( response ){\n var response = JSON.parse( response );\n\n if( 'textbox' == that.get( 'type' ) ) {\n dataModel.set( that.get('name'), response.value );\n }\n\n if( 'select' == that.get( 'type' ) ) {\n that.set( 'options', response.options );\n that.trigger( 'rerender' );\n }\n });\n },\n\n });\n} );\n","/**\n * Handles opening and closing our drawer. This is where we display settings for fields, actions, and settings.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/drawer',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Listen to our drawer-related click events.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:openDrawer', this.clickOpenDrawer );\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:closeDrawer', this.closeDrawer );\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:toggleDrawerSize', this.toggleDrawerSize );\n\n\t\t\t// Reply to direct requests to open or close the drawer.\n\t\t\tnfRadio.channel( 'app' ).reply( 'open:drawer', this.openDrawer, this );\n\t\t\tnfRadio.channel( 'app' ).reply( 'close:drawer', this.closeDrawer, this );\n\n\t\t\t/*\n\t\t\t * When we close the drawer, we have to figure out what the right position should be.\n\t\t\t * This listens to requests from other parts of our app asking what the closed right position is.\n\t\t\t */\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'get:closedRightPos', this.getClosedDrawerPos, this );\n\t\t\t\n\t\t\t// Reply to requests to prevent our drawer from closing\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'prevent:close', this.preventClose, this );\n\t\t\t// Reply to requests to enable drawer closing\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'enable:close', this.enableClose, this );\n\t\t\t// Reply to requests for our disabled/enabled state.\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'get:preventClose', this.maybePreventClose, this );\n\n\t\t\t/*\n\t\t\t * Object that holds our array of 'prevent close' values.\n\t\t\t * We use an array so that registered requests can unregister and not affect each other.\n\t\t\t */\n\t\t\tthis.objPreventClose = {};\n\n\t\t\t/*\n\t\t\t * Listen to focus events on the filter and stop our interval when it happens.\n\t\t\t * This is to fix a bug that can cause the filter to gain focus every few seconds.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'filter:focused', this.filterFocused );\n\t\t},\n\n\t\t/**\n\t\t * Handles closing our drawer\n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tcloseDrawer: function() {\n\t\t\t// Get our current domain.\n\t\t\tvar currentDrawer = nfRadio.channel( 'app' ).request( 'get:currentDrawer' );\n if ( ! currentDrawer || this.maybePreventClose() ) {\n return false;\n }\n\n\t\t\t// Triggers the before close drawer action on our current domain's drawer channel.\n\t\t\tnfRadio.channel( 'drawer-' + currentDrawer.get( 'id' ) ).trigger( 'before:closeDrawer' );\n\t\t\t/*\n\t\t\t * The 'before:closeDrawer' message is deprecated as of version 3.0 in favour of 'before:close'.\n\t\t\t * TODO: Remove this radio message in the future.\n\t\t\t */\n\t\t\tnfRadio.channel( 'drawer' ).trigger( 'before:closeDrawer' );\n\t\t\tnfRadio.channel( 'drawer' ).trigger( 'before:close' );\n\t\t\t// Send a message to our drawer to empty its contents.\n\t\t\tnfRadio.channel( 'drawer' ).request( 'empty:drawerContent' );\n\n\t\t\t// To close our drawer, we have to add our closed class to the builder and remove the opened class.\n\t\t\tvar builderEl = nfRadio.channel( 'app' ).request( 'get:builderEl' );\n\t\t\tjQuery( builderEl ).addClass( 'nf-drawer-closed' ).removeClass( 'nf-drawer-opened' );\n\t\t\tjQuery( builderEl ).removeClass( 'disable-main' );\n\n\t\t\t// Get the right position of our closed drawer. Should be container size in -px.\n\t\t\tvar rightClosed = this.getClosedDrawerPos();\n\n\t\t\t// Get our drawer element and give change the 'right' property to our closed position.\n\t\t\tvar drawerEl = nfRadio.channel( 'app' ).request( 'get:drawerEl' );\n\t\t\tjQuery( drawerEl ).css( { 'right': rightClosed } );\n\n\t\t\t// In order to access properties in 'this' context in our interval below, we have to set it here.\t\n\t\t\tvar that = this;\n\n\t\t\t/*\n\t\t\t * Since jQuery can't bind to a CSS change, we poll every .15 seconds to see if we've closed the drawer.\n\t\t\t *\n\t\t\t * Once our drawer is closed, we:\n\t\t\t * clear our interval\n\t\t\t * request that the app change it's current drawer to false\n\t\t\t * trigger a drawer closed message\n\t\t\t */\n\t\t\tthis.checkCloseDrawerPos = setInterval( function() {\n\t \tif ( rightClosed == jQuery( drawerEl ).css( 'right' ) ) {\n\t \t\tclearInterval( that.checkCloseDrawerPos );\n\t\t \t\tnfRadio.channel( 'app' ).request( 'update:currentDrawer', false );\n\t\t \t\tnfRadio.channel( 'drawer' ).trigger( 'closed' );\n\t\t \t\t/*\n\t\t \t\t * Reset the add new button z-index to 98.\n\t\t \t\t */\n\t\t \t\tjQuery( '.nf-master-control' ).css( 'z-index', 98 );\n\t\t \t\t// jQuery( drawerEl ).scrollTop( 0 );\n\t \t}\n\t\t\t}, 150 );\n\t\t},\n\n\t\t/**\n\t\t * Click handler for our 'open drawer' event.\n\t\t * @since 3.0\n\t\t * @param e jQuery event\n\t\t * @return void\n\t\t */\n\t\tclickOpenDrawer: function( e ) {\n\t\t\tvar drawerID = jQuery( e.target ).data( 'drawerid' );\n\t\t\tthis.openDrawer( drawerID );\n\t\t},\n\n\t\t/**\n\t\t * Open our drawer.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param string drawerID \tID of the drawer we want to open.\n\t\t * @param object data \tOptional data that we want to pass to the drawer.\n\t\t * @return void\n\t\t */\n\t\topenDrawer: function( drawerID, data ) {\n\t\t\tif ( this.maybePreventClose() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// If we haven't sent a data object, set the variable to an empty object.\n\t\t\tdata = data || {};\n\n\t\t\t/*\n\t\t\t * If we're dealing with something that has a model, set the proper active state.\n\t\t\t *\n\t\t\t * TODO: Make this more dynamic. I'm not sure that it fits in the drawer controller.\n\t\t\t */\n\t\t\tif ( 'undefined' != typeof data.model ) {\n\t\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\t\tvar currentDomainID = currentDomain.get( 'id' );\n\t\t\t\tnfRadio.channel( currentDomainID ).request( 'clear:editActive' );\n\t\t\t\tdata.model.set( 'editActive', true );\n\t\t\t\tthis.dataModel = data.model;\n\t\t\t}\n\n\t\t\t// Send out a message requesting our drawer view to load the content for our drawer ID.\n\t\t\tnfRadio.channel( 'drawer' ).request( 'load:drawerContent', drawerID, data );\n\t\t\tnfRadio.channel( 'drawer' ).trigger( 'before:open' );\n\t\t\t\n\t\t\t// To open our drawer, we have to add our opened class to our builder element and remove the closed class.\n\t\t\tvar builderEl = nfRadio.channel( 'app' ).request( 'get:builderEl' );\n\t\t\tjQuery( builderEl ).addClass( 'nf-drawer-opened' ).removeClass( 'nf-drawer-closed' );\n\t\t\t\n\t\t\t// To open our drawer, we have to set the right position of our drawer to 0px.\n\t\t\tvar drawerEl = nfRadio.channel( 'app' ).request( 'get:drawerEl' );\n\t\t\tjQuery( drawerEl ).css( { 'right': '0px' } );\n\t\t\t\n\t\t\t// In order to access properties in 'this' context in our interval below, we have to set it here.\t\n\t\t\tvar that = this;\n\n\t\t\t/*\n\t\t\t * Since jQuery can't bind to a CSS change, we poll every .15 seconds to see if we've opened the drawer.\n\t\t\t *\n\t\t\t * Once our drawer is opened, we:\n\t\t\t * clear our interval\n\t\t\t * focus our filter\n\t\t\t * request that the app update its current drawer to the one we opened\n\t\t\t * trigger a drawer opened message\n\t\t\t */\n\t\t\tthis.hasFocus = false;\n\n\t\t\t/*\n\t\t\t * Set our add new button z-index to 0;\n\t\t\t */\n\t\t\tjQuery( '.nf-master-control' ).css( 'z-index', 0 );\n\n\t\t\tthis.checkOpenDrawerPos = setInterval( function() {\n\t \tif ( '0px' == jQuery( drawerEl ).css( 'right' ) ) {\n\t \t\tclearInterval( that.checkOpenDrawerPos );\n\t\t\t\t\tif ( ! that.hasFocus ) {\n\t\t \t\tthat.focusFilter();\n\t\t\t\t\t\tthat.hasFocus = true;\n\t\t\t \t\tnfRadio.channel( 'app' ).request( 'update:currentDrawer', drawerID );\n\t\t\t \t\tjQuery( drawerEl ).scrollTop( 0 );\n\t\t\t \t\tnfRadio.channel( 'drawer' ).trigger( 'opened' );\n\t\t\t\t\t} \t\t\n\t \t}\n\t\t\t}, 150 );\n\t\t},\n\n\t\t/**\n\t\t * Toggle the drawer from half to full screen and vise-versa\n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\ttoggleDrawerSize: function() {\n\t\t\t// Get our drawer element.\n\t\t\tvar drawerEl = nfRadio.channel( 'app' ).request( 'get:drawerEl' );\n\t\t\t// toggle our drawer size class.\n\t\t\tjQuery( drawerEl ).toggleClass( 'nf-drawer-expand' );\n\t\t},\n\n\t\t/**\n\t\t * Focus our filter\n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n focusFilter: function() {\n \t// Get our filter element\n \tvar filterEl = nfRadio.channel( 'drawer' ).request( 'get:filterEl' );\n \t// Focus\n \tjQuery( filterEl ).focus();\n },\n\n /**\n * Get the CSS right position (in px) of the closed drawer element.\n * This is calculated by:\n * getting the width of the builder element\n * add 300 pixels\n * make it negative\n * \n * @since 3.0\n * @return void\n */\n getClosedDrawerPos: function() {\n\t\t\tvar builderEl = nfRadio.channel( 'app' ).request( 'get:builderEl' );\n\t\t\tvar closedPos = jQuery( builderEl ).width() + 300;\n\t\t\treturn '-' + closedPos + 'px';\n },\n\n /**\n * Check to see if anything has registered a prevent close key.\n * \n * @since 3.0\n * @return boolean\n */\n maybePreventClose: function() {\n \tif ( 0 == Object.keys( this.objPreventClose ).length ) {\n \t\treturn false;\n \t} else {\n \t\treturn true;\n \t}\n },\n\n /**\n * Register a prevent close key.\n * \n * @since 3.0\n * @param string \tkey unique id for our 'prevent close' setting.\n * @return void\n */\n preventClose: function( key ) {\n \tthis.objPreventClose[ key ] = true;\n \t/*\n \t * When we disable closing the drawer, add the disable class.\n \t */\n \t// Get our current drawer.\n\t\t\tthis.dataModel.set( 'drawerDisabled', true );\n },\n\n /**\n * Remove a previously registered prevent close key.\n * \n * @since 3.0\n * @param string \tkey unique id for our 'prevent close' setting.\n * @return void\n */\n enableClose: function( key ) {\n \tdelete this.objPreventClose[ key ];\n \t /*\n \t * When we remove all of our disables preventing closing the drawer, remove the disable class.\n \t */\n \tif ( ! this.maybePreventClose() && 'undefined' != typeof this.dataModel ) {\n\t \t// Get our current drawer.\n\t\t\t\tthis.dataModel.set( 'drawerDisabled', false ); \t\t\n \t}\n },\n\n /**\n * When we focus our filter, make sure that our open drawer interval is cleared.\n * \n * @since 3.0\n * @return void\n */\n filterFocused: function() {\n \tclearInterval( this.checkOpenDrawerPos );\n },\n\n getPreventClose: function() {\n \treturn this.objPreventClose;\n }\n\t});\n\n\treturn controller;\n} );\n","/**\n * Default drawer header.\n *\n * Includes our filter/search and 'Done' button.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/headerDefault',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-header-default',\n\n\t\tinitialize: function() {\n\t\t\tif ( this.model ) {\n\t\t\t\t// Listen for our drawer being disabled.\n\t\t\t\tthis.model.on( 'change:drawerDisabled', this.render, this );\t\t\t\t\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * When we render, remove the extra div added by backbone and add listeners related to our filter.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tonRender: function() {\n\t\t\t// Remove extra wrapping div.\n\t\t\tthis.$el = this.$el.children();\n\t\t\tthis.$el.unwrap();\n\t\t\tthis.setElement( this.$el );\n\t\t\t// Respond to requests related to our filter.\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'clear:filter', this.clearFilter, this );\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'blur:filter', this.blurFilter, this );\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'get:filterEl', this.getEl, this );\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tif ( this.model ) {\n\t\t\t\tthis.model.off( 'change:drawerDisabled', this.render );\n\t\t\t}\n\t\t},\n\n\t\tevents: {\n\t\t\t'keyup .nf-filter'\t: 'maybeChangeFilter',\n\t\t\t'input .nf-filter'\t: 'changeFilter',\n\t\t\t'focus input'\t\t: 'getFocus'\n\t\t},\n\n\t\t/**\n\t\t * When the filter text is changed, trigger an event on our current drawer.\n\t\t * This lets us keep the logic separate from the click event and view.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object \te event\n\t\t * @return void\n\t\t */\n\t\tchangeFilter: function( e ) {\n\t\t\tvar currentDrawer = nfRadio.channel( 'app' ).request( 'get:currentDrawer' );\n\t\t\tnfRadio.channel( 'drawer-' + currentDrawer.get( 'id' ) ).trigger( 'change:filter', e.target.value, e );\n\t\t},\n\n\t\t/**\n\t\t * The user pressed a key. If it's the enter key, then run the change filter function.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object \te event\n\t\t * @return void\n\t\t */\n\t\tmaybeChangeFilter: function( e ) {\n\t\t\tif ( 13 == e.keyCode ) {\n\t\t\t\te.addObject = true;\n\t\t\t\tthis.changeFilter( e );\t\t\t\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Clear our filter.\n\t\t *\n\t\t * This triggers 'input' on the field, which will trigger a change if necessary.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tclearFilter: function() {\n\t\t\tvar filterEl = jQuery( this.el ).find( '.nf-filter' );\n\t\t\tif ( '' != jQuery.trim( filterEl.val() ) ) {\n\t\t\t\tfilterEl.val('');\n\t\t\t\tfilterEl.trigger( 'input' );\n\t\t\t\tfilterEl.focus();\t\t\t\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Fire the 'blur' event on our filter. Used to force a change event when the user tabs.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tblurFilter: function() {\n\t\t\tjQuery( this.el ).find( '.nf-filter' ).blur();\n\t\t},\n\n\t\t/**\n\t\t * Return our filter dom element.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return Object\n\t\t */\n\t\tgetEl: function() {\n\t\t\treturn jQuery( this.el ).find( '.nf-filter' );\n\t\t},\n\n\t\tgetFocus: function() {\n\t\t\tnfRadio.channel( 'drawer' ).trigger( 'filter:focused' );\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\trenderDisabled: function() {\n\t\t\t\t\t// Get our current domain.\n\t\t\t\t\tif ( this.drawerDisabled ) {\n\t\t\t\t\t\treturn 'disabled';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Default drawer footer\n * \n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/footerDefault',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-empty'\n\t});\n\n\treturn view;\n} );\n","define( 'models/app/drawerModel',['views/app/drawer/headerDefault', 'views/app/drawer/footerDefault'], function( defaultHeaderView, defaultFooterView ) {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tgetHeaderView: function( data ) {\n\t\t\t\treturn new defaultHeaderView( data );\n\t\t\t},\n\n\t\t\tgetFooterView: function( data ) {\n\t\t\t\treturn new defaultFooterView( data );\n\t\t\t}\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Collection that holds all of our drawer models.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/drawerCollection',['models/app/drawerModel'], function( drawerModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: drawerModel\n\t} );\n\treturn collection;\n} );\n","define( 'views/fields/drawer/stagedField',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-staged-field',\n\n\t\tonRender: function() {\n\t\t\tthis.$el = this.$el.children();\n\t\t\tthis.$el.unwrap();\n\t\t\tthis.setElement( this.$el );\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .dashicons-dismiss': 'removeStagedField'\n\t\t},\n\n\t\tremoveStagedField: function( el ) {\n\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'click:removeStagedField', el, this.model );\n\t\t}\n\t});\n\n\treturn view;\n} );\n\n","define( 'views/fields/drawer/stagingEmpty',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-staged-fields-empty',\n\n\t\tonRender: function() {\n\t\t\tthis.$el = this.$el.children();\n\t\t\tthis.$el.unwrap();\n\t\t\tthis.setElement( this.$el );\n\t\t}\n\t});\n\n\treturn view;\n} );\n","define( 'views/fields/drawer/stagingCollection',['views/fields/drawer/stagedField', 'views/fields/drawer/stagingEmpty'], function( stagedFieldView, stagedFieldsEmptyView ) {\n\tvar view = Marionette.CollectionView.extend( {\n\t\ttagName: 'div',\n\t\tchildView: stagedFieldView,\n\t\temptyView: stagedFieldsEmptyView,\n\n\t\tactiveClass: 'nf-staged-fields-active', // CSS Class for showing the reservoir.\n\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:stagedFieldsEl', this.getStagedFieldsEl, this );\n\t\t},\n\n\t\tonShow: function() {\n\n\t\t\tthis.$el = jQuery( this.el ).parent();\n\t\t\tjQuery( this.$el ).find( 'span:first' ).unwrap();\n\t\t\tthis.setElement( this.$el );\n\n\t\t\tvar that = this;\n\n\t\t\tjQuery( this.el ).sortable( {\n\t\t\t\tplaceholder: 'nf-staged-fields-sortable-placeholder',\n\t\t\t\thelper: 'clone',\n\t\t\t\ttolerance: 'pointer',\n\t\t\t\tover: function( e, ui ) {\n\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'over:stagedFields', e, ui );\n\t\t\t\t},\n\n\t\t\t\tout: function( e, ui ) {\n\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'out:stagedFields', ui );\n\t\t\t\t},\n\n\t\t\t\treceive: function( e, ui ) {\n\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'receive:stagedFields', ui );\n\t\t\t\t},\n\n\t\t\t\tupdate: function( e, ui ) {\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'sort:staging' );\n\t\t\t\t},\n\n\t\t\t\tstart: function( e, ui ) {\n\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'start:stagedFields', ui );\n\n\t\t\t\t},\n\n\t\t\t\tstop: function( e, ui ) {\n\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'stop:stagedFields', ui );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tjQuery( this.el ).parent().draggable( {\n\t\t\t\topacity: 0.9,\n\t\t\t\tconnectToSortable: '.nf-field-type-droppable',\n\t\t\t\tappendTo: '#nf-main',\n\t\t\t\trefreshPositions: true,\n\t\t\t\tgrid: [ 3, 3 ],\n\t\t\t\ttolerance: 'pointer',\n\n\t\t\t\thelper: function( e ) {\n\t\t\t\t\tvar width = jQuery( e.target ).parent().width();\n\t\t\t\t\tvar height = jQuery( e.target ).parent().height();\n\t\t\t\t\tvar element = jQuery( e.target ).parent().clone();\n\t\t\t\t\tvar left = width / 4;\n\t\t\t\t\tvar top = height / 2;\n\t\t\t\t\tjQuery( this ).draggable( 'option', 'cursorAt', { top: top, left: left } );\n\t\t\t\t\tjQuery( element ).css( 'z-index', 1000 );\n\t\t\t\t\treturn element;\n\t\t\t\t},\n\n\t\t\t\tstart: function( e, ui ) {\n\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'startDrag:fieldStaging', this, ui );\n\t\t\t\t},\n\t\t\t\tstop: function( e, ui ) {\n\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'stopDrag:fieldStaging', this, ui );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tgetStagedFieldsEl: function() {\n\t\t\treturn jQuery( this.el );\n\t\t},\n\n\t\tonAddChild: function() {\n\t\t\tjQuery( this.el ).addClass( this.activeClass );\n\t\t},\n\n\t\tonRemoveChild: function() {\n\t\t\tif( this.hasStagedFields() ) return;\n\t\t\tjQuery( this.el ).removeClass( this.activeClass );\n\t\t},\n\n\t\thasStagedFields: function() {\n\t\t\treturn 0 != this.collection.length;\n\t\t}\n\n\t} );\n\n\treturn view;\n} );\n","/**\n * Model for our staged field.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/fields/stagingModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Collection of staged fields.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/fields/stagingCollection',['models/fields/stagingModel'], function( stagingModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: stagingModel,\n\t\tcomparator: 'order'\n\t} );\n\treturn collection;\n} );\n","define( 'views/fields/drawer/typeSection',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-field-type-section',\n\n\t\tinitialize: function() {\n\t\t\t_.bindAll( this, 'render' );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:typeSection', this.getTypeSection, this );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tthis.$el = this.$el.children();\n\t\t\tthis.$el.unwrap();\n\t\t\tthis.setElement( this.$el );\n\n\t\t\tthis.dragging = false;\n\t\t\tvar that = this;\n\t\t\t/*\n\t\t\t * If we're on a mobile device, we don't want to enable dragging for our field type buttons.\n\t\t\t */\n\t\t\tif ( ! nfRadio.channel( 'app' ).request( 'is:mobile' ) ) {\n\t\t\t\tjQuery( this.el ).find( 'div.nf-field-type-draggable' ).draggable( {\n\t\t\t\t\topacity: 0.9,\n\t\t\t\t\ttolerance: 'pointer',\n\t\t\t\t\tconnectToSortable: '.nf-field-type-droppable',\n\t\t\t\t\trefreshPositions: true,\n\t\t\t\t\tgrid: [ 5, 5 ],\n\t\t\t\t\tappendTo: '#nf-builder',\n\n\t\t\t\t\thelper: function( e ) {\n\t\t\t\t\t\tvar width = jQuery( e.target ).parent().width();\n\t\t\t\t\t\tvar height = jQuery( e.target ).parent().height();\n\t\t\t\t\t\tvar element = jQuery( e.target ).parent().clone();\n\t\t\t\t\t\tvar left = width / 4;\n\t\t\t\t\t\tvar top = height / 2;\n\t\t\t\t\t\tjQuery( this ).draggable( 'option', 'cursorAt', { top: top, left: left } );\n\t\t\t\t\t\tjQuery( element ).css( 'z-index', 1000 );\n\t\t\t\t\t\treturn element;\n\t\t\t\t\t},\n\n\t\t\t\t\tstart: function( e, ui ) {\n\t\t\t\t\t\tthat.dragging = true;\n\t\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'startDrag:type', this, ui );\n\t\t\t\t\t},\n\n\t\t\t\t\tstop: function( e, ui ) {\n\t\t\t\t\t\tthat.dragging = false;\n\t\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'stopDrag:type', this, ui );\n\t\t\t\t\t},\n\n\t\t\t\t\tdrag: function(e, ui) {\n\t\t\t\t\t\tnfRadio.channel( 'drawer-addField' ).trigger( 'drag:type', this, ui, e );\t\n\t\t\t\t\t}\n\n\t\t\t\t} ).disableSelection();\n\n\t\t\t\tjQuery( this.el ).find( '.nf-item' ).focus( function() {\n\t\t\t \tjQuery( this ).addClass( 'active' );\n\t\t\t } ).blur( function() {\n\t\t\t \tjQuery( this ).removeClass( 'active' );\n\t\t\t } );\n\t\t\t}\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .nf-item': 'clickFieldType',\n\t\t\t'keydown .nf-item': 'maybeClickFieldType',\n\t\t\t'mousedown .nf-item': 'mousedownFieldType'\n\t\t},\n\n\t\tclickFieldType: function( e ) {\n\t\t\tif ( ! this.dragging ) {\n\t\t\t\tnfRadio.channel( 'drawer' ).trigger( 'click:fieldType', e );\n\t\t\t}\n\t\t},\n\n\t\tmousedownFieldType: function( e ) {\n\t\t\tjQuery( e.target).addClass( 'clicked' );\n\t\t\tsetTimeout( function() {\n\t\t\t\tjQuery( e.target ).removeClass( 'clicked' );\n\t\t\t}, 1500 );\n\t\t},\n\n\t\tmaybeClickFieldType: function( e ) {\n\t\t\tif ( 13 == e.keyCode ) {\n\t\t\t\tthis.clickFieldType( e );\n\t\t\t\tnfRadio.channel( 'drawer' ).request( 'clear:filter' );\n\t\t\t}\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\trenderFieldTypes: function() {\n\t\t\t var html = document.createElement( 'span' );\n\t\t\t var that = this;\n\t\t\t _.each( this.fieldTypes, function( id ) {\n\t\t\t var type = nfRadio.channel( 'fields' ).request( 'get:type', id );\n\t\t\t var nicename = type.get( 'nicename' );\n\t\t\t var icon = type.get( 'icon' );\n\t\t\t var renderType = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-drawer-field-type-button' );\n\t\t\t var templateHTML = renderType( { id: id, nicename: nicename, icon: icon, type: type, savedField: that.savedField } );\n var htmlFragments = document.createRange().createContextualFragment( templateHTML );\n html.appendChild( htmlFragments );\n\t\t\t } );\n\t\t\t return html.innerHTML;\n\t\t\t\t},\n\n\t\t\t\tsavedField: function() {\n\t\t\t\t\tif( this.type.get( 'savedField' ) ) {\n\t\t\t\t\t\treturn 'nf-saved';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetTypeSection: function() {\n\t\t\treturn this.el;\n\t\t}\n\t});\n\n\treturn view;\n} );\n\n","define( 'views/fields/drawer/typeSectionCollection',['views/fields/drawer/typeSection'], function( fieldTypeSectionView ) {\n\tvar view = Marionette.CollectionView.extend( {\n\t\ttagName: 'div',\n\t\tchildView: fieldTypeSectionView,\n\n\t\tonShow: function() {\n\t\t\tjQuery( this.el ).find( '.nf-settings' ).unwrap();\n\t\t\tnfRadio.channel( 'fields' ).request( 'clear:editActive' );\n\t\t}\n\t} );\n\n\treturn view;\n} );\n","define( 'views/fields/drawer/addField',['views/fields/drawer/stagingCollection', 'models/fields/stagingCollection', 'views/fields/drawer/typeSectionCollection'], function( drawerStagingView, StagingCollection, fieldTypeSectionCollectionView ) {\n\n\tvar view = Marionette.LayoutView.extend( {\n\t\ttemplate: '#tmpl-nf-drawer-content-add-field',\n\n\t\tregions: {\n\t\t\tstaging: '#nf-drawer-staging .nf-reservoir',\n\t\t\tprimary: '#nf-drawer-primary',\n\t\t\tsecondary: '#nf-drawer-secondary'\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'filter:fieldTypes', this.filterFieldTypes );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'clear:filter', this.removeFieldTypeFilter );\n\n\t\t\tthis.savedCollection = nfRadio.channel( 'fields' ).request( 'get:savedFields' );\n\t\t\tthis.primaryCollection = this.savedCollection;\n\n\t\t\tthis.fieldTypeSectionCollection = nfRadio.channel( 'fields' ).request( 'get:typeSections' );\n\t\t\tthis.secondaryCollection = this.fieldTypeSectionCollection;\n\n\t\t},\n\n\t\tonShow: function() {\n\t\t\tvar stagingCollection = nfRadio.channel( 'fields' ).request( 'get:staging' );\n\t\t\tthis.staging.show( new drawerStagingView( { collection: stagingCollection } ) );\n\n\t\t\tthis.primary.show( new fieldTypeSectionCollectionView( { collection: this.primaryCollection } ) );\n\t\t\tthis.secondary.show( new fieldTypeSectionCollectionView( { collection: this.secondaryCollection } ) );\n\t\t},\n\n\t\tgetEl: function() {\n\t\t\treturn jQuery( this.el ).parent();\n\t\t},\n\n\t\tfilterFieldTypes: function( filteredSectionCollection ) {\n\t\t\tthis.primary.reset();\n\t\t\tthis.secondary.reset();\n\t\t\tthis.filteredSectionCollection = filteredSectionCollection;\n\t\t\tthis.primary.show( new fieldTypeSectionCollectionView( { collection: this.filteredSectionCollection } ) );\n\t\t},\n\n\t\tremoveFieldTypeFilter: function () {\n\t\t\tthis.primary.show( new fieldTypeSectionCollectionView( { collection: this.savedCollection } ) );\n\t\t\tthis.secondary.show( new fieldTypeSectionCollectionView( { collection: this.fieldTypeSectionCollection } ) );\n\t\t}\n\n\t} );\n\n\treturn view;\n} );\n","define( 'views/app/drawer/itemSettingCollection',[], function() {\n\tvar view = Marionette.CollectionView.extend( {\n\t\ttagName: 'div',\n\n\t\tinitialize: function( data ) {\n\t\t\tthis.childViewOptions = { dataModel: data.dataModel };\n\t\t},\n\n\t\tgetChildView: function( model ) {\n\t\t\treturn nfRadio.channel( 'app' ).request( 'get:settingChildView', model );\n\t\t}\n\t} );\n\n\treturn view;\n} );\n","define( 'views/app/drawer/itemSettingGroup',['views/app/drawer/itemSettingCollection'], function( itemSettingCollectionView ) {\n\tvar view = Marionette.LayoutView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-content-edit-field-setting-group',\n\t\t\n\t\tregions: {\n\t\t\tsettings: '.nf-field-settings'\n\t\t},\n\n\t\tinitialize: function( data ) {\n\t\t\tthis.model.on( 'change', this.render, this );\n\t\t\tthis.dataModel = data.dataModel;\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tthis.model.off( 'change', this.render );\n\t\t},\n\n\t\tonRender: function() {\n\n\t\t\tthis.settings.show( new itemSettingCollectionView( { collection: this.model.get( 'settings' ), dataModel: this.dataModel } ) );\n\n\t\t\tif(!nfAdmin.devMode) {\n\t\t\t\t// Only check if not for calculations.\n\t\t\t\tif(0 == this.$el.find('.calculations').length){\n\t\t\t\t\tvar visibleSettings = false;\n\t\t\t\t\tthis.$el.find('.nf-setting').each(function(index, setting) {\n\t\t\t\t\t\tif( 'none' !== setting.style.display ){\n\t\t\t\t\t\t\tvisibleSettings = true;\n\t\t\t\t\t\t\treturn false; //Exit jQuery each loop.\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(!visibleSettings) {\n\t\t\t\t\t\tthis.$el.hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( this.model.get( 'display' ) ) {\n\t\t\t\t// ...\n\t\t\t} else {\n\t\t\t\tthis.settings.empty();\n\t\t\t}\n\n\t\t\tnfRadio.channel( 'drawer' ).trigger( 'render:settingGroup', this );\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .toggle': 'clickToggleGroup'\n\t\t},\n\n\t\tclickToggleGroup: function( e ) {\n\t\t\tnfRadio.channel( 'drawer' ).trigger( 'click:toggleSettingGroup', e, this.model );\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\trenderLabel: function() {\n\t\t\t\t\tif ( '' != this.label ) {\n\t\t\t\t\t\tvar groupLabel = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-drawer-content-edit-setting-group-label' );\n\t\t\t\t\t\treturn groupLabel( this );\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\trenderArrowDir: function() {\n\t\t\t\t\tif ( this.display ) {\n\t\t\t\t\t\treturn 'down';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn 'right';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn view;\n} );\n","define( 'views/app/drawer/itemSettingGroupCollection',['views/app/drawer/itemSettingGroup'], function( itemSettingGroupView ) {\n\tvar view = Marionette.CollectionView.extend( {\n\t\ttagName: 'div',\n\t\tchildView: itemSettingGroupView,\n\n\t\tinitialize: function( data ) {\n\t\t\tthis.childViewOptions = { dataModel: data.dataModel };\n\t\t}\n\t} );\n\n\treturn view;\n} );\n","define( 'views/app/drawer/editSettings',['views/app/drawer/itemSettingGroupCollection'], function( itemSettingGroupCollectionView ) {\n\tvar view = Marionette.LayoutView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-content-edit-settings',\n\n\t\tregions: {\n\t\t\tsettingTitle: '.nf-setting-title',\n\t\t\tsettingGroups: '.nf-setting-groups'\n\t\t},\n\n\t\tinitialize: function( data ) {\n\t\t\tthis.dataModel = data.model;\n\t\t\tthis.groupCollection = data.groupCollection;\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\tvar titleView = currentDomain.get( 'getSettingsTitleView' ).call( currentDomain, { model: this.model } );\n\n\t\t\tthis.settingTitle.show( titleView );\n\t\t\tthis.settingGroups.show( new itemSettingGroupCollectionView( { collection: this.groupCollection, dataModel: this.dataModel } ) );\n\t\t},\n\n\t\ttemplateHelpers: function () {\n\t \treturn {\n\t \t\tmaybeRenderTitle: function() {\n\t \t\t\tif ( 'undefined' !== typeof this.type ) {\n\t \t\t\t\tvar title = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-drawer-content-edit-settings-title' );\n\t \t\t\t\treturn title( this );\n\t \t\t\t} else {\n\t \t\t\t\treturn '';\n\t \t\t\t}\n\t \t\t},\n\n\t \t\trenderTypeNicename: function() {\n\t \t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\t\t\tvar domainID = currentDomain.get( 'id' );\n\t \t\t\tvar type = nfRadio.channel( domainID ).request( 'get:type', this.type );\n\t \t\t\treturn type.get( 'nicename' );\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t});\n\n\treturn view;\n} );\n","/**\n * Edit Settings drawer header.\n *\n * Includes our 'Done' button.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/headerEditSettings',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-header-edit-settings',\n\n\t\tinitialize: function() {\n\t\t\tif ( this.model ) {\n\t\t\t\t// Listen for our drawer being disabled.\n\t\t\t\tthis.model.on( 'change:drawerDisabled', this.render, this );\t\t\t\t\n\t\t\t}\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tif ( this.model ) {\n\t\t\t\tthis.model.off( 'change:drawerDisabled', this.render );\n\t\t\t}\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\trenderDisabled: function() {\n\t\t\t\t\t// Get our current domain.\n\t\t\t\t\tif ( this.drawerDisabled ) {\n\t\t\t\t\t\treturn 'disabled';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Button to add an action to the form.\n *\n * TODO: make dynamic\n * \n * @package Ninja Forms builder\n * @subpackage Actions\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/actions/drawer/typeButton',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-action-type-button',\n\n\t\tonRender: function() {\n\t\t\t\n\t\t\tjQuery( this.el ).disableSelection();\n\t\t\t\n\t\t\tif ( 'installed' == this.model.get( 'section') ) {\n\t\t\t\tvar that = this;\n\t\t\t\tjQuery( this.el ).draggable( {\n\t\t\t\t\topacity: 0.9,\n\t\t\t\t\ttolerance: 'intersect',\n\t\t\t\t\tscroll: false,\n\t\t\t\t\thelper: 'clone',\n\n\t\t\t\t\tstart: function( e, ui ) {\n\t\t\t\t\t\tthat.dragging = true;\n\t\t\t\t\t\tnfRadio.channel( 'drawer-addAction' ).trigger( 'startDrag:type', this, ui );\n\t\t\t\t\t},\n\n\t\t\t\t\tstop: function( e, ui ) {\n\t\t\t\t\t\tthat.dragging = false;\n\t\t\t\t\t\tnfRadio.channel( 'drawer-addAction' ).trigger( 'stopDrag:type', this, ui );\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .nf-item': 'clickAddAction'\n\t\t},\n\n\t\tclickAddAction: function( e ) {\n\t\t\tif ( ! this.dragging ) {\n\t\t\t\tif ( 'installed' == this.model.get( 'section' ) ) { // Is this an installed action?\n\t\t\t\t\tnfRadio.channel( 'actions' ).trigger( 'click:addAction', this.model );\n\t\t\t\t} else { // This isn't an installed action\n\t\t\t\t\tvar modalContent = this.model.get( 'modal_content' );\n\n\t\t\t\t\tvar actionModal = new jBox( 'Modal', {\n\t\t\t\t\t content: modalContent,\n\t\t\t\t\t zIndex:99999999,\n\t\t\t\t\t closeButton: 'box',\n\t\t\t\t\t overlay: true,\n\t\t\t\t\t width: 600,\n\t\t\t\t\t repositionOnOpen: true,\n\t\t\t\t\t reposition: true\n\t\t\t\t\t});\n\n\t\t\t\t\tactionModal.open();\n\t\t\t\t\t// window.open( this.model.get( 'link' ), '_blank' );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\trenderClasses: function() {\n\t\t\t\t\tvar classes = 'nf-item';\n\t\t\t\t\tif ( '' != jQuery.trim( this.image ) ) {\n\t\t\t\t\t\tclasses += ' nf-has-img';\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( 'installed' == this.section ) {\n\t\t\t\t\t\tclasses += ' nf-action-type';\n\t\t\t\t\t}\n\t\t\t\t\treturn classes;\n\t\t\t\t},\n\n\t\t\t\trenderStyle: function() {\n\t\t\t\t\tif ( '' != jQuery.trim( this.image ) ) {\n\n\t\t\t\t\t\t// This is being used in a template, so carefully consider the order of double/single quotes.\n\t\t\t\t\t\treturn \"background-image: url('\" + jQuery.trim( this.image ) + \"')\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn view;\n} );\n\n","define( 'views/actions/drawer/typeCollection',['views/actions/drawer/typeButton'], function( actionTypeButtonView ) {\n\tvar view = Marionette.CompositeView.extend( {\n\t\ttemplate: '#tmpl-nf-drawer-action-type-section',\n\t\tchildView: actionTypeButtonView,\n\n\t\ttemplateHelpers: function() {\n\t\t\tvar that = this;\n\t\t\treturn {\n\t\t\t\thasContents: function() {\n\t\t\t\t\treturn that.collection.length > 0;\n\t\t\t\t},\n\n\t\t\t\trenderNicename: function() {\n\t\t\t\t\treturn that.collection.nicename;\n\t\t\t\t},\n\n\t\t\t\trenderClasses: function() {\n\t\t\t\t\treturn that.collection.slug;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tattachHtml: function( collectionView, childView ) {\n\t\t\tjQuery( collectionView.el ).find( '.action-types' ).append( childView.el );\n\t\t}\n\t} );\n\n\treturn view;\n} );\n","/**\n * Model that represents our setting.\n *\n * When the model is created, we trigger the init event in two radio channels.\n *\n * This lets specific types of settings modify the model before anything uses it.\n *\n * Fieldset, for instance, uses this hook to instantiate its settings as a collection.\n * \n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/settingModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tsettings: false,\n\t\t\thide_merge_tags: false,\n\t\t\terror: false\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\t// Send out two messages saying that we've initialized a setting model.\n\t\t\tnfRadio.channel( 'app' ).trigger( 'init:settingModel', this );\n\t\t\tnfRadio.channel( this.get( 'type' ) ).trigger( 'init:settingModel', this );\n\t\t\tnfRadio.channel( 'setting-name-' + this.get( 'name' ) ).trigger( 'init:settingModel', this );\n\t\t\tthis.on( 'change:error', this.maybePreventUI, this );\n\n\t\t\t/*\n\t\t\t * If we have an objectType set on our collection, then we're creating a model for the generic settings collection.\n\t\t\t * If we're using merge tags in this setting\n\t\t\t */\n\t\t\tif( 'undefined' == typeof this.collection ) return;\n\n\t\t\tif ( this.get( 'use_merge_tags' ) && 'undefined' != typeof this.collection.options.objectType ) {\n\t\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'update:fieldKey', this.updateKey );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * When a field key is updated, send out a radio message requesting that this setting be checked for the old key.\n\t\t * We want to send the message on the objectType channel.\n\t\t * This means that if this setting is for fields, it will trigger on the fields channel, actions, etc.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Backbone.Model \tkeyModel data model representing the field for which the key just changed\n\t\t * @return void\n\t\t */\n\t\tupdateKey: function( keyModel ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'fire:updateFieldKey', keyModel, this );\n\t\t},\n\n\t\tmaybePreventUI: function() {\n\t\t\tif ( this.get( 'error' ) ) {\n\t\t\t\tnfRadio.channel( 'drawer' ).request( 'prevent:close', 'setting-' + this.get( 'name' ) + '-error' );\n\t\t\t\tnfRadio.channel( 'app' ).request( 'prevent:changeDomain', 'setting-' + this.get( 'name' ) + '-error' );\t\t\t\t\n\t\t\t} else {\n\t\t\t\tnfRadio.channel( 'drawer' ).request( 'enable:close', 'setting-' + this.get( 'name' ) + '-error' );\n\t\t\t\tnfRadio.channel( 'app' ).request( 'enable:changeDomain', 'setting-' + this.get( 'name' ) + '-error' );\n\t\t\t}\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Collections of settings for each field type.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/settingCollection',['models/app/settingModel'], function( settingModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: settingModel,\n\n\t\tinitialize: function( models, options ) {\n\t\t\tthis.options = options || {};\n\t\t}\n\t} );\n\treturn collection;\n} );\n","/**\n * Model that represents our type settings groups.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/settingGroupModel',[ 'models/app/settingCollection' ], function( SettingCollection ) {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tdisplay: false\n\t\t},\n\n\t\tinitialize: function( options ) {\n\t\t\tif ( false == this.get( 'settings' ) instanceof Backbone.Collection ) {\n\t\t\t\tthis.set( 'settings', new SettingCollection( this.get( 'settings' ) ) );\n\t\t\t}\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Collection of our type settings groups.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/settingGroupCollection',['models/app/settingGroupModel'], function( settingGroupModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: settingGroupModel\n\t} );\n\treturn collection;\n} );\n","/**\n * Model for our field type\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/typeModel',[ 'models/app/settingGroupCollection' ], function( SettingGroupCollection ) {\n\tvar model = Backbone.Model.extend( {\n\t\tinitialize: function() {\n\t\t\tif ( false === this.get( 'settingGroups' ) instanceof Backbone.Collection ) {\n\t\t\t\tthis.set( 'settingGroups', new SettingGroupCollection( this.get( 'settingGroups' ) ) );\n\t\t\t}\n\t\t\t\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'init:typeModel', this );\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Collection that holds our field type models. \n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/typeCollection',['models/app/typeModel'], function( typeModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: typeModel,\n\t\ttype: false,\n\n\t\tinitialize: function( models, options ) {\n\t\t\t_.each( options, function( option, key ) {\n\t\t\t\tthis[ key ] = option;\n\t\t\t}, this );\n\t\t}\n\t} );\n\treturn collection;\n} );\n","/**\n * Add action drawer.\n *\n * TODO: make dynamic\n * \n * @package Ninja Forms builder\n * @subpackage Actions\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/actions/drawer/addAction',['views/actions/drawer/typeCollection', 'models/app/typeCollection'], function( actionTypeCollectionView, actionTypeCollection ) {\n\n\tvar view = Marionette.LayoutView.extend( {\n\t\ttemplate: '#tmpl-nf-drawer-content-add-action',\n\n\t\tregions: {\n\t\t\tprimary: '#nf-drawer-primary',\n\t\t\t\n\t\t\tpayments: '#nf-drawer-secondary-payments',\n\t\t\tmarketing: '#nf-drawer-secondary-marketing',\n\t\t\tmanagement: '#nf-drawer-secondary-management',\n\t\t\tworkflow: '#nf-drawer-secondary-workflow',\n\t\t\tnotifications: '#nf-drawer-secondary-notifications',\n\t\t\tmisc: '#nf-drawer-secondary-misc',\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'filter:actionTypes', this.filteractionTypes );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'clear:filter', this.removeactionTypeFilter );\n\t\t\n\t\t\tthis.installedActions = nfRadio.channel( 'actions' ).request( 'get:installedActions' );\n\t\t\tthis.primaryCollection = this.installedActions;\n\n\t\t\tthis.availableActions = nfRadio.channel( 'actions' ).request( 'get:availableActions' );\n\t\t\tthis.updateAvailableActionGroups();\n\t\t},\n\n\t\tonShow: function() {\n\t\t\tthis.primary.show( new actionTypeCollectionView( { collection: this.primaryCollection } ) );\n\n\t\t\tthis.payments.show( new actionTypeCollectionView( { collection: this.paymentsCollection } ) );\n\t\t\tthis.marketing.show( new actionTypeCollectionView( { collection: this.marketingCollection } ) );\n\t\t\tthis.management.show( new actionTypeCollectionView( { collection: this.managementCollection } ) );\n\t\t\tthis.workflow.show( new actionTypeCollectionView( { collection: this.workflowCollection } ) );\n\t\t\tthis.notifications.show( new actionTypeCollectionView( { collection: this.notificationsCollection } ) );\n\t\t\tthis.misc.show( new actionTypeCollectionView( { collection: this.miscCollection } ) );\t\t\n\t\t},\n\n\t\tgetEl: function() {\n\t\t\treturn jQuery( this.el ).parent();\n\t\t},\n\n\t\tfilteractionTypes: function( filteredInstalled, filteredAvailable ) {\n\t\t\tthis.primary.reset().show( new actionTypeCollectionView( { collection: filteredInstalled } ) );\n\n\t\t\tthis.availableActions = filteredAvailable;\n\t\t\tthis.updateAvailableActionGroups();\n\t\t\tthis.payments.reset().show( new actionTypeCollectionView( { collection: this.paymentsCollection } ) );\n\t\t\tthis.marketing.reset().show( new actionTypeCollectionView( { collection: this.marketingCollection } ) );\n\t\t\tthis.management.reset().show( new actionTypeCollectionView( { collection: this.managementCollection } ) );\n\t\t\tthis.workflow.reset().show( new actionTypeCollectionView( { collection: this.workflowCollection } ) );\n\t\t\tthis.notifications.reset().show( new actionTypeCollectionView( { collection: this.notificationsCollection } ) );\n\t\t\tthis.misc.reset().show( new actionTypeCollectionView( { collection: this.miscCollection } ) );\t\n\t\t\t\n\t\t},\n\n\t\tremoveactionTypeFilter: function () {\n\t\t\tthis.primary.show( new actionTypeCollectionView( { collection: this.primaryCollection } ) );\n\n\t\t\tthis.availableActions = nfRadio.channel( 'actions' ).request( 'get:availableActions' );\n\t\t\tthis.updateAvailableActionGroups();\n\t\t\tthis.payments.show( new actionTypeCollectionView( { collection: this.paymentsCollection } ) );\n\t\t\tthis.marketing.show( new actionTypeCollectionView( { collection: this.marketingCollection } ) );\n\t\t\tthis.management.show( new actionTypeCollectionView( { collection: this.managementCollection } ) );\n\t\t\tthis.workflow.show( new actionTypeCollectionView( { collection: this.workflowCollection } ) );\n\t\t\tthis.notifications.show( new actionTypeCollectionView( { collection: this.notificationsCollection } ) );\n\t\t\tthis.misc.show( new actionTypeCollectionView( { collection: this.miscCollection } ) );\n\t\t},\n\n\t\tupdateAvailableActionGroups: function() {\n\t\t\tthis.paymentsCollection = new actionTypeCollection(\n\t\t\t\tthis.availableActions.where({group: 'payments'}),\n\t\t\t\t{\n\t\t\t\t\tslug: 'payments',\n\t\t\t\t\tnicename: nfi18n.paymentsActionNicename\n\t\t\t\t} \n\t\t\t);\n\n\t\t\tthis.marketingCollection = new actionTypeCollection(\n\t\t\t\tthis.availableActions.where({group: 'marketing'}),\n\t\t\t\t{\n\t\t\t\t\tslug: 'marketing',\n\t\t\t\t\tnicename: nfi18n.marketingActionNicename\n\t\t\t\t} \n\t\t\t);\n\n\t\t\tthis.managementCollection = new actionTypeCollection(\n\t\t\t\tthis.availableActions.where({group: 'management'}),\n\t\t\t\t{\n\t\t\t\t\tslug: 'management',\n\t\t\t\t\tnicename: nfi18n.managementActionNicename\n\t\t\t\t} \n\t\t\t);\n\n\t\t\tthis.workflowCollection = new actionTypeCollection(\n\t\t\t\tthis.availableActions.where({group: 'workflow'}),\n\t\t\t\t{\n\t\t\t\t\tslug: 'workflow',\n\t\t\t\t\tnicename: nfi18n.workflowActionNicename\n\t\t\t\t} \n\t\t\t);\n\n\t\t\tthis.notificationsCollection = new actionTypeCollection(\n\t\t\t\tthis.availableActions.where({group: 'notifications'}),\n\t\t\t\t{\n\t\t\t\t\tslug: 'notifications',\n\t\t\t\t\tnicename: nfi18n.notificationsActionNicename\n\t\t\t\t} \n\t\t\t);\n\n\t\t\tthis.miscCollection = new actionTypeCollection(\n\t\t\t\tthis.availableActions.where({group: 'misc'}),\n\t\t\t\t{\n\t\t\t\t\tslug: 'misc',\n\t\t\t\t\tnicename: nfi18n.miscActionNicename\n\t\t\t\t} \n\t\t\t);\n\t\t}\n\n\t} );\n\n\treturn view;\n} );\n","/**\n * Individual change item.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/contentViewChangesItem',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-content-view-changes-item',\n\n\t\tinitialize: function() {\n\t\t\tthis.model.on( 'change:disabled', this.render, this );\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tthis.model.off( 'change:disabled', this.render );\n\t\t},\n\n\t\t/**\n\t\t * When we render this element, remove the extra wrapping <div> that backbone creates.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tonRender: function() {\n\t\t\tthis.$el = this.$el.children();\n\t\t\tthis.$el.unwrap();\n\t\t\tthis.setElement( this.$el );\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .undoSingle': 'undoSingle'\n\t\t},\n\n\t\tundoSingle: function( e ) {\n\t\t\tnfRadio.channel( 'drawer' ).trigger( 'click:undoSingle', this.model );\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Changes collection view.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/contentViewChanges',['views/app/drawer/contentViewChangesItem'], function( viewChangesItem ) {\n\tvar view = Marionette.CollectionView.extend( {\n\t\ttagName: 'table',\n className: 'nf-changes',\n\t\tchildView: viewChangesItem\n\t} );\n\n\treturn view;\n} );\n\n","/**\n * Handles clicks on the 'view changes' button in the header.\n * \n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/headerViewChanges',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-header-view-changes',\n\n\t\tevents: {\n\t\t\t'click .undoChanges': 'clickUndoChanges'\n\t\t},\n\n\t\tclickUndoChanges: function( e ) {\n\t\t\tnfRadio.channel( 'drawer' ).trigger( 'click:undoChanges' );\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Error view used for settings.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/settingError',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-edit-setting-error'\n\t});\n\n\treturn view;\n} );\n","define( 'views/app/drawer/itemSetting',['views/app/drawer/mergeTagsContent', 'views/app/drawer/settingError'], function( mergeTagsContentView, settingErrorView ) {\n\tvar view = Marionette.LayoutView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-edit-setting-wrap',\n\n\t\tregions: {\n\t\t\terror: '.nf-setting-error'\n\t\t},\n\n\t\tinitialize: function( data ) {\n\t\t\tthis.dataModel = data.dataModel;\n\t\t\t/*\n\t\t\t * Send out a request on the setting-type-{type} channel asking if we should render on dataModel change.\n\t\t\t * Defaults to false.\n\t\t\t * This lets specific settings, like RTEs, say that they don't want to be re-rendered when their data model changes.\n\t\t\t */\n\t\t\tvar renderOnChange = ( 'undefined' == typeof nfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).request( 'renderOnChange' ) ) ? false : nfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).request( 'renderOnChange' );\n\t\t\t\n\t\t\tif ( renderOnChange ) {\n\t\t\t\tthis.dataModel.on( 'change:' + this.model.get( 'name' ), this.render, this );\n\t\t\t}\n\n\t\t\tthis.model.on( 'change:error', this.renderError, this );\n\t\t\tthis.model.on( 'change:warning', this.renderWarning, this );\n\n\t\t\tvar deps = this.model.get( 'deps' );\n\t\t\tif ( deps ) {\n\t\t\t\t// If we don't have a 'settings' property, this is a legacy depdency setup.\n\t\t\t\tif ( 'undefined' == typeof deps.settings ) {\n\t\t\t\t\tdeps.settings = [];\n\t\t\t\t\t_.each(deps, function(dep, name){\n\t\t\t\t\t\tif( 'settings' !== name ) {\n\t\t\t\t\t\t\tdeps.settings.push( { name: name, value: dep } );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tdeps.match = 'all';\n\t\t\t\t}\n\n\t\t\t\tfor (var i = deps.settings.length - 1; i >= 0; i--) {\n\t\t\t\t\tlet name = deps.settings[i].name;\n\t\t\t\t\tthis.dataModel.on( 'change:' + name, this.render, this );\n\t\t\t\t}\n\t\t\t}\n\n /**\n\t\t\t * For settings that require a remote refresh\n\t\t\t * add an \"update\"/refresh icon to the label.\n */\n var remote = this.model.get( 'remote' );\n\t\t\tif( remote ) {\n if( 'undefined' != typeof remote.refresh || remote.refresh ) {\n\t\t\t\t\tvar labelText, updateIcon, updateLink, labelWrapper;\n\n labelText = document.createTextNode( this.model.get('label') );\n\n updateIcon = document.createElement( 'span' );\n updateIcon.classList.add( 'dashicons', 'dashicons-update' );\n\n updateLink = document.createElement( 'a' );\n updateLink.classList.add( 'extra' );\n updateLink.appendChild( updateIcon );\n\n // Wrap the label text and icon/link in a parent element.\n labelWrapper = document.createElement( 'span' );\n labelWrapper.appendChild( labelText );\n labelWrapper.appendChild( updateLink );\n\n // The model expects a string value.\n this.model.set('label', labelWrapper.innerHTML );\n }\n\n\t\t\t\tnfRadio.channel( 'setting' ).trigger( 'remote', this.model, this.dataModel, this );\n\t\t\t\tthis.model.on( 'rerender', this.render, this );\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * When our drawer opens, send out a radio message on our setting type channel.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'opened', this.drawerOpened );\n\n\t\t\t/*\n\t\t\t * When our drawer closes, send out a radio message on our setting type channel.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'closed', this.drawerClosed );\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tthis.dataModel.off( 'change:' + this.model.get( 'name' ), this.render );\n\t\t\tthis.model.off( 'change:error', this.renderError );\n\n\t\t\tvar deps = this.model.get( 'deps' );\n\t\t\tif ( deps ) {\n\t\t\t\tfor (var i = deps.settings.length - 1; i >= 0; i--) {\n\t\t\t\t\tlet name = deps.settings[i].name;\n\t\t\t\t\tthis.dataModel.off( 'change:' + name, this.render );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif( this.model.get( 'remote' ) ) {\n\t\t\t\tthis.model.off( 'rerender', this.render, this );\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Send out a radio message.\n\t\t\t */\n\t\t\tnfRadio.channel( 'setting-' + this.model.get( 'name' ) ).trigger( 'destroy:setting', this.model, this.dataModel, this );\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'destroy:setting', this.model, this.dataModel, this );\n\t\t\n\t\t\t/*\n\t\t\t * Unescape any HTML being saved if we are a textbox.\n\t\t\t */\n\t\t\tif ( 'textbox' == this.model.get( 'type' ) ) {\n\t\t\t\tvar setting = this.model.get( 'name' );\n\t\t\t\tvar value = this.dataModel.get( setting );\n\t\t\t\tthis.dataModel.set( setting, _.unescape( value ), { silent: true } );\n\t\t\t}\n\n\t\t},\n\n\t\tonBeforeRender: function() {\n\t\t\t/*\n\t\t\t * We want to escape any HTML being output if we are a textbox.\n\t\t\t */\n\t\t\tif ( 'textbox' == this.model.get( 'type' ) ) {\n\t\t\t\tvar setting = this.model.get( 'name' );\n\t\t\t\tvar value = this.dataModel.get( setting );\n\t\t\t\tthis.dataModel.set( setting, _.escape( value ), { silent: true } );\n\t\t\t}\n\t\t\t\n\t\t\tnfRadio.channel( 'app' ).trigger( 'before:renderSetting', this.model, this.dataModel );\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'before:renderSetting', this.model, this.dataModel, this );\n\t\t\tnfRadio.channel( 'setting-' + this.model.get( 'name' ) ).trigger( 'before:renderSetting', this.model, this.dataModel, this );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tthis.mergeTagsContentView = false;\n\t\t\tvar that = this;\n\n\t\t\t/*\n\t\t\t * Send out a radio message.\n\t\t\t */\n\t\t\tnfRadio.channel( 'setting-' + this.model.get( 'name' ) ).trigger( 'render:setting', this.model, this.dataModel, this );\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'render:setting', this.model, this.dataModel, this );\n\n\t\t\tjQuery( this.el ).find( '.nf-help' ).each(function() {\n\t\t\t\tvar content = jQuery(this).next('.nf-help-text');\n\t\t\t\tjQuery( this ).jBox( 'Tooltip', {\n\t\t\t\t\tcontent: content,\n\t\t\t\t\tmaxWidth: 200,\n\t\t\t\t\ttheme: 'TooltipBorder',\n\t\t\t\t\ttrigger: 'click',\n\t\t\t\t\tcloseOnClick: true\n\t\t\t\t})\n\t\t });\n\t\t\t\n\t\t if ( this.model.get( 'use_merge_tags' ) ) {\n\t\t \tnfRadio.channel( 'mergeTags' ).request( 'init', this );\n\t\t }\n\n\t\t\t/*\n\t\t\t * Apply Setting Field Masks\n\t\t\t */\n\t\t\tvar mask = this.model.get( 'mask' );\n\n\t\t\tif( typeof mask != \"undefined\" ){\n\n\t\t\t\tvar input = jQuery( this.$el ).find( 'input' );\n\t\t\t\tjQuery( input ).attr( 'contentEditable', true );\n\t\t\t\tswitch( mask.type ){\n\t\t\t\t\tcase 'numeric':\n\t\t\t\t\t\tinput.autoNumeric({\n\t\t\t\t\t\t\taSep: thousandsSeparator,\n\t\t\t\t\t\t\taDec: decimalPoint\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'currency':\n\n\t\t\t\t\t\tvar currency = nfRadio.channel( 'settings' ).request( 'get:setting', 'currency' );\n\t\t\t\t\t\tvar currencySymbol = nfAdmin.currencySymbols[ currency ] || '';\n\n\t\t\t\t\t\tinput.autoNumeric({\n\t\t\t\t\t\t\taSign: jQuery('<div />').html(currencySymbol).text(),\n\t\t\t\t\t\t\taSep: thousandsSeparator,\n\t\t\t\t\t\t\taDec: decimalPoint\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'custom':\n\t\t\t\t\t\tif( mask.format ) input.mask( mask.format );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t// TODO: Error Logging.\n\t\t\t\t\t\tconsole.log( 'Notice: Mask type of \"' + mask.type + '\" is not supported.' );\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.renderError();\n\t\t},\n\n\t\tonShow: function() {\t\t\n\t\t\t/*\n\t\t\t * Send out a radio message.\n\t\t\t */\n\t\t\tnfRadio.channel( 'setting-' + this.model.get( 'name' ) ).trigger( 'show:setting', this.model, this.dataModel, this );\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'show:setting', this.model, this.dataModel, this );\n\t\t},\n\n\t\tonAttach: function() {\t\n\t\t\t/*\n\t\t\t * Send out a radio message.\n\t\t\t */\n\t\t\tnfRadio.channel( 'setting-' + this.model.get( 'name' ) ).trigger( 'attach:setting', this.model, this.dataModel, this );\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'attach:setting', this.model, this.dataModel, this );\n\t\t},\n\n\t\trenderError: function() {\n\t\t\tif ( this.model.get( 'error' ) ) {\n\t\t\t\tjQuery( this.el ).find( '.nf-setting' ).addClass( 'nf-error' );\n\t\t\t\tthis.error.show( new settingErrorView( { model: this.model } ) );\n\t\t\t} else {\n\t\t\t\tjQuery( this.el ).find( '.nf-setting' ).removeClass( 'nf-error' );\n\t\t\t\tthis.error.empty();\n\t\t\t}\n\t\t},\n\n renderWarning: function() {\n if ( this.model.get( 'warning' ) ) {\n jQuery( this.el ).find( '.nf-setting' ).addClass( 'nf-warning' );\n this.error.show( new settingErrorView( { model: this.model } ) );\n } else {\n jQuery( this.el ).find( '.nf-setting' ).removeClass( 'nf-warning' );\n this.error.empty();\n }\n },\n\n\t\ttemplateHelpers: function () {\n\t\t\tvar that = this;\n\t \treturn {\n\n\t \t\trenderVisible: function() {\n\n\t\t\t\t\tif(!nfAdmin.devMode){\n\t\t\t\t\t\tif('Action' == that.dataModel.get('objectType') && 'email' == that.dataModel.get('type')){\n\t\t\t\t\t\t\tif('cc' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t\tif('bcc' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t\tif('from_name' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t\tif('from_address' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t\tif('email_format' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif('Action' == that.dataModel.get('objectType') && 'save' == that.dataModel.get('type')){\n\t\t\t\t\t\t\tif('submitter_email' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif('label_pos' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('input_limit' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('input_limit_type' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('input_limit_msg' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('help_text' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('disable_input' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('disable_browser_autocomplete' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('mask' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('custom_mask' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('custom_name_attribute' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('personally_identifiable' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t\n\t\t\t\t\t\t// \"administration\" settings\n\t\t\t\t\t\tif('key' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('admin_label' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('num_sort' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('user_state' == this.name) return 'style=\"display:none;\"';\n\n\t\t\t\t\t\t\n\t\t\t\t\t\tif('checkbox' == that.dataModel.get('type')){\n\t\t\t\t\t\t\tif('checked_value' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t\tif('unchecked_value' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t\tif('checked_calc_value' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t\tif('unchecked_calc_value' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif('starrating' == that.dataModel.get('type')){\n\t\t\t\t\t\t\tif('default' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif('listmultiselect' == that.dataModel.get('type')){\n\t\t\t\t\t\t\tif('box_size' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif('date' == that.dataModel.get('type')){\n\t\t\t\t\t\t\tif('year_range_start' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t\tif('year_range_end' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn nfRadio.channel( 'settings' ).request( 'check:deps', this, that );\n\t \t\t},\n\n\t \t\trenderSetting: function(){\n\t \t\t\tif ( 'undefined' != typeof that.dataModel.get( this.name ) ) {\n\t \t\t\t\tthis.value = that.dataModel.get( this.name );\n\t \t\t\t} else if ( 'undefined' == typeof this.value ) {\n\t \t\t\t\tthis.value = '';\n\t \t\t\t}\n\t \t\t\tvar setting = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-edit-setting-' + this.type );\n\t\t\t\t\treturn setting( this );\n\t\t\t\t},\n\n\t\t\t\trenderLabelClasses: function() {\n\t\t\t\t\tvar classes = '';\n\t\t\t\t\tif ( this.use_merge_tags ) {\n\t\t\t\t\t\tclasses += ' has-merge-tags';\n\t\t\t\t\t}\n\t\t\t\t\tif ( 'rte' == this.type ) {\n\t\t\t\t\t\tclasses += ' rte';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn classes;\n\t\t\t\t},\n\n\t\t\t\trenderClasses: function() {\n\t\t\t\t\tvar classes = 'nf-setting ';\n\t\t\t\t\tif ( 'undefined' != typeof this.width ) {\n\t\t\t\t\t\tclasses += 'nf-' + this.width;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclasses += ' nf-one-half';\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( this.error ) {\n\t\t\t\t\t\tclasses += ' nf-error';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn classes;\n\t\t\t\t},\n\n\t\t\t\trenderTooltip: function() {\n\t\t\t\t\tif ( ! this.help ) return '';\n\t\t\t\t\tvar helpText, helpTextContainer, helpIcon, helpIconLink, helpTextWrapper;\n\n\t\t\t\t\thelpText = document.createElement( 'div' );\n\t\t\t\t\thelpText.innerHTML = this.help;\n\t\t\t\t\t\n\t\t\t\t\thelpTextContainer = document.createElement( 'div' );\n\t\t\t\t\thelpTextContainer.classList.add( 'nf-help-text' );\n\t\t\t\t\thelpTextContainer.appendChild( helpText );\n\n\t\t\t\t\thelpIcon = document.createElement( 'span' );\n\t\t\t\t\thelpIcon.classList.add( 'dashicons', 'dashicons-admin-comments' );\n helpIconLink = document.createElement( 'a' );\n helpIconLink.classList.add( 'nf-help' );\n helpIconLink.setAttribute( 'href', '#' );\n helpIconLink.setAttribute( 'tabindex', '-1' );\n helpIconLink.appendChild( helpIcon );\n\n helpTextWrapper = document.createElement( 'span' );\n helpTextWrapper.appendChild( helpIconLink );\n helpTextWrapper.appendChild( helpTextContainer );\n\n // The template expects a string value.\n\t\t\t\t\treturn helpTextWrapper.innerHTML;\n\t\t\t\t},\n\n\t\t\t /*\n\t\t\t * Render a select element with only the email fields on the\n\t\t\t * form\n\t\t\t */\n\t\t\t renderEmailFieldOptions: function() {\n\t\t\t\t var fields = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\n\t\t\t\t initialOption = document.createElement( 'option' );\n\t\t\t\t initialOption.value = '';\n\t\t\t\t initialOption.label = '--';\n\t\t\t\t initialOption.innerHTML = '--';\n\n\t\t\t\t var select_value = '';\n\t\t\t\t var select = document.createElement( 'select' );\n\t\t\t\t select.classList.add( 'setting' );\n\t\t\t\t select.setAttribute( 'data-id', 'my_seledt' );\n\t\t\t\t select.appendChild( initialOption );\n\n\t\t\t\t var index = 0;\n\t\t\t\t var that = this;\n\t\t\t\t fields.each( function( field ) {\n\t\t\t\t\t // Check for the field type in our lookup array and...\n\t\t\t\t\t if( 'email' != field.get( 'type' ) ) {\n\t\t\t\t\t\t // Return if the type is in our lookup array.\n\t\t\t\t\t\t return '';\n\t\t\t\t\t }\n\n\t\t\t\t\t var option = document.createElement( 'option' );\n\n\t\t\t\t\t option.value = field.get( 'key' );\n\t\t\t\t\t option.innerHTML = field.get( 'label' );\n\t\t\t\t\t option.label = field.get( 'label' );\n\t\t\t\t\t \n\t\t\t\t\t if( that.value === field.get( 'key' ) ) {\n\t\t\t\t\t\t option.setAttribute( 'selected', 'selected' );\n\t\t\t\t\t }\n\t\t\t\t\t select.appendChild( option );\n\t\t\t\t\t index = index + 1;\n\t\t\t\t });\n\n\t\t\t\t label = document.createElement( 'label' );\n\t\t\t\t label.classList.add( 'nf-select' );\n\n\t\t\t\t label.appendChild( select );\n\n\t\t\t\t // Select Lists need an empty '<div></div>' for styling purposes.\n\t\t\t\t emptyContainer = document.createElement( 'div' );\n\t\t\t\t label.appendChild( emptyContainer );\n\n\t\t\t\t // The template requires a string.\n\t\t\t\t return label.innerHTML;\n\t\t\t },\n\n\t\t\t\trenderMergeTags: function() {\n\t\t\t\t\tif ( this.use_merge_tags && ! this.hide_merge_tags ) {\n\t\t\t\t\t\treturn '<span class=\"dashicons dashicons-list-view merge-tags\"></span>';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t /**\n\t\t\t * Renders min and/or max attributes for the number input\n\t\t\t *\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\t renderMinMax: function() {\n\t\t\t\t\tvar minMaxStr = '';\n\t\t\t\t\t// if we have a min value set, then output it\n\t\t\t\t\tif( 'undefined' != typeof this.min_val && null != this.min_val && jQuery.isNumeric( this.min_val ) ) {\n\t\t\t\t\t\tminMaxStr = minMaxStr + \"min='\" + this.min_val + \"'\";\n\t\t\t\t\t}\n\n\t\t\t\t\t// if we have a max value set, then output it\n\t\t\t\t if( 'undefined' != typeof this.max_val && '' != this.max_val && jQuery.isNumeric( this.max_val ) ) {\n\t\t\t\t\t minMaxStr = minMaxStr + \" max='\" + this.max_val + \"'\";\n\t\t\t\t }\n\n\t\t\t\t // if we have a step size set, then output it\n\t\t\t\t if( 'undefined' != typeof this.step && '' != this.step && jQuery.isNumeric( this.step ) ) {\n\t\t\t\t\t minMaxStr = minMaxStr + \" step='\" + this.step + \"'\";\n\t\t\t\t }\n\n\t\t\t\t return minMaxStr;\n\t\t\t },\n\n\t\t\t /**\n\t\t\t * Returns a string to let the user know the min and/or max\n\t\t\t * value for the field\n\t\t\t *\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\t renderMinMaxHelper: function() {\n\t\t\t\t var minMaxHelperStr = '';\n\t\t\t\t // if we have a min value output it to the helper text\n\t\t\t\t if( 'undefined' != typeof this.min_val && null != this.min_val && jQuery.isNumeric( this.min_val ) ) {\n\t\t\t\t \t// empty string? then add '('\n\t\t\t\t \tif( 0 == minMaxHelperStr.length ) {\n\t\t\t\t \t\tminMaxHelperStr = \"(\";\n\t\t\t\t\t }\n\t\t\t\t\t minMaxHelperStr = minMaxHelperStr + nfi18n.minVal + \": \" + this.min_val;\n\t\t\t\t }\n\n\t\t\t\t // if we have a max value output it to the helper text\n\t\t\t\t if( 'undefined' != typeof this.max_val && '' != this.max_val && jQuery.isNumeric( this.max_val ) ) {\n\t\t\t\t\t // empty string? then add '('\n\t\t\t\t\t if( 0 == minMaxHelperStr.length ) {\n\t\t\t\t\t\t minMaxHelperStr = \"(\";\n\t\t\t\t\t } else {\n\t\t\t\t\t \t// else, we know we have a min so add a comma\n\t\t\t\t\t \tminMaxHelperStr = minMaxHelperStr + \", \";\n\t\t\t\t\t }\n\t\t\t\t\t minMaxHelperStr = minMaxHelperStr + nfi18n.maxVal + \": \" + this.max_val;\n\t\t\t\t }\n\n\t\t\t\t // if not an empty string, then add ')'\n\t\t\t\t if( 0 < minMaxHelperStr.length ) {\n\t\t\t\t\t minMaxHelperStr = minMaxHelperStr + \")\";\n\t\t\t\t }\n\n\t\t\t\t return minMaxHelperStr;\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\tevents: {\n\t\t\t'change .setting': 'changeSetting',\n\t\t\t'keyup .setting': 'keyUpSetting',\n\t\t\t'click .setting': 'clickSetting',\n\t\t\t'click .extra': 'clickExtra'\n\t\t},\n\n\t\tchangeSetting: function( e ) {\n\t\t\t//Check characters set in custom classes match sanitize_html_class\n\t\t\tif ( 'textbox' == this.model.get( 'type' ) && this.model.get('name').endsWith(\"_class\" )) {\n\t\t\t\tconst regexp = /^[a-zA-Z 0-9-_]+$/;\n\t\t\t\tif(e.target.value.search(regexp) === -1 && '' !== e.target.value){\n\t\t\t\t\tthis.model.set('error', \"HTML classes only allow - _ and alphanumeric characters.\" )\n\t\t\t\t} else if(e.target.value.search(regexp) === 0 || '' === e.target.value){\n\t\t\t\t\tthis.model.unset('error');\n\t\t\t\t}\n\t\t\t} else if( 'textbox' == this.model.get( 'type' ) && this.model.get('name') === \"title\" ){\n\t\t\t\tconst regexp = /[/\"<>`]/;\n\t\t\t\tif(e.target.value.search(regexp) !== -1 && '' !== e.target.value){\n\t\t\t\t\tconst foundIndex = e.target.value.search(regexp);\n\t\t\t\t\tconst foundChar = e.target.value.charAt(foundIndex);\n\t\t\t\t\tthis.model.set('error', \"The forbidden \" + foundChar + \" character was found. Title must not contain / \\\" < > ` characters.\")\n\t\t\t\t} else if(e.target.value.search(regexp) === -1 || '' === e.target.value){\n\t\t\t\t\tthis.model.unset('error');\n\t\t\t\t}\n\t\t\t}\n\t\t\tnfRadio.channel( 'app' ).trigger( 'change:setting', e, this.model, this.dataModel );\n\t\t},\n\n\t\tkeyUpSetting: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'keyup:setting', e, this.model, this.dataModel );\n\t\t\tnfRadio.channel( 'setting-' + this.model.get( 'name' ) ).trigger( 'keyup:setting', e, this.model, this.dataModel );\n\t\t},\n\n\t\tclickSetting: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:setting', e, this.model, this.dataModel );\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'click:setting', e, this.model, this.dataModel, this );\n\t\t},\n\n\t\tclickExtra: function( e ) {\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'click:extra', e, this.model, this.dataModel, this );\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'name' ) ).trigger( 'click:extra', e, this.model, this.dataModel, this );\n\t\t\tnfRadio.channel( 'setting-name-' + this.model.get( 'name' ) ).trigger( 'click:extra', e, this.model, this.dataModel, this );\n\t\t},\n\n\t\tdrawerOpened: function() {\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'drawer:opened', this.model, this.dataModel, this );\n\t\t},\n\n\t\tdrawerClosed: function() {\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'drawer:closed', this.model, this.dataModel, this );\n\t\t}\n\t});\n\n\treturn view;\n} );\n\n","/**\n * Changes collection view.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/contentPublicLink',['views/app/drawer/itemSetting'], function( itemSettingView) {\n\tvar view = Marionette.LayoutView.extend( {\n\t\ttagName: 'div',\n template: '#tmpl-nf-drawer-content-public-link',\n \n\t\tregions: {\n embedForm: '.embed-form',\n\t\t\tenablePublicLink: '.enable-public-link',\n copyPublicLink: '.copy-public-link',\n },\n\n\t\tonRender: function() {\n var formModel = Backbone.Radio.channel('app').request('get:formModel');\n var formSettingsDataModel = nfRadio.channel( 'settings' ).request( 'get:settings' );\n\n var allowPublicLinkSettingModel = nfRadio.channel( 'settings' ).request( 'get:settingModel', 'allow_public_link' );\n this.enablePublicLink.show( new itemSettingView( { model: allowPublicLinkSettingModel, dataModel: formSettingsDataModel } ) );\n \n var embedForm = \"[ninja_form id='{FORM_ID}']\".replace('{FORM_ID}', formModel.get('id'));\n formSettingsDataModel.set('embed_form', embedForm);\n\n var embedFormSettingModel = nfRadio.channel( 'settings' ).request( 'get:settingModel', 'embed_form' );\n this.embedForm.show( new itemSettingView( { model: embedFormSettingModel, dataModel: formSettingsDataModel } ) );\n\n var public_link_key = formSettingsDataModel.get('public_link_key');\n \n /**\n * Generate a public link key which is follows the format:\n * Form Id + 4 consecutive base 36 numbers\n */\n if (!public_link_key) {\n public_link_key = nfRadio.channel('app').request('generate:publicLinkKey');\n }\n\n // apply public link url to settings (ending with key)\n var publicLink = nfAdmin.publicLinkStructure.replace('[FORM_ID]', public_link_key);\n formSettingsDataModel.set('public_link', publicLink);\n \n // Display public link\n var publicLinkSettingModel = nfRadio.channel( 'settings' ).request( 'get:settingModel', 'public_link' );\n this.copyPublicLink.show(new itemSettingView( { model: publicLinkSettingModel, dataModel: formSettingsDataModel } ));\n },\n\n\t\tevents: {\n\t\t\t'click #embed_form + .js-click-copytext': 'copyFormEmbedHandler',\n\t\t\t'click #public_link + div > .js-click-copytext': 'copyPublicLinkHandler',\n\t\t\t'click #public_link + div > .js-click-resettext': 'confirmResetPublicLinkHandler',\n\t\t\t'click #public_link + div > .js-click-confirm': 'resetPublicLinkHandler',\n\t\t\t'click #public_link + div > .js-click-cancel': 'cancelResetPublicLinkHandler'\n\t\t},\n\n\t\tcopyFormEmbedHandler: function( e ) {\n\n document.getElementById('embed_form').select();\n document.execCommand('copy');\n\n e.target.innerHTML = 'Copied!';\n setTimeout(function(){ e.target.innerHTML = 'Copy'; }, 1500);\n\t\t},\n\n\t\tcopyPublicLinkHandler: function( e ) {\n\n document.getElementById('public_link').select();\n document.execCommand('copy');\n\n e.target.innerHTML = 'Copied!';\n setTimeout(function(){ e.target.innerHTML = 'Copy'; }, 1500);\n },\n \n confirmResetPublicLinkHandler: function( e ) {\n _.each( e.target.parentNode.children, function( node ) {\n if ( node.classList.contains( 'js-click-copytext' ) || node.classList.contains( 'js-click-resettext' ) ) {\n node.style.display = 'none';\n } else {\n node.style.display = 'inline-block';\n }\n } );\n },\n\n resetPublicLinkHandler: function ( e ) {\n // Generate a new link.\n var public_link_key = nfRadio.channel('app').request('generate:publicLinkKey');\n var publicLink = nfAdmin.publicLinkStructure.replace('[FORM_ID]', public_link_key);\n var formSettingsDataModel = nfRadio.channel( 'settings' ).request( 'get:settings' );\n formSettingsDataModel.set('public_link', publicLink);\n // Reset the buttons.\n this.cancelResetPublicLinkHandler( e );\n _.each( e.target.parentNode.children, function( node ) {\n if ( node.classList.contains( 'js-click-resettext' ) ) {\n node.style.display = 'inline-block';\n node.classList.add('primary');\n node.classList.remove('secondary');\n node.innerHTML = 'Link Reset!';\n setTimeout(function(){\n node.classList.add('secondary');\n node.classList.remove('primary');\n node.innerHTML = 'Reset';\n }, 1500);\n } else {\n node.style.display = 'none';\n }\n if ( node.classList.contains( 'js-click-copytext' ) ) {\n setTimeout(function(){\n node.style.display = 'inline-block';\n }, 1500);\n }\n } );\n // Update the visible public link.\n jQuery('#public_link').val( publicLink );\n },\n\n cancelResetPublicLinkHandler: function ( e ) {\n _.each( e.target.parentNode.children, function( node ) {\n if ( node.classList.contains( 'js-click-cancel' ) || node.classList.contains( 'js-click-confirm' ) ) {\n node.style.display = 'none';\n } else {\n node.style.display = 'inline-block';\n }\n } );\n }\n\t} );\n\n\treturn view;\n} );\n\n","/**\n * Handles clicks on the 'view changes' button in the header.\n * \n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/headerPublicLink',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-header-public-link'\n\t});\n\n\treturn view;\n} );\n","/**\n * Changes collection view.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/contentNewForm',['views/app/drawer/itemSetting'], function( itemSettingView) {\n\tvar view = Marionette.LayoutView.extend( {\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-content-new-form',\n\n\t\tregions: {\n\t\t\tformName: '.new-form-name',\n\t\t\tformSubmit: '.new-form-submit'\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tvar titleSettingModel = nfRadio.channel( 'settings' ).request( 'get:settingModel', 'title' );\n\t\t\tvar addSubmitSettingModel = nfRadio.channel( 'settings' ).request( 'get:settingModel', 'add_submit' );\n\t\t\tvar dataModel = nfRadio.channel( 'settings' ).request( 'get:settings' );\n\t\t\tthis.formName.show( new itemSettingView( { model: titleSettingModel, dataModel: dataModel } ) );\n\t\t\t/*\n\t\t\t * If we don't have any submit buttons on the form, prompt the user to add one on publish.\n\t\t\t */\n\t\t\tvar fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\t\t\tvar submitButtons = fieldCollection.findWhere( { type: 'submit' } );\n\t\t\tif ( 'undefined' == typeof submitButtons ) {\n\t\t\t\tthis.formSubmit.show( new itemSettingView( { model: addSubmitSettingModel, dataModel: dataModel } ) );\n\t\t\t} else {\n\t\t\t\tdataModel.set( 'add_submit', 0 );\n\t\t\t}\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .publish': 'clickPublish'\n\t\t},\n\n\t\tclickPublish: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:confirmPublish', e );\n\t\t}\n\t} );\n\n\treturn view;\n} );\n\n","/**\n * Handles clicks on the 'view changes' button in the header.\n * \n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/headerNewForm',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-header-new-form'\n\t});\n\n\treturn view;\n} );\n","/**\n * Config file for our app drawers.\n *\n * this.collection represents all of our registered drawers.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/drawerConfig',[\n\t'models/app/drawerCollection',\n\t'views/fields/drawer/addField',\n\t'views/app/drawer/editSettings',\n\t'views/app/drawer/headerEditSettings',\n\t'views/actions/drawer/addAction',\n\t'views/app/drawer/contentViewChanges',\n\t'views/app/drawer/headerViewChanges',\n\t'views/app/drawer/contentPublicLink',\n\t'views/app/drawer/headerPublicLink',\n\t'views/app/drawer/contentNewForm',\n\t'views/app/drawer/headerNewForm'\n\t], function(\n\t\tdrawerCollection,\n\t\taddFieldView,\n\t\teditSettingsView,\n\t\teditSettingsHeaderView,\n\t\taddActionView,\n\t\tviewChangesView,\n\t\tviewChangesHeaderView,\n\t\tpublicLinkView,\n\t\tpublicLinkHeaderView,\t\t\n\t\tnewFormView,\n\t\tnewFormHeaderView,\n\t\tmobileItemControlsView\n\t) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\n\t\t\tthis.collection = new drawerCollection( [\n\t\t\t\t{\n\t\t\t\t\tid: 'addField',\n\n\t\t\t\t\tgetContentView: function( data ) {\n\t\t\t\t\t\treturn new addFieldView( data );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'addAction',\n\n\t\t\t\t\tgetContentView: function( data ) {\n\t\t\t\t\t\treturn new addActionView( data );\n\t\t\t\t\t}\n\t\t\t\t},\t\t\t\t\n\t\t\t\t{\n\t\t\t\t\tid: 'editSettings',\n\n\t\t\t\t\t/*\n\t\t\t\t\t * TODO: Add filtering when editing settings. For now, removing them from settings.\n\t\t\t\t\t */\n\t\t\t\t\tgetHeaderView: function( data ) {\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * Get a custom setting header view if one is set.\n\t\t\t\t\t\t * TODO: Currently, this only works for advanced settings.\n\t\t\t\t\t\t * This could be used to replace the need for a single config file.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif ( 'undefined' != typeof data.typeModel ) {\n\t\t\t\t\t\t\tvar view = nfRadio.channel( data.typeModel.get( 'id' ) ).request( 'get:drawerHeaderView' ) || editSettingsHeaderView;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar view = editSettingsHeaderView;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn new view( data );\n\t\t\t\t\t},\n\n\t\t\t\t\tgetContentView: function( data ) {\n\t\t\t\t\t\treturn new editSettingsView( data );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'viewChanges',\n\n\t\t\t\t\t// getHeaderView() is defined by default, but we need to override it for the viewChanges drawer.\n\t\t\t\t\tgetHeaderView: function( data ) {\n\t\t\t\t\t\treturn new viewChangesHeaderView( data );\n\t\t\t\t\t},\n\n\t\t\t\t\tgetContentView: function( data ) {\n\t\t\t\t\t\treturn new viewChangesView( data );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'publicLink',\n\n\t\t\t\t\t// getHeaderView() is defined by default, but we need to override it for the publicLink drawer.\n\t\t\t\t\tgetHeaderView: function( data ) {\n\t\t\t\t\t\treturn new publicLinkHeaderView( data );\n\t\t\t\t\t},\n\n\t\t\t\t\tgetContentView: function( data ) {\n\t\t\t\t\t\treturn new publicLinkView( data );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'newForm',\n\n\t\t\t\t\t// getHeaderView() is defined by default, but we need to override it for the newForm drawer.\n\t\t\t\t\tgetHeaderView: function( data ) {\n\t\t\t\t\t\treturn new newFormHeaderView( data );\n\t\t\t\t\t},\n\n\t\t\t\t\tgetContentView: function( data ) {\n\t\t\t\t\t\treturn new newFormView( data );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t] );\n\n\t\t\t// Listen for requests for our drawer collection.\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:drawerCollection', this.getDrawerCollection, this );\n\t\t\t// Listen for requests for specific drawer models.\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:drawer', this.getDrawer, this );\n\t\t},\n\n\t\tgetDrawerCollection: function() {\n\t\t\treturn this.collection;\n\t\t},\n\n\t\tgetDrawer: function( id ) {\n\t\t\treturn this.collection.get( id );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Default settings title view.\n * \n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/defaultSettingsTitle',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-content-edit-settings-title-default',\n\n\t\ttemplateHelpers: function () {\n\t \treturn {\n\t \t\trenderTypeNicename: function() {\n\t \t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\t\t\tvar domainID = currentDomain.get( 'id' );\n\t \t\t\tvar type = nfRadio.channel( domainID ).request( 'get:type', this.type );\n\t \t\t\tif ( 'undefined' != typeof type ) {\n\t \t\t\t\treturn type.get( 'nicename' );\n\t \t\t\t} else {\n\t \t\t\t\treturn '';\n\t \t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t});\n\n\treturn view;\n} );\n","/**\n * Empty view.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/empty',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-empty'\n\t});\n\n\treturn view;\n} );\n","/**\n * Model for our individual domains.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/domainModel',[ 'views/app/drawer/defaultSettingsTitle', 'views/app/empty' ], function( DefaultSettingsTitleView, EmptyView ) {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tdashicons: '',\n\t\t\tclasses: '',\n\t\t\tactive: false,\n\t\t\turl: '',\n\t\t\thotkeys: false,\n\t\t\tdisabled: false,\n\n\t\t\tgetSettingsTitleView: function( data ) {\n\t\t\t\treturn new DefaultSettingsTitleView( data );\n\t\t\t},\n\n\t\t\tgetDefaultSettingsTitleView: function( data ) {\n\t\t\t\treturn new DefaultSettingsTitleView( data );\n\t\t\t},\n\n\t\t\tgetGutterLeftView: function( data ) {\n\t\t\t\t/*\n\t\t\t\t * Return empty view\n\t\t\t\t */\n\t\t\t\treturn new EmptyView();\n\t\t\t},\n\n\t\t\tgetGutterRightView: function( data ) {\n\t\t\t\t/* \n\t\t\t\t * Return empty view\n\t\t\t\t */\n\t\t\t\treturn new EmptyView();\n\t\t\t}\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Holds all of our domain models.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/domainCollection',['models/app/domainModel'], function( domainModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: domainModel\n\t} );\n\treturn collection;\n} );\n","define( 'views/fields/subHeader',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-sub-header-fields'\n\t});\n\n\treturn view;\n} );\n","define( 'views/fields/mainContentFieldCollection',[], function() {\n\tvar view = Marionette.CollectionView.extend( {\n\t\ttagName: 'div',\n\t\treorderOnSort: true,\n\n\t\tgetChildView: function() {\n\t\t\treturn nfRadio.channel( 'views' ).request( 'get:fieldItem' );\n\t\t},\n\n\t\tgetEmptyView: function() {\n\t\t\treturn nfRadio.channel( 'views' ).request( 'get:mainContentEmpty' );\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:sortableEl', this.getSortableEl, this );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'init:sortable', this.initSortable, this );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'destroy:sortable', this.destroySortable, this );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tif ( this.collection.models.length > 0 ) {\n\t\t\t\tjQuery( this.el ).addClass( 'nf-field-type-droppable' ).addClass( 'nf-fields-sortable' );\n\t\t\t\tvar that = this;\n\t\t\t\t/* TODO: There's a bug with some Android phones and chrome. The fix below hasn't been implement.\n\n\t\t\t\t * Instantiate our sortable field list, but only if we aren't on a mobile device.\n\t\t\t\t *\n\t\t\t\t * On Android, our sortable list isn't scrollable if it's instantiated at render.\n\t\t\t\t * Instead, for mobile, we need to instantiate our sortable when the user tapholds and then\n\t\t\t\t * destroy it when the drag stops.\n\t\t\t\t */\n\t\t\t\t// if ( ! nfRadio.channel( 'app' ).request( 'is:mobile' ) ) {\n\t\t\t\t\tthis.initSortable();\n\t\t\t\t// }\n\t\t\t}\n\t\t\tnfRadio.channel( 'app' ).trigger( 'render:fieldsSortable', this );\n\t\t},\n\n\t\tgetSortableEl: function() {\n\t\t\treturn this.el;\n\t\t},\n\n\t\tinitSortable: function() {\n\t\t\tif ( nfRadio.channel( 'app' ).request( 'is:mobile' ) ) {\n\t\t\t\tvar tolerance = 'pointer';\n\t\t\t} else {\n\t\t\t\tvar tolerance = 'intersect';\n\t\t\t}\n\n\t\t\tjQuery( this.el ).sortable( {\n\t\t\t\tcontainment: 'parent',\n\t\t\t\thelper: 'clone',\n\t\t\t\tcancel: '.nf-item-controls',\n\t\t\t\tplaceholder: 'nf-fields-sortable-placeholder',\n\t\t\t\topacity: 0.95,\n\t\t\t\tgrid: [ 5, 5 ],\n\t\t\t\t// scroll: false,\n\t\t\t\tappendTo: '#nf-main',\n\t\t\t\tscrollSensitivity: 10,\n\t\t\t\t//connectWith would allow drag and drop between fields already in the builder and the repeatable fieldset ( this is currently an issue until we deal with existing data stored)\n\t\t\t\t//connectWith: '.nf-fields-sortable', \n\n\t\t\t\treceive: function( e, ui ) {\n\t\t\t\t\tif ( ui.item.dropping || jQuery(ui.item).hasClass(\"nf-over-repeater\") ) return;\n\t\t\t\t\tnfRadio.channel( 'app' ).request( 'receive:fieldsSortable', ui );\n\t\t\t\t},\n\n\t\t\t\tover: function( e, ui ) {\n\t\t\t\t\tif ( ui.item.dropping ) return;\n\t\t\t\t\tnfRadio.channel( 'app' ).request( 'over:fieldsSortable', ui );\n\t\t\t\t},\n\n\t\t\t\tout: function( e, ui ) {\n\t\t\t\t\tif ( ui.item.dropping ) return;\n\t\t\t\t\tnfRadio.channel( 'app' ).request( 'out:fieldsSortable', ui );\n\t\t\t\t},\n\n\t\t\t\tstart: function( e, ui ) {\n\t\t\t\t\tif ( ui.item.dropping ) return;\n\t\t\t\t\tnfRadio.channel( 'app' ).request( 'start:fieldsSortable', ui );\n\t\t\t\t},\n\n\t\t\t\tupdate: function( e, ui ) {\n\t\t\t\t\tif ( ui.item.dropping ) return;\n\t\t\t\t\tnfRadio.channel( 'app' ).request( 'update:fieldsSortable', ui, this );\n\t\t\t\t},\n\n\t\t\t\tstop: function( e, ui ) {\n\t\t\t\t\tif ( ui.item.dropping ) return;\n\t\t\t\t\tnfRadio.channel( 'app' ).request( 'stop:fieldsSortable', ui );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tdestroySortable: function() {\n\t\t\tjQuery( this.el ).sortable( 'destroy' );\n\t\t},\n\n\t\tonAddChild: function( childView ) {\n\t\t\tif ( nfRadio.channel( 'fields' ).request( 'get:adding' ) ) {\n\t\t\t\tchildView.$el.hide().show( 'clip' );\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'set:adding', false );\n\t\t\t}\n\t\t}\n\t\t\n\t} );\n\n\treturn view;\n} );\n\n","define( 'views/fields/drawer/addSavedField',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-add-saved-field',\n\n\t\tinitialize: function() {\n\t\t\tthis.model.on( 'change:addSavedLoading', this.renderAddButton, this );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tthis.renderAddButton();\n\t\t},\n\n\t\trenderAddButton: function() {\n\t\t\tif ( this.model.get( 'addSavedLoading' ) ) {\n\t\t\t\tvar button = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-add-saved-field-loading' );\n\t\t\t} else {\n\t\t\t\tvar button = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-add-saved-field-button' );\n\t\t\t}\n\t\t\tjQuery( this.el ).find( '.add-button' ).html( button( this ) );\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tthis.model.off( 'change:addSavedLoading', this.render );\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .nf-button': 'clickAddSavedField'\n\t\t},\n\n\t\tclickAddSavedField: function( e ) {\n\t\t\tnfRadio.channel( 'drawer' ).trigger( 'click:addSavedField', e, this.model );\n\t\t}\n\t});\n\n\treturn view;\n} );\n\n","/**\n * Fields settings title view.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/fields/drawer/settingsTitle',['views/fields/drawer/addSavedField'], function( addSavedFieldView ) {\n\tvar view = Marionette.LayoutView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-drawer-content-edit-settings-title-fields',\n\n\t\tinitialize: function() {\n\t\t\tthis.model.on( 'change:saved', this.render, this );\n\t\t\tthis.model.on( 'change:label', this.renderjBoxContent, this );\n\t\t},\n\n\t\tregions: {\n\t\t\taddSaved: '.nf-add-saved-field'\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tthis.model.off( 'change:saved', this.render );\n\t\t\tthis.addSavedjBox.destroy();\n\t\t\tthis.model.unset( 'jBox', { silent: true } );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tthis.renderjBoxContent();\n\t\t\tvar that = this;\n\t\t\tthis.addSavedjBox = new jBox( 'Tooltip', {\n\t\t\t\ttrigger: 'click',\n\t\t\t\ttitle: 'Add to Favorite Fields',\n\t\t\t\tposition: {\n\t\t\t\t\tx:'left',\n\t\t\t\t\ty:'center'\n\t\t\t\t},\n\t\t\t\toutside:'x',\n\t\t\t\tcloseOnClick: 'body',\n\n\t\t\t\tonCreated: function() {\n\t\t\t\t\tthis.setContent( jQuery( that.el ).find( '.nf-add-saved-field' ) );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.addSavedjBox.attach( jQuery( this.el ).find( '.dashicons') );\n\t\t\tthis.model.set( 'jBox', this.addSavedjBox, { silent: true } );\n\t\t},\n\n\t\trenderjBoxContent: function() {\n\t\t\tif ( this.addSaved ) {\n\t\t\t\tthis.addSaved.show( new addSavedFieldView( { model: this.model } ) );\n\t\t\t}\n\t\t},\n\n\t\ttemplateHelpers: function () {\n\t \treturn {\n\t \t\trenderTypeNicename: function() {\n\t \t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\t\t\tvar domainID = currentDomain.get( 'id' );\n\t \t\t\tvar type = nfRadio.channel( domainID ).request( 'get:type', this.type );\n\t \t\t\tvar displayName = type.get( 'nicename' );\n\n\t \t\t\tif ( this.saved ) {\n\t \t\t\t\tvar realType = nfRadio.channel( domainID ).request( 'get:type', type.get( 'type' ) );\n\t \t\t\t\tdisplayName += ' - ' + realType.get( 'nicename' );\n\t \t\t\t}\n\t \t\t\treturn displayName;\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\trenderSavedStar: function() {\n\t\t\t\t\tif ( this.saved ) {\n\t\t\t\t\t\tvar star = 'filled';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar star = 'empty';\n\t\t\t\t\t}\n\t\t\t\t\treturn '<span class=\"dashicons dashicons-star-' + star + '\"></span>'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Add main header.\n *\n * TODO: make dynamic\n * \n * @package Ninja Forms builder\n * @subpackage Actions\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/actions/mainHeader',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-main-header-actions',\n\n\t\tinitialize: function() {\n\t\t\tvar actionCollection = nfRadio.channel( 'actions' ).request( 'get:collection' );\n\t\t\tthis.listenTo( actionCollection, 'add', this.render );\n\t\t\tthis.listenTo( actionCollection, 'remove', this.render );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tvar actionCollection = nfRadio.channel( 'actions' ).request( 'get:collection' );\n\t\t\tif ( actionCollection.models.length == 0 ) {\n\t\t\t\tjQuery( this.el ).hide();\n\t\t\t} else {\n\t\t\t\tjQuery( this.el ).show();\n\t\t\t}\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Actions subheader view.\n *\n * TODO: make dynamic\n * \n * @package Ninja Forms builder\n * @subpackage Actions\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/actions/subHeader',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-sub-header-actions'\n\t});\n\n\treturn view;\n} );\n","/**\n * Renders an application menu item from a domain model.\n *\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/itemControls',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-item-controls',\n\n\t\tinitialize: function() {\n\t\t\t// Listen for domain changes and re-render when we detect one.\n\t\t\t// this.listenTo( nfRadio.channel( 'app' ), 'change:currentDomain', this.render );\n\t\t},\n\n\t\t/**\n\t\t * When we render this view, remove the extra <div> tag created by backbone.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tonRender: function() {\n\t\t\t// this.$el = this.$el.children();\n\t\t\t// this.$el.unwrap();\n\t\t\t// this.setElement( this.$el );\n\t\t\t// \n\t\t\tthis.currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t},\n\n\t\tevents: {\n\t\t\t'mouseover .nf-item-control': 'mouseoverItemControl',\n\t\t\t'click .nf-edit-settings': 'clickEdit',\n\t\t\t'singletap .nf-item-control': 'singleTapEdit',\n\t\t\t'click .nf-item-delete': 'clickDelete',\n\t\t\t'click .nf-item-duplicate': 'clickDuplicateField'\n\t\t},\n\n\t\tclickEdit: function( e ) {\n\t\t\tif ( ! nfRadio.channel( 'app' ).request( 'is:mobile' ) ) {\n\t\t\t\tnfRadio.channel( 'app' ).trigger( 'click:edit', e, this.model );\n\t\t\t}\n\t\t},\n\n\t\tsingleTapEdit: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:edit', e, this.model );\n\t\t},\n\n\t\tclickDelete: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:delete', e, this.model );\n\t\t},\n\n\t\tclickDuplicateField: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'click:duplicate', e, this.model );\n\t\t},\n\n\t\tmouseoverItemControl: function( e ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'mouseover:itemControl', e, this.model );\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Single action table row\n *\n * TODO: make dynamic\n *\n * @package Ninja Forms builder\n * @subpackage Actions\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/actions/actionItem',['views/app/itemControls'], function( itemControlsView ) {\n\tvar view = Marionette.LayoutView.extend({\n\t\ttagName: 'tr',\n\t\ttemplate: '#tmpl-nf-action-item',\n\n\t\tregions: {\n\t\t\titemControls: '.nf-item-controls'\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.template = nfRadio.channel( 'actions' ).request( 'get:actionItemTemplate' ) || this.template;\n\t\t\tthis.model.on( 'change:label', this.render, this );\n\t\t\tthis.model.on( 'change:editActive', this.render, this );\n\t\t\tthis.model.on( 'change:active', this.maybeDeactivate, this );\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tthis.model.off( 'change:label', this.render );\n\t\t\tthis.model.off( 'change:editActive', this.render );\n\t\t\tthis.model.off( 'change:active', this.maybeDeactivate );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tif ( this.model.get( 'editActive' ) ) {\n\t\t\t\tjQuery( this.el ).addClass( 'active' );\n\t\t\t} else {\n\t\t\t\tjQuery( this.el ).removeClass( 'active' );\n\t\t\t}\n\n\t\t\tthis.maybeDeactivate();\n\n\t\t\tthis.itemControls.show( new itemControlsView( { model: this.model } ) );\n\t\t},\n\n\t\tmaybeDeactivate: function() {\n\t\t\tif ( 0 == this.model.get( 'active' ) ) {\n\t\t\t\tjQuery( this.el ).addClass( 'deactivated' );\n\t\t\t} else {\n\t\t\t\tjQuery( this.el ).removeClass( 'deactivated' );\n\t\t\t}\n\t\t},\n\n\t\tevents: {\n\t\t\t'change input': 'changeToggle',\n\t\t\t'click': 'maybeClickEdit'\n\t\t},\n\n\t\tmaybeClickEdit: function( e ) {\n\t\t\tif ( 'TR' == jQuery( e.target ).parent().prop( 'tagName' ) ) {\n\t\t\t\tnfRadio.channel( 'app' ).trigger( 'click:edit', e, this.model );\n\t\t\t}\n\t\t},\n\n\t\tchangeToggle: function( e ) {\n\t\t\tvar setting = jQuery( e.target ).data( 'setting' );\n\t\t\tvar settingModel = nfRadio.channel( 'actions' ).request( 'get:settingModel', setting );\n\t\t\tnfRadio.channel( 'app' ).request( 'change:setting', e, settingModel, this.model );\n\t\t\tnfRadio.channel( 'app' ).request( 'update:db' );\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\trenderToggle: function( settingName ) {\n\t\t\t\t\tthis.settingName = settingName || 'active';\n\t\t\t\t\tvar actionLabel = this.label;\n\t\t\t\t\tthis.label = '';\n\t\t\t\t\tthis.value = this[ this.settingName ];\n\t\t\t\t\tthis.name = this.id + '-' + this.settingName;\n\t\t\t\t\tvar html = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-edit-setting-toggle' );\n\t\t\t\t\thtml = html( this );\n\t\t\t\t\tthis.label = actionLabel;\n\t\t\t\t\treturn html;\n\t\t\t\t},\n\n\t\t\t\trenderTypeNicename: function() {\n\t\t\t\t\tvar type = nfRadio.channel( 'actions' ).request( 'get:type', this.type );\n\t\t\t\t\tif ( 'undefined' == typeof type ) return;\n\n\t\t\t\t\treturn type.get( 'nicename' );\n\t\t\t\t},\n\n /**\n\t\t\t\t * [Deprecated] Tooltips are not currently implemented in the context of the action list.\n\t\t\t\t * However, the template uses a nested template which requires the helper method.\n * @returns {string}\n */\n\t\t\t\trenderTooltip: function() {\n\t\t\t\t\treturn '';\n\t\t\t\t},\n\n\t\t\t\trenderMergeTags: function() {\n\t\t\t\t\tif ( this.use_merge_tags ) {\n\t\t\t\t\t\treturn '<span class=\"dashicons dashicons-list-view merge-tags\"></span>';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn view;\n} );\n\n","define( 'views/actions/mainContentEmpty',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-main-content-actions-empty',\n\n\t\tonBeforeDestroy: function() {\n\t\t\tjQuery( this.el ).parent().parent().removeClass( 'nf-actions-empty' );\n\t\t\t// jQuery( this.el ).parent().removeClass( 'nf-fields-empty-droppable' ).droppable( 'destroy' );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tthis.$el = this.$el.children();\n\t\t\tthis.$el.unwrap();\n\t\t\tthis.setElement( this.$el );\n\t\t},\n\n\t\tonShow: function() {\n\t\t\tjQuery( this.el ).parent().parent().addClass( 'nf-actions-empty' );\n\t\t\t// if ( jQuery( this.el ).parent().hasClass( 'ui-sortable' ) ) {\n\t\t\t// \tjQuery( this.el ).parent().sortable( 'destroy' );\n\t\t\t// }\n\t\t\t// jQuery( this.el ).parent().addClass( 'nf-fields-empty-droppable' );\n\t\t\t// jQuery( this.el ).parent().droppable( {\n\t\t\t// \taccept: function( draggable ) {\n\t\t\t// \t\tif ( jQuery( draggable ).hasClass( 'nf-stage' ) || jQuery( draggable ).hasClass( 'nf-field-type-button' ) ) {\n\t\t\t// \t\t\treturn true;\n\t\t\t// \t\t}\n\t\t\t// \t},\n\t\t\t// \thoverClass: 'nf-droppable-hover',\n\t\t\t// \ttolerance: 'pointer',\n\t\t\t// \tover: function( e, ui ) {\n\t\t\t// \t\tui.item = ui.draggable;\n\t\t\t// \t\tnfRadio.channel( 'app' ).request( 'over:fieldsSortable', ui );\n\t\t\t// \t},\n\t\t\t// \tout: function( e, ui ) {\n\t\t\t// \t\tui.item = ui.draggable;\n\t\t\t// \t\tnfRadio.channel( 'app' ).request( 'out:fieldsSortable', ui );\n\t\t\t// \t},\n\t\t\t// \tdrop: function( e, ui ) {\n\t\t\t// \t\tui.item = ui.draggable;\n\t\t\t// \t\tnfRadio.channel( 'app' ).request( 'receive:fieldsSortable', ui );\n\t\t\t// \t\tvar fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\t\t\t// \t\tfieldCollection.trigger( 'reset', fieldCollection );\n\t\t\t// \t},\n\t\t\t// } );\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Main content view for our actions.\n *\n * TODO: make dynamic\n *\n * @package Ninja Forms builder\n * @subpackage Actions\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/actions/mainContent',['views/actions/actionItem', 'views/actions/mainContentEmpty'], function( actionView, emptyView ) {\n\tvar view = Marionette.CompositeView.extend({\n\t\ttemplate: '#tmpl-nf-action-table',\n\t\tchildView: actionView,\n\t\temptyView: emptyView,\n\n\t\tinitialize: function() {\n\t\t\tthis.template = nfRadio.channel( 'actions' ).request( 'get:mainContentTemplate' ) || this.template;\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tjQuery( this.el ).droppable( {\n\t\t\t\taccept: '.nf-action-type-draggable',\n\t\t\t\tactiveClass: 'nf-droppable-active',\n\t\t\t\thoverClass: 'nf-droppable-hover',\n\t\t\t\tdrop: function( e, ui ) {\n\t\t\t\t\tnfRadio.channel( 'app' ).request( 'drop:actionType', e, ui );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tattachHtml: function( collectionView, childView ) {\n\t\t\tif ( 'undefined' == typeof nfRadio.channel( 'actions' ).request( 'get:type', childView.model.get( 'type' ) ) ) return;\n\n\t\t\tjQuery( collectionView.el ).find( 'tbody' ).append( childView.el );\n\t\t},\n\t});\n\n\treturn view;\n} );\n\n","define( 'views/advanced/mainHeader',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-main-header-settings'\n\t});\n\n\treturn view;\n} );\n","define( 'views/advanced/subHeader',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-sub-header-settings'\n\t});\n\n\treturn view;\n} );\n","define( 'views/advanced/settingItem',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\t\ttemplate: '#tmpl-nf-form-setting-type',\n\n\t\tonBeforeDestroy: function() {\n\t\t\tthis.model.off( 'change:editActive', this.updateActiveClass );\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.model.on( 'change:editActive', this.updateActiveClass, this );\n\t\t},\n\n\t\tevents: {\n\t\t\t'click': 'clickEdit'\n\t\t},\n\n\t\tclickEdit: function( e ) {\n\t\t\tnfRadio.channel( 'settings' ).trigger( 'click:edit', e, this.model );\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\treturn {\n\t\t\t\trenderClasses: function() {\n\t\t\t\t\tvar classes = 'nf-setting-wrap ' + this.id;\n\t \t\t\tif ( this.editActive ) {\n\t \t\t\t\tclasses += ' active';\n\t \t\t\t}\n\t \t\t\treturn classes;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tupdateActiveClass: function() {\n\t\t\tif ( this.model.get( 'editActive' ) ) {\n\t\t\t\tjQuery( this.el ).find( '.nf-setting-wrap' ).addClass( 'active' );\n\t\t\t} else {\n\t\t\t\tjQuery( this.el ).find( '.nf-setting-wrap' ).removeClass( 'active' );\n\t\t\t}\n\t\t}\n\t});\n\n\treturn view;\n} );\n","define( 'views/advanced/mainContent',['views/advanced/settingItem'], function( settingItem ) {\n\tvar view = Marionette.CompositeView.extend({\n\t\tchildView: settingItem,\n\t\ttemplate: '#tmpl-nf-advanced-main-content',\n\n\t\tattachHtml: function( collectionView, childView ) {\n\t\t\tjQuery( collectionView.el ).find( '.child-view-container' ).append( childView.el );\n\t\t}\n\t});\n\n\treturn view;\n} );\n","/**\n * Model that represents our form fields.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/fields/fieldModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tobjectType: 'Field',\n\t\t\tobjectDomain: 'fields',\n\t\t\teditActive: false,\n\t\t\torder: 999,\n\t\t\tidAttribute: 'id'\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tvar type = this.get('type');\n\t\t\tif ( 'undefined' == typeof type ) return;\n\n\t\t\t// Listen for model attribute changes\n\t\t\tthis.on( 'change', this.changeSetting, this );\n\n\t\t\t// Get our parent field type.\n\t\t\tvar fieldType = nfRadio.channel( 'fields' ).request( 'get:type', this.get( 'type' ) );\n\t\t\tvar parentType = fieldType.get( 'parentType' );\n\n\t\t\t// Loop through our field type \"settingDefaults\" and add any default settings.\n\t\t\t_.each( fieldType.get( 'settingDefaults' ), function( val, key ) {\n\t\t\t\tif ( 'undefined' == typeof this.get( key ) ) {\n\t\t\t\t\tthis.set( key, val, { silent: true } );\n\t\t\t\t}\n\t\t\t}, this );\n\n\t\t\t/*\n\t\t\t * If our field type is a saved field, set our field type to the actual field type\n\t\t\t */\n\t\t\tif ( 'saved' == fieldType.get( 'section' ) ) {\n\t\t\t\tthis.set( 'type', fieldType.get( 'type' ) );\n\t\t\t}\n\n\t\t\tif (type === 'listimage') {\n\t\t\t\tthis.get = this.listimageGet;\n\t\t\t\tthis.set = this.listimageSet;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Trigger an init event on three channels:\n\t\t\t * \n\t\t\t * fields\n\t\t\t * fields-parentType\n\t\t\t * field-type\n\t\t\t *\n\t\t\t * This lets specific field types modify model attributes before anything uses them.\n\t\t\t */ \n\t\t\tnfRadio.channel( 'fields' ).trigger( 'init:fieldModel', this );\n\t\t\tnfRadio.channel( 'fields-' + parentType ).trigger( 'init:fieldModel', this );\n\t\t\tnfRadio.channel( 'fields-' + this.get( 'type' ) ).trigger( 'init:fieldModel', this );\n\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'fire:updateFieldKey', this.updateFieldKey );\n\t\t},\n\n\t\tlistimageGet: function(attr) {\n if(attr === 'options') {\n\t\t\t\t\tattr = 'image_options';\n\t\t\t}\n\n return Backbone.Model.prototype.get.call(this, attr);\n\t\t},\n\t\t\n\t\tlistimageSet: function(attributes, options) {\n\t\t\tif ('options' === attributes) {\n\t\t\t\tattributes = 'image_options';\n\t\t\t}\n\t\t\treturn Backbone.Model.prototype.set.call(this, attributes, options);\n\t\t},\n\n\t\t/**\n\t\t * Fires an event on the fieldSetting-{name} channel saying we've updated a setting.\n\t\t * When we change the model attributes, fire an event saying we've changed something.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tchangeSetting: function( model, options ) {\n\t\t\tnfRadio.channel( 'fieldSetting-' + _.keys( model.changedAttributes() )[0] ).trigger( 'update:setting', this, options.settingModel ) ;\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'update:setting', this, options.settingModel );\n\t\t\tnfRadio.channel( 'app' ).trigger( 'update:setting', this, options.settingModel );\n\t\t},\n\n\t\tupdateFieldKey: function( keyModel, settingModel ) {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'replace:fieldKey', this, keyModel, settingModel );\n\t\t},\n \n /**\n * Function used to get the formatted lable of the fieldModel.\n * \n * @since 3.3.3\n * @return String\n */\n formatLabel: function() {\n // Try to use admin label.\n var label = this.get( 'admin_label' );\n // If our admin label is empty...\n if ( '' == label ) {\n // Use the field label instead.\n label = this.get( 'label' );\n }\n return label;\n }\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Collection that holds our field models.\n * This is the actual field data created by the user.\n *\n * We listen to the add and remove events so that we can push the new id to either the new fields or removed fields property.\n *\n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/fields/fieldCollection',['models/fields/fieldModel'], function( fieldModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: fieldModel,\n\t\tcomparator: function( model ){\n\t\t\treturn parseInt( model.get( 'order' ) );\n\t\t},\n\t\ttmpNum: 1,\n\n\t\tinitialize: function() {\n\t\t\tthis.on( 'add', this.addField, this );\n\t\t\tthis.on( 'remove', this.removeField, this );\n\n\t\t\tthis.listenTo( this, 'add:field', this.addNewField );\n\t\t\tthis.listenTo( this, 'append:field', this.appendNewField );\n\t\t\tthis.listenTo( this, 'remove:field', this.removeFieldResponse );\n\t\t\tthis.newIDs = [];\n\t\t},\n\n\t\t/**\n\t\t * When we add a field, push the id onto our new fields property.\n\t\t * This lets us tell the server that this is a new field to be added rather than a field to be updated.\n\t\t *\n\t\t * @since 3.0\n\t\t * @param void\n\t\t */\n\t\taddField: function( model ) {\n\t\t\tthis.newIDs.push( model.get( 'id' ) );\n\t\t},\n\n\t\t/**\n\t\t * When we remove a field, push the id onto our removed fields property.\n\t\t *\n\t\t * @since 3.0\n\t\t * @param void\n\t\t */\n\t\tremoveField: function( model ) {\n\t\t\tthis.removedIDs = this.removedIDs || {};\n\t\t\tthis.removedIDs[ model.get( 'id' ) ] = model.get( 'id' );\n\t\t},\n\n\t\taddNewField: function( model ) {\n\t\t\tthis.add( model );\n\t\t},\n\n\t\tappendNewField: function( model ) {\n\t\t\tif ( 0 == this.length ) {\n\t\t\t\tvar order = 0;\n\t\t\t} else {\n\t\t\t\tvar order = this.at( this.length -1 ).get( 'order' ) + 1;\n\t\t\t}\n\n\t\t\tmodel.set( 'order', order, { silent: true } );\n\t\t\tthis.add( model );\n\t\t},\n\n\t\tremoveFieldResponse: function( model ) {\n\t\t\tthis.remove( model );\n\t\t},\n\n\t\tfieldExists: function( fieldModel ) {\n\t\t\treturn -1 != this.indexOf( fieldModel );\n\t\t}\n\t} );\n\treturn collection;\n} );\n\n","/**\n * Config file for our app domains.\n * \n * this.collection represents all of our app domain (fields, actions, settings) information.\n *\n * This doesn't store the current domain, but rather all the data about each.\n * \n * This data includes:\n * hotkeys\n * header view\n * subheader view\n * content view\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/domainConfig',[\n\t// Require our domain collection\n\t'models/app/domainCollection',\n\t// Require our fields domain files\n\t'views/fields/subHeader',\n\t'views/fields/mainContentFieldCollection',\n\t'views/fields/drawer/settingsTitle',\n\t// Require our actions domain files\n\t'views/actions/mainHeader', \n\t'views/actions/subHeader',\n\t'views/actions/mainContent',\n\t// Require our settings domain files\n\t'views/advanced/mainHeader',\n\t'views/advanced/subHeader',\n\t'views/advanced/mainContent',\n\t// Empty View\n\t'views/app/empty',\n\t// FieldCollection: used by the default formContentData filter\n\t'models/fields/fieldCollection'\n\t], \n\tfunction( \n\t\tappDomainCollection,\n\t\tfieldsSubHeaderView,\n\t\tFieldsMainContentFieldCollectionView,\n\t\tfieldsSettingsTitleView,\n\t\tactionsMainHeaderView,\n\t\tactionsSubHeaderView,\n\t\tactionsMainContentView,\n\t\tsettingsMainHeaderView,\n\t\tsettingsSubHeaderView,\n\t\tsettingsMainContentView,\n\t\tEmptyView,\n\t\tFieldCollection\n\t) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * Add our default formContentView filter.\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContent' ).request( 'add:viewFilter', this.defaultFormContentView, 10, this );\n\t\t\t\n\t\t\t/*\n\t\t\t * Add our default formContentData filter.\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContent' ).request( 'add:loadFilter', this.defaultFormContentLoad, 10, this );\n\n\t\t\t/*\n\t\t\t * Add our default formContentGutterView filters.\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContentGutters' ).request( 'add:leftFilter', this.defaultFormContentGutterView, 10, this );\n\t\t\tnfRadio.channel( 'formContentGutters' ).request( 'add:rightFilter', this.defaultFormContentGutterView, 10, this );\n\n\t\t\t// Define our app domains\n\t\t\tthis.collection = new appDomainCollection( [\n\t\t\t\t{\n\t\t\t\t\tid: 'fields',\n\t\t\t\t\tnicename: nfi18n.domainFormFields,\n\t\t\t\t\thotkeys: {\n\t\t\t\t\t\t'Esc'\t\t\t\t: 'close:drawer',\n\t\t\t\t\t\t'Ctrl+Shift+n'\t\t: 'add:newField',\n\t\t\t\t\t\t'Ctrl+Shift+a'\t\t: 'changeDomain:actions',\n\t\t\t\t\t\t'Ctrl+Shift+s'\t\t: 'changeDomain:settings',\n\t\t\t\t\t\t'Alt+Ctrl+t'\t\t: 'open:mergeTags',\n\t\t\t\t\t\t'up'\t\t\t\t: 'up:mergeTags',\n\t\t\t\t\t\t'down'\t\t\t\t: 'down:mergeTags',\n\t\t\t\t\t\t'Shift+return'\t\t: 'return:mergeTags'\n\t\t\t\t\t},\n\t\t\t\t\tmobileDashicon: 'dashicons-menu',\n\n\t\t\t\t\tgetSubHeaderView: function() {\n\t\t\t\t\t\treturn new fieldsSubHeaderView();\n\t\t\t\t\t},\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Get the formContent view that should be used in our builder.\n\t\t\t\t\t * Uses two filters:\n\t\t\t\t\t * 1) One for our formContentData\n\t\t\t\t\t * 2) One for our formContentView\n\t\t\t\t\t *\n\t\t\t\t\t * If we don't have any view filters, we use the default formContentView.\n\t\t\t\t\t * \n\t\t\t\t\t * @since 3.0\n\t\t\t\t\t * @return formContentView backbone view.\n\t\t\t\t\t */\n\t\t\t\t\tgetMainContentView: function( collection ) {\n\t\t\t\t\t\tvar formContentData = nfRadio.channel( 'settings' ).request( 'get:setting', 'formContentData' );\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * As of version 3.0, 'fieldContentsData' has deprecated in favour of 'formContentData'.\n\t\t\t\t\t\t * If we don't have this setting, then we check for this deprecated value.\n\t\t\t\t\t\t * \n\t\t\t\t\t\t * Set our fieldContentsData to our form setting 'fieldContentsData'\n\t\t\t\t\t\t *\n\t\t\t\t\t\t * TODO: Remove this backwards compatibility eventually.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif ( ! formContentData ) {\n\t\t\t\t\t\t\tformContentData = nfRadio.channel( 'settings' ).request( 'get:setting', 'fieldContentsData' );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * If we don't have a filter for our formContentData, default to fieldCollection.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tvar formContentLoadFilters = nfRadio.channel( 'formContent' ).request( 'get:loadFilters' );\n\t\t\t\t\t\t\n\t\t\t\t\t\t/* \n\t\t\t\t\t\t* Get our first filter, this will be the one with the highest priority.\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tvar sortedArray = _.without( formContentLoadFilters, undefined );\n\t\t\t\t\t\tvar callback = _.first( sortedArray );\n\t\t\t\t\t\tformContentData = callback( formContentData, nfRadio.channel( 'app' ).request( 'get:formModel' ), true );\n\t\t\t\t\t\t\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * Check our fieldContentViewsFilter to see if we have any defined.\n\t\t\t\t\t\t * If we do, overwrite our default with the view returned from the filter.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tvar formContentViewFilters = nfRadio.channel( 'formContent' ).request( 'get:viewFilters' );\n\t\t\t\t\t\t\n\t\t\t\t\t\t/* \n\t\t\t\t\t\t* Get our first filter, this will be the one with the highest priority.\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tvar sortedArray = _.without( formContentViewFilters, undefined );\n\t\t\t\t\t\tvar callback = _.first( sortedArray );\n\t\t\t\t\t\tformContentView = callback();\n\n\t\t\t\t\t\tnfRadio.channel( 'settings' ).request( 'update:setting', 'formContentData', formContentData, true );\n\t\t\t\t\t\treturn new formContentView( { collection: formContentData } );\n\t\t\t\t\t},\n\n\t\t\t\t\tgetSettingsTitleView: function( data ) {\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * If we are dealing with a field model, return the fields settings view, otherwise, return the default.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif ( 'fields' == data.model.get( 'objectDomain' ) ) {\n\t\t\t\t\t\t\treturn new fieldsSettingsTitleView( data );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn this.get( 'getDefaultSettingsTitleView' ).call( this, data );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t},\n\n\t\t\t\t\tgetGutterLeftView: function( data ) {\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * Check our fieldContentViewsFilter to see if we have any defined.\n\t\t\t\t\t\t * If we do, overwrite our default with the view returned from the filter.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tvar gutterFilters = nfRadio.channel( 'formContentGutters' ).request( 'get:leftFilters' );\n\n\t\t\t\t\t\t/* \n\t\t\t\t\t\t* Get our first filter, this will be the one with the highest priority.\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tvar sortedArray = _.without( gutterFilters, undefined );\n\t\t\t\t\t\tvar callback = _.first( sortedArray );\n\t\t\t\t\t\tgutterView = callback();\n\n\t\t\t\t\t\treturn new gutterView(); \n\t\t\t\t\t},\n\n\t\t\t\t\tgetGutterRightView: function() {\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * Check our fieldContentViewsFilter to see if we have any defined.\n\t\t\t\t\t\t * If we do, overwrite our default with the view returned from the filter.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tvar gutterFilters = nfRadio.channel( 'formContentGutters' ).request( 'get:rightFilters' );\n\t\t\t\t\t\t\n\t\t\t\t\t\t/* \n\t\t\t\t\t\t* Get our first filter, this will be the one with the highest priority.\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tvar sortedArray = _.without( gutterFilters, undefined );\n\t\t\t\t\t\tvar callback = _.first( sortedArray );\n\t\t\t\t\t\tgutterView = callback();\n\n\t\t\t\t\t\treturn new gutterView(); \n\t\t\t\t\t}\n\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'actions',\n\t\t\t\t\tnicename: nfi18n.domainActions,\n\t\t\t\t\thotkeys: {\n\t\t\t\t\t\t'Esc'\t\t\t\t: 'close:drawer',\n\t\t\t\t\t\t'Ctrl+Shift+n'\t\t: 'add:newAction',\n\t\t\t\t\t\t'Ctrl+Shift+f'\t\t: 'changeDomain:fields',\n\t\t\t\t\t\t'Ctrl+Shift+s'\t\t: 'changeDomain:settings',\n\t\t\t\t\t\t'Alt+Ctrl+t'\t\t: 'open:mergeTags',\n\t\t\t\t\t\t'up'\t\t\t\t: 'up:mergeTags',\n\t\t\t\t\t\t'down'\t\t\t\t: 'down:mergeTags',\n\t\t\t\t\t\t'Shift+return'\t\t: 'return:mergeTags'\n\t\t\t\t\t},\n\t\t\t\t\tmobileDashicon: 'dashicons-external',\n\n\t\t\t\t\tgetSubHeaderView: function() {\n\t\t\t\t\t\treturn new actionsSubHeaderView();\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tgetMainContentView: function() {\n\t\t\t\t\t\tvar collection = nfRadio.channel( 'actions' ).request( 'get:collection' );\n\t\t\t\t\t\treturn new actionsMainContentView( { collection: collection } );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'settings',\n\t\t\t\t\tnicename: nfi18n.domainAdvanced,\n\t\t\t\t\thotkeys: {\n\t\t\t\t\t\t'Esc'\t\t\t\t: 'close:drawer',\n\t\t\t\t\t\t'Ctrl+Shift+f'\t\t: 'changeDomain:fields',\n\t\t\t\t\t\t'Ctrl+Shift+a'\t\t: 'changeDomain:actions',\n\t\t\t\t\t\t'Alt+Ctrl+t'\t\t: 'open:mergeTags',\n\t\t\t\t\t\t'up'\t\t\t\t: 'up:mergeTags',\n\t\t\t\t\t\t'down'\t\t\t\t: 'down:mergeTags',\n\t\t\t\t\t\t'Shift+return'\t\t: 'return:mergeTags'\n\t\t\t\t\t},\n\t\t\t\t\tmobileDashicon: 'dashicons-admin-generic',\n\n\t\t\t\t\tgetSubHeaderView: function() {\n\t\t\t\t\t\treturn new settingsSubHeaderView();\n\t\t\t\t\t},\n\t\t\t\t\t\n\t\t\t\t\tgetMainContentView: function() {\n\t\t\t\t\t\tvar collection = nfRadio.channel( 'settings' ).request( 'get:typeCollection' );\n\t\t\t\t\t\treturn new settingsMainContentView( { collection: collection } );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'preview',\n\t\t\t\t\tnicename: 'Preview Form',\n\t\t\t\t\tclasses: 'preview',\n\t\t\t\t\tdashicons: 'dashicons-visibility',\n\t\t\t\t\tmobileDashicon: 'dashicons-visibility',\n\t\t\t\t\turl: nfAdmin.previewurl\n\t\t\t\t}\n\t\t\t] );\n\n\t\t\t/*\n\t\t\t * Send out a radio message with our domain config collection.\n\t\t\t */\n\t\t\tnfRadio.channel( 'app' ).trigger( 'init:domainCollection', this.collection );\n\n\t\t\t/*\n\t\t\t * Respond to requests to get the app domain collection.\n\t\t\t */\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:domainCollection', this.getDomainCollection, this );\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:domainModel', this.getDomainModel, this );\n\t\t},\n\n\t\tgetDomainCollection: function() {\n\t\t\treturn this.collection;\n\t\t},\n\n\t\tgetDomainModel: function( id ) {\n\t\t\treturn this.collection.get( id );\n\t\t},\n\n\t\tdefaultFormContentView: function( formContentData ) {\n\t\t\treturn FieldsMainContentFieldCollectionView;\n\t\t},\n\n\t\tdefaultFormContentLoad: function( formContentData ) {\n\t\t\tvar fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\t\t\t/*\n\t\t\t * If we only have one load filter, we can just return the field collection.\n\t\t\t */\n\t\t\tvar formContentLoadFilters = nfRadio.channel( 'formContent' ).request( 'get:loadFilters' );\n\t\t\tvar sortedArray = _.without( formContentLoadFilters, undefined );\n\n\t\t\tif ( 1 == sortedArray.length || 'undefined' == typeof formContentData || true === formContentData instanceof Backbone.Collection ) return fieldCollection;\n\n\t\t\t/*\n\t\t\t * If another filter is registered, we are calling this from somewhere else.\n\t\t\t */\n\n \tvar fieldModels = _.map( formContentData, function( key ) {\n \t\treturn fieldCollection.findWhere( { key: key } );\n \t}, this );\n\n \treturn new FieldCollection( fieldModels );\n\t\t},\n\n\t\tdefaultFormContentGutterView: function( formContentData ) {\n\t\t\treturn EmptyView;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Model for our app data.\n * Listens for changes to the 'clean' attribute and triggers a radio message when the state changes.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/appModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tloading: false\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\t// Listen to changes to our 'clean' attribute.\n\t\t\tthis.on( 'change:clean', this.changeStatus, this );\n\t\t},\n\n\t\tchangeStatus: function() {\n\t\t\t// Send out a radio message when the 'clean' attribute changes.\n\t\t\tnfRadio.channel( 'app' ).trigger( 'change:clean', this.get( 'clean' ) );\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Creates and stores a model that represents app-wide data. i.e. current domain, current drawer, clean, etc.\n *\n * clean is a boolean that represents whether or not changes have been made.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/data',['models/app/appModel'], function( appModel ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Get the collection that represents all the parts of our application.\n\t\t\tvar appDomainCollection = nfRadio.channel( 'app' ).request( 'get:domainCollection' );\n\t\t\t// Setup our initial model.\n\t\t\tthis.model = new appModel( {\n\t\t\t\tcurrentDrawer: false,\n\t\t\t\tcurrentDomain: appDomainCollection.get( 'fields' ),\n\t\t\t\tclean: true\n\t\t\t} );\n\n\t\t\t/*\n\t\t\t * Set the mobile setting used to track whether or not we're on a mobile device.\n\t\t\t */\n\t\t\tvar mobile = ( 1 == nfAdmin.mobile ) ? true : false;\n\t\t\tthis.model.set( 'mobile', mobile );\n\n\t\t\t/*\n\t\t\t * Respond to requests to see if we are on mobile.\n\t\t\t */\n\t\t\tnfRadio.channel( 'app' ).reply( 'is:mobile', this.isMobile, this );\n\n\t\t\t/*\n\t\t\t * Respond to app channel requests for information about the state of our app.\n\t\t\t */\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:data', this.getData, this );\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:setting', this.getSetting, this );\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:currentDomain', this.getCurrentDomain, this );\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:currentDrawer', this.getCurrentDrawer, this );\n\t\t\tnfRadio.channel( 'drawer' ).reply( 'get:current', this.getCurrentDrawer, this );\n\n\t\t\t/*\n\t\t\t * Respond to app channel requests to update app settings.\n\t\t\t */\t\t\n\t\t\tnfRadio.channel( 'app' ).reply( 'update:currentDomain', this.updateCurrentDomain, this );\n\t\t\tnfRadio.channel( 'app' ).reply( 'update:currentDrawer', this.updateCurrentDrawer, this );\n\t\t\tnfRadio.channel( 'app' ).reply( 'update:setting', this.updateSetting, this );\n\n\t\t\tnfRadio.channel( 'settings' ).reply( 'check:deps', this.checkDeps, this );\n\n\t\t},\n\t\t\n\t\t/**\n\t\t * A more robust settings dependency system.\n\t\t * This allows you to have a setting only show when X AND Y are met or when X OR Y are met.\n\t\t * \n\t\t * @since \n\t\t * @param {object} setting Setting object\n\t\t * @param {object} context Object context for where this is being called.\n\t\t * @return {bool}/{string}\n\t\t */\n\t\tcheckDeps: function( setting, context ) {\n\t\t\tif ( ! setting.deps ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\t// If we do have a \"settings\" property, then this is a new dependency format.\n\t\t\tlet deps_settings = setting.deps.settings;\n\t\t\tlet match = setting.deps.match;\n\t\t\t\n\t\t\tlet hide = false;\n\t\t\t\n\t\t\tfor (var i = deps_settings.length - 1; i >= 0; i--) {\n\t\t\t\tlet name = deps_settings[i].name;\n\t\t\t\tlet value = deps_settings[i].value;\n\n\t\t\t\t// Use == here instead of === in order to avoid string => int comparison.\n\t\t\t if ( context.dataModel.get( name ) == value ) {\n\t\t \t// If we're looking for \"any\" match, we can go ahead and return here. \n\t\t \tif ( 'any' == match ) {\n\t\t \t\thide = false;\n\t\t \t\tbreak;\n\t\t \t}\n\t\t } else {\n\t \t\thide = true;\n\t\t }\n\t\t\t}\n\n\t\t\tif ( hide ) {\n\t\t\t\treturn 'style=\"display:none;\"';\n\t\t\t}\n\t\t\t\n\t\t\treturn '';\n\t\t},\n\n\t\tupdateCurrentDomain: function( model ) {\n\t\t\tthis.updateSetting( 'currentDomain', model );\n\t\t},\n\n\t\tupdateSetting: function( setting, value ) {\n\t\t\tthis.model.set( setting, value );\n\t\t\treturn true;\n\t\t},\n\n\t\tgetSetting: function( setting ) {\n\t\t\treturn this.model.get( setting );\n\t\t},\n\n\t\tgetData: function() {\n\t\t\treturn this.model;\n\t\t},\n\n\t\tgetCurrentDomain: function() {\n\t\t\treturn this.model.get( 'currentDomain' );\n\t\t},\n\n\t\tupdateCurrentDrawer: function( drawerID ) {\n\t\t\tthis.updateSetting( 'currentDrawer', drawerID );\n\t\t\treturn true;\n\t\t},\n\n\t\tgetCurrentDrawer: function() {\n\t\t\tvar currentDrawerID = this.model.get( 'currentDrawer' );\n\t\t\treturn nfRadio.channel( 'app' ).request( 'get:drawer', currentDrawerID );\n\t\t},\n\n\t\tisMobile: function() {\n\t\t\treturn this.model.get( 'mobile' );\n\t\t}\n\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Listens for click events to expand/collapse setting groups.\n * \n * @package Ninja Forms builder\n * @subpackage Fields - New Field Drawer\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/drawerToggleSettingGroup',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Listen for click events on our settings group.\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'click:toggleSettingGroup', this.toggleSettingGroup );\n\t\t},\n\n\t\t/**\n\t\t * Set the 'display' attribute of our group model to true or false to toggle.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object\t\t\te \tevent\n\t\t * @param backbone.model \tmodel \tgroup setting model\n\t\t * @return void\n\t\t */\n\t\ttoggleSettingGroup: function( e, model ) {\n\t\t\tif ( model.get( 'display' ) ) {\n\t\t\t\t/*\n\t\t\t\t * Make sure that none of our settings have errors\n\t\t\t\t */\n\t\t\t\tvar errors = false;\n\t\t\t\t_.each( model.get( 'settings' ).models, function( setting ) {\n\t\t\t\t\tif ( setting.get( 'error' ) ) {\n\t\t\t\t\t\terrors = true;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tif ( ! errors ) {\n\t\t\t\t\tmodel.set( 'display', false );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmodel.set( 'display', true );\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\n","/**\n * Updates our database with our form data.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/updateDB',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\t// Listen for the closing of the drawer and update when it's closed.\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'closed', this.updateDB );\n\t\t\t// Respond to requests to update the database.\n\t\t\tnfRadio.channel( 'app' ).reply( 'update:db', this.updateDB, this );\n\t\t\t/*\n\t\t\t * Register our default formContent save filter.\n\t\t\t * This converts our collection into an array of keys.\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContent' ).request( 'add:saveFilter', this.defaultSaveFilter, 10, this );\n\t\t},\n\n\t\t/**\n\t\t * Update our database.\n\t\t * If action isn't specified, assume we're updating the preview.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param string \taction preview or publish\n\t\t * @return void\n\t\t */\n\t\tupdateDB: function( action ) {\n\n\t\t\t// If our app is clean, dont' update.\n\t\t\tif ( nfRadio.channel( 'app' ).request( 'get:setting', 'clean' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Default action to preview.\n\t\t\taction = action || 'preview';\n\n\t\t\t// Setup our ajax actions based on the action we're performing\n\t\t\tif ( 'preview' == action ) {\n\t\t\t\tvar jsAction = 'nf_preview_update';\n\t\t\t} else if ( 'publish' == action ) {\n\t\t\t\tvar jsAction = 'nf_save_form';\n\t\t\t\t// now using a different ajax action\n\t\t\t\t// var jsAction = 'nf_batch_process';\n\t\t\t}\n\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\n\t\t\t/*\n\t\t\t * There are pieces of data that are only needed for the builder and not for the front-end.\n\t\t\t * We need to unset those.\n\t\t\t * TODO: Make this more dynamic/filterable.\n\t\t\t */\n\t\t\t_.each( formModel.get( 'fields' ).models, function( fieldModel, index ) {\n\t\t\t\tfieldModel.unset( 'jBox', { silent: true } );\n\t\t\t} );\n\n\t\t\t/*\n\t\t\t * The main content of our form is called the formContent.\n\t\t\t * In this next section, we check to see if any add-ons want to modify that contents before we save.\n\t\t\t * If there aren't any filters found, we default to the field collection.\n\t\t\t * \n\t\t\t */\n\t\t\t\n\t\t\tvar formContentData = nfRadio.channel( 'settings' ).request( 'get:setting', 'formContentData' );\n\t\t\t/*\n\t\t\t * As of version 3.0, 'fieldContentsData' has deprecated in favour of 'formContentData'.\n\t\t\t * If we don't have this setting, then we check for this deprecated value.\n\t\t\t * \n\t\t\t * Set our fieldContentsData to our form setting 'fieldContentsData'\n\t\t\t *\n\t\t\t * TODO: Remove this backwards compatibility eventually.\n\t\t\t */\n\t\t\tif ( ! formContentData ) {\n\t\t\t\tformContentData = nfRadio.channel( 'settings' ).request( 'get:setting', 'fieldContentsData' );\n\t\t\t}\n\n\t\t\tvar formContentSaveDataFilters = nfRadio.channel( 'formContent' ).request( 'get:saveFilters' );\n\t\t\t\t\t\t\n\t\t\t/* \n\t\t\t* Get our first filter, this will be the one with the highest priority.\n\t\t\t*/\n\t\t\tvar sortedArray = _.without( formContentSaveDataFilters, undefined );\n\t\t\tvar callback = _.first( sortedArray );\n\t\t\t/*\n\t\t\t * Set our formContentData to the callback specified in the filter, passing our current formContentData.\n\t\t\t */\n\t\t\tformContentData = callback( formContentData );\n\t\t\t\n\t\t\tif ( 'publish' == action && formModel.get( 'show_publish_options' ) ) {\n\t\t\t\tnfRadio.channel( 'app' ).request( 'open:drawer', 'newForm' );\n\t\t\t\tvar builderEl = nfRadio.channel( 'app' ).request( 'get:builderEl' );\n\t\t\t\tjQuery( builderEl ).addClass( 'disable-main' );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Get our form data\n\t\t\tvar formData = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\n\t\t\t// Turn our formData model into an object\n\t\t\tvar data = JSON.parse( JSON.stringify( formData ) );\n\t\t\tdata.settings.formContentData = formContentData;\n\n\t\t\t/**\n\t\t\t * Prepare fields for submission.\n\t\t\t */\n\t\t\t\n\t\t\t// Get the field IDs that we've deleted.\n\t\t\tvar removedIDs = formData.get( 'fields' ).removedIDs;\n\n\t\t\t/*\n\t\t\t * data.fields is an array of objects like:\n\t\t\t * field.label = blah\n\t\t\t * field.label_pos = blah\n\t\t\t * etc.\n\t\t\t *\n\t\t\t * And we need that format to be:\n\t\t\t * field.settings.label = blah\n\t\t\t * field.settings.label_pos = blah\n\t\t\t *\n\t\t\t * So, we loop through our fields and create a field.settings object.\n\t\t\t */\n\t\t\t_.each( data.fields, function( field ) {\n\t\t\t\tvar id = field.id;\n\t\t\t\t// We dont' want to update id or parent_id\n\t\t\t\tdelete field.id;\n\t\t\t\tdelete field.parent_id;\n\t\t\t\tvar settings = {};\n\t\t\t\t// Loop through all the attributes of our fields\n\t\t\t\tfor (var prop in field) {\n\t\t\t\t if ( field.hasOwnProperty( prop ) ) {\n\t\t\t\t \t// If our field property isn't null, then...\n if ( null !== field[ prop ] ) {\n // Set our settings.prop value.\n settings[prop] = field[prop];\n }\n // Delete the property from the field.\n delete field[ prop ];\n }\n\t\t\t\t}\n\n\t\t\t\tfor( var setting in settings ){\n\t\t\t\t\tif( null === settings[ setting ] ) {\n\t\t\t\t\t\tdelete settings[setting];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Update our field object.\n\t\t\t\tfield.settings = settings;\n\t\t\t\tfield.id = id;\n\t\t\t} );\n\n\t\t\t// Set our deleted_fields object so that we can know which fields were removed.\n\t\t\tdata.deleted_fields = removedIDs;\n\n\t\t\t/**\n\t\t\t * Prepare actions for submission.\n\t\t\t */\n\t\t\t\n\t\t\t// Get the action IDs that we've deleted.\n\t\t\tvar removedIDs = formData.get( 'actions' ).removedIDs;\n\n\t\t\t/*\n\t\t\t * data.actions is an array of objects like:\n\t\t\t * action.label = blah\n\t\t\t * action.label_pos = blah\n\t\t\t * etc.\n\t\t\t *\n\t\t\t * And we need that format to be:\n\t\t\t * action.settings.label = blah\n\t\t\t * action.settings.label_pos = blah\n\t\t\t *\n\t\t\t * So, we loop through our actions and create a field.settings object.\n\t\t\t */\n\t\t\t_.each( data.actions, function( action ) {\n\t\t\t\tvar id = action.id;\n\t\t\t\t// We dont' want to update id or parent_id\n\t\t\t\tdelete action.id;\n\t\t\t\tdelete action.parent_id;\n\t\t\t\tvar settings = {};\n\t\t\t\t// Loop through all the attributes of our actions\n\t\t\t\tfor (var prop in action) {\n\t\t\t\t if ( action.hasOwnProperty( prop ) ) {\n\t\t\t\t \t//Removing null values\n\t\t\t\t\t if( null !== action[ prop ] ) {\n\t\t\t\t\t\t // Set our settings.prop value.\n\t\t\t\t\t\t settings[ prop ] = action[ prop ];\n\t\t\t\t\t }\n\t\t\t\t // Delete the property from the action.\n\t\t\t\t delete action[ prop ];\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\t// Update our action object.\n\t\t\t\taction.settings = settings;\n\t\t\t\taction.id = id;\n\t\t\t} );\n\n\t\t\tfor ( var setting in data.settings ) {\n\t\t\t\tif ( null === data.settings[ setting ] ) {\n\t\t\t\t\tdelete data.settings[ setting ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set our deleted_actions object so that we can know which actions were removed.\n\t\t\tdata.deleted_actions = removedIDs;\n\n\t\t\t// Turn our object into a JSON string.\n\t\t\tdata = JSON.stringify( data );\n\n\t\t\t// Run anything that needs to happen before we update.\n\t\t\tnfRadio.channel( 'app' ).trigger( 'before:updateDB', data );\n\n\t\t\tif ( 'publish' == action ) {\n\t\t\t\tnfRadio.channel( 'app' ).request( 'update:setting', 'loading', true );\n\t\t\t\tnfRadio.channel( 'app' ).trigger( 'change:loading' );\t\n\n\t\t\t\t// If we're on mobile, show a notice that we're publishing\n\t\t\t\tif ( nfRadio.channel( 'app' ).request( 'is:mobile' ) ) {\n\t\t\t\t\tnfRadio.channel( 'notices' ).request( 'add', 'publishing', 'Your Changes Are Being Published', { autoClose: false } );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( 'nf_save_form' === jsAction ) {\n\t\t\t\t// if the form string is long than this, chunk it\n\t\t\t\tvar chunk_size = 100000;\n\t\t\t\tvar data_chunks = [];\n\n\t\t\t\t// Let's chunk this\n\t\t\t\tif( chunk_size < data.length ) {\n\t\t\t\t\tdata_chunks = data.match(new RegExp('.{1,' + chunk_size + '}', 'g'));\n\t\t\t\t}\n\t\t\t\t// if we have chunks send them via the step processor\n\t\t\t\tif( 1 < data_chunks.length ) {\n\t\t\t\t\t// this function will make the ajax call for chunks\n\t\t\t\t\tthis.saveChunkedForm(\n\t\t\t\t\t\tdata_chunks,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t'nf_batch_process',\n\t\t\t\t\t\taction,\n\t\t\t\t\t\tformModel.get('id'),\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t// otherwise send it the regular way.\n\t\t\t\t\tvar context = this;\n\t\t\t\t\tvar responseData = null;\n\n\t\t\t\t\tjQuery.post( ajaxurl,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction: jsAction,\n\t\t\t\t\t\t\tform: data,\n\t\t\t\t\t\t\tsecurity: nfAdmin.ajaxNonce\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction( response ) {\n\t\t\t\t\t\t\tresponseData = response;\n\t\t\t\t\t\t\tcontext.handleFinalResponse( responseData, action );\n\t\t\t\t\t\t}\n\t\t\t\t\t).fail( function( xhr, status, error ) {\n\t\t\t\t\t\tcontext.handleFinalFailure( xhr, status, error, action )\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} else if ( 'nf_preview_update' === jsAction ) {\n\t\t\t\tvar context = this;\n\t\t\t\tvar responseData = null;\n\t\t\t\tjQuery.post( ajaxurl,\n\t\t\t\t\t{\n\t\t\t\t\t\taction: jsAction,\n\t\t\t\t\t\tform: data,\n\t\t\t\t\t\tsecurity: nfAdmin.ajaxNonce\n\t\t\t\t\t},\n\t\t\t\t\tfunction( response ) {\n\t\t\t\t\t\tresponseData = response;\n\t\t\t\t\t\tcontext.handleFinalResponse( responseData, action );\n\t\t\t\t\t}\n\t\t\t\t).fail( function( xhr, status, error ) {\n\t\t\t\t\tcontext.handleFinalFailure( xhr, status, error, action )\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Function to recursively send chunks until all chunks have been sent\n\t\t *\n\t\t * @param chunks\n\t\t * @param currentIndex\n\t\t * @param currentChunk\n\t\t * @param jsAction\n\t\t * @param action\n\t\t */\n\t\tsaveChunkedForm: function( chunks, currentChunk, jsAction, action, formId, new_publish ) {\n\t\t\tvar total_chunks = chunks.length;\n\t\t\tvar postObj = {\n\t\t\t\taction: jsAction,\n\t\t\t\tbatch_type: 'chunked_publish',\n\t\t\t\tdata: {\n\t\t\t\t\tnew_publish: new_publish,\n\t\t\t\t\tchunk_total: total_chunks,\n\t\t\t\t\tchunk_current: currentChunk,\n\t\t\t\t\tchunk: chunks[ currentChunk ],\n\t\t\t\t\tform_id: formId\n\t\t\t\t},\n\t\t\t\tsecurity: nfAdmin.batchNonce\n\t\t\t};\n\n\t\t\tvar that = this;\n\t\t\tjQuery.post( ajaxurl, postObj )\n\t\t\t\t.then( function ( response ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar res = JSON.parse(response);\n\t\t\t\t\t\tif ( 'success' === res.last_request && ! res.batch_complete) {\n\t\t\t\t\t\t\tconsole.log('Chunk ' + currentChunk + ' processed');\n\n\t\t\t\t\t\t\t// send the next chunk\n\t\t\t\t\t\t\tthat.saveChunkedForm(chunks, res.requesting, jsAction, action, formId, false);\n\t\t\t\t\t\t} else if ( res.batch_complete ) {\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * We need to respond with data to make the\n\t\t\t\t\t\t\t * publish button return to gray\n */\n\t\t\t\t\t\t\tthat.handleFinalResponse(response, action);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch ( exception ) {\n\t\t\t\t\t\tconsole.log( 'There was an error in parsing the' +\n\t\t\t\t\t\t\t' response');\n\t\t\t\t\t\tconsole.log( exception );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t).fail( function( xhr, status, error ) {\n\t\t\t\t\tconsole.log( 'There was an error sending form data' );\n\t\t\t\t\tconsole.log( error );\n\t\t\t\t\tthat.handleFinalFailure( xhr, status, error, action );\n\t\t\t\t});\n\t\t},\n\n\t\thandleFinalResponse: function( response, action ) {\n\t\t\ttry {\n\t\t\t\tresponse = JSON.parse( response );\n\t\t\t\tresponse.action = action;\n\n\t\t\t\t// Run anything that needs to happen after we update.\n\t\t\t\tnfRadio.channel( 'app' ).trigger( 'response:updateDB', response );\n\t\t\t\tif ( ! nfRadio.channel( 'app' ).request( 'is:mobile' ) && 'preview' == action ) {\n\t\t\t\t\t// nfRadio.channel( 'notices' ).request( 'add', 'previewUpdate', 'Preview Updated'\t);\n\t\t\t\t}\n\t\t\t} catch( exception ) {\n\t\t\t\tconsole.log( 'Something went wrong!' );\n\t\t\t\tconsole.log( exception );\n\t\t\t}\n\t\t},\n\n\t\thandleFinalFailure: function( xhr, status, error, action ) {\n\t\t\t// For previews, only log to the console.\n\t\t\tif( 'preview' == action ) {\n\t\t\t\tconsole.log( error );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// @todo Convert alert to jBox Modal.\n\t\t\talert(xhr.status + ' ' + error + '\\r\\n' + 'An error on the server caused your form not to publish.\\r\\nPlease contact Ninja Forms Support with your PHP Error Logs.\\r\\nhttps://ninjaforms.com/contact');\n\t\t},\n\n\t\tdefaultSaveFilter: function( formContentData ) {\n\t\t\treturn formContentData.pluck( 'key' );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n\n","/**\n * Model that represents our form data.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/formModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t\tinitialize: function() {\n\t\t\tif ( ! jQuery.isNumeric( this.get( 'id' ) ) ) {\n\t\t\t\tthis.set( 'show_publish_options', true, { silent: true } );\n\t\t\t} else {\n\t\t\t\tthis.set( 'show_publish_options', false, { silent: true } );\n\t\t\t}\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Stores our form data and responds to requests for it.\n * Form data stores fields, actions, and settings.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/formData',['models/app/formModel'], function( formModel) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Instantiate Form Model\n\t\t\tthis.model = new formModel( { id: preloadedFormData.id } );\n\t\t\t// Set our field collection\n\t\t\tthis.model.set( 'fields', nfRadio.channel( 'fields' ).request( 'get:collection' ) );\n\t\t\t// Set our actions collection\n\t\t\tthis.model.set( 'actions', nfRadio.channel( 'actions' ).request( 'get:collection' ) );\n\t\t\t// Set our settings collection\n\t\t\tthis.model.set( 'settings', nfRadio.channel( 'settings' ).request( 'get:settings' ) );\n\t\t\t// Respond to requests for form data.\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:formModel', this.getFormModel, this );\n\t\t},\n\n\t\t/**\n\t\t * Return form data model.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return backbone.model\n\t\t */\n\t\tgetFormModel: function() {\n\t\t\treturn this.model;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Handles changing our preview link when we change the 'clean' state of our app.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/previewLink',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Listen for events that would change our preview link\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'before:sendChanges', this.disablePreview, this );\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'response:sendChanges', this.enablePreview, this );\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:clean', this.changePreviewNicename, this );\n\t\t},\n\n\t\t/**\n\t\t * Disable our preview link before we send data to update our preview.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tdisablePreview: function() {\n\t\t\t// Get our preview domain\n\t\t\tvar appDomains = nfRadio.channel( 'app' ).request( 'get:domainCollection' );\n\t\t\tvar preview = appDomains.get( 'preview' );\n\t\t\t// Set disabled to true. This will trigger the preview link view to redraw.\n\t\t\tpreview.set( 'disabled', true );\n\t\t},\n\n\t\t/**\n\t\t * Change the preview link text from \"Preview Form\" to \"Preview Changes\" or vice-versa\n\t\t * \n\t\t * @since 3.0\n\t\t * @param boolean \tclean app data state\n\t\t * @return void\n\t\t */\n\t\tchangePreviewNicename: function( clean ) {\n\t\t\t// Get our preview domain\n\t\t\tvar appDomains = nfRadio.channel( 'app' ).request( 'get:domainCollection' );\n\t\t\tvar preview = appDomains.get( 'preview' );\n\n\t\t\t// If we have unsaved changes, set our text to 'changes' otherwise, set it to 'form'\n\t\t\tif ( ! clean ) {\n\t\t\t\tvar nicename = 'Preview Changes';\n\t\t\t} else {\n\t\t\t\tvar nicename = 'Preview Form';\n\t\t\t}\n\n\t\t\tpreview.set( 'nicename', nicename );\n\t\t},\n\n\t\t/**\n\t\t * Enable our preview button.\n\t\t * This is triggered when we get a response from our preview update.\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tenablePreview: function() {\n\t\t\t// Get our preview domain\n\t\t\tvar appDomains = nfRadio.channel( 'app' ).request( 'get:domainCollection' );\n\t\t\tvar preview = appDomains.get( 'preview' );\n\t\t\t// Set disabled to false. This will trigger the preview link view to redraw.\n\t\t\tpreview.set( 'disabled', false );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Listens to our app channel for requests to change the current domain.\n *\n * The app menu and the main submenu both contain clickable links that change the current domain.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/menuButtons',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:publish', this.publish );\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:viewChanges', this.viewChanges );\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:publicLink', this.publicLink );\n\t\t},\n\n\t\tpublish: function() {\n\t\t\tnfRadio.channel( 'app' ).request( 'update:db', 'publish' );\n\t\t},\n\n\t\tviewChanges: function() {\n\t\t\tvar changeCollection = nfRadio.channel( 'changes' ).request( 'get:collection' );\n\t\t\tnfRadio.channel( 'app' ).request( 'open:drawer', 'viewChanges', { collection: changeCollection } );\n\t\t},\n\n\t\tpublicLink: function() {\n\t\t\tnfRadio.channel( 'app' ).request( 'open:drawer', 'publicLink' );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Model that represents our change data.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/changeModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tdisabled: false\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Holds all of our change models.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/changeCollection',['models/app/changeModel'], function( domainModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: domainModel,\n\n\t\tcomparator: function( model ) {\n\t\t\tvar id = parseInt( model.cid.replace( 'c', '' ) );\n\t\t\treturn -id;\n\t\t}\n\t} );\n\treturn collection;\n} );\n","/**\n * Track settings changes across our app.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/trackChanges',['models/app/changeCollection', 'models/app/changeModel'], function( changeCollection, ChangeModel ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.collection = new changeCollection();\n\t\t\t// Respond to any requests to add a change directly.\n\t\t\tnfRadio.channel( 'changes' ).reply( 'register:change', this.registerChange, this );\n\t\t\t// Respond to requests for the change collection\n\t\t\tnfRadio.channel( 'changes' ).reply( 'get:collection', this.getCollection, this );\n\t\t\t// Listen for changes in our clean state. If it goes to clean, clear our collection.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:clean', this.maybeResetCollection );\n\t\t},\n\n\t\tregisterChange: function( action, model, changes, label, data ) {\n\t\t\tvar data = typeof data !== 'undefined' ? data : {};\n\t\t\tif ( 'undefined' == typeof label.dashicon ) {\n\t\t\t\tlabel.dashicon = 'admin-generic';\n\t\t\t}\n\t\t\tvar changeModel = new ChangeModel({\n\t\t\t\taction: action,\n\t\t\t\tmodel: model,\n\t\t\t\tchanges: changes,\n\t\t\t\tlabel: label,\n\t\t\t\tdata: data\t\t\n\t\t\t} );\n\t\t\tthis.collection.add( changeModel );\n\n\t\t\t//loop through repeater fields to reset active state if needed\n\t\t\tnfRadio.channel( 'fields-repeater' ).trigger( 'clearEditActive', model );\n\t\t\t\n\t\t\treturn changeModel;\n\t\t},\n\n\t\tgetCollection: function() {\n\t\t\treturn this.collection;\n\t\t},\n\n\t\tmaybeResetCollection: function( clean ) {\n\t\t\tif ( clean ) {\n\t\t\t\tthis.collection.reset();\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","define( 'controllers/app/undoChanges',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'click:undoChanges', this.undoChanges, this );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'click:undoSingle', this.undoSingle, this );\n\t\t},\n\n\t\tundoChanges: function() {\n\t\t\tvar changeCollection = nfRadio.channel( 'changes' ).request( 'get:collection' );\n\t\t\tchangeCollection.sort();\n\t\t\tvar that = this;\n\t\t\t_.each( changeCollection.models, function( change ) {\n\t\t\t\tthat.undoSingle( change, true );\n\t\t\t} );\n\t\t\tchangeCollection.reset();\n\t\t\t// Update preview.\n\t\t\tnfRadio.channel( 'app' ).request( 'update:db' );\t\t\t\n\t\t\tnfRadio.channel( 'app' ).request( 'update:setting', 'clean', true );\n\t\t\tnfRadio.channel( 'app' ).request( 'close:drawer' );\n this.dispatchClick();\n\t\t},\n\n\t\tundoSingle: function( change, undoAll ) {\n\t\t\tnfRadio.channel( 'changes' ).request( 'undo:' + change.get( 'action' ), change, undoAll );\n this.dispatchClick();\n\t\t},\n \n dispatchClick: function() {\n // If we already have a cookie, exit.\n if ( document.cookie.includes( 'nf_undo' ) ) return;\n // Otherwise, prepare our cookie.\n var cname = \"nf_undo\";\n var d = new Date();\n // Set expiration at 1 week.\n d.setTime( d.getTime() + ( 7*24*60*60*1000 ) );\n var expires = \"expires=\"+ d.toUTCString();\n // Bake the cookie.\n document.cookie = cname + \"=1;\" + expires + \";path=/\";\n var data = {\n action: 'nf_undo_click',\n security: nfAdmin.ajaxNonce\n }\n // Make our AJAX call.\n jQuery.post( ajaxurl, data );\n }\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Listens for our update:db response and replaces tmp ids with new ids if we were performing the publish action.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/publishResponse',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Listen to our app channel for the updateDB response.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'response:updateDB', this.publishResponse );\n\t\t},\n\n\t\tpublishResponse: function( response ) {\n\t\t\t// If we aren't performing a publish action, bail.\n\t\t\tif ( 'publish' !== response.action ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t\n\t\t\t// Check to see if we have any new ids. \n\t\t\tif ( 'undefined' != typeof response.data.new_ids ) {\n\n\t\t\t\t// If we have any new fields, update their models with the new id.\n\t\t\t\tif ( 'undefined' != typeof response.data.new_ids.fields ) {\n\t\t\t\t\t_.each( response.data.new_ids.fields, function( newID, oldID ) {\n\t\t\t\t\t\tvar field = nfRadio.channel( 'fields' ).request( 'get:field', oldID );\n\t\t\t\t\t\tif ( field ) {\n\t\t\t\t\t\t\tfield.set( 'id', newID );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfield = nfRadio.channel( 'fields-repeater' ).request( 'get:childField', oldID, null, newID );\n\t\t\t\t\t\t\tfield.set( 'id', newID );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// If we have any new actions, update their models with the new id.\n\t\t\t\tif ( 'undefined' != typeof response.data.new_ids.actions ) {\n\t\t\t\t\t_.each( response.data.new_ids.actions, function( newID, oldID ) {\n\t\t\t\t\t\tvar action = nfRadio.channel( 'actions' ).request( 'get:action', oldID );\n\t\t\t\t\t\tif ( action ) {\n\t\t\t\t\t\t\taction.set( 'id', newID );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// If we have a new form id, update the model with the new id.\n\t\t\t\tif ( 'undefined' != typeof response.data.new_ids.forms ) {\n\t\t\t\t\t_.each( response.data.new_ids.forms, function( newID, oldID ) {\n\t\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\t\t\t\t\t\tformModel.set( 'id', newID );\n\t\t\t\t\t\thistory.replaceState( '', '', 'admin.php?page=ninja-forms&form_id=' + newID );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnfRadio.channel( 'app' ).request( 'update:setting', 'loading', false );\n\t\t\tnfRadio.channel( 'app' ).trigger( 'change:loading' );\n\n\t\t\t// If we're on mobile, show a notice that we're publishing\n\t\t\tif ( nfRadio.channel( 'app' ).request( 'is:mobile' ) ) {\n\t\t\t\tnfRadio.channel( 'notices' ).request( 'close', 'publishing' );\n\t\t\t}\n\t\t\t// Add a notice that we've published.\n//\t\t\tnfRadio.channel( 'notices' ).request( 'add', 'published', 'Changes Published' );\n\t\t\tnfRadio.channel( 'app' ).trigger( 'app:published', response );\n\n\t\t\t// Mark our app as clean. This will disable the publish button and fire anything else that cares about the state.\n\t\t\tnfRadio.channel( 'app' ).request( 'update:setting', 'clean', true );\n\t\t}\n\t\t\n\t});\n\n\treturn controller;\n} );\n","/**\n * Listens to our app channel for requests to change the current domain.\n *\n * The app menu and the main submenu both contain clickable links that change the current domain.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/changeDomain',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Listen for both menu and submenu clicks.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:menu', this.changeAppDomain );\n\t\t\t// Reply to specific requests to change the domain\n\t\t\tnfRadio.channel( 'app' ).reply( 'change:currentDomain', this.changeAppDomain, this );\n\n\t\t\t// Reply to requests to prevent our drawer from closing\n\t\t\tnfRadio.channel( 'app' ).reply( 'prevent:changeDomain', this.preventChange, this );\n\t\t\t// Reply to requests to enable drawer closing\n\t\t\tnfRadio.channel( 'app' ).reply( 'enable:changeDomain', this.enableChange, this );\n\n\t\t\t/*\n\t\t\t * Object that holds our array of 'prevent change' values.\n\t\t\t * We use an array so that registered requests can unregister and not affect each other.\n\t\t\t */\n\t\t\tthis.objPreventChange = {};\n\t\t},\n\n\t\tchangeAppDomain: function( e, model ) {\n\t\t\t/*\n\t\t\t * If we have disabled movement between domains, return false.\n\t\t\t */\n\t\t\tif ( this.maybePreventChange() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * If we are passed a model, use that model.\n\t\t\t * Otherwise, get the domain from the event target data.\n\t\t\t */ \n\t\t\tif ( 'undefined' == typeof model ) {\n\t\t\t\tvar domainID = jQuery( e.target ).data( 'domain' );\n\t\t\t\tvar model = nfRadio.channel( 'app' ).request( 'get:domainModel', domainID );\n\t\t\t}\n\t\t\t// If a drawer is open, close it.\n\t\t\tif ( nfRadio.channel( 'app' ).request( 'get:currentDrawer' ) ) {\n\t\t\t\tnfRadio.channel( 'app' ).request( 'close:drawer' );\n\t\t\t}\n\t\t\t/*\n\t\t\t * If we aren't dealing with an external url (such as preview), update our app data\n\t\t\t * and trigger a radio message saying we've changed the domain.\n\t\t\t */ \n\t\t\tif ( 0 == model.get( 'url' ).length ) {\n\t\t\t\tvar mainEl = nfRadio.channel( 'app' ).request( 'get:mainEl' );\n\t\t\t\tnfRadio.channel( 'app' ).request( 'update:currentDomain', model );\n\t\t\t\tjQuery( mainEl ).scrollTop( 0 );\t\t\t\t\n\t\t\t\tnfRadio.channel( 'app' ).trigger( 'change:currentDomain', model );\n\t\t\t}\n\t\t},\n\n\t\t/**\n * Check to see if anything has registered a key to prevent changing the domain.\n * \n * @since 3.0\n * @return boolean\n */\n maybePreventChange: function() {\n \tif ( 0 == Object.keys( this.objPreventChange ).length ) {\n \t\treturn false;\n \t} else {\n \t\treturn true;\n \t}\n },\n\n /**\n * Register a key to prevent changing the domain.\n * \n * @since 3.0\n * @param string \tkey unique id for our 'prevent change domain' setting.\n * @return void\n */\n preventChange: function( key ) {\n \tthis.objPreventChange[ key ] = true;\n },\n\n /**\n * Remove a previously registered key that is preventing our domain from changing.\n * \n * @since 3.0\n * @param string \tkey unique id for our 'prevent change domain' setting.\n * @return void\n */\n enableChange: function( key ) {\n \tdelete this.objPreventChange[ key ];\n },\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Modify the user's browser history when they click on a domain\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/pushstate',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:currentDomain', this.changePushState );\n\t\t},\n\n\t\tchangePushState: function() {\n\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\thistory.pushState( null, null, window.location.href + '&domain=' + currentDomain.get( 'id' ) );\n\t\t\tvar reExp = /domain=\\\\d+/;\n\t\t\tvar url = window.location.toString();\n\t\t\tvar newUrl = url.replace( reExp, '' );\n\t\t\tconsole.log( newUrl );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Handles our hotkey execution. Needs to be cleaned up and made more programmatic.\n * \n * Our hotkeys are defined by the domain that we're currently viewing. In each domain's model, there is a hotkey object.\n * \n * Currently too much hotkey data is hard-coded here.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/hotkeys',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// When we change our domain, change the hotkeys to those within that object.\n\t\t\tthis.listenTo( nfRadio.channel( 'main' ), 'render:main', this.changeHotkeys );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'opened', this.changeHotkeys );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'render:settingGroup', this.changeHotkeys );\n\t\t\t// Currently, these are the functions that run when the new field or new action hotkey is pressed.\n\t\t\t// TODO: move these into a config module or into something more programmatic and scalable.\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'add:newField', this.addNewField );\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'add:newAction', this.addNewAction );\n\t\t\t// Same as above, these functions need to be moved into a more modular/programmatic solution.\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'changeDomain:fields', this.changeDomainFields );\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'changeDomain:actions', this.changeDomainActions );\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'changeDomain:settings', this.changeDomainSettings );\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'close:drawer', this.closeDrawer );\n\t\t},\n\n\t\tchangeHotkeys: function() {\n\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\tjQuery( document ).off( '.nfDomainHotkeys' );\n\t\t\tjQuery( 'input' ).off( '.nfDomainHotkeys' );\n\t\t\tif ( currentDomain.get( 'hotkeys' ) ) {\n\t\t\t\tjQuery.each( currentDomain.get( 'hotkeys' ), function( hotkey, msg ) {\n\t\t\t\t\tjQuery( document ).on( 'keydown.nfDomainHotkeys', null, hotkey, function( e ) {\n\t\t\t\t\t\tnfRadio.channel( 'hotkeys' ).trigger( msg, e );\n\t\t\t\t\t} );\n\t\t\t\t\tjQuery( 'input' ).on( 'keydown.nfDomainHotkeys', null, hotkey, function( e ) {\n\t\t\t\t\t\tnfRadio.channel( 'hotkeys' ).trigger( msg, e );\n\t\t\t\t\t} );\n\t\t\t\t\tjQuery( 'textarea' ).on( 'keydown.nfDomainHotkeys', null, hotkey, function( e ) {\n\t\t\t\t\t\tnfRadio.channel( 'hotkeys' ).trigger( msg, e );\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\taddNewField: function() {\n\t\t\tif ( 'addField' != nfRadio.channel( 'app' ).request( 'get:currentDrawer' ) ) {\n\t\t\t\tnfRadio.channel( 'app' ).request( 'open:drawer', 'addField' );\n\t\t\t} else {\n\t\t\t\tnfRadio.channel( 'app' ).request( 'close:drawer' );\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t\taddNewAction: function() {\n\t\t\tif ( 'addAction' != nfRadio.channel( 'app' ).request( 'get:currentDrawer' ) ) {\n\t\t\t\tnfRadio.channel( 'app' ).request( 'open:drawer', 'addAction' );\n\t\t\t} else {\n\t\t\t\tnfRadio.channel( 'app' ).request( 'close:drawer' );\n\t\t\t}\n\t\t},\n\n\t\tchangeDomainFields: function() {\n\t\t\tvar appDomainCollection = nfRadio.channel( 'app' ).request( 'get:domainCollection' );\n\t\t\tvar fieldsDomain = appDomainCollection.get( 'fields' );\n\t\t\tnfRadio.channel( 'app' ).request( 'change:currentDomain', {}, fieldsDomain );\n\t\t},\n\n\t\tchangeDomainActions: function() {\n\t\t\tvar appDomainCollection = nfRadio.channel( 'app' ).request( 'get:domainCollection' );\n\t\t\tvar actionsDomain = appDomainCollection.get( 'actions' );\n\t\t\tnfRadio.channel( 'app' ).request( 'change:currentDomain', {}, actionsDomain );\n\t\t},\n\n\t\tchangeDomainSettings: function() {\n\t\t\tvar appDomainCollection = nfRadio.channel( 'app' ).request( 'get:domainCollection' );\n\t\t\tvar settingsDomain = appDomainCollection.get( 'settings' );\n\t\t\tnfRadio.channel( 'app' ).request( 'change:currentDomain', {}, settingsDomain );\n\t\t},\n\n\t\tcloseDrawer: function() {\n\t\t\tnfRadio.channel( 'app' ).request( 'close:drawer' );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Change the clean state of our app when settings are changed.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/cleanState',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * Set an array of field model attributes to ignore.\n\t\t\t * This list will be filtered just before we ignore anything.\n\t\t\t */ \n\t\t\tthis.ignoreAttributes = [\n\t\t\t\t'editActive'\n\t\t\t];\n\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'update:setting', this.setAppClean );\n\t\t},\n\n\t\tsetAppClean: function( model ) {\n\t\t\tfor( var attr in model.changedAttributes() ) {\n\t\t\t\tvar changedAttr = attr;\n\t\t\t\tvar after = model.changedAttributes()[ attr ];\n\t\t\t}\n\n\t\t\tvar ignoreAttributes = nfRadio.channel( 'undo-' + model.get( 'type' ) ).request( 'ignore:attributes', this.ignoreAttributes ) || this.ignoreAttributes;\n\t\t\t\n\t\t\tif ( -1 != this.ignoreAttributes.indexOf( attr ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tnfRadio.channel( 'app' ).request( 'update:setting', 'clean', false );\n\n\t\t\t//loop through repeater fields to reset active state if needed\n\t\t\tnfRadio.channel( 'fields-repeater' ).trigger( 'clearEditActive', model );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * All of the core undo functions. Listens on the 'changes' channel for an undo request.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/coreUndo',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'changes' ).reply( 'undo:changeSetting', this.undoChangeSetting, this );\n\t\t\tnfRadio.channel( 'changes' ).reply( 'undo:addObject', this.undoAddObject, this );\n\t\t\tnfRadio.channel( 'changes' ).reply( 'undo:removeObject', this.undoRemoveObject, this );\n\t\t\tnfRadio.channel( 'changes' ).reply( 'undo:duplicateObject', this.undoDuplicateObject, this );\n\n\t\t\tnfRadio.channel( 'changes' ).reply( 'undo:sortFields', this.undoSortFields, this );\n\t\t\tnfRadio.channel( 'changes' ).reply( 'undo:addListOption', this.undoAddListOption, this );\n\t\t\tnfRadio.channel( 'changes' ).reply( 'undo:removeListOption', this.undoRemoveListOption, this );\n\t\t\tnfRadio.channel( 'changes' ).reply( 'undo:sortListOptions', this.undoSortListOptions, this );\n\t\t},\n\n\t\t/**\n\t\t * Undo settings that have been changed.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model \tchange \tmodel of our change\n\t\t * @param boolean \t\t\tundoAll are we in the middle of an undo all action?\n\t\t * @return void\n\t\t */\n\t\tundoChangeSetting: function( change, undoAll ) {\n\t\t\tvar fieldModel = change.get( 'model' );\n\t\t\tvar changes = change.get( 'changes' );\n\t\t\tvar attr = changes.attr;\n\t\t\tvar before = changes.before;\n\t\t\tfieldModel.set( attr, before );\n\t\t\tthis.maybeRemoveChange( change, undoAll );\n\t\t},\n\n\t\t/**\n\t\t * Undo adding a field or an action.\n\t\t * Loops through our change collection and removes any change models based upon the one we're removing.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model \tchange \tmodel of our change\n\t\t * @param boolean \t\t\tundoAll are we in the middle of an undo all action?\n\t\t * @return void\n\t\t */\n\t\tundoAddObject: function( change, undoAll ) {\n\t\t\tvar objectModel = change.get( 'model' );\n\t\t\tvar collection = change.get( 'data' ).collection;\n\n\t\t\tif ( 'undefined' != typeof collection.newIDs ) {\n\t\t\t\tdelete collection.newIDs[ objectModel.get( 'id' ) ];\n\t\t\t}\n\t\t\t\t\t\t\n\t\t\tif ( ! undoAll ) {\n\t\t\t\tvar changeCollection = nfRadio.channel( 'changes' ).request( 'get:collection' );\n\t\t\t\tvar results = changeCollection.where( { model: objectModel } );\n\n\t\t\t\t_.each( results, function( model ) {\n\t\t\t\t\tif ( model !== change ) {\n\t\t\t\t\t\tchangeCollection.remove( model );\n\t\t\t\t\t}\n\t\t\t\t} );\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tcollection.remove( objectModel );\n\t\t\tthis.maybeRemoveChange( change, undoAll );\n\t\t},\t\t\n\n\t\t/**\n\t\t * Undo adding a field or an action.\n\t\t * Loops through our change collection and removes any change models based upon the one we're removing.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model \tchange \tmodel of our change\n\t\t * @param boolean \t\t\tundoAll are we in the middle of an undo all action?\n\t\t * @return void\n\t\t */\n\t\tundoDuplicateObject: function( change, undoAll ) {\n\t\t\tvar objectModel = change.get( 'model' );\n\t\t\tvar objectCollection = change.get( 'data' ).collection;\n\n\t\t\tif ( ! undoAll ) {\n\t\t\t\tvar changeCollection = nfRadio.channel( 'changes' ).request( 'get:collection' );\n\t\t\t\tvar results = changeCollection.where( { model: objectModel } );\n\n\t\t\t\t_.each( results, function( model ) {\n\t\t\t\t\tif ( model !== change ) {\n\t\t\t\t\t\tchangeCollection.remove( model );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tobjectCollection.remove( objectModel );\n\t\t\tthis.maybeRemoveChange( change, undoAll );\n\t\t},\n\n\t\t/**\n\t\t * Undo removing a field or an action.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model \tchange \tmodel of our change\n\t\t * @param boolean \t\t\tundoAll are we in the middle of an undo all action?\n\t\t * @return void\n\t\t */\n\t\tundoRemoveObject: function( change, undoAll ) {\n\t\t\tvar dataModel = change.get( 'model' );\n\t\t\tvar collection = change.get( 'data' ).collection;\n\n\t\t\tnfRadio.channel( dataModel.get( 'objectDomain' ) ).request( 'add', dataModel );\n\n\t\t\tdelete collection.removedIDs[ dataModel.get( 'id' ) ];\n\t\t\t\n\t\t\tif ( ! undoAll ) {\n\t\t\t\tvar changeCollection = nfRadio.channel( 'changes' ).request( 'get:collection' );\n\t\t\t\tvar results = changeCollection.where( { model: dataModel } );\n\n\t\t\t\t_.each( results, function( model ) {\n\t\t\t\t\tif ( model !== change ) {\n\t\t\t\t\t\tmodel.set( 'disabled', false );\n\t\t\t\t\t}\n\t\t\t\t} );\t\t\t\t\n\t\t\t}\n\n\t\t\t// Trigger a reset on our field collection so that our view re-renders\n\t\t\tcollection.trigger( 'reset', collection );\n\n\t\t\tthis.maybeRemoveChange( change, undoAll );\n\t\t},\n\n\t\t/**\n\t\t * Undo field sorting.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model \tchange \tmodel of our change\n\t\t * @param boolean \t\t\tundoAll are we in the middle of an undo all action?\n\t\t * @return void\n\t\t */\n\t\tundoSortFields: function( change, undoAll ) {\n\t\t\tvar data = change.get( 'data' );\n\t\t\tvar fields = data.fields;\n\n\t\t\tvar fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\t\t\t_.each( fields, function( changeModel ) {\n\t\t\t\tvar before = changeModel.before;\n\t\t\t\tvar fieldModel = changeModel.model;\n\t\t\t\tfieldModel.set( 'order', before );\n\t\t\t\t// console.log( 'set ' + fieldModel.get( 'label' ) + ' to ' + before );\n\t\t\t} );\n\t\t\t// console.log( fieldCollection.where( { label: 'Name' } ) );\n\t\t\t// console.log( fieldCollection.where( { label: 'Email' } ) );\n\n\n\t\t\tfieldCollection.sort();\n\t\t\tthis.maybeRemoveChange( change, undoAll );\n\t\t},\n\n\t\tundoAddListOption: function( change, undoAll ) {\n\t\t\tvar model = change.get( 'model' );\n\n\t\t\tif ( ! undoAll ) {\n\t\t\t\tvar changeCollection = nfRadio.channel( 'changes' ).request( 'get:collection' );\n\t\t\t\tvar results = changeCollection.where( { model: model } );\n\n\t\t\t\t_.each( results, function( changeModel ) {\n\t\t\t\t\tif ( changeModel !== change ) {\n\t\t\t\t\t\tchangeCollection.remove( changeModel );\n\t\t\t\t\t}\n\t\t\t\t} );\t\t\t\t\n\t\t\t}\n\n\t\t\tmodel.collection.remove( model );\n\t\t\tthis.maybeRemoveChange( change, undoAll );\n\t\t},\n\n\t\tundoRemoveListOption: function( change, undoAll ) {\n\t\t\tvar model = change.get( 'model' );\n\t\t\tvar collection = change.get( 'data' ).collection;\n\t\t\tcollection.add( model );\n\n\t\t\tif ( ! undoAll ) {\n\t\t\t\tvar changeCollection = nfRadio.channel( 'changes' ).request( 'get:collection' );\n\t\t\t\tvar results = changeCollection.where( { model: model } );\n\n\t\t\t\t_.each( results, function( model ) {\n\t\t\t\t\tif ( model !== change ) {\n\t\t\t\t\t\tmodel.set( 'disabled', false );\n\t\t\t\t\t}\n\t\t\t\t} );\t\t\t\t\n\t\t\t}\n\n\t\t\tthis.maybeRemoveChange( change, undoAll );\n\t\t},\n\n\t\tundoSortListOptions: function( change, undoAll ) {\n\t\t\tvar data = change.get( 'data' );\n\t\t\tvar collection = data.collection;\n\t\t\t\n\t\t\tvar objModels = data.objModels;\n\n\t\t\t_.each( objModels, function( changeModel ) {\n\t\t\t\tvar before = changeModel.before;\n\t\t\t\tvar optionModel = changeModel.model;\n\t\t\t\toptionModel.set( 'order', before );\n\t\t\t} );\t\t\t\t\n\n\n\t\t\tcollection.sort();\n\t\t\tthis.maybeRemoveChange( change, undoAll );\n\t\t},\n\n\t\t/**\n\t\t * If our undo action was requested to 'remove' the change from the collection, remove it.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model \tchange \tmodel of our change\n\t\t * @param boolean \t\t\tremove \tshould we remove this item from our change collection\n\t\t * @return void\n\t\t */\n\t\tmaybeRemoveChange: function( change, undoAll ) {\t\t\t\n\t\t\tvar undoAll = typeof undoAll !== 'undefined' ? undoAll : false;\n\t\t\tif ( ! undoAll ) {\n\t\t\t\t// Update preview.\n\t\t\t\tnfRadio.channel( 'app' ).request( 'update:db' );\n\t\t\t\tvar changeCollection = nfRadio.channel( 'changes' ).request( 'get:collection' );\n\t\t\t\tchangeCollection.remove( change );\n\t\t\t\tif ( 0 == changeCollection.length ) {\n\t\t\t\t\tnfRadio.channel( 'app' ).request( 'update:setting', 'clean', true );\n\t\t\t\t\tnfRadio.channel( 'app' ).request( 'close:drawer' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Returns a clone of a backbone model with all the attributes looped through so that collections contained within are propely cloned.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/cloneModelDeep',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'app' ).reply( 'clone:modelDeep', this.cloneModelDeep, this );\n\t\t},\n\n\t\tcloneModelDeep: function( model ) {\n\t\t\t// Temporary value used to store any new collections.\n\t\t\tvar replace = {};\n\t\t\t// Loop over every model attribute and if we find a collection, clone each model and instantiate a new collection.\n\t\t\t_.each( model.attributes, function( val, key ) {\n\t\t\t\tif( val instanceof Backbone.Collection ) { // Is this a backbone collection?\n\t\t\t\t\tvar clonedCollection = nfRadio.channel( 'app' ).request( 'clone:collectionDeep', val );\n\t\t\t\t\treplace[ key ] = clonedCollection;\n\t\t\t\t} else if ( val instanceof Backbone.Model ) { // Is this a backbone model?\n\t\t\t\t\treplace[ key ] = this.cloneModelDeep( val );\n\t\t\t\t}\n\t\t\t}, this );\n\n\t\t\t// Clone our original model\n\t\t\tvar newModel = model.clone();\n\t\t\t// Overwrite any collections we created above.\n\t\t\t_.each( replace, function( val, key ) {\n\t\t\t\tnewModel.set( key, val );\n\t\t\t} );\n\n\t\t\treturn newModel;\n\t\t}\n\t});\n\n\treturn controller;\n} );\n","/**\n * Returns the appropriate child view for our settings drawer.\n *\n * This enables settings types to register custom childviews for their settings.\n * The option-repeater setting for the list field is an example.\n * \n * @package Ninja Forms builder\n * @subpackage App - Edit Settings Drawer\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/getSettingChildView',['views/app/drawer/itemSetting'], function( itemSettingView ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Respond to requests for field settings child views.\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:settingChildView', this.getSettingChildView, this );\n\t\t},\n\n\t\t/**\n\t\t * Return the appropriate child setting view.\n\t\t *\n\t\t * @since 3.0\n\t\t * @param backbone.model\tmodel \tField setting\n\t\t * @return backbone.view\n\t\t */\n\t\tgetSettingChildView: function( model ) {\n\t\t\t// Get our setting type.\n\t\t\tvar type = model.get( 'type' );\n\t\t\t// Request a setting childview from our setting type channel. (Setting type, not field type)\n\t\t\tvar settingChildView = nfRadio.channel( type ).request( 'get:settingChildView', model ) || itemSettingView;\n\t\t\t\n\t\t\treturn settingChildView\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Updates our model when the user changes a setting.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/changeSettingDefault',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Respond to requests to update settings.\n\t\t\tnfRadio.channel( 'app' ).reply( 'change:setting', this.changeSetting, this );\n\n\t\t\t// Listen on our app channel for the change setting event. Fired by the setting view.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'change:setting', this.changeSetting, this );\n\t\t},\n\n\t\t/**\n\t\t * When we change our setting, update the model.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object \t\t\te event\n\t\t * @param backbone.model \tsettingModel model that holds our field type settings info\n\t\t * @param backbone.model \tdataModel model that holds our field settings\n\t\t * @return void\n\t\t */\n\t\tchangeSetting: function( e, settingModel, dataModel, value ) {\n\t\t\tvar name = settingModel.get( 'name' );\n\t\t\tvar before = dataModel.get( name );\n\t\t\tvar value = value || null;\n\t\t\tif ( ! value ) {\n\t\t\t\t// Sends out a request on the fields-type (fields-text, fields-checkbox, etc) channel to see if that field type needs to return a special value for saving.\n\t\t\t\tvalue = nfRadio.channel( settingModel.get( 'type' ) ).request( 'before:updateSetting', e, dataModel, name, settingModel );\n\t\t\t}\n\n\t\t\tif( 'undefined' == typeof value ){\n\t\t\t value = jQuery( e.target ).val();\n }\n\t\t\t\n\t\t\t// Update our field model with the new setting value.\n\t\t\tdataModel.set( name, value, { settingModel: settingModel } );\n\t\t\tnfRadio.channel( 'setting-' + name ).trigger( 'after:updateSetting', dataModel, settingModel );\n\t\t\t// Register our setting change with our change tracker\n\t\t\tvar after = value;\n\t\t\t\n\t\t\tvar changes = {\n\t\t\t\tattr: name,\n\t\t\t\tbefore: before,\n\t\t\t\tafter: after\n\t\t\t}\n\n\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\tvar currentDomainID = currentDomain.get( 'id' );\n\n\t\t\tvar label = {\n\t\t\t\tobject: dataModel.get( 'objectType' ),\n\t\t\t\tlabel: dataModel.get( 'label' ),\n\t\t\t\tchange: 'Changed ' + settingModel.get( 'label' ) + ' from ' + before + ' to ' + after\n\t\t\t};\n\n\t\t\tnfRadio.channel( 'changes' ).request( 'register:change', 'changeSetting', dataModel, changes, label );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","define( 'views/app/drawer/typeSettingFieldset',['views/app/drawer/itemSetting'], function( itemSettingView ) {\n\tvar view = Marionette.CompositeView.extend( {\n\t\ttemplate: '#tmpl-nf-edit-setting-wrap',\n\t\tchildView: itemSettingView,\n\n\t\tinitialize: function( data ) {\n\t\t\tthis.collection = this.model.get( 'settings' );\n\t\t\tthis.childViewOptions = { dataModel: data.dataModel };\n\t\t\tthis.dataModel = data.dataModel;\n\t\t\tvar deps = this.model.get( 'deps' );\n\t\t\tif ( deps ) {\n\t\t\t\t// If we don't have a 'settings' property, this is a legacy depdency setup.\n\t\t\t\tif ( 'undefined' == typeof deps.settings ) {\n\t\t\t\t\tdeps.settings = [];\n\t\t\t\t\t_.each(deps, function(dep, name){\n\t\t\t\t\t\tif( 'settings' !== name ) {\n\t\t\t\t\t\t\tdeps.settings.push( { name: name, value: dep } );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tdeps.match = 'all';\n\t\t\t\t}\n\n\t\t\t\tfor (var i = deps.settings.length - 1; i >= 0; i--) {\n\t\t\t\t\tlet name = deps.settings[i].name;\n\t\t\t\t\tthis.dataModel.on( 'change:' + name, this.render, this );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.model.on( 'rerender', this.render, this );\n\t\t},\n\n\t\tonBeforeDestroy: function() {\n\t\t\tvar deps = this.model.get( 'deps' );\n\t\t\tif ( deps ) {\n\t\t\t\tfor (var i = deps.settings.length - 1; i >= 0; i--) {\n\t\t\t\t\tname = deps.settings[i].name;\n\t\t\t\t\tthis.dataModel.off( 'change:' + name, this.render );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonBeforeRender: function() {\n\t\t\tnfRadio.channel( 'app' ).trigger( 'before:renderSetting', this.model, this.dataModel );\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'before:renderSetting', this.model, this.dataModel, this );\n\t\t\tnfRadio.channel( 'setting-' + this.model.get( 'name' ) ).trigger( 'before:renderSetting', this.model, this.dataModel, this );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\t/*\n\t\t\t * Send out a radio message.\n\t\t\t */\n\t\t\tnfRadio.channel( 'setting-' + this.model.get( 'name' ) ).trigger( 'render:setting', this.model, this.dataModel, this );\n\t\t\tnfRadio.channel( 'setting-type-' + this.model.get( 'type' ) ).trigger( 'render:setting', this.model, this.dataModel, this );\n\t\t},\n\n\t\ttemplateHelpers: function () {\n\t\t\tvar that = this;\n\t \treturn {\n\t \t\trenderVisible: function() {\n\n\t\t\t\t\tif(!nfAdmin.devMode){\n\t\t\t\t\t\tif('help' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('classes' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\tif('input_limit_set' == this.name) return 'style=\"display:none;\"';\n\n\t\t\t\t\t\tif('checkbox' == that.dataModel.get('type')){\n\t\t\t\t\t\t\tif('checkbox_values' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif('date' == that.dataModel.get('type')){\n\t\t\t\t\t\t\tif('year_range' == this.name) return 'style=\"display:none;\"';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn nfRadio.channel( 'settings' ).request( 'check:deps', this, that );\n\t \t\t},\n\t \t\trenderSetting: function(){\n\t \t\t\tvar setting = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-edit-setting-' + this.type );\n\t\t\t\t\treturn setting( this );\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\trenderClasses: function() {\n\t\t\t\t\tvar classes = '';\n\t\t\t\t\tif ( 'undefined' != typeof this.width ) {\n\t\t\t\t\t\tclasses += this.width;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclasses += ' one-half';\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( this.error ) {\n\t\t\t\t\t\tclasses += ' nf-error';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn classes;\n\t\t\t\t},\n\n\t\t\t\trenderError: function() {\n\t\t\t\t\tif ( this.error ) {\n\t\t\t\t\t\treturn this.error;\n\t\t\t\t\t}\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tattachHtml: function( collectionView, childView ) {\n\t\t\tjQuery( collectionView.el ).find( '.nf-field-sub-settings' ).append( childView.el );\n\t\t}\n\t} );\n\n\treturn view;\n} );\n","/**\n * Handles actions related to field settings that use a fieldset\n * \n * @package Ninja Forms builder\n * @subpackage Fields - Edit Field Drawer\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/fieldset',['views/app/drawer/typeSettingFieldset','models/app/settingCollection'], function( fieldsetView, settingCollection ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'fieldset' ).reply( 'get:settingChildView', this.getSettingChildView, this );\n\t\t\t// When a list type field is initialized, create an option collection.\n\t\t\tthis.listenTo( nfRadio.channel( 'fieldset' ), 'init:settingModel', this.createSettingsCollection );\n\t\t},\n\n\t\tgetSettingChildView: function( model ) {\n\t\t\treturn fieldsetView;\n\t\t},\n\n\t\t/**\n\t\t * Instantiate settings collection when a fieldset type is initialized.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model \tmodel \tfield model being initialized\n\t\t * @return void\n\t\t */\n\t\tcreateSettingsCollection: function( model ) {\n\t\t\tmodel.set( 'settings', new settingCollection( model.get( 'settings' ) ) );\n\t\t},\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Handles actions related to our toggle field.\n * When we change the toggle, the setting value will be 'on' or ''.\n * We need to change this to 1 or 0.\n * \n * @package Ninja Forms builder\n * @subpackage Fields - Edit Field Drawer\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/toggleSetting',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// We don't want the RTE setting to re-render when the value changes.\n\t\t\tnfRadio.channel( 'setting-type-toggle' ).reply( 'renderOnChange', function(){ return false } );\n\n\t\t\t// Respond to requests for field setting filtering.\n\t\t\tnfRadio.channel( 'toggle' ).reply( 'before:updateSetting', this.updateSetting, this );\n\t\t},\n\n\t\t/**\n\t\t * Return either 1 or 0, depending upon the toggle position.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object \t\t\te event\n\t\t * @param backbone.model \tfieldModel field model\n\t\t * @param string \t\t\tname setting name\n\t\t * @param backbone.model \tsettingTypeModel field type model\n\t\t * @return int 1 or 0\n\t\t */\n\t\tupdateSetting: function( e, fieldModel, name, settingTypeModel ) {\n\t\t\tif ( jQuery( e.target ).prop( 'checked' ) ) {\n\t\t\t\tvar value = 1;\n\t\t\t} else {\n\t\t\t\tvar value = 0;\n\t\t\t}\n\n\t\t\treturn value;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Handles actions related to our toggle field.\n * When we change the toggle, the setting value will be 'on' or ''.\n * We need to change this to 1 or 0.\n *\n * @package Ninja Forms builder\n * @subpackage Fields - Edit Field Drawer\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/buttonToggleSetting',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// We don't want the RTE setting to re-render when the value changes.\n\t\t\tnfRadio.channel( 'setting-type-button-toggle' ).reply( 'renderOnChange', function(){ return false; } );\n\n\t\t\t// Respond to requests for field setting filtering.\n\t\t\tnfRadio.channel( 'button-toggle' ).reply( 'before:updateSetting', this.updateSetting, this );\n\t\t},\n\n\t\t/**\n\t\t * Return either 1 or 0, depending upon the toggle position.\n\t\t *\n\t\t * @since 3.0\n\t\t * @param Object \t\t\te event\n\t\t * @param backbone.model \tfieldModel field model\n\t\t * @param string \t\t\tname setting name\n\t\t * @param backbone.model \tsettingTypeModel field type model\n\t\t * @return int 1 or 0\n\t\t */\n\t\tupdateSetting: function( e, fieldModel, name, settingTypeModel ) {\n\t\t\treturn e.target.value;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Handles actions related to number field settings.\n *\n * @package Ninja Forms builder\n * @subpackage Fields - Edit Field Drawer\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/numberSetting',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Respond to requests for field setting filtering.\n\t\t\tnfRadio.channel( 'number' ).reply( 'before:updateSetting', this.updateSetting, this );\n\t\t},\n\n\t\t/**\n\t\t * Resets value if user enters value below min value or above max value\n\t\t *\n\t\t * @since 3.0\n\t\t * @param Object \t\t\te event\n\t\t * @param backbone.model \tfieldModel field model\n\t\t * @param string \t\t\tname setting name\n\t\t * @param backbone.model \tsettingTypeModel field type model\n\t\t * @return int 1 or 0\n\t\t */\n\t\tupdateSetting: function( e, fieldModel, name, settingTypeModel ) {\n\t\t\tvar minVal = settingTypeModel.get( 'min_val' );\n\t\t\tvar maxVal = settingTypeModel.get( 'max_val' );\n\n\t\t\t/*\n\t\t\t * if we gave a min value set, revert to that if the user enters\n\t\t\t * a lower number\n\t\t\t*/\n\t\t\tif( 'undefined' != typeof minVal && null !== minVal ){\n\t\t\t\tif ( e.target.value < minVal ) {\n\t\t\t\t\tfieldModel.set('value', minVal);\n\t\t\t\t\te.target.value = minVal;\n\t\t\t\t}\n\t\t\t}\n\t\t\t/*\n\t\t\t * if we gave a max value set, revert to that if the user enters\n\t\t\t * a higher number\n\t\t\t*/\n\t\t\tif( 'undefined' != typeof maxVal && null !== maxVal ){\n\t\t\t\tif ( e.target.value > maxVal ) {\n\t\t\t\t\tfieldModel.set('value', maxVal);\n\t\t\t\t\te.target.value = maxVal;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn e.target.value;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","\ndefine( 'controllers/app/radioSetting',[], function() {\n var controller = Marionette.Object.extend({\n initialize: function () {\n // Respond to requests for field setting filtering.\n\n console.log( nfRadio.channel( 'radio' ) );\n nfRadio.channel('radio').reply( 'before:updateSetting', this.updateSetting, this);\n },\n\n\n updateSetting: function( e, fieldModel, name, settingTypeModel ) {\n console.log( 'test' );\n }\n });\n return controller;\n} );\n","/**\n * Listens for clicks on our action item action buttons.\n * \n * @package Ninja Forms builder\n * @subpackage Fields - Main Sortable\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/itemControls',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\n\t\tdeleting: false, // block edit functionality while deleting field\n\n\t\tinitialize: function() {\n\t\t\t// Listen for clicks to edit, delete, duplicate actions.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:edit', this.clickEdit );\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:delete', this.maybeDelete );\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:duplicate', this.clickDuplicate );\n\n\t\t\t// Listen for our drawer close and remove our active edit state\n\t\t},\n\n\t\t/**\n\t\t * Open a drawer with our action model for editing settings.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object\t\t\te \tevent\n\t\t * @param backbone.model \tmodel \taction model\n\t\t * @return void\n\t\t */\n\t\tclickEdit: function( e, model ) {\n\t\t\t// if we are deleting a field, we don't want to the edit drawer to open\n\t\t\tif( ! this.deleting ) {\n\t\t\t\tvar currentDomain = nfRadio.channel('app').request('get:currentDomain');\n\t\t\t\tvar currentDomainID = currentDomain.get('id');\n\t\t\t\tvar type = nfRadio.channel(currentDomainID).request('get:type', model.get('type'));\n\t\t\t\tnfRadio.channel('app').request('open:drawer', 'editSettings', {\n\t\t\t\t\tmodel: model,\n\t\t\t\t\tgroupCollection: type.get('settingGroups')\n\t\t\t\t});\n\t\t\t\t//loop through repeater fields to reset active state if needed\n\t\t\t\tnfRadio.channel( 'fields-repeater' ).trigger( 'clearEditActive', model );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Let user know that all data will be lost before actually deleting\n\t\t *\n\t\t * @since 3.0\n\t\t * @param Object\t\t\te \tevent\n\t\t * @param backbone.model \tmodel \taction model\n\t\t * @return void\n\t\t */\n\t\tmaybeDelete: function( e, dataModel ) {\n\t\t\t// we set deleting to true, so the edit event doesn't open drawer\n\t\t\tthis.deleting = true;\n\t\t\tvar modelID = dataModel.get( 'id' );\n\t\t\tvar modelType = dataModel.get( 'objectType' );\n\n\t\t\t// Build a lookup table for fields that we don't save\n\t\t\tvar nonSaveFields = [ 'html', 'submit', 'hr',\n\t\t\t\t'recaptcha', 'spam', 'creditcard', 'creditcardcvc',\n\t\t\t\t'creditcardexpiration', 'creditcardfullname',\n\t\t\t\t'creditcardnumber', 'creditcardzip' ];\n\n\t\t\t/*\n\t\t\t* If this is a new field that hasn't been saved, then we don't\n\t\t\t * need to check for data\n\t\t\t */\n\t\t\tif( 'field' != modelType.toLowerCase() ) {\n\t\t\t\tthis.clickDelete( e, dataModel );\n\t\t\t} else {\n\t\t\t\t/*\n\t\t\t\t* If the field has been saved, then we need to check for\n\t\t\t\t * submission data for this field\n\t\t\t\t */\n\t\t\t\tif( 'tmp' === modelID.toString().substring( 0, 3 )\n\t\t\t\t\t|| -1 != jQuery.inArray( dataModel.get( 'type' ), nonSaveFields ) ) {\n\t\t\t\t\t// not a saved field so proceed as normal\n\t\t\t\t\tthis.clickDelete( e, dataModel );\n\t\t\t\t} else {\n\t\t\t\t\t// need the form id\n\t\t\t\t\tvar formModel = Backbone.Radio.channel('app').request('get:formModel');\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\t'action': 'nf_maybe_delete_field',\n\t\t\t\t\t\t'security': nfAdmin.ajaxNonce,\n\t\t\t\t\t\t'formID': formModel.get('id'),\n\t\t\t\t\t\t'fieldKey': dataModel.get('key'),\n\t\t\t\t\t\t'fieldID': modelID\n\t\t\t\t\t};\n\t\t\t\t\tvar that = this;\n\n\t\t\t\t\t// make call to see if field has submission data\n\t\t\t\t\tjQuery.post(ajaxurl, data)\n\t\t\t\t\t\t.done(function (response) {\n\t\t\t\t\t\t\tvar res = JSON.parse(response);\n\n\t\t\t\t\t\t\tif (res.data.hasOwnProperty('errors')) {\n\t\t\t\t\t\t\t\tvar errors = res.data.errors;\n\t\t\t\t\t\t\t\tvar errorMsg = '';\n\n\t\t\t\t\t\t\t\tif (Array.isArray(errors)) {\n\t\t\t\t\t\t\t\t\terrors.forEach(function(error) {\n\t\t\t\t\t\t\t\t\t\terrors += error + \"\\n\";\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\terrors = errors;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconsole.log('Maybe Delete Field Errors: ', errors);\n\t\t\t\t\t\t\t\talert(errors);\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (res.data.field_has_data) {\n\t\t\t\t\t\t\t\t// if it does, show warning modal\n\t\t\t\t\t\t\t\tthat.doDeleteFieldModal(e, dataModel);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// if not, proceed like normal\n\t\t\t\t\t\t\t\tthat.clickDelete(e, dataModel);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Create the field delete warning modal\n\t\t *\n\t\t * @param e\n\t\t * @param dataModel\n\t\t */\n\t\tdoDeleteFieldModal: function( e, dataModel ) {\n\t\t\t// Build warning modal to warn user a losing all data related to field\n var that = this;\n var modalData = {\n width: 400,\n closeOnClick: false,\n closeOnEsc: true,\n content: nfi18n.fieldDataDeleteMsg,\n btnPrimary: {\n text: nfi18n.delete,\n callback: function() {\n // close and destory modal.\n deleteModal.toggleModal( false );\n deleteModal.destroy();\n // proceed as normal, data will be deleted in backend on publish\n that.clickDelete( e, dataModel );\n }\n },\n btnSecondary: {\n text: nfi18n.cancel,\n callback: function() {\n // close and destory modal\n deleteModal.toggleModal( false );\n deleteModal.destroy();\n // set deleting to false so edit can work as normal\n that.deleting = false;\n }\n }\n };\n var deleteModal = new NinjaModal( modalData );\n\t\t},\n\n\t\t/**\n\t\t * Delete a action model from our collection\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object\t\t\te \tevent\n\t\t * @param backbone.model \tmodel \taction model\n\t\t * @return void\n\t\t */\n\t\tclickDelete: function( e, dataModel ) {\n\t\t\tvar newModel = nfRadio.channel( 'app' ).request( 'clone:modelDeep', dataModel );\n\n\t\t\t// Add our action deletion to our change log.\n\t\t\tvar label = {\n\t\t\t\tobject: dataModel.get( 'objectType' ),\n\t\t\t\tlabel: dataModel.get( 'label' ),\n\t\t\t\tchange: 'Removed',\n\t\t\t\tdashicon: 'dismiss'\n\t\t\t};\n\n\t\t\tvar data = {\n\t\t\t\tcollection: dataModel.collection\n\t\t\t};\n\n\t\t\tvar changeCollection = nfRadio.channel( 'changes' ).request( 'get:collection' );\n\t\t\tvar results = changeCollection.where( { model: dataModel } );\n\n\t\t\t_.each( results, function( changeModel ) {\n\t\t\t\tvar data = changeModel.get( 'data' );\n\t\t\t\tif ( 'undefined' != typeof data.fields ) {\n\t\t\t\t\t_.each( data.fields, function( field, index ) {\n\t\t\t\t\t\tif ( field.model == dataModel ) {\n\t\t\t\t\t\t\tdata.fields[ index ].model = newModel;\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tchangeModel.set( 'data', data );\n\t\t\t\tchangeModel.set( 'model', newModel );\n\t\t\t\tchangeModel.set( 'disabled', true );\n\t\t\t} );\n\n\t\t\tnfRadio.channel( 'changes' ).request( 'register:change', 'removeObject', newModel, null, label, data );\n\t\t\t\n\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\tvar currentDomainID = currentDomain.get( 'id' );\n\t\t\tnfRadio.channel( currentDomainID ).request( 'delete', dataModel );\n\t\t\tthis.deleting = false;\n\t\t},\n\n\t\t/**\n\t\t * Duplicate a action within our collection, adding the word \"copy\" to the label.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param Object\t\t\te \tevent\n\t\t * @param backbone.model \tmodel \taction model\n\t\t * @return void\n\t\t */\n\t\tclickDuplicate: function( e, model ) {\n\t\t\tvar newModel = nfRadio.channel( 'app' ).request( 'clone:modelDeep', model );\n\t\t\tvar currentDomain = nfRadio.channel( 'app' ).request( 'get:currentDomain' );\n\t\t\tvar currentDomainID = currentDomain.get( 'id' );\n\n\t\t\t// Change our label.\n\t\t\t// Make sure this update is silent to avoid triggering key change events down the waterfall.\n\t\t\tnewModel.set( 'label', newModel.get( 'label' ) + ' Copy', {silent: true} );\n\t\t\t// Update our ID to the new tmp id.\n\t\t\tvar tmpID = nfRadio.channel( currentDomainID ).request( 'get:tmpID' );\n\t\t\tnewModel.set( 'id', tmpID );\n\t\t\t// Add new model.\n\t\t\t// Params are: model, silent, renderTrigger, action\n\t\t\tnfRadio.channel( currentDomainID ).request( 'add', newModel, false, false, 'duplicate' );\n\t\t\t\n\t\t\t// Add our action addition to our change log.\n\t\t\tvar label = {\n\t\t\t\tobject: model.get( 'objectType' ),\n\t\t\t\tlabel: model.get( 'label' ),\n\t\t\t\tchange: 'Duplicated',\n\t\t\t\tdashicon: 'admin-page'\n\t\t\t};\n\n\t\t\tvar data = {\n\t\t\t\tcollection: nfRadio.channel( currentDomainID ).request( 'get:collection' )\n\t\t\t}\n\n\t\t\tnfRadio.channel( 'changes' ).request( 'register:change', 'duplicateObject', newModel, null, label, data );\n\t\t\t\n\t\t\tmodel.trigger( 'change:label', model );\n\n\t\t\t// Update preview.\n\t\t\tnfRadio.channel( 'app' ).request( 'update:db' );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Config file for our merge tags.\n *\n * this.collection represents all of our registered merge tags.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/mergeTags',[\n\t'models/app/mergeTagCollection'\n\t], function(\n\tmergeTagCollection\n\t) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.tagSectionCollection = new mergeTagCollection();\n\t\t\tvar that = this;\n\t\t\t_.each( mergeTags, function( tagSection ) {\n\t\t\t\tif ( tagSection.tags ) {\n\t\t\t\t\tvar tags = new mergeTagCollection( tagSection.tags );\n\t\t\t\t} else {\n\t\t\t\t\tvar tags = '';\n\t\t\t\t}\n\n\t\t\t\tthat.tagSectionCollection.add( {\n\t\t\t\t\tid: tagSection.id,\n\t\t\t\t\tlabel: tagSection.label,\n\t\t\t\t\ttags: tags,\n\t\t\t\t\tdefault_group: tagSection.default_group\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tvar fieldTags = this.tagSectionCollection.get( 'fields').get( 'tags' );\n\n\t\t\tvar fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\t\t\t_.each( fieldCollection.models, function( field ) {\n\t\t\t\t// TODO: Make this dynamic\n\t\t\t\tif ( 'submit' !== field.get( 'type' ) ) {\n\t\t\t\t\tfieldTags.add( {\n\t\t\t\t\t\tid: field.get( 'id' ),\n\t\t\t\t\t\tlabel: field.get( 'label' ),\n\t\t\t\t\t\ttag: that.getFieldKeyFormat( field.get( 'key' ) )\n\t\t\t\t\t} );\t\t\t\t\t\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tvar calcTags = new mergeTagCollection();\n\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\t\t\tvar calcCollection = formModel.get( 'settings' ).get( 'calculations' );\n\t\t\t_.each( calcCollection.models, function( calcModel ) {\n\t\t\t\tcalcTags.add( {\n\t\t\t\t\tlabel: calcModel.get( 'name' ),\n\t\t\t\t\ttag: '{calc:' + calcModel.get( 'name' ) + '}'\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tthis.tagSectionCollection.get( 'calcs' ).set( 'tags', calcTags );\n\n\t\t\tthis.currentElement = {};\n\t\t\tthis.settingModel = {};\n\t\t\tthis.open = false;\n\n\t\t\t// Unhook jBox Merge Tag stuff.\n\t\t\t// nfRadio.channel( 'mergeTags' ).reply( 'init', this.initMergeTags, this );\n\n\t\t\tthis.listenTo( nfRadio.channel( 'mergeTags' ), 'click:mergeTag', this.clickMergeTag );\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'add:field', this.addFieldTags );\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'delete:field', this.deleteFieldTags );\n\t\t\tthis.listenTo( nfRadio.channel( 'option-repeater-calculations' ), 'update:option', this.updateCalcTags );\n\t\t\tthis.listenTo( nfRadio.channel( 'option-repeater-calculations' ), 'remove:option', this.updateCalcTags );\n\n\t\t\t\n\t\t\tnfRadio.channel( 'mergeTags' ).reply( 'update:currentElement', this.updateCurrentElement, this );\n\t\t\tnfRadio.channel( 'mergeTags' ).reply( 'update:currentSetting', this.updateCurrentSetting, this );\n\n\t\t\t// Listen for requests for our mergeTag collection.\n\t\t\tnfRadio.channel( 'mergeTags' ).reply( 'get:collection', this.getCollection, this );\n\t\t\tnfRadio.channel( 'mergeTags' ).reply( 'get:mergeTag', this.getSectionModel, this );\n\n\t\t\t// When a field's ID is changed (ie from a tmpID), update the merge tag.\n this.listenTo( nfRadio.channel( 'fieldSetting-id' ), 'update:setting', this.updateID );\n\n\t\t\t// When we edit a key, check for places that key might be used.\n\t\t\tthis.listenTo( nfRadio.channel( 'fieldSetting-key' ), 'update:setting', this.updateKey );\n\n\t\t\t// Reply to requests to check a data model for a field key when one is updated.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'replace:fieldKey', this.replaceFieldKey );\n\n\t\t\t// Reply to requests to check a data model for a field key when one is updated.\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:fieldKeyFormat', this.getFieldKeyFormat, this );\n\n\t\t\t/*\n\t\t\t * TODO: Hotkey support for adding tags.\n\t\t\t *\n\t\t\t\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'open:mergeTags', this.openMergeTags );\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'up:mergeTags', this.upMergeTags );\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'down:mergeTags', this.downMergeTags );\n\t\t\tthis.listenTo( nfRadio.channel( 'hotkeys' ), 'return:mergeTags', this.returnMergeTags );\n\t\t\tnfRadio.channel( 'mergeTags' ).reply( 'update:open', this.updateOpen, this );\n\t\t\t*/\n\t\t},\n\n\t\t/**\n\t\t * Init merge tags within the passed view.\n\t\t * @since 3.0\n\t\t * @param backbone.view view to be searched for merge tags.\n\t\t * @return void\n\t\t */\n\t\tinitMergeTags: function( view ) {\n\t\t\tvar mergeTagsView = nfRadio.channel( 'mergeTags' ).request( 'get:view' );\n\t\t\tvar that = this;\n\t\t\t/*\n\t\t\t * Apply merge tags jQuery plugin.\n\t\t\t *\n\t\t\t * Prevent jBox from being called multiple times on the same element\n\t\t\t */\n\t\t\tthis.jBoxes = {};\n\t\t\tvar that = this;\n\n\t\t\tjQuery( view.el ).find( '.merge-tags' ).each(function() {\n\t\t\t\tif ( 'undefined' == typeof jQuery( this ).data( 'jBox-id' ) ) {\n\t\t\t\t\tvar jBox = jQuery( this ).jBox( 'Tooltip', {\n\t\t\t\t\t\ttitle: 'Insert Merge Tag',\n\t\t\t\t\t\ttrigger: 'click',\n\t\t\t\t\t\tposition: {\n\t\t\t\t\t\t\tx: 'center',\n\t\t\t\t\t\t\ty: 'bottom'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcloseOnClick: 'body',\n\t\t\t\t\t\tcloseOnEsc: true,\n\t\t\t\t\t\ttheme: 'TooltipBorder',\n\t\t\t\t\t\tmaxHeight: 200,\n\n\t\t\t\t\t\tonOpen: function() {\n\t\t\t\t\t\t\tmergeTagsView.reRender( view.model );\n\t\t\t\t\t\t\tthis.setContent( jQuery( '.merge-tags-content' ) );\n\t\t\t\t\t\t\tvar currentElement = jQuery( this.target ).prev( '.setting' );\n\t\t\t\t\t\t\tif ( 0 == currentElement.length ) {\n\t\t\t\t\t\t\t\tcurrentElement = jQuery( view.el ).find( '.setting' );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tthat.updateCurrentSetting( view.model );\n\t\t\t\t\t\t\tthat.updateCurrentElement( currentElement );\n\t\t\t\t\t\t\t// nfRadio.channel( 'drawer' ).request( 'prevent:close', 'merge-tags' );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonClose: function() {\n\t\t\t\t\t\t\t// nfRadio.channel( 'drawer' ).request( 'enable:close', 'merge-tags' );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tjQuery( this ).data( 'jBox-id', jBox.id );\t\t\t\t\t\n\t\t\t\t}\n\t\t });\n\t\t},\n\n\t\tclickMergeTag: function( e, tagModel ) {\n\t\t\t/*\n\t\t\t * TODO: Make this more dynamic.\n\t\t\t * Currently, the RTE is the only section that modifies how merge tags work,\n\t\t\t * but another type of setting might need to do this in the future.\n\t\t\t */\n\n\t\t\tif( 'undefined' != typeof this.settingModel.get( 'settingModel' ) && 'calculations' == this.settingModel.get( 'settingModel' ).get( 'name' ) ) {\n\n\t\t\t\tconsole.log( tagModel );\n\n\t\t\t\tvar currentValue = jQuery( this.currentElement ).val();\n\t\t\t\tvar currentPos = jQuery( this.currentElement ).caret();\n\t\t\t\tvar newPos = currentPos + tagModel.get( 'tag' ).length;\n\n\t\t\t\tvar tag = ( 'undefined' != typeof tagModel.get( 'calcTag' ) ) ? tagModel.get( 'calcTag' ) : tagModel.get( 'tag' );\n\n\t\t\t\tcurrentValue = currentValue.substr( 0, currentPos ) + tag + currentValue.substr( currentPos );\n\t\t\t\tjQuery( this.currentElement ).val( currentValue ).caret( newPos ).trigger( 'change' );\n\t\t\t} else if( 'rte' == this.settingModel.get( 'type' ) ) {\n\t\t\t\tjQuery( this.currentElement ).summernote( 'insertText', tagModel.get( 'tag' ) );\n\t\t\t} else {\n\t\t\t\tvar currentValue = jQuery( this.currentElement ).val();\n\t\t\t\tvar currentPos = jQuery( this.currentElement ).caret();\n\t\t\t\tvar newPos = currentPos + tagModel.get( 'tag' ).length;\n\t\t\t\tcurrentValue = currentValue.substr( 0, currentPos ) + tagModel.get( 'tag' ) + currentValue.substr( currentPos );\n\t\t\t\tjQuery( this.currentElement ).val( currentValue ).caret( newPos ).trigger( 'change' );\n\t\t\t}\n\t\t},\n\n\t\taddFieldTags: function( fieldModel ) {\n\t\t\t// TODO: Make this dynamic\n\t\t\tif ( 'submit' !== fieldModel.get( 'type' ) ) {\n\t\t\t\tthis.tagSectionCollection.get( 'fields' ).get( 'tags' ).add( {\n\t\t\t\t\tid: fieldModel.get( 'id' ),\n\t\t\t\t\tlabel: fieldModel.get( 'label' ),\n\t\t\t\t\ttag: this.getFieldKeyFormat( fieldModel.get( 'key' ) ),\n\t\t\t\t\tcalcTag: this.getFieldKeyFormatCalc( fieldModel.get( 'key' ) )\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\tdeleteFieldTags: function( fieldModel ) {\n\t\t\tvar fieldID = fieldModel.get( 'id' );\n\t\t\tvar tagModel = this.tagSectionCollection.get( 'fields' ).get( 'tags' ).get( fieldID );\n\t\t\tthis.tagSectionCollection.get( 'fields' ).get( 'tags' ).remove( tagModel );\n\t\t},\n\n\t\tupdateCalcTags: function( optionModel ) {\n\t\t\tvar calcTags = new mergeTagCollection();\n\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\t\t\tvar calcCollection = formModel.get( 'settings' ).get( 'calculations' );\n\n\t\t\t_.each( calcCollection.models, function( calc ) {\n\t\t\t\tcalcTags.add( {\n\t\t\t\t\tlabel: calc.get( 'name' ),\n\t\t\t\t\ttag: '{calc:' + calc.get( 'name' ) + '}'\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\tthis.tagSectionCollection.get( 'calcs' ).set( 'tags', calcTags );\n\t\t},\n\n\t\topenMergeTags: function( e ) {\n\t\t\tif ( 'TEXTAREA' == jQuery( e.target )[0].tagName || 'INPUT' == jQuery( e.target )[0].tagName ) {\n\t\t\t\tjQuery( e.target ).parent().find( '.merge-tags' ).click();\n\t\t\t}\n\t\t},\n\n\t\treturnMergeTags: function( e ) {\n\t\t\tif ( this.open ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar currentModel = this.fields.where( { 'active': true } )[0];\n\t\t\t\tif ( currentModel ) {\n\t\t\t\t\tthis.clickMergeTag( e, currentModel );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tupMergeTags: function( e ) {\n\t\t\tif ( this.open ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.changeActiveTag( 'up' );\n\t\t\t}\n\t\t},\n\n\t\tdownMergeTags: function( e ) {\n\t\t\tif ( this.open ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.changeActiveTag( 'down' );\n\t\t\t}\n\t\t},\n\n\t\tchangeActiveTag: function( dir ) {\n\t\t\tif ( 'down' == dir ) {\n\t\t\t\tvar inc = 1;\n\t\t\t} else {\n\t\t\t\tvar inc = -1\n\t\t\t}\n\t\t\t// First, check to see if a field is currently active.\n\t\t\tif( 0 < this.fields.where( { 'active': true } ).length ) {\n\t\t\t\tvar currentModel = this.fields.where( { 'active': true } )[0];\n\t\t\t\tvar currentIndex = this.fields.indexOf( currentModel );\n\t\t\t\tcurrentModel.set( 'active', false );\n\n\t\t\t\tvar nextModel = this.fields.models[ currentIndex + inc ];\n\t\t\t\tif ( nextModel ) {\n\t\t\t\t\tnextModel.set( 'active', true );\n\t\t\t\t} else {\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else if ( 0 < this.fields.where( { 'active': true } ) ) { // There aren't any active fields. Check for active system tags.\n\t\t\t\tconsole.log( 'system' );\n\t\t\t} else if ( 0 < this.userInfo.where( { 'active': true } ) ) { // No active user info LIs.\n\t\t\t\tconsole.log( 'userinfo' );\n\t\t\t} else { // No active LIs. We haven't made any active yet, or we've gotten to the bottom of the list.\n\t\t\t\t// Make sure that we have fields\n\t\t\t\tif ( 0 < this.fields.models.length ) {\n\t\t\t\t\t// Set our first field to active.\n\t\t\t\t\tthis.fields.models[0].set( 'active', true );\n\t\t\t\t} else {\n\t\t\t\t\t// Set our first system model to active.\n\t\t\t\t\tthis.system.models[0].set( 'active', true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tupdateCurrentElement: function( element ) {\n\t\t\tthis.currentElement = element;\n\t\t},\n\n\t\tupdateCurrentSetting: function( settingModel ) {\n\t\t\tthis.settingModel = settingModel;\n\t\t},\n\n\t\tgetCollection: function() {\n\t\t\treturn this.tagSectionCollection;\n\t\t},\n\n\t\tgetSectionModel: function( id ) {\n\t\t\treturn this.tagSectionCollection.get( id );\n\t\t},\n\n\t\tupdateOpen: function( open ) {\n\t\t\tthis.open = open;\n\t\t\t_.each( this.tagSectionCollection.get( 'fields' ).models, function( model ) {\n\t\t\t\tmodel.set( 'active', false );\n\t\t\t} );\n\t\t},\n\n\t\t// When a field is published, update the merge tag with the newly assigned ID (as opposed to the tmpID).\n updateID: function( fieldModel ) {\n\n\t\t\t// Get the formatted merge tag for comparison.\n\t\t\tvar targetTag = this.getFieldKeyFormat( fieldModel.get( 'key' ) );\n\n\t\t\t// Search the field tags for the matching merge tag to be updated.\n\t\t\tvar oldTag = this.tagSectionCollection.get( 'fields' ).get( 'tags' ).find( function( fieldMergeTag ){\n return targetTag == fieldMergeTag.get( 'tag' );\n });\n\n\t\t\t// If no matching tag is found, return early.\n\t\t\tif( 'undefined' == typeof oldTag ) return;\n\n\t\t\t// Update the merge tag with the \"published\" field ID.\n\t\t\toldTag.set( 'id', fieldModel.get( 'id' ) );\n\t\t},\n\n\t\tupdateKey: function( fieldModel ) {\n\t\t\tvar newKey = fieldModel.get( 'key' );\n\t\t\tvar oldTag = this.tagSectionCollection.get( 'fields' ).get( 'tags' ).get( fieldModel.get( 'id' ) );\n\t\t\tif ( 'undefined' != typeof oldTag ) {\n\t\t\t\toldTag.set( 'tag', this.getFieldKeyFormat( newKey ) );\t\t\t\t\n\t\t\t}\n\n\t\t},\n\n\t\tgetFieldKeyFormat: function( key ) {\n\t\t\treturn '{field:' + key + '}';\n\t\t},\n\n\t\tgetFieldKeyFormatCalc: function( key ) {\n\t\t\treturn '{field:' + key + ':calc}';\n\t\t},\n\n\t\treplaceFieldKey: function( dataModel, keyModel, settingModel ) {\n var oldKey = this.getFieldKeyFormat( keyModel._previousAttributes[ 'key' ] );\n\t\t\tvar newKey = this.getFieldKeyFormat( keyModel.get( 'key' ) );\n\t\t\tvar settingName = settingModel.get( 'name' );\n\t\t\tvar oldVal = dataModel.get( settingName );\n if(settingName == 'calculations' && 'undefined' != typeof(dataModel.get('calculations'))) {\n var calcModel = dataModel.get( 'calculations' );\n calcModel.each( function( model ) {\n var oldCalcKey = oldKey.slice( 0, (oldKey.length - 1) ) + ':calc}';\n var newCalcKey = newKey.slice( 0, (newKey.length - 1 ) ) + ':calc}';\n oldVal = model.get( 'eq' );\n if ( 'string' == typeof( oldVal ) ) {\n var re = new RegExp( oldCalcKey, 'g' );\n var newVal = oldVal.replace( re, newCalcKey );\n re = new RegExp( oldKey, 'g' );\n // TODO: We won't need this second replace when we no longer\n // have to append :calc to merge tags.\n newVal = newVal.replace( re, newKey );\n model.set( 'eq', newVal );\n }\n } );\n return false;\n }\n\t\t\tif ( 'string' == typeof oldVal ) {\n\t\t\t\tvar re = new RegExp( oldKey, 'g' );\n\t\t\t\tnewVal = oldVal.replace( re, newKey );\n\t\t\t\tdataModel.set( settingName, newVal );\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n\n","/**\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/app/mergeTagLookupCollection',['models/app/mergeTagModel'], function( mergeTagModel ) {\n var collection = Backbone.Collection.extend( {\n model: mergeTagModel\n } );\n return collection;\n} );\n","/**\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/mergeTag',[], function() {\n var view = Marionette.ItemView.extend({\n tagName: 'li',\n template: '#tmpl-nf-merge-tag-box-tag',\n\n events: {\n \"click\": \"insertTag\"\n },\n\n insertTag: function() {\n nfRadio.channel( 'mergeTags' ).request( 'insert:tag', this.model.get( 'tag' ) );\n }\n });\n\n return view;\n} );\n","/**\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/mergeTagList',[ 'views/app/drawer/mergeTag' ], function( mergeTagView ) {\n var view = Marionette.CollectionView.extend({\n tagName: 'ul',\n childView: mergeTagView,\n calc: false,\n\n initialize: function() {\n nfRadio.channel( 'merge-tags' ).reply( 'update:taglist', this.sectionFilter, this );\n nfRadio.channel( 'merge-tags' ).reply( 'filtersearch', this.searchFilter, this );\n },\n\n filter: function( child, index, collection ){\n return 'fields' == child.get( 'section' );\n },\n\n sectionFilter: function( section, calc ){\n this.filter = function( child, index, collection ){\n return section == child.get( 'section' );\n }\n\n if ( calc ) {\n this.calc = true;\n }\n\n if ( this.calc ) {\n var fieldsToRemove = this.excludeFromCalcs();\n\n /**\n * Filters our merge tags.\n * Make sure that we're in the right section, and then check to see if the merge tag is in our remove tracker.\n */\n this.filter = function( child, index, collection ) {\n return section == child.get( 'section' ) && -1 == fieldsToRemove.indexOf( child.get( 'tag' ) );\n }\n }\n\n this.render();\n nfRadio.channel( 'merge-tags' ).trigger( 'after:filtersearch', section );\n },\n\n searchFilter: function( term ){\n if ( this.calc ) {\n var fieldsToRemove = this.excludeFromCalcs();\n }\n\n this.filter = function( child, index, collection ){\n var label = child.get( 'label' ).toLowerCase().indexOf( term.toLowerCase().replace( ':', '' ) ) >= 0;\n var tag = child.get( 'tag' ).toLowerCase().indexOf( term.toLowerCase() ) >= 0;\n // If we are in a calculation setting and this tag is in our remove tracker, early return false.\n if ( this.calc && -1 != fieldsToRemove.indexOf( child.get( 'tag' ) ) ) {\n return false;\n }\n return label || tag;\n }\n\n this.render();\n nfRadio.channel( 'merge-tags' ).trigger( 'after:filtersearch' );\n\n },\n\n /**\n * TODO: This is a wonky fix for removing Product and Quantity fields from calcuation merge tags.\n * Merge tags don't respect the \"exclude\" merge tag settings.\n * Ultimately, the fix might include updating merge tags to respect those settings.\n */\n excludeFromCalcs: function(){\n /**\n * Remove any unwanted fields if we are in a calculation.\n * Get a list of all fields, then filter out unwanted fields.\n */\n var fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n // Stores the keys of unwanted fields.\n var fieldsToRemove = [];\n // Declare blacklisted field types.\n var blacklist = ['product', 'quantity', 'total', 'shipping', 'date'];\n // Remove them from the merge tag selection box.\n _.each( fieldCollection.models, function( model ) {\n if ( -1 != blacklist.indexOf( model.get('type') ) ) {\n fieldsToRemove.push( '{field:' + model.get( 'key' ) + '}' );\n }\n });\n return fieldsToRemove;\n }\n });\n\n return view;\n} );\n","/**\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/mergeTagGroup',[], function() {\n var view = Marionette.ItemView.extend({\n tagName: 'li',\n template: '#tmpl-nf-merge-tag-box-section',\n events: {\n \"click\": \"onClick\"\n },\n\n initialize: function () {\n this.listenTo( nfRadio.channel( 'merge-tags' ), 'after:filtersearch', this.updateActive );\n },\n\n onClick: function(){\n this.updateTags();\n },\n\n updateTags: function() {\n nfRadio.channel( 'merge-tags' ).request( 'update:taglist', this.model.get( 'id' ) );\n },\n\n updateActive: function( section ) {\n this.$el.removeClass( 'active' );\n\n if ( section == this.model.get( 'id' ) ) {\n this.$el.addClass( 'active' );\n }\n },\n\n setActive: function(){\n this.$el.addClass( 'active' );\n this.$el.siblings().removeClass( 'active' );\n },\n\n });\n\n return view;\n} );\n","/**\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/mergeTagGroupList',[ 'views/app/drawer/mergeTagGroup' ], function( mergeTagGroupView ) {\n var view = Marionette.CollectionView.extend({\n tagName: 'ul',\n childView: mergeTagGroupView,\n\n initialize: function(){\n this.listenTo( nfRadio.channel( 'merge-tags' ), 'open', this.render, this );\n },\n\n // TODO: Update filter when a new tag is added. ie Calculations.\n filter: function( child, index, collection ){\n return 0 < child.get( 'tags' ).length;\n },\n });\n\n return view;\n} );\n","/**\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/mergeTagFilter',[], function() {\n var view = Marionette.ItemView.extend({\n template: '#tmpl-nf-merge-tag-box-filter',\n events: {\n \"keyup input\": \"updateFilter\",\n },\n updateFilter: function( event ) {\n\n if( /* ENTER */ 13 == event.keyCode ){ // Copied from Keyup Callback.\n // Get top listed merge tag.\n var firstFilteredTag = jQuery( '#merge-tags-box .merge-tag-list ul li span' ).first().data( 'tag' );\n\n nfRadio.channel( 'mergeTags' ).request( 'insert:tag', firstFilteredTag );\n\n // COPIED FROM BELOW\n jQuery( '#merge-tags-box' ).css( 'display', 'none' );\n jQuery( '#merge-tags-box' ).removeClass();\n jQuery( '.merge-tag-focus' ).removeClass( 'merge-tag-focus' );\n jQuery( '.merge-tag-focus-overlay' ).removeClass( 'merge-tag-focus-overlay' );\n return;\n }\n var value = this.$el.find( 'input' ).val();\n nfRadio.channel( 'merge-tags' ).request( 'filtersearch', value );\n }\n });\n\n return view;\n} );\n","/**\n * @package Ninja Forms builder\n * @subpackage App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'views/app/drawer/mergeTagBox',[], function() {\n var view = Marionette.LayoutView.extend({\n el: '#merge-tags-box',\n template: \"#tmpl-nf-merge-tag-box\",\n\n regions: {\n filter: '.merge-tag-filter',\n sections: '.merge-tag-sections',\n tags: '.merge-tag-list'\n },\n });\n\n return view;\n} );\n","/**\n * @package Ninja Forms builder\n * @subpackage Merge Tag Box\n * @copyright (c) 2017 WP Ninjas\n * @since 3.1\n */\n\ndefine( 'controllers/app/mergeTagBox',[\n 'models/app/mergeTagModel',\n 'models/app/mergeTagLookupCollection',\n 'views/app/drawer/mergeTag',\n 'views/app/drawer/mergeTagList',\n 'views/app/drawer/mergeTagGroup',\n 'views/app/drawer/mergeTagGroupList',\n 'views/app/drawer/mergeTagFilter',\n 'views/app/drawer/mergeTagBox'\n], function(\n MergeTagModel,\n MergeTagLookupCollection,\n MergeTagView,\n MergeTagListView,\n MergeTagGroupView,\n MergeTagGroupListView,\n MergeTagFilterView,\n MergeTagBoxLayout\n) {\n var controller = Marionette.Object.extend( {\n\n caret: 0, // Track the caret position of the current setting's input.\n old: '', // THe old merge tag that will be replaced.\n\n initialize: function(){\n\n this.listenTo( nfRadio.channel( 'drawer' ), 'render:settingGroup', function(){\n jQuery( '.merge-tags' ).off( 'click' );\n jQuery( '.merge-tags' ).on( 'click', this.mergeTagsButtonClick );\n });\n\n this.listenTo( nfRadio.channel( 'app' ), 'after:appStart', this.afterAppStart );\n this.listenTo( nfRadio.channel( 'app' ), 'before:renderSetting', this.beforeRenderSetting );\n this.listenTo( nfRadio.channel( 'drawer' ), 'before:close', this.beforeDrawerClose );\n\n var that = this;\n nfRadio.channel( 'mergeTags' ).reply( 'set:caret', function( position ){\n that.caret = position;\n });\n nfRadio.channel( 'mergeTags' ).reply( 'get:caret', function(){\n return that.caret;\n });\n\n var that = this;\n nfRadio.channel( 'mergeTags' ).reply( 'set:old', function( value ){\n that.old = value;\n });\n nfRadio.channel( 'mergeTags' ).reply( 'get:old', function(){\n return that.old;\n });\n\n nfRadio.channel( 'mergeTags' ).reply( 'insert:tag', this.insertTag.bind( this ) );\n\n /** OPTION REPEATER */\n this.listenTo( nfRadio.channel( 'option-repeater' ), 'add:option', function( model ){\n var selector = '#' + model.cid + ' .has-merge-tags input.setting';\n jQuery( selector ).on( 'focus', function( event ){\n that.focusCallback( event, selector, 'option-repeater' );\n });\n jQuery( selector ).on( 'keyup', function( event ){\n that.keyupCallback( event, selector, 'option-repeater' );\n });\n jQuery( selector ).siblings( '.nf-list-options .merge-tags' ).off( 'click' );\n jQuery( selector ).siblings( '.nf-list-options .merge-tags' ).on( 'click', this.mergeTagsButtonClick );\n } );\n this.listenTo( nfRadio.channel( 'drawer' ), 'opened', function(){\n jQuery( '.nf-list-options .merge-tags' ).off( 'click' );\n jQuery( '.nf-list-options .merge-tags' ).on( 'click', this.mergeTagsButtonClick );\n } );\n\n /* CALCULATIONS */\n this.listenTo( nfRadio.channel( 'setting-calculations-option' ), 'render:setting', this.renderSetting );\n // this.listenTo( nfRadio.channel( 'setting-calculations-option' ), 'render:setting', function( settingModel, dataModel, view ){\n // view.$el.find( '.merge-tags' ).on( 'click', this.mergeTagsButtonClick );\n // } );\n this.listenTo( nfRadio.channel( 'drawer' ), 'opened', function(){\n jQuery( '.nf-list-options.calculations .merge-tags' ).off( 'click' );\n jQuery( '.nf-list-options.calculations .merge-tags' ).on( 'click', this.mergeTagsButtonClick );\n } );\n\n /* SUMMERNOTE */\n this.listenTo( nfRadio.channel( 'summernote' ), 'focus', function( e, selector ) {\n that.focusCallback( false, selector, 'rte' );\n } );\n this.listenTo( nfRadio.channel( 'summernote' ), 'keydown', function( e, selector ){\n jQuery( selector ).closest( '.nf-setting' ).find( '.setting' ).summernote( 'saveRange' );\n } );\n this.listenTo( nfRadio.channel( 'summernote' ), 'keyup', function( e, selector ){\n that.keyupCallback( e, selector, 'rte' );\n } );\n\n // When an RTE setting is shown, make sure merge tags are hooked up.\n this.listenTo( nfRadio.channel( 'setting-type-rte' ), 'render:setting', function(){\n jQuery( '.note-editor .merge-tags' ).off( 'click' );\n jQuery( '.note-editor .merge-tags' ).on( 'click', this.mergeTagsButtonClick );\n } );\n\n this.listenTo( nfRadio.channel( 'drawer' ), 'opened', function(){\n jQuery( '.note-editor .merge-tags' ).off( 'click' );\n jQuery( '.note-editor .merge-tags' ).on( 'click', this.mergeTagsButtonClick );\n } );\n\n jQuery( document ).on( 'keyup', function( event ){\n if( 27 == event.keyCode ){\n nfRadio.channel( 'mergeTags' ).request( 'insert:tag', '' );\n // Copied from KeyupCallback.\n jQuery( '#merge-tags-box' ).css( 'display', 'none' );\n nfRadio.channel( 'drawer' ).request( 'enable:close' );\n jQuery( '#merge-tags-box' ).removeClass();\n jQuery( '.merge-tag-focus' ).blur();\n jQuery( '.merge-tag-focus' ).removeClass( 'merge-tag-focus' );\n jQuery( '.merge-tag-focus-overlay' ).removeClass( 'merge-tag-focus-overlay' );\n }\n });\n\n /**\n * Listen to the Field Changes (add, delete, update) and update the Merge Tags.\n */\n this.listenTo( Backbone.Radio.channel( 'fields' ), 'add:field', this.afterAppStart );\n this.listenTo( Backbone.Radio.channel( 'fields' ), 'delete:field', this.afterAppStart );\n this.listenTo( Backbone.Radio.channel( 'fieldSetting-key' ), 'update:setting', this.afterAppStart );\n\n /** ... and Calc updates. */\n this.listenTo( Backbone.Radio.channel( 'calcs' ), 'update:calc', this.afterAppStart );\n\n this.listenTo( Backbone.Radio.channel( 'app' ), 'change:currentDomain', this.afterAppStart );\n },\n\n afterAppStart: function() {\n\n var currentDomain = Backbone.Radio.channel( 'app' ).request( 'get:currentDomain' );\n\n var mergeTagCollection = nfRadio.channel( 'mergeTags' ).request( 'get:collection' );\n var mergeTags = [];\n mergeTagCollection.each( function( section ){\n\n section.get( 'tags' ).each( function( tag ){\n\n if( 'fields' == currentDomain.get( 'id' ) && '{submission:sequence}' == tag.get( 'tag' ) ) return;\n\n mergeTags.push({\n label: tag.get( 'label' ),\n tag: tag.get( 'tag' ),\n section: section.get( 'id' )\n });\n });\n });\n var layout = new MergeTagBoxLayout();\n layout.render();\n var tagCollection = new MergeTagLookupCollection( mergeTags );\n var mergeTagListView = new MergeTagListView({\n collection: tagCollection\n });\n var mergeTagGroupListView = new MergeTagGroupListView({\n collection: mergeTagCollection\n });\n\n layout.getRegion('tags').show(mergeTagListView);\n layout.getRegion('sections').show(mergeTagGroupListView);\n layout.getRegion('filter').show(new MergeTagFilterView);\n },\n\n beforeRenderSetting: function( settingModel, dataModel ){\n if( 'undefined' == typeof settingModel.get( 'use_merge_tags' ) ) return;\n if( ! settingModel.get( 'use_merge_tags' ) ) return;\n var name = settingModel.get( 'name' );\n this.listenTo( nfRadio.channel( 'setting-' + name ), 'render:setting', this.renderSetting );\n },\n\n renderSetting: function( settingModel, dataModel, view ){\n\n view.$el.find( '.merge-tags' ).off( 'click' );\n view.$el.find( '.merge-tags' ).on( 'click', this.mergeTagsButtonClick );\n\n if( 0 == jQuery( '#merge-tags-box' ).length ) this.afterAppStart();\n\n // Track Scrolling.\n jQuery( '#nf-drawer' ).on( 'scroll', function(){\n // COPIED AND MODIFIED FROM FOCUS\n if( 0 == jQuery( '.merge-tag-focus' ).length ) return;\n\n var rteEditor = jQuery( '.merge-tag-focus' ).closest( '.nf-setting' ).find( '.note-editor' );\n if( 0 != rteEditor.length ){\n var posY = rteEditor.offset().top - jQuery(window).scrollTop();\n var height = rteEditor.outerHeight();\n } else {\n var posY = jQuery('.merge-tag-focus').offset().top - jQuery(window).scrollTop();\n var height = jQuery('.merge-tag-focus').outerHeight();\n }\n\n\t // Find out if merge tag box will go below bottom of the page.\n\t var tagBoxY = posY + height;\n\t var windowHeight = window.innerHeight;\n\t var tagBoxHeight = jQuery( '#merge-tags-box' ).outerHeight();\n\n\t // If merge tag box will render below the bottom of the page,\n\t // change it to render above the field\n\n\t if ( ( tagBoxY + tagBoxHeight ) > windowHeight ) {\n tagBoxY = posY - tagBoxHeight;\n }\n\n if ( 0 > tagBoxY ) {\n tagBoxY = posY;\n }\n\n jQuery( '#merge-tags-box' ).css( 'top', tagBoxY );\n\n var boxHeight = jQuery( '#merge-tags-box' ).outerHeight();\n jQuery( '#nf-drawer' ).css( 'padding-bottom', boxHeight + 'px' );\n\n var repeaterRow = jQuery( '.merge-tag-focus' ).closest( '.nf-list-options-tbody' );\n if( 0 != repeaterRow.length ){\n var left = repeaterRow.offset().left - jQuery(window).scrollLeft();\n jQuery( '#merge-tags-box' ).css( 'left', left );\n } else {\n var posX = jQuery( '.merge-tag-focus' ).closest( '.nf-settings' ).offset().left - jQuery(window).scrollLeft();\n jQuery( '#merge-tags-box' ).css( 'left', posX );\n jQuery( '#merge-tags-box' ).css( 'width', jQuery( '.merge-tag-focus' ).closest( '.nf-settings' ).width() );\n }\n });\n\n // On input focus, move the Merge Tag Box into position.\n jQuery( view.el ).find( '.setting' ).on( 'focus', this.focusCallback );\n\n // TODO: Maybe move to view events.\n // On input keyup, maybe show Merge Tag Box.\n jQuery( view.el ).find( '.setting' ).on( 'keyup', this.keyupCallback );\n },\n\n // TODO: Maybe move to view class.\n beforeDrawerClose: function(){\n jQuery( '#merge-tags-box' ).css( 'display', 'none' );\n nfRadio.channel( 'drawer' ).request( 'enable:close' );\n // jQuery( 'body' ).append( jQuery( '#merge-tags-box' ) );\n },\n\n insertTag: function( tag ) {\n\n var $input = jQuery( '.merge-tag-focus' );\n\n if( 0 != $input.closest( '.nf-setting' ).first().find( '.note-editable' ).length ){\n $input = $input.closest( '.nf-setting' ).first().find( '.note-editable' );\n }\n\n if( 1 < $input.length ){ $input = $input.first(); }\n\n if( $input.hasClass( 'note-editable' ) ){\n var str = $input.closest( '.nf-setting' ).find( '.setting' ).summernote( 'code' );\n } else {\n var str = $input.val();\n }\n\n var find = nfRadio.channel( 'mergeTags' ).request( 'get:old' );\n var replace = tag;\n var caretPos = nfRadio.channel( 'mergeTags' ).request( 'get:caret' );\n\n var patt = /{([a-zA-Z0-9]|:|_||-})*/g;\n\n // Loop through matches to find insert/replace index range.\n // Reference: http://codepen.io/kjohnson/pen/36c3a782644dfff40fe3c1f05f8739d9?editors=0012\n while (match = patt.exec(str)) {\n if (find != match[0]) continue; // This isn't the match you are looking for...\n var string = str.slice(0, match.index) + replace + str.slice(patt.lastIndex); // Fancy replace for the specifc match, using the index/position.\n\n if( $input.hasClass( 'note-editable' ) ){\n $input.closest( '.nf-setting' ).find( '.setting' ).summernote( 'code', string );\n\n // Reposition the caret. http://stackoverflow.com/a/6249440 TODO: Determine the appropriate childNode.\n var el = $input;\n var childNode = null; // Default to first childNode.\n _.each( el[0].childNodes, function( node, index ){\n if( childNode ) return;\n if( ! node.nodeValue && ! node.innerHTML ) return;\n if( node.nodeValue ) {\n var value = node.nodeValue;\n } else if( node.innerHTML ){\n var value = node.innerHTML;\n }\n\n if( -1 == value.indexOf(replace) ) return; // Replace not found in this node.\n\n value = value.replace( /&nbsp;/g, ' ' );\n var position = value.indexOf(replace) + find.length;\n\n /*\n * If no caretPos, determine based on the node. ie Merge Tag Button context.\n * Note: We can't just check for '{', because they could just be inserting the first tag.\n */\n if( -1 == caretPos ){\n caretPos = value.indexOf( replace ) + 1;\n }\n\n if (caretPos == position) childNode = el[0].childNodes[index];\n });\n if( ! childNode ) childNode = el[0].childNodes[0];\n var offset = caretPos - find.length + replace.length;\n var range = document.createRange();\n var sel = window.getSelection();\n if( 0 != childNode.childNodes.length ) {\n try{\n range.setStart(childNode.childNodes[0], offset); \n } catch( err ) {\n console.log( childNode );\n console.log( 'error' );\n }\n \n } else {\n try {\n range.setStart(childNode, offset);\n } catch( err ) {\n console.log( 'error' );\n }\n \n }\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n\n\n } else {\n $input.val(string); // Update input value with parsed string.\n $input.change(); // Trigger a change event after inserting the merge tag so that it saves to the model.\n $input.caret(caretPos - find.length + replace.length); // Update Carept Position.\n }\n\n }\n\n jQuery( '#merge-tags-box' ).css( 'display', 'none' );\n nfRadio.channel( 'drawer' ).request( 'enable:close' );\n $input.removeClass( 'merge-tag-focus' );\n $input.closest( '.merge-tag-focus-overlay' ).removeClass( 'merge-tag-focus-overlay' );\n },\n\n mergeTagsButtonClick: function( e ){\n var $this = jQuery( this );\n\n if ($this.hasClass('open-media-manager')) {\n return;\n }\n\n if( $this.siblings().hasClass( 'merge-tag-focus' ) ){\n nfRadio.channel( 'mergeTags' ).request( 'insert:tag', '' );\n jQuery( '#merge-tags-box' ).css( 'display', 'none' );\n nfRadio.channel( 'drawer' ).request( 'enable:close' );\n jQuery( '.merge-tag-focus' ).removeClass( 'merge-tag-focus' );\n jQuery( '.merge-tag-focus-overlay' ).removeClass( 'merge-tag-focus-overlay' );\n return;\n }\n\n if( 0 !== $this.closest( '.nf-setting, .nf-table-row' ).find( '.note-tools' ).length ){\n var $inputSetting = $this.closest( '.note-editor' ).siblings( '.setting' ).first();\n $this.closest( '.nf-setting' ).find( '.setting' ).summernote( 'insertText', '{' );\n // Since we haven't determined the caretPos, set to -1 as a flag to determine later.\n nfRadio.channel('mergeTags').request( 'set:caret', -1 );\n } else {\n var $inputSetting = $this.siblings( '.setting' ).first();\n var text = $inputSetting.val() || '';\n $inputSetting.val( text + '{' ).change();\n nfRadio.channel('mergeTags').request('set:caret', text.length + 1 );\n }\n\n if( $this.parent().hasClass( 'note-tools' ) ){\n // $this.closest( '.nf-setting' ).find( '.setting' ).summernote( 'insertText', '{' );\n }\n\n nfRadio.channel('mergeTags').request('set:old', '{' );\n\n $inputSetting.addClass( 'merge-tag-focus' );\n\n // Disable browser autocomplete.\n var autocomplete = $this.attr( 'autocomplete' );\n $this.attr( 'autocomplete', 'off' );\n $this.data( 'autocomplete', autocomplete );\n\n var $overlayElement = $this.closest( '.nf-setting, .nf-table-row' );\n if( 0 != $overlayElement.find( '.note-editor' ).length ){\n $overlayElement.find('.note-editor' ).addClass('merge-tag-focus-overlay');\n } else {\n $overlayElement.addClass('merge-tag-focus-overlay');\n }\n\n /**\n * TODO: This is a wonky work around for removing Product and Quantity fields from calculation merge tags.\n * The merge tag system doesn't currently respect \"exclude\" merge tag settings.\n *\n * If 'eq' is the textarea next to the merge tag icon, then we're in a calculation setting.\n */\n if ( 'eq' == jQuery( e.target ).prev( 'textarea' ).data( 'id' ) ) {\n var calc = true;\n } else {\n var calc = false;\n }\n\n // Request that our merge tag box update its tag list, passing whether or not we're in a calculation setting.\n nfRadio.channel( 'merge-tags' ).request( 'update:taglist', 'fields', calc );\n \n jQuery( '#merge-tags-box' ).css( 'display', 'block' );\n nfRadio.channel( 'drawer' ).request( 'prevent:close' );\n\n jQuery( '.merge-tag-focus-overlay' ).off( 'click' );\n jQuery( '.merge-tag-focus-overlay' ).on( 'click', function( e ) {\n if ( jQuery( e.target ).hasClass( 'note-editor' ) ) {\n nfRadio.channel( 'mergeTags' ).request( 'insert:tag', '' );\n jQuery( '#merge-tags-box' ).css( 'display', 'none' );\n nfRadio.channel( 'drawer' ).request( 'enable:close' );\n jQuery( '#merge-tags-box' ).removeClass();\n jQuery( '.merge-tag-focus' ).removeClass( 'merge-tag-focus' );\n jQuery( '.merge-tag-focus-overlay' ).removeClass( 'merge-tag-focus-overlay' );\n }\n } );\n\n setTimeout(function(){\n jQuery( '#merge-tags-box' ).find( '.merge-tag-filter' ).find( 'input' ).focus();\n }, 500 );\n },\n\n focusCallback: function( e, target, type ){\n\n var type = type || 'setting';\n var $this = ( 'undefined' == typeof target ) ? jQuery( this ) : jQuery( target );\n\n jQuery( '.merge-tag-focus' ).each(function(index, el){\n if( this == el ) return;\n el.removeClass( 'merge-tag-focus' );\n });\n\n if( 'rte' == type ) {\n var posY = $this.closest( '.nf-setting' ).find( '.note-editor' ).offset().top - jQuery(window).scrollTop();\n var height = $this.closest( '.nf-setting' ).find( '.note-editor' ).outerHeight();\n } else {\n var posY = $this.offset().top - jQuery(window).scrollTop();\n var height = $this.outerHeight();\n }\n\n // Find out if merge tag box will go below bottom of the page.\n\t var tagBoxY = posY + height;\n\t var windowHeight = window.innerHeight;\n\t var tagBoxHeight = jQuery( '#merge-tags-box' ).outerHeight();\n\n\t // If merge tag box will render below the bottom of the page,\n // change it to render above the field\n\n\t if ( ( tagBoxY + tagBoxHeight ) > windowHeight ) {\n\t\t tagBoxY = posY - tagBoxHeight;\n\t }\n\n if ( 0 > tagBoxY ) {\n tagBoxY = posY;\n }\n\n jQuery( '#merge-tags-box' ).css( 'top', tagBoxY );\n\n var repeaterRow = $this.closest( '.nf-list-options-tbody' );\n if( 0 != repeaterRow.length ) {\n var left = repeaterRow.offset().left - jQuery(window).scrollLeft();\n jQuery( '#merge-tags-box' ).css( 'left', left );\n } else if( 'rte' == type ) {\n var posX = $this.closest( '.nf-setting' ).find( '.note-editor' ).offset().left - jQuery(window).scrollLeft();\n jQuery( '#merge-tags-box' ).css( 'left', posX );\n jQuery( '#merge-tags-box' ).css( 'width', $this.closest( '.nf-setting' ).find( '.note-editor' ).width() );\n }\n else\n {\n var posX = jQuery( this ).closest( '.nf-settings' ).offset().left - jQuery(window).scrollLeft();\n jQuery( '#merge-tags-box' ).css( 'left', posX );\n jQuery( '#merge-tags-box' ).css( 'width', $this.closest( '.nf-settings' ).width() );\n }\n\n var dataID = jQuery( this ).data( 'id' );\n if( dataID && 'eq' != dataID ) return;\n\n // var offset = jQuery( view.el ).find( '.setting' ).parent().outerHeight();\n // jQuery( view.el ).find( '.setting' ).parent().append( jQuery( '#merge-tags-box' ) );\n // jQuery( '#merge-tags-box' ).css( 'top', offset );\n },\n\n keyupCallback: function( event, target, type ){\n var type = type || 'setting';\n\n if( /* ENTER */ 13 == event.keyCode ){\n\n // Get top listed merge tag.\n var firstFilteredTag = jQuery( '#merge-tags-box .merge-tag-list ul li span' ).first().data( 'tag' );\n\n nfRadio.channel( 'mergeTags' ).request( 'insert:tag', firstFilteredTag );\n\n // COPIED FROM BELOW\n jQuery( '#merge-tags-box' ).css( 'display', 'none' );\n nfRadio.channel( 'drawer' ).request( 'enable:close' );\n jQuery( '#merge-tags-box' ).removeClass();\n jQuery( '.merge-tag-focus' ).removeClass( 'merge-tag-focus' );\n jQuery( '.merge-tag-focus-overlay' ).removeClass( 'merge-tag-focus-overlay' );\n\n return;\n }\n\n // Get the value.\n // var value = jQuery( summernote ).summernote( 'code' );\n // Update the value.\n // jQuery( summernote ).closest( '.nf-setting' ).find( '.note-editable' ).html( value );\n\n if( 'undefined' != typeof target ) {\n var $this = jQuery(target);\n } else {\n var $this = jQuery( this );\n }\n\n // TODO: Disable Browser Autocomplete\n // $this.attr()\n\n\n var dataID = jQuery( this ).data( 'id' );\n if( dataID && 'eq' == dataID ) return;\n\n // Store the current caret position.\n if( 'rte' == type ){\n var range = $this.summernote('createRange');\n if( range ) {\n var caretPos = range.so; // or .eo?\n } else {\n var caretPos = 0;\n }\n $this.closest( '.nf-setting' ).find( '.setting' ).summernote( 'saveRange' );\n } else {\n var caretPos = $this.caret();\n }\n nfRadio.channel( 'mergeTags' ).request( 'set:caret', caretPos );\n\n // Find merge tags.\n if( 'rte' == type ) {\n var mergetags = $this.summernote( 'code' ).match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));\n } else {\n var mergetags = $this.val().match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));\n }\n\n // Filter out closed merge tags.\n mergetags = _.filter(mergetags, function(mergetag) {\n return -1 == mergetag.indexOf( '}' ); // Filter out \"closed\" merge tags.\n });\n\n // If an open merge tag is found, show the Merge Tag Box, else hide.\n if( 0 !== mergetags.length ) {\n\n nfRadio.channel( 'mergeTags' ).request( 'set:old', mergetags[0] );\n \n jQuery('#merge-tags-box').css( 'display', 'block' );\n nfRadio.channel( 'drawer' ).request( 'prevent:close' );\n $this.addClass('merge-tag-focus');\n\n var boxHeight = jQuery( '#merge-tags-box' ).outerHeight();\n jQuery( '#nf-drawer' ).css( 'padding-bottom', boxHeight + 'px' );\n\n // Disable browser autocomplete.\n var autocomplete = $this.attr( 'autocomplete' );\n $this.attr( 'autocomplete', 'off' );\n $this.data( 'autocomplete', autocomplete );\n\n var $overlayElement = $this.closest( '.nf-setting, .nf-table-row' );\n if( 0 != $overlayElement.find( '.note-editor' ).length ){\n $overlayElement.find('.note-editor' ).addClass('merge-tag-focus-overlay');\n } else {\n $overlayElement.addClass('merge-tag-focus-overlay');\n }\n\n $overlayElement.off( 'click' );\n $overlayElement.on( 'click', function( event ){\n var elementClasses = jQuery( event.target ).attr( 'class' ) || [];\n if( -1 !== elementClasses.indexOf( 'merge-tag-focus-overlay' ) ){\n nfRadio.channel( 'mergeTags' ).request( 'insert:tag', '' );\n jQuery( '#merge-tags-box' ).css( 'display', 'none' );\n nfRadio.channel( 'drawer' ).request( 'enable:close' );\n jQuery( '#merge-tags-box' ).removeClass();\n jQuery( '.merge-tag-focus' ).removeClass( 'merge-tag-focus' );\n jQuery( '.merge-tag-focus-overlay' ).removeClass( 'merge-tag-focus-overlay' );\n }\n });\n\n var value = mergetags[0].replace( '{', '' );\n } else {\n jQuery( '#merge-tags-box' ).css( 'display', 'none' );\n nfRadio.channel( 'drawer' ).request( 'enable:close' );\n jQuery( '#merge-tags-box' ).removeClass();\n jQuery( '.merge-tag-focus' ).removeClass( 'merge-tag-focus' );\n jQuery( '.merge-tag-focus-overlay' ).removeClass( 'merge-tag-focus-overlay' );\n }\n }\n\n } );\n\n return controller;\n} );\n\n","/**\n * Listens to our app channel for settings views being rendered.\n *\n * If we're about to render a setting model that's a select and has 'fields' as the 'fill' setting, add all our field models to its options.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/itemSettingFill',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Listen for messages that are fired before a setting view is rendered.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'before:renderSetting', this.beforeRenderSetting );\n\t\t},\n\n\t\tbeforeRenderSetting: function( settingModel, dataModel ) {\n\t\t\tif ( 'fields' == settingModel.get( 'fill' ) ) {\n\t\t\t\t\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Modify the user's browser history when they click on a domain\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/confirmPublish',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:confirmPublish', this.confirmPublish );\n\t\t},\n\n\t\tconfirmPublish: function() {\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\t\t\t// Check to see if we need to add a submit button.\n\t\t\tif ( 1 == formModel.get( 'settings' ).get( 'add_submit' ) ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'add', { type: 'submit', label: 'Submit', order: 9999 } );\n\t\t\t}\n\t\t\tformModel.set( 'show_publish_options', false );\n\t\t\tnfRadio.channel( 'app' ).request( 'update:db', 'publish' );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Handles actions related to settings that utilise the Rich Text Editor\n *\n * @package Ninja Forms builder\n * @subpackage App - Settings Drawer\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/rte',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// We don't want the RTE setting to re-render when the value changes.\n\t\t\tnfRadio.channel( 'setting-type-rte' ).reply( 'renderOnChange', function(){ return false } );\n\n\t\t\tthis.listenTo( nfRadio.channel( 'rte' ), 'init:settingModel', this.initSettingModel );\n\n\t\t\t// When an RTE setting is shown, re-render RTE.\n\t\t\tthis.listenTo( nfRadio.channel( 'setting-type-rte' ), 'render:setting', this.renderSetting );\n\n\t\t\t// When an RTE setting view is destroyed, remove our RTE.\n\t\t\tthis.listenTo( nfRadio.channel( 'setting-type-rte' ), 'destroy:setting', this.destroySetting );\n\n\t\t\t// When an element within the RTE is clicked, check to see if we should insert a link.\n\t\t\tthis.listenTo( nfRadio.channel( 'setting-type-rte' ), 'click:extra', this.clickExtra );\n\n\t\t\t// Instantiates the variable that holds the media library frame.\n\t\t\tthis.meta_image_frame;\n\n\t\t\tjQuery.summernote.options.icons = {\n\t\t 'align': 'dashicons dashicons-editor-alignleft',\n\t\t 'alignCenter': 'dashicons dashicons-editor-aligncenter',\n\t\t 'alignJustify': 'dashicons dashicons-editor-justify',\n\t\t 'alignLeft': 'dashicons dashicons-editor-alignleft',\n\t\t 'alignRight': 'dashicons dashicons-editor-alignright',\n\t\t 'indent': 'dashicons dashicons-editor-indent',\n\t\t 'outdent': 'dashicons dashicons-editor-outdent',\n\t\t // 'arrowsAlt': 'dashicons fa-arrows-alt',\n\t\t 'bold': 'dashicons dashicons-editor-bold',\n\t\t 'caret': 'dashicons dashicons-arrow-down',\n\t\t // 'circle': 'dashicons fa-circle',\n\t\t 'close': 'dashicons dashicons-dismiss',\n\t\t 'code': 'dashicons dashicons-editor-code',\n\t\t 'eraser': 'dashicons dashicons-editor-removeformatting',\n\t\t // 'font': 'dashicons fa-font',\n\t\t // 'frame': 'dashicons fa-frame',\n\t\t 'italic': 'dashicons dashicons-editor-italic',\n\t\t 'link': 'dashicons dashicons-admin-links',\n\t\t 'unlink': 'dashicons dashicons-editor-unlink',\n\t\t 'magic': 'dashicons dashicons-editor-paragraph',\n\t\t // 'menuCheck': 'dashicons fa-check',\n\t\t 'minus': 'dashicons dashicons-minus',\n\t\t 'orderedlist': 'dashicons dashicons-editor-ol',\n\t\t // 'pencil': 'dashicons fa-pencil',\n\t\t // 'picture': 'dashicons fa-picture-o',\n\t\t // 'question': 'dashicons fa-question',\n\t\t 'redo': 'dashicons dashicons-redo',\n\t\t 'square': 'dashicons fa-square',\n\t\t // 'strikethrough': 'dashicons fa-strikethrough',\n\t\t // 'subscript': 'dashicons fa-subscript',\n\t\t // 'superscript': 'dashicons fa-superscript',\n\t\t 'table': 'dashicons dashicons-editor-table',\n\t\t // 'textHeight': 'dashicons fa-text-height',\n\t\t // 'trash': 'dashicons fa-trash',\n\t\t 'underline': 'dashicons dashicons-editor-underline',\n\t\t 'undo': 'dashicons dashicons-undo',\n\t\t 'unorderedlist': 'dashicons dashicons-editor-ul',\n\t\t // 'video': 'dashicons fa-youtube-play'\n\t\t }\n\n\t\t this.currentContext = {};\n\t\t},\n\n\t\tinitSettingModel: function( settingModel ) {\n\t\t\tsettingModel.set( 'hide_merge_tags', true );\n\t\t},\n\n\t\tinitRTE: function( settingModel, dataModel, settingView ) {\n\t\t\t/*\n\t\t\t * Custom Button for links\n\t\t\t */\n\t\t\tvar that = this;\n\t\t\t// var linkButton = this.linkButton();\n\t\t\tvar linkButton = function( context ) {\n\t\t\t\treturn that.linkButton( context );\n\t\t\t}\n\t\t\tvar mediaButton = function( context ) {\n\t\t\t\treturn that.mediaButton( context );\n\t\t\t}\n\t\t\tvar mergeTags = this.mergeTags();\n\n\t\t\tvar toolbar = [\n\t\t\t\t[ 'paragraphStyle', ['style'] ],\n\t\t\t\t[ 'fontStyle', [ 'bold', 'italic', 'underline','clear' ] ],\n\t\t\t\t[ 'lists', [ 'ul', 'ol' ] ],\n\t\t\t [ 'paragraph', [ 'paragraph' ] ],\n\t\t\t [ 'customGroup', [ 'linkButton', 'unlink' ] ],\n\t\t\t [ 'table', [ 'table' ] ],\n\t\t\t [ 'actions', [ 'undo', 'redo' ] ],\n\t\t\t [ 'tools', [ 'mediaButton', 'mergeTags', 'codeview' ] ]\n\t\t\t];\n\n\t\t\tjQuery( settingView.el ).find( 'div.setting' ).summernote( {\n\t\t\t\ttoolbar: toolbar,\n\t\t\t\tbuttons: {\n\t\t\t\t\tlinkButton: linkButton,\n\t\t\t\t\tmergeTags: mergeTags,\n\t\t\t\t\tmediaButton: mediaButton\n\t\t\t\t},\n\t\t\t\theight: 150, //set editable area's height\n\t\t\t\tcodemirror: { // codemirror options\n\t\t\t\t theme: 'monokai',\n\t\t\t\t lineNumbers: true,\n lineWrapping: true,\n\t\t\t\t callbacks: {\n\t\t\t\t \tonBlur: function( editor ) {\n\t\t\t\t \t\tvar value = editor.getValue();\n\t\t\t\t \t\tthat.updateDataModel( settingModel, dataModel, value );\n\t\t\t\t \t}\n\t\t\t\t }\n\t\t\t\t},\n\t\t\t\tprettifyHtml: true,\n\t\t\t\tcallbacks: {\n\t\t\t\t\tonBlur: function( e, context ) {\n\t\t\t\t\t\tvar value = jQuery( this ).summernote( 'code' );\n\t\t\t\t\t\tthat.updateDataModel( settingModel, dataModel, value );\n nfRadio.channel( 'summernote' ).trigger( 'blur', settingModel, dataModel, value );\n\t\t\t\t\t},\n onFocus: function( e, context ) {\n nfRadio.channel( 'summernote' ).trigger( 'focus', e, this, context );\n },\n onKeydown: function( e, context ) {\n nfRadio.channel( 'summernote' ).trigger( 'keydown', e, this, context );\n },\n onKeyup: function( e, context ) {\n nfRadio.channel( 'summernote' ).trigger( 'keyup', e, this, context );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\tupdateDataModel: function( settingModel, dataModel, value ) {\n\t\t\tvar name = settingModel.get( 'name' );\n\t\t\tvar before = dataModel.get( name );\n\t\t\tvar after = value;\n\n\t\t\tvar changes = {\n\t\t\t\tattr: name,\n\t\t\t\tbefore: before,\n\t\t\t\tafter: after\n\t\t\t}\n\n\t\t\tvar label = {\n\t\t\t\tobject: dataModel.get( 'objectType' ),\n\t\t\t\tlabel: dataModel.get( 'label' ),\n\t\t\t\tchange: 'Changed ' + settingModel.get( 'label' ) + ' from ' + before + ' to ' + after\n\t\t\t};\n\n\t\t\tnfRadio.channel( 'changes' ).request( 'register:change', 'changeSetting', dataModel, changes, label );\n\n\t\t\tdataModel.set( settingModel.get( 'name' ), after );\n\t\t},\n\n\t\trenderSetting: function( settingModel, dataModel, settingView ) {\n\t\t\tthis.initRTE( settingModel, dataModel,settingView );\n\t\t\tvar linkMenu = jQuery( settingView.el ).find( '.link-button' ).next( '.dropdown-menu' ).find( 'button' );\n\t\t\tlinkMenu.replaceWith(function () {\n\t\t\t return jQuery( '<div/>', {\n\t\t\t class: jQuery( linkMenu ).attr( 'class' ),\n\t\t\t html: this.innerHTML\n\t\t\t } );\n\t\t\t} );\n\t\t},\n\n\t\tdestroySetting: function( settingModel, dataModel, settingView ) {\n\t\t\tthis.removeRTE( settingModel, dataModel, settingView );\n\t\t},\n\n\t\tremoveRTE: function( settingModel, dataModel, settingView ) {\n\t\t\tjQuery( settingView.el ).find( 'div.setting' ).summernote( 'destroy' );\n\t\t},\n\n\t\tdrawerOpened: function( settingModel, dataModel, settingView ) {\n\t\t\tthis.initRTE( settingModel, dataModel, settingView );\n\t\t},\n\n\t\tlinkButton: function( context ) {\n\t\t\tvar that = this;\n\t\t\tvar ui = jQuery.summernote.ui;\n\t\t\tvar linkButton = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-rte-link-button' );\n\t\t\tvar linkDropdown = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-rte-link-dropdown' );\n\t\t\treturn ui.buttonGroup([\n\t\t\t\tui.button({\n\t className: 'dropdown-toggle link-button',\n\t contents: linkButton({}),\n\t tooltip: 'Insert Link',\n\t click: function( e ) {\n\t \tthat.clickLinkButton( e, context );\n\t },\n\t data: {\n\t toggle: 'dropdown'\n\t }\n\t }),\n\t\t\t\tui.dropdown([\n\t ui.buttonGroup({\n\t children: [\n\t ui.button({\n\t contents: linkDropdown({}),\n\t tooltip: ''\n\t }),\n\t ]\n\t })\n\t ])\n\t\t\t]).render();\n\t\t},\n\n\t\tmergeTags: function( context ) {\n\t\t\tvar ui = jQuery.summernote.ui;\n\t\t\tvar mergeTagsButton = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-rte-merge-tags-button' );\n\t\t\treturn ui.button({\n\t\t\t\tclassName: 'dropdown-toggle merge-tags',\n\t\t\t\tcontents: mergeTagsButton({}),\n\t\t\t\ttooltip: 'Merge Tags'\n\t\t\t}).render();\n\t\t},\n\n\t\tmediaButton: function( context ) {\n\t\t\tvar that = this;\n\t\t\tvar ui = jQuery.summernote.ui;\n\t\t\tvar mediaButton = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-rte-media-button' );\n\t\t\treturn ui.button({\n\t className: 'dropdown-toggle',\n\t contents: mediaButton({}),\n\t tooltip: 'Insert Media',\n\t click: function( e ) {\n\t \tthat.openMediaManager( e, context );\n\t }\n\t }).render();\n\t\t},\n\n\t\topenMediaManager: function( e, context ) {\n\t\t\tcontext.invoke( 'editor.createRange' );\n\t\t\tcontext.invoke( 'editor.saveRange' );\n\t\t\tthis.currentContext = context;\n\t\t\t\n\t\t\t// If the frame already exists, re-open it.\n\t\t\tif ( this.meta_image_frame ) {\n\t\t\t\tthis.meta_image_frame.open();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Sets up the media library frame\n\t\t\tthis.meta_image_frame = wp.media.frames.meta_image_frame = wp.media({\n\t\t\t\ttitle: 'Select a file',\n\t\t\t\tbutton: { text: 'insert' }\n\t\t\t});\n\n\t\t\tvar that = this;\n\n\t\t\t// Runs when an image is selected.\n\t\t\tthis.meta_image_frame.on('select', function(){\n\n\t\t\t\t// Grabs the attachment selection and creates a JSON representation of the model.\n\t\t\t\tvar media_attachment = that.meta_image_frame.state().get('selection').first().toJSON();\n\t\t\t\tthat.insertMedia( media_attachment, context );\n\t\t\t});\n\n\t\t\t// Opens the media library frame.\n\t\t\tthis.meta_image_frame.open();\n\t\t},\n\n\t\tclickLinkButton: function ( e, context ) {\n\t\t\tvar range = context.invoke( 'editor.createRange' );\n\t\t\tcontext.invoke( 'editor.saveRange' );\n\t\t\tvar text = range.toString()\n\t\t\tthis.currentContext = context;\n\n\t\t\tjQuery( e.target ).closest( '.note-customGroup > .note-btn-group' ).on ('hide.bs.dropdown', function ( e ) {\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tjQuery( e.target ).closest( '.note-customGroup > .note-btn-group' ).on ('shown.bs.dropdown', function ( e ) {\n\t\t\t\tjQuery( e.target ).parent().parent().find( '.link-text' ).val( text );\n\t\t\t\tjQuery( e.target ).parent().parent().find( '.link-url' ).focus();\n\t\t\t});\n\t\t},\n\n\t\tclickExtra: function( e, settingModel, dataModel, settingView ) {\n\t\t\tvar textEl = jQuery( e.target ).parent().find( '.link-text' );\n\t\t\tvar urlEl = jQuery( e.target ).parent().find( '.link-url' );\n\t\t\tvar isNewWindowEl = jQuery( e.target ).parent().find( '.link-new-window' );\n\t\t\tthis.currentContext.invoke( 'editor.restoreRange' );\n\t\t\tif ( jQuery( e.target ).hasClass( 'insert-link' ) ) {\n\t\t\t\tvar text = textEl.val();\n\t\t\t\tvar url = urlEl.val();\n\t\t\t\tvar isNewWindow = ( isNewWindowEl.prop( 'checked' ) ) ? true: false;\n\t\t\t\tif ( 0 != text.length && 0 != url.length ) {\n\t\t\t\t\tthis.currentContext.invoke( 'editor.createLink', { text:text, url: url, isNewWindow: isNewWindow } );\n\t\t\t\t}\n\t\t\t}\n\t\t\ttextEl.val( '' );\n\t\t\turlEl.val( '' );\n\t\t\tisNewWindowEl.prop( 'checked', false );\n\t\t\tjQuery( e.target ).closest( 'div.note-btn-group.open' ).removeClass( 'open' );\n\t\t},\n\n\t\tinsertMedia: function( media, context ) {\n\t\t\tthis.currentContext.invoke( 'editor.restoreRange' );\n\t\t\tif ( 'image' == media.type ) {\n\t\t\t\tthis.currentContext.invoke( 'editor.insertImage', media.url );\n\t\t\t} else {\n\t\t\t\tthis.currentContext.invoke( 'editor.createLink', {\n\t\t\t\t\ttext: media.title || media.filename,\n\t\t\t\t\turl: media.url\n\t\t\t\t} );\n\t\t\t}\n\n\t\t}\n\t});\n\n\treturn controller;\n} );\n\n","/**\n * Listens to our app channel for settings views being rendered.\n *\n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/settingFieldSelect',[], function() {\n var controller = Marionette.Object.extend( {\n\n initialize: function() {\n\n // Bind field key listener to field-select setting type.\n this.listenTo( nfRadio.channel( 'field-select' ), 'init:settingModel', this.trackKeyChanges );\n\n // The first time settingModel and the dataModel meet.\n this.listenTo( nfRadio.channel( 'setting-type-field-select' ), 'before:renderSetting', this.beforeRender );\n\n // Add setting change listener only in drawers with a field-select setting.\n this.listenTo( nfRadio.channel( 'field-select' ), 'init:settingModel', function() {\n this.listenTo( nfRadio.channel( 'app' ), 'change:setting', this.maybeSwitchToFieldsDomain );\n });\n\n this.listenTo( nfRadio.channel( 'app' ), 'change:currentDomain', this.autoOpenDrawer );\n\n this.listenTo( nfRadio.channel( 'drawer' ), 'opened', this.filterDrawerContents );\n this.listenTo( nfRadio.channel( 'drawer' ), 'closed', this.SwitchToFieldsDomain );\n },\n\n trackKeyChanges: function( settingModel ) {\n settingModel.listenTo( nfRadio.channel( 'app' ), 'update:fieldKey', settingModel.updateKey );\n\n // Update selected field if the selected field's key changes.\n this.listenTo( nfRadio.channel( 'app' ), 'replace:fieldKey', this.updateFieldMap );\n },\n\n updateFieldMap: function( dataModel, keyModel, settingModel ) {\n\n var oldKey = keyModel._previousAttributes[ 'key' ];\n var newKey = keyModel.get( 'key' );\n\n if( 'field-select' == settingModel.get( 'type' ) && dataModel.get( settingModel.get( 'name' ) ) == oldKey ) {\n\n dataModel.set( settingModel.get( 'name' ), newKey );\n }\n },\n\n beforeRender: function( settingModel, dataModel ) {\n\n var fieldCollection = nfRadio.channel( 'fields' ).request( 'get:collection' );\n\n var fieldTypes = settingModel.get( 'field_types' );\n\n var options = [\n {\n label: '--',\n value: 0\n }\n ];\n _.each( fieldCollection.models, function( field ){\n\n if( dataModel.cid == field.cid ) return;\n\n if( 'undefined' != typeof fieldTypes && 0 != fieldTypes.length && ! _.contains( fieldTypes, field.get( 'type' ) ) ) return;\n\n var fieldFilter = settingModel.get( 'field_filter' );\n if( fieldFilter && 'undefined' != typeof fieldFilter[ field.get( 'type' ) ] ) {\n var bail = false;\n _.each( fieldFilter[ field.get( 'type' ) ], function( value, setting ){\n console.log( value + \":\" + field.get( setting ) );\n if( value != field.get( setting ) ) bail = true;\n } );\n if( bail ) return;\n }\n\n var value = field.get( 'key' );\n switch ( settingModel.get( 'field_value_format' ) ) {\n case 'key':\n value = field.get( 'key' );\n break;\n case 'merge_tag':\n default:\n value = '{field:' + field.get( 'key' ) + '}';\n }\n\n options.push({\n label: field.get( 'label' ),\n value: value\n });\n });\n\n if( 'undefined' != typeof fieldTypes && 0 != fieldTypes.length ) {\n _.each( fieldTypes, function( fieldType ){\n\n var fieldTypeModel = nfRadio.channel( 'fields' ).request( 'get:type', fieldType );\n\n options.push({\n label: '-- Add ' + fieldTypeModel.get( 'nicename' ) + ' Field',\n value: 'addField:' + fieldType,\n });\n } );\n }\n\n settingModel.set( 'options', options );\n },\n\n maybeSwitchToFieldsDomain: function( e, model, dataModel ) {\n\n if( 'field-select' != model.get( 'type' ) ) return;\n\n var name = model.get( 'name' );\n var value = dataModel.get( name );\n\n if( ! value ) return;\n\n var rubble = value.split( ':' );\n\n if( 'addField' != rubble[0] ) return;\n\n this.openDrawer = 'addField';\n this.filterDrawer = rubble[1];\n\n dataModel.set( name, '' );\n\n this.switchDomain = true;\n nfRadio.channel( 'app' ).request( 'close:drawer' );\n },\n\n SwitchToFieldsDomain: function() {\n if( this.switchDomain ) {\n var fieldDomainModel = nfRadio.channel( 'app' ).request( 'get:domainModel', 'fields' );\n nfRadio.channel('app').request('change:currentDomain', null, fieldDomainModel);\n this.switchDomain = null;\n }\n },\n\n autoOpenDrawer: function() {\n if( this.openDrawer ) {\n nfRadio.channel( 'app' ).request( 'open:drawer', this.openDrawer );\n this.openDrawer = null;\n }\n },\n\n filterDrawerContents: function() {\n if( this.filterDrawer ) {\n nfRadio.channel('drawer-addField').trigger('change:filter', this.filterDrawer);\n this.filterDrawer = null;\n }\n }\n });\n\n return controller;\n} );\n","/**\n * The Field List setting is a container of settings (like the Fieldset setting), in which its children are instantiated.\n * Unlike the Fieldset setting, Field List settings are dynamically created based on the list of form fields.\n *\n * Note: Field references in the dynamic setting names are based on field keys, which may change.\n * Unlike regular field key tracking, a new setting needs to be created with the same value as the previous.\n *\n * @package Ninja Forms builder\n * @subpackage Action Settings\n * @copyright (c) 2016 WP Ninjas\n * @author Kyle B. Johnson\n * @since 3.0\n */\ndefine( 'controllers/app/settingFieldList',['views/app/drawer/typeSettingFieldset','models/app/settingCollection'], function( fieldsetView, settingCollection ) {\n return Marionette.Object.extend( {\n\n /**\n * A reference list of Field List setting models.\n */\n fieldListSettings: [],\n\n initialize: function() {\n this.listenTo( nfRadio.channel( 'field-list' ), 'init:settingModel', this.registerFieldListSettings );\n this.listenTo( nfRadio.channel( 'fields' ), 'update:setting', this.updateFieldListSettingKeys );\n nfRadio.channel( 'field-list' ).reply( 'get:settingChildView', this.getSettingChildView, this );\n },\n\n /**\n * Build a reference list of Field List setting models for later reference.\n *\n * @param settingModel\n */\n registerFieldListSettings: function( settingModel ){\n this.fieldListSettings.push( settingModel.get( 'name' ) );\n },\n\n /**\n * Field List settings contain field keys in the setting names.\n * When a field key changes, so too must the Field List setting name.\n *\n * @param fieldModel\n */\n updateFieldListSettingKeys: function( fieldModel ){\n\n // We are only interested in field key changes.\n if( 'undefined' == typeof fieldModel.changed.key ) return;\n\n var oldKey = fieldModel._previousAttributes.key;\n var newKey = fieldModel.changed.key;\n\n /*\n * This is an absolute (functional) mess of nesting. I apologize to my future self, or Kenny.\n *\n * Each setting of each action model must be checked against each registered Field List setting.\n */\n var that = this;\n _.each( Backbone.Radio.channel( 'actions' ).request( 'get:collection' ).models, function( actionModel ) {\n _.each( actionModel.attributes, function( value, setting ) {\n var lastChanged = ''; // Used to avoid resetting the change with a duplicate call.\n _.each( that.fieldListSettings, function( prefix ) {\n if( setting != prefix + '-' + oldKey || lastChanged == oldKey ) return;\n var oldValue = actionModel.get( prefix + '-' + oldKey );\n actionModel.set( prefix + '-' + newKey, oldValue );\n actionModel.set( prefix + '-' + oldKey, 0 );\n lastChanged = oldKey;\n });\n });\n });\n },\n\n /**\n * Set the view for Field List sub-settings, just like the Fieldset setting.\n *\n * @param settingModel\n * @returns {*}\n */\n getSettingChildView: function( settingModel ) {\n\n /**\n * Dynamically build field-list settings as needed for the view.\n */\n\n // Filter fields based on the field_types setting property.\n var fields = _.filter( nfRadio.channel( 'fields' ).request( 'get:collection' ).models, function( field ) {\n return _.contains( settingModel.get( 'field_types' ), field.get( 'type' ) );\n });\n\n // Map fields into setting definitions.\n var settings = _.map( fields, function( field ) {\n return {\n name: settingModel.get( 'name' ) + '-' + field.get( 'key' ),\n type: 'toggle',\n label: field.get( 'label' ),\n width: 'full'\n };\n });\n\n settingModel.set( 'settings', new settingCollection( settings ) );\n\n // return the child view.\n return fieldsetView;\n },\n\n });\n} );\n\n","/**\n * Listens to our app channel for settings views being rendered.\n *\n *\n *\n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/settingHTML',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n\n // The first time settingModel and the dataModel meet.\n this.listenTo( nfRadio.channel( 'setting-type-html' ), 'before:renderSetting', this.init );\n },\n\n init: function( settingModel, dataModel ) {\n\n if( 'undefined' == settingModel.get( 'mirror' ) ) return;\n\n // Listen to a setting change inside of the dataModel.\n dataModel.on( 'change:' + settingModel.get( 'mirror' ), this.update, settingModel );\n },\n\n update: function( dataModel, changedSettingValue ) {\n\n // Mirror the default value setting value.\n dataModel.set( this.get( 'name' ), changedSettingValue );\n }\n });\n\n return controller;\n} );\n","/**\n * Listens to our app channel for settings views being rendered.\n *\n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/settingColor',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n // We don't want to re-render this setting type when the data changes.\n nfRadio.channel( 'setting-type-color' ).reply( 'renderOnChange', this.setRenderFalse );\n // We want to close any color pickers before we close our styling tab or drawer.\n this.listenTo( nfRadio.channel( 'setting-type-color' ), 'destroy:setting', this.closeColorPickers );\n\n // The first time settingModel and the dataModel meet.\n this.listenTo( nfRadio.channel( 'setting-type-color' ), 'render:setting', this.initColorPicker );\n },\n\n initColorPicker: function( settingModel, dataModel, view ) {\n\n var name = settingModel.get( 'name' );\n var el = jQuery( view.el ).find( 'input' );\n\n jQuery( el ).wpColorPicker( {\n change: function( event, ui ){\n nfRadio.channel( 'app' ).request( 'change:setting', event, settingModel, dataModel, ui.color.toString() );\n }\n } );\n },\n\n setRenderFalse: function() {\n return false;\n },\n\n closeColorPickers: function( settingModel, dataModel, view ) {\n jQuery( view.el ).find( '.wp-color-picker' ).wpColorPicker( 'close' );\n }\n });\n\n return controller;\n} );\n","/**\n * Listens to our app channel for the app to start.\n *\n * If the form is a new form, then highlight the Add New submenu item.\n * Otherwise, append an Edit Form submenu for context.\n *\n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2016 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/changeMenu',[], function() {\n var controller = Marionette.Object.extend({\n\n editFormText: '',\n\n initialize: function () {\n this.editFormText = nfAdmin.editFormText || 'Edit Form';\n this.listenTo(nfRadio.channel('app'), 'after:appStart', this.changeMenu);\n this.listenTo( nfRadio.channel( 'app' ), 'response:updateDB', this.formPublish );\n },\n\n changeMenu: function () {\n var form = nfRadio.channel( 'app' ).request( 'get:formModel' );\n\n if ( this.isNewForm( form.id ) ) {\n this.highlightAddNew();\n } else {\n this.appendEditForm();\n }\n },\n\n isNewForm: function( form_id ) {\n return isNaN( form_id );\n },\n\n highlightAddNew: function() {\n jQuery( '.wp-submenu li' ).removeClass( 'current' );\n jQuery( 'a[href=\"admin.php?page=ninja-forms&form_id=new\"]' ).parent().addClass( 'current' );\n },\n\n /**\n * Append 'Edit Form'\n * When editing a form, add an 'Edit Form' submenu item to\n * the WordPress Admin Dashboard menu, specifically under\n * the Ninja Forms Menu Item and after the 'Add New' item.\n */\n appendEditForm: function() {\n // Singleton check. Only add this menu item one time.\n if ( jQuery( 'li a:contains(\"' + this.editFormText + '\")' ).length > 0 ) return;\n\n var editFormLinkText, editFormLink, editFormListItem;\n\n // Create the 'Edit Form' submenu item.\n editFormLinkText = document.createTextNode(this.editFormText);\n editFormLink = document.createElement(\"a\");\n editFormLink.appendChild(editFormLinkText);\n\n editFormListItem = document.createElement(\"li\");\n editFormListItem.appendChild(editFormLink);\n editFormListItem.classList.add(\"current\");\n\n // Remove the `current` class from any existing list items.\n jQuery( '.wp-submenu li' ).removeClass( 'current' );\n\n // Insert the 'Edit Form' item after the 'Add New' item;\n jQuery( 'a[href=\"admin.php?page=ninja-forms#new-form\"]' ).parent().after( editFormListItem );\n },\n\n formPublish: function( response ) {\n if ( 'publish' !== response.action ) return false;\n this.changeMenu();\n }\n });\n\n return controller;\n});\n\n","/**\n * When we click on a domain link, close the mobile menu.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/mobile',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Listen for clicks on our app menu.\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'click:menu', this.closeMobileMenu );\n\t\t},\n\n\t\tcloseMobileMenu: function() {\n\t\t\tvar builderEl = nfRadio.channel( 'app' ).request( 'get:builderEl' );\n\t\t\tjQuery( builderEl ).removeClass( 'nf-menu-expand' );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Add a jBox notice to the screen.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/notices',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'notices' ).reply( 'add', this.addNotice, this );\n\t\t\tnfRadio.channel( 'notices' ).reply( 'close', this.closeNotice, this );\n\t\t\tthis.notices = {};\n\t\t},\n\n\t\taddNotice: function( key, msg, options ) {\n\n\t\t\tvar appDefaults = {\n\t\t\t\tcontent: msg,\n\t\t\t\tcolor: 'green',\n\t\t\t\tzIndex:10000000,\n\t\t\t\tconstructOnInit: true,\n\t\t\t\tstack: true,\n\t\t\t\tanimation: {\n\t\t\t\t\topen: 'flip',\n\t\t\t\t\tclose: 'flip'\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar mobileDefaults = {\n\t\t\t\tposition: {\n\t\t\t\t\tx: 'center',\n\t\t\t\t\ty: 'top'\n\t\t\t\t},\n\t\t\t\tanimation: {\n\t\t\t\t\topen:'slide:top',\n\t\t\t\t\tclose:'slide:left'\n\t\t\t\t},\n\t\t\t\tautoClose: 2000,\n\t\t\t\toffset: {\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty: 55\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar desktopDefaults = {\n\t\t\t\tattributes: {\n\t\t\t\t\tx: 'left',\n\t\t\t\t\ty: 'bottom'\n\t\t\t\t},\n\t\t\t\tautoClose: 4000\n\t\t\t};\n\n\t\t\tif ( nfRadio.channel( 'app' ).request( 'is:mobile' ) ) {\n\t\t\t\tvar defaults = mobileDefaults;\t\n\t\t\t} else {\n\t\t\t\tvar defaults = desktopDefaults;\n\t\t\t}\n\t\t\tdefaults = jQuery.extend( defaults, appDefaults );\n\n\t\t\tvar options = jQuery.extend( defaults, options );\n\t\t\t// console.log( options );\n\t\t\tthis.notices[ key ] = new jBox( 'Notice', options );\n\t\t},\n\n\t\tcloseNotice: function( key ) {\n\t\t\tif ( 'undefined' != typeof this.notices[ key ] ) {\n\t\t\t\tthis.notices[ key ].close();\n\t\t\t}\n\t\t},\n\n\t\topenNotice: function( key ) {\n\t\t\tif ( 'undefined' != typeof this.notices[ key ] ) {\n\t\t\t\tthis.notices[ key ].open();\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Prompt the user to save if they attempt to leave the page with unsaved changes.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2016 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/unloadCheck',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tjQuery( window ).bind( 'beforeunload', this.maybePrompt );\n\t\t},\n\n\t\tmaybePrompt: function( model ) {\n\t\t\t// If our app is clean, don't show a warning.\n\t\t\tif ( ! nfRadio.channel( 'app' ).request( 'get:setting', 'clean' ) ) {\n\t\t\t\treturn 'You have unsaved changes.';\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Before we save data to the database (on preview update or publish), we check to see if we have anyone\n * that wants to update the 'formContent' form setting. This setting is used on the front-end to allow\n * for custom display of form fields. i.e. layout rows.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/formContentFilters',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * Init our formContent view filter array.\n\t\t\t */\n\t\t\tthis.viewFilters = [];\n\t\t\tthis.saveFilters = [];\n\t\t\tthis.loadFilters = [];\n\n\t\t\t/*\n\t\t * Listen for requests to add formContent filters.\n\t\t\t */\n\n\t\t\tnfRadio.channel( 'formContent' ).reply( 'add:viewFilter', this.addViewFilter, this );\n\t\t\tnfRadio.channel( 'formContent' ).reply( 'add:saveFilter', this.addSaveFilter, this );\n\t\t\tnfRadio.channel( 'formContent' ).reply( 'add:loadFilter', this.addLoadFilter, this );\n\n\t\t\t/*\n\t\t\t * Listen for requests to get our formContent filters.\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContent' ).reply( 'get:viewFilters', this.getViewFilters, this );\n\t\t\tnfRadio.channel( 'formContent' ).reply( 'get:saveFilters', this.getSaveFilters, this );\n\t\t\tnfRadio.channel( 'formContent' ).reply( 'get:loadFilters', this.getLoadFilters, this );\n\t\t\t\n\t\t\t/*\n\t\t\t * -- DEPRECATED RADIO REPLIES --\n\t\t\t * \n\t\t\t * The 'fieldContents' channel has been deprecated as of 3.0 (it was present in the RC) in favour of 'formContent'.\n\t\t\t * Listen for requests to add new fieldContent filters.\n\t\t\t * \n\t\t\t * TODO: These radio listeners on the 'fieldContents' channels are here for backwards compatibility and should be removed eventually.\n\t\t\t */\n\n\t\t\tnfRadio.channel( 'fieldContents' ).reply( 'add:viewFilter', this.addViewFilter, this );\n\t\t\tnfRadio.channel( 'fieldContents' ).reply( 'add:saveFilter', this.addSaveFilter, this );\n\t\t\tnfRadio.channel( 'fieldContents' ).reply( 'add:loadFilter', this.addLoadFilter, this );\n\n\t\t\t/*\n\t\t\t * Listen for requests to get our fieldContent filters.\n\t\t\t */\n\t\t\tnfRadio.channel( 'fieldContents' ).reply( 'get:viewFilters', this.getViewFilters, this );\n\t\t\tnfRadio.channel( 'fieldContents' ).reply( 'get:saveFilters', this.getSaveFilters, this );\n\t\t\tnfRadio.channel( 'fieldContents' ).reply( 'get:loadFilters', this.getLoadFilters, this );\n\t\t\n\t\t\t/*\n\t\t\t * -- END DEPRECATED --\n\t\t\t */\n\t\t},\n\n\t\taddViewFilter: function( callback, priority ) {\n\t\t\tthis.viewFilters[ priority ] = callback;\n\t\t},\n\n\t\tgetViewFilters: function() {\n\t\t\treturn this.viewFilters;\n\t\t},\n\n\t\taddSaveFilter: function( callback, priority ) {\n\t\t\tthis.saveFilters[ priority ] = callback;\n\t\t},\n\n\t\tgetSaveFilters: function() {\n\t\t\treturn this.saveFilters;\n\t\t},\n\n\t\taddLoadFilter: function( callback, priority ) {\n\t\t\tthis.loadFilters[ priority ] = callback;\n\t\t},\n\n\t\tgetLoadFilters: function() {\n\t\t\treturn this.loadFilters;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Handles filters for our main content gutter views.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/formContentGutterFilters',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * Init our gutter view filter array.\n\t\t\t */\n\t\t\tthis.leftFilters = [];\n\t\t\tthis.rightFilters = [];\n\t\t\t/*\n\t\t * Listen for requests to add gutter filters.\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContentGutters' ).reply( 'add:leftFilter', this.addLeftFilter, this );\n\t\t\tnfRadio.channel( 'formContentGutters' ).reply( 'add:rightFilter', this.addRightFilter, this );\n\n\t\t\t/*\n\t\t\t * Listen for requests to get our content gutter filters.\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContentGutters' ).reply( 'get:leftFilters', this.getLeftFilters, this );\n\t\t\tnfRadio.channel( 'formContentGutters' ).reply( 'get:rightFilters', this.getRightFilters, this );\n\t\t},\n\n\t\taddLeftFilter: function( callback, priority ) {\n\t\t\tthis.leftFilters[ priority ] = callback;\n\t\t},\n\n\t\taddRightFilter: function( callback, priority ) {\n\t\t\tthis.rightFilters[ priority ] = callback;\n\t\t},\n\n\t\tgetLeftFilters: function() {\n\t\t\treturn this.leftFilters;\n\t\t},\n\n\t\tgetRightFilters: function() {\n\t\t\treturn this.rightFilters;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Returns a clone of a backbone collection with all the models' attributes looped through so that collections contained within are propely cloned.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/cloneCollectionDeep',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'app' ).reply( 'clone:collectionDeep', this.cloneCollectionDeep, this );\n\t\t},\n\n\t\tcloneCollectionDeep: function( collection ) {\n\t\t\tvar models = [];\n\t\t\t// Loop through every model in our collection, clone it, and add it to our model array\n\t\t\t_.each( collection.models, function( model ) {\n\t\t\t\tvar newModel = nfRadio.channel( 'app' ).request( 'clone:modelDeep', model );\n\t\t\t\tmodels.push( newModel );\n\t\t\t} );\n\t\t\t// Create a new instance of our collection\n\t\t\treturn new collection.constructor( models, collection.options );\n\t\t}\n\t});\n\n\treturn controller;\n} );\n","/**\n * Tracks which keys have been pressed.\n * Currently only used by fields to see if they should duplicate or delete on click.\n * (Shift + D + click = delete) (Shift + C + click = duplicate)\n * \n * @package Ninja Forms builder\n * @subpackage Fields - Edit Field Drawer\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/trackKeyDown',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tkeys: [],\n\n\t\tinitialize: function() {\n\t\t\tvar that = this;\n\t\t\t/*\n\t\t\t * Track keydowns and store the keys pressed.\n\t\t\t */\n\t\t\t\n\t\t\tjQuery( document ).on( 'keydown', function( e ) {\n\t\t\t\tthat.keyDown( e, that );\n\t\t\t} );\n\n\t\t\tjQuery( document ).on( 'keyup', function( e ) {\n\t\t\t\tthat.keyUp( e, that );\n\t\t\t} );\n\n\t\t\t/*\n\t\t\t * Get the keys currently being pressed, if any\n\t\t\t */\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:keydown', this.getKeyDown, this );\n\t\t},\n\n\t\tkeyDown: function( e, context ) {\n\t\t\t/*\n\t\t\t * Add our keycode to our keys array.\n\t\t\t */\n\t\t\tcontext.keys[ e.keyCode ] = e.keyCode;\n\t\t},\n\n\t\tkeyUp: function( e, context ) {\n\t\t\t/*\n\t\t\t * Remove our keycode from our keys array.\n\t\t\t */\n\t\t\tif ( -1 != context.keys.indexOf( e.keyCode ) ) {\n\t\t\t\tdelete context.keys[ e.keyCode ];\n\t\t\t}\n\t\t},\n\n\t\tgetKeyDown: function() {\n\t\t\treturn this.keys;\n\t\t}\n\t});\n\n\treturn controller;\n} );\n","/**\n * Initialize the perfectscroll jQuery plugin\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/perfectScroll',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tmovedPos: false,\n\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * When we init the main view, init our perfectscroll\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'main' ), 'show:main', this.initPerfectScroll );\n\n\t\t\t/*\n\t\t\t * When our drawer opens and closes, change the position of our scroll rail.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'opened', this.moveRail );\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'before:closeDrawer', this.resetRail );\n\t\t},\n\n\t\tinitPerfectScroll: function( view ) {\n\t\t\tif ( ! nfRadio.channel( 'app' ).request( 'is:mobile' ) ) {\n\t\t\t\tjQuery( view.el ).parent().perfectScrollbar( {\n\t\t\t\t\tsuppressScrollX: true\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tjQuery( 'head' ).append( '<style id=\"ps-scrollbar-css\" type=\"text/css\"></style>' );\n\t\t},\n\n\t\tmoveRail: function() {\n\t\t\tvar drawerEl = nfRadio.channel( 'app' ).request( 'get:drawerEl' );\n\t\t\tvar movedPos = jQuery( drawerEl ).outerWidth();\n\n\t\t\tjQuery( '#ps-scrollbar-css' ).text( '.ps-scrollbar-moved { right: ' + movedPos + 'px !important; } ' );\n\t\t\tjQuery( '#nf-main .ps-scrollbar-y-rail' ).addClass( 'ps-scrollbar-moved ' );\n\t\t\t\n\t\t},\n\n\t\tresetRail: function() {\n\t\t\tjQuery( '.ps-scrollbar-y-rail' ).removeClass( 'ps-scrollbar-moved ' );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Returns a new setting group collection.\n * Used to settings drawers for custom data models (i.e. not fields, actions, or advanced)\n * \n * @package Ninja Forms builder\n * @subpackage App - Edit Settings Drawer\n * @copyright (c) 2016 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/app/getNewSettingGroupCollection',[ 'models/app/settingGroupCollection' ], function( SettingGroupCollection ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Respond to requests for a new setting group collection\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:settingGroupCollectionDefinition', this.getNewSettingGroupCollection, this );\n\t\t},\n\n\t\t/**\n\t\t * Return a new instance of the setting group collection.\n\t\t *\n\t\t * @since 3.0\n\t\t * @return backbone.collection\n\t\t */\n\t\tgetNewSettingGroupCollection: function() {\n\t\t\treturn SettingGroupCollection;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","/**\n *\n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2017 WP Ninjas\n * @since 3.0.30\n */\ndefine( 'controllers/app/settingMedia',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n // When the media button is clicked, open the media manager.\n this.listenTo( nfRadio.channel( 'setting-type-media' ), 'click:extra', this.clickExtra );\n },\n\n clickExtra: function( e, settingModel, dataModel, settingView ) {\n var textEl = jQuery( e.target ).parent().find( '.setting' );\n\n if ( jQuery( e.target ).hasClass( 'open-media-manager' ) ) {\n // If the frame already exists, re-open it.\n if ( this.meta_image_frame ) {\n this.meta_image_frame.open();\n return;\n }\n\n // Sets up the media library frame\n this.meta_image_frame = wp.media.frames.meta_image_frame = wp.media({\n title: 'Select a file',\n button: { text: 'insert' }\n });\n\n var that = this;\n\n // Runs when an image is selected.\n this.meta_image_frame.on('select', function(){\n // Grabs the attachment selection and creates a JSON representation of the model.\n var media_attachment = that.meta_image_frame.state().get('selection').first().toJSON();\n textEl.val( media_attachment.url ).change();\n });\n\n // Opens the media library frame.\n this.meta_image_frame.open();\n }\n },\n });\n\n return controller;\n} );\n","/**\n * Handles changing our public link when we request a new one or when it's set improperly.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2019 WP Ninjas\n * @since UPDATE_VERSION_ON_MERGE\n */\ndefine( 'controllers/app/publicLink',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'app' ), 'after:appStart', this.validatePublicLink, this );\n nfRadio.channel( 'app' ).reply( 'generate:publicLinkKey', this.newPublicLinkKey, this );\n },\n \n newPublicLinkKey: function() {\n var formSettingsDataModel = nfRadio.channel( 'settings' ).request( 'get:settings' );\n var public_link_key = nfRadio.channel('app').request('get:formModel').get('id');\n for (var i = 0; i < 4; i++) {\n var char = Math.random().toString(36).slice(-1);\n public_link_key += char;\n };\n // Apply the public link key to form settings\n formSettingsDataModel.set('public_link_key', public_link_key);\n return public_link_key;\n },\n\n validatePublicLink: function() {\n var formID = nfRadio.channel('app').request('get:formModel').get('id');\n var formSettingsDataModel = nfRadio.channel( 'settings' ).request( 'get:settings' );\n if ( 'undefined' === typeof formSettingsDataModel.get('public_link_key') ) return false;\n if ( 0 === formSettingsDataModel.get( 'public_link_key' ).indexOf( formID ) ) return false;\n var public_link_key = this.newPublicLinkKey();\n var publicLink = nfAdmin.publicLinkStructure.replace('[FORM_ID]', public_link_key);\n formSettingsDataModel.set('public_link', publicLink);\n }\n\n\t});\n\n\treturn controller;\n} );\n","/**\n * Model that represents our field type section on the add new field drawer.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/fields/typeSectionModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tclasses: ''\n\t\t}\n\t} );\n\t\n\treturn model;\n} );\n","/**\n * Collection that holds our field models.\n * \n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'models/fields/typeSectionCollection',['models/fields/typeSectionModel'], function( typeSectionModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: typeSectionModel\n\t} );\n\treturn collection;\n} );\n","/**\n * Creates and stores a collection of field types. This includes all of the settings shown when editing a field.\n *\n * 1) Create our settings sections config\n * 2) Loops over our preloaded data and adds that to our field type collection\n *\n * Also responds to requests for data about field types\n *\n * @package Ninja Forms builder\n * @subpackage Fields\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/fields/types',[\n\t\t'models/app/typeCollection',\n\t\t'models/fields/typeSectionCollection'\n\t],\n\tfunction(\n\t\tTypeCollection,\n\t\tSectionCollection\n\t) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Config for our settings sections\n\t\t\tthis.sections = new SectionCollection( fieldTypeSections );\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'init:typeModel', this.registerSection );\n\n\t\t\t// Create our field type collection\n\t\t\tthis.collection = new TypeCollection( fieldTypeData, { type: 'fields' } );\n\n\t\t\t// Respond to requests to get field type, collection, settings, and sections\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:type', this.getFieldType, this );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:typeCollection', this.getTypeCollection, this );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:typeSections', this.getTypeSections, this );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:savedFields', this.getSavedFields, this );\n\n\t\t\t// Listen to clicks on field types\n\t\t\tthis.listenTo( nfRadio.channel( 'drawer' ), 'click:fieldType', this.addField );\n\t\t},\n\n\t\tregisterSection: function( typeModel ) {\n\t\t\tif ( 'fields' != typeModel.collection.type || ! typeModel.get( 'section' ) ) return;\n\n\t\t\tthis.sections.get( typeModel.get( 'section' ) ).get( 'fieldTypes' ).push( typeModel.get( 'id' ) );\n\t\t},\n\n\t\t/**\n\t\t * Return a field type by id\n\t\t *\n\t\t * @since 3.0\n\t\t * @param string \t\t\tid \tfield type\n\t\t * @return backbone.model \tfield type model\n\t\t */\n\t\tgetFieldType: function( id ) {\n \treturn this.collection.get( id );\n },\n\n /**\n * Return the entire field type collection\n *\n * @since 3.0\n * @param string \t\t\t\tid \t[description]\n * @return backbone.collection \tfield type collection\n */\n\t\tgetTypeCollection: function( id ) {\n \treturn this.collection;\n },\n\n /**\n * Add a field type to our fields sortable when the field type button is clicked.\n *\n * @since 3.0\n * @param Object e event\n * @return void\n */\n addField: function( e ) {\n\t\t\tvar type = jQuery( e.target ).data( 'id' );\n\n\t\t\tif( e.shiftKey ){\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:stagedField', type );\n\t\t\t\treturn;\n\t\t\t}\n\n \tvar fieldModel = nfRadio.channel( 'fields' ).request( 'add', {\n\t\t\t\ttype: type,\n\n\t\t\t\tlabel: nfRadio.channel( 'fields' ).request( 'get:type', type ).get( 'nicename' )\n\t\t\t});\n\n\t\t\tconsole.log( fieldModel );\n\n\t\t\tvar label = {\n\t\t\t\tobject: 'Field',\n\t\t\t\tlabel: fieldModel.get( 'label' ),\n\t\t\t\tchange: 'Added',\n\t\t\t\tdashicon: 'plus-alt'\n\t\t\t};\n\n\t\t\tvar data = {\n\t\t\t\tcollection: nfRadio.channel( 'fields' ).request( 'get:collection' )\n\t\t\t}\n\n\t\t\tnfRadio.channel( 'changes' ).request( 'register:change', 'addObject', fieldModel, null, label, data );\n\n\t\t\t// Re-Draw the Field Colle