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

Version Description

(25 January 2021) =

Bugs:

  • Forms should once again load properly in Internet Explorer 11.
  • Single checkbox fields should now properly display their values in the submission table.
  • Updated our dashboard styling to resolve an issue where some translations were resulting in action buttons being obscured.
  • Restored drag and drop functionality for adding fields in the form builder.

Security:

  • Patched a couple of vulnerabilities in our services oAuth controller reported responsibly by Chloe Chamberland at Wordfence.

=

Download this release

Release Info

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

Code changes from version 3.4.33 to 3.4.34

assets/css/dashboard.min.css CHANGED
@@ -1,2 +1,2 @@
1
- html{overflow:auto!important}::-webkit-scrollbar{display:none}a{color:#1ea9ea;text-decoration:none;border:0}a,a:focus{outline:none!important}a:focus{box-shadow:unset}#wpcontent,#wpwrap{background-color:#fff}#wpcontent{padding:0}#wpcontent .wrap{margin:0}#wpbody-content>div:not(.wrap){display:none}#ninja-forms-dashboard{box-sizing:border-box}#ninja-forms-dashboard .nf-widget{background-color:#fff;border:1px solid #ccc;border-radius:4px;margin-bottom:20px}#ninja-forms-dashboard header.topbar{background-color:#ebedee}#ninja-forms-dashboard header .app-title{width:100%;max-width:50rem;margin:auto;background-image:url(../img/nf-logo-dashboard.png);background-size:315px 48px;background-position:0 100%;background-repeat:no-repeat;height:52px;margin-bottom:40px}#ninja-forms-dashboard header .app-title strong{display:block;text-indent:-9999px}#ninja-forms-dashboard nav{width:100%;max-width:50rem;margin:auto;margin-bottom:40px}#ninja-forms-dashboard nav ul{display:-ms-flexbox;display:flex;margin:0}#ninja-forms-dashboard nav ul li a{color:#424242;cursor:pointer;font-size:16px;margin:0 16px 10px;margin-bottom:10px;padding:16px 0 8px}#ninja-forms-dashboard nav ul li a.active{border-bottom:2px solid #424242}#ninja-forms-dashboard main{width:100%;max-width:50rem;margin:auto}#ninja-forms-dashboard .form-row-actions{display:none}#ninja-forms-dashboard .form-row-actions li{font-size:12px}#ninja-forms-dashboard .nf-table-display td{white-space:nowrap}#ninja-forms-dashboard .nf-table-display td:first-child{width:100%;max-width:24rem;overflow:hidden}#ninja-forms-dashboard .nf-table-display td:nth-child(2),#ninja-forms-dashboard .nf-table-display td:nth-child(3){width:250px}#ninja-forms-dashboard tr.show-actions .title{display:block;margin-bottom:30px}#ninja-forms-dashboard tr.show-actions .form-row-actions{display:-ms-flexbox;display:flex;background:#ecedee;position:absolute;padding-top:6px;bottom:0;z-index:1;margin:0}#ninja-forms-dashboard tr.show-actions .form-row-actions li{padding:0 10px}#ninja-forms-dashboard .nf-search{border-bottom:1px solid #ecedee}#ninja-forms-dashboard .nf-search:before{top:16px}#ninja-forms-dashboard .nf-search input[type=search]{width:auto}#ninja-forms-dashboard .nf-item-controls .nf-item-control a{margin-left:20px;width:24px;cursor:pointer}@keyframes nf-connected{0%{box-shadow:0 0 2px hsla(0,0%,100%,0),inset 0 0 2px hsla(0,0%,100%,0)}50%{box-shadow:0 0 2px #84cc1e,inset 100vw 0 2px hsla(0,0%,100%,.2)}to{box-shadow:0 0 2px hsla(0,0%,100%,0),inset 100vw 0 2px hsla(0,0%,100%,0)}}.nf-notices--oauth{margin-top:-40px;padding-bottom:20px;text-align:center}.nf-oauth--checking{padding:5px}.nf-oauth--connect{display:block;background-color:#1ea9ea;color:#fff;padding:5px;text-decoration:none}.nf-oauth--connected{color:transparent;padding:0;line-height:.5;transition:all .4s;background-color:#84cc1e}.nf-oauth--connected:not(:hover){animation:nf-connected 8s ease infinite;animation-delay:2s}.nf-notices--oauth:hover .nf-oauth--connected{color:#fff;line-height:2;padding:5px}.widget{background-color:#fff;border:1px solid #ccc;border-radius:4px;padding:20px}.widget,.widget header{margin-bottom:20px}.widget-memberships{border:0;padding:0}.pricing-container{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap}.pricing-container .pricing-block{width:30%}.pricing-container .pricing-block.highlight{background-color:#f1f1f1}.pricing-container .pricing-header{text-align:center}.pricing-container .pricing-header>div{margin-bottom:10px}.pricing-container .pricing-header .pricing-title{font-size:24px;margin-bottom:16px}.pricing-container .pricing-header .pricing-price{font-size:24px;font-weight:700;padding:5px 0}.pricing-container .pricing-body>div{padding:10px 0;position:relative}.pricing-container .pricing-body span{display:block;margin-left:40px}.pricing-container .pricing-body ul{list-style:disc;margin-left:20px;padding-left:20px}.pricing-container .pricing-body hr{margin-top:10px;margin-bottom:10px;border:0;border-top:1px solid #424242}.pricing-container .pricing-body .fa{color:#aaa;font-size:24px;position:absolute;left:0}.pricing-container .pricing-body .pricing-body-title{font-weight:700;text-transform:uppercase}.widget-plan-notice{text-align:center}.widget-plan-notice .widget-title{font-size:32px;font-weight:700;margin:0 0 10px;text-align:center}.widget-plan-notice .nf-button{margin-bottom:20px}@keyframes nf-service-installing{to{transform:rotate(360deg)}}.dashicons-update-spin{animation:nf-service-installing 1s linear infinite}.services .nf-extend.full{-ms-flex-preferred-size:100%;flex-basis:100%}.services .nf-extend-buttons a{margin-top:20px}.services .nf-extend-buttons .nf-button{margin-top:auto;margin-bottom:10px}.jBox-Confirm-button{height:auto!important;font-size:17px!important;padding:10px 30px!important}.jBox-Confirm-button-submit{background:#1ea9ea!important;border:1px solid #fff!important;color:#fff!important}.jBox-Confirm-button-cancel{background:#fff!important;border:1px solid #1ea9ea!important;color:#1ea9ea!important}.promotion--wrapper{width:100%;max-width:50rem;margin:auto;margin-bottom:20px}.promotion--wrapper a:focus{box-shadow:unset}th{font-weight:700}.widget-forms .sortable{cursor:pointer;font-weight:700;margin-left:-5px}.widget-forms .sortable:hover:after{content:"\f0dc"}.widget-forms .sortable:after{font-family:FontAwesome;margin-left:5px;position:absolute}.widget-forms .sortable.sorted-asc:after{content:"\f0de"}.widget-forms .sortable.sorted-desc:after{content:"\f0dd"}.widget-forms header{display:-ms-flexbox;display:flex}.widget-forms header div{-ms-flex:1;flex:1}.widget-forms header div:first-of-type{-ms-flex:2;flex:2}.widget-forms .action{display:-ms-flexbox;display:flex}.widget-forms .form-row-actions a{cursor:pointer}.widget-forms .form-row-actions a.delete{color:#ff4136}.forms-collection>div{padding:10px}.forms-collection>div:nth-child(odd){background-color:#ebedee}.forms-collection .deleting{color:#ff4136;background-color:#ecedee}.forms-collection .deleting a{color:#ff4136}.forms-collection .deleting footer{display:none}.forms-collection main{display:-ms-flexbox;display:flex}.forms-collection main div{-ms-flex:1;flex:1}.forms-collection main div:first-of-type{-ms-flex:2;flex:2}.forms-collection footer ul{margin:0;padding-top:20px;display:-ms-flexbox;display:flex}.forms-collection footer ul li a.delete{color:red}.forms-collection footer ul li:after{content:" |";margin:auto 5px}.forms-collection footer ul li:last-child:after{content:""}.nf-template-grid .section-head{font-size:36px;font-weight:700;width:75%;display:block;border-bottom:1px solid #ccc;padding-bottom:15px;margin:60px 0px 25px 10px}.nf-template-grid .template-list{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap}.nf-template-grid .template-list>div{display:-ms-flexbox;display:flex;width:50%}.nf-template-grid .template-list .template{display:-ms-grid;display:grid;width:100%}.nf-template-grid .template-list .template a{color:#424242;display:block;margin:5px;padding:30px;border:1px solid #ccc;border-radius:4px;min-height:80px;cursor:pointer}.nf-template-grid .template-list .template a:hover{background:#1ea9ea;color:#fff}.nf-template-grid .template-list .template a .title{display:block;font-size:20px;margin-bottom:10px}.nf-template-grid .template-list .ad a{border-color:#ebedee}.nf-template-grid .template-list .default a{background:#ebedee;border-color:#ebedee}table .forms-table-row li{display:inline-block}.modal-template{padding:20px}.modal-template img{width:100%}.modal-template iframe{width:100%;height:214px}.modal-template p:first-of-type{font-size:16px;font-weight:700;line-height:20px;padding:16px 40px;text-align:center}.modal-template .actions{margin-top:30px}.modal-template .actions:after{display:block;clear:both;content:""}.modal-template .primary.nf-button{float:right}.jBox-Modal{background-color:#fff}.jBox-Modal .jBox-title{padding-top:10px;padding-bottom:10px;font-size:150%;font-weight:700;text-align:center;width:100%}.jBox-Modal .jBox-content{padding:10px;width:100%}.jBox-Modal .buttons:after{clear:none;content:"";display:block}.nf-loading-spinner{width:40px;height:40px;margin:15px auto;background-color:hsla(0,0%,82%,.5);border-radius:100%;animation:nf-scaleout 1.0s infinite ease-in-out}@keyframes nf-scaleout{0%{transform:scale(0)}to{transform:scale(1);opacity:0}}.apps-container{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-flow:row wrap;flex-flow:row wrap;padding:10px}.apps-container .nf-box{background:#fff;-ms-flex-preferred-size:48%;flex-basis:48%}.apps-container .nf-box-inside{border:1px solid #ccc;border-radius:4px;padding:10px}.apps-container .nf-extend{float:left;margin:0 0 20px;width:300px;position:relative}.apps-container .nf-extend img{margin-bottom:10px;max-width:100%;height:auto}.apps-container .nf-extend h2{white-space:nowrap;overflow:hidden}.apps-container .nf-extend-content p{min-height:100px}.apps-container .nf-extend-buttons:after{clear:both;content:"";display:block}.apps-container .nf-extend .nf-button{float:right}.apps-container .nf-extend .nf-doc-button{float:left}.promotion--wrapper>div a{position:relative;display:block;background:#f1f1f1;padding:16px 80px;text-align:center;border-radius:4px;font-size:16px;color:#ef4748!important;overflow:hidden;line-height:24px}.promotion--wrapper>div a>.cta{font-size:22px}.promotion--wrapper>div a .dashicons-before:before,.promotion--wrapper>div a>.dashicons{position:absolute;left:0;top:-20px;font-size:90px;transform:rotate(20deg)}.promotion--wrapper>div a.nf-remove-promo-styling{padding:0;height:83px}
2
  /*# sourceMappingURL=dashboard.min.css.map */
1
+ html{overflow:auto!important}::-webkit-scrollbar{display:none}a{color:#1ea9ea;text-decoration:none;border:0}a,a:focus{outline:none!important}a:focus{box-shadow:unset}#wpcontent,#wpwrap{background-color:#fff}#wpcontent{padding:0}#wpcontent .wrap{margin:0}#wpbody-content>div:not(.wrap){display:none}#ninja-forms-dashboard{box-sizing:border-box}#ninja-forms-dashboard .nf-widget{background-color:#fff;border:1px solid #ccc;border-radius:4px;margin-bottom:20px}#ninja-forms-dashboard header.topbar{background-color:#ebedee}#ninja-forms-dashboard header .app-title{width:100%;max-width:50rem;margin:auto;background-image:url(../img/nf-logo-dashboard.png);background-size:315px 48px;background-position:0 100%;background-repeat:no-repeat;height:52px;margin-bottom:40px}#ninja-forms-dashboard header .app-title strong{display:block;text-indent:-9999px}#ninja-forms-dashboard nav{width:100%;max-width:50rem;margin:auto;margin-bottom:40px}#ninja-forms-dashboard nav ul{display:-ms-flexbox;display:flex;margin:0}#ninja-forms-dashboard nav ul li a{color:#424242;cursor:pointer;font-size:16px;margin:0 16px 10px;margin-bottom:10px;padding:16px 0 8px}#ninja-forms-dashboard nav ul li a.active{border-bottom:2px solid #424242}#ninja-forms-dashboard main{width:100%;max-width:50rem;margin:auto}#ninja-forms-dashboard .form-row-actions{display:none}#ninja-forms-dashboard .form-row-actions li{font-size:12px}#ninja-forms-dashboard .nf-table-display td{white-space:nowrap}#ninja-forms-dashboard .nf-table-display td:first-child{width:100%}#ninja-forms-dashboard .nf-table-display td:nth-child(2),#ninja-forms-dashboard .nf-table-display td:nth-child(3){width:250px}#ninja-forms-dashboard .nf-table-display .title{display:block;max-width:24rem;overflow:hidden}#ninja-forms-dashboard tr.show-actions .title{display:block;margin-bottom:30px}#ninja-forms-dashboard tr.show-actions .form-row-actions{display:-ms-flexbox;display:flex;background:#ecedee;position:absolute;padding-top:6px;bottom:0;z-index:1;margin:0}#ninja-forms-dashboard tr.show-actions .form-row-actions li{padding:0 10px}#ninja-forms-dashboard .nf-search{border-bottom:1px solid #ecedee}#ninja-forms-dashboard .nf-search:before{top:16px}#ninja-forms-dashboard .nf-search input[type=search]{width:auto}#ninja-forms-dashboard .nf-item-controls .nf-item-control a{margin-left:20px;width:24px;cursor:pointer}@keyframes nf-connected{0%{box-shadow:0 0 2px hsla(0,0%,100%,0),inset 0 0 2px hsla(0,0%,100%,0)}50%{box-shadow:0 0 2px #84cc1e,inset 100vw 0 2px hsla(0,0%,100%,.2)}to{box-shadow:0 0 2px hsla(0,0%,100%,0),inset 100vw 0 2px hsla(0,0%,100%,0)}}.nf-notices--oauth{margin-top:-40px;padding-bottom:20px;text-align:center}.nf-oauth--checking{padding:5px}.nf-oauth--connect{display:block;background-color:#1ea9ea;color:#fff;padding:5px;text-decoration:none}.nf-oauth--connected{color:transparent;padding:0;line-height:.5;transition:all .4s;background-color:#84cc1e}.nf-oauth--connected:not(:hover){animation:nf-connected 8s ease infinite;animation-delay:2s}.nf-notices--oauth:hover .nf-oauth--connected{color:#fff;line-height:2;padding:5px}.widget{background-color:#fff;border:1px solid #ccc;border-radius:4px;padding:20px}.widget,.widget header{margin-bottom:20px}.widget-memberships{border:0;padding:0}.pricing-container{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap}.pricing-container .pricing-block{width:30%}.pricing-container .pricing-block.highlight{background-color:#f1f1f1}.pricing-container .pricing-header{text-align:center}.pricing-container .pricing-header>div{margin-bottom:10px}.pricing-container .pricing-header .pricing-title{font-size:24px;margin-bottom:16px}.pricing-container .pricing-header .pricing-price{font-size:24px;font-weight:700;padding:5px 0}.pricing-container .pricing-body>div{padding:10px 0;position:relative}.pricing-container .pricing-body span{display:block;margin-left:40px}.pricing-container .pricing-body ul{list-style:disc;margin-left:20px;padding-left:20px}.pricing-container .pricing-body hr{margin-top:10px;margin-bottom:10px;border:0;border-top:1px solid #424242}.pricing-container .pricing-body .fa{color:#aaa;font-size:24px;position:absolute;left:0}.pricing-container .pricing-body .pricing-body-title{font-weight:700;text-transform:uppercase}.widget-plan-notice{text-align:center}.widget-plan-notice .widget-title{font-size:32px;font-weight:700;margin:0 0 10px;text-align:center}.widget-plan-notice .nf-button{margin-bottom:20px}@keyframes nf-service-installing{to{transform:rotate(360deg)}}.dashicons-update-spin{animation:nf-service-installing 1s linear infinite}.services .nf-extend.full{-ms-flex-preferred-size:100%;flex-basis:100%}.services .nf-extend-buttons a{margin-top:20px}.services .nf-extend-buttons .nf-button{margin-top:auto;margin-bottom:10px}.jBox-Confirm-button{height:auto!important;font-size:17px!important;padding:10px 30px!important}.jBox-Confirm-button-submit{background:#1ea9ea!important;border:1px solid #fff!important;color:#fff!important}.jBox-Confirm-button-cancel{background:#fff!important;border:1px solid #1ea9ea!important;color:#1ea9ea!important}.promotion--wrapper{width:100%;max-width:50rem;margin:auto;margin-bottom:20px}.promotion--wrapper a:focus{box-shadow:unset}th{font-weight:700}.widget-forms .sortable{cursor:pointer;font-weight:700;margin-left:-5px}.widget-forms .sortable:hover:after{content:"\f0dc"}.widget-forms .sortable:after{font-family:FontAwesome;margin-left:5px;position:absolute}.widget-forms .sortable.sorted-asc:after{content:"\f0de"}.widget-forms .sortable.sorted-desc:after{content:"\f0dd"}.widget-forms header{display:-ms-flexbox;display:flex}.widget-forms header div{-ms-flex:1;flex:1}.widget-forms header div:first-of-type{-ms-flex:2;flex:2}.widget-forms .action{display:-ms-flexbox;display:flex}.widget-forms .form-row-actions a{cursor:pointer}.widget-forms .form-row-actions a.delete{color:#ff4136}.forms-collection>div{padding:10px}.forms-collection>div:nth-child(odd){background-color:#ebedee}.forms-collection .deleting{color:#ff4136;background-color:#ecedee}.forms-collection .deleting a{color:#ff4136}.forms-collection .deleting footer{display:none}.forms-collection main{display:-ms-flexbox;display:flex}.forms-collection main div{-ms-flex:1;flex:1}.forms-collection main div:first-of-type{-ms-flex:2;flex:2}.forms-collection footer ul{margin:0;padding-top:20px;display:-ms-flexbox;display:flex}.forms-collection footer ul li a.delete{color:red}.forms-collection footer ul li:after{content:" |";margin:auto 5px}.forms-collection footer ul li:last-child:after{content:""}.nf-template-grid .section-head{font-size:36px;font-weight:700;width:75%;display:block;border-bottom:1px solid #ccc;padding-bottom:15px;margin:60px 0px 25px 10px}.nf-template-grid .template-list{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap}.nf-template-grid .template-list>div{display:-ms-flexbox;display:flex;width:50%}.nf-template-grid .template-list .template{display:-ms-grid;display:grid;width:100%}.nf-template-grid .template-list .template a{color:#424242;display:block;margin:5px;padding:30px;border:1px solid #ccc;border-radius:4px;min-height:80px;cursor:pointer}.nf-template-grid .template-list .template a:hover{background:#1ea9ea;color:#fff}.nf-template-grid .template-list .template a .title{display:block;font-size:20px;margin-bottom:10px}.nf-template-grid .template-list .ad a{border-color:#ebedee}.nf-template-grid .template-list .default a{background:#ebedee;border-color:#ebedee}table .forms-table-row li{display:inline-block}.modal-template{padding:20px}.modal-template img{width:100%}.modal-template iframe{width:100%;height:214px}.modal-template p:first-of-type{font-size:16px;font-weight:700;line-height:20px;padding:16px 40px;text-align:center}.modal-template .actions{margin-top:30px}.modal-template .actions:after{display:block;clear:both;content:""}.modal-template .primary.nf-button{float:right}.jBox-Modal{background-color:#fff}.jBox-Modal .jBox-title{padding-top:10px;padding-bottom:10px;font-size:150%;font-weight:700;text-align:center;width:100%}.jBox-Modal .jBox-content{padding:10px;width:100%}.jBox-Modal .buttons:after{clear:none;content:"";display:block}.nf-loading-spinner{width:40px;height:40px;margin:15px auto;background-color:hsla(0,0%,82%,.5);border-radius:100%;animation:nf-scaleout 1.0s infinite ease-in-out}@keyframes nf-scaleout{0%{transform:scale(0)}to{transform:scale(1);opacity:0}}.apps-container{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-flow:row wrap;flex-flow:row wrap;padding:10px}.apps-container .nf-box{background:#fff;-ms-flex-preferred-size:48%;flex-basis:48%}.apps-container .nf-box-inside{border:1px solid #ccc;border-radius:4px;padding:10px}.apps-container .nf-extend{float:left;margin:0 0 20px;width:300px;position:relative}.apps-container .nf-extend img{margin-bottom:10px;max-width:100%;height:auto}.apps-container .nf-extend h2{white-space:nowrap;overflow:hidden}.apps-container .nf-extend-content p{min-height:100px}.apps-container .nf-extend-buttons:after{clear:both;content:"";display:block}.apps-container .nf-extend .nf-button{float:right}.apps-container .nf-extend .nf-doc-button{float:left}.promotion--wrapper>div a{position:relative;display:block;background:#f1f1f1;padding:16px 80px;text-align:center;border-radius:4px;font-size:16px;color:#ef4748!important;overflow:hidden;line-height:24px}.promotion--wrapper>div a>.cta{font-size:22px}.promotion--wrapper>div a .dashicons-before:before,.promotion--wrapper>div a>.dashicons{position:absolute;left:0;top:-20px;font-size:90px;transform:rotate(20deg)}.promotion--wrapper>div a.nf-remove-promo-styling{padding:0;height:83px}
2
  /*# sourceMappingURL=dashboard.min.css.map */
assets/css/dashboard.min.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["dashboard.scss","notices/oauth.scss","sections/widgets.scss","sections/services.scss","sections/promotions.scss","widgets/forms.scss"],"names":[],"mappings":"AAAA,KACE,uBAAwB,CACzB,AAED,oBACI,YAAa,CAChB,AAMD,EACE,cAAc,AACd,qBAAqB,AAErB,QAAS,CACV,AACD,UAHE,sBAAwB,CAG1B,AAGC,QADC,gBAAiB,CAClB,AAED,mBAEE,qBAAsB,CACvB,AAED,WACE,SAAU,CAKX,AAND,iBAII,QAAS,CACV,AAIH,+BACE,YAAa,CACd,AAQD,uBAEE,qBAAsB,CA0IvB,AA5ID,kCAKI,sBAAsB,AACtB,sBAAsB,AACtB,kBAAkB,AAClB,kBAAmB,CACpB,AATH,qCAcM,wBAAyB,CAC1B,AAfL,yCALE,WAAW,AACX,gBAAgB,AAChB,YAAY,AAsBR,mDAAqD,AACrD,2BAA2B,AAC3B,2BAAgC,AAChC,4BAA4B,AAC5B,YAAY,AACZ,kBAAmB,CAMpB,AA9BL,gDA2BQ,cAAc,AACd,mBAAoB,CACrB,AA7BP,2BALE,WAAW,AACX,gBAAgB,AAChB,YAAY,AAsCV,kBAAmB,CAsBpB,AAzDH,8BAsCM,oBAAA,AAAa,aAAA,AACb,QAAS,CAiBV,AAxDL,mCA4CU,cAAc,AACd,eAAe,AACf,eAAe,AACf,mBAAwB,AACxB,mBAAmB,AACnB,kBAAmB,CAKpB,AAtDT,0CAoDY,+BAAgC,CACjC,AArDX,4BALE,WAAW,AACX,gBAAgB,AAChB,WAAY,CAiEX,AA9DH,yCAkEI,YAAa,CAMd,AAxEH,4CAqEM,cAAe,CAChB,AAtEL,4CA4EM,kBAAkB,CACnB,AA7EL,wDAgFM,WAAW,AACX,gBAAgB,AAChB,eAAgB,CACjB,AAnFL,kHAuFM,WAAY,CACb,AAxFL,8CAmGM,cAAc,AACd,kBAAmB,CACpB,AArGL,yDAyGM,oBAAA,AAAa,aAAA,AACb,mBAAmB,AACnB,kBAAkB,AAClB,gBAAgB,AAChB,SAAS,AACT,UAAU,AACV,QAAS,CAMV,AArHL,4DAkHQ,cAAe,CAChB,AAnHP,kCA2HI,+BAAgC,CAUjC,AArIH,yCA8HM,QAAS,CACV,AA/HL,qDAkIM,UAAW,CACZ,AAnIL,4DAwII,iBAAiB,AACjB,WAAW,AACX,cAAe,CAChB,AC1LH,wBACG,GACG,oEAC0C,CAAA,AAE7C,IACG,+DAC+C,CAAA,AAElD,GACG,wEAC8C,CAAA,CAAA,AAIpD,mBACE,iBAAiB,AACjB,oBAAoB,AACpB,iBAAiB,CAClB,AAED,oBACE,WAAY,CACb,AAED,mBACE,cAAa,AACb,yBAAwB,AACxB,WAAW,AACX,YAAY,AACZ,oBAAoB,CACrB,AAED,qBACE,kBAAkB,AAClB,UAAU,AACV,eAAe,AACf,mBAAmB,AACnB,wBAAwB,CACzB,AACD,iCACE,wCAAwC,AACxC,kBAAmB,CACpB,AACD,8CACE,WAAW,AACX,cAAc,AACd,WAAY,CACb,AChDD,QACE,sBAAsB,AACtB,sBAAsB,AACtB,kBAAkB,AAElB,YAAa,CAMd,AAXD,uBAIE,kBAAmB,CAKlB,AAIH,oBACE,SAAS,AACT,SAAU,CACX,AACD,mBACE,oBAAA,AAAa,aAAA,AACb,sBAAA,AAA8B,8BAAA,AAC9B,mBAAA,AAAe,cAAA,CAwEhB,AA3ED,kCAMI,SAAU,CAMX,AAZH,4CASM,wBAAyB,CAC1B,AAVL,mCAgBI,iBAAkB,CAiBnB,AAjCH,uCAmBM,kBAAmB,CACpB,AApBL,kDAuBM,eAAe,AACf,kBAAmB,CACpB,AAzBL,kDA4BM,eAAe,AACf,gBAAiB,AACjB,aAAc,CACf,AA/BL,qCAsCM,eAAe,AACf,iBAAkB,CACnB,AAxCL,sCA2CM,cAAc,AACd,gBAAiB,CAClB,AA7CL,oCAgDM,gBAAgB,AAChB,iBAAiB,AACjB,iBAAkB,CACnB,AAnDL,oCAsDM,gBAAgB,AAChB,mBAAmB,AACnB,SAAS,AACT,4BAA6B,CAC9B,AA1DL,qCA8DM,WAAW,AACX,eAAe,AACf,kBAAkB,AAClB,MAAO,CACR,AAlEL,qDAqEM,gBAAiB,AACjB,wBAAyB,CAC1B,AAOL,oBAEE,iBAAkB,CAanB,AAfD,kCAKI,eAAe,AACf,gBAAiB,AACjB,gBAAkB,AAClB,iBAAkB,CACnB,AATH,+BAYI,kBAAmB,CACpB,AC5GH,iCACE,GACE,wBAAwB,CAAA,CAAA,AAI5B,uBACE,kDAAmD,CACpD,AAED,0BAEI,6BAAA,AAAgB,eAAA,CACjB,AAHH,+BAKI,eAAgB,CACjB,AANH,wCAQI,gBAAgB,AAChB,kBAAmB,CACpB,AAGH,qBACE,sBAAuB,AACvB,yBAA0B,AAC1B,2BAA6B,CAC9B,AACD,4BACE,6BAA8B,AAC9B,gCAAiC,AACjC,oBAAsB,CACvB,AACD,4BACE,0BAA2B,AAC3B,mCAAoC,AACpC,uBAAyB,CAC1B,ACrCD,oBACE,WAAW,AACX,gBAAgB,AAChB,YAAY,AACZ,kBAAmB,CACpB,AAED,4BACE,gBAAiB,CAClB,ACTD,GACE,eAAiB,CAClB,AAED,wBAEI,eAAe,AACf,gBAAiB,AACjB,gBAAiB,CAiBlB,AArBH,oCAOQ,eAAgB,CACjB,AARP,8BAWM,wBAA0B,AAC1B,gBAAgB,AAChB,iBAAkB,CACnB,AAdL,yCAgBM,eAAgB,CACjB,AAjBL,0CAmBM,eAAgB,CACjB,AApBL,qBAuBI,oBAAA,AAAa,YAAA,CAOd,AA9BH,yBAyBM,WAAA,AAAO,MAAA,CACR,AA1BL,uCA4BM,WAAA,AAAO,MAAA,CACR,AA7BL,sBAiCI,oBAAA,AAAa,YAAA,CACd,AAlCH,kCAqCI,cAAe,CAKhB,AA1CH,yCAwCM,aAAc,CACf,AAQL,sBAEI,YAAa,CACd,AAHH,qCAKI,wBAAyB,CAC1B,AANH,4BAQI,cAAc,AACd,wBAAyB,CAO1B,AAhBH,8BAWM,aAAc,CACf,AAZL,mCAcM,YAAa,CACd,AAfL,uBAkBI,oBAAA,AAAa,YAAA,CAOd,AAzBH,2BAoBM,WAAA,AAAO,MAAA,CACR,AArBL,yCAuBM,WAAA,AAAO,MAAA,CACR,AAxBL,4BA2BI,SAAS,AACT,iBAAiB,AACjB,oBAAA,AAAa,YAAA,CAad,AA1CH,wCAgCQ,SAAU,CACX,AAjCP,qCAmCQ,aAAa,AACb,eAAgB,CACjB,AArCP,gDAuCQ,UAAW,CACZ,AAKP,gCAEI,eAAe,AACf,gBAAiB,AACjB,UAAU,AACV,cAAc,AACd,6BAA6B,AAC7B,oBAAoB,AACpB,yBAA0B,CAC3B,AATH,iCAYI,oBAAA,AAAa,aAAA,AACb,sBAAA,AAA8B,8BAAA,AAC9B,mBAAA,AAAe,cAAA,CA6ChB,AA3DH,qCAiBM,oBAAA,AAAa,aAAA,AACb,SAAU,CACX,AAnBL,2CAsBM,iBAAA,AAAa,aAAA,AACb,UAAW,CAsBZ,AA7CL,6CAyBQ,cAAc,AACd,cAAc,AACd,WAAW,AACX,aAAa,AACb,sBAAsB,AACtB,kBAAkB,AAClB,gBAAgB,AAChB,cAAe,CAYhB,AA5CP,mDAmCU,mBAAmB,AACnB,UAAW,CACZ,AArCT,oDAwCU,cAAc,AACd,eAAe,AACf,kBACF,CAAC,AA3CT,uCAiDQ,oBAAqB,CACtB,AAlDP,4CAuDQ,mBAAmB,AACnB,oBAAqB,CACtB,AAKP,0BACI,oBAAqB,CACxB,AAED,gBACE,YAAa,CA0Bd,AA3BD,oBAGI,UAAW,CACZ,AAJH,uBAMI,WAAW,AACX,YAAa,CACd,AARH,gCAUI,eAAe,AACf,gBAAiB,AACjB,iBAAiB,AACjB,kBAAkB,AAClB,iBAAkB,CACnB,AAfH,yBAiBI,eAAgB,CAMjB,AAvBH,+BAmBM,cAAc,AACd,WAAW,AACX,UAAW,CACZ,AAtBL,mCAyBI,WAAY,CACb,ALyBH,YAEI,qBAAuB,CAsB1B,AAxBD,wBAKQ,iBAAiB,AACjB,oBAAoB,AACpB,eAAe,AACf,gBAAiB,AACjB,kBAAkB,AAClB,UAAW,CACd,AAXL,0BAaQ,aAAa,AACb,UAAW,CACd,AAfL,2BAmBS,WAAW,AACX,WAAW,AACX,aAAc,CACf,AAQR,oBACE,WAAW,AACX,YAAY,AACZ,iBAAiB,AACjB,mCAAsC,AAEtC,mBAAmB,AACnB,+CAAgD,CACjD,AAUD,uBACE,GACE,kBAAmB,CAAA,AACnB,GACE,mBAAqB,AACrB,SAAU,CAAA,CAAA,AAIhB,gBACE,oBAAA,AAAa,aAAA,AACb,sBAAA,AAA8B,8BAAA,AAC9B,uBAAA,AAAmB,mBAAA,AACnB,YAAa,CAsDd,AA1DD,wBAOM,gBAAgB,AAChB,4BAAA,AAAe,cAAA,CAClB,AATH,+BAYI,sBAAsB,AACtB,kBAAkB,AAClB,YAAa,CACd,AAfH,2BAkBM,WAAW,AACX,gBAAkB,AAClB,YAAY,AACZ,iBAAkB,CACrB,AAtBH,+BAwBM,mBAAmB,AACnB,eAAe,AACf,WAAY,CACf,AA3BH,8BA8BM,mBAAmB,AACnB,eAAgB,CACnB,AAhCH,qCAmCM,gBAAiB,CACpB,AApCH,yCA0CM,WAAkB,AAClB,WAAgB,AAChB,aAAmB,CAEpB,AA9CL,sCAmDM,WAAY,CACf,AApDH,0CAuDM,UAAW,CACd,AAQH,0BAGQ,kBAAkB,AAClB,cAAc,AACd,mBAAmB,AACnB,kBAAkB,AAClB,kBAAkB,AAClB,kBAAkB,AAClB,eAAe,AACf,wBAAyB,AACzB,gBAAgB,AAChB,gBAAiB,CAWpB,AAvBL,+BAcU,cAAe,CAClB,AAfP,wFAiBU,kBAAkB,AAClB,OAAO,AACP,UAAU,AACV,eAAe,AACf,uBAAwB,CAC3B,AAKP,kDAGM,UAAU,AACV,WAAY,CACb","file":"dashboard.min.css","sourcesContent":["html {\n overflow: auto!important; /* Override normalize.scss */\n}\n\n::-webkit-scrollbar {\n display: none;\n}\n\n.ninja-forms-app {\n\n}\n\na {\n color: #1EA9EA;\n text-decoration: none;\n outline: none !important;\n border: 0;\n}\na:focus {\n outline: none !important;\n box-shadow: unset; // Override WP focus state.\n}\n\n#wpwrap,\n#wpcontent {\n background-color: #fff;\n}\n\n#wpcontent {\n padding: 0;\n\n .wrap {\n margin: 0;\n }\n}\n\n/** Hide anything that isn't our page wrap, ie Admin Notices */\n#wpbody-content > div:not(.wrap) {\n display: none;\n}\n\n@mixin wrap {\n width: 100%;\n max-width: 50rem;\n margin: auto;\n}\n\n#ninja-forms-dashboard {\n\n box-sizing: border-box;\n\n .nf-widget {\n background-color: #fff;\n border: 1px solid #ccc;\n border-radius: 4px;\n margin-bottom: 20px;\n }\n\n header {\n\n &.topbar {\n background-color: #EBEDEE;\n }\n\n .app-title {\n @include wrap;\n background-image: url(\"../img/nf-logo-dashboard.png\");\n background-size: 315px 48px;\n background-position: left bottom;\n background-repeat: no-repeat;\n height: 52px;\n margin-bottom: 40px;\n //padding: 10px;\n strong {\n display: block;\n text-indent: -9999px;\n }\n }\n }\n\n nav {\n @include wrap;\n margin-bottom: 40px;\n\n ul {\n display: flex;\n margin: 0;\n\n li {\n\n a {\n color: #424242;\n cursor: pointer;\n font-size: 16px;\n margin: 0 16px 10px 16px;\n margin-bottom: 10px;\n padding: 16px 0 8px;\n\n &.active {\n border-bottom: 2px solid #424242;\n }\n }\n }\n }\n }\n\n\n main {\n @include wrap;\n }\n\n .form-row-actions {\n\n display: none;\n\n li {\n font-size: 12px;\n }\n\n }\n .nf-table-display {\n\n td {\n white-space:nowrap;\n }\n\n td:nth-child(1) {\n width: 100%;\n max-width: 24rem;\n overflow: hidden;\n }\n\n td:nth-child(2),\n td:nth-child(3) {\n width: 250px;\n }\n\n .title {\n //white-space: normal;\n }\n\n }\n\n tr.show-actions {\n\n .title {\n display: block;\n margin-bottom: 30px;\n }\n\n .form-row-actions {\n\n display: flex;\n background: #ECEDEE;\n position: absolute;\n padding-top: 6px;\n bottom: 0;\n z-index: 1;\n margin: 0;\n\n li {\n padding: 0 10px;\n }\n\n }\n\n }\n\n .nf-search {\n\n border-bottom: 1px solid #ECEDEE;\n\n &::before {\n top: 16px;\n }\n\n input[type=search] {\n width: auto;\n }\n\n }\n\n .nf-item-controls .nf-item-control a {\n margin-left: 20px;\n width: 24px;\n cursor: pointer;\n }\n}\n\n/*\nNotices\n---------------------------------------------*/\n\n@import 'notices/oauth';\n\n/*\nSections\n---------------------------------------------*/\n\n@import 'sections/widgets';\n@import 'sections/services';\n@import 'sections/apps';\n@import 'sections/memberships';\n@import 'sections/promotions';\n\n/*\nWidgets\n---------------------------------------------*/\n\n@import 'widgets/forms';\n\n/*\njBox\n---------------------------------------------*/\n\n.jBox-Modal {\n\n background-color: white;\n\n .jBox-title {\n padding-top: 10px;\n padding-bottom: 10px;\n font-size: 150%;\n font-weight: bold;\n text-align: center;\n width: 100%;\n }\n .jBox-content {\n padding: 10px;\n width: 100%;\n }\n\n .buttons {\n &::after {\n clear: none;\n content: \"\";\n display: block;\n }\n }\n}\n\n/*\nLoading Spinner\n---------------------------------------------*/\n\n.nf-loading-spinner {\n width: 40px;\n height: 40px;\n margin: 15px auto;\n background-color: rgba(208,208,208,.5);\n\n border-radius: 100%;\n animation: nf-scaleout 1.0s infinite ease-in-out;\n}\n\n@-webkit-keyframes nf-scaleout {\n 0% { transform: scale(0) }\n 100% {\n transform: scale(1.0);\n opacity: 0;\n }\n}\n\n@keyframes nf-scaleout {\n 0% {\n transform: scale(0);\n } 100% {\n transform: scale(1.0);\n opacity: 0;\n }\n}\n\n.apps-container {\n display: flex;\n justify-content: space-between;\n flex-flow: row wrap;\n padding: 10px;\n\n .nf-box {\n background: #fff;\n flex-basis: 48%;\n }\n\n .nf-box-inside {\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 10px;\n }\n\n .nf-extend {\n float: left;\n margin: 0 0 20px 0;\n width: 300px;\n position: relative;\n }\n .nf-extend img {\n margin-bottom: 10px;\n max-width: 100%;\n height: auto;\n }\n\n .nf-extend h2 {\n white-space: nowrap;\n overflow: hidden;\n }\n\n .nf-extend-content p {\n min-height: 100px;\n }\n\n .nf-extend-buttons {\n\n &::after {\n\n clear: both;\n content: \"\";\n display: block;\n\n }\n\n }\n\n .nf-extend .nf-button {\n float: right;\n }\n\n .nf-extend .nf-doc-button {\n float: left;\n }\n\n}\n\n/*\nPromotions\n---------------------------------------------*/\n\n.promotion--wrapper {\n > div {\n a {\n position: relative;\n display: block;\n background: #f1f1f1;\n padding: 16px 80px;\n text-align: center;\n border-radius: 4px;\n font-size: 16px;\n color: #ef4748 !important;\n overflow: hidden;\n line-height: 24px;\n > .cta {\n font-size: 22px;\n }\n > .dashicons, .dashicons-before::before {\n position: absolute;\n left: 0;\n top: -20px;\n font-size: 90px;\n transform: rotate(20deg);\n }\n }\n }\n}\n\n.promotion--wrapper {\n > div {\n a.nf-remove-promo-styling { \n padding: 0;\n height: 83px;\n }\n }\n}","@keyframes nf-connected {\n 0% {\n box-shadow: 0 0 2px rgba(255, 255, 255, 0),\n inset 0 0 2px rgba(255, 255, 255, 0);\n }\n 50% {\n box-shadow: 0 0 2px #84cc1e,\n inset 100vw 0 2px rgba(255, 255, 255, .2);\n }\n 100% {\n box-shadow: 0 0 2px rgba(255, 255, 255, 0),\n inset 100vw 0 2px rgba(255, 255, 255, 0);\n }\n}\n\n.nf-notices--oauth {\n margin-top: -40px; // Account for the bottom margin on the topbar.\n padding-bottom: 20px; // Increase hover target, while maintaining whitespace.\n text-align:center;\n}\n\n.nf-oauth--checking {\n padding: 5px;\n}\n\n.nf-oauth--connect {\n display:block;\n background-color:#1EA9EA;\n color:white;\n padding: 5px;\n text-decoration:none;\n}\n\n.nf-oauth--connected {\n color: transparent;\n padding: 0;\n line-height: .5;\n transition: all .4s;\n background-color:#84CC1E;\n}\n.nf-oauth--connected:not(:hover) {\n animation: nf-connected 8s ease infinite;\n animation-delay: 2s;\n}\n.nf-notices--oauth:hover .nf-oauth--connected {\n color:white;\n line-height: 2;\n padding: 5px;\n}\n",".widget {\n background-color: #fff;\n border: 1px solid #ccc;\n border-radius: 4px;\n margin-bottom: 20px;\n padding: 20px;\n\n header {\n margin-bottom: 20px;\n }\n\n}\n\n.widget-memberships {\n border: 0;\n padding: 0;\n}\n.pricing-container {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n\n .pricing-block {\n width: 30%;\n\n &.highlight {\n background-color: #f1f1f1;\n }\n\n }\n\n .pricing-header {\n\n text-align: center;\n\n & > div {\n margin-bottom: 10px;\n }\n\n .pricing-title {\n font-size: 24px;\n margin-bottom: 16px;\n }\n\n .pricing-price {\n font-size: 24px;\n font-weight: bold;\n padding: 5px 0;\n }\n\n }\n\n .pricing-body {\n\n & > div {\n padding: 10px 0;\n position: relative;\n }\n\n span {\n display: block;\n margin-left: 40px;\n }\n\n ul {\n list-style: disc;\n margin-left: 20px;\n padding-left: 20px;\n }\n\n hr {\n margin-top: 10px;\n margin-bottom: 10px;\n border: 0;\n border-top: 1px solid #424242;\n }\n\n .fa {\n //color: #86CA32;\n color: #aaa;\n font-size: 24px;\n position: absolute;\n left: 0;\n }\n\n .pricing-body-title {\n font-weight: bold;\n text-transform: uppercase;\n }\n\n }\n\n}\n \n\n.widget-plan-notice {\n\n text-align: center;\n\n .widget-title {\n font-size: 32px;\n font-weight: bold;\n margin: 0 0 10px 0;\n text-align: center;\n }\n\n .nf-button {\n margin-bottom: 20px;\n }\n\n}\n","@keyframes nf-service-installing {\n 100% {\n transform:rotate(360deg);\n }\n}\n\n.dashicons-update-spin {\n animation: nf-service-installing 1s linear infinite;\n}\n\n.services {\n .nf-extend.full {\n flex-basis: 100%;\n }\n .nf-extend-buttons a {\n margin-top: 20px;\n }\n .nf-extend-buttons .nf-button {\n margin-top: auto; // Reset from anchor.\n margin-bottom: 10px; // Account for toggle.\n }\n}\n\n.jBox-Confirm-button {\n height: auto !important;\n font-size: 17px !important;\n padding: 10px 30px !important;\n}\n.jBox-Confirm-button-submit {\n background: #1ea9ea !important;\n border: 1px solid #fff !important;\n color: #fff !important;\n}\n.jBox-Confirm-button-cancel {\n background: #fff !important;\n border: 1px solid #1ea9ea !important;\n color: #1ea9ea !important;\n}\n",".promotion--wrapper {\n width: 100%;\n max-width: 50rem;\n margin: auto;\n margin-bottom: 20px; // Maintain whitespace.\n}\n\n.promotion--wrapper a:focus {\n box-shadow: unset; // Override WP focus state.\n}\n","th {\n font-weight: bold;\n}\n\n.widget-forms {\n .sortable {\n cursor: pointer;\n font-weight: bold;\n margin-left: -5px;\n &:hover {\n &:after {\n content: '\\f0dc';\n }\n }\n &:after {\n font-family: 'FontAwesome';\n margin-left: 5px;\n position: absolute;\n }\n &.sorted-asc:after {\n content: \"\\f0de\";\n }\n &.sorted-desc:after {\n content: \"\\f0dd\";\n }\n }\n header {\n display: flex;\n div {\n flex: 1;\n }\n div:first-of-type {\n flex: 2;\n }\n }\n\n .action {\n display: flex;\n }\n\n .form-row-actions a {\n cursor: pointer;\n\n &.delete {\n color: #FF4136;\n }\n }\n\n > div > main.content {\n /*max-height: 400px;*/\n }\n}\n\n.forms-collection {\n & > div {\n padding: 10px;\n }\n & > div:nth-child(odd){\n background-color: #EBEDEE;\n }\n .deleting {\n color: #FF4136;\n background-color: #ECEDEE;\n a {\n color: #FF4136;\n }\n footer {\n display: none;\n }\n }\n main {\n display: flex;\n div {\n flex: 1;\n }\n div:first-of-type {\n flex: 2;\n }\n }\n footer ul {\n margin: 0;\n padding-top: 20px;\n display: flex;\n li {\n a.delete {\n color: red;\n }\n &:after {\n content: ' |';\n margin: auto 5px;\n }\n &:last-child:after {\n content: '';\n }\n }\n }\n}\n\n.nf-template-grid {\n .section-head {\n font-size: 36px;\n font-weight: bold;\n width: 75%;\n display: block;\n border-bottom: 1px solid #ccc;\n padding-bottom: 15px;\n margin: 60px 0px 25px 10px;\n }\n\n .template-list {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n\n & > div {\n display: flex;\n width: 50%;\n }\n\n .template {\n display: grid;\n width: 100%;\n a {\n color: #424242;\n display: block;\n margin: 5px;\n padding: 30px;\n border: 1px solid #ccc;\n border-radius: 4px;\n min-height: 80px;\n cursor: pointer;\n\n &:hover {\n background: #1EA9EA;\n color: #fff;\n }\n\n .title {\n display: block;\n font-size: 20px;\n margin-bottom: 10px\n }\n }\n }\n\n .ad {\n a {\n border-color: #EBEDEE;\n }\n }\n\n .default {\n a {\n background: #EBEDEE;\n border-color: #EBEDEE;\n }\n }\n }\n}\n\ntable .forms-table-row li {\n display: inline-block;\n}\n\n.modal-template {\n padding: 20px;\n img {\n width: 100%;\n }\n iframe {\n width: 100%;\n height: 214px;\n }\n p:first-of-type {\n font-size: 16px;\n font-weight: bold;\n line-height: 20px;\n padding: 16px 40px;\n text-align: center;\n }\n .actions {\n margin-top: 30px;\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n }\n .primary.nf-button {\n float: right;\n }\n}\n"]}
1
+ {"version":3,"sources":["dashboard.scss","notices/oauth.scss","sections/widgets.scss","sections/services.scss","sections/promotions.scss","widgets/forms.scss"],"names":[],"mappings":"AAAA,KACE,uBAAwB,CACzB,AAED,oBACI,YAAa,CAChB,AAMD,EACE,cAAc,AACd,qBAAqB,AAErB,QAAS,CACV,AACD,UAHE,sBAAwB,CAG1B,AAGC,QADC,gBAAiB,CAClB,AAED,mBAEE,qBAAsB,CACvB,AAED,WACE,SAAU,CAKX,AAND,iBAII,QAAS,CACV,AAIH,+BACE,YAAa,CACd,AAQD,uBAEE,qBAAsB,CA0IvB,AA5ID,kCAKI,sBAAsB,AACtB,sBAAsB,AACtB,kBAAkB,AAClB,kBAAmB,CACpB,AATH,qCAcM,wBAAyB,CAC1B,AAfL,yCALE,WAAW,AACX,gBAAgB,AAChB,YAAY,AAsBR,mDAAqD,AACrD,2BAA2B,AAC3B,2BAAgC,AAChC,4BAA4B,AAC5B,YAAY,AACZ,kBAAmB,CAMpB,AA9BL,gDA2BQ,cAAc,AACd,mBAAoB,CACrB,AA7BP,2BALE,WAAW,AACX,gBAAgB,AAChB,YAAY,AAsCV,kBAAmB,CAsBpB,AAzDH,8BAsCM,oBAAA,AAAa,aAAA,AACb,QAAS,CAiBV,AAxDL,mCA4CU,cAAc,AACd,eAAe,AACf,eAAe,AACf,mBAAwB,AACxB,mBAAmB,AACnB,kBAAmB,CAKpB,AAtDT,0CAoDY,+BAAgC,CACjC,AArDX,4BALE,WAAW,AACX,gBAAgB,AAChB,WAAY,CAiEX,AA9DH,yCAkEI,YAAa,CAMd,AAxEH,4CAqEM,cAAe,CAChB,AAtEL,4CA4EM,kBAAkB,CACnB,AA7EL,wDAgFM,UAAW,CACZ,AAjFL,kHAqFM,WAAY,CACb,AAtFL,gDAyFM,cAAc,AACd,gBAAgB,AAChB,eAAgB,CACjB,AA5FL,8CAmGM,cAAc,AACd,kBAAmB,CACpB,AArGL,yDAyGM,oBAAA,AAAa,aAAA,AACb,mBAAmB,AACnB,kBAAkB,AAClB,gBAAgB,AAChB,SAAS,AACT,UAAU,AACV,QAAS,CAMV,AArHL,4DAkHQ,cAAe,CAChB,AAnHP,kCA2HI,+BAAgC,CAUjC,AArIH,yCA8HM,QAAS,CACV,AA/HL,qDAkIM,UAAW,CACZ,AAnIL,4DAwII,iBAAiB,AACjB,WAAW,AACX,cAAe,CAChB,AC1LH,wBACG,GACG,oEAC0C,CAAA,AAE7C,IACG,+DAC+C,CAAA,AAElD,GACG,wEAC8C,CAAA,CAAA,AAIpD,mBACE,iBAAiB,AACjB,oBAAoB,AACpB,iBAAiB,CAClB,AAED,oBACE,WAAY,CACb,AAED,mBACE,cAAa,AACb,yBAAwB,AACxB,WAAW,AACX,YAAY,AACZ,oBAAoB,CACrB,AAED,qBACE,kBAAkB,AAClB,UAAU,AACV,eAAe,AACf,mBAAmB,AACnB,wBAAwB,CACzB,AACD,iCACE,wCAAwC,AACxC,kBAAmB,CACpB,AACD,8CACE,WAAW,AACX,cAAc,AACd,WAAY,CACb,AChDD,QACE,sBAAsB,AACtB,sBAAsB,AACtB,kBAAkB,AAElB,YAAa,CAMd,AAXD,uBAIE,kBAAmB,CAKlB,AAIH,oBACE,SAAS,AACT,SAAU,CACX,AACD,mBACE,oBAAA,AAAa,aAAA,AACb,sBAAA,AAA8B,8BAAA,AAC9B,mBAAA,AAAe,cAAA,CAwEhB,AA3ED,kCAMI,SAAU,CAMX,AAZH,4CASM,wBAAyB,CAC1B,AAVL,mCAgBI,iBAAkB,CAiBnB,AAjCH,uCAmBM,kBAAmB,CACpB,AApBL,kDAuBM,eAAe,AACf,kBAAmB,CACpB,AAzBL,kDA4BM,eAAe,AACf,gBAAiB,AACjB,aAAc,CACf,AA/BL,qCAsCM,eAAe,AACf,iBAAkB,CACnB,AAxCL,sCA2CM,cAAc,AACd,gBAAiB,CAClB,AA7CL,oCAgDM,gBAAgB,AAChB,iBAAiB,AACjB,iBAAkB,CACnB,AAnDL,oCAsDM,gBAAgB,AAChB,mBAAmB,AACnB,SAAS,AACT,4BAA6B,CAC9B,AA1DL,qCA8DM,WAAW,AACX,eAAe,AACf,kBAAkB,AAClB,MAAO,CACR,AAlEL,qDAqEM,gBAAiB,AACjB,wBAAyB,CAC1B,AAOL,oBAEE,iBAAkB,CAanB,AAfD,kCAKI,eAAe,AACf,gBAAiB,AACjB,gBAAkB,AAClB,iBAAkB,CACnB,AATH,+BAYI,kBAAmB,CACpB,AC5GH,iCACE,GACE,wBAAwB,CAAA,CAAA,AAI5B,uBACE,kDAAmD,CACpD,AAED,0BAEI,6BAAA,AAAgB,eAAA,CACjB,AAHH,+BAKI,eAAgB,CACjB,AANH,wCAQI,gBAAgB,AAChB,kBAAmB,CACpB,AAGH,qBACE,sBAAuB,AACvB,yBAA0B,AAC1B,2BAA6B,CAC9B,AACD,4BACE,6BAA8B,AAC9B,gCAAiC,AACjC,oBAAsB,CACvB,AACD,4BACE,0BAA2B,AAC3B,mCAAoC,AACpC,uBAAyB,CAC1B,ACrCD,oBACE,WAAW,AACX,gBAAgB,AAChB,YAAY,AACZ,kBAAmB,CACpB,AAED,4BACE,gBAAiB,CAClB,ACTD,GACE,eAAiB,CAClB,AAED,wBAEI,eAAe,AACf,gBAAiB,AACjB,gBAAiB,CAiBlB,AArBH,oCAOQ,eAAgB,CACjB,AARP,8BAWM,wBAA0B,AAC1B,gBAAgB,AAChB,iBAAkB,CACnB,AAdL,yCAgBM,eAAgB,CACjB,AAjBL,0CAmBM,eAAgB,CACjB,AApBL,qBAuBI,oBAAA,AAAa,YAAA,CAOd,AA9BH,yBAyBM,WAAA,AAAO,MAAA,CACR,AA1BL,uCA4BM,WAAA,AAAO,MAAA,CACR,AA7BL,sBAiCI,oBAAA,AAAa,YAAA,CACd,AAlCH,kCAqCI,cAAe,CAKhB,AA1CH,yCAwCM,aAAc,CACf,AAQL,sBAEI,YAAa,CACd,AAHH,qCAKI,wBAAyB,CAC1B,AANH,4BAQI,cAAc,AACd,wBAAyB,CAO1B,AAhBH,8BAWM,aAAc,CACf,AAZL,mCAcM,YAAa,CACd,AAfL,uBAkBI,oBAAA,AAAa,YAAA,CAOd,AAzBH,2BAoBM,WAAA,AAAO,MAAA,CACR,AArBL,yCAuBM,WAAA,AAAO,MAAA,CACR,AAxBL,4BA2BI,SAAS,AACT,iBAAiB,AACjB,oBAAA,AAAa,YAAA,CAad,AA1CH,wCAgCQ,SAAU,CACX,AAjCP,qCAmCQ,aAAa,AACb,eAAgB,CACjB,AArCP,gDAuCQ,UAAW,CACZ,AAKP,gCAEI,eAAe,AACf,gBAAiB,AACjB,UAAU,AACV,cAAc,AACd,6BAA6B,AAC7B,oBAAoB,AACpB,yBAA0B,CAC3B,AATH,iCAYI,oBAAA,AAAa,aAAA,AACb,sBAAA,AAA8B,8BAAA,AAC9B,mBAAA,AAAe,cAAA,CA6ChB,AA3DH,qCAiBM,oBAAA,AAAa,aAAA,AACb,SAAU,CACX,AAnBL,2CAsBM,iBAAA,AAAa,aAAA,AACb,UAAW,CAsBZ,AA7CL,6CAyBQ,cAAc,AACd,cAAc,AACd,WAAW,AACX,aAAa,AACb,sBAAsB,AACtB,kBAAkB,AAClB,gBAAgB,AAChB,cAAe,CAYhB,AA5CP,mDAmCU,mBAAmB,AACnB,UAAW,CACZ,AArCT,oDAwCU,cAAc,AACd,eAAe,AACf,kBACF,CAAC,AA3CT,uCAiDQ,oBAAqB,CACtB,AAlDP,4CAuDQ,mBAAmB,AACnB,oBAAqB,CACtB,AAKP,0BACI,oBAAqB,CACxB,AAED,gBACE,YAAa,CA0Bd,AA3BD,oBAGI,UAAW,CACZ,AAJH,uBAMI,WAAW,AACX,YAAa,CACd,AARH,gCAUI,eAAe,AACf,gBAAiB,AACjB,iBAAiB,AACjB,kBAAkB,AAClB,iBAAkB,CACnB,AAfH,yBAiBI,eAAgB,CAMjB,AAvBH,+BAmBM,cAAc,AACd,WAAW,AACX,UAAW,CACZ,AAtBL,mCAyBI,WAAY,CACb,ALyBH,YAEI,qBAAuB,CAsB1B,AAxBD,wBAKQ,iBAAiB,AACjB,oBAAoB,AACpB,eAAe,AACf,gBAAiB,AACjB,kBAAkB,AAClB,UAAW,CACd,AAXL,0BAaQ,aAAa,AACb,UAAW,CACd,AAfL,2BAmBS,WAAW,AACX,WAAW,AACX,aAAc,CACf,AAQR,oBACE,WAAW,AACX,YAAY,AACZ,iBAAiB,AACjB,mCAAsC,AAEtC,mBAAmB,AACnB,+CAAgD,CACjD,AAUD,uBACE,GACE,kBAAmB,CAAA,AACnB,GACE,mBAAqB,AACrB,SAAU,CAAA,CAAA,AAIhB,gBACE,oBAAA,AAAa,aAAA,AACb,sBAAA,AAA8B,8BAAA,AAC9B,uBAAA,AAAmB,mBAAA,AACnB,YAAa,CAsDd,AA1DD,wBAOM,gBAAgB,AAChB,4BAAA,AAAe,cAAA,CAClB,AATH,+BAYI,sBAAsB,AACtB,kBAAkB,AAClB,YAAa,CACd,AAfH,2BAkBM,WAAW,AACX,gBAAkB,AAClB,YAAY,AACZ,iBAAkB,CACrB,AAtBH,+BAwBM,mBAAmB,AACnB,eAAe,AACf,WAAY,CACf,AA3BH,8BA8BM,mBAAmB,AACnB,eAAgB,CACnB,AAhCH,qCAmCM,gBAAiB,CACpB,AApCH,yCA0CM,WAAkB,AAClB,WAAgB,AAChB,aAAmB,CAEpB,AA9CL,sCAmDM,WAAY,CACf,AApDH,0CAuDM,UAAW,CACd,AAQH,0BAGQ,kBAAkB,AAClB,cAAc,AACd,mBAAmB,AACnB,kBAAkB,AAClB,kBAAkB,AAClB,kBAAkB,AAClB,eAAe,AACf,wBAAyB,AACzB,gBAAgB,AAChB,gBAAiB,CAWpB,AAvBL,+BAcU,cAAe,CAClB,AAfP,wFAiBU,kBAAkB,AAClB,OAAO,AACP,UAAU,AACV,eAAe,AACf,uBAAwB,CAC3B,AAKP,kDAGM,UAAU,AACV,WAAY,CACb","file":"dashboard.min.css","sourcesContent":["html {\n overflow: auto!important; /* Override normalize.scss */\n}\n\n::-webkit-scrollbar {\n display: none;\n}\n\n.ninja-forms-app {\n\n}\n\na {\n color: #1EA9EA;\n text-decoration: none;\n outline: none !important;\n border: 0;\n}\na:focus {\n outline: none !important;\n box-shadow: unset; // Override WP focus state.\n}\n\n#wpwrap,\n#wpcontent {\n background-color: #fff;\n}\n\n#wpcontent {\n padding: 0;\n\n .wrap {\n margin: 0;\n }\n}\n\n/** Hide anything that isn't our page wrap, ie Admin Notices */\n#wpbody-content > div:not(.wrap) {\n display: none;\n}\n\n@mixin wrap {\n width: 100%;\n max-width: 50rem;\n margin: auto;\n}\n\n#ninja-forms-dashboard {\n\n box-sizing: border-box;\n\n .nf-widget {\n background-color: #fff;\n border: 1px solid #ccc;\n border-radius: 4px;\n margin-bottom: 20px;\n }\n\n header {\n\n &.topbar {\n background-color: #EBEDEE;\n }\n\n .app-title {\n @include wrap;\n background-image: url(\"../img/nf-logo-dashboard.png\");\n background-size: 315px 48px;\n background-position: left bottom;\n background-repeat: no-repeat;\n height: 52px;\n margin-bottom: 40px;\n //padding: 10px;\n strong {\n display: block;\n text-indent: -9999px;\n }\n }\n }\n\n nav {\n @include wrap;\n margin-bottom: 40px;\n\n ul {\n display: flex;\n margin: 0;\n\n li {\n\n a {\n color: #424242;\n cursor: pointer;\n font-size: 16px;\n margin: 0 16px 10px 16px;\n margin-bottom: 10px;\n padding: 16px 0 8px;\n\n &.active {\n border-bottom: 2px solid #424242;\n }\n }\n }\n }\n }\n\n\n main {\n @include wrap;\n }\n\n .form-row-actions {\n\n display: none;\n\n li {\n font-size: 12px;\n }\n\n }\n .nf-table-display {\n\n td {\n white-space:nowrap;\n }\n\n td:nth-child(1) {\n width: 100%;\n }\n\n td:nth-child(2),\n td:nth-child(3) {\n width: 250px;\n }\n\n .title {\n display: block;\n max-width: 24rem;\n overflow: hidden;\n }\n\n }\n\n tr.show-actions {\n\n .title {\n display: block;\n margin-bottom: 30px;\n }\n\n .form-row-actions {\n\n display: flex;\n background: #ECEDEE;\n position: absolute;\n padding-top: 6px;\n bottom: 0;\n z-index: 1;\n margin: 0;\n\n li {\n padding: 0 10px;\n }\n\n }\n\n }\n\n .nf-search {\n\n border-bottom: 1px solid #ECEDEE;\n\n &::before {\n top: 16px;\n }\n\n input[type=search] {\n width: auto;\n }\n\n }\n\n .nf-item-controls .nf-item-control a {\n margin-left: 20px;\n width: 24px;\n cursor: pointer;\n }\n}\n\n/*\nNotices\n---------------------------------------------*/\n\n@import 'notices/oauth';\n\n/*\nSections\n---------------------------------------------*/\n\n@import 'sections/widgets';\n@import 'sections/services';\n@import 'sections/apps';\n@import 'sections/memberships';\n@import 'sections/promotions';\n\n/*\nWidgets\n---------------------------------------------*/\n\n@import 'widgets/forms';\n\n/*\njBox\n---------------------------------------------*/\n\n.jBox-Modal {\n\n background-color: white;\n\n .jBox-title {\n padding-top: 10px;\n padding-bottom: 10px;\n font-size: 150%;\n font-weight: bold;\n text-align: center;\n width: 100%;\n }\n .jBox-content {\n padding: 10px;\n width: 100%;\n }\n\n .buttons {\n &::after {\n clear: none;\n content: \"\";\n display: block;\n }\n }\n}\n\n/*\nLoading Spinner\n---------------------------------------------*/\n\n.nf-loading-spinner {\n width: 40px;\n height: 40px;\n margin: 15px auto;\n background-color: rgba(208,208,208,.5);\n\n border-radius: 100%;\n animation: nf-scaleout 1.0s infinite ease-in-out;\n}\n\n@-webkit-keyframes nf-scaleout {\n 0% { transform: scale(0) }\n 100% {\n transform: scale(1.0);\n opacity: 0;\n }\n}\n\n@keyframes nf-scaleout {\n 0% {\n transform: scale(0);\n } 100% {\n transform: scale(1.0);\n opacity: 0;\n }\n}\n\n.apps-container {\n display: flex;\n justify-content: space-between;\n flex-flow: row wrap;\n padding: 10px;\n\n .nf-box {\n background: #fff;\n flex-basis: 48%;\n }\n\n .nf-box-inside {\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 10px;\n }\n\n .nf-extend {\n float: left;\n margin: 0 0 20px 0;\n width: 300px;\n position: relative;\n }\n .nf-extend img {\n margin-bottom: 10px;\n max-width: 100%;\n height: auto;\n }\n\n .nf-extend h2 {\n white-space: nowrap;\n overflow: hidden;\n }\n\n .nf-extend-content p {\n min-height: 100px;\n }\n\n .nf-extend-buttons {\n\n &::after {\n\n clear: both;\n content: \"\";\n display: block;\n\n }\n\n }\n\n .nf-extend .nf-button {\n float: right;\n }\n\n .nf-extend .nf-doc-button {\n float: left;\n }\n\n}\n\n/*\nPromotions\n---------------------------------------------*/\n\n.promotion--wrapper {\n > div {\n a {\n position: relative;\n display: block;\n background: #f1f1f1;\n padding: 16px 80px;\n text-align: center;\n border-radius: 4px;\n font-size: 16px;\n color: #ef4748 !important;\n overflow: hidden;\n line-height: 24px;\n > .cta {\n font-size: 22px;\n }\n > .dashicons, .dashicons-before::before {\n position: absolute;\n left: 0;\n top: -20px;\n font-size: 90px;\n transform: rotate(20deg);\n }\n }\n }\n}\n\n.promotion--wrapper {\n > div {\n a.nf-remove-promo-styling { \n padding: 0;\n height: 83px;\n }\n }\n}","@keyframes nf-connected {\n 0% {\n box-shadow: 0 0 2px rgba(255, 255, 255, 0),\n inset 0 0 2px rgba(255, 255, 255, 0);\n }\n 50% {\n box-shadow: 0 0 2px #84cc1e,\n inset 100vw 0 2px rgba(255, 255, 255, .2);\n }\n 100% {\n box-shadow: 0 0 2px rgba(255, 255, 255, 0),\n inset 100vw 0 2px rgba(255, 255, 255, 0);\n }\n}\n\n.nf-notices--oauth {\n margin-top: -40px; // Account for the bottom margin on the topbar.\n padding-bottom: 20px; // Increase hover target, while maintaining whitespace.\n text-align:center;\n}\n\n.nf-oauth--checking {\n padding: 5px;\n}\n\n.nf-oauth--connect {\n display:block;\n background-color:#1EA9EA;\n color:white;\n padding: 5px;\n text-decoration:none;\n}\n\n.nf-oauth--connected {\n color: transparent;\n padding: 0;\n line-height: .5;\n transition: all .4s;\n background-color:#84CC1E;\n}\n.nf-oauth--connected:not(:hover) {\n animation: nf-connected 8s ease infinite;\n animation-delay: 2s;\n}\n.nf-notices--oauth:hover .nf-oauth--connected {\n color:white;\n line-height: 2;\n padding: 5px;\n}\n",".widget {\n background-color: #fff;\n border: 1px solid #ccc;\n border-radius: 4px;\n margin-bottom: 20px;\n padding: 20px;\n\n header {\n margin-bottom: 20px;\n }\n\n}\n\n.widget-memberships {\n border: 0;\n padding: 0;\n}\n.pricing-container {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n\n .pricing-block {\n width: 30%;\n\n &.highlight {\n background-color: #f1f1f1;\n }\n\n }\n\n .pricing-header {\n\n text-align: center;\n\n & > div {\n margin-bottom: 10px;\n }\n\n .pricing-title {\n font-size: 24px;\n margin-bottom: 16px;\n }\n\n .pricing-price {\n font-size: 24px;\n font-weight: bold;\n padding: 5px 0;\n }\n\n }\n\n .pricing-body {\n\n & > div {\n padding: 10px 0;\n position: relative;\n }\n\n span {\n display: block;\n margin-left: 40px;\n }\n\n ul {\n list-style: disc;\n margin-left: 20px;\n padding-left: 20px;\n }\n\n hr {\n margin-top: 10px;\n margin-bottom: 10px;\n border: 0;\n border-top: 1px solid #424242;\n }\n\n .fa {\n //color: #86CA32;\n color: #aaa;\n font-size: 24px;\n position: absolute;\n left: 0;\n }\n\n .pricing-body-title {\n font-weight: bold;\n text-transform: uppercase;\n }\n\n }\n\n}\n \n\n.widget-plan-notice {\n\n text-align: center;\n\n .widget-title {\n font-size: 32px;\n font-weight: bold;\n margin: 0 0 10px 0;\n text-align: center;\n }\n\n .nf-button {\n margin-bottom: 20px;\n }\n\n}\n","@keyframes nf-service-installing {\n 100% {\n transform:rotate(360deg);\n }\n}\n\n.dashicons-update-spin {\n animation: nf-service-installing 1s linear infinite;\n}\n\n.services {\n .nf-extend.full {\n flex-basis: 100%;\n }\n .nf-extend-buttons a {\n margin-top: 20px;\n }\n .nf-extend-buttons .nf-button {\n margin-top: auto; // Reset from anchor.\n margin-bottom: 10px; // Account for toggle.\n }\n}\n\n.jBox-Confirm-button {\n height: auto !important;\n font-size: 17px !important;\n padding: 10px 30px !important;\n}\n.jBox-Confirm-button-submit {\n background: #1ea9ea !important;\n border: 1px solid #fff !important;\n color: #fff !important;\n}\n.jBox-Confirm-button-cancel {\n background: #fff !important;\n border: 1px solid #1ea9ea !important;\n color: #1ea9ea !important;\n}\n",".promotion--wrapper {\n width: 100%;\n max-width: 50rem;\n margin: auto;\n margin-bottom: 20px; // Maintain whitespace.\n}\n\n.promotion--wrapper a:focus {\n box-shadow: unset; // Override WP focus state.\n}\n","th {\n font-weight: bold;\n}\n\n.widget-forms {\n .sortable {\n cursor: pointer;\n font-weight: bold;\n margin-left: -5px;\n &:hover {\n &:after {\n content: '\\f0dc';\n }\n }\n &:after {\n font-family: 'FontAwesome';\n margin-left: 5px;\n position: absolute;\n }\n &.sorted-asc:after {\n content: \"\\f0de\";\n }\n &.sorted-desc:after {\n content: \"\\f0dd\";\n }\n }\n header {\n display: flex;\n div {\n flex: 1;\n }\n div:first-of-type {\n flex: 2;\n }\n }\n\n .action {\n display: flex;\n }\n\n .form-row-actions a {\n cursor: pointer;\n\n &.delete {\n color: #FF4136;\n }\n }\n\n > div > main.content {\n /*max-height: 400px;*/\n }\n}\n\n.forms-collection {\n & > div {\n padding: 10px;\n }\n & > div:nth-child(odd){\n background-color: #EBEDEE;\n }\n .deleting {\n color: #FF4136;\n background-color: #ECEDEE;\n a {\n color: #FF4136;\n }\n footer {\n display: none;\n }\n }\n main {\n display: flex;\n div {\n flex: 1;\n }\n div:first-of-type {\n flex: 2;\n }\n }\n footer ul {\n margin: 0;\n padding-top: 20px;\n display: flex;\n li {\n a.delete {\n color: red;\n }\n &:after {\n content: ' |';\n margin: auto 5px;\n }\n &:last-child:after {\n content: '';\n }\n }\n }\n}\n\n.nf-template-grid {\n .section-head {\n font-size: 36px;\n font-weight: bold;\n width: 75%;\n display: block;\n border-bottom: 1px solid #ccc;\n padding-bottom: 15px;\n margin: 60px 0px 25px 10px;\n }\n\n .template-list {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n\n & > div {\n display: flex;\n width: 50%;\n }\n\n .template {\n display: grid;\n width: 100%;\n a {\n color: #424242;\n display: block;\n margin: 5px;\n padding: 30px;\n border: 1px solid #ccc;\n border-radius: 4px;\n min-height: 80px;\n cursor: pointer;\n\n &:hover {\n background: #1EA9EA;\n color: #fff;\n }\n\n .title {\n display: block;\n font-size: 20px;\n margin-bottom: 10px\n }\n }\n }\n\n .ad {\n a {\n border-color: #EBEDEE;\n }\n }\n\n .default {\n a {\n background: #EBEDEE;\n border-color: #EBEDEE;\n }\n }\n }\n}\n\ntable .forms-table-row li {\n display: inline-block;\n}\n\n.modal-template {\n padding: 20px;\n img {\n width: 100%;\n }\n iframe {\n width: 100%;\n height: 214px;\n }\n p:first-of-type {\n font-size: 16px;\n font-weight: bold;\n line-height: 20px;\n padding: 16px 40px;\n text-align: center;\n }\n .actions {\n margin-top: 30px;\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n }\n .primary.nf-button {\n float: right;\n }\n}\n"]}
assets/js/lib/sendwp.js CHANGED
@@ -1,6 +1,7 @@
1
  function ninja_forms_sendwp_remote_install() {
2
  var data = {
3
  'action': 'ninja_forms_sendwp_remote_install',
 
4
  };
5
 
6
  // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
1
  function ninja_forms_sendwp_remote_install() {
2
  var data = {
3
  'action': 'ninja_forms_sendwp_remote_install',
4
+ 'nonce': nfAdmin.sendwpInstallNonce
5
  };
6
 
7
  // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
assets/js/min/builder.js CHANGED
@@ -1,5 +1,5 @@
1
- !function(){var e,t,n;!function(i){function r(e,t){return b.call(e,t)}function a(e,t){var n,i,r,a,o,l,s,c,d,h,u,g=t&&t.split("/"),p=v.map,f=p&&p["*"]||{};if(e&&"."===e.charAt(0))if(t){for(e=e.split("/"),o=e.length-1,v.nodeIdCompat&&j.test(e[o])&&(e[o]=e[o].replace(j,"")),e=g.slice(0,g.length-1).concat(e),d=0;d<e.length;d+=1)if("."===(u=e[d]))e.splice(d,1),d-=1;else if(".."===u){if(1===d&&(".."===e[2]||".."===e[0]))break;d>0&&(e.splice(d-1,2),d-=2)}e=e.join("/")}else 0===e.indexOf("./")&&(e=e.substring(2));if((g||f)&&p){for(n=e.split("/"),d=n.length;d>0;d-=1){if(i=n.slice(0,d).join("/"),g)for(h=g.length;h>0;h-=1)if((r=p[g.slice(0,h).join("/")])&&(r=r[i])){a=r,l=d;break}if(a)break;!s&&f&&f[i]&&(s=f[i],c=d)}!a&&s&&(a=s,l=c),a&&(n.splice(0,l,a),e=n.join("/"))}return e}function o(e,t){return function(){var n=C.call(arguments,0);return"string"!=typeof n[0]&&1===n.length&&n.push(null),g.apply(i,n.concat([e,t]))}}function l(e){return function(t){return a(t,e)}}function s(e){return function(t){m[e]=t}}function c(e){if(r(y,e)){var t=y[e];delete y[e],w[e]=!0,u.apply(i,t)}if(!r(m,e)&&!r(w,e))throw new Error("No "+e);return m[e]}function d(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 h(e){return function(){return v&&v.config&&v.config[e]||{}}}var u,g,p,f,m={},y={},v={},w={},b=Object.prototype.hasOwnProperty,C=[].slice,j=/\.js$/;p=function(e,t){var n,i=d(e),r=i[0];return e=i[1],r&&(r=a(r,t),n=c(r)),r?e=n&&n.normalize?n.normalize(e,l(t)):a(e,t):(e=a(e,t),i=d(e),r=i[0],e=i[1],r&&(n=c(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},f={require:function(e){return o(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:h(e)}}},u=function(e,t,n,a){var l,d,h,u,g,v,b=[],C=typeof n;if(a=a||e,"undefined"===C||"function"===C){for(t=!t.length&&n.length?["require","exports","module"]:t,g=0;g<t.length;g+=1)if(u=p(t[g],a),"require"===(d=u.f))b[g]=f.require(e);else if("exports"===d)b[g]=f.exports(e),v=!0;else if("module"===d)l=b[g]=f.module(e);else if(r(m,d)||r(y,d)||r(w,d))b[g]=c(d);else{if(!u.p)throw new Error(e+" missing "+d);u.p.load(u.n,o(a,!0),s(d),{}),b[g]=m[d]}h=n?n.apply(m[e],b):void 0,e&&(l&&l.exports!==i&&l.exports!==m[e]?m[e]=l.exports:h===i&&v||(m[e]=h))}else e&&(m[e]=n)},e=t=g=function(e,t,n,r,a){if("string"==typeof e)return f[e]?f[e](t):c(p(e,t).f);if(!e.splice){if(v=e,v.deps&&g(v.deps,v.callback),!t)return;t.splice?(e=t,t=n,n=null):e=i}return t=t||function(){},"function"==typeof n&&(n=r,r=a),r?u(i,e,t,n):setTimeout(function(){u(i,e,t,n)},4),g},g.config=function(e){return g(e)},e._defined=m,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=[]),r(m,e)||r(y,e)||(y[e]=[e,t,n])},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 var 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"),n=t.get("settings"),r=i.channel("views").request("get:formTitle");this.formTitle.show(new r({model:n})),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(),r=i-n;jQuery(e).height(r)},setBothGuttersFixed:function(e){e=e||this;var t=jQuery(e.gutterLeft.el).offset(),n=t.top,i=t.left;jQuery(e.gutterLeft.el).css({position:"fixed",left:i,top:n});var t=jQuery(e.gutterLeft.el).offset(),r=jQuery(e.gutterRight.el).offset(),a=r.top,o=r.left;jQuery(e.gutterRight.el).css({position:"fixed",left:o,top:a})},setBothGuttersAbsolute:function(e){e=e||this;var t=(jQuery(e.gutterLeft.el).offset(),jQuery(e.gutterRight.el).offset(),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),o=n.get("getFooterView").call(n,t);this.header.show(a),this.content.show(r),this.footer.show(o)},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(){if(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 o=this,l=e.get("use_merge_tags");"object"==typeof l&&(void 0!==l.exclude&&_.each(l.exclude,function(e){o.collection.remove(e)}),void 0!==l.include&&_.each(n.models,function(e){-1!=l.include.indexOf(e.get("id"))&&o.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 o=i.channel("mergeTags").request("get:collection"),l=o.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){var 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(t=t||{},void 0!==t.model){var n=i.channel("app").request("get:currentDomain"),r=n.get("id");i.channel(r).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 a=i.channel("app").request("get:builderEl");jQuery(a).addClass("nf-drawer-opened").removeClass("nf-drawer-closed");var o=i.channel("app").request("get:drawerEl");jQuery(o).css({right:"0px"});var l=this;this.hasFocus=!1,jQuery(".nf-master-control").css("z-index",0),this.checkOpenDrawerPos=setInterval(function(){"0px"==jQuery(o).css("right")&&(clearInterval(l.checkOpenDrawerPos),l.hasFocus||(l.focusFilter(),l.hasFocus=!0,i.channel("app").request("update:currentDrawer",e),jQuery(o).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).zIndex(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).zIndex(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"),o=r.get("icon"),l=i.channel("app").request("get:template","#tmpl-nf-drawer-field-type-button"),s=l({id:n,nicename:a,icon:o,type:r,savedField:t.savedField}),c=document.createRange().createContextualFragment(s);e.appendChild(c)}),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(){if(""!=this.label){return i.channel("app").request("get:template","#tmpl-nf-drawer-content-edit-setting-group-label")(this)}return""},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),
2
- this.settingGroups.show(new e({collection:this.groupCollection,dataModel:this.dataModel}))},templateHelpers:function(){return{maybeRenderTitle:function(){if(void 0!==this.type){return i.channel("app").request("get:template","#tmpl-nf-drawer-content-edit-settings-title")(this)}return""},renderTypeNicename:function(){var e=i.channel("app").request("get:currentDomain"),t=e.get("id");return i.channel(t).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"),n=new jBox("Modal",{content:t,zIndex:99999999,closeButton:"box",overlay:!0,width:600,repositionOnOpen:!0,reposition:!0});n.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)for(var n in t)t.hasOwnProperty(n)&&this.dataModel.on("change:"+n,this.render,this);var r=this.model.get("remote");if(r){if(void 0!==r.refresh||r.refresh){var a,o,l,s;a=document.createTextNode(this.model.get("label")),o=document.createElement("span"),o.classList.add("dashicons","dashicons-update"),l=document.createElement("a"),l.classList.add("extra"),l.appendChild(o),s=document.createElement("span"),s.appendChild(a),s.appendChild(l),this.model.set("label",s.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 in e)e.hasOwnProperty(t)&&this.dataModel.off("change:"+t,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(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;"'}}if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!=this.deps[t])return'style="display:none;"';return""},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(){if(!this.help)return"";var e,t,n,i,r;return e=document.createElement("div"),e.innerHTML=this.help,t=document.createElement("div"),t.classList.add("nf-help-text"),t.appendChild(e),n=document.createElement("span"),n.classList.add("dashicons","dashicons-admin-comments"),i=document.createElement("a"),i.classList.add("nf-help"),i.setAttribute("href","#"),i.setAttribute("tabindex","-1"),i.appendChild(n),r=document.createElement("span"),r.appendChild(i),r.appendChild(t),r.innerHTML},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=0,r=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"),r.value===e.get("key")&&i.setAttribute("selected","selected"),t.appendChild(i),n+=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+"'"),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){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 o=i.channel("settings").request("get:settingModel","embed_form");this.embedForm.show(new e({model:o,dataModel:n}));var l=n.get("public_link_key");l||(l=i.channel("app").request("generate:publicLinkKey"));var s=nfAdmin.publicLinkStructure.replace("[FORM_ID]",l);n.set("public_link",s);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,o,l,s,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 var t=r;return new t(e)},getContentView:function(e){return new n(e)}},{id:"viewChanges",getHeaderView:function(e){return new l(e)},getContentView:function(e){return new o(e)}},{id:"publicLink",getHeaderView:function(e){return new c(e)},getContentView:function(e){return new s(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"),t=e.get("id"),n=i.channel(t).request("get:type",this.type);return void 0!==n?n.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({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||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 var 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"),t=e.get("id"),n=i.channel(t).request("get:type",this.type),r=n.get("nicename");if(this.saved){r+=" - "+i.channel(t).request("get:type",n.get("type")).get("nicename")}return r},renderSavedStar:function(){if(this.saved)var e="filled";else var 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)}})}),
3
  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},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){return 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 var 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)}})}),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,o,l,s,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),a=_.first(r);t=a(t,i.channel("app").request("get:formModel"),!0);var o=i.channel("formContent").request("get:viewFilters"),r=_.without(o,void 0),a=_.first(r);return formContentView=a(),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 o},getMainContentView:function(){var e=i.channel("actions").request("get:collection");return new l({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||1==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)},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)var 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"),o=_.without(a,void 0);if(r=_.first(o)(r),"publish"==e&&n.get("show_publish_options")){i.channel("app").request("open:drawer","newForm");var l=i.channel("app").request("get:builderEl");return jQuery(l).addClass("disable-main"),!1}var s=i.channel("app").request("get:formModel"),c=JSON.parse(JSON.stringify(s));c.settings.formContentData=r;var d=s.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;var d=s.get("actions").removedIDs;_.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});for(var h in 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=[];if(1e5<c.length&&(u=c.match(new RegExp(".{1,100000}","g"))),1<u.length)this.saveChunkedForm(u,0,"nf_batch_process",e,n.get("id"),!0);else{var g=this,p=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},function(t){p=t,g.handleFinalResponse(p,e)}).fail(function(t,n,i){g.handleFinalFailure(t,n,i,e)})}}else if("nf_preview_update"===t){var g=this,p=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},function(t){p=t,g.handleFinalResponse(p,e)}).fail(function(t,n,i){g.handleFinalFailure(t,n,i,e)})}},saveChunkedForm:function(e,t,n,i,r,a){var o=e.length,l={action:n,batch_type:"chunked_publish",data:{new_publish:a,chunk_total:o,chunk_current:t,chunk:e[t],form_id:r},security:nfAdmin.batchNonce},s=this;jQuery.post(ajaxurl,l).then(function(a){try{var o=JSON.parse(a);"success"!==o.last_request||o.batch_complete?o.batch_complete&&s.handleFinalResponse(a,i):(console.log("Chunk "+t+" processed"),s.saveChunkedForm(e,o.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),s.handleFinalFailure(e,t,n,i)})},handleFinalResponse:function(e,t){try{e=JSON.parse(e),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){if("preview"==i)return void console.log(n);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")},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){var t=i.channel("app").request("get:domainCollection"),n=t.get("preview");if(e)var r="Preview Form";else var r="Preview Changes";n.set("nicename",r)},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,i,r,a){var a=void 0!==a?a:{};void 0===r.dashicon&&(r.dashicon="admin-generic");var o=new t({action:e,model:n,changes:i,label:r,data:a});return this.collection.add(o),o},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)}),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=/domain=\\d+/,n=window.location.toString(),r=n.replace(t,"");console.log(r)}})}),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"),t=e.get("fields");i.channel("app").request("change:currentDomain",{},t)},changeDomainActions:function(){var e=i.channel("app").request("get:domainCollection"),t=e.get("actions");i.channel("app").request("change:currentDomain",{},t)},changeDomainSettings:function(){var e=i.channel("app").request("get:domainCollection"),t=e.get("settings");i.channel("app").request("change:currentDomain",{},t)},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)}})}),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"),o=a.where({model:n});_.each(o,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"),o=a.where({model:n});_.each(o,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"),o=a.where({model:n});_.each(o,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"),r=n.fields,a=i.channel("fields").request("get:collection");_.each(r,function(e){var t=e.before;e.model.set("order",t)}),a.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"),a=r.where({model:n});_.each(a,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){var t=void 0!==t&&t;if(!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"),o=n.get(a),r=r||null;r||(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 l=r,s={attr:a,before:o,after:l},c=i.channel("app").request("get:currentDomain"),d=(c.get("id"),{object:n.get("objectType"),label:n.get("label"),change:"Changed "+t.get("label")+" from "+o+" to "+l});i.channel("changes").request("register:change","changeSetting",n,s,d)}})}),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)for(var n in t)t.hasOwnProperty(n)&&this.dataModel.on("change:"+n,this.render,this);this.model.on("rerender",this.render,this)},onBeforeDestroy:function(){var e=this.model.get("deps");if(e)for(var t in e)e.hasOwnProperty(t)&&this.dataModel.off("change:"+t,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;"'}
4
  if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!==this.deps[t])return'style="display:none;"';return""},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 var 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 void 0!==r&&null!==r&&e.target.value<r&&(t.set("value",r),e.target.value=r),void 0!==a&&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"),r=n.get("id"),a=i.channel(r).request("get:type",t.get("type"));i.channel("app").request("open:drawer","editSettings",{model:t,groupCollection:a.get("settingGroups")})}},maybeDelete:function(e,t){this.deleting=!0;var n=t.get("id"),i=t.get("objectType"),r=["html","submit","hr","recaptcha","spam","creditcard","creditcardcvc","creditcardexpiration","creditcardfullname","creditcardnumber","creditcardzip"];if("field"!=i.toLowerCase())this.clickDelete(e,t);else if("tmp"===n.toString().substring(0,3)||-1!=jQuery.inArray(t.get("type"),r))this.clickDelete(e,t);else{var a=Backbone.Radio.channel("app").request("get:formModel"),o={action:"nf_maybe_delete_field",security:nfAdmin.ajaxNonce,formID:a.get("id"),fieldKey:t.get("key"),fieldID:n},l=this;jQuery.post(ajaxurl,o).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?(l.doDeleteFieldModal(e,t),!1):(l.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},o=i.channel("changes").request("get:collection"),l=o.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"),c=s.get("id");i.channel(c).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"),a=r.get("id");n.set("label",n.get("label")+" Copy",{silent:!0});var o=i.channel(a).request("get:tmpID");n.set("id",o),i.channel(a).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(a).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 var 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,o=i.channel("app").request("get:formModel"),l=o.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"),n=this;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=jQuery(this.currentElement).caret(),r=i+t.get("tag").length,a=void 0!==t.get("calcTag")?t.get("calcTag"):t.get("tag");n=n.substr(0,i)+a+n.substr(i),jQuery(this.currentElement).val(n).caret(r).trigger("change")}else if("rte"==this.settingModel.get("type"))jQuery(this.currentElement).summernote("insertText",t.get("tag"));else{var n=jQuery(this.currentElement).val(),i=jQuery(this.currentElement).caret(),r=i+t.get("tag").length;n=n.substr(0,i)+t.get("tag")+n.substr(i),jQuery(this.currentElement).val(n).caret(r).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"),a=r.get("settings").get("calculations");_.each(a.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 var 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"),o=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(o=e.get("eq"))){var a=new RegExp(t,"g"),l=o.replace(a,n);a=new RegExp(i,"g"),l=l.replace(a,r),e.set("eq",l)}}),!1}if("string"==typeof o){var l=new RegExp(i,"g");newVal=o.replace(l,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,o=n.get("tag").toLowerCase().indexOf(e.toLowerCase())>=0;return(!this.calc||-1==t.indexOf(n.get("tag")))&&(a||o)},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,o,l,s){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});var 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 s;c.render();var d=new t(a),h=new r({collection:d}),u=new o({collection:n});c.getRegion("tags").show(h),c.getRegion("sections").show(u),c.getRegion("filter").show(new l)},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 var 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 o=jQuery("#merge-tags-box").outerHeight();jQuery("#nf-drawer").css("padding-bottom",o+"px");var l=jQuery(".merge-tag-focus").closest(".nf-list-options-tbody");if(0!=l.length){var s=l.offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",s)}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 var n=t.val();for(var r=i.channel("mergeTags").request("get:old"),a=e,o=i.channel("mergeTags").request("get:caret"),l=/{([a-zA-Z0-9]|:|_||-})*/g;match=l.exec(n);)if(r==match[0]){var s=n.slice(0,match.index)+a+n.slice(l.lastIndex);if(t.hasClass("note-editable")){t.closest(".nf-setting").find(".setting").summernote("code",s);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)var n=e.innerHTML;if(-1!=n.indexOf(a)){n=n.replace(/&nbsp;/g," ");var i=n.indexOf(a)+r.length;-1==o&&(o=n.indexOf(a)+1),o==i&&(d=c[0].childNodes[t])}}}),d||(d=c[0].childNodes[0]);var h=o-r.length+a.length,u=document.createRange(),g=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),g.removeAllRanges(),g.addRange(u)}else t.val(s),t.change(),t.caret(o-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 n=t.siblings(".setting").first(),r=n.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 o=t.closest(".nf-setting, .nf-table-row");if(0!=o.find(".note-editor").length?o.find(".note-editor").addClass("merge-tag-focus-overlay"):o.addClass("merge-tag-focus-overlay"),"eq"==jQuery(e.target).prev("textarea").data("id"))var l=!0;else var l=!1;i.channel("merge-tags").request("update:taglist","fields",l),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){var n=n||"setting",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 var r=i.offset().top-jQuery(window).scrollTop(),a=i.outerHeight();var o=r+a,l=window.innerHeight,s=jQuery("#merge-tags-box").outerHeight();o+s>l&&(o=r-s),0>o&&(o=r),jQuery("#merge-tags-box").css("top",o);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{var 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())}var u=jQuery(this).data("id")},keyupCallback:function(e,t,n){var 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 var a=jQuery(this);var o=jQuery(this).data("id");if(!o||"eq"!=o){if("rte"==n){var l=a.summernote("createRange");if(l)var s=l.so;else var s=0;a.closest(".nf-setting").find(".setting").summernote("saveRange")}else var s=a.caret();if(i.channel("mergeTags").request("set:caret",s),"rte"==n)var c=a.summernote("code").match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));else var c=a.val().match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));if(c=_.filter(c,function(e){return-1==e.indexOf("}")}),0!==c.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=function(e){return r.linkButton(e)},o=function(e){return r.mediaButton(e)},l=this.mergeTags(),s=[["paragraphStyle",["style"]],["fontStyle",["bold","italic","underline","clear"]],["lists",["ul","ol"]],["paragraph",["paragraph"]],["customGroup",["linkButton","unlink"]],["table",["table"]],["actions",["undo","redo"]],["tools",["mediaButton","mergeTags","codeview"]]];jQuery(n.el).find("div.setting").summernote({toolbar:s,buttons:{linkButton:a,mergeTags:l,mediaButton:o},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 o=jQuery(this).summernote("code");r.updateDataModel(e,t,o),i.channel("summernote").trigger("blur",e,t,o)},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),o=n,l={attr:r,before:a,after:o},s={object:t.get("objectType"),label:t.get("label"),change:"Changed "+e.get("label")+" from "+a+" to "+o};i.channel("changes").request("register:change","changeSetting",t,l,s),t.set(e.get("name"),o)},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){
5
  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)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 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"),o=jQuery(e.target).parent().find(".link-new-window");if(this.currentContext.invoke("editor.restoreRange"),jQuery(e.target).hasClass("insert-link")){var l=r.val(),s=a.val(),c=!!o.prop("checked");0!=l.length&&0!=s.length&&this.currentContext.invoke("editor.createLink",{text:l,url:s,isNewWindow:c})}r.val(""),a.val(""),o.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 o=!1;if(_.each(i[n.get("type")],function(e,t){console.log(e+":"+n.get(t)),e!=n.get(t)&&(o=!0)}),o)return}var l=n.get("key");switch(e.get("field_value_format")){case"key":l=n.get("key");break;case"merge_tag":default:l="{field:"+n.get("key")+"}"}a.push({label:n.get("label"),value:l})}}),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 o=a.split(":");"addField"==o[0]&&(this.openDrawer="addField",this.filterDrawer=o[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 o="";_.each(i.fieldListSettings,function(i){if(a==i+"-"+t&&o!=t){var r=e.get(i+"-"+t);e.set(i+"-"+n,r),e.set(i+"-"+t,0),o=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){var r=(e.get("name"),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(){if(!(jQuery('li a:contains("'+this.editFormText+'")').length>0)){var e,t,n;e=document.createTextNode(this.editFormText),t=document.createElement("a"),t.appendChild(e),n=document.createElement("li"),n.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"}},a={position:{x:"center",y:"top"},animation:{open:"slide:top",close:"slide:left"},autoClose:2e3,offset:{x:0,y:55}},o={attributes:{x:"left",y:"bottom"},autoClose:4e3};if(i.channel("app").request("is:mobile"))var l=a;else var l=o;l=jQuery.extend(l,r);var n=jQuery.extend(l,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)return void i.channel("fields").request("add:stagedField",t);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){var t=t||!1,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")},o=this.collection.add(a);return t||i.channel("fields").trigger("add:stagedField",o),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=i.channel("fields").request("get:tmpID"),r={id:n,label:t.get("nicename"),type:t.get("slug")},a=i.channel("fields").request("add",r,!1),o={object:"Field",label:a.get("label"),change:"Added",dashicon:"plus-alt"},l={collection:e};i.channel("changes").request("register:change","addObject",a,null,o,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),a=r.get("nicename");this.currentHelper=t.helper,jQuery(t.helper).html(a+'<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 o=i.channel("app").request("get:stagedFieldsEl");jQuery(o).hasClass("ui-sortable")&&jQuery(o).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}]),o=i.channel("app").request("update:hiddenFields")||[];o=o.concat(["product","quantity","shipping","total"]);for(var l=a.models[0].get("fieldTypes").length-1;l>=0;l--){-1<o.indexOf(a.models[0].get("fieldTypes")[l])&&a.models[0].get("fieldTypes").splice(l,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)?n=!0:-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"),"date"==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"),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(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),n=t.filter(function(e){return 0==e.indexOf("taxonomy_term_")&&this[e]}.bind(this));return 0==n.length?"(No available terms selected)":n.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 i=this.options.models.filter(function(e){return e.get("selected")});return 0==i.length&&(i=this.options.models),"<option>"+i[0].get("label")+"</option>";case"listmultiselect":return this.options.models.reduce(function(e,t){return e+="<option"+(t.get("selected")?' selected="selected"':"")+">"+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>"+t.get("label")+"</div></li>"},"");case"listradio":var r=!1;return this.options.models.reduce(function(e,t){return r=t.get("selected")&&!r?' checked="checked"':"",e+='<li><input type="radio"'+r+"><div>"+t.get("label")+"</div></li>"},"");case"listcountry":var a=this.default,o=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"<option>"+(void 0!==o?o.label:"--")+"</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}}},convertDateFormat:function(e){return e=e.replace("D","ddd"),e=e.replace("d","DD"),e=e.replace("l","dddd"),e=e.replace("j","D"),e=e.replace("N",""),e=e.replace("S",""),e=e.replace("w","d"),e=e.replace("z",""),e=e.replace("W","W"),e=e.replace("M","MMM"),e=e.replace("F","MMMM"),e=e.replace("m","MM"),e=e.replace("n","M"),e=e.replace("t",""),e=e.replace("L",""),e=e.replace("o","YYYY"),e=e.replace("Y","YYYY"),e=e.replace("y","YY"),e=e.replace("a",""),e=e.replace("A",""),e=e.replace("B",""),e=e.replace("g",""),e=e.replace("G",""),e=e.replace("h",""),e=e.replace("H",""),e=e.replace("i",""),e=e.replace("s",""),e=e.replace("u",""),e=e.replace("v",""),e=e.replace("e",""),e=e.replace("I",""),e=e.replace("O",""),e=e.replace("P",""),e=e.replace("T",""),e=e.replace("Z",""),e=e.replace("c",""),e=e.replace("r",""),e=e.replace("u","")}})}),n("views/fields/preview/label",[],function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-field-label",initialize:function(){},onRender:function(){},templateHelpers:function(){return{renderLabelClasses:function(){},maybeRenderHelp:function(){}}}})}),n("views/fields/fieldItem",["views/app/itemControls","views/fields/preview/element","views/fields/preview/label"],function(e,t,n){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 r=this.model.get("type");"phone"==r&&(r="tel"),"spam"==r&&(r="input"),"date"==r&&(r="input"),"confirm"==r&&(r="input"),"password"==r&&(r="input"),"passwordconfirm"==r&&(r="input"),"quantity"==r&&(r="number"),"terms"==r&&(r="listcheckbox"),"liststate"==r&&(r="listselect"),"listcountry"==r&&(r="listselect"),"listmultiselect"==r&&(r="listselect"),"save"==r&&(r="submit");var a=["html","hidden","note","recaptcha"],o=jQuery("#tmpl-nf-field-"+r).length;if(-1==a.indexOf(this.model.get("type"))&&o){this.previewElement.show(new t({model:this.model}));-1==["submit","save","hr"].indexOf(this.model.get("type"))&&this.previewLabel.show(new n({model:this.model})),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}))})},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(){
1
+ !function(){var e,t,n;!function(i){function r(e,t){return b.call(e,t)}function a(e,t){var n,i,r,a,o,l,s,c,d,h,u,g=t&&t.split("/"),p=v.map,f=p&&p["*"]||{};if(e&&"."===e.charAt(0))if(t){for(e=e.split("/"),o=e.length-1,v.nodeIdCompat&&j.test(e[o])&&(e[o]=e[o].replace(j,"")),e=g.slice(0,g.length-1).concat(e),d=0;d<e.length;d+=1)if("."===(u=e[d]))e.splice(d,1),d-=1;else if(".."===u){if(1===d&&(".."===e[2]||".."===e[0]))break;d>0&&(e.splice(d-1,2),d-=2)}e=e.join("/")}else 0===e.indexOf("./")&&(e=e.substring(2));if((g||f)&&p){for(n=e.split("/"),d=n.length;d>0;d-=1){if(i=n.slice(0,d).join("/"),g)for(h=g.length;h>0;h-=1)if((r=p[g.slice(0,h).join("/")])&&(r=r[i])){a=r,l=d;break}if(a)break;!s&&f&&f[i]&&(s=f[i],c=d)}!a&&s&&(a=s,l=c),a&&(n.splice(0,l,a),e=n.join("/"))}return e}function o(e,t){return function(){var n=C.call(arguments,0);return"string"!=typeof n[0]&&1===n.length&&n.push(null),g.apply(i,n.concat([e,t]))}}function l(e){return function(t){return a(t,e)}}function s(e){return function(t){m[e]=t}}function c(e){if(r(y,e)){var t=y[e];delete y[e],w[e]=!0,u.apply(i,t)}if(!r(m,e)&&!r(w,e))throw new Error("No "+e);return m[e]}function d(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 h(e){return function(){return v&&v.config&&v.config[e]||{}}}var u,g,p,f,m={},y={},v={},w={},b=Object.prototype.hasOwnProperty,C=[].slice,j=/\.js$/;p=function(e,t){var n,i=d(e),r=i[0];return e=i[1],r&&(r=a(r,t),n=c(r)),r?e=n&&n.normalize?n.normalize(e,l(t)):a(e,t):(e=a(e,t),i=d(e),r=i[0],e=i[1],r&&(n=c(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},f={require:function(e){return o(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:h(e)}}},u=function(e,t,n,a){var l,d,h,u,g,v,b=[],C=typeof n;if(a=a||e,"undefined"===C||"function"===C){for(t=!t.length&&n.length?["require","exports","module"]:t,g=0;g<t.length;g+=1)if(u=p(t[g],a),"require"===(d=u.f))b[g]=f.require(e);else if("exports"===d)b[g]=f.exports(e),v=!0;else if("module"===d)l=b[g]=f.module(e);else if(r(m,d)||r(y,d)||r(w,d))b[g]=c(d);else{if(!u.p)throw new Error(e+" missing "+d);u.p.load(u.n,o(a,!0),s(d),{}),b[g]=m[d]}h=n?n.apply(m[e],b):void 0,e&&(l&&l.exports!==i&&l.exports!==m[e]?m[e]=l.exports:h===i&&v||(m[e]=h))}else e&&(m[e]=n)},e=t=g=function(e,t,n,r,a){if("string"==typeof e)return f[e]?f[e](t):c(p(e,t).f);if(!e.splice){if(v=e,v.deps&&g(v.deps,v.callback),!t)return;t.splice?(e=t,t=n,n=null):e=i}return t=t||function(){},"function"==typeof n&&(n=r,r=a),r?u(i,e,t,n):setTimeout(function(){u(i,e,t,n)},4),g},g.config=function(e){return g(e)},e._defined=m,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=[]),r(m,e)||r(y,e)||(y[e]=[e,t,n])},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 var 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"),n=t.get("settings"),r=i.channel("views").request("get:formTitle");this.formTitle.show(new r({model:n})),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(),r=i-n;jQuery(e).height(r)},setBothGuttersFixed:function(e){e=e||this;var t=jQuery(e.gutterLeft.el).offset(),n=t.top,i=t.left;jQuery(e.gutterLeft.el).css({position:"fixed",left:i,top:n});var t=jQuery(e.gutterLeft.el).offset(),r=jQuery(e.gutterRight.el).offset(),a=r.top,o=r.left;jQuery(e.gutterRight.el).css({position:"fixed",left:o,top:a})},setBothGuttersAbsolute:function(e){e=e||this;var t=(jQuery(e.gutterLeft.el).offset(),jQuery(e.gutterRight.el).offset(),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),o=n.get("getFooterView").call(n,t);this.header.show(a),this.content.show(r),this.footer.show(o)},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(){if(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 o=this,l=e.get("use_merge_tags");"object"==typeof l&&(void 0!==l.exclude&&_.each(l.exclude,function(e){o.collection.remove(e)}),void 0!==l.include&&_.each(n.models,function(e){-1!=l.include.indexOf(e.get("id"))&&o.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 o=i.channel("mergeTags").request("get:collection"),l=o.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){var 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(t=t||{},void 0!==t.model){var n=i.channel("app").request("get:currentDomain"),r=n.get("id");i.channel(r).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 a=i.channel("app").request("get:builderEl");jQuery(a).addClass("nf-drawer-opened").removeClass("nf-drawer-closed");var o=i.channel("app").request("get:drawerEl");jQuery(o).css({right:"0px"});var l=this;this.hasFocus=!1,jQuery(".nf-master-control").css("z-index",0),this.checkOpenDrawerPos=setInterval(function(){"0px"==jQuery(o).css("right")&&(clearInterval(l.checkOpenDrawerPos),l.hasFocus||(l.focusFilter(),l.hasFocus=!0,i.channel("app").request("update:currentDrawer",e),jQuery(o).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"),o=r.get("icon"),l=i.channel("app").request("get:template","#tmpl-nf-drawer-field-type-button"),s=l({id:n,nicename:a,icon:o,type:r,savedField:t.savedField}),c=document.createRange().createContextualFragment(s);e.appendChild(c)}),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(){if(""!=this.label){return i.channel("app").request("get:template","#tmpl-nf-drawer-content-edit-setting-group-label")(this)}return""},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})
2
+ ;this.settingTitle.show(n),this.settingGroups.show(new e({collection:this.groupCollection,dataModel:this.dataModel}))},templateHelpers:function(){return{maybeRenderTitle:function(){if(void 0!==this.type){return i.channel("app").request("get:template","#tmpl-nf-drawer-content-edit-settings-title")(this)}return""},renderTypeNicename:function(){var e=i.channel("app").request("get:currentDomain"),t=e.get("id");return i.channel(t).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"),n=new jBox("Modal",{content:t,zIndex:99999999,closeButton:"box",overlay:!0,width:600,repositionOnOpen:!0,reposition:!0});n.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)for(var n in t)t.hasOwnProperty(n)&&this.dataModel.on("change:"+n,this.render,this);var r=this.model.get("remote");if(r){if(void 0!==r.refresh||r.refresh){var a,o,l,s;a=document.createTextNode(this.model.get("label")),o=document.createElement("span"),o.classList.add("dashicons","dashicons-update"),l=document.createElement("a"),l.classList.add("extra"),l.appendChild(o),s=document.createElement("span"),s.appendChild(a),s.appendChild(l),this.model.set("label",s.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 in e)e.hasOwnProperty(t)&&this.dataModel.off("change:"+t,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(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;"'}}if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!=this.deps[t])return'style="display:none;"';return""},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(){if(!this.help)return"";var e,t,n,i,r;return e=document.createElement("div"),e.innerHTML=this.help,t=document.createElement("div"),t.classList.add("nf-help-text"),t.appendChild(e),n=document.createElement("span"),n.classList.add("dashicons","dashicons-admin-comments"),i=document.createElement("a"),i.classList.add("nf-help"),i.setAttribute("href","#"),i.setAttribute("tabindex","-1"),i.appendChild(n),r=document.createElement("span"),r.appendChild(i),r.appendChild(t),r.innerHTML},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=0,r=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"),r.value===e.get("key")&&i.setAttribute("selected","selected"),t.appendChild(i),n+=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+"'"),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){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 o=i.channel("settings").request("get:settingModel","embed_form");this.embedForm.show(new e({model:o,dataModel:n}));var l=n.get("public_link_key");l||(l=i.channel("app").request("generate:publicLinkKey"));var s=nfAdmin.publicLinkStructure.replace("[FORM_ID]",l);n.set("public_link",s);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,o,l,s,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 var t=r;return new t(e)},getContentView:function(e){return new n(e)}},{id:"viewChanges",getHeaderView:function(e){return new l(e)},getContentView:function(e){return new o(e)}},{id:"publicLink",getHeaderView:function(e){return new c(e)},getContentView:function(e){return new s(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"),t=e.get("id"),n=i.channel(t).request("get:type",this.type);return void 0!==n?n.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({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||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 var 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"),t=e.get("id"),n=i.channel(t).request("get:type",this.type),r=n.get("nicename");if(this.saved){r+=" - "+i.channel(t).request("get:type",n.get("type")).get("nicename")}return r},renderSavedStar:function(){if(this.saved)var e="filled";else var 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)}})}),
3
  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},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){return 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 var 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)}})}),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,o,l,s,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),a=_.first(r);t=a(t,i.channel("app").request("get:formModel"),!0);var o=i.channel("formContent").request("get:viewFilters"),r=_.without(o,void 0),a=_.first(r);return formContentView=a(),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 o},getMainContentView:function(){var e=i.channel("actions").request("get:collection");return new l({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||1==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)},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)var 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"),o=_.without(a,void 0);if(r=_.first(o)(r),"publish"==e&&n.get("show_publish_options")){i.channel("app").request("open:drawer","newForm");var l=i.channel("app").request("get:builderEl");return jQuery(l).addClass("disable-main"),!1}var s=i.channel("app").request("get:formModel"),c=JSON.parse(JSON.stringify(s));c.settings.formContentData=r;var d=s.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;var d=s.get("actions").removedIDs;_.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});for(var h in 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=[];if(1e5<c.length&&(u=c.match(new RegExp(".{1,100000}","g"))),1<u.length)this.saveChunkedForm(u,0,"nf_batch_process",e,n.get("id"),!0);else{var g=this,p=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},function(t){p=t,g.handleFinalResponse(p,e)}).fail(function(t,n,i){g.handleFinalFailure(t,n,i,e)})}}else if("nf_preview_update"===t){var g=this,p=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},function(t){p=t,g.handleFinalResponse(p,e)}).fail(function(t,n,i){g.handleFinalFailure(t,n,i,e)})}},saveChunkedForm:function(e,t,n,i,r,a){var o=e.length,l={action:n,batch_type:"chunked_publish",data:{new_publish:a,chunk_total:o,chunk_current:t,chunk:e[t],form_id:r},security:nfAdmin.batchNonce},s=this;jQuery.post(ajaxurl,l).then(function(a){try{var o=JSON.parse(a);"success"!==o.last_request||o.batch_complete?o.batch_complete&&s.handleFinalResponse(a,i):(console.log("Chunk "+t+" processed"),s.saveChunkedForm(e,o.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),s.handleFinalFailure(e,t,n,i)})},handleFinalResponse:function(e,t){try{e=JSON.parse(e),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){if("preview"==i)return void console.log(n);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")},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){var t=i.channel("app").request("get:domainCollection"),n=t.get("preview");if(e)var r="Preview Form";else var r="Preview Changes";n.set("nicename",r)},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,i,r,a){var a=void 0!==a?a:{};void 0===r.dashicon&&(r.dashicon="admin-generic");var o=new t({action:e,model:n,changes:i,label:r,data:a});return this.collection.add(o),o},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)}),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=/domain=\\d+/,n=window.location.toString(),r=n.replace(t,"");console.log(r)}})}),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"),t=e.get("fields");i.channel("app").request("change:currentDomain",{},t)},changeDomainActions:function(){var e=i.channel("app").request("get:domainCollection"),t=e.get("actions");i.channel("app").request("change:currentDomain",{},t)},changeDomainSettings:function(){var e=i.channel("app").request("get:domainCollection"),t=e.get("settings");i.channel("app").request("change:currentDomain",{},t)},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)}})}),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"),o=a.where({model:n});_.each(o,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"),o=a.where({model:n});_.each(o,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"),o=a.where({model:n});_.each(o,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"),r=n.fields,a=i.channel("fields").request("get:collection");_.each(r,function(e){var t=e.before;e.model.set("order",t)}),a.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"),a=r.where({model:n});_.each(a,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){var t=void 0!==t&&t;if(!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"),o=n.get(a),r=r||null;r||(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 l=r,s={attr:a,before:o,after:l},c=i.channel("app").request("get:currentDomain"),d=(c.get("id"),{object:n.get("objectType"),label:n.get("label"),change:"Changed "+t.get("label")+" from "+o+" to "+l});i.channel("changes").request("register:change","changeSetting",n,s,d)}})}),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)for(var n in t)t.hasOwnProperty(n)&&this.dataModel.on("change:"+n,this.render,this);this.model.on("rerender",this.render,this)},onBeforeDestroy:function(){var e=this.model.get("deps");if(e)for(var t in e)e.hasOwnProperty(t)&&this.dataModel.off("change:"+t,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;"'}
4
  if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!==this.deps[t])return'style="display:none;"';return""},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 var 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 void 0!==r&&null!==r&&e.target.value<r&&(t.set("value",r),e.target.value=r),void 0!==a&&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"),r=n.get("id"),a=i.channel(r).request("get:type",t.get("type"));i.channel("app").request("open:drawer","editSettings",{model:t,groupCollection:a.get("settingGroups")})}},maybeDelete:function(e,t){this.deleting=!0;var n=t.get("id"),i=t.get("objectType"),r=["html","submit","hr","recaptcha","spam","creditcard","creditcardcvc","creditcardexpiration","creditcardfullname","creditcardnumber","creditcardzip"];if("field"!=i.toLowerCase())this.clickDelete(e,t);else if("tmp"===n.toString().substring(0,3)||-1!=jQuery.inArray(t.get("type"),r))this.clickDelete(e,t);else{var a=Backbone.Radio.channel("app").request("get:formModel"),o={action:"nf_maybe_delete_field",security:nfAdmin.ajaxNonce,formID:a.get("id"),fieldKey:t.get("key"),fieldID:n},l=this;jQuery.post(ajaxurl,o).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?(l.doDeleteFieldModal(e,t),!1):(l.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},o=i.channel("changes").request("get:collection"),l=o.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"),c=s.get("id");i.channel(c).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"),a=r.get("id");n.set("label",n.get("label")+" Copy",{silent:!0});var o=i.channel(a).request("get:tmpID");n.set("id",o),i.channel(a).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(a).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 var 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,o=i.channel("app").request("get:formModel"),l=o.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"),n=this;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=jQuery(this.currentElement).caret(),r=i+t.get("tag").length,a=void 0!==t.get("calcTag")?t.get("calcTag"):t.get("tag");n=n.substr(0,i)+a+n.substr(i),jQuery(this.currentElement).val(n).caret(r).trigger("change")}else if("rte"==this.settingModel.get("type"))jQuery(this.currentElement).summernote("insertText",t.get("tag"));else{var n=jQuery(this.currentElement).val(),i=jQuery(this.currentElement).caret(),r=i+t.get("tag").length;n=n.substr(0,i)+t.get("tag")+n.substr(i),jQuery(this.currentElement).val(n).caret(r).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"),a=r.get("settings").get("calculations");_.each(a.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 var 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"),o=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(o=e.get("eq"))){var a=new RegExp(t,"g"),l=o.replace(a,n);a=new RegExp(i,"g"),l=l.replace(a,r),e.set("eq",l)}}),!1}if("string"==typeof o){var l=new RegExp(i,"g");newVal=o.replace(l,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,o=n.get("tag").toLowerCase().indexOf(e.toLowerCase())>=0;return(!this.calc||-1==t.indexOf(n.get("tag")))&&(a||o)},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,o,l,s){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});var 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 s;c.render();var d=new t(a),h=new r({collection:d}),u=new o({collection:n});c.getRegion("tags").show(h),c.getRegion("sections").show(u),c.getRegion("filter").show(new l)},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 var 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 o=jQuery("#merge-tags-box").outerHeight();jQuery("#nf-drawer").css("padding-bottom",o+"px");var l=jQuery(".merge-tag-focus").closest(".nf-list-options-tbody");if(0!=l.length){var s=l.offset().left-jQuery(window).scrollLeft();jQuery("#merge-tags-box").css("left",s)}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 var n=t.val();for(var r=i.channel("mergeTags").request("get:old"),a=e,o=i.channel("mergeTags").request("get:caret"),l=/{([a-zA-Z0-9]|:|_||-})*/g;match=l.exec(n);)if(r==match[0]){var s=n.slice(0,match.index)+a+n.slice(l.lastIndex);if(t.hasClass("note-editable")){t.closest(".nf-setting").find(".setting").summernote("code",s);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)var n=e.innerHTML;if(-1!=n.indexOf(a)){n=n.replace(/&nbsp;/g," ");var i=n.indexOf(a)+r.length;-1==o&&(o=n.indexOf(a)+1),o==i&&(d=c[0].childNodes[t])}}}),d||(d=c[0].childNodes[0]);var h=o-r.length+a.length,u=document.createRange(),g=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),g.removeAllRanges(),g.addRange(u)}else t.val(s),t.change(),t.caret(o-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 n=t.siblings(".setting").first(),r=n.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 o=t.closest(".nf-setting, .nf-table-row");if(0!=o.find(".note-editor").length?o.find(".note-editor").addClass("merge-tag-focus-overlay"):o.addClass("merge-tag-focus-overlay"),"eq"==jQuery(e.target).prev("textarea").data("id"))var l=!0;else var l=!1;i.channel("merge-tags").request("update:taglist","fields",l),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){var n=n||"setting",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 var r=i.offset().top-jQuery(window).scrollTop(),a=i.outerHeight();var o=r+a,l=window.innerHeight,s=jQuery("#merge-tags-box").outerHeight();o+s>l&&(o=r-s),0>o&&(o=r),jQuery("#merge-tags-box").css("top",o);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{var 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())}var u=jQuery(this).data("id")},keyupCallback:function(e,t,n){var 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 var a=jQuery(this);var o=jQuery(this).data("id");if(!o||"eq"!=o){if("rte"==n){var l=a.summernote("createRange");if(l)var s=l.so;else var s=0;a.closest(".nf-setting").find(".setting").summernote("saveRange")}else var s=a.caret();if(i.channel("mergeTags").request("set:caret",s),"rte"==n)var c=a.summernote("code").match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));else var c=a.val().match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));if(c=_.filter(c,function(e){return-1==e.indexOf("}")}),0!==c.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=function(e){return r.linkButton(e)},o=function(e){return r.mediaButton(e)},l=this.mergeTags(),s=[["paragraphStyle",["style"]],["fontStyle",["bold","italic","underline","clear"]],["lists",["ul","ol"]],["paragraph",["paragraph"]],["customGroup",["linkButton","unlink"]],["table",["table"]],["actions",["undo","redo"]],["tools",["mediaButton","mergeTags","codeview"]]];jQuery(n.el).find("div.setting").summernote({toolbar:s,buttons:{linkButton:a,mergeTags:l,mediaButton:o},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 o=jQuery(this).summernote("code");r.updateDataModel(e,t,o),i.channel("summernote").trigger("blur",e,t,o)},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),o=n,l={attr:r,before:a,after:o},s={object:t.get("objectType"),label:t.get("label"),change:"Changed "+e.get("label")+" from "+a+" to "+o};i.channel("changes").request("register:change","changeSetting",t,l,s),t.set(e.get("name"),o)},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){
5
  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)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 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"),o=jQuery(e.target).parent().find(".link-new-window");if(this.currentContext.invoke("editor.restoreRange"),jQuery(e.target).hasClass("insert-link")){var l=r.val(),s=a.val(),c=!!o.prop("checked");0!=l.length&&0!=s.length&&this.currentContext.invoke("editor.createLink",{text:l,url:s,isNewWindow:c})}r.val(""),a.val(""),o.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 o=!1;if(_.each(i[n.get("type")],function(e,t){console.log(e+":"+n.get(t)),e!=n.get(t)&&(o=!0)}),o)return}var l=n.get("key");switch(e.get("field_value_format")){case"key":l=n.get("key");break;case"merge_tag":default:l="{field:"+n.get("key")+"}"}a.push({label:n.get("label"),value:l})}}),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 o=a.split(":");"addField"==o[0]&&(this.openDrawer="addField",this.filterDrawer=o[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 o="";_.each(i.fieldListSettings,function(i){if(a==i+"-"+t&&o!=t){var r=e.get(i+"-"+t);e.set(i+"-"+n,r),e.set(i+"-"+t,0),o=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){var r=(e.get("name"),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(){if(!(jQuery('li a:contains("'+this.editFormText+'")').length>0)){var e,t,n;e=document.createTextNode(this.editFormText),t=document.createElement("a"),t.appendChild(e),n=document.createElement("li"),n.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"}},a={position:{x:"center",y:"top"},animation:{open:"slide:top",close:"slide:left"},autoClose:2e3,offset:{x:0,y:55}},o={attributes:{x:"left",y:"bottom"},autoClose:4e3};if(i.channel("app").request("is:mobile"))var l=a;else var l=o;l=jQuery.extend(l,r);var n=jQuery.extend(l,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)return void i.channel("fields").request("add:stagedField",t);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){var t=t||!1,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")},o=this.collection.add(a);return t||i.channel("fields").trigger("add:stagedField",o),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=i.channel("fields").request("get:tmpID"),r={id:n,label:t.get("nicename"),type:t.get("slug")},a=i.channel("fields").request("add",r,!1),o={object:"Field",label:a.get("label"),change:"Added",dashicon:"plus-alt"},l={collection:e};i.channel("changes").request("register:change","addObject",a,null,o,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),a=r.get("nicename");this.currentHelper=t.helper,jQuery(t.helper).html(a+'<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 o=i.channel("app").request("get:stagedFieldsEl");jQuery(o).hasClass("ui-sortable")&&jQuery(o).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}]),o=i.channel("app").request("update:hiddenFields")||[];o=o.concat(["product","quantity","shipping","total"]);for(var l=a.models[0].get("fieldTypes").length-1;l>=0;l--){-1<o.indexOf(a.models[0].get("fieldTypes")[l])&&a.models[0].get("fieldTypes").splice(l,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)?n=!0:-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"),"date"==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"),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(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),n=t.filter(function(e){return 0==e.indexOf("taxonomy_term_")&&this[e]}.bind(this));return 0==n.length?"(No available terms selected)":n.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 i=this.options.models.filter(function(e){return e.get("selected")});return 0==i.length&&(i=this.options.models),"<option>"+i[0].get("label")+"</option>";case"listmultiselect":return this.options.models.reduce(function(e,t){return e+="<option"+(t.get("selected")?' selected="selected"':"")+">"+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>"+t.get("label")+"</div></li>"},"");case"listradio":var r=!1;return this.options.models.reduce(function(e,t){return r=t.get("selected")&&!r?' checked="checked"':"",e+='<li><input type="radio"'+r+"><div>"+t.get("label")+"</div></li>"},"");case"listcountry":var a=this.default,o=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"<option>"+(void 0!==o?o.label:"--")+"</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}}},convertDateFormat:function(e){return e=e.replace("D","ddd"),e=e.replace("d","DD"),e=e.replace("l","dddd"),e=e.replace("j","D"),e=e.replace("N",""),e=e.replace("S",""),e=e.replace("w","d"),e=e.replace("z",""),e=e.replace("W","W"),e=e.replace("M","MMM"),e=e.replace("F","MMMM"),e=e.replace("m","MM"),e=e.replace("n","M"),e=e.replace("t",""),e=e.replace("L",""),e=e.replace("o","YYYY"),e=e.replace("Y","YYYY"),e=e.replace("y","YY"),e=e.replace("a",""),e=e.replace("A",""),e=e.replace("B",""),e=e.replace("g",""),e=e.replace("G",""),e=e.replace("h",""),e=e.replace("H",""),e=e.replace("i",""),e=e.replace("s",""),e=e.replace("u",""),e=e.replace("v",""),e=e.replace("e",""),e=e.replace("I",""),e=e.replace("O",""),e=e.replace("P",""),e=e.replace("T",""),e=e.replace("Z",""),e=e.replace("c",""),e=e.replace("r",""),e=e.replace("u","")}})}),n("views/fields/preview/label",[],function(){return Marionette.ItemView.extend({tagName:"div",template:"#tmpl-nf-field-label",initialize:function(){},onRender:function(){},templateHelpers:function(){return{renderLabelClasses:function(){},maybeRenderHelp:function(){}}}})}),n("views/fields/fieldItem",["views/app/itemControls","views/fields/preview/element","views/fields/preview/label"],function(e,t,n){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 r=this.model.get("type");"phone"==r&&(r="tel"),"spam"==r&&(r="input"),"date"==r&&(r="input"),"confirm"==r&&(r="input"),"password"==r&&(r="input"),"passwordconfirm"==r&&(r="input"),"quantity"==r&&(r="number"),"terms"==r&&(r="listcheckbox"),"liststate"==r&&(r="listselect"),"listcountry"==r&&(r="listselect"),"listmultiselect"==r&&(r="listselect"),"save"==r&&(r="submit");var a=["html","hidden","note","recaptcha"],o=jQuery("#tmpl-nf-field-"+r).length;if(-1==a.indexOf(this.model.get("type"))&&o){this.previewElement.show(new t({model:this.model}));-1==["submit","save","hr"].indexOf(this.model.get("type"))&&this.previewLabel.show(new n({model:this.model})),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}))})},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(){
assets/js/min/builder.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"mappings":"","sources":["main.js"],"sourcesContent":["!function(){var e,t,n;!function(i){function r(e,t){return b.call(e,t)}function a(e,t){var n,i,r,a,o,l,s,c,d,h,u,g=t&&t.split(\"/\"),p=v.map,f=p&&p[\"*\"]||{};if(e&&\".\"===e.charAt(0))if(t){for(e=e.split(\"/\"),o=e.length-1,v.nodeIdCompat&&j.test(e[o])&&(e[o]=e[o].replace(j,\"\")),e=g.slice(0,g.length-1).concat(e),d=0;d<e.length;d+=1)if(\".\"===(u=e[d]))e.splice(d,1),d-=1;else if(\"..\"===u){if(1===d&&(\"..\"===e[2]||\"..\"===e[0]))break;d>0&&(e.splice(d-1,2),d-=2)}e=e.join(\"/\")}else 0===e.indexOf(\"./\")&&(e=e.substring(2));if((g||f)&&p){for(n=e.split(\"/\"),d=n.length;d>0;d-=1){if(i=n.slice(0,d).join(\"/\"),g)for(h=g.length;h>0;h-=1)if((r=p[g.slice(0,h).join(\"/\")])&&(r=r[i])){a=r,l=d;break}if(a)break;!s&&f&&f[i]&&(s=f[i],c=d)}!a&&s&&(a=s,l=c),a&&(n.splice(0,l,a),e=n.join(\"/\"))}return e}function o(e,t){return function(){var n=C.call(arguments,0);return\"string\"!=typeof n[0]&&1===n.length&&n.push(null),g.apply(i,n.concat([e,t]))}}function l(e){return function(t){return a(t,e)}}function s(e){return function(t){m[e]=t}}function c(e){if(r(y,e)){var t=y[e];delete y[e],w[e]=!0,u.apply(i,t)}if(!r(m,e)&&!r(w,e))throw new Error(\"No \"+e);return m[e]}function d(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 h(e){return function(){return v&&v.config&&v.config[e]||{}}}var u,g,p,f,m={},y={},v={},w={},b=Object.prototype.hasOwnProperty,C=[].slice,j=/\\.js$/;p=function(e,t){var n,i=d(e),r=i[0];return e=i[1],r&&(r=a(r,t),n=c(r)),r?e=n&&n.normalize?n.normalize(e,l(t)):a(e,t):(e=a(e,t),i=d(e),r=i[0],e=i[1],r&&(n=c(r))),{f:r?r+\"!\"+e:e,n:e,pr:r,p:n}},f={require:function(e){return o(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:\"\",exports:m[e],config:h(e)}}},u=function(e,t,n,a){var l,d,h,u,g,v,b=[],C=typeof n;if(a=a||e,\"undefined\"===C||\"function\"===C){for(t=!t.length&&n.length?[\"require\",\"exports\",\"module\"]:t,g=0;g<t.length;g+=1)if(u=p(t[g],a),\"require\"===(d=u.f))b[g]=f.require(e);else if(\"exports\"===d)b[g]=f.exports(e),v=!0;else if(\"module\"===d)l=b[g]=f.module(e);else if(r(m,d)||r(y,d)||r(w,d))b[g]=c(d);else{if(!u.p)throw new Error(e+\" missing \"+d);u.p.load(u.n,o(a,!0),s(d),{}),b[g]=m[d]}h=n?n.apply(m[e],b):void 0,e&&(l&&l.exports!==i&&l.exports!==m[e]?m[e]=l.exports:h===i&&v||(m[e]=h))}else e&&(m[e]=n)},e=t=g=function(e,t,n,r,a){if(\"string\"==typeof e)return f[e]?f[e](t):c(p(e,t).f);if(!e.splice){if(v=e,v.deps&&g(v.deps,v.callback),!t)return;t.splice?(e=t,t=n,n=null):e=i}return t=t||function(){},\"function\"==typeof n&&(n=r,r=a),r?u(i,e,t,n):setTimeout(function(){u(i,e,t,n)},4),g},g.config=function(e){return g(e)},e._defined=m,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=[]),r(m,e)||r(y,e)||(y[e]=[e,t,n])},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 var 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\"),n=t.get(\"settings\"),r=i.channel(\"views\").request(\"get:formTitle\");this.formTitle.show(new r({model:n})),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(),r=i-n;jQuery(e).height(r)},setBothGuttersFixed:function(e){e=e||this;var t=jQuery(e.gutterLeft.el).offset(),n=t.top,i=t.left;jQuery(e.gutterLeft.el).css({position:\"fixed\",left:i,top:n});var t=jQuery(e.gutterLeft.el).offset(),r=jQuery(e.gutterRight.el).offset(),a=r.top,o=r.left;jQuery(e.gutterRight.el).css({position:\"fixed\",left:o,top:a})},setBothGuttersAbsolute:function(e){e=e||this;var t=(jQuery(e.gutterLeft.el).offset(),jQuery(e.gutterRight.el).offset(),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),o=n.get(\"getFooterView\").call(n,t);this.header.show(a),this.content.show(r),this.footer.show(o)},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(){if(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 o=this,l=e.get(\"use_merge_tags\");\"object\"==typeof l&&(void 0!==l.exclude&&_.each(l.exclude,function(e){o.collection.remove(e)}),void 0!==l.include&&_.each(n.models,function(e){-1!=l.include.indexOf(e.get(\"id\"))&&o.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 o=i.channel(\"mergeTags\").request(\"get:collection\"),l=o.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){var 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(t=t||{},void 0!==t.model){var n=i.channel(\"app\").request(\"get:currentDomain\"),r=n.get(\"id\");i.channel(r).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 a=i.channel(\"app\").request(\"get:builderEl\");jQuery(a).addClass(\"nf-drawer-opened\").removeClass(\"nf-drawer-closed\");var o=i.channel(\"app\").request(\"get:drawerEl\");jQuery(o).css({right:\"0px\"});var l=this;this.hasFocus=!1,jQuery(\".nf-master-control\").css(\"z-index\",0),this.checkOpenDrawerPos=setInterval(function(){\"0px\"==jQuery(o).css(\"right\")&&(clearInterval(l.checkOpenDrawerPos),l.hasFocus||(l.focusFilter(),l.hasFocus=!0,i.channel(\"app\").request(\"update:currentDrawer\",e),jQuery(o).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).zIndex(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).zIndex(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\"),o=r.get(\"icon\"),l=i.channel(\"app\").request(\"get:template\",\"#tmpl-nf-drawer-field-type-button\"),s=l({id:n,nicename:a,icon:o,type:r,savedField:t.savedField}),c=document.createRange().createContextualFragment(s);e.appendChild(c)}),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(){if(\"\"!=this.label){return i.channel(\"app\").request(\"get:template\",\"#tmpl-nf-drawer-content-edit-setting-group-label\")(this)}return\"\"},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),\nthis.settingGroups.show(new e({collection:this.groupCollection,dataModel:this.dataModel}))},templateHelpers:function(){return{maybeRenderTitle:function(){if(void 0!==this.type){return i.channel(\"app\").request(\"get:template\",\"#tmpl-nf-drawer-content-edit-settings-title\")(this)}return\"\"},renderTypeNicename:function(){var e=i.channel(\"app\").request(\"get:currentDomain\"),t=e.get(\"id\");return i.channel(t).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\"),n=new jBox(\"Modal\",{content:t,zIndex:99999999,closeButton:\"box\",overlay:!0,width:600,repositionOnOpen:!0,reposition:!0});n.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)for(var n in t)t.hasOwnProperty(n)&&this.dataModel.on(\"change:\"+n,this.render,this);var r=this.model.get(\"remote\");if(r){if(void 0!==r.refresh||r.refresh){var a,o,l,s;a=document.createTextNode(this.model.get(\"label\")),o=document.createElement(\"span\"),o.classList.add(\"dashicons\",\"dashicons-update\"),l=document.createElement(\"a\"),l.classList.add(\"extra\"),l.appendChild(o),s=document.createElement(\"span\"),s.appendChild(a),s.appendChild(l),this.model.set(\"label\",s.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 in e)e.hasOwnProperty(t)&&this.dataModel.off(\"change:\"+t,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(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;\"'}}if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!=this.deps[t])return'style=\"display:none;\"';return\"\"},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(){if(!this.help)return\"\";var e,t,n,i,r;return e=document.createElement(\"div\"),e.innerHTML=this.help,t=document.createElement(\"div\"),t.classList.add(\"nf-help-text\"),t.appendChild(e),n=document.createElement(\"span\"),n.classList.add(\"dashicons\",\"dashicons-admin-comments\"),i=document.createElement(\"a\"),i.classList.add(\"nf-help\"),i.setAttribute(\"href\",\"#\"),i.setAttribute(\"tabindex\",\"-1\"),i.appendChild(n),r=document.createElement(\"span\"),r.appendChild(i),r.appendChild(t),r.innerHTML},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=0,r=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\"),r.value===e.get(\"key\")&&i.setAttribute(\"selected\",\"selected\"),t.appendChild(i),n+=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+\"'\"),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){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 o=i.channel(\"settings\").request(\"get:settingModel\",\"embed_form\");this.embedForm.show(new e({model:o,dataModel:n}));var l=n.get(\"public_link_key\");l||(l=i.channel(\"app\").request(\"generate:publicLinkKey\"));var s=nfAdmin.publicLinkStructure.replace(\"[FORM_ID]\",l);n.set(\"public_link\",s);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,o,l,s,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 var t=r;return new t(e)},getContentView:function(e){return new n(e)}},{id:\"viewChanges\",getHeaderView:function(e){return new l(e)},getContentView:function(e){return new o(e)}},{id:\"publicLink\",getHeaderView:function(e){return new c(e)},getContentView:function(e){return new s(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\"),t=e.get(\"id\"),n=i.channel(t).request(\"get:type\",this.type);return void 0!==n?n.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({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||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 var 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\"),t=e.get(\"id\"),n=i.channel(t).request(\"get:type\",this.type),r=n.get(\"nicename\");if(this.saved){r+=\" - \"+i.channel(t).request(\"get:type\",n.get(\"type\")).get(\"nicename\")}return r},renderSavedStar:function(){if(this.saved)var e=\"filled\";else var 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)}})}),\nn(\"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},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){return 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 var 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)}})}),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,o,l,s,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),a=_.first(r);t=a(t,i.channel(\"app\").request(\"get:formModel\"),!0);var o=i.channel(\"formContent\").request(\"get:viewFilters\"),r=_.without(o,void 0),a=_.first(r);return formContentView=a(),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 o},getMainContentView:function(){var e=i.channel(\"actions\").request(\"get:collection\");return new l({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||1==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)},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)var 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\"),o=_.without(a,void 0);if(r=_.first(o)(r),\"publish\"==e&&n.get(\"show_publish_options\")){i.channel(\"app\").request(\"open:drawer\",\"newForm\");var l=i.channel(\"app\").request(\"get:builderEl\");return jQuery(l).addClass(\"disable-main\"),!1}var s=i.channel(\"app\").request(\"get:formModel\"),c=JSON.parse(JSON.stringify(s));c.settings.formContentData=r;var d=s.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;var d=s.get(\"actions\").removedIDs;_.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});for(var h in 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=[];if(1e5<c.length&&(u=c.match(new RegExp(\".{1,100000}\",\"g\"))),1<u.length)this.saveChunkedForm(u,0,\"nf_batch_process\",e,n.get(\"id\"),!0);else{var g=this,p=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},function(t){p=t,g.handleFinalResponse(p,e)}).fail(function(t,n,i){g.handleFinalFailure(t,n,i,e)})}}else if(\"nf_preview_update\"===t){var g=this,p=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},function(t){p=t,g.handleFinalResponse(p,e)}).fail(function(t,n,i){g.handleFinalFailure(t,n,i,e)})}},saveChunkedForm:function(e,t,n,i,r,a){var o=e.length,l={action:n,batch_type:\"chunked_publish\",data:{new_publish:a,chunk_total:o,chunk_current:t,chunk:e[t],form_id:r},security:nfAdmin.batchNonce},s=this;jQuery.post(ajaxurl,l).then(function(a){try{var o=JSON.parse(a);\"success\"!==o.last_request||o.batch_complete?o.batch_complete&&s.handleFinalResponse(a,i):(console.log(\"Chunk \"+t+\" processed\"),s.saveChunkedForm(e,o.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),s.handleFinalFailure(e,t,n,i)})},handleFinalResponse:function(e,t){try{e=JSON.parse(e),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){if(\"preview\"==i)return void console.log(n);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\")},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){var t=i.channel(\"app\").request(\"get:domainCollection\"),n=t.get(\"preview\");if(e)var r=\"Preview Form\";else var r=\"Preview Changes\";n.set(\"nicename\",r)},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,i,r,a){var a=void 0!==a?a:{};void 0===r.dashicon&&(r.dashicon=\"admin-generic\");var o=new t({action:e,model:n,changes:i,label:r,data:a});return this.collection.add(o),o},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)}),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=/domain=\\\\d+/,n=window.location.toString(),r=n.replace(t,\"\");console.log(r)}})}),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\"),t=e.get(\"fields\");i.channel(\"app\").request(\"change:currentDomain\",{},t)},changeDomainActions:function(){var e=i.channel(\"app\").request(\"get:domainCollection\"),t=e.get(\"actions\");i.channel(\"app\").request(\"change:currentDomain\",{},t)},changeDomainSettings:function(){var e=i.channel(\"app\").request(\"get:domainCollection\"),t=e.get(\"settings\");i.channel(\"app\").request(\"change:currentDomain\",{},t)},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)}})}),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\"),o=a.where({model:n});_.each(o,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\"),o=a.where({model:n});_.each(o,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\"),o=a.where({model:n});_.each(o,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\"),r=n.fields,a=i.channel(\"fields\").request(\"get:collection\");_.each(r,function(e){var t=e.before;e.model.set(\"order\",t)}),a.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\"),a=r.where({model:n});_.each(a,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){var t=void 0!==t&&t;if(!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\"),o=n.get(a),r=r||null;r||(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 l=r,s={attr:a,before:o,after:l},c=i.channel(\"app\").request(\"get:currentDomain\"),d=(c.get(\"id\"),{object:n.get(\"objectType\"),label:n.get(\"label\"),change:\"Changed \"+t.get(\"label\")+\" from \"+o+\" to \"+l});i.channel(\"changes\").request(\"register:change\",\"changeSetting\",n,s,d)}})}),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)for(var n in t)t.hasOwnProperty(n)&&this.dataModel.on(\"change:\"+n,this.render,this);this.model.on(\"rerender\",this.render,this)},onBeforeDestroy:function(){var e=this.model.get(\"deps\");if(e)for(var t in e)e.hasOwnProperty(t)&&this.dataModel.off(\"change:\"+t,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;\"'}\nif(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!==this.deps[t])return'style=\"display:none;\"';return\"\"},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 var 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 void 0!==r&&null!==r&&e.target.value<r&&(t.set(\"value\",r),e.target.value=r),void 0!==a&&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\"),r=n.get(\"id\"),a=i.channel(r).request(\"get:type\",t.get(\"type\"));i.channel(\"app\").request(\"open:drawer\",\"editSettings\",{model:t,groupCollection:a.get(\"settingGroups\")})}},maybeDelete:function(e,t){this.deleting=!0;var n=t.get(\"id\"),i=t.get(\"objectType\"),r=[\"html\",\"submit\",\"hr\",\"recaptcha\",\"spam\",\"creditcard\",\"creditcardcvc\",\"creditcardexpiration\",\"creditcardfullname\",\"creditcardnumber\",\"creditcardzip\"];if(\"field\"!=i.toLowerCase())this.clickDelete(e,t);else if(\"tmp\"===n.toString().substring(0,3)||-1!=jQuery.inArray(t.get(\"type\"),r))this.clickDelete(e,t);else{var a=Backbone.Radio.channel(\"app\").request(\"get:formModel\"),o={action:\"nf_maybe_delete_field\",security:nfAdmin.ajaxNonce,formID:a.get(\"id\"),fieldKey:t.get(\"key\"),fieldID:n},l=this;jQuery.post(ajaxurl,o).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?(l.doDeleteFieldModal(e,t),!1):(l.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},o=i.channel(\"changes\").request(\"get:collection\"),l=o.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\"),c=s.get(\"id\");i.channel(c).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\"),a=r.get(\"id\");n.set(\"label\",n.get(\"label\")+\" Copy\",{silent:!0});var o=i.channel(a).request(\"get:tmpID\");n.set(\"id\",o),i.channel(a).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(a).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 var 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,o=i.channel(\"app\").request(\"get:formModel\"),l=o.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\"),n=this;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=jQuery(this.currentElement).caret(),r=i+t.get(\"tag\").length,a=void 0!==t.get(\"calcTag\")?t.get(\"calcTag\"):t.get(\"tag\");n=n.substr(0,i)+a+n.substr(i),jQuery(this.currentElement).val(n).caret(r).trigger(\"change\")}else if(\"rte\"==this.settingModel.get(\"type\"))jQuery(this.currentElement).summernote(\"insertText\",t.get(\"tag\"));else{var n=jQuery(this.currentElement).val(),i=jQuery(this.currentElement).caret(),r=i+t.get(\"tag\").length;n=n.substr(0,i)+t.get(\"tag\")+n.substr(i),jQuery(this.currentElement).val(n).caret(r).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\"),a=r.get(\"settings\").get(\"calculations\");_.each(a.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 var 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\"),o=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(o=e.get(\"eq\"))){var a=new RegExp(t,\"g\"),l=o.replace(a,n);a=new RegExp(i,\"g\"),l=l.replace(a,r),e.set(\"eq\",l)}}),!1}if(\"string\"==typeof o){var l=new RegExp(i,\"g\");newVal=o.replace(l,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,o=n.get(\"tag\").toLowerCase().indexOf(e.toLowerCase())>=0;return(!this.calc||-1==t.indexOf(n.get(\"tag\")))&&(a||o)},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,o,l,s){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});var 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 s;c.render();var d=new t(a),h=new r({collection:d}),u=new o({collection:n});c.getRegion(\"tags\").show(h),c.getRegion(\"sections\").show(u),c.getRegion(\"filter\").show(new l)},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 var 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 o=jQuery(\"#merge-tags-box\").outerHeight();jQuery(\"#nf-drawer\").css(\"padding-bottom\",o+\"px\");var l=jQuery(\".merge-tag-focus\").closest(\".nf-list-options-tbody\");if(0!=l.length){var s=l.offset().left-jQuery(window).scrollLeft();jQuery(\"#merge-tags-box\").css(\"left\",s)}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 var n=t.val();for(var r=i.channel(\"mergeTags\").request(\"get:old\"),a=e,o=i.channel(\"mergeTags\").request(\"get:caret\"),l=/{([a-zA-Z0-9]|:|_||-})*/g;match=l.exec(n);)if(r==match[0]){var s=n.slice(0,match.index)+a+n.slice(l.lastIndex);if(t.hasClass(\"note-editable\")){t.closest(\".nf-setting\").find(\".setting\").summernote(\"code\",s);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)var n=e.innerHTML;if(-1!=n.indexOf(a)){n=n.replace(/&nbsp;/g,\" \");var i=n.indexOf(a)+r.length;-1==o&&(o=n.indexOf(a)+1),o==i&&(d=c[0].childNodes[t])}}}),d||(d=c[0].childNodes[0]);var h=o-r.length+a.length,u=document.createRange(),g=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),g.removeAllRanges(),g.addRange(u)}else t.val(s),t.change(),t.caret(o-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 n=t.siblings(\".setting\").first(),r=n.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 o=t.closest(\".nf-setting, .nf-table-row\");if(0!=o.find(\".note-editor\").length?o.find(\".note-editor\").addClass(\"merge-tag-focus-overlay\"):o.addClass(\"merge-tag-focus-overlay\"),\"eq\"==jQuery(e.target).prev(\"textarea\").data(\"id\"))var l=!0;else var l=!1;i.channel(\"merge-tags\").request(\"update:taglist\",\"fields\",l),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){var n=n||\"setting\",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 var r=i.offset().top-jQuery(window).scrollTop(),a=i.outerHeight();var o=r+a,l=window.innerHeight,s=jQuery(\"#merge-tags-box\").outerHeight();o+s>l&&(o=r-s),0>o&&(o=r),jQuery(\"#merge-tags-box\").css(\"top\",o);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{var 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())}var u=jQuery(this).data(\"id\")},keyupCallback:function(e,t,n){var 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 var a=jQuery(this);var o=jQuery(this).data(\"id\");if(!o||\"eq\"!=o){if(\"rte\"==n){var l=a.summernote(\"createRange\");if(l)var s=l.so;else var s=0;a.closest(\".nf-setting\").find(\".setting\").summernote(\"saveRange\")}else var s=a.caret();if(i.channel(\"mergeTags\").request(\"set:caret\",s),\"rte\"==n)var c=a.summernote(\"code\").match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));else var c=a.val().match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));if(c=_.filter(c,function(e){return-1==e.indexOf(\"}\")}),0!==c.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=function(e){return r.linkButton(e)},o=function(e){return r.mediaButton(e)},l=this.mergeTags(),s=[[\"paragraphStyle\",[\"style\"]],[\"fontStyle\",[\"bold\",\"italic\",\"underline\",\"clear\"]],[\"lists\",[\"ul\",\"ol\"]],[\"paragraph\",[\"paragraph\"]],[\"customGroup\",[\"linkButton\",\"unlink\"]],[\"table\",[\"table\"]],[\"actions\",[\"undo\",\"redo\"]],[\"tools\",[\"mediaButton\",\"mergeTags\",\"codeview\"]]];jQuery(n.el).find(\"div.setting\").summernote({toolbar:s,buttons:{linkButton:a,mergeTags:l,mediaButton:o},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 o=jQuery(this).summernote(\"code\");r.updateDataModel(e,t,o),i.channel(\"summernote\").trigger(\"blur\",e,t,o)},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),o=n,l={attr:r,before:a,after:o},s={object:t.get(\"objectType\"),label:t.get(\"label\"),change:\"Changed \"+e.get(\"label\")+\" from \"+a+\" to \"+o};i.channel(\"changes\").request(\"register:change\",\"changeSetting\",t,l,s),t.set(e.get(\"name\"),o)},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){\nvar 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)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 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\"),o=jQuery(e.target).parent().find(\".link-new-window\");if(this.currentContext.invoke(\"editor.restoreRange\"),jQuery(e.target).hasClass(\"insert-link\")){var l=r.val(),s=a.val(),c=!!o.prop(\"checked\");0!=l.length&&0!=s.length&&this.currentContext.invoke(\"editor.createLink\",{text:l,url:s,isNewWindow:c})}r.val(\"\"),a.val(\"\"),o.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 o=!1;if(_.each(i[n.get(\"type\")],function(e,t){console.log(e+\":\"+n.get(t)),e!=n.get(t)&&(o=!0)}),o)return}var l=n.get(\"key\");switch(e.get(\"field_value_format\")){case\"key\":l=n.get(\"key\");break;case\"merge_tag\":default:l=\"{field:\"+n.get(\"key\")+\"}\"}a.push({label:n.get(\"label\"),value:l})}}),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 o=a.split(\":\");\"addField\"==o[0]&&(this.openDrawer=\"addField\",this.filterDrawer=o[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 o=\"\";_.each(i.fieldListSettings,function(i){if(a==i+\"-\"+t&&o!=t){var r=e.get(i+\"-\"+t);e.set(i+\"-\"+n,r),e.set(i+\"-\"+t,0),o=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){var r=(e.get(\"name\"),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(){if(!(jQuery('li a:contains(\"'+this.editFormText+'\")').length>0)){var e,t,n;e=document.createTextNode(this.editFormText),t=document.createElement(\"a\"),t.appendChild(e),n=document.createElement(\"li\"),n.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\"}},a={position:{x:\"center\",y:\"top\"},animation:{open:\"slide:top\",close:\"slide:left\"},autoClose:2e3,offset:{x:0,y:55}},o={attributes:{x:\"left\",y:\"bottom\"},autoClose:4e3};if(i.channel(\"app\").request(\"is:mobile\"))var l=a;else var l=o;l=jQuery.extend(l,r);var n=jQuery.extend(l,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)return void i.channel(\"fields\").request(\"add:stagedField\",t);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){var t=t||!1,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\")},o=this.collection.add(a);return t||i.channel(\"fields\").trigger(\"add:stagedField\",o),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=i.channel(\"fields\").request(\"get:tmpID\"),r={id:n,label:t.get(\"nicename\"),type:t.get(\"slug\")},a=i.channel(\"fields\").request(\"add\",r,!1),o={object:\"Field\",label:a.get(\"label\"),change:\"Added\",dashicon:\"plus-alt\"},l={collection:e};i.channel(\"changes\").request(\"register:change\",\"addObject\",a,null,o,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),a=r.get(\"nicename\");this.currentHelper=t.helper,jQuery(t.helper).html(a+'<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 o=i.channel(\"app\").request(\"get:stagedFieldsEl\");jQuery(o).hasClass(\"ui-sortable\")&&jQuery(o).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}]),o=i.channel(\"app\").request(\"update:hiddenFields\")||[];o=o.concat([\"product\",\"quantity\",\"shipping\",\"total\"]);for(var l=a.models[0].get(\"fieldTypes\").length-1;l>=0;l--){-1<o.indexOf(a.models[0].get(\"fieldTypes\")[l])&&a.models[0].get(\"fieldTypes\").splice(l,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)?n=!0:-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\"),\"date\"==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\"),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(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),n=t.filter(function(e){return 0==e.indexOf(\"taxonomy_term_\")&&this[e]}.bind(this));return 0==n.length?\"(No available terms selected)\":n.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 i=this.options.models.filter(function(e){return e.get(\"selected\")});return 0==i.length&&(i=this.options.models),\"<option>\"+i[0].get(\"label\")+\"</option>\";case\"listmultiselect\":return this.options.models.reduce(function(e,t){return e+=\"<option\"+(t.get(\"selected\")?' selected=\"selected\"':\"\")+\">\"+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>\"+t.get(\"label\")+\"</div></li>\"},\"\");case\"listradio\":var r=!1;return this.options.models.reduce(function(e,t){return r=t.get(\"selected\")&&!r?' checked=\"checked\"':\"\",e+='<li><input type=\"radio\"'+r+\"><div>\"+t.get(\"label\")+\"</div></li>\"},\"\");case\"listcountry\":var a=this.default,o=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\"<option>\"+(void 0!==o?o.label:\"--\")+\"</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}}},convertDateFormat:function(e){return e=e.replace(\"D\",\"ddd\"),e=e.replace(\"d\",\"DD\"),e=e.replace(\"l\",\"dddd\"),e=e.replace(\"j\",\"D\"),e=e.replace(\"N\",\"\"),e=e.replace(\"S\",\"\"),e=e.replace(\"w\",\"d\"),e=e.replace(\"z\",\"\"),e=e.replace(\"W\",\"W\"),e=e.replace(\"M\",\"MMM\"),e=e.replace(\"F\",\"MMMM\"),e=e.replace(\"m\",\"MM\"),e=e.replace(\"n\",\"M\"),e=e.replace(\"t\",\"\"),e=e.replace(\"L\",\"\"),e=e.replace(\"o\",\"YYYY\"),e=e.replace(\"Y\",\"YYYY\"),e=e.replace(\"y\",\"YY\"),e=e.replace(\"a\",\"\"),e=e.replace(\"A\",\"\"),e=e.replace(\"B\",\"\"),e=e.replace(\"g\",\"\"),e=e.replace(\"G\",\"\"),e=e.replace(\"h\",\"\"),e=e.replace(\"H\",\"\"),e=e.replace(\"i\",\"\"),e=e.replace(\"s\",\"\"),e=e.replace(\"u\",\"\"),e=e.replace(\"v\",\"\"),e=e.replace(\"e\",\"\"),e=e.replace(\"I\",\"\"),e=e.replace(\"O\",\"\"),e=e.replace(\"P\",\"\"),e=e.replace(\"T\",\"\"),e=e.replace(\"Z\",\"\"),e=e.replace(\"c\",\"\"),e=e.replace(\"r\",\"\"),e=e.replace(\"u\",\"\")}})}),n(\"views/fields/preview/label\",[],function(){return Marionette.ItemView.extend({tagName:\"div\",template:\"#tmpl-nf-field-label\",initialize:function(){},onRender:function(){},templateHelpers:function(){return{renderLabelClasses:function(){},maybeRenderHelp:function(){}}}})}),n(\"views/fields/fieldItem\",[\"views/app/itemControls\",\"views/fields/preview/element\",\"views/fields/preview/label\"],function(e,t,n){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 r=this.model.get(\"type\");\"phone\"==r&&(r=\"tel\"),\"spam\"==r&&(r=\"input\"),\"date\"==r&&(r=\"input\"),\"confirm\"==r&&(r=\"input\"),\"password\"==r&&(r=\"input\"),\"passwordconfirm\"==r&&(r=\"input\"),\"quantity\"==r&&(r=\"number\"),\"terms\"==r&&(r=\"listcheckbox\"),\"liststate\"==r&&(r=\"listselect\"),\"listcountry\"==r&&(r=\"listselect\"),\"listmultiselect\"==r&&(r=\"listselect\"),\"save\"==r&&(r=\"submit\");var a=[\"html\",\"hidden\",\"note\",\"recaptcha\"],o=jQuery(\"#tmpl-nf-field-\"+r).length;if(-1==a.indexOf(this.model.get(\"type\"))&&o){this.previewElement.show(new t({model:this.model}));-1==[\"submit\",\"save\",\"hr\"].indexOf(this.model.get(\"type\"))&&this.previewLabel.show(new n({model:this.model})),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}))})},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(){\nreturn 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\"),t.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)},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(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\"),o=i.channel(\"fields\").request(\"get:sortableEl\");if(jQuery(o).hasClass(\"ui-sortable\"))var l=jQuery(o).sortable(\"toArray\");else var l=[\"nf-staged-fields-drag\"];var s=l.indexOf(\"nf-staged-fields-drag\");_.each(a.models,function(e,t){var n=r.addField(e.get(\"slug\"));l.splice(s+t,0,n)});var 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()}},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),o={object:\"Field\",label:a.get(\"label\"),change:\"Added\",dashicon:\"plus-alt\"},l={collection:i.channel(\"fields\").request(\"get:collection\")};return i.channel(\"changes\").request(\"register:change\",\"addObject\",a,null,o,l),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),o=(a.get(\"nicename\"),i.channel(\"fields\").request(\"get:sortableEl\"));jQuery(o).width();this.currentHelper=n.helper;var l=new e({label:a.get(\"nicename\"),type:r}),s=new t({model:l}),c=s.render(),d=c.$el[0];jQuery(n.helper).html(d.outerHTML)}else if(jQuery(n.item).hasClass(\"nf-stage\")){var o=i.channel(\"fields\").request(\"get:sortableEl\");jQuery(o).hasClass(\"ui-sortable\")&&jQuery(o).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\")){var 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\"))var t=$parentHelper.clone();else var 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),o={fields:[]};_.each(n.models,function(e){var t=e._previousAttributes.order,n=e.get(\"order\");o.fields.push({model:e,attr:\"order\",before:t,after:n})});var l={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,l,o)}}})}),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 o=new t(e)}else var o=e;if(jQuery.isNumeric(o.get(\"type\"))){var l=i.channel(\"fields\").request(\"get:type\",o.get(\"type\"));o.set(\"type\",l.get(\"parentType\"))}var s=this.collection.add(o,{silent:n});return i.channel(\"app\").request(\"update:setting\",\"clean\",!1),i.channel(\"fields\").trigger(\"add:field\",o),r&&i.channel(\"fields\").trigger(\"render:newField\",s,a),\"duplicate\"==a&&i.channel(\"fields\").trigger(\"render:duplicateField\",s,a),i.channel(\"fields\").trigger(\"after:addField\",o),o},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\")){var e=e||jQuery(r).sortable(\"toArray\");_.each(this.collection.models,function(t){var n=(t.get(\"order\"),t.get(\"id\"));if(jQuery.isNumeric(n))var i=\"field-\"+n;else var 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,o,l=i.channel(\"fields\").request(\"get:collection\");return n=document.createElement(\"option\"),n.value=\"\",n.label=\"--\",n.innerHTML=\"--\",r=document.createElement(\"select\"),r.classList.add(\"setting\"),r.setAttribute(\"data-id\",e),r.appendChild(n),l.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)}),o=document.createElement(\"label\"),o.classList.add(\"nf-select\"),o.appendChild(r),a=document.createElement(\"div\"),a.style.bottom=\"6px\",o.appendChild(a),o.innerHTML},renderNonSaveFieldSelect:function(e,t){var n,r,a,o,l=i.channel(\"fields\").request(\"get:collection\");n=document.createElement(\"option\"),n.value=\"\",n.label=\"--\",n.innerHTML=\"--\",r=document.createElement(\"select\"),r.classList.add(\"setting\"),r.setAttribute(\"data-id\",e),r.appendChild(n);var s=[\"html\",\"submit\",\"hr\",\"recaptcha\",\"spam\",\"creditcard\",\"creditcardcvc\",\"creditcardexpiration\",\"creditcardfullname\",\"creditcardnumber\",\"creditcardzip\"];return l.each(function(e){if(-1!==jQuery.inArray(e.get(\"type\"),s))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)}),o=document.createElement(\"label\"),o.classList.add(\"nf-select\"),o.appendChild(r),a=document.createElement(\"div\"),a.style.bottom=\"6px\",o.appendChild(a),o.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}),t.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)for(var a in r)r.hasOwnProperty(a)&&this.dataModel.on(\"change:\"+a,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 in e)e.hasOwnProperty(t)&&this.dataModel.off(\"change:\"+t,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(){if(\"Field\"==e.dataModel.get(\"objectType\")&&-1!==e.dataModel.get(\"type\").indexOf(\"list\")){var t,n,i,r,a;t=document.createTextNode(nfi18n.valueChars),n=document.createElement(\"div\"),n.classList.add(\"nf-help-text\"),n.appendChild(t),i=document.createElement(\"span\"),i.classList.add(\"dashicons\",\"dashicons-admin-comments\"),r=document.createElement(\"a\"),r.classList.add(\"nf-help\"),r.setAttribute(\"href\",\"#\"),r.setAttribute(\"tabindex\",\"-1\"),r.appendChild(i),a=document.createElement(\"span\"),a.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)}var o,l,s;return l=document.createElement(\"div\"),o=document.createElement(\"span\"),o.appendChild(l),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\"),n.appendChild(t),o.appendChild(n)}),s=document.createElement(\"div\"),o.appendChild(s),o.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(){if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!==this.deps[t])return'style=\"display:none;\"';return\"\"},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:\"-\"}),o=n[2]||\"\";r=r.trimLeft().trimRight(),a=a.trimLeft().trimRight(),o=o.trimLeft().trimRight();var l=e.data.view.collection.add({label:n[0],value:a,calc:o}),r={object:\"field\",label:n[0],change:\"Option Added\",dashicon:\"plus-alt\"};i.channel(\"changes\").request(\"register:change\",\"addListOption\",l,null,r),i.channel(\"option-repeater-\"+e.data.view.model.get(\"name\")).trigger(\"add:option\",l),i.channel(\"option-repeater\").trigger(\"add:option\",l),i.channel(\"app\").trigger(\"update:setting\",l)},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 o=jQuery(e.target).data(\"id\");if(\"selected\"==o)if(jQuery(e.target).prop(\"checked\"))var l=1;else var l=0;else var l=jQuery(e.target).val();var s=t.get(o);t.set(o,l),this.triggerDataModel(t,n);var c=l,d={attr:o,before:s,after:c},h={object:n.get(\"objectType\"),label:n.get(\"label\"),change:\"Option \"+t.get(\"label\")+\" \"+o+\" changed from \"+s+\" 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-\"+o).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 o=new e(r);t.add(o);var l={object:n.get(\"objectType\"),label:n.get(\"label\"),change:\"Option Added\",dashicon:\"plus-alt\"};i.channel(\"changes\").request(\"register:change\",\"addListOption\",o,null,l),void 0!==t.settingModel&&i.channel(\"option-repeater-\"+t.settingModel.get(\"name\")).trigger(\"add:option\",o),i.channel(\"option-repeater\").trigger(\"add:option\",o),i.channel(\"option-repeater\").trigger(\"added:option\",t),this.triggerDataModel(o,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\"},o={collection:t};i.channel(\"changes\").request(\"register:change\",\"removeListOption\",r,null,a,o);var l=i.channel(\"changes\").request(\"get:collection\"),s=l.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\")}),o={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;o.objModels.push({model:i,attr:\"order\",before:r,after:a})}),n.collection.sort({silent:!0});var l={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,l,o),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}),i.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(),o=jQuery(a[0]).find('[data-id=\"value\"]'),l=jQuery(a[0]).find('[data-id=\"image_id\"]'),s=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(),o.val(e.filename).change(),s.val(e.title).change(),l.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,o,l=i.channel(\"fields\").request(\"get:collection\");return n=document.createElement(\"option\"),n.value=\"\",n.image=\"\",n.innerHTML=\"--\",r=document.createElement(\"select\"),r.classList.add(\"setting\"),r.setAttribute(\"data-id\",e),r.appendChild(n),l.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)}),o=document.createElement(\"image\"),o.classList.add(\"nf-select\"),o.appendChild(r),a=document.createElement(\"div\"),a.style.bottom=\"6px\",o.appendChild(a),o.innerHTML},renderNonSaveFieldSelect:function(e,t){var n,r,a,o,l=i.channel(\"fields\").request(\"get:collection\");n=document.createElement(\"option\"),n.value=\"\",n.image=\"\",n.innerHTML=\"--\",r=document.createElement(\"select\"),r.classList.add(\"setting\"),r.setAttribute(\"data-id\",e),r.appendChild(n);var s=[\"html\",\"submit\",\"hr\",\"recaptcha\",\"spam\",\"creditcard\",\"creditcardcvc\",\"creditcardexpiration\",\"creditcardfullname\",\"creditcardnumber\",\"creditcardzip\"];return l.each(function(e){if(-1!==jQuery.inArray(e.get(\"type\"),s))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)}),o=document.createElement(\"image\"),o.classList.add(\"nf-select\"),o.appendChild(r),a=document.createElement(\"div\"),a.style.bottom=\"6px\",o.appendChild(a),o.innerHTML},renderOptions:function(t,n){if(void 0!==e.options.columns[t]){\nvar 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}),t.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)for(var a in r)r.hasOwnProperty(a)&&this.dataModel.on(\"change:\"+a,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 in e)e.hasOwnProperty(t)&&this.dataModel.off(\"change:\"+t,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(){if(\"Field\"==e.dataModel.get(\"objectType\")&&-1!==e.dataModel.get(\"type\").indexOf(\"list\")){var t,n,i,r,a;t=document.createTextNode(nfi18n.valueChars),n=document.createElement(\"div\"),n.classList.add(\"nf-help-text\"),n.appendChild(t),i=document.createElement(\"span\"),i.classList.add(\"dashicons\",\"dashicons-admin-comments\"),r=document.createElement(\"a\"),r.classList.add(\"nf-help\"),r.setAttribute(\"href\",\"#\"),r.setAttribute(\"tabindex\",\"-1\"),r.appendChild(i),a=document.createElement(\"span\"),a.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)}var o,l,s;return l=document.createElement(\"div\"),o=document.createElement(\"span\"),o.appendChild(l),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\"),n.appendChild(t),o.appendChild(n)}),s=document.createElement(\"div\"),o.appendChild(s),o.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(){if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!==this.deps[t])return'style=\"display:none;\"';return\"\"},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:\"-\"}),o=n[2]||\"\";r=r.trimLeft().trimRight(),a=a.trimLeft().trimRight(),o=o.trimLeft().trimRight();var l=e.data.view.collection.add({image:n[0],value:a,calc:o}),r={object:\"field\",image:n[0],change:\"Option Added\",dashicon:\"plus-alt\"};i.channel(\"changes\").request(\"register:change\",\"addListOption\",l,null,r),i.channel(\"image-option-repeater-\"+e.data.view.model.get(\"name\")).trigger(\"add:option\",l),i.channel(\"image-option-repeater\").trigger(\"add:option\",l),i.channel(\"app\").trigger(\"update:setting\",l)},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 o=jQuery(e.target).data(\"id\");if(\"selected\"==o)if(jQuery(e.target).prop(\"checked\"))var l=1;else var l=0;else var l=jQuery(e.target).val();var s=t.get(o);t.set(o,l),this.triggerDataModel(t,n);var c=l,d={attr:o,before:s,after:c},h={object:n.get(\"objectType\"),label:n.get(\"label\"),change:\"Option \"+t.get(\"label\")+\" \"+o+\" changed from \"+s+\" 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-\"+o).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 o=new e(r);t.add(o);var l={object:n.get(\"objectType\"),image:n.get(\"image\"),change:\"Option Added\",dashicon:\"plus-alt\"};i.channel(\"changes\").request(\"register:change\",\"addListOption\",o,null,l),void 0!==t.settingModel&&i.channel(\"image-option-repeater-\"+t.settingModel.get(\"name\")).trigger(\"add:option\",o),i.channel(\"image-option-repeater\").trigger(\"add:option\",o),i.channel(\"image-option-repeater\").trigger(\"added:option\",t),this.triggerDataModel(o,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\"},o={collection:t};i.channel(\"changes\").request(\"register:change\",\"removeListOption\",r,null,a,o);var l=i.channel(\"changes\").request(\"get:collection\"),s=l.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\")}),o={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;o.objModels.push({model:i,attr:\"order\",before:r,after:a})}),n.collection.sort({silent:!0});var l={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,l,o),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}),i.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\"),o=/[^0-9a-zA-Z _@.-]/g;a=a.replace(o,\"\"),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}),n.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,n=t.valueOf(),i=this.slugify(e.get(\"type\")+\"_\"+n);e.set(\"key\",i,{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,n=t.valueOf(),i=this.slugify(e.get(\"label\")+\"_\"+n);-1==i.indexOf(\"_\")&&(i=\"field_\"+i),e.set(\"key\",i)}},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,o=e;return _.each(r.models,function(n){t!=n&&o==n.get(\"key\")&&(o=e+\"_\"+a,a++)}),e=o},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),r=n.attributes;r.saved=!0,delete r.jBox,delete r.editActive,delete r.created_at,delete r.order,delete r.id,delete r.formID,delete r.parent_id;var a=i.channel(\"fields\").request(\"get:type\",r.type),o=_.clone(a.attributes),l=jQuery(e.target).parent().parent().find(\"input\").val();console.log(l),o.nicename=l,r.label=l,r.nicename=l,t.set(\"addSavedLoading\",!0);var s=JSON.stringify(r);jQuery.post(ajaxurl,{action:\"nf_create_saved_field\",field:s,security:nfAdmin.ajaxNonce},function(e){e=JSON.parse(e),o.id=e.data.id,o.nicename=l,o.settingDefaults=r;var n=i.channel(\"fields\").request(\"get:typeCollection\");n.add(o);i.channel(\"fields\").request(\"get:typeSections\").get(\"saved\").get(\"fieldTypes\").push(o.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){flatpickr(jQuery(n.el).find(\".setting\")[0])}})}),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/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 var 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 o=[],l=i.channel(\"actions\").request(\"get:availableActions\");_.each(this.filterCollection(t,l),function(e){o.push(e)});var s=new e(r);s.slug=\"installed\",s.nicename=\"Installed\";var c=new e(o);c.slug=\"available\",c.nicename=\"Available\",i.channel(\"drawer\").trigger(\"filter:actionTypes\",s,c),n.addObject&&0<s.length&&(i.channel(\"actions\").request(\"add:actionType\",s.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)?n=!0:-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){var 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,n=\"{field:\"+e.get(\"key\")+\"}\";_.each(this.attributes,function(e,i){if(_.isString(e))this.set(i,e.replace(n,\"\"));else if(_.isArray(e))_.each(e,function(r,a){_.isString(r)?console.log(\"string replace\"):_.isArray(r)?console.log(\"array search\"):_.isObject(r)&&(t=_.mapObject(r,function(t,i){return _.isString(t)&&-1!=t.indexOf(n)&&e.splice(a,1),t}),this.set(i,e))},this);else if(e instanceof Backbone.Collection){var r=e.filter(function(e){return _.every(e.attributes,function(e){return!_.isString(e)||-1==e.indexOf(n)})});this.set(i,r)}},this)}})}),n(\"controllers/actions/collectPaymentFields\",[],function(){return Marionette.Object.extend({initialize:function(){\nthis.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.replace(\"{field:\",\"\"),a=a.replace(\"}\",\"\");var o=i.channel(\"fields\").request(\"get:field\",a);void 0!==o&&void 0===_.findWhere(r,{value:t.get(\"payment_total\")})&&r.push({label:o.get(\"label\"),value:\"{field:\"+o.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){if(\"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 o=t.get(\"name\");t.set(\"name\",e,{silent:n}),i.channel(\"calcs\").trigger(\"update:calcName\",t,o),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 o=t.collection;a=a.map(function(e){var a=e.replace(\"}\",\"\").replace(\"{calc:\",\"\"),l=o.findWhere({name:a});a==t.get(\"name\")?(n.selfRef=\"A calculation can't reference itself!\",i=!0):l&&l.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/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,o,l,s,c,d,h,u,g,p,f,m,y,v,w,b,C,j,k,M,T,x,S,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,oe,le,se,ce,de,he,ue,ge,pe,fe,me,ye,ve,we,be,Ce,je,ke,Me,Te,xe,Se,Fe,Qe,_e,qe,De,Oe,Ae,Ee,Le,Re,Ve){return Marionette.Object.extend({initialize:function(){new z,new B,new f,new e,new t,new n,new i,new a,new s,new c,new d,new h,new u,new g,new m,new y,new v,new x,new _,new q,new D,new O,new A,new E,new $,new L,new R,new V,new N,new o,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 oe,new le,new se,new ce,new de,new he,new ue,new ge,new pe,new fe,new me,new xe,new Se,new Qe,new qe,new De,new ye,new ve,new we,new be,new Ce,new je,new ke,new Me,new Te,new Fe,new _e,new Oe,new Ee,new Ve,new Ae,new Le,new Re,new r,new te,new l,new S,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){var e=t.template(e);return 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(){})}();"],"file":"builder.js"}
1
+ {"version":3,"names":[],"mappings":"","sources":["main.js"],"sourcesContent":["!function(){var e,t,n;!function(i){function r(e,t){return b.call(e,t)}function a(e,t){var n,i,r,a,o,l,s,c,d,h,u,g=t&&t.split(\"/\"),p=v.map,f=p&&p[\"*\"]||{};if(e&&\".\"===e.charAt(0))if(t){for(e=e.split(\"/\"),o=e.length-1,v.nodeIdCompat&&j.test(e[o])&&(e[o]=e[o].replace(j,\"\")),e=g.slice(0,g.length-1).concat(e),d=0;d<e.length;d+=1)if(\".\"===(u=e[d]))e.splice(d,1),d-=1;else if(\"..\"===u){if(1===d&&(\"..\"===e[2]||\"..\"===e[0]))break;d>0&&(e.splice(d-1,2),d-=2)}e=e.join(\"/\")}else 0===e.indexOf(\"./\")&&(e=e.substring(2));if((g||f)&&p){for(n=e.split(\"/\"),d=n.length;d>0;d-=1){if(i=n.slice(0,d).join(\"/\"),g)for(h=g.length;h>0;h-=1)if((r=p[g.slice(0,h).join(\"/\")])&&(r=r[i])){a=r,l=d;break}if(a)break;!s&&f&&f[i]&&(s=f[i],c=d)}!a&&s&&(a=s,l=c),a&&(n.splice(0,l,a),e=n.join(\"/\"))}return e}function o(e,t){return function(){var n=C.call(arguments,0);return\"string\"!=typeof n[0]&&1===n.length&&n.push(null),g.apply(i,n.concat([e,t]))}}function l(e){return function(t){return a(t,e)}}function s(e){return function(t){m[e]=t}}function c(e){if(r(y,e)){var t=y[e];delete y[e],w[e]=!0,u.apply(i,t)}if(!r(m,e)&&!r(w,e))throw new Error(\"No \"+e);return m[e]}function d(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 h(e){return function(){return v&&v.config&&v.config[e]||{}}}var u,g,p,f,m={},y={},v={},w={},b=Object.prototype.hasOwnProperty,C=[].slice,j=/\\.js$/;p=function(e,t){var n,i=d(e),r=i[0];return e=i[1],r&&(r=a(r,t),n=c(r)),r?e=n&&n.normalize?n.normalize(e,l(t)):a(e,t):(e=a(e,t),i=d(e),r=i[0],e=i[1],r&&(n=c(r))),{f:r?r+\"!\"+e:e,n:e,pr:r,p:n}},f={require:function(e){return o(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:\"\",exports:m[e],config:h(e)}}},u=function(e,t,n,a){var l,d,h,u,g,v,b=[],C=typeof n;if(a=a||e,\"undefined\"===C||\"function\"===C){for(t=!t.length&&n.length?[\"require\",\"exports\",\"module\"]:t,g=0;g<t.length;g+=1)if(u=p(t[g],a),\"require\"===(d=u.f))b[g]=f.require(e);else if(\"exports\"===d)b[g]=f.exports(e),v=!0;else if(\"module\"===d)l=b[g]=f.module(e);else if(r(m,d)||r(y,d)||r(w,d))b[g]=c(d);else{if(!u.p)throw new Error(e+\" missing \"+d);u.p.load(u.n,o(a,!0),s(d),{}),b[g]=m[d]}h=n?n.apply(m[e],b):void 0,e&&(l&&l.exports!==i&&l.exports!==m[e]?m[e]=l.exports:h===i&&v||(m[e]=h))}else e&&(m[e]=n)},e=t=g=function(e,t,n,r,a){if(\"string\"==typeof e)return f[e]?f[e](t):c(p(e,t).f);if(!e.splice){if(v=e,v.deps&&g(v.deps,v.callback),!t)return;t.splice?(e=t,t=n,n=null):e=i}return t=t||function(){},\"function\"==typeof n&&(n=r,r=a),r?u(i,e,t,n):setTimeout(function(){u(i,e,t,n)},4),g},g.config=function(e){return g(e)},e._defined=m,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=[]),r(m,e)||r(y,e)||(y[e]=[e,t,n])},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 var 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\"),n=t.get(\"settings\"),r=i.channel(\"views\").request(\"get:formTitle\");this.formTitle.show(new r({model:n})),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(),r=i-n;jQuery(e).height(r)},setBothGuttersFixed:function(e){e=e||this;var t=jQuery(e.gutterLeft.el).offset(),n=t.top,i=t.left;jQuery(e.gutterLeft.el).css({position:\"fixed\",left:i,top:n});var t=jQuery(e.gutterLeft.el).offset(),r=jQuery(e.gutterRight.el).offset(),a=r.top,o=r.left;jQuery(e.gutterRight.el).css({position:\"fixed\",left:o,top:a})},setBothGuttersAbsolute:function(e){e=e||this;var t=(jQuery(e.gutterLeft.el).offset(),jQuery(e.gutterRight.el).offset(),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),o=n.get(\"getFooterView\").call(n,t);this.header.show(a),this.content.show(r),this.footer.show(o)},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(){if(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 o=this,l=e.get(\"use_merge_tags\");\"object\"==typeof l&&(void 0!==l.exclude&&_.each(l.exclude,function(e){o.collection.remove(e)}),void 0!==l.include&&_.each(n.models,function(e){-1!=l.include.indexOf(e.get(\"id\"))&&o.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 o=i.channel(\"mergeTags\").request(\"get:collection\"),l=o.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){var 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(t=t||{},void 0!==t.model){var n=i.channel(\"app\").request(\"get:currentDomain\"),r=n.get(\"id\");i.channel(r).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 a=i.channel(\"app\").request(\"get:builderEl\");jQuery(a).addClass(\"nf-drawer-opened\").removeClass(\"nf-drawer-closed\");var o=i.channel(\"app\").request(\"get:drawerEl\");jQuery(o).css({right:\"0px\"});var l=this;this.hasFocus=!1,jQuery(\".nf-master-control\").css(\"z-index\",0),this.checkOpenDrawerPos=setInterval(function(){\"0px\"==jQuery(o).css(\"right\")&&(clearInterval(l.checkOpenDrawerPos),l.hasFocus||(l.focusFilter(),l.hasFocus=!0,i.channel(\"app\").request(\"update:currentDrawer\",e),jQuery(o).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\"),o=r.get(\"icon\"),l=i.channel(\"app\").request(\"get:template\",\"#tmpl-nf-drawer-field-type-button\"),s=l({id:n,nicename:a,icon:o,type:r,savedField:t.savedField}),c=document.createRange().createContextualFragment(s);e.appendChild(c)}),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(){if(\"\"!=this.label){return i.channel(\"app\").request(\"get:template\",\"#tmpl-nf-drawer-content-edit-setting-group-label\")(this)}return\"\"},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})\n;this.settingTitle.show(n),this.settingGroups.show(new e({collection:this.groupCollection,dataModel:this.dataModel}))},templateHelpers:function(){return{maybeRenderTitle:function(){if(void 0!==this.type){return i.channel(\"app\").request(\"get:template\",\"#tmpl-nf-drawer-content-edit-settings-title\")(this)}return\"\"},renderTypeNicename:function(){var e=i.channel(\"app\").request(\"get:currentDomain\"),t=e.get(\"id\");return i.channel(t).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\"),n=new jBox(\"Modal\",{content:t,zIndex:99999999,closeButton:\"box\",overlay:!0,width:600,repositionOnOpen:!0,reposition:!0});n.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)for(var n in t)t.hasOwnProperty(n)&&this.dataModel.on(\"change:\"+n,this.render,this);var r=this.model.get(\"remote\");if(r){if(void 0!==r.refresh||r.refresh){var a,o,l,s;a=document.createTextNode(this.model.get(\"label\")),o=document.createElement(\"span\"),o.classList.add(\"dashicons\",\"dashicons-update\"),l=document.createElement(\"a\"),l.classList.add(\"extra\"),l.appendChild(o),s=document.createElement(\"span\"),s.appendChild(a),s.appendChild(l),this.model.set(\"label\",s.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 in e)e.hasOwnProperty(t)&&this.dataModel.off(\"change:\"+t,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(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;\"'}}if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!=this.deps[t])return'style=\"display:none;\"';return\"\"},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(){if(!this.help)return\"\";var e,t,n,i,r;return e=document.createElement(\"div\"),e.innerHTML=this.help,t=document.createElement(\"div\"),t.classList.add(\"nf-help-text\"),t.appendChild(e),n=document.createElement(\"span\"),n.classList.add(\"dashicons\",\"dashicons-admin-comments\"),i=document.createElement(\"a\"),i.classList.add(\"nf-help\"),i.setAttribute(\"href\",\"#\"),i.setAttribute(\"tabindex\",\"-1\"),i.appendChild(n),r=document.createElement(\"span\"),r.appendChild(i),r.appendChild(t),r.innerHTML},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=0,r=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\"),r.value===e.get(\"key\")&&i.setAttribute(\"selected\",\"selected\"),t.appendChild(i),n+=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+\"'\"),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){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 o=i.channel(\"settings\").request(\"get:settingModel\",\"embed_form\");this.embedForm.show(new e({model:o,dataModel:n}));var l=n.get(\"public_link_key\");l||(l=i.channel(\"app\").request(\"generate:publicLinkKey\"));var s=nfAdmin.publicLinkStructure.replace(\"[FORM_ID]\",l);n.set(\"public_link\",s);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,o,l,s,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 var t=r;return new t(e)},getContentView:function(e){return new n(e)}},{id:\"viewChanges\",getHeaderView:function(e){return new l(e)},getContentView:function(e){return new o(e)}},{id:\"publicLink\",getHeaderView:function(e){return new c(e)},getContentView:function(e){return new s(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\"),t=e.get(\"id\"),n=i.channel(t).request(\"get:type\",this.type);return void 0!==n?n.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({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||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 var 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\"),t=e.get(\"id\"),n=i.channel(t).request(\"get:type\",this.type),r=n.get(\"nicename\");if(this.saved){r+=\" - \"+i.channel(t).request(\"get:type\",n.get(\"type\")).get(\"nicename\")}return r},renderSavedStar:function(){if(this.saved)var e=\"filled\";else var 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)}})}),\nn(\"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},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){return 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 var 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)}})}),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,o,l,s,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),a=_.first(r);t=a(t,i.channel(\"app\").request(\"get:formModel\"),!0);var o=i.channel(\"formContent\").request(\"get:viewFilters\"),r=_.without(o,void 0),a=_.first(r);return formContentView=a(),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 o},getMainContentView:function(){var e=i.channel(\"actions\").request(\"get:collection\");return new l({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||1==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)},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)var 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\"),o=_.without(a,void 0);if(r=_.first(o)(r),\"publish\"==e&&n.get(\"show_publish_options\")){i.channel(\"app\").request(\"open:drawer\",\"newForm\");var l=i.channel(\"app\").request(\"get:builderEl\");return jQuery(l).addClass(\"disable-main\"),!1}var s=i.channel(\"app\").request(\"get:formModel\"),c=JSON.parse(JSON.stringify(s));c.settings.formContentData=r;var d=s.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;var d=s.get(\"actions\").removedIDs;_.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});for(var h in 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=[];if(1e5<c.length&&(u=c.match(new RegExp(\".{1,100000}\",\"g\"))),1<u.length)this.saveChunkedForm(u,0,\"nf_batch_process\",e,n.get(\"id\"),!0);else{var g=this,p=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},function(t){p=t,g.handleFinalResponse(p,e)}).fail(function(t,n,i){g.handleFinalFailure(t,n,i,e)})}}else if(\"nf_preview_update\"===t){var g=this,p=null;jQuery.post(ajaxurl,{action:t,form:c,security:nfAdmin.ajaxNonce},function(t){p=t,g.handleFinalResponse(p,e)}).fail(function(t,n,i){g.handleFinalFailure(t,n,i,e)})}},saveChunkedForm:function(e,t,n,i,r,a){var o=e.length,l={action:n,batch_type:\"chunked_publish\",data:{new_publish:a,chunk_total:o,chunk_current:t,chunk:e[t],form_id:r},security:nfAdmin.batchNonce},s=this;jQuery.post(ajaxurl,l).then(function(a){try{var o=JSON.parse(a);\"success\"!==o.last_request||o.batch_complete?o.batch_complete&&s.handleFinalResponse(a,i):(console.log(\"Chunk \"+t+\" processed\"),s.saveChunkedForm(e,o.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),s.handleFinalFailure(e,t,n,i)})},handleFinalResponse:function(e,t){try{e=JSON.parse(e),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){if(\"preview\"==i)return void console.log(n);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\")},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){var t=i.channel(\"app\").request(\"get:domainCollection\"),n=t.get(\"preview\");if(e)var r=\"Preview Form\";else var r=\"Preview Changes\";n.set(\"nicename\",r)},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,i,r,a){var a=void 0!==a?a:{};void 0===r.dashicon&&(r.dashicon=\"admin-generic\");var o=new t({action:e,model:n,changes:i,label:r,data:a});return this.collection.add(o),o},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)}),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=/domain=\\\\d+/,n=window.location.toString(),r=n.replace(t,\"\");console.log(r)}})}),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\"),t=e.get(\"fields\");i.channel(\"app\").request(\"change:currentDomain\",{},t)},changeDomainActions:function(){var e=i.channel(\"app\").request(\"get:domainCollection\"),t=e.get(\"actions\");i.channel(\"app\").request(\"change:currentDomain\",{},t)},changeDomainSettings:function(){var e=i.channel(\"app\").request(\"get:domainCollection\"),t=e.get(\"settings\");i.channel(\"app\").request(\"change:currentDomain\",{},t)},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)}})}),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\"),o=a.where({model:n});_.each(o,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\"),o=a.where({model:n});_.each(o,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\"),o=a.where({model:n});_.each(o,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\"),r=n.fields,a=i.channel(\"fields\").request(\"get:collection\");_.each(r,function(e){var t=e.before;e.model.set(\"order\",t)}),a.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\"),a=r.where({model:n});_.each(a,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){var t=void 0!==t&&t;if(!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\"),o=n.get(a),r=r||null;r||(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 l=r,s={attr:a,before:o,after:l},c=i.channel(\"app\").request(\"get:currentDomain\"),d=(c.get(\"id\"),{object:n.get(\"objectType\"),label:n.get(\"label\"),change:\"Changed \"+t.get(\"label\")+\" from \"+o+\" to \"+l});i.channel(\"changes\").request(\"register:change\",\"changeSetting\",n,s,d)}})}),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)for(var n in t)t.hasOwnProperty(n)&&this.dataModel.on(\"change:\"+n,this.render,this);this.model.on(\"rerender\",this.render,this)},onBeforeDestroy:function(){var e=this.model.get(\"deps\");if(e)for(var t in e)e.hasOwnProperty(t)&&this.dataModel.off(\"change:\"+t,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;\"'}\nif(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!==this.deps[t])return'style=\"display:none;\"';return\"\"},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 var 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 void 0!==r&&null!==r&&e.target.value<r&&(t.set(\"value\",r),e.target.value=r),void 0!==a&&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\"),r=n.get(\"id\"),a=i.channel(r).request(\"get:type\",t.get(\"type\"));i.channel(\"app\").request(\"open:drawer\",\"editSettings\",{model:t,groupCollection:a.get(\"settingGroups\")})}},maybeDelete:function(e,t){this.deleting=!0;var n=t.get(\"id\"),i=t.get(\"objectType\"),r=[\"html\",\"submit\",\"hr\",\"recaptcha\",\"spam\",\"creditcard\",\"creditcardcvc\",\"creditcardexpiration\",\"creditcardfullname\",\"creditcardnumber\",\"creditcardzip\"];if(\"field\"!=i.toLowerCase())this.clickDelete(e,t);else if(\"tmp\"===n.toString().substring(0,3)||-1!=jQuery.inArray(t.get(\"type\"),r))this.clickDelete(e,t);else{var a=Backbone.Radio.channel(\"app\").request(\"get:formModel\"),o={action:\"nf_maybe_delete_field\",security:nfAdmin.ajaxNonce,formID:a.get(\"id\"),fieldKey:t.get(\"key\"),fieldID:n},l=this;jQuery.post(ajaxurl,o).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?(l.doDeleteFieldModal(e,t),!1):(l.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},o=i.channel(\"changes\").request(\"get:collection\"),l=o.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\"),c=s.get(\"id\");i.channel(c).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\"),a=r.get(\"id\");n.set(\"label\",n.get(\"label\")+\" Copy\",{silent:!0});var o=i.channel(a).request(\"get:tmpID\");n.set(\"id\",o),i.channel(a).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(a).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 var 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,o=i.channel(\"app\").request(\"get:formModel\"),l=o.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\"),n=this;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=jQuery(this.currentElement).caret(),r=i+t.get(\"tag\").length,a=void 0!==t.get(\"calcTag\")?t.get(\"calcTag\"):t.get(\"tag\");n=n.substr(0,i)+a+n.substr(i),jQuery(this.currentElement).val(n).caret(r).trigger(\"change\")}else if(\"rte\"==this.settingModel.get(\"type\"))jQuery(this.currentElement).summernote(\"insertText\",t.get(\"tag\"));else{var n=jQuery(this.currentElement).val(),i=jQuery(this.currentElement).caret(),r=i+t.get(\"tag\").length;n=n.substr(0,i)+t.get(\"tag\")+n.substr(i),jQuery(this.currentElement).val(n).caret(r).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\"),a=r.get(\"settings\").get(\"calculations\");_.each(a.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 var 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\"),o=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(o=e.get(\"eq\"))){var a=new RegExp(t,\"g\"),l=o.replace(a,n);a=new RegExp(i,\"g\"),l=l.replace(a,r),e.set(\"eq\",l)}}),!1}if(\"string\"==typeof o){var l=new RegExp(i,\"g\");newVal=o.replace(l,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,o=n.get(\"tag\").toLowerCase().indexOf(e.toLowerCase())>=0;return(!this.calc||-1==t.indexOf(n.get(\"tag\")))&&(a||o)},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,o,l,s){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});var 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 s;c.render();var d=new t(a),h=new r({collection:d}),u=new o({collection:n});c.getRegion(\"tags\").show(h),c.getRegion(\"sections\").show(u),c.getRegion(\"filter\").show(new l)},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 var 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 o=jQuery(\"#merge-tags-box\").outerHeight();jQuery(\"#nf-drawer\").css(\"padding-bottom\",o+\"px\");var l=jQuery(\".merge-tag-focus\").closest(\".nf-list-options-tbody\");if(0!=l.length){var s=l.offset().left-jQuery(window).scrollLeft();jQuery(\"#merge-tags-box\").css(\"left\",s)}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 var n=t.val();for(var r=i.channel(\"mergeTags\").request(\"get:old\"),a=e,o=i.channel(\"mergeTags\").request(\"get:caret\"),l=/{([a-zA-Z0-9]|:|_||-})*/g;match=l.exec(n);)if(r==match[0]){var s=n.slice(0,match.index)+a+n.slice(l.lastIndex);if(t.hasClass(\"note-editable\")){t.closest(\".nf-setting\").find(\".setting\").summernote(\"code\",s);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)var n=e.innerHTML;if(-1!=n.indexOf(a)){n=n.replace(/&nbsp;/g,\" \");var i=n.indexOf(a)+r.length;-1==o&&(o=n.indexOf(a)+1),o==i&&(d=c[0].childNodes[t])}}}),d||(d=c[0].childNodes[0]);var h=o-r.length+a.length,u=document.createRange(),g=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),g.removeAllRanges(),g.addRange(u)}else t.val(s),t.change(),t.caret(o-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 n=t.siblings(\".setting\").first(),r=n.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 o=t.closest(\".nf-setting, .nf-table-row\");if(0!=o.find(\".note-editor\").length?o.find(\".note-editor\").addClass(\"merge-tag-focus-overlay\"):o.addClass(\"merge-tag-focus-overlay\"),\"eq\"==jQuery(e.target).prev(\"textarea\").data(\"id\"))var l=!0;else var l=!1;i.channel(\"merge-tags\").request(\"update:taglist\",\"fields\",l),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){var n=n||\"setting\",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 var r=i.offset().top-jQuery(window).scrollTop(),a=i.outerHeight();var o=r+a,l=window.innerHeight,s=jQuery(\"#merge-tags-box\").outerHeight();o+s>l&&(o=r-s),0>o&&(o=r),jQuery(\"#merge-tags-box\").css(\"top\",o);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{var 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())}var u=jQuery(this).data(\"id\")},keyupCallback:function(e,t,n){var 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 var a=jQuery(this);var o=jQuery(this).data(\"id\");if(!o||\"eq\"!=o){if(\"rte\"==n){var l=a.summernote(\"createRange\");if(l)var s=l.so;else var s=0;a.closest(\".nf-setting\").find(\".setting\").summernote(\"saveRange\")}else var s=a.caret();if(i.channel(\"mergeTags\").request(\"set:caret\",s),\"rte\"==n)var c=a.summernote(\"code\").match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));else var c=a.val().match(new RegExp(/{([a-zA-Z0-9]|:|_|-|})*/g));if(c=_.filter(c,function(e){return-1==e.indexOf(\"}\")}),0!==c.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=function(e){return r.linkButton(e)},o=function(e){return r.mediaButton(e)},l=this.mergeTags(),s=[[\"paragraphStyle\",[\"style\"]],[\"fontStyle\",[\"bold\",\"italic\",\"underline\",\"clear\"]],[\"lists\",[\"ul\",\"ol\"]],[\"paragraph\",[\"paragraph\"]],[\"customGroup\",[\"linkButton\",\"unlink\"]],[\"table\",[\"table\"]],[\"actions\",[\"undo\",\"redo\"]],[\"tools\",[\"mediaButton\",\"mergeTags\",\"codeview\"]]];jQuery(n.el).find(\"div.setting\").summernote({toolbar:s,buttons:{linkButton:a,mergeTags:l,mediaButton:o},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 o=jQuery(this).summernote(\"code\");r.updateDataModel(e,t,o),i.channel(\"summernote\").trigger(\"blur\",e,t,o)},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),o=n,l={attr:r,before:a,after:o},s={object:t.get(\"objectType\"),label:t.get(\"label\"),change:\"Changed \"+e.get(\"label\")+\" from \"+a+\" to \"+o};i.channel(\"changes\").request(\"register:change\",\"changeSetting\",t,l,s),t.set(e.get(\"name\"),o)},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){\nvar 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)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 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\"),o=jQuery(e.target).parent().find(\".link-new-window\");if(this.currentContext.invoke(\"editor.restoreRange\"),jQuery(e.target).hasClass(\"insert-link\")){var l=r.val(),s=a.val(),c=!!o.prop(\"checked\");0!=l.length&&0!=s.length&&this.currentContext.invoke(\"editor.createLink\",{text:l,url:s,isNewWindow:c})}r.val(\"\"),a.val(\"\"),o.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 o=!1;if(_.each(i[n.get(\"type\")],function(e,t){console.log(e+\":\"+n.get(t)),e!=n.get(t)&&(o=!0)}),o)return}var l=n.get(\"key\");switch(e.get(\"field_value_format\")){case\"key\":l=n.get(\"key\");break;case\"merge_tag\":default:l=\"{field:\"+n.get(\"key\")+\"}\"}a.push({label:n.get(\"label\"),value:l})}}),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 o=a.split(\":\");\"addField\"==o[0]&&(this.openDrawer=\"addField\",this.filterDrawer=o[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 o=\"\";_.each(i.fieldListSettings,function(i){if(a==i+\"-\"+t&&o!=t){var r=e.get(i+\"-\"+t);e.set(i+\"-\"+n,r),e.set(i+\"-\"+t,0),o=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){var r=(e.get(\"name\"),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(){if(!(jQuery('li a:contains(\"'+this.editFormText+'\")').length>0)){var e,t,n;e=document.createTextNode(this.editFormText),t=document.createElement(\"a\"),t.appendChild(e),n=document.createElement(\"li\"),n.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\"}},a={position:{x:\"center\",y:\"top\"},animation:{open:\"slide:top\",close:\"slide:left\"},autoClose:2e3,offset:{x:0,y:55}},o={attributes:{x:\"left\",y:\"bottom\"},autoClose:4e3};if(i.channel(\"app\").request(\"is:mobile\"))var l=a;else var l=o;l=jQuery.extend(l,r);var n=jQuery.extend(l,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)return void i.channel(\"fields\").request(\"add:stagedField\",t);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){var t=t||!1,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\")},o=this.collection.add(a);return t||i.channel(\"fields\").trigger(\"add:stagedField\",o),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=i.channel(\"fields\").request(\"get:tmpID\"),r={id:n,label:t.get(\"nicename\"),type:t.get(\"slug\")},a=i.channel(\"fields\").request(\"add\",r,!1),o={object:\"Field\",label:a.get(\"label\"),change:\"Added\",dashicon:\"plus-alt\"},l={collection:e};i.channel(\"changes\").request(\"register:change\",\"addObject\",a,null,o,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),a=r.get(\"nicename\");this.currentHelper=t.helper,jQuery(t.helper).html(a+'<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 o=i.channel(\"app\").request(\"get:stagedFieldsEl\");jQuery(o).hasClass(\"ui-sortable\")&&jQuery(o).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}]),o=i.channel(\"app\").request(\"update:hiddenFields\")||[];o=o.concat([\"product\",\"quantity\",\"shipping\",\"total\"]);for(var l=a.models[0].get(\"fieldTypes\").length-1;l>=0;l--){-1<o.indexOf(a.models[0].get(\"fieldTypes\")[l])&&a.models[0].get(\"fieldTypes\").splice(l,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)?n=!0:-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\"),\"date\"==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\"),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(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),n=t.filter(function(e){return 0==e.indexOf(\"taxonomy_term_\")&&this[e]}.bind(this));return 0==n.length?\"(No available terms selected)\":n.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 i=this.options.models.filter(function(e){return e.get(\"selected\")});return 0==i.length&&(i=this.options.models),\"<option>\"+i[0].get(\"label\")+\"</option>\";case\"listmultiselect\":return this.options.models.reduce(function(e,t){return e+=\"<option\"+(t.get(\"selected\")?' selected=\"selected\"':\"\")+\">\"+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>\"+t.get(\"label\")+\"</div></li>\"},\"\");case\"listradio\":var r=!1;return this.options.models.reduce(function(e,t){return r=t.get(\"selected\")&&!r?' checked=\"checked\"':\"\",e+='<li><input type=\"radio\"'+r+\"><div>\"+t.get(\"label\")+\"</div></li>\"},\"\");case\"listcountry\":var a=this.default,o=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\"<option>\"+(void 0!==o?o.label:\"--\")+\"</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}}},convertDateFormat:function(e){return e=e.replace(\"D\",\"ddd\"),e=e.replace(\"d\",\"DD\"),e=e.replace(\"l\",\"dddd\"),e=e.replace(\"j\",\"D\"),e=e.replace(\"N\",\"\"),e=e.replace(\"S\",\"\"),e=e.replace(\"w\",\"d\"),e=e.replace(\"z\",\"\"),e=e.replace(\"W\",\"W\"),e=e.replace(\"M\",\"MMM\"),e=e.replace(\"F\",\"MMMM\"),e=e.replace(\"m\",\"MM\"),e=e.replace(\"n\",\"M\"),e=e.replace(\"t\",\"\"),e=e.replace(\"L\",\"\"),e=e.replace(\"o\",\"YYYY\"),e=e.replace(\"Y\",\"YYYY\"),e=e.replace(\"y\",\"YY\"),e=e.replace(\"a\",\"\"),e=e.replace(\"A\",\"\"),e=e.replace(\"B\",\"\"),e=e.replace(\"g\",\"\"),e=e.replace(\"G\",\"\"),e=e.replace(\"h\",\"\"),e=e.replace(\"H\",\"\"),e=e.replace(\"i\",\"\"),e=e.replace(\"s\",\"\"),e=e.replace(\"u\",\"\"),e=e.replace(\"v\",\"\"),e=e.replace(\"e\",\"\"),e=e.replace(\"I\",\"\"),e=e.replace(\"O\",\"\"),e=e.replace(\"P\",\"\"),e=e.replace(\"T\",\"\"),e=e.replace(\"Z\",\"\"),e=e.replace(\"c\",\"\"),e=e.replace(\"r\",\"\"),e=e.replace(\"u\",\"\")}})}),n(\"views/fields/preview/label\",[],function(){return Marionette.ItemView.extend({tagName:\"div\",template:\"#tmpl-nf-field-label\",initialize:function(){},onRender:function(){},templateHelpers:function(){return{renderLabelClasses:function(){},maybeRenderHelp:function(){}}}})}),n(\"views/fields/fieldItem\",[\"views/app/itemControls\",\"views/fields/preview/element\",\"views/fields/preview/label\"],function(e,t,n){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 r=this.model.get(\"type\");\"phone\"==r&&(r=\"tel\"),\"spam\"==r&&(r=\"input\"),\"date\"==r&&(r=\"input\"),\"confirm\"==r&&(r=\"input\"),\"password\"==r&&(r=\"input\"),\"passwordconfirm\"==r&&(r=\"input\"),\"quantity\"==r&&(r=\"number\"),\"terms\"==r&&(r=\"listcheckbox\"),\"liststate\"==r&&(r=\"listselect\"),\"listcountry\"==r&&(r=\"listselect\"),\"listmultiselect\"==r&&(r=\"listselect\"),\"save\"==r&&(r=\"submit\");var a=[\"html\",\"hidden\",\"note\",\"recaptcha\"],o=jQuery(\"#tmpl-nf-field-\"+r).length;if(-1==a.indexOf(this.model.get(\"type\"))&&o){this.previewElement.show(new t({model:this.model}));-1==[\"submit\",\"save\",\"hr\"].indexOf(this.model.get(\"type\"))&&this.previewLabel.show(new n({model:this.model})),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}))})},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(){\nreturn 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\"),t.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)},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(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\"),o=i.channel(\"fields\").request(\"get:sortableEl\");if(jQuery(o).hasClass(\"ui-sortable\"))var l=jQuery(o).sortable(\"toArray\");else var l=[\"nf-staged-fields-drag\"];var s=l.indexOf(\"nf-staged-fields-drag\");_.each(a.models,function(e,t){var n=r.addField(e.get(\"slug\"));l.splice(s+t,0,n)});var 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()}},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),o={object:\"Field\",label:a.get(\"label\"),change:\"Added\",dashicon:\"plus-alt\"},l={collection:i.channel(\"fields\").request(\"get:collection\")};return i.channel(\"changes\").request(\"register:change\",\"addObject\",a,null,o,l),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),o=(a.get(\"nicename\"),i.channel(\"fields\").request(\"get:sortableEl\"));jQuery(o).width();this.currentHelper=n.helper;var l=new e({label:a.get(\"nicename\"),type:r}),s=new t({model:l}),c=s.render(),d=c.$el[0];jQuery(n.helper).html(d.outerHTML)}else if(jQuery(n.item).hasClass(\"nf-stage\")){var o=i.channel(\"fields\").request(\"get:sortableEl\");jQuery(o).hasClass(\"ui-sortable\")&&jQuery(o).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\")){var 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\"))var t=$parentHelper.clone();else var 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),o={fields:[]};_.each(n.models,function(e){var t=e._previousAttributes.order,n=e.get(\"order\");o.fields.push({model:e,attr:\"order\",before:t,after:n})});var l={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,l,o)}}})}),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 o=new t(e)}else var o=e;if(jQuery.isNumeric(o.get(\"type\"))){var l=i.channel(\"fields\").request(\"get:type\",o.get(\"type\"));o.set(\"type\",l.get(\"parentType\"))}var s=this.collection.add(o,{silent:n});return i.channel(\"app\").request(\"update:setting\",\"clean\",!1),i.channel(\"fields\").trigger(\"add:field\",o),r&&i.channel(\"fields\").trigger(\"render:newField\",s,a),\"duplicate\"==a&&i.channel(\"fields\").trigger(\"render:duplicateField\",s,a),i.channel(\"fields\").trigger(\"after:addField\",o),o},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\")){var e=e||jQuery(r).sortable(\"toArray\");_.each(this.collection.models,function(t){var n=(t.get(\"order\"),t.get(\"id\"));if(jQuery.isNumeric(n))var i=\"field-\"+n;else var 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,o,l=i.channel(\"fields\").request(\"get:collection\");return n=document.createElement(\"option\"),n.value=\"\",n.label=\"--\",n.innerHTML=\"--\",r=document.createElement(\"select\"),r.classList.add(\"setting\"),r.setAttribute(\"data-id\",e),r.appendChild(n),l.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)}),o=document.createElement(\"label\"),o.classList.add(\"nf-select\"),o.appendChild(r),a=document.createElement(\"div\"),a.style.bottom=\"6px\",o.appendChild(a),o.innerHTML},renderNonSaveFieldSelect:function(e,t){var n,r,a,o,l=i.channel(\"fields\").request(\"get:collection\");n=document.createElement(\"option\"),n.value=\"\",n.label=\"--\",n.innerHTML=\"--\",r=document.createElement(\"select\"),r.classList.add(\"setting\"),r.setAttribute(\"data-id\",e),r.appendChild(n);var s=[\"html\",\"submit\",\"hr\",\"recaptcha\",\"spam\",\"creditcard\",\"creditcardcvc\",\"creditcardexpiration\",\"creditcardfullname\",\"creditcardnumber\",\"creditcardzip\"];return l.each(function(e){if(-1!==jQuery.inArray(e.get(\"type\"),s))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)}),o=document.createElement(\"label\"),o.classList.add(\"nf-select\"),o.appendChild(r),a=document.createElement(\"div\"),a.style.bottom=\"6px\",o.appendChild(a),o.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}),t.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)for(var a in r)r.hasOwnProperty(a)&&this.dataModel.on(\"change:\"+a,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 in e)e.hasOwnProperty(t)&&this.dataModel.off(\"change:\"+t,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(){if(\"Field\"==e.dataModel.get(\"objectType\")&&-1!==e.dataModel.get(\"type\").indexOf(\"list\")){var t,n,i,r,a;t=document.createTextNode(nfi18n.valueChars),n=document.createElement(\"div\"),n.classList.add(\"nf-help-text\"),n.appendChild(t),i=document.createElement(\"span\"),i.classList.add(\"dashicons\",\"dashicons-admin-comments\"),r=document.createElement(\"a\"),r.classList.add(\"nf-help\"),r.setAttribute(\"href\",\"#\"),r.setAttribute(\"tabindex\",\"-1\"),r.appendChild(i),a=document.createElement(\"span\"),a.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)}var o,l,s;return l=document.createElement(\"div\"),o=document.createElement(\"span\"),o.appendChild(l),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\"),n.appendChild(t),o.appendChild(n)}),s=document.createElement(\"div\"),o.appendChild(s),o.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(){if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!==this.deps[t])return'style=\"display:none;\"';return\"\"},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:\"-\"}),o=n[2]||\"\";r=r.trimLeft().trimRight(),a=a.trimLeft().trimRight(),o=o.trimLeft().trimRight();var l=e.data.view.collection.add({label:n[0],value:a,calc:o}),r={object:\"field\",label:n[0],change:\"Option Added\",dashicon:\"plus-alt\"};i.channel(\"changes\").request(\"register:change\",\"addListOption\",l,null,r),i.channel(\"option-repeater-\"+e.data.view.model.get(\"name\")).trigger(\"add:option\",l),i.channel(\"option-repeater\").trigger(\"add:option\",l),i.channel(\"app\").trigger(\"update:setting\",l)},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 o=jQuery(e.target).data(\"id\");if(\"selected\"==o)if(jQuery(e.target).prop(\"checked\"))var l=1;else var l=0;else var l=jQuery(e.target).val();var s=t.get(o);t.set(o,l),this.triggerDataModel(t,n);var c=l,d={attr:o,before:s,after:c},h={object:n.get(\"objectType\"),label:n.get(\"label\"),change:\"Option \"+t.get(\"label\")+\" \"+o+\" changed from \"+s+\" 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-\"+o).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 o=new e(r);t.add(o);var l={object:n.get(\"objectType\"),label:n.get(\"label\"),change:\"Option Added\",dashicon:\"plus-alt\"};i.channel(\"changes\").request(\"register:change\",\"addListOption\",o,null,l),void 0!==t.settingModel&&i.channel(\"option-repeater-\"+t.settingModel.get(\"name\")).trigger(\"add:option\",o),i.channel(\"option-repeater\").trigger(\"add:option\",o),i.channel(\"option-repeater\").trigger(\"added:option\",t),this.triggerDataModel(o,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\"},o={collection:t};i.channel(\"changes\").request(\"register:change\",\"removeListOption\",r,null,a,o);var l=i.channel(\"changes\").request(\"get:collection\"),s=l.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\")}),o={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;o.objModels.push({model:i,attr:\"order\",before:r,after:a})}),n.collection.sort({silent:!0});var l={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,l,o),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}),i.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(),o=jQuery(a[0]).find('[data-id=\"value\"]'),l=jQuery(a[0]).find('[data-id=\"image_id\"]'),s=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(),o.val(e.filename).change(),s.val(e.title).change(),l.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,o,l=i.channel(\"fields\").request(\"get:collection\");return n=document.createElement(\"option\"),n.value=\"\",n.image=\"\",n.innerHTML=\"--\",r=document.createElement(\"select\"),r.classList.add(\"setting\"),r.setAttribute(\"data-id\",e),r.appendChild(n),l.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)}),o=document.createElement(\"image\"),o.classList.add(\"nf-select\"),o.appendChild(r),a=document.createElement(\"div\"),a.style.bottom=\"6px\",o.appendChild(a),o.innerHTML},renderNonSaveFieldSelect:function(e,t){var n,r,a,o,l=i.channel(\"fields\").request(\"get:collection\");n=document.createElement(\"option\"),n.value=\"\",n.image=\"\",n.innerHTML=\"--\",r=document.createElement(\"select\"),r.classList.add(\"setting\"),r.setAttribute(\"data-id\",e),r.appendChild(n);var s=[\"html\",\"submit\",\"hr\",\"recaptcha\",\"spam\",\"creditcard\",\"creditcardcvc\",\"creditcardexpiration\",\"creditcardfullname\",\"creditcardnumber\",\"creditcardzip\"];return l.each(function(e){if(-1!==jQuery.inArray(e.get(\"type\"),s))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)}),o=document.createElement(\"image\"),o.classList.add(\"nf-select\"),o.appendChild(r),a=document.createElement(\"div\"),a.style.bottom=\"6px\",o.appendChild(a),o.innerHTML},renderOptions:function(t,n){if(void 0!==e.options.columns[t]){\nvar 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}),t.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)for(var a in r)r.hasOwnProperty(a)&&this.dataModel.on(\"change:\"+a,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 in e)e.hasOwnProperty(t)&&this.dataModel.off(\"change:\"+t,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(){if(\"Field\"==e.dataModel.get(\"objectType\")&&-1!==e.dataModel.get(\"type\").indexOf(\"list\")){var t,n,i,r,a;t=document.createTextNode(nfi18n.valueChars),n=document.createElement(\"div\"),n.classList.add(\"nf-help-text\"),n.appendChild(t),i=document.createElement(\"span\"),i.classList.add(\"dashicons\",\"dashicons-admin-comments\"),r=document.createElement(\"a\"),r.classList.add(\"nf-help\"),r.setAttribute(\"href\",\"#\"),r.setAttribute(\"tabindex\",\"-1\"),r.appendChild(i),a=document.createElement(\"span\"),a.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)}var o,l,s;return l=document.createElement(\"div\"),o=document.createElement(\"span\"),o.appendChild(l),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\"),n.appendChild(t),o.appendChild(n)}),s=document.createElement(\"div\"),o.appendChild(s),o.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(){if(this.deps)for(var t in this.deps)if(this.deps.hasOwnProperty(t)&&e.dataModel.get(t)!==this.deps[t])return'style=\"display:none;\"';return\"\"},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:\"-\"}),o=n[2]||\"\";r=r.trimLeft().trimRight(),a=a.trimLeft().trimRight(),o=o.trimLeft().trimRight();var l=e.data.view.collection.add({image:n[0],value:a,calc:o}),r={object:\"field\",image:n[0],change:\"Option Added\",dashicon:\"plus-alt\"};i.channel(\"changes\").request(\"register:change\",\"addListOption\",l,null,r),i.channel(\"image-option-repeater-\"+e.data.view.model.get(\"name\")).trigger(\"add:option\",l),i.channel(\"image-option-repeater\").trigger(\"add:option\",l),i.channel(\"app\").trigger(\"update:setting\",l)},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 o=jQuery(e.target).data(\"id\");if(\"selected\"==o)if(jQuery(e.target).prop(\"checked\"))var l=1;else var l=0;else var l=jQuery(e.target).val();var s=t.get(o);t.set(o,l),this.triggerDataModel(t,n);var c=l,d={attr:o,before:s,after:c},h={object:n.get(\"objectType\"),label:n.get(\"label\"),change:\"Option \"+t.get(\"label\")+\" \"+o+\" changed from \"+s+\" 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-\"+o).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 o=new e(r);t.add(o);var l={object:n.get(\"objectType\"),image:n.get(\"image\"),change:\"Option Added\",dashicon:\"plus-alt\"};i.channel(\"changes\").request(\"register:change\",\"addListOption\",o,null,l),void 0!==t.settingModel&&i.channel(\"image-option-repeater-\"+t.settingModel.get(\"name\")).trigger(\"add:option\",o),i.channel(\"image-option-repeater\").trigger(\"add:option\",o),i.channel(\"image-option-repeater\").trigger(\"added:option\",t),this.triggerDataModel(o,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\"},o={collection:t};i.channel(\"changes\").request(\"register:change\",\"removeListOption\",r,null,a,o);var l=i.channel(\"changes\").request(\"get:collection\"),s=l.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\")}),o={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;o.objModels.push({model:i,attr:\"order\",before:r,after:a})}),n.collection.sort({silent:!0});var l={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,l,o),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}),i.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\"),o=/[^0-9a-zA-Z _@.-]/g;a=a.replace(o,\"\"),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}),n.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,n=t.valueOf(),i=this.slugify(e.get(\"type\")+\"_\"+n);e.set(\"key\",i,{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,n=t.valueOf(),i=this.slugify(e.get(\"label\")+\"_\"+n);-1==i.indexOf(\"_\")&&(i=\"field_\"+i),e.set(\"key\",i)}},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,o=e;return _.each(r.models,function(n){t!=n&&o==n.get(\"key\")&&(o=e+\"_\"+a,a++)}),e=o},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),r=n.attributes;r.saved=!0,delete r.jBox,delete r.editActive,delete r.created_at,delete r.order,delete r.id,delete r.formID,delete r.parent_id;var a=i.channel(\"fields\").request(\"get:type\",r.type),o=_.clone(a.attributes),l=jQuery(e.target).parent().parent().find(\"input\").val();console.log(l),o.nicename=l,r.label=l,r.nicename=l,t.set(\"addSavedLoading\",!0);var s=JSON.stringify(r);jQuery.post(ajaxurl,{action:\"nf_create_saved_field\",field:s,security:nfAdmin.ajaxNonce},function(e){e=JSON.parse(e),o.id=e.data.id,o.nicename=l,o.settingDefaults=r;var n=i.channel(\"fields\").request(\"get:typeCollection\");n.add(o);i.channel(\"fields\").request(\"get:typeSections\").get(\"saved\").get(\"fieldTypes\").push(o.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){flatpickr(jQuery(n.el).find(\".setting\")[0])}})}),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/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 var 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 o=[],l=i.channel(\"actions\").request(\"get:availableActions\");_.each(this.filterCollection(t,l),function(e){o.push(e)});var s=new e(r);s.slug=\"installed\",s.nicename=\"Installed\";var c=new e(o);c.slug=\"available\",c.nicename=\"Available\",i.channel(\"drawer\").trigger(\"filter:actionTypes\",s,c),n.addObject&&0<s.length&&(i.channel(\"actions\").request(\"add:actionType\",s.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)?n=!0:-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){var 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,n=\"{field:\"+e.get(\"key\")+\"}\";_.each(this.attributes,function(e,i){if(_.isString(e))this.set(i,e.replace(n,\"\"));else if(_.isArray(e))_.each(e,function(r,a){_.isString(r)?console.log(\"string replace\"):_.isArray(r)?console.log(\"array search\"):_.isObject(r)&&(t=_.mapObject(r,function(t,i){return _.isString(t)&&-1!=t.indexOf(n)&&e.splice(a,1),t}),this.set(i,e))},this);else if(e instanceof Backbone.Collection){var r=e.filter(function(e){return _.every(e.attributes,function(e){return!_.isString(e)||-1==e.indexOf(n)})});this.set(i,r)}},this)}})}),n(\"controllers/actions/collectPaymentFields\",[],function(){return Marionette.Object.extend({initialize:function(){\nthis.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.replace(\"{field:\",\"\"),a=a.replace(\"}\",\"\");var o=i.channel(\"fields\").request(\"get:field\",a);void 0!==o&&void 0===_.findWhere(r,{value:t.get(\"payment_total\")})&&r.push({label:o.get(\"label\"),value:\"{field:\"+o.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){if(\"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 o=t.get(\"name\");t.set(\"name\",e,{silent:n}),i.channel(\"calcs\").trigger(\"update:calcName\",t,o),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 o=t.collection;a=a.map(function(e){var a=e.replace(\"}\",\"\").replace(\"{calc:\",\"\"),l=o.findWhere({name:a});a==t.get(\"name\")?(n.selfRef=\"A calculation can't reference itself!\",i=!0):l&&l.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/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,o,l,s,c,d,h,u,g,p,f,m,y,v,w,b,C,j,k,M,T,x,S,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,oe,le,se,ce,de,he,ue,ge,pe,fe,me,ye,ve,we,be,Ce,je,ke,Me,Te,xe,Se,Fe,Qe,_e,qe,De,Oe,Ae,Ee,Le,Re,Ve){return Marionette.Object.extend({initialize:function(){new z,new B,new f,new e,new t,new n,new i,new a,new s,new c,new d,new h,new u,new g,new m,new y,new v,new x,new _,new q,new D,new O,new A,new E,new $,new L,new R,new V,new N,new o,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 oe,new le,new se,new ce,new de,new he,new ue,new ge,new pe,new fe,new me,new xe,new Se,new Qe,new qe,new De,new ye,new ve,new we,new be,new Ce,new je,new ke,new Me,new Te,new Fe,new _e,new Oe,new Ee,new Ve,new Ae,new Le,new Re,new r,new te,new l,new S,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){var e=t.template(e);return 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(){})}();"],"file":"builder.js"}
assets/js/min/front-end.js CHANGED
@@ -3450,10 +3450,10 @@ define('controllers/fieldDate',[], function() {
3450
  var dateSettings = {
3451
  classes: jQuery( el ).attr( "class" ),
3452
  placeholder: view.model.get( 'placeholder' ),
3453
- parseDate: (datestr, format) => {
3454
  return moment(datestr, format, true).toDate();
3455
  },
3456
- formatDate: (date, format, locale) => {
3457
  return moment(date).format(format);
3458
  },
3459
  dateFormat: dateFormat,
3450
  var dateSettings = {
3451
  classes: jQuery( el ).attr( "class" ),
3452
  placeholder: view.model.get( 'placeholder' ),
3453
+ parseDate: function (datestr, format) {
3454
  return moment(datestr, format, true).toDate();
3455
  },
3456
+ formatDate: function (date, format, locale) {
3457
  return moment(date).format(format);
3458
  },
3459
  dateFormat: dateFormat,
assets/js/min/front-end.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"mappings":"","sources":["main.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\ndefine( 'models/fieldErrorModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\n\t} );\n\t\n\treturn model;\n} );\ndefine( 'models/fieldErrorCollection',['models/fieldErrorModel'], function( errorModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: errorModel\n\t} );\n\treturn collection;\n} );\ndefine( 'models/fieldModel',['models/fieldErrorCollection'], function( fieldErrorCollection ) {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tplaceholder: '',\n\t\t\tvalue: '',\n\t\t\tlabel_pos: '',\n\t\t\tclasses: 'ninja-forms-field',\n\t\t\treRender: false,\n\t\t\tmirror_field: false,\n\t\t\tconfirm_field: false,\n\t\t\tclean: true,\n\t\t\tdisabled: '',\n\t\t\tvisible: true,\n\t\t\tinvalid: false\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tvar type = this.get('type');\n\n\t\t\tthis.set( 'formID', this.collection.options.formModel.get( 'id' ) );\n\t\t\tthis.listenTo( nfRadio.channel( 'form-' + this.get( 'formID' ) ), 'reset', this.resetModel );\n\n \t\tthis.bind( 'change', this.changeModel, this );\n \t\tthis.bind( 'change:value', this.changeValue, this );\n \t\tthis.set( 'errors', new fieldErrorCollection() );\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/*\n\t\t\t * Trigger an init event on two channels:\n\t\t\t * \n\t\t\t * fields\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:model', this );\n\t\t\tnfRadio.channel( this.get( 'type' ) ).trigger( 'init:model', this );\n\t\t\tnfRadio.channel( 'fields-' + this.get( 'type' ) ).trigger( 'init:model', this );\n\n\t\t\tif( 'undefined' != this.get( 'parentType' ) ){\n\t\t\t\tnfRadio.channel( this.get( 'parentType' ) ).trigger( 'init:model', this );\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * When we load our form, fire another event for this field.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'form-' + this.get( 'formID' ) ), 'loaded', this.formLoaded );\n\t\t\n\t\t\t/*\n\t\t\t * Before we submit our form, send out a message so that this field can be modified if necessary.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'form-' + this.get( 'formID' ) ), 'before:submit', this.beforeSubmit );\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\tchangeModel: function() {\n\t\t\tnfRadio.channel( 'field-' + this.get( 'id' ) ).trigger( 'change:model', this );\n\t\t\tnfRadio.channel( this.get( 'type' ) ).trigger( 'change:model', this );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'change:model', this );\n\t\t},\n\n\t\tchangeValue: function() {\n\t\t\tnfRadio.channel( 'field-' + this.get( 'id' ) ).trigger( 'change:modelValue', this );\n\t\t\tnfRadio.channel( this.get( 'type' ) ).trigger( 'change:modelValue', this );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'change:modelValue', this );\n\t\t},\n\n\t\taddWrapperClass: function( cl ) {\n\t\t\tthis.set( 'addWrapperClass', cl );\n\t\t},\n\n\t\tremoveWrapperClass: function( cl ) {\n\t\t\tthis.set( 'removeWrapperClass', cl );\n\t\t},\n\n\t\tsetInvalid: function( invalid ) {\n\t\t\tthis.set( 'invalid', invalid );\n\t\t},\n\n\t\tformLoaded: function() {\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'formLoaded', this );\n\t\t\tnfRadio.channel( 'fields-' + this.get( 'type' ) ).trigger( 'formLoaded', this );\n\t\t},\n\n\t\tbeforeSubmit: function( formModel ) {\n\t\t\tnfRadio.channel( this.get( 'type' ) ).trigger( 'before:submit', this );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'before:submit', this );\n\t\t}\n\n\t} );\n\n\treturn model;\n} );\n\ndefine( 'models/fieldCollection',['models/fieldModel'], function( fieldModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: fieldModel,\n\t\tcomparator: 'order',\n\n\t\tinitialize: function( models, options ) {\n\t\t\tthis.options = options;\n this.on( 'reset', function( fieldCollection ){\n nfRadio.channel( 'fields' ).trigger( 'reset:collection', fieldCollection );\n }, this );\n\t\t},\n\n\t\tvalidateFields: function() {\n\t\t\t_.each( this.models, function( fieldModel ) {\n\t\t\t\t// added here for help with multi-part part validation\n\t\t\t\tfieldModel.set( 'clean', false );\n\t\t\t\tnfRadio.channel( 'submit' ).trigger( 'validate:field', fieldModel );\n\t\t\t}, this );\n\t\t},\n\n\t\tshowFields: function() {\n\t\t\tthis.invoke( 'set', { visible: true } );\n this.invoke( function() {\n this.trigger( 'change:value', this );\n });\n\t\t},\n\n\t\thideFields: function() {\n\t\t\tthis.invoke( 'set', { visible: false } );\n this.invoke( function() {\n this.trigger( 'change:value', this );\n });\n\t\t}\n\t} );\n\treturn collection;\n} );\n\ndefine( 'models/formErrorModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\n\t} );\n\t\n\treturn model;\n} );\ndefine( 'models/formErrorCollection',['models/formErrorModel'], function( errorModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: errorModel\n\t} );\n\treturn collection;\n} );\ndefine( 'models/formModel',[\n\t'models/fieldCollection',\n\t'models/formErrorCollection'\n\t], function(\n\t\tFieldCollection,\n\t\tErrorCollection\n\t) {\n\tvar model = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\tbeforeForm: '',\n\t\t\tafterForm: '',\n\t\t\tbeforeFields: '',\n\t\t\tafterFields: '',\n\t\t\twrapper_class: '',\n\t\t\telement_class: '',\n\t\t\thp: '',\n\t\t\tfieldErrors: {},\n\t\t\textra: {}\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\t// Loop over settings and map to attributes\n\t\t\t_.each( this.get( 'settings' ), function( value, setting ) {\n\t\t\t\tthis.set( setting, value );\n\t\t\t}, this );\n\n\t\t\tthis.set( 'loadedFields', this.get( 'fields' ) );\n\t\t\tthis.set( 'fields', new FieldCollection( this.get( 'fields' ), { formModel: this } ) );\n\t\t\tthis.set( 'errors', new ErrorCollection() );\n\n\t\t\t/*\n\t\t\t * Send out a radio message so that anyone who wants to filter our content data can register their filters.\n\t\t\t */\n\t\t\tnfRadio.channel( 'form' ).trigger( 'before:filterData', this );\n\n\t\t\t/*\n\t\t\t * Set our formContentData to our form setting 'formContentData'\n\t\t\t */\n\t\t\tvar formContentData = this.get( 'formContentData' );\n\n\t\t\t/*\n\t\t\t * The formContentData variable used to be fieldContentsData.\n\t\t\t * If we don't have a 'formContentData' setting, check to see if we have an old 'fieldContentsData'.\n\t\t\t * \n\t\t\t * TODO: This is for backwards compatibility and should be removed eventually. \n\t\t\t */\n\t\t\tif ( ! formContentData ) {\n\t\t\t\tformContentData = this.get( 'fieldContentsData' );\n\t\t\t}\n\t\t\t\n\t\t\tvar formContentLoadFilters = nfRadio.channel( 'formContent' ).request( 'get:loadFilters' );\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( formContentLoadFilters, undefined );\n\t\t\tvar callback = _.first( sortedArray );\n\t\t\tformContentData = callback( formContentData, this, this );\n\t\t\t\n\t\t\tthis.set( 'formContentData', formContentData );\n\n\t\t\tnfRadio.channel( 'forms' ).trigger( 'init:model', this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'init:model', this );\n\n\t\t\t// Fields\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'get:fieldByKey', this.getFieldByKey, this );\n\n\t\t\t// Form Errors\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'add:error', this.addError, this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'remove:error', this.removeError, this );\n\n\t\t\t// Extra Data\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'get:extra', this.getExtra, this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'add:extra', this.addExtra, this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'remove:extra', this.removeExtra, this );\n\t\t\n\t\t\t// Respond to requests to get this model.\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'get:form', \t this.getForm, \t this );\n\n\t\t\tnfRadio.channel( 'form' ).trigger( 'loaded', this );\n\t\t\tnfRadio.channel( 'form' ).trigger( 'after:loaded', this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'loaded', \t this );\n\t\t},\n\n\t\t/*\n\t\t |--------------------------------------------------------------------------\n\t\t | Fields\n\t\t |--------------------------------------------------------------------------\n\t\t */\n\n\t\tgetFieldByKey: function( key ) {\n\t\t\treturn this.get( 'fields' ).findWhere( { key: key } );\n\t\t},\n\n\t\t/*\n\t\t |--------------------------------------------------------------------------\n\t\t | Form Errors\n\t\t |--------------------------------------------------------------------------\n\t\t */\n\n\t\taddError: function( id, msg ) {\n\t\t\tvar errors = this.get( 'errors' );\n\t\t\terrors.add( { id: id, msg: msg } );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'add:error', this, id, msg );\n\t\t},\n\n\t\tremoveError: function( id ) {\n\t\t\tvar errors = this.get( 'errors' );\n\t\t\tvar errorModel = errors.get( id );\n\t\t\terrors.remove( errorModel );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'remove:error', this, id );\n\t\t},\n\n\t\t/*\n\t\t |--------------------------------------------------------------------------\n\t\t | Extra Data\n\t\t |--------------------------------------------------------------------------\n\t\t */\n\n\t\tgetExtra: function( key ) {\n\t\t\tvar extraData = this.get( 'extra' );\n\t\t\tif( 'undefined' == typeof key ) return extraData;\n\t\t\treturn extraData[ key ];\n\t\t},\n\n\t\taddExtra: function( key, value ) {\n\t\t\tvar extraData = this.get( 'extra' );\n\t\t\textraData[ key ] = value;\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'add:extra', this, key, value );\n\t\t},\n\n\t\tremoveExtra: function( key ) {\n\t\t\tvar extraData = this.get( 'extra' );\n\t\t\tdelete extraData[ key ];\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'remove:extra', this, key );\n\t\t},\n\n\t\t/*\n\t\t |--------------------------------------------------------------------------\n\t\t | Get this form\n\t\t |--------------------------------------------------------------------------\n\t\t */\n\t\tgetForm: function() {\n\t\t\treturn this;\n\t\t}\n\t} );\n\n\treturn model;\n} );\ndefine( 'models/formCollection',['models/formModel'], function( formModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: formModel\n\t} );\n\treturn collection;\n} );\n/*\n * Handles setting up our form.\n *\n * Holds a collection of our fields.\n * Replies to requests for field data.\n * Updates field models.\n */\ndefine('controllers/formData',['models/formModel', 'models/formCollection', 'models/fieldCollection', 'models/formErrorCollection'], function( FormModel, FormCollection, FieldCollection, ErrorCollection ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\n\t\t\t/*\n\t\t\t * Setup our field collections.\n\t\t\t */\n\t\t\tvar that = this;\n\n\t\t\t/*\n\t\t\t * Initialize our form collection (incase we have multiple forms on the page)\n\t\t\t */\n\t\t\tthis.collection = new FormCollection( nfForms );\n\n\t\t\tnfRadio.channel( 'forms' ).trigger( 'loaded', this.collection );\n\t\t\tnfRadio.channel( 'app' ).trigger( 'forms:loaded', this.collection );\n\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:form', this.getForm, this );\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:forms', this.getForms, this );\n\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:field', this.getField, this );\n\t\t},\n\n\t\tgetForm: function( id ) {\n\t\t\treturn this.collection.get( id );\n\t\t},\n\n\t\tgetForms: function() {\n\t\t\treturn this.collection;\n\t\t},\n\n\t\tgetField: function( id ) {\n\t\t\tvar model = false;\n\t\t\t\n\t\t\t_.each( this.collection.models, function( form ) {\n\t\t\t\tif ( ! model ) {\n\t\t\t\t\tmodel = form.get( 'fields' ).get( id );\t\n\t\t\t\t}\t\t\t\n\t\t\t} );\n\t\t\treturn model;\n\t\t}\n\t});\n\n\treturn controller;\n} );\n\ndefine('controllers/fieldError',['models/fieldErrorModel'], function( fieldErrorModel ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'fields' ).reply( 'add:error', this.addError );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'remove:error', this.removeError );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:error', this.getError );\n\t\t},\n\n\t\taddError: function( targetID, id, msg ) {\n\t\t\tvar model = nfRadio.channel( 'fields' ).request( 'get:field', targetID );\n\n\t\t\tif( 'undefined' == typeof model ) return;\n\n\t\t\tvar errors = model.get( 'errors' );\n\t\t\terrors.add( { 'id': id, 'msg' : msg } );\n\t\t\tmodel.set( 'errors', errors );\n\t\t\tmodel.trigger( 'change:errors', model );\n\t\t\tmodel.set( 'clean', false );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'add:error', model, id, msg );\n\t\t},\n\n\t\tremoveError: function( targetID, id ) {\n\t\t\tvar model = nfRadio.channel( 'fields' ).request( 'get:field', targetID );\n\n\t\t\tif( 'undefined' == typeof model ) return;\n\n\t\t\tvar errors = model.get( 'errors' );\n\t\t\tvar targetError = errors.get( id );\n\t\t\tif ( 'undefined' != typeof targetError ) {\n\t\t\t\terrors.remove( targetError );\n\t\t\t\tmodel.set( 'errors', errors );\n\t\t\t\tmodel.trigger( 'change:errors', model );\n\t\t\t\tnfRadio.channel( 'fields' ).trigger( 'remove:error', model, id );\n\t\t\t}\n\t\t},\n\n\t\tgetError: function( targetID, id ) {\n\t\t\tvar model = nfRadio.channel( 'fields' ).request( 'get:field', targetID );\n\t\t\tvar errors = model.get( 'errors' );\n\t\t\tvar targetError = errors.get( id );\n\t\t\tif ( 'undefined' != targetError ) {\n\t\t\t\treturn targetError;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\n/**\n * Controller responsible for replying to a Radio request stating that a field has been changed.\n *\n * This controller sends out a message to the field-specific channel, the field type channel,\n * and the public fields channel so that the data model can be updated.\n */\n\ndefine('controllers/changeField',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * Reply to our request for changing a field.\n\t\t\t */\n\t\t\tnfRadio.channel( 'nfAdmin' ).reply( 'change:field', this.changeField );\n\n\t\t\t/*\n\t\t\t * If we blur our field, set the model attribute of 'clean' to false.\n\t\t\t * 'clean' tracks whether or not the user has every interacted with this element.\n\t\t\t * Some validation, like required, uses this to decide whether or not to add an error.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'blur:field', this.blurField );\n\t\t},\n\n\t\tchangeField: function( el, model ) {\n\t\t\t// Get our current value.\n\t\t\tvar value = nfRadio.channel( model.get( 'type' ) ).request( 'before:updateField', el, model );\n\t\t\tvalue = ( 'undefined' != typeof value ) ? value : nfRadio.channel( model.get( 'parentType' ) ).request( 'before:updateField', el, model );\n\t\t\tvalue = ( 'undefined' != typeof value ) ? value : jQuery( el ).val();\n\n\t\t\t// Set our 'isUpdated' flag to false.\n\t\t\tmodel.set( 'isUpdated', false );\n\n\t\t\t// Set our 'clean' flag to false.\n\t\t\tmodel.set( 'clean', false );\n\n\t\t\t/*\n\t\t\t * Send out a message saying that we've changed a field.\n\t\t\t * The first channel is field id/key specific.\n\t\t\t * The second channel is the field type, i.e. text, email, radio\n\t\t\t * The third channel is a generic 'field' channel.\n\t\t\t *\n\t\t\t * If the submitted value you wish to store in the data model isn't the same as the value received above,\n\t\t\t * you can set that model in the actions below and set the 'isUpdated' model attribute to true.\n\t\t\t * i.e. model.set( 'isUpdated', true );\n\t\t\t */\n\t\t\tnfRadio.channel( 'field-' + model.get( 'id' ) ).trigger( 'change:field', el, model );\n\t\t\tnfRadio.channel( model.get( 'type' ) ).trigger( 'change:field', el, model );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'change:field', el, model );\n\n\t\t\t/*\n\t\t\t * Send a request out on our nfAdmin channel to update our field model.\n\t\t\t * If the field model has a 'isUpdated' property of false, nothing will be updated.\n\t\t\t */\n\t\t\tnfRadio.channel( 'nfAdmin' ).request( 'update:field', model, value );\n\t\t},\n\n\t\tblurField: function( el, model ) {\n\t\t\t// Set our 'clean' flag to false.\n\t\t\tmodel.set( 'clean', false );\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/changeEmail',[], function() {\n\tvar radioChannel = nfRadio.channel( 'email' );\n\t// var emailReg = /^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\n\tvar emailReg = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\tvar errorID = 'invalid-email';\n\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( radioChannel, 'change:modelValue', this.onChangeModelValue );\n\t\t\tthis.listenTo( radioChannel, 'keyup:field', this.emailKeyup );\n\t\t\tthis.listenTo( radioChannel, 'blur:field', this.onBlurField );\n\t\t},\n\n\t\tonChangeModelValue: function( model ) {\n\t\t\tvar value = model.get( 'value' );\n\t\t\tvar fieldID = model.get( 'id' );\n\t\t\tthis.emailChange( value, fieldID );\n\t\t},\n\n\t\tonBlurField: function( el, model ) {\n\t\t\tvar value = jQuery( el ).val();\n\t\t\tvar fieldID = model.get( 'id' );\n\t\t\tthis.emailChange( value, fieldID );\n\t\t},\n\n\t\temailChange: function( value, fieldID ) {\n\t\t\tif ( 0 < value.length ) {\n\t\t\t\tif( emailReg.test( value ) ) {\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t\t} else {\n\t\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', fieldID );\n\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', fieldID, errorID, formModel.get( 'settings' ).changeEmailErrorMsg );\n\t\t\t\t}\t\t\t\t\n\t\t\t} else {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * When a user types inside of an email field, track their keypresses and add the appropriate class.\n\t\t * If the value validates as an email, add a class of nf-pass\n\t\t * If the value does not validate as email, add a class of nf-fail\n\t\t * \n\t\t * @since 3.0\n\t\t * @param {object} el Element that triggered the keyup event.\n\t\t * @param {object} model Model connected to the element that triggered the event\n\t\t * @return {void}\n\t\t */\n\t\temailKeyup: function( el, model, keyCode ) {\n\t\t\t\n\t\t\t/*\n\t\t\t * If we pressed the 'tab' key to get to this field, return false.\n\t\t\t */\n\t\t\tif ( 9 == keyCode ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Get the current value from our element.\n\t\t\t */\n\t\t\tvar value = jQuery( el ).val();\n\n\t\t\t/*\n\t\t\t * Get our current ID\n\t\t\t */\n\t\t\tvar fieldID = model.get( 'id' );\n\n\t\t\t/*\n\t\t\t * Check our value to see if it is a valid email.\n\t\t\t */\n\t\t\tif ( 0 == value.length ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t} else if ( ! emailReg.test( value ) && ! model.get( 'clean' ) ) {\n\n\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', fieldID );\n\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', fieldID, errorID, formModel.get( 'settings' ).changeEmailErrorMsg );\n\n\t\t\t\tmodel.removeWrapperClass( 'nf-pass' );\n\t\t\t} else if ( emailReg.test( value ) ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t\t/*\n\t\t\t\t * Add nf-pass class to the wrapper.\n\t\t\t\t */\n\t\t\t\tmodel.addWrapperClass( 'nf-pass' );\n\t\t\t\tmodel.set( 'clean', false );\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/changeDate',[], function() {\n\tvar radioChannel = nfRadio.channel( 'date' );\n\tvar errorID = 'invalid-date';\n\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( radioChannel, 'change:modelValue', this.onChangeModelValue );\n\t\t\tthis.listenTo( radioChannel, 'keyup:field', this.dateKeyup );\n\t\t\tthis.listenTo( radioChannel, 'blur:field', this.onBlurField );\n\t\t},\n\n\t\tonChangeModelValue: function( model ) {\n\t\t\tthis.dateChange( model );\n\t\t},\n\n\t\tonBlurField: function( el, model ) {\n\t\t\tthis.dateChange( model );\n\t\t},\n\n\t\tdateChange: function( model ) {\n\t\t\tvar fieldID = model.get( 'id' );\n\t\t\tvar value = model.get( 'value' );\n\t\t\tvar format = model.get( 'date_format' );\n\n\t\t\tif( 'default' === format) {\n\t\t\t\tformat = nfi18n.dateFormat;\n\t\t\t}\n\n\t\t\tif ( 0 < value.length ) {\n\t\t\t\t// use moment's isValid to check against the fields format setting\n\t\t\t\tif( moment( value, format ).isValid() ) {\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t\t} else {\n\t\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', fieldID );\n\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', fieldID, errorID, formModel.get( 'settings' ).changeDateErrorMsg );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * When a user types inside of an dat field, track their keypresses\n\t\t * and add the appropriate class.\n\t\t * If the value validates as an date, add a class of nf-pass\n\t\t * If the value does not validate as date, add a class of nf-fail\n\t\t *\n\t\t * @since 3.0\n\t\t * @param {object} el Element that triggered the keyup event.\n\t\t * @param {object} model Model connected to the element that triggered the event\n\t\t * @return {void}\n\t\t */\n\t\tdateKeyup: function( el, model, keyCode ) {\n\n\t\t\t/*\n\t\t\t * If we pressed the 'tab' key to get to this field, return false.\n\t\t\t */\n\t\t\tif ( 9 == keyCode ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Get the current value from our element.\n\t\t\t */\n\t\t\tvar value = jQuery( el ).val();\n\n\t\t\t/*\n\t\t\t * Get our current ID\n\t\t\t */\n\t\t\tvar fieldID = model.get( 'id' );\n\n\t\t\t/*\n\t\t\t* Get our current date format\n\t\t\t */\n\t\t\tvar format = model.get( 'date_format' );\n\n\t\t\tif( 'default' === format) {\n\t\t\t\tformat = nfi18n.dateFormat;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Check our value to see if it is a valid email.\n\t\t\t */\n\t\t\tif ( 0 == value.length ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t}\n\t\t\t// use moment's isValid to check against the fields format setting\n\t\t\telse if ( ! moment( value, format ).isValid() && ! model.get( 'clean' ) ) {\n\n\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', fieldID );\n\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', fieldID, errorID, formModel.get( 'settings' ).changeDateErrorMsg );\n\n\t\t\t\tmodel.removeWrapperClass( 'nf-pass' );\n\t\t\t}\n\t\t\t// use moment's isValid to check against the fields format setting\n\t\t\telse if ( moment( value, format ).isValid() ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t\t/*\n\t\t\t\t * Add nf-pass class to the wrapper.\n\t\t\t\t */\n\t\t\t\tmodel.addWrapperClass( 'nf-pass' );\n\t\t\t\tmodel.set( 'clean', false );\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/fieldCheckbox',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * When we init our checkbox model, register our renderClasses() function\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'checkbox' ), 'init:model', this.registerRenderClasses );\n\n\t\t\tnfRadio.channel( 'checkbox' ).reply( 'validate:required', this.validateRequired );\n\t\t\tnfRadio.channel( 'checkbox' ).reply( 'validate:modelData', this.validateModelData );\n nfRadio.channel( 'checkbox' ).reply( 'before:updateField', this.beforeUpdateField, this );\n nfRadio.channel( 'checkbox' ).reply( 'get:calcValue', this.getCalcValue, this );\n\t\t},\n\n\t\tbeforeUpdateField: function( el, model ) {\n\t\t\tvar checked = jQuery( el ).prop( 'checked' );\n\t\t\tif ( checked ) {\n\t\t\t\tvar value = 1;\n\t\t\t\tjQuery( el ).addClass( 'nf-checked' );\n\t\t\t\tjQuery( el ).closest( '.field-wrap' ).find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).addClass( 'nf-checked-label' );\n\t\t\t} else {\n\t\t\t\tvar value = 0;\n\t\t\t\tjQuery( el ).removeClass( 'nf-checked' );\n\t\t\t\tjQuery( el ).closest( '.field-wrap' ).find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).removeClass( 'nf-checked-label' );\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\n\t\tvalidateRequired: function( el, model ) {\n\t\t\treturn el[0].checked;\n\t\t},\n\n\t\tvalidateModelData: function( model ) {\n\t\t\treturn model.get( 'value' ) != 0;\n\t\t},\n\n\t\tgetCalcValue: function( fieldModel ) {\n\t\t\tif ( 1 == fieldModel.get( 'value' ) ) {\n\t\t\t\tcalcValue = fieldModel.get( 'checked_calc_value' );\n\t\t\t} else {\n\t\t\t\tcalcValue = fieldModel.get( 'unchecked_calc_value' );\n\t\t\t}\n\n\t\t\treturn calcValue;\n\t\t},\n\n\t\tregisterRenderClasses: function( model ) {\n\t\t\tif ( 'checked' == model.get( 'default_value' ) ) {\n\t\t\t\tmodel.set( 'value', 1 );\n\t\t\t} else {\n\t\t\t\tmodel.set( 'value', 0 );\n\t\t\t}\n\t\t\tmodel.set( 'customClasses', this.customClasses );\n\t\t\tmodel.set( 'customLabelClasses', this.customLabelClasses );\n\t\t\tmodel.set( 'maybeChecked', this.maybeChecked );\n\t\t},\n\n\t\tcustomClasses: function( classes ) {\n\t\t\tif ( 1 == this.value || ( this.clean && 'undefined' != typeof this.default_value && 'checked' == this.default_value ) ) {\n\t\t\t\tclasses += ' nf-checked';\n\t\t\t} else {\n\t\t\t\tclasses.replace( 'nf-checked', '' );\n\t\t\t}\n\t\t\treturn classes;\n\t\t},\n\n\t\tcustomLabelClasses: function( classes ) {\n\t\t\tif ( 1 == this.value || ( this.clean && 'undefined' != typeof this.default_value && 'checked' == this.default_value ) ) {\n\t\t\t\tclasses += ' nf-checked-label';\n\t\t\t} else {\n\t\t\t\tclasses.replace( 'nf-checked-label', '' );\n\t\t\t}\n\t\t\treturn classes;\n\t\t},\n\n\t\tmaybeChecked: function() {\n\t\t\tif ( 1 == this.value || ( this.clean && 'undefined' != typeof this.default_value && 'checked' == this.default_value ) ) {\n\t\t\t\treturn ' checked';\n\t\t\t} else {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/fieldCheckboxList',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'listcheckbox' ), 'init:model', this.register );\n this.listenTo( nfRadio.channel( 'terms' ), 'init:model', this.register );\n nfRadio.channel( 'listcheckbox' ).reply( 'before:updateField', this.beforeUpdateField, this );\n nfRadio.channel( 'terms' ).reply( 'before:updateField', this.beforeUpdateField, this );\n nfRadio.channel( 'listcheckbox' ).reply( 'get:calcValue', this.getCalcValue, this );\n nfRadio.channel( 'terms' ).reply( 'get:calcValue', this.getCalcValue, this );\n },\n\n register: function( model ) {\n model.set( 'renderOptions', this.renderOptions );\n model.set( 'renderOtherText', this.renderOtherText );\n model.set( 'selected', [] );\n\n /*\n * When we init a model, we need to set our 'value' to the selected option's value.\n * This is the list equivalent of a 'default value'.\n */ \n if ( 0 != model.get( 'options' ).length ) {\n var selected = _.filter( model.get( 'options' ), function( opt ) { return 1 == opt.selected } );\n selected = _.map( selected, function( opt ) { return opt.value } );\n }\n\n /*\n * This part is re-worked to take into account custom user-meta\n * values for fields.\n */\n\t var savedVal = model.get( 'value' );\n\t if( 'undefined' !== typeof savedVal && Array.isArray( savedVal ) ) {\n\t\t model.set( 'value', savedVal );\n\t } else if ( 'undefined' != typeof selected ) {\n\t\t model.set( 'value', selected );\n\t }\n },\n\n renderOptions: function() {\n var html = '';\n\n if ( '' == this.value || ( Array.isArray( this.value ) && 0 < this.value.length )\n || 0 < this.value.length ) {\n var valueFound = true;\n } else {\n var valueFound = false;\n }\n\n _.each( this.options, function( option, index ) {\n if( Array.isArray( this.value ) ) {\n \tif( Array.isArray( this.value[ 0 ] ) && -1 !== _.indexOf( this.value[ 0 ], option.value ) ) {\n \t\tvalueFound = true;\n\t }\n else if( _.indexOf( this.value, option.value ) ) {\n valueFound = true;\n\t }\n }\n\n if ( option.value == this.value ) {\n valueFound = true;\n }\n\n /*\n * TODO: This is a bandaid fix for making sure that each option has a \"visible\" property.\n * This should be moved to creation so that when an option is added, it has a visible property by default.\n */\n if ( 'undefined' == typeof option.visible ) {\n option.visible = true;\n }\n\n option.fieldID = this.id;\n option.classes = this.classes;\n option.index = index;\n\n var selected = false;\n\t\t\t\t/*\n\t\t\t\t* This part has been re-worked to account for values passed in\n\t\t\t\t* via custom user-meta ( a la User Mgmt add-on)\n\t\t\t\t */\n\t if( Array.isArray( this.value ) && 0 < this.value.length ) {\n\t \tif ( -1 !== _.indexOf( this.value[ 0 ].split( ',' ), option.value )\n\t\t || -1 !== _.indexOf( this.value, option.value ) ) {\n\t\t\t selected = true;\n\t \t}\n\t } else if ( ! _.isArray( this.value ) && option.value == this.value ) {\n\t\t selected = true;\n\t } else if ( ( 1 == option.selected && this.clean ) && 'undefined' === typeof this.value ) {\n\t\t selected = true;\n\t }\n\n\n // else if( ( option.selected && \"0\" != option.selected ) && this.clean ){\n\t // isSelected = true;\n\t // } else {\n\t // var testValues = _.map( this.value, function( value ) {\n\t // return value.toString();\n\t // } );\n\t //\n\t // option.isSelected = ( -1 != testValues.indexOf( option.value.toString() ) );\n\t // }\n\t option.selected = selected;\n\t option.isSelected = selected;\n\t option.required = this.required;\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listcheckbox-option' );\n html += template( option );\n }, this );\n\n if ( 1 == this.show_other ) {\n if ( 'nf-other' == this.value ) {\n valueFound = false;\n }\n var data = {\n fieldID: this.id,\n classes: this.classes,\n currentValue: this.value,\n renderOtherText: this.renderOtherText,\n valueFound: valueFound\n };\n\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listcheckbox-other' );\n html += template( data );\n\n }\n\n return html;\n },\n\n renderOtherText: function() {\n if ( 'nf-other' == this.currentValue || ! this.valueFound ) {\n if ( 'nf-other' == this.currentValue ) {\n this.currentValue = '';\n }\n var data = {\n fieldID: this.fieldID,\n classes: this.classes,\n currentValue: this.currentValue\n };\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listcheckbox-other-text' );\n return template( data );\n }\n },\n\n getCalcValue: function( fieldModel ) {\n var calc_value = 0;\n var options = fieldModel.get( 'options' );\n if ( 0 != options.length ) {\n _.each( fieldModel.get( 'value' ), function( val ) {\n var tmp_opt = _.find( options, function( opt ) { return opt.value == val } );\n calc_value = Number( calc_value ) + Number( tmp_opt.calc );\n } );\n }\n return calc_value;\n },\n\n beforeUpdateField: function( el, model ) {\n var selected = model.get( 'value' ) || [];\n if ( typeof selected == 'string' ) selected = [ selected ];\n\n var value = jQuery( el ).val();\n var checked = jQuery( el ).prop( 'checked' );\n if ( checked ) {\n selected.push( value );\n jQuery( el ).addClass( 'nf-checked' );\n jQuery( el ).parent().find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).addClass( 'nf-checked-label' );\n } else {\n jQuery( el ).removeClass( 'nf-checked' );\n jQuery( el ).parent().find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).removeClass( 'nf-checked-label' );\n var i = selected.indexOf( value );\n if( -1 != i ){\n selected.splice( i, 1 );\n } else if ( Array.isArray( selected ) ) {\n \tvar optionArray = selected[0].split( ',' );\n \tvar valueIndex = optionArray.indexOf( value );\n \tif( -1 !== valueIndex) {\n \t\toptionArray.splice( valueIndex, 1 );\n\t }\n \tselected = optionArray.join( ',' );\n }\n }\n\n // if ( 1 == model.get( 'show_other' ) ) {\n // model.set( 'reRender', true );\n // }\n\n return _.clone( selected );\n }\n });\n\n return controller;\n} );\ndefine('controllers/fieldImageList',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'listimage' ), 'init:model', this.register );\n nfRadio.channel( 'listimage' ).reply( 'before:updateField', this.beforeUpdateField, this );\n nfRadio.channel( 'listimage' ).reply( 'get:calcValue', this.getCalcValue, this );\n },\n\n register: function( model ) {\n model.set( 'renderOptions', this.renderOptions );\n model.set( 'renderOtherText', this.renderOtherText );\n model.set( 'selected', [] );\n\n /*\n * When we init a model, we need to set our 'value' to the selected option's value.\n * This is the list equivalent of a 'default value'.\n */ \n if ( 0 != model.get( 'image_options' ).length ) {\n var selected = _.filter( model.get( 'image_options' ), function( opt ) { return 1 == opt.selected } );\n selected = _.map( selected, function( opt ) { return opt.value } );\n }\n\n /*\n * This part is re-worked to take into account custom user-meta\n * values for fields.\n */\n\t var savedVal = model.get( 'value' );\n\t if( 'undefined' !== typeof savedVal && Array.isArray( savedVal ) ) {\n\t\t model.set( 'value', savedVal );\n\t } else if ( 'undefined' != typeof selected ) {\n\t\t model.set( 'value', selected );\n\t }\n },\n\n renderOptions: function() {\n var html = '';\n \n if ( '' == this.value || ( Array.isArray( this.value ) && 0 < this.value.length )\n || 0 < this.value.length ) {\n var valueFound = true;\n } else {\n var valueFound = false;\n }\n\n if (this.allow_multi_select === 1) {\n this.old_classname = 'list-checkbox';\n this.image_type = 'checkbox';\n } else {\n this.image_type = 'radio';\n }\n\n if(this.list_orientation === 'horizontal') {\n this.flex_direction = 'row';\n } else {\n this.flex_direction = 'column';\n }\n var that = this;\n\n var num_columns = parseInt(this.num_columns) || 1;\n var current_column = 1;\n var current_row = 1;\n \n _.each( this.image_options, function( image, index ) {\n if (!this.show_option_labels) {\n image.label = '';\n }\n if( Array.isArray( this.value ) ) {\n \tif( Array.isArray( this.value[ 0 ] ) && -1 !== _.indexOf( this.value[ 0 ], image.value ) ) {\n \t\tvalueFound = true;\n\t }\n else if( _.indexOf( this.value, image.value ) ) {\n valueFound = true;\n\t }\n }\n\n if ( image.value == this.value ) {\n valueFound = true;\n }\n\n /*\n * TODO: This is a bandaid fix for making sure that each option has a \"visible\" property.\n * This should be moved to creation so that when an option is added, it has a visible property by default.\n */\n if ( 'undefined' == typeof image.visible ) {\n image.visible = true;\n }\n \n if(that.list_orientation === 'horizontal' && current_column <= num_columns) {\n image.styles = \"margin:auto;grid-column: \" + current_column + \"; grid-row = \" + current_row;\n\n if(current_column === num_columns) {\n current_column = 1;\n current_row += 1;\n } else {\n current_column += 1;\n }\n }\n\n image.image_type = that.image_type; \n image.fieldID = this.id;\n image.classes = this.classes;\n image.index = index;\n\n var selected = false;\n\t\t\t\t/*\n\t\t\t\t* This part has been re-worked to account for values passed in\n\t\t\t\t* via custom user-meta ( a la User Mgmt add-on)\n\t\t\t\t */\n\t if( Array.isArray( this.value ) && 0 < this.value.length ) {\n\t \tif ( -1 !== _.indexOf( this.value[ 0 ].split( ',' ), image.value )\n\t\t || -1 !== _.indexOf( this.value, image.value ) ) {\n\t\t\t selected = true;\n\t \t}\n\t } else if ( ! _.isArray( this.value ) && image.value == this.value ) {\n\t\t selected = true;\n\t } else if ( ( 1 == image.selected && this.clean ) && ('undefined' === typeof this.value || '' === this.value)) {\n\t\t selected = true;\n\t }\n\n\t image.selected = selected;\n\t image.isSelected = selected;\n\t image.required = this.required;\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listimage-option' );\n html += template( image );\n }, this );\n\n if ( 1 == this.show_other ) {\n if ( 'nf-other' == this.value ) {\n valueFound = false;\n }\n var data = {\n fieldID: this.id,\n classes: this.classes,\n value: this.value,\n currentValue: this.value,\n renderOtherText: this.renderOtherText,\n valueFound: valueFound\n };\n\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listimage-other' );\n html += template( data );\n\n }\n\n return html;\n },\n\n renderOtherText: function() {\n if ( 'nf-other' == this.currentValue || ! this.valueFound ) {\n if ( 'nf-other' == this.currentValue ) {\n this.currentValue = '';\n }\n var data = {\n fieldID: this.fieldID,\n classes: this.classes,\n currentValue: this.currentValue\n };\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listimage-other-text' );\n return template( data );\n }\n },\n\n getCalcValue: function( fieldModel ) {\n\t\t\tvar calc_value = 0;\n\t\t\tvar options = fieldModel.get( 'options' );\n\t\t\tif ( 0 != options.length ) {\n\t\t\t\t/*\n\t\t\t\t * Check to see if this is a multi-select list.\n\t\t\t\t */\n\t\t\t\tif ( 1 == parseInt( fieldModel.get( 'allow_multi_select' ) ) ) {\n\t\t\t\t\t/*\n\t\t\t\t\t * We're using a multi-select, so we need to check out any selected options and add them together.\n\t\t\t\t\t */\n\t\t\t\t\t_.each( fieldModel.get( 'value' ), function( val ) {\n\t\t\t\t\t\tvar tmp_opt = _.find( options, function( opt ) { return opt.value == val } );\n\t\t\t\t\t\tcalc_value += Number( tmp_opt.calc );\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\t/*\n\t\t\t\t\t * We are using a single select, so our selected option is in the 'value' attribute.\n\t\t\t\t\t */\n\t\t\t\t\tvar selected = _.find( options, function( opt ) { return fieldModel.get( 'value' ) == opt.value } );\n\t\t\t\t\t/*\n\t\t\t\t\t * If we have a selcted value, use it.\n\t\t\t\t\t */\n\t\t\t\t\tif ( 'undefined' !== typeof selected ) {\n calc_value = selected.calc;\n\t\t\t\t\t}\t\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn calc_value;\n },\n\n beforeUpdateField: function( el, model ) {\n\n if(model.get('allow_multi_select') !== 1) {\n var selected = jQuery( el ).val();\n var options = model.get('image_options');\n _.each(options, function(option, index) {\n if(option.value === selected) {\n option.isSelected = true;\n option.selected = true;\n } else {\n option.isSelected = false;\n option.selected = false;\n }\n if(!option.isSelected) {\n option.selected = false;\n jQuery(\"#nf-field-\" + option.fieldID + \"-\" + index).removeClass('nf-checked');\n jQuery(\"#nf-label-field-\" + option.fieldID + \"-\" + index).removeClass('nf-checked-label');\n } else {\n jQuery(\"#nf-field-\" + option.fieldID + \"-\" + index).addClass('nf-checked');\n jQuery(\"#nf-label-field-\" + option.fieldID + \"-\" + index).addClass('nf-checked-label');\n }\n });\n } else {\n var selected = model.get( 'value' ) || [];\n if ( typeof selected == 'string' ) selected = [ selected ];\n var value = jQuery( el ).val();\n var checked = jQuery( el ).prop( 'checked' );\n if ( checked ) {\n selected.push( value );\n jQuery( el ).addClass( 'nf-checked' );\n jQuery( el ).parent().find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).addClass( 'nf-checked-label' );\n } else {\n jQuery( el ).removeClass( 'nf-checked' );\n jQuery( el ).parent().find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).removeClass( 'nf-checked-label' );\n var i = selected.indexOf( value );\n if( -1 != i ){\n selected.splice( i, 1 );\n } else if ( Array.isArray( selected ) ) {\n var optionArray = selected[0].split( ',' );\n var valueIndex = optionArray.indexOf( value );\n if( -1 !== valueIndex) {\n optionArray.splice( valueIndex, 1 );\n }\n selected = optionArray.join( ',' );\n }\n }\n }\n\n return _.clone( selected );\n }\n });\n\n return controller;\n} );\ndefine('controllers/fieldRadio',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'listradio' ), 'change:modelValue', this.changeModelValue );\n\t\t\tthis.listenTo( nfRadio.channel( 'listradio' ), 'init:model', this.register );\n\t\t\tnfRadio.channel( 'listradio' ).reply( 'get:calcValue', this.getCalcValue, this );\n\t\t\t\n\t\t\tthis.listenTo( nfRadio.channel( 'listradio' ), 'change:field', this.updateCheckedClass, this );\n\t\t},\n\n\t\tregister: function( model ) {\n\t\t\tmodel.set( 'renderOptions', this.renderOptions );\n\t\t\tmodel.set( 'renderOtherText', this.renderOtherText );\n\t\t\t/*\n\t\t\t * When we init a model, we need to set our 'value' to the selected option's value.\n\t\t\t * This is the list equivalent of a 'default value'.\n\t\t\t */ \n\t\t\tif ( 0 != model.get( 'options' ).length ) {\n\t\t\t\t/*\n\t\t\t\t * Check to see if we have a selected value.\n\t\t\t\t */\n\t\t\t\tvar selected = _.find( model.get( 'options' ), function( opt ) { return 1 == opt.selected } );\n\n\t\t\t\tif ( 'undefined' != typeof selected ) {\n\t\t\t\t\tmodel.set( 'value', selected.value );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tchangeModelValue: function( model ) {\n\t\t\tif ( 1 == model.get( 'show_other' ) ) {\n\t\t\t\t// model.set( 'reRender', true );\n\t\t\t\tmodel.trigger( 'reRender');\n\t\t\t}\n\t\t},\n\n\t\trenderOptions: function() {\n\t\t\tvar html = '';\n\t\t\tif ( '' == this.value ) {\n\t\t\t\tvar valueFound = true;\n\t\t\t} else {\n\t\t\t\tvar valueFound = false;\n\t\t\t}\n\t\t\t\n\t\t\t_.each( this.options, function( option, index ) {\n\t\t\t\tif ( option.value == this.value ) {\n\t\t\t\t\tvalueFound = true;\n\t\t\t\t}\n\n\t\t\t\t/*\n * TODO: This is a bandaid fix for making sure that each option has a \"visible\" property.\n * This should be moved to creation so that when an option is added, it has a visible property by default.\n */\n if ( 'undefined' == typeof option.visible ) {\n option.visible = true;\n }\n\n option.selected = false;\n\t\t\t\toption.fieldID = this.id;\n\t\t\t\toption.classes = this.classes;\n\t\t\t\toption.currentValue = this.value;\n\t\t\t\toption.index = index;\n\t\t\t\toption.required = this.required;\n\n\t\t\t\t/*\n\t\t\t\t * If we haven't edited this field yet, use the default checked\n\t\t\t\t */\n\t\t\t\tif ( this.clean && 1 == this.selected ) {\n\t\t\t\t\toption.selected = true;\n\t\t\t\t} else if ( this.value == option.value ) {\n\t\t\t\t\toption.selected = true;\n\t\t\t\t} else {\n\t\t\t\t\toption.selected = false;\n\t\t\t\t}\n\n\t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listradio-option' );\n\n\t\t\t\thtml += template( option );\n\t\t\t}, this );\n\n\t\t\tif ( 1 == this.show_other ) {\n\t\t\t\tif ( 'nf-other' == this.value ) {\n\t\t\t\t\tvalueFound = false;\n\t\t\t\t}\n\t\t\t\tvar data = {\n\t\t\t\t\tfieldID: this.id,\n\t\t\t\t\tclasses: this.classes,\n\t\t\t\t\tcurrentValue: this.value,\n\t\t\t\t\trenderOtherText: this.renderOtherText,\n\t\t\t\t\tvalueFound: valueFound\n\t\t\t\t};\n\t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listradio-other' );\n\t\t\t\thtml += template( data );\n\t\t\t}\n\n\t\t\treturn html;\n\t\t},\n\n\t\trenderOtherText: function() {\n\t\t\tif ( 'nf-other' == this.currentValue || ! this.valueFound ) {\n\t\t\t\tif ( 'nf-other' == this.currentValue ) {\n\t\t\t\t\tthis.currentValue = '';\n\t\t\t\t}\n\t\t\t\tvar data = {\n\t\t\t\t\tfieldID: this.fieldID,\n\t\t\t\t\tclasses: this.classes,\n\t\t\t\t\tcurrentValue: this.currentValue\n\t\t\t\t};\n\t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listradio-other-text' );\n\t\t\t\treturn template( data );\n\t\t\t}\n\t\t},\n\n\t\tgetCalcValue: function( fieldModel ) {\n\t\t\t\n /*\n * Default to 0, in case we have no selection.\n */\n var calc_value = 0;\n \n\t\t\tif ( 0 != fieldModel.get( 'options' ).length ) {\n\t\t\t\t/*\n\t\t\t\t * Check to see if we have a selected value.\n\t\t\t\t */\n\t\t\t\tvar selected = _.find( fieldModel.get( 'options' ), function( opt ) { return fieldModel.get( 'value' ) == opt.value } );\n\t\t\t\tif ( 'undefined' !== typeof selected ) {\n calc_value = selected.calc;\n\t\t\t\t}\n\n\t\t\t}\n\t\t\treturn calc_value;\n\t\t},\n\n\t\tupdateCheckedClass: function( el, model ) {\n\t\t\tjQuery( '[name=\"' + jQuery( el ).attr( 'name' ) + '\"]' ).removeClass( 'nf-checked' );\n\t\t\tjQuery( el ).closest( 'ul' ).find( 'label' ).removeClass( 'nf-checked-label' );\n\t\t\tjQuery( el ).addClass( 'nf-checked' );\n\t\t\tjQuery( el ).closest( 'li' ).find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).addClass( 'nf-checked-label' );\n\n\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/fieldNumber',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'number' ), 'init:model', this.maybeMinDefault );\n this.listenTo( nfRadio.channel( 'number' ), 'keyup:field', this.validateMinMax );\n },\n\n maybeMinDefault: function( model ) {\n\n if( '' == model.get( 'value' ) && '' == model.get( 'placeholder' ) ){\n var min = model.get( 'num_min' );\n model.set( 'placeholder', min );\n }\n },\n\n validateMinMax: function( el, model ) {\n var $el = jQuery( el );\n var value = parseFloat( $el.val() );\n var min = $el.attr( 'min' );\n var max = $el.attr( 'max' );\n var step = parseFloat( $el.attr( 'step' ) );\n\n if( min && value < min ){\n var fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', model.get( 'id' ) );\n var formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n nfRadio.channel( 'fields' ).request( 'add:error', model.get( 'id' ), 'number-min', formModel.get( 'settings' ).fieldNumberNumMinError );\n } else {\n nfRadio.channel( 'fields' ).request( 'remove:error', model.get( 'id' ), 'number-min' );\n }\n\n if ( max && value > max ){\n var fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', model.get( 'id' ) );\n var formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n nfRadio.channel( 'fields' ).request( 'add:error', model.get( 'id' ), 'number-max', formModel.get( 'settings' ).fieldNumberNumMaxError );\n } else {\n nfRadio.channel( 'fields' ).request( 'remove:error', model.get( 'id' ), 'number-max' );\n }\n\n var testValue = Math.round( parseFloat( value ) * 1000000000 );\n var testStep = Math.round( parseFloat( step ) * 1000000000 );\n\n if( value && 0 !== testValue % testStep ){\n var fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', model.get( 'id' ) );\n var formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n nfRadio.channel( 'fields' ).request( 'add:error', model.get( 'id' ), 'number-step', formModel.get( 'settings' ).fieldNumberIncrementBy + step );\n } else {\n nfRadio.channel( 'fields' ).request( 'remove:error', model.get( 'id' ), 'number-step' );\n }\n }\n\n });\n\n return controller;\n} );\ndefine( 'controllers/mirrorField',[], function() {\n\tvar radioChannel = nfRadio.channel( 'fields' );\n\n\tvar controller = Marionette.Object.extend( {\n\t\tlisteningModel: '',\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( radioChannel, 'init:model', this.registerMirror );\n\t\t},\n\n\t\tregisterMirror: function( model ) {\n\t\t\tif ( model.get( 'mirror_field' ) ) {\n\t\t\t\tthis.listeningModel = model;\n\t\t\t\tvar targetID = model.get( 'mirror_field' );\n\t\t\t\tthis.listenTo( nfRadio.channel( 'field-' + targetID ), 'change:modelValue', this.changeValue );\n\t\t\t}\n\t\t},\n\n\t\tchangeValue: function( targetModel ) {\n\t\t\tthis.listeningModel.set( 'value', targetModel.get( 'value' ) );\n\t\t\t// this.listeningModel.set( 'reRender', true );\n\t\t\tthis.listeningModel.trigger( 'reRender' );\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine( 'controllers/confirmField',[], function() {\n\tvar radioChannel = nfRadio.channel( 'fields' );\n\tvar errorID = 'confirm-mismatch';\n\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( radioChannel, 'init:model', this.registerConfirm );\n\t\t\tthis.listenTo( radioChannel, 'keyup:field', this.confirmKeyup );\n\t\t},\n\n\t\tregisterConfirm: function( confirmModel ) {\n\t\t\tif ( ! confirmModel.get( 'confirm_field' ) ) return;\n\n\t\t\tthis.listenTo( nfRadio.channel( 'form' ), 'loaded', function( formModal ){\n\t\t\t\tthis.registerConfirmListeners( confirmModel );\n\t\t\t});\n\t\t},\n\n\t\tregisterConfirmListeners: function( confirmModel ) {\n\t\t\t\n\t\t\tvar targetModel = nfRadio.channel( 'form-' + confirmModel.get( 'formID' ) ).request( 'get:fieldByKey', confirmModel.get( 'confirm_field' ) );\n\n\t\t\t//TODO: Add better handling for password confirm fields on the front end.\n\t\t\tif( 'undefined' == typeof targetModel ) return;\n\n\t\t\ttargetModel.set( 'confirm_with', confirmModel.get( 'id' ) );\n\t\t\tthis.listenTo( nfRadio.channel( 'field-' + targetModel.get( 'id' ) ), 'change:modelValue', this.changeValue );\n\t\t\tthis.listenTo( nfRadio.channel( 'field-' + confirmModel.get( 'id' ) ), 'change:modelValue', this.changeValue );\n\t\t},\n\n\t\tchangeValue: function( model ) {\n\t\t\tif ( 'undefined' == typeof model.get( 'confirm_with' ) ) {\n\t\t\t\tvar confirmModel = model;\n\t\t\t\tvar targetModel = nfRadio.channel( 'form-' + model.get( 'formID' ) ).request( 'get:fieldByKey', confirmModel.get( 'confirm_field' ) );\n\t\t\t} else {\n\t\t\t\tvar targetModel = model;\n\t\t\t\tvar confirmModel = radioChannel.request( 'get:field', targetModel.get( 'confirm_with' ) );\n\t\t\t}\n\t\t\tvar targetID = targetModel.get( 'id' );\n\t\t\tvar confirmID = confirmModel.get( 'id' );\n\n\t\t\tif ( '' == confirmModel.get( 'value' ) || confirmModel.get( 'value' ) == targetModel.get( 'value' ) ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', confirmID, errorID );\n\t\t\t} else {\n\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', confirmID );\n\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', confirmID, errorID, formModel.get( 'settings' ).confirmFieldErrorMsg );\n\t\t\t}\n\t\t},\n\t\t\n\t\tconfirmKeyup: function( el, model, keyCode ) {\n\n\t\t\tvar currentValue = jQuery( el ).val();\n\t\t\tif ( model.get( 'confirm_field' ) ) {\n\t\t\t\tvar confirmModel = model;\n\t\t\t\tvar confirmID = model.get( 'id' );\n\t\t\t\tvar targetModel = nfRadio.channel( 'form-' + model.get( 'formID' ) ).request( 'get:fieldByKey', confirmModel.get( 'confirm_field' ) );\n\t\t\t\tvar compareValue = targetModel.get( 'value' );\n\t\t\t\tvar confirmValue = currentValue;\n\t\t\t} else if ( model.get( 'confirm_with' ) ) {\n\t\t\t\tvar confirmModel = nfRadio.channel( 'fields' ).request( 'get:field', model.get( 'confirm_with' ) );\n\t\t\t\tvar confirmID = confirmModel.get( 'id' );\n\t\t\t\tvar confirmValue = confirmModel.get( 'value' );\n\t\t\t\tvar compareValue = confirmValue;\n\t\t\t}\n\n\t\t\tif ( 'undefined' !== typeof confirmModel ) {\n\t\t\t\tif ( '' == confirmValue ) {\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', confirmID, errorID );\n\t\t\t\t} else if ( currentValue == compareValue ) {\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', confirmID, errorID );\n\t\t\t\t} else {\n\t\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', confirmID );\n\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', confirmID, errorID, formModel.get( 'settings' ).confirmFieldErrorMsg );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/updateFieldModel',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'nfAdmin' ).reply( 'update:field', this.updateField );\n\t\t},\n\n\t\tupdateField: function( model, value ) {\n\t\t\tif ( ! model.get( 'isUpdated' ) ) {\n\t\t\t\tmodel.set( 'value', value );\n\t\t\t\tmodel.set( 'isUpdated', true );\n\t\t\t\t/*\n\t\t\t\t * If we're working with an array, it won't trigger a change event on the value attribute.\n\t\t\t\t * Instead, we have to manually trigger a change event.\n\t\t\t\t */ \n\t\t\t\tif ( _.isArray( value ) ) {\n\t\t\t\t\tmodel.trigger( 'change:value', model );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/submitButton',['controllers/submitButton'], function( submitButton ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tbound: {},\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'submit' ), 'init:model', this.registerHandlers );\n\t\t},\n\n\t\tregisterHandlers: function( fieldModel ) {\n\t\t\tif ( 'undefined' != typeof this.bound[ fieldModel.get( 'id' ) ] ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.listenTo( nfRadio.channel( 'field-' + fieldModel.get( 'id' ) ), 'click:field', this.click, this );\n\t\t\t/*\n\t\t\t * Register an interest in the 'before:submit' event of our form.\n\t\t\t */\n\t\t\tfieldModel.listenTo( nfRadio.channel( 'form-' + fieldModel.get( 'formID' ) ), 'before:submit', this.beforeSubmit, fieldModel );\n\t\t\tfieldModel.listenTo( nfRadio.channel( 'form-' + fieldModel.get( 'formID' ) ), 'submit:failed', this.resetLabel, fieldModel );\n\t\t\tfieldModel.listenTo( nfRadio.channel( 'form-' + fieldModel.get( 'formID' ) ), 'submit:response', this.resetLabel, fieldModel );\n\t\t\tfieldModel.listenTo( nfRadio.channel( 'form-' + fieldModel.get( 'formID' ) ), 'enable:submit', this.maybeEnable, fieldModel );\n\t\t\tfieldModel.listenTo( nfRadio.channel( 'form-' + fieldModel.get( 'formID' ) ), 'disable:submit', this.maybeDisable, fieldModel );\n\t\t\tfieldModel.listenTo( nfRadio.channel( 'form-' + fieldModel.get( 'formID' ) ), 'processingLabel', this.processingLabel, fieldModel );\n\n\t\t\tfieldModel.listenTo( nfRadio.channel( 'fields' ), 'add:error', this.maybeDisable, fieldModel );\n\t\t\tfieldModel.listenTo( nfRadio.channel( 'fields' ), 'remove:error', this.maybeEnable, fieldModel );\n\t\t\t\n\t\t\tthis.bound[ fieldModel.get( 'id') ] = true;\n\t\t},\n\n\t\tclick: function( e, fieldModel ) {\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\tnfRadio.channel( 'form-' + fieldModel.get( 'formID' ) ).request( 'submit', formModel );\n\t\t},\n\n\t\tbeforeSubmit: function() {\n\t\t\tthis.set( 'disabled', true );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'formID' ) ).trigger( 'processingLabel', this );\n\t\t},\n\n\t\tmaybeDisable: function( fieldModel ) {\n\n\t\t\tif( 'undefined' != typeof fieldModel && fieldModel.get( 'formID' ) != this.get( 'formID' ) ) return;\n\n\t\t\tthis.set( 'disabled', true );\n\t\t\tthis.trigger( 'reRender' );\n\t\t},\n\n\t\tmaybeEnable: function( fieldModel ) {\n\t\t\t/*\n\t\t\t * If the field reporting the error is not on the same form as the submit button, return false;\n\t\t\t */\n\t\t\tif ( 'undefined' != typeof fieldModel && fieldModel.get( 'formID' ) != this.get( 'formID' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', this.get( 'formID' ) );\n\t\t\tif ( 0 == _.size( formModel.get( 'fieldErrors' ) ) ) {\n\t\t\t\tthis.set( 'disabled', false );\n\t\t\t\tthis.trigger( 'reRender' );\n\t\t\t}\n\t\t},\n\n\t\tprocessingLabel: function() {\n\t\t\tif ( this.get( 'label' ) == this.get( 'processing_label' ) ) return false;\n\n\t\t\tthis.set( 'oldLabel', this.get( 'label' ) );\n\t\t\tthis.set( 'label', this.get( 'processing_label' ) );\n\t\t\tthis.trigger( 'reRender' );\n\t\t},\n\n\t\tresetLabel: function( response ) {\n\t\t\tif ( 'undefined' != typeof response.errors &&\n\t\t\t\t 'undefined' != typeof response.errors.nonce &&\n\t\t\t\t _.size( response.errors.nonce ) > 0 ) {\n\t\t\t\tif( 'undefined' != typeof response.errors.nonce.new_nonce && 'undefined' != typeof response.errors.nonce.nonce_ts ) {\n\t\t\t\t\t// Do not reset label for nonce errors, which will re-submit the form.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( 'undefined' != typeof this.get( 'oldLabel' ) ) {\n\t\t\t\tthis.set( 'label', this.get( 'oldLabel' ) );\n\t\t\t}\n\t\t\tthis.set( 'disabled', false );\n\t\t\tthis.trigger( 'reRender' );\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/submitDebug',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'forms' ), 'submit:response', this.submitDebug );\n },\n\n submitDebug: function( response, textStatus, jqXHR, formID ) {\n\n if( 'undefined' == typeof response.debug ) return;\n\n /* Form Debug Messages */\n if( 'undefined' != typeof response.debug.form ) {\n var debugMessages = document.createElement( 'span' );\n _.each(response.debug.form, function (message, index) {\n var messageText = document.createTextNode( message );\n debugMessages.appendChild( messageText );\n debugMessages.appendChild(\n document.createElement( 'br' )\n );\n });\n jQuery('.nf-debug-msg').html( debugMessages );\n }\n\n /* Console Debug Messages */\n if( 'undefined' != typeof response.debug.console ) {\n var style = '';\n console.log( '%c%s', style, 'NINJA SUPPORT' );\n _.each(response.debug.console, function (message, index) {\n console.log( message );\n });\n console.log( '%c%s', style, 'END NINJA SUPPORT' );\n }\n }\n\n });\n\n return controller;\n} );\n\ndefine('controllers/getFormErrors',[], function() {\n\tvar radioChannel = nfRadio.channel( 'fields' );\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function( model ) {\n\t\t\tnfRadio.channel( 'form' ).reply( 'get:errors', this.getFormErrors );\n\t\t},\n\n\t\tgetFormErrors: function( formID ) {\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', formID );\n\t\t\tvar errors = false;\n\t\t\t\n\t\t\tif ( formModel ) {\n\t\t\t\t/*\n\t\t\t\t * Check to see if we have any errors on our form model.\n\t\t\t\t */\n\t\t\t\tif ( 0 !== formModel.get( 'errors' ).length ) {\n\t\t\t\t\t_.each( formModel.get( 'errors' ).models, function( error ) {\n\t\t\t\t\t\terrors = errors || {};\n\t\t\t\t\t\terrors[ error.get( 'id' ) ] = error.get( 'msg' );\n\t\t\t\t\t} );\t\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\t_.each( formModel.get( 'fields' ).models, function( field ) {\n\t\t\t\t\tif ( field.get( 'type' ) != 'submit' && field.get( 'errors' ).length > 0 ) {\n\t\t\t\t\t\terrors = errors || {};\n\t\t\t\t\t\terrors[ field.get( 'id' ) ] = field.get( 'errors' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn errors;\n\t\t},\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/validateRequired',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'blur:field', this.validateRequired );\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'change:field', this.validateRequired );\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'keyup:field', this.validateKeyup );\n\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'change:modelValue', this.validateModelData );\n\t\t\tthis.listenTo( nfRadio.channel( 'submit' ), 'validate:field', this.validateModelData );\n\t\t},\n\t\t\n\t\tvalidateKeyup: function( el, model, keyCode ) {\n\t\t\tif ( 1 != model.get( 'required' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ( ! model.get( 'clean' ) ) {\n\t\t\t\tthis.validateRequired( el, model );\n\t\t\t}\n\t\t},\n\n\t\tvalidateRequired: function( el, model ) {\n\t\t\tif ( 1 != model.get( 'required' ) || ! model.get( 'visible' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar currentValue = jQuery( el ).val();\n\t\t\tvar customReqValidation = nfRadio.channel( model.get( 'type' ) ).request( 'validate:required', el, model );\n\t\t\tvar defaultReqValidation = true;\n\n\t\t\tvar maskPlaceholder = model.get( 'mask' );\n\t\t\tif ( maskPlaceholder ) {\n\t\t\t\tmaskPlaceholder = maskPlaceholder.replace( /9/g, '_' );\n\t\t\t\tmaskPlaceholder = maskPlaceholder.replace( /a/g, '_' );\n\t\t\t\tmaskPlaceholder = maskPlaceholder.replace( /\\*/g, '_' );\n\t\t\t}\n\n // If the field has a mask...\n // AND that mask is equal to the current value... \n if ( maskPlaceholder && currentValue === maskPlaceholder ) {\n // If we have a pre-existing error...\n if ( 0 < model.get( 'errors' ).length ) {\n // Persist that error.\n defaultReqValidation = false;\n }\n }\n // If our value is an empty string...\n if ( ! jQuery.trim( currentValue ) ) {\n // Throw an error.\n defaultReqValidation = false;\n }\n\n\t\t\tif ( 'undefined' !== typeof customReqValidation ) {\n\t\t\t\tvar valid = customReqValidation;\n\t\t\t} else {\n\t\t\t\tvar valid = defaultReqValidation;\n\t\t\t}\n\n\t\t\tthis.maybeError( valid, model );\n\t\t},\n\n\t\tvalidateModelData: function( model ) {\n\n\t\t\tif ( 1 != model.get( 'required' ) || ! model.get( 'visible' ) || model.get( 'clean' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * If we already have a required error on this model, return false\n\t\t\t */\n\t\t\tif ( model.get( 'errors' ).get( 'required-error' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tcurrentValue = model.get( 'value' );\n\n\t\t\tvar defaultReqValidation = true;\n\n\t\t\tif ( ! jQuery.trim( currentValue ) ) {\n\t\t\t\tdefaultReqValidation = false;\n\t\t\t}\n\n\t\t\tvar customReqValidation = nfRadio.channel( model.get( 'type' ) ).request( 'validate:modelData', model );\n\t\t\tif ( 'undefined' !== typeof customReqValidation ) {\n\t\t\t\tvar valid = customReqValidation;\n\t\t\t} else {\n\t\t\t\tvar valid = defaultReqValidation;\n\t\t\t}\n\n\t\t\tthis.maybeError( valid, model );\n\n\t\t},\n\n\t\tmaybeError: function( valid, model ) {\n\t\t\tif ( ! valid ) {\n\n\t\t\t\tvar formModel = nfRadio.channel( 'form-' + model.get( 'formID' ) ).request( 'get:form' );\n\n\t\t\t\tif( 'undefined' != typeof formModel ) {\n\t\t\t\t\tnfRadio.channel('fields').request('add:error', model.get('id'), 'required-error', formModel.get('settings').validateRequiredField);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', model.get( 'id' ), 'required-error' );\n\t\t\t}\t\t\t\n\t\t}\n\t});\n\n\treturn controller;\n} );\n\ndefine('controllers/submitError',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'forms' ), 'submit:response', this.submitErrors );\n\t\t},\n\n\t\tsubmitErrors: function( response, textStatus, jqXHR, formID ) {\n\n\t\t\t// Check for nonce error.\n\t\t\tif ( _.size( response.errors.nonce ) > 0 ) {\n\t\t\t\tif( 'undefined' != typeof response.errors.nonce.new_nonce && 'undefined' != typeof response.errors.nonce.nonce_ts ) {\n\t\t\t\t\t// Update nonce from response.\n\t\t\t\t\tnfFrontEnd.ajaxNonce = response.errors.nonce.new_nonce;\n\t\t\t\t\tnfFrontEnd.nonce_ts = response.errors.nonce.nonce_ts;\n\t\t\t\t\t// Re-submit form.\n\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', formID );\n\t\t\t\t\tnfRadio.channel( 'form-' + formID ).request( 'submit', formModel );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( _.size( response.errors.fields ) > 0 ) {\n\t\t\t\t_.each( response.errors.fields, function( data, fieldID ) {\n if ( typeof( data ) === 'object' ) {\n nfRadio.channel( 'fields' ).request( 'add:error', fieldID, data.slug, data.message );\n } else {\n nfRadio.channel( 'fields' ).request( 'add:error', fieldID, 'required-error', data );\n }\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( _.size( response.errors.form ) > 0 ) {\n\t\t\t\t_.each( response.errors.form, function( msg, errorID ) {\n\t\t\t\t\tnfRadio.channel( 'form-' + formID ).request( 'remove:error', errorID );\n\t\t\t\t\tnfRadio.channel( 'form-' + formID ).request( 'add:error', errorID, msg );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( 'undefined' != typeof response.errors.last ) {\n\t\t\t\tif( 'undefined' != typeof response.errors.last.message ) {\n\t\t\t\t\tvar style = 'background: rgba( 255, 207, 115, .5 ); color: #FFA700; display: block;';\n\t\t\t\t\tconsole.log( '%c NINJA FORMS SUPPORT: SERVER ERROR', style );\n\t\t\t\t\tconsole.log( response.errors.last.message );\n\t\t\t\t\tconsole.log( '%c END SERVER ERROR MESSAGE', style );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * TODO: This needs to be re-worked for backbone. It's not dynamic enough.\n\t\t\t */\n\t\t\t/*\n\t\t\t * Re-show any hidden fields during a form submission re-start.\n\t\t\t */\n\t\t\tjQuery( '#nf-form-' + formID + '-cont .nf-field-container' ).show();\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n\ndefine('controllers/actionRedirect',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'forms' ), 'submit:response', this.actionRedirect );\n\t\t},\n\n\t\tactionRedirect: function( response ) {\n\n\t\t\tif ( 'undefined' != typeof response.data.halt && 'undefined' != typeof response.data.halt.redirect && '' != response.data.halt.redirect ) {\n\t\t\t\twindow.location = response.data.halt.redirect;\n\t\t\t}\n\n\t\t\tif ( _.size( response.errors ) == 0 && 'undefined' != typeof response.data.actions ) {\n\n\t\t\t\tif ( 'undefined' != typeof response.data.actions.redirect && '' != response.data.actions.redirect ) {\n\t\t\t\t\twindow.location = response.data.actions.redirect;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/actionSuccess',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'forms' ), 'submit:response', this.actionSubmit );\n\t\t},\n\n\t\tactionSubmit: function( response ) {\n\t\t\tif ( _.size( response.errors ) == 0 && 'undefined' != typeof response.data.actions ) {\n\t\t\t\tif ( 'undefined' != typeof response.data.actions.success_message && '' != response.data.actions.success_message ) {\n\t\t\t\t\tvar form_id = response.data.form_id;\n\t\t\t\t\tvar success_message = jQuery( '#nf-form-' + form_id + '-cont .nf-response-msg' );\n\t\t\t\t\t\n\t\t\t\t\tsuccess_message.html( response.data.actions.success_message ).show();\n\t\t\t\t\t\n\t\t\t\t\t//Let's check if the success message is already fully visible in the viewport without scrolling\n\t\t\t\t\tvar top_of_success_message = success_message.offset().top;\n\t\t\t\t\tvar bottom_of_success_message = success_message.offset().top + success_message.outerHeight();\n\t\t\t\t\tvar bottom_of_screen = jQuery(window).scrollTop() + jQuery(window).height();\n\t\t\t\t\tvar top_of_screen = jQuery(window).scrollTop();\n\n\t\t\t\t\tvar the_element_is_visible = ((bottom_of_screen > bottom_of_success_message) && (top_of_screen < top_of_success_message));\n\n\t\t\t\t\tif(!the_element_is_visible){\n\t\t\t\t\t\t//The element isn't visible, so let's scroll to the success message as in the previous release, but with a short animation\n\t\t\t\t\t\tjQuery('html, body').animate({\n\t\t\t\t\t\t\tscrollTop: ( success_message.offset().top - 50 )\n\t\t\t\t\t\t}, 300 );\n\t\t\t\t\t}\t\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n\ndefine('controllers/fieldSelect',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'init:model', function( model ){\n\t\t\t\tif( 'list' == model.get( 'parentType' ) ) this.register( model );\n\t\t\t}, this );\n\n\t\t\tnfRadio.channel( 'listselect' ).reply( 'get:calcValue', this.getCalcValue, this );\n\t\t\tnfRadio.channel( 'listmultiselect' ).reply( 'get:calcValue', this.getCalcValue, this );\n\t\t},\n\n\t\tregister: function( model ) {\n\t\t\tmodel.set( 'renderOptions', this.renderOptions );\n\t\t\tmodel.set( 'renderOtherAttributes', this.renderOtherAttributes );\n\t\t\t/*\n\t\t\t * When we init a model, we need to set our 'value' to the selected option's value.\n\t\t\t * This is the list equivalent of a 'default value'.\n\t\t\t */ \n\t\t\tif ( 0 != model.get( 'options' ).length ) {\n\t\t\t\t//Check to see if there is a value set for the field\n\t\t\t\tvar savedVal = model.get( 'value' );\n\n\t\t\t\t/*\n\t\t\t\t * Check to see if this is a multi-select list.\n\t\t\t\t */\n\t\t\t\tif ( 'listmultiselect' == model.get( 'type' ) ) {\n\t\t\t\t\t/*\n\t\t\t\t\t * We're using a multi-select, so we need to check out any selected options and add them together.\n\t\t\t\t\t */\n\t\t\t\t\tvar selected = _.filter( model.get( 'options' ), function( opt ) { return 1 == opt.selected } );\n\t\t\t\t\tselected = _.map( selected, function( opt ) { return opt.value } );\n\t\t\t\t\tvar value = selected;\n\t\t\t\t} else if ( 'listradio' !== model.get( 'type' ) ) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Check to see if we have a selected value.\n\t\t\t\t\t */\n\t\t\t\t\tvar selected = _.find( model.get( 'options' ), function( opt ) { return 1 == opt.selected } );\n\t\t\t\t\t/*\n\t\t\t\t\t * We don't have a selected value, so use our first option.\n\t\t\t\t\t */\n\t\t\t\t\tif ( 'undefined' == typeof selected ) {\n\t\t\t\t\t\tselected = _.first( model.get( 'options' ) );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( 'undefined' != typeof selected\n\t\t\t\t\t\t&& 'undefined' != typeof selected.value ) {\n\t\t\t\t\t\tvar value = selected.value;\n\t\t\t\t\t} else if ( 'undefined' != typeof selected ) {\n\t\t\t\t\t\tvar value = selected.label;\n\t\t\t\t\t}\t\n\t\t\t\t}\n\n\t\t\t\t/*\n\t * This part is re-worked to take into account custom user-meta\n\t * values for fields.\n\t */\n\t\t\t\tif( 'undefined' !== typeof savedVal && '' !== savedVal\n\t\t\t\t\t&& Array.isArray( savedVal ) ) {\n\t\t\t\t\tmodel.set( 'value', savedVal );\n\t\t\t\t} else if ( 'undefined' != typeof selected ) {\n\t\t\t\t\tmodel.set( 'value', value );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\trenderOptions: function() {\n\t\t\tvar html = '';\n\n\t\t\t_.each( this.options, function( option ) {\n\t\t\t\t/*\n\t\t\t\t* This part has been re-worked to account for values passed in\n\t\t\t\t* via custom user-meta ( a la User Mgmt add-on)\n\t\t\t\t */\n\t\t\t\tif ( _.isArray( this.value ) ) {\n // If we have a multiselect list...\n // AND it has selected values...\n\t\t\t\t\tif( 'listmultiselect' === this.type && 0 < this.value.length &&\n\t\t\t\t\t\t-1 != _.indexOf( this.value[ 0 ].split( ',' ), option.value ) ) {\n\t\t\t\t\t\tvar selected = true;\n\t\t\t\t\t} else if( -1 != _.indexOf( this.value, option.value ) ) {\n\t\t\t\t\t\tvar selected = true;\n\t\t\t\t\t}\n\t\t\t\t} else if ( ! _.isArray( this.value ) && option.value == this.value ) {\n\t\t\t\t\tvar selected = true;\n\t\t\t\t} else if ( ( 1 == option.selected && this.clean )\n\t\t\t\t\t&& 'undefined' === typeof this.value ) {\n\t\t\t\t\tvar selected = true;\n\t\t\t\t} else {\n\t\t\t\t\tvar selected = false;\n\t\t\t\t}\n\n\t\t\t\t/*\n * TODO: This is a bandaid fix for making sure that each option has a \"visible\" property.\n * This should be moved to creation so that when an option is added, it has a visible property by default.\n */\n if ( 'undefined' == typeof option.visible ) {\n option.visible = true;\n }\n\n\t\t\t\toption.selected = selected;\n\t\t\t\toption.fieldID = this.id;\n\t\t\t\toption.classes = this.classes;\n\t\t\t\toption.currentValue = this.value;\n\n\t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listselect-option' );\n\t\t\t\thtml += template( option );\n\t\t\t}, this );\n\n\t\t\treturn html;\n\t\t},\n\n\t\trenderOtherAttributes: function() {\n\t\t\tvar otherAttributes = '';\n\n\t\t\tif( 'listmultiselect' == this.type ){\n\t\t\t\totherAttributes = otherAttributes + ' multiple';\n\n\t\t\t\tvar multiSize = this.multi_size || 5;\n\t\t\t\totherAttributes = otherAttributes + ' size=\"' + multiSize + '\"';\n\t\t\t}\n\n\t\t\treturn otherAttributes;\n\t\t},\n\n\t\tgetCalcValue: function( fieldModel ) {\n\t\t\tvar calc_value = 0;\n\t\t\tvar options = fieldModel.get( 'options' );\n\t\t\tif ( 0 != options.length ) {\n\t\t\t\t/*\n\t\t\t\t * Check to see if this is a multi-select list.\n\t\t\t\t */\n\t\t\t\tif ( 'listmultiselect' == fieldModel.get( 'type' ) ) {\n\t\t\t\t\t/*\n\t\t\t\t\t * We're using a multi-select, so we need to check out any selected options and add them together.\n\t\t\t\t\t */\n\t\t\t\t\t_.each( fieldModel.get( 'value' ), function( val ) {\n\t\t\t\t\t\tvar tmp_opt = _.find( options, function( opt ) { return opt.value == val } );\n\t\t\t\t\t\tcalc_value += Number( tmp_opt.calc );\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\t/*\n\t\t\t\t\t * We are using a single select, so our selected option is in the 'value' attribute.\n\t\t\t\t\t */\n\t\t\t\t\tvar selected = _.find( options, function( opt ) { return fieldModel.get( 'value' ) == opt.value } );\n\t\t\t\t\t/*\n\t\t\t\t\t * We don't have a selected value, so use our first option.\n\t\t\t\t\t */\n\t\t\t\t\tif ( 'undefined' == typeof selected ) {\n\t\t\t\t\t\tselected = fieldModel.get( 'options' )[0];\n\t\t\t\t\t}\t\t\n\t\t\t\t\tcalc_value = selected.calc;\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn calc_value;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n\ndefine('controllers/coreSubmitResponse',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'forms' ), 'submit:response', this.actionSubmit );\n\t\t},\n\n\t\tactionSubmit: function( response ) {\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', response.data.form_id );\n\t\t\t/*\n\t\t\t * If we have errors, don't hide or clear.\n\t\t\t */\n\t\t\tif ( 0 != _.size( response.errors ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ( 1 == response.data.settings.clear_complete ) {\n\t\t\t\t// nfRadio.channel( 'form-' + response.data.form_id ).trigger( 'reset' );\n\t\t\t\tformModel.get( 'fields' ).reset( formModel.get( 'loadedFields' ) );\n if ( 1 != response.data.settings.hide_complete ) {\n nfRadio.channel( 'captcha' ).trigger( 'reset' );\n }\n\t\t\t}\n\n\t\t\tif ( 1 == response.data.settings.hide_complete ) {\n\t\t\t\t/**\n\t\t\t\t * TODO: This needs to be re-worked for backbone. It's not dynamic enough.\n\t\t\t\t */\n\t\t\t\tformModel.trigger( 'hide' );\n\t\t\t\t// jQuery( '.nf-fields' ).hide();\n\t\t\t\t// jQuery( '.nf-form-title' ).hide();\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/fieldProduct',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'product' ), 'init:model', this.register );\n nfRadio.channel( 'product' ).reply( 'get:calcValue', this.getCalcValue, this );\n },\n\n register: function( model ) {\n model.set( 'renderProductQuantity', this.renderProductQuantity );\n model.set( 'renderProduct', this.renderProduct );\n model.set( 'renderOptions', this.renderOptions );\n },\n\n renderProduct: function(){\n switch( this.product_type ) {\n case 'user':\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-textbox' );\n return template( this );\n break;\n case 'hidden':\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-hidden' );\n return template( this );\n break;\n\n case 'dropdown':\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-product-dropdown' );\n return template( this );\n break;\n default:\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-product-single' );\n return template( this );\n }\n },\n\n renderProductQuantity: function(){\n if ( 1 == this.product_use_quantity ) {\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-product-quantity' );\n return template( this );\n }\n },\n\n renderOptions: function() {\n var that = this;\n var html = '';\n _.each( this.options, function( option ) {\n if ( 1 == option.selected ) {\n var selected = true;\n } else {\n var selected = false;\n }\n\n option.selected = selected;\n option.fieldID = that.id;\n option.classes = that.classes;\n option.currentValue = that.value;\n\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-product-' + that.product_type + '-option' );\n html += template( option );\n } );\n\n return html;\n },\n\n getCalcValue: function( fieldModel ) {\n\n var product_price = fieldModel.get( 'product_price' );\n var product_quantity = fieldModel.get( 'value' );\n\n return product_price * product_quantity;\n }\n });\n\n return controller;\n} );\n\ndefine('controllers/fieldTotal',[], function() {\n var controller = Marionette.Object.extend( {\n\n totalModel: {},\n\n productTotals: {},\n\n initialize: function() {\n this.listenTo( nfRadio.channel( 'total' ), 'init:model', this.register );\n this.listenTo( nfRadio.channel( 'shipping' ), 'init:model', this.registerShipping );\n },\n\n register: function( totalModel ){\n this.totalModel = totalModel;\n\n var formID = totalModel.get( 'formID' );\n this.listenTo( nfRadio.channel( 'form-' + formID ), 'loaded', this.onFormLoaded );\n\n this.listenTo( nfRadio.channel( 'product' ), 'change:modelValue', this.onChangeProduct );\n this.listenTo( nfRadio.channel( 'quantity' ), 'change:modelValue', this.onChangeQuantity );\n },\n\n registerShipping: function( shippingModel ){\n this.shippingCost = shippingModel.get( 'shipping_cost' );\n },\n\n onFormLoaded: function( formModel ){\n\n var fieldModels = formModel.get( 'fields' ).models;\n\n var productFields = {};\n var quantityFields = {};\n\n for( var model in fieldModels ){\n\n var field = fieldModels[ model ];\n var fieldID = field.get( 'id' );\n\n // TODO: Maybe use switch\n if( 'product' == field.get( 'type' ) ){\n productFields[ fieldID ] = field;\n } else if( 'quantity' == field.get( 'type' ) ){\n var productID = field.get( 'product_assignment' );\n quantityFields[ productID ] = field;\n }\n }\n\n for( var productID in productFields ){\n\n var product = productFields[ productID ];\n\n var productPrice = Number( product.get( 'product_price' ) );\n\n if( quantityFields[ productID ] ){\n\n productPrice *= quantityFields[ productID ].get( 'value' );\n\n } else if( 1 == product.get( 'product_use_quantity' ) ){\n\n productPrice *= product.get( 'value' );\n\n }\n\n this.productTotals[ productID ] = productPrice;\n }\n\n this.updateTotal();\n },\n\n onChangeProduct: function( model ){\n var productID = model.get( 'id' );\n var productPrice = Number( model.get( 'product_price' ) );\n var productQuantity = Number( model.get( 'value' ) );\n var newTotal = productQuantity * productPrice;\n this.productTotals[ productID ] = newTotal;\n\n this.updateTotal();\n },\n\n onChangeQuantity: function( model ){\n var productID = model.get( 'product_assignment' );\n var productField = nfRadio.channel( 'fields' ).request( 'get:field', productID );\n var productPrice = Number( productField.get( 'product_price' ) );\n\n var quantity = Number( model.get( 'value' ) );\n\n var newTotal = quantity * productPrice;\n\n this.productTotals[ productID ] = newTotal;\n\n this.updateTotal();\n },\n\n updateTotal: function(){\n\n var newTotal = 0;\n\n for( var product in this.productTotals ){\n newTotal += Number( this.productTotals[ product ] );\n }\n\n if( newTotal && this.shippingCost ) {\n // Only add shipping if there is a cost.\n newTotal += Number(this.shippingCost);\n }\n\n this.totalModel.set( 'value', newTotal.toFixed( 2 ) );\n this.totalModel.trigger( 'reRender' );\n }\n });\n\n return controller;\n});\ndefine('controllers/fieldQuantity',[], function() {\n var controller = Marionette.Object.extend( {\n\n initialize: function() {\n this.listenTo( nfRadio.channel( 'quantity' ), 'init:model', this.registerQuantity );\n },\n\n registerQuantity: function( model ){\n var productID = model.get( 'product_assignment' );\n var product = nfRadio.channel( 'fields' ).request( 'get:field', productID );\n\n if( product ) {\n product.set('product_use_quantity', 0);\n }\n },\n\n });\n\n return controller;\n});\n/**\n * Model that represents a calculation.\n *\n * On init, we trigger a radio message so that controllers can do things when a calc model inits.\n */\ndefine( 'models/calcModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t\tinitialize: function() {\n\t\t\t// Set our form id\n\t\t\tthis.set( 'formID', this.collection.options.formModel.get( 'id' ) );\n\t\t\t// Set our initial fields object to empty. This will hold our key/value pairs.\n\t\t\tthis.set( 'fields', {} );\n\t\t\t// Trigger a radio message to let controllers know we've inited this model.\n\t\t\tnfRadio.channel( 'calc' ).trigger( 'init:model', this );\n\t\t\t// When we change the value of this calculation, send out a radio message\n\t\t\tthis.on( 'change:value', this.changeValue, this );\n\t\t},\n\n\t\t/**\n\t\t * Trigger a radio message when a field present in our calculation changes\n\t\t *\n\t\t * The listener that triggers/calls this function is in controllers/calculations\n\t\t * \n\t\t * @since 3.0\n\t\t * @return void\n\t\t */\n\t\tchangeField: function( fieldModel ) {\n\t\t\tnfRadio.channel( 'calc' ).trigger( 'change:field', this, fieldModel );\n\t\t},\n\n\t\tchangeCalc: function( targetCalcModel ) {\n\t\t\tnfRadio.channel( 'calc' ).trigger( 'change:calc', this, targetCalcModel );\n\t\t},\n\n\t\tchangeValue: function() {\n\t\t\tnfRadio.channel( 'calc' ).trigger( 'change:value', this );\n\t\t}\n\t} );\n\n\treturn model;\n} );\n\ndefine( 'models/calcCollection',['models/calcModel'], function( CalcModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: CalcModel,\n\t\tcomparator: 'order',\n\n\t\tinitialize: function( models, options ) {\n\t\t\tthis.options = options;\n _.each( models, function( model ) {\n \tif( 'undefined' == typeof model.dec ) return;\n if ( '' === model.dec.toString().trim() ) model.dec = 2;\n model.dec = parseInt( model.dec );\n } );\n\t\t\t/*\n\t\t\t * Respond to requests for our calc model\n\t\t\t */\n\t\t\tnfRadio.channel( 'form-' + options.formModel.get( 'id' ) ).reply( 'get:calc', this.getCalc, this );\n\t\t},\n\n\t\tgetCalc: function( key ) {\n\t\t\treturn this.findWhere( { name: key } );\n\t\t}\n\t} );\n\treturn collection;\n} );\n/**\n * Controller responsible for keeping up with calculations.\n */\ndefine('controllers/calculations',['models/calcCollection'], function( CalcCollection ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.calcs = {};\n\t\t\tthis.displayFields = {};\n\t\t\t// When our form initialises, check to see if there are any calculations that need to be tracked.\n\t\t\tthis.listenTo( nfRadio.channel( 'form' ), 'loaded', this.registerCalcs );\n \n // When our collection gets reset, reset calculation tracking as well.\n this.listenTo( nfRadio.channel( 'fields' ), 'reset:collection', this.resetCalcs );\n\n\t\t\t// When a calc model is initialised, run a setup function.\n\t\t\t// this.listenTo( nfRadio.channel( 'calc' ), 'init:model', this.setupCalc );\n\n\t\t\t// When a field referenced by a calc model changes, update our calc.\n\t\t\tthis.listenTo( nfRadio.channel( 'calc' ), 'change:field', this.changeField );\n\n\t\t\t// When a calculation referenced by a calc model changes, update our calc.\n\t\t\tthis.listenTo( nfRadio.channel( 'calc' ), 'change:calc', this.changeCalc );\n\n\t\t\t/*\n\t\t\t * Listen to our field model init for fields that want to display calc values.\n\t\t\t * If that field has a calc merge tag, replace it with the default calc value.\n\t\t\t */\n\t\t\tvar that = this;\n\t\t\t_.each( nfFrontEnd.use_merge_tags.calculations, function( fieldType ) {\n\t\t\t\tthat.listenTo( nfRadio.channel( 'fields-' + fieldType ), 'init:model', that.initDisplayField );\n\t\t\t} );\n\t\t\t\n\t\t\t// When we change our calc value, update any display fields.\n\t\t\tthis.listenTo( nfRadio.channel( 'calc' ), 'change:value', this.updateDisplayFields );\n\n\t\t\t// Set an init variable so that we only call reRender on the display field on change, not on init.\n\t\t\tthis.init = {};\n\t\t},\n \n /**\n * Passthrough function to reset tracking of calculations when the fieldCollection is reset.\n * \n * @since 3.2\n * @param backbone.collection fieldCollection\n * @return void\n */\n resetCalcs: function( fieldCollection ) {\n if( 'undefined' != typeof( fieldCollection.options.formModel ) ) {\n this.registerCalcs( fieldCollection.options.formModel ); \n }\n },\n\n\t\t/**\n\t\t * When our form loads, create a collection out of any calculations.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model formModel\n\t\t * @return void\n\t\t */\n\t\tregisterCalcs: function( formModel ) {\n\t\t\tvar calcCollection = new CalcCollection( formModel.get( 'settings' ).calculations, { formModel: formModel } );\n\t\t\tthis.calcs[ formModel.get( 'id' ) ] = calcCollection;\n\t\t\tvar that = this;\n\n\t\t\t_.each( calcCollection.models, function( calcModel ) {\n\t\t\t\t/*\n\t\t\t\t * We set a property on our init variable for the calc model we're looping over.\n\t\t\t\t * This property is set to true so that when we make changes to the calc model on the next line\n\t\t\t\t * the field view doesn't try to redraw itself.\n\t\t\t\t * If we don't do this, the 'reRender' attribute of the model will be set before the view is initialized,\n\t\t\t\t * which means that setting 'reRender' to true will never re-render the view.\n\t\t\t\t */\n\t\t\t\tthat.init[ calcModel.get( 'name' ) ] = true;\n\t\t\t\t// Setup our calculation models with initial values and register listeners for calc-related fields.\n\t\t\t\tthat.setupCalc( calcModel );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * When a calculation model is instantiated from the registerCalcs function:\n\t\t *\n\t\t * Use a regex to get an array of the field keys\n\t\t * Setup an initial key/values array\n\t\t * Check for any references to other calculations\n\t\t * Set the initial value of our calculation\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model calcModel\n\t\t * @return void\n\t\t */\n\t\tsetupCalc: function( calcModel ) {\n\t\t\t// Setup our that var so we can access 'this' context in our loop.\n\t\t\tvar that = this;\n\t\t\t// Get our equation\n\t\t\tvar eq = calcModel.get( 'eq' );\n\t\t\t// We want to keep our original eq intact, so we use a different var for string replacment.\n\t\t\tvar eqValues = eq;\n // Store the name for debugging later.\n var calcName = calcModel.get( 'name' );\n\n\t\t\t/* TODO:\n\t\t\t * It might be possible to refactor these two if statements.\n\t\t\t * The difficulty is that each has a different method of retreiving the specific data model.\n\t\t\t */\n\t\t\t// Check to see if we have any field merge tags in our equation.\n\t\t\tvar fields = eq.match( new RegExp( /{field:(.*?)}/g ) );\n\t\t\tif ( fields ) {\n\t\t\t\t/*\n\t\t\t\t * fields is now an array of field keys that looks like:\n\t\t\t\t * ['{field:key'], ['{field:key'], etc.\n\t\t\t\t *\n\t\t\t\t * We need to run a function with each of our field keys to setup our field key array and hook up our field change listner.\n\t\t\t\t */\n\t\t\t\t\n\t\t\t\tfields = fields.map( function( field ) {\n\t\t\t\t\t// field will be {field:key}\n\t\t\t\t\tvar key = field.replace( ':calc}', '' ).replace( '}', '' ).replace( '{field:', '' );\n\n\t\t\t\t\t// Get our field model\n\t\t\t\t\tfieldModel = nfRadio.channel( 'form-' + calcModel.get( 'formID' ) ).request( 'get:fieldByKey', key );\n\n if( 'undefined' == typeof fieldModel ) return;\n\n fieldModel.set( 'clean', false );\n\n\t\t\t\t\t// Register a listener in our field model for value changes.\n\t\t\t\t\tfieldModel.on( 'change:value', calcModel.changeField, calcModel );\n\t\t\t\t\t// Get our calc value from our field model.\n\t\t\t\t\tvar calcValue = that.getCalcValue( fieldModel );\n\t\t\t\t\t// Add this field to our internal key/value object.\n\t\t\t\t\tthat.updateCalcFields( calcModel, key, calcValue );\n\t\t\t\t\t// Update the string tracking our merged eq with the calc value.\n\t\t\t\t\teqValues = that.replaceKey( 'field', key, calcValue, eqValues );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Check to see if we have any calc merge tags in our equation.\n\t\t\tvar calcs = eq.match( new RegExp( /{calc:(.*?)}/g ) );\n\t\t\tif ( calcs ) {\n\t\t\t\t/*\n\t\t\t\t * calcs is now an array of calc keys that looks like:\n\t\t\t\t * ['{calc:key'], ['{calc:key'], etc.\n\t\t\t\t *\n\t\t\t\t * We need to run a function with each of our calc keys to setup our calc key array and hook up our calc change listner.\n\t\t\t\t */\n\t\t\t\t\n\t\t\t\tcalcs = calcs.map( function( calc ) {\n\t\t\t\t\t// calc will be {calc:name}\n\t\t\t\t\tvar name = calc.replace( '}', '' ).replace( '{calc:', '' );\n\t\t\t\t\t// Get our calc model\n\t\t\t\t\tvar targetCalcModel = calcModel.collection.findWhere( { name: name } );\n\n\t\t\t\t\tif( 'undefined' == typeof targetCalcModel ) return;\n\n\t\t\t\t\t// Listen for changes on our calcluation, since we need to update our calc when it changes.\n\t\t\t\t\ttargetCalcModel.on( 'change:value', calcModel.changeCalc, calcModel );\n\t\t\t\t\t// // Get our calc value from our calc model.\n\t\t\t\t\tvar calcValue = targetCalcModel.get( 'value' );\n\t\t\t\t\t// Update the string tracking our merged eq with the calc value.\n\t\t\t\t\teqValues = that.replaceKey( 'calc', name, calcValue, eqValues );\n\t\t\t\t} );\n\n\t\t\t}\n\n // Scrub unmerged tags (ie deleted/nox-existent fields/calcs, etc).\n eqValues = eqValues.replace( /{([a-zA-Z0-9]|:|_|-)*}/g, 0 );\n // Scrub line breaks.\n eqValues = eqValues.replace( /\\r?\\n|\\r/g, '' );\n\t\t\t// Evaluate the equation and update the value of this model.\n\t\t\ttry {\n\t\t\t\tthis.debug('Calculation Decoder ' + eqValues + ' -> ' + this.localeDecodeEquation(eqValues) + ' (Setup)');\n\t\t\t\tcalcModel.set( 'value', Number( mexp.eval( this.localeDecodeEquation(eqValues) ) ).toFixed( calcModel.get( 'dec' ) ) );\n\t\t\t} catch( e ) {\n //console.log( calcName );\n\t\t\t\tconsole.log( e );\n\t\t\t}\n \n // If for whatever reason, we got NaN, reset that to 0.\n if( calcModel.get( 'value' ) === 'NaN' ) calcModel.set( 'value', '0' );\n\n\t\t\t// Debugging console statement.\n\t\t\t// console.log( eqValues + ' = ' + calcModel.get( 'value' ) );\n\t\t},\n\n\t\t/**\n\t\t * Update an item in our key/value pair that represents our fields and calc values.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model \tcalcModel\n\t\t * @param string \t\t\tkey\n\t\t * @param string \t\t\tcalcValue\n\t\t * @return void\n\t\t */\n\t\tupdateCalcFields: function( calcModel, key, calcValue ) {\n\t\t\tvar fields = calcModel.get( 'fields' );\n\t\t\tfields[ key ] = calcValue;\n\t\t\tcalcModel.set( 'fields', fields );\n\t\t},\n\n\t\t/**\n\t\t * Get a calc value from a field model.\n\t\t *\n\t\t * Sends a request to see if there's a special calc value\n\t\t * Uses the value of the field if there is not.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model fieldModel\n\t\t * @return value\n\t\t */\n\t\tgetCalcValue: function( fieldModel ) {\n\t\t\t/*\n\t\t\t * Send out a request on the field type and parent type channel asking if they need to modify the calc value.\n\t\t\t * This is helpful for fields like lists that can have a different calc_value than selected value.\n\t\t\t */\n\t\t\tvar value = nfRadio.channel( fieldModel.get( 'type' ) ).request( 'get:calcValue', fieldModel );\n\n\t\t\tvar localeConverter = new nfLocaleConverter(nfi18n.siteLocale, nfi18n.thousands_sep, nfi18n.decimal_point);\n\t\t\t\n\n\t\t\tvar calcValue = value || fieldModel.get( 'value' );\n\t\t\tvar machineNumber = localeConverter.numberDecoder(calcValue);\n\t\t\tvar formattedNumber = localeConverter.numberEncoder(calcValue);\n\n\t\t\tif ( 'undefined' !== typeof machineNumber && jQuery.isNumeric( machineNumber ) ) {\n\t\t\t\tvalue = formattedNumber;\n\t\t\t} else {\n\t\t\t\tvalue = 0;\n\t\t\t}\n\t\t\t// }\n\n\t\t\tif ( ! fieldModel.get( 'visible' ) ) {\n\t\t\t\tvalue = 0;\n\t\t\t}\n\t\t\n\t\t\treturn value;\n\t\t},\n\n\t\t/**\n\t\t * Replace instances of key with calcValue. This is used to replace one key at a time.\n\t\t *\n\t\t * If no eq is passed, use calcModel eq.\n\t\t *\n\t\t * Returns a string with instances of key replaced with calcValue.\n\t\t * \n\t\t * @since version\n\t\t * @param string \tkey \n\t\t * @param string \tcalcValue \n\t\t * @param string \teq \n\t\t * @return string \teq \n\t\t */\n\t\treplaceKey: function( type, key, calcValue, eq ) {\n\t\t\teq = eq || calcModel.get( 'eq' );\n\n\t\t\ttag = '{' + type + ':' + key + '}';\n\t\t\tvar reTag = new RegExp( tag, 'g' );\n\n\t\t\tcalcTag = '{' + type + ':' + key + ':calc}';\n\t\t\tvar reCalcTag = new RegExp( calcTag, 'g' );\n\n\t\t\teq = eq.replace( reTag, calcValue );\n\t\t\teq = eq.replace( reCalcTag, calcValue );\n\n\t\t\treturn eq;\n\t\t},\n\n\t\t/**\n\t\t * Takes a calcModel and returns a string eq with all keys replaced by their appropriate calcValues.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model \tcalcModel\n\t\t * @return string\t\t\teq\n\t\t */\n\t\treplaceAllKeys: function( calcModel ) {\n\t\t\tvar eq = calcModel.get( 'eq' );\n\t\t\tvar that = this;\n\t\t\t_.each( calcModel.get( 'fields' ), function( value, key ) {\n\t\t\t\teq = that.replaceKey( 'field', key, value, eq );\n\t\t\t} );\n\n\t\t\t// If we have any calc merge tags, replace those as well.\n\t\t\tvar calcs = eq.match( new RegExp( /{calc:(.*?)}/g ) );\n\t\t\tif ( calcs ) {\n\t\t\t\t_.each( calcs, function( calc ) {\n\t\t\t\t\t// calc will be {calc:key}\n\t\t\t\t\tvar name = calc.replace( '}', '' ).replace( '{calc:', '' );\n\t\t\t\t\tvar targetCalcModel = calcModel.collection.findWhere( { name: name } );\n if( 'undefined' == typeof targetCalcModel ) return;\n\t\t\t\t\tvar re = new RegExp( calc, 'g' );\n\t\t\t\t\teq = eq.replace( re, targetCalcModel.get( 'value' ) );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn eq;\n\t\t},\n\n\t\t/**\n\t\t * Function that's called when a field within the calculation changes.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param backbone.model calcModel\n\t\t * @param backbone.model fieldModel\n\t\t * @return void\n\t\t */\n\t\tchangeField: function( calcModel, fieldModel ) {\n\t\t\n\t\t\tvar key = fieldModel.get( 'key' );\n\t\t\tvar value = this.getCalcValue( fieldModel );\n\t\t\t\n\t\t\tthis.updateCalcFields( calcModel, key, value );\n\t\t\tvar eqValues = this.replaceAllKeys( calcModel );\n\n // Scrub unmerged tags (ie deleted/nox-existent fields/calcs, etc).\n eqValues = eqValues.replace( /{([a-zA-Z0-9]|:|_|-)*}/g, '0' );\n eqValues = eqValues.replace( /\\r?\\n|\\r/g, '' );\n try {\n\t\t\t\tthis.debug('Calculation Decoder ' + eqValues + ' -> ' + this.localeDecodeEquation(eqValues) + ' (Change Field)');\n\t\t\t calcModel.set( 'value', Number( mexp.eval( this.localeDecodeEquation(eqValues) ) ).toFixed( calcModel.get( 'dec' ) ) );\n } catch( e ) {\n if(this.debug())console.log( e );\n }\n if( calcModel.get( 'value' ) === 'NaN' ) calcModel.set( 'value', '0' );\n\n\t\t\t// Debugging console statement.\n\t\t\t// console.log( eqValues + ' = ' + calcModel.get( 'value' ) );\t\t\n\t\t},\n\n\t\tinitDisplayField: function( fieldModel ) {\n\n\t\t\tif( ! fieldModel.get( 'default' ) || 'string' != typeof fieldModel.get( 'default' ) ) return;\n\n\t\t\tvar calcs = fieldModel.get( 'default' ).match( new RegExp( /{calc:(.*?)}/g ) );\n\t\t\tif ( calcs ) {\n\t\t\t\t_.each( calcs, function( calcName ) {\n\t\t\t\t\tcalcName = calcName.replace( '{calc:', '' ).replace( '}', '' ).replace( ':2', '' );\n\t\t\t\t\tthis.displayFields[ calcName ] = this.displayFields[ calcName ] || [];\n\t\t\t\t\tthis.displayFields[ calcName ].push( fieldModel );\n\t\t\t\t}, this );\n\t\t\t}\n\t\t},\n\n\t\tupdateDisplayFields: function( calcModel ) {\n\t\t\tvar that = this;\n\t\t\tif ( 'undefined' != typeof this.displayFields[ calcModel.get( 'name' ) ] ) {\n\t\t\t\t_.each( this.displayFields[ calcModel.get( 'name' ) ], function( fieldModel ) {\n\n\t\t\t\t\tvar value = '';\n\n\t\t\t\t\t/**\n\t\t\t\t\t * if we have a html field, we want to use the actual\n\t\t\t\t\t * value and re-evaluate\n\t\t\t\t **/\n\t\t\t\t\tif( \"html\" === fieldModel.get( 'type' ) ) {\n\t\t\t\t\t\tvalue = fieldModel.get( 'value' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if not a html field, use default to re-evaluate\n\t\t\t\t\t\tvalue = fieldModel.get( 'default' );\n\t\t\t\t\t}\n\n\t\t\t\t\t/*\n\t\t\t\t\t This is a fix for the issue of the merge tags being\n\t\t\t\t\t display'd\n\t\t\t\t\t */\n\n\t\t\t\t\t// Find spans with calc data-key values\n\t\t\t\t\tvar spans = value.match( new RegExp( /<span data-key=\"calc:(.*?)<\\/span>/g ));\n\t\t\t\t\t_.each( spans, function( spanVar ) {\n\t\t\t\t\t\t// transform the span back into a merge tag\n\t\t\t\t\t\tvar tmpCalcTag = \"{\" + spanVar.replace(\"<span\" +\n\t\t\t\t\t\t\t\" data-key=\\\"\", \"\" ).replace( /\">(.*?)<\\/span>/, \"\" ) + \"}\";\n\n\t\t\t\t\t\tvalue = value.replace( spanVar, tmpCalcTag );\n\t\t\t\t\t} );\n\t\t\t\t\tvar calcs = value.match( new RegExp( /{calc:(.*?)}/g ) );\n\t\t\t\t\t_.each( calcs, function( calc ) {\n//\t\t\t\t\t\tvar rounding = false;\n\t\t\t\t\t\t// calc will be {calc:key} or {calc:key:2}\n\t\t\t\t\t\tvar name = calc.replace( '}', '' ).replace( '{calc:', '' ).replace( ':2', '' );\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * TODO: Bandaid for rounding calculations to two decimal places when displaying the merge tag.\n\t\t\t\t\t\t * Checks to see if we have a :2. If we do, remove it and set our rounding variable to true.\n\t\t\t\t\t\t */\n//\t\t\t\t\t\tif ( -1 != name.indexOf( ':2' ) ) {\n//\t\t\t\t\t\t\trounding = true;\n//\t\t\t\t\t\t\tname = name.replace( ':2', '' );\n//\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar calcModel = that.calcs[ fieldModel.get( 'formID' ) ].findWhere( { name: name } );\n\t\t\t\t\t\tvar re = new RegExp( calc, 'g' );\n\t\t\t\t\t\tvar calcValue = calcModel.get( 'value' ) ;\n//\t\t\t\t\t\tif ( rounding ) {\n//\t\t\t\t\t\t\tcalcValue = calcValue.toFixed( 2 );\n//\t\t\t\t\t\t\trounding = false;\n//\t\t\t\t\t\t}\n\t\t\t\t\t\t\n if( 'undefined' != typeof( calcValue ) ) {\n calcValue = that.applyLocaleFormatting( calcValue, calcModel );\n\t\t\t\t\t\t}\n /*\n * We replace the merge tag with the value\n\t\t\t\t\t\t * surrounded by a span so that we can still find it\n\t\t\t\t\t\t * and not affect itself or other field merge tags\n\t\t\t\t\t\t *\n\t\t\t\t\t\t * Unless this isn't a html field, then we just set\n\t\t\t\t\t\t * value to calcValue\n\t\t\t\t\t\t*/\n if( \"html\" === fieldModel.get( 'type' ) ) {\n\t value = value.replace(re, \"<span data-key=\\\"calc:\" + name + \"\\\">\"\n\t\t + calcValue + \"</span>\");\n } else {\n \tvalue = calcValue;\n }\n\t\t\t\t\t} );\n\t\t\t\t\t\n\t\t\t\t\tfieldModel.set( 'value', value );\n\t\t\t\t\tif ( ! that.init[ calcModel.get( 'name' ) ] ) {\n\t\t\t\t\t\t// fieldModel.set( 'reRender', true );\n\t\t\t\t\t\tfieldModel.trigger( 'reRender' );\n\t\t\t\t\t}\n\t\t\t\t\tthat.init[ calcModel.get( 'name' ) ] = false;\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\tgetCalc: function( name, formID ) {\n\t\t\treturn this.calcs[ formID ].findWhere( { name: name } );\n\t\t},\n\n\t\tchangeCalc: function( calcModel, targetCalcModel ) {\n\t\t\tvar eqValues = this.replaceAllKeys( calcModel );\n\t\t\t\n\t\t\teqValues = eqValues.replace( '[', '' ).replace( ']', '' );\n eqValues = eqValues.replace( /\\r?\\n|\\r/g, '' );\n try {\n\t\t\t\tthis.debug('Calculation Decoder ' + eqValues + ' -> ' + this.localeDecodeEquation(eqValues) + ' (Change Calc)');\n\t\t\t calcModel.set( 'value', Number( mexp.eval( this.localeDecodeEquation( eqValues ) ) ).toFixed( calcModel.get( 'dec' ) ) );\n } catch( e ) {\n console.log( e );\n }\n if( calcModel.get( 'value' ) === 'NaN' ) calcModel.set( 'value', '0' );\n\t\t},\n \n /**\n * Function to apply Locale Formatting to Calculations\n * @since Version 3.1\n * @param Str number\n * \n * @return Str\n */\n applyLocaleFormatting: function( number, calcModel ) {\n\n\t\t\tvar localeConverter = new nfLocaleConverter(nfi18n.siteLocale, nfi18n.thousands_sep, nfi18n.decimal_point);\n\n\t\t\tvar formattedNumber = localeConverter.numberEncoder(number, calcModel.get('dec'));\n \n // // Split our string on the decimal to preserve context.\n // var splitNumber = number.split('.');\n // // If we have more than one element (if we had a decimal point)...\n // if ( splitNumber.length > 1 ) {\n // // Update the thousands and remerge the array.\n // splitNumber[ 0 ] = splitNumber[ 0 ].replace( /\\B(?=(\\d{3})+(?!\\d))/g, nfi18n.thousands_sep );\n // var formattedNumber = splitNumber.join( nfi18n.decimal_point );\n // }\n // // Otherwise (we had no decimal point)...\n // else {\n // // Update the thousands.\n // var formattedNumber = number.replace( /\\B(?=(\\d{3})+(?!\\d))/g, nfi18n.thousands_sep );\n // }\n return formattedNumber;\n\t\t},\n\t\t\n\t\tlocaleDecodeEquation: function( eq ) {\n\t\t\tvar result = '';\n\t\t\tvar expression = '';\n\t\t\tvar pattern = /[0-9.,]/;\n\t\t\tvar localeConverter = new nfLocaleConverter(nfi18n.siteLocale, nfi18n.thousands_sep, nfi18n.decimal_point);\n\t\t\t// This pattern accounts for all whitespace characters (including thin space).\n\t\t\teq = eq.replace( /\\s/g, '' );\n\t\t\teq = eq.replace( /&nbsp;/g, '' );\n\t\t\tvar characters = eq.split('');\n\t\t\t// foreach ( characters as character ) {\n\t\t\tcharacters.forEach( function( character ) {\n\t\t\t\t// If the character is numeric or '.' or ','\n\t\t\t\tif (pattern.test(character)) {\n\t\t\t\t\texpression = expression + character;\n\t\t\t\t} else {\n\t\t\t\t\t// If we reach an operator char, append the expression to the result\n\t\t\t\t\tif ( 0 < expression.length ) {\n\t\t\t\t\t\tresult = result + localeConverter.numberDecoder( expression );\n\t\t\t\t\t\texpression = '';\n\t\t\t\t\t}\n\t\t\t\t\tresult = result + character;\n\t\t\t\t}\n\t\t\t});\n\t\t\t// The following catches the case of the last character being a digit.\n\t\t\tif ( 0 < expression.length ) {\n\t\t\t\tresult = result + localeConverter.numberDecoder( expression );\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\n\t\tdebug: function(message) {\n\t\t\tif ( window.nfCalculationsDebug || false ) console.log(message);\n\t\t}\n\t\n\t});\n\n\treturn controller;\n} );\n\ndefine('controllers/dateBackwardsCompat',[], function() {\n var controller = Marionette.Object.extend({\n\n initialize: function () {\n this.listenTo( Backbone.Radio.channel( 'pikaday-bc' ), 'init', this.dateBackwardsCompat );\t\n },\n\n dateBackwardsCompat: function( dateObject, fieldModel ) {\n \n /**\n * Start backwards compatibility for old pikaday customisation\n */\n // Legacy properties\n dateObject.pikaday = {};\n dateObject.pikaday._o = {};\n\n //Old hook for Pikaday Custom code\n nfRadio.channel( 'pikaday' ).trigger( 'init', dateObject, fieldModel );\n\n // If we've set a disableDayFn property in custom code, hook it up to Flatpickr\n if ( typeof dateObject.pikaday._o.disableDayFn !== 'undefined') {\n dateObject.set( 'disable', [ dateObject.pikaday._o.disableDayFn ] );\n }\n\n //Compatibility for i18n pikaday function\n if ( typeof dateObject.pikaday._o.i18n !== 'undefined' || typeof dateObject.pikaday._o.firstDay !== 'undefined') {\n\n let locale = dateObject.config.locale;\n\n if ( typeof dateObject.pikaday._o.firstDay !== 'undefined') {\n locale.firstDayOfWeek = dateObject.pikaday._o.firstDay;\n }\n\n if ( typeof dateObject.pikaday._o.i18n !== 'undefined') {\n if ( typeof dateObject.pikaday._o.i18n.weekdays !== 'undefined') {\n locale.weekdays.longhand = dateObject.pikaday._o.i18n.weekdays;\n }\n\n if ( typeof dateObject.pikaday._o.i18n.weekdaysShort !== 'undefined') {\n locale.weekdays.shorthand = dateObject.pikaday._o.i18n.weekdaysShort;\n }\n \n if ( typeof dateObject.pikaday._o.i18n.months !== 'undefined') {\n jQuery( '.flatpickr-monthDropdown-months > option' ).each( function() {\n this.text = dateObject.pikaday._o.i18n.months[ this.value ];\n } );\n }\n }\n\n dateObject.set( 'locale', locale );\n \n }\n\n if ( Object.keys(dateObject.pikaday._o).length > 0 ) {\n console.log(\"%cDeprecated Ninja Forms Pikaday custom code detected.\", \"color: Red; font-size: large\");\n console.log(\"You are using deprecated Ninja Forms Pikaday custom code. Support for this custom code will be removed in a future version of Ninja Forms. Please contact Ninja Forms support for more details.\");\n }\n\n }\n\n });\n\n return controller;\n});\ndefine('controllers/fieldDate',[], function() {\n var controller = Marionette.Object.extend({\n\n initialize: function () {\n this.listenTo( nfRadio.channel( 'date' ), 'render:view', this.initDatepicker );\n },\n\n initDatepicker: function ( view ) {\n var dateFormat = view.model.get( 'date_format' );\n \n // For \"default\" date format, convert PHP format to JS compatible format.\n if( '' == dateFormat || 'default' == dateFormat ){\n dateFormat = this.convertDateFormat( nfi18n.dateFormat );\n }\n\n var el = jQuery( view.el ).find( '.nf-element' )[0];\n var dateSettings = {\n classes: jQuery( el ).attr( \"class\" ),\n placeholder: view.model.get( 'placeholder' ),\n parseDate: (datestr, format) => {\n return moment(datestr, format, true).toDate();\n },\n formatDate: (date, format, locale) => {\n return moment(date).format(format);\n },\n dateFormat: dateFormat,\n altFormat: dateFormat,\n altInput: true,\n ariaDateFormat: dateFormat,\n mode: \"single\",\n disableMobile: \"true\",\n locale: {\n months: {\n shorthand: nfi18n.monthsShort,\n longhand: nfi18n.months\n },\n weekdays: {\n shorthand: nfi18n.weekdaysShort,\n longhand: nfi18n.weekdays\n },\n firstDayOfWeek: nfi18n.startOfWeek,\n }\n };\n \n var dateObject = flatpickr( el, dateSettings );\n\n if ( 1 == view.model.get( 'date_default' ) ) {\n dateObject.setDate( moment().format(dateFormat) );\n }\n\n //Trigger Pikaday backwards compatibility\n nfRadio.channel( 'pikaday-bc' ).trigger( 'init', dateObject, view.model );\n\n nfRadio.channel( 'flatpickr' ).trigger( 'init', dateObject, view.model );\n },\n\n getYearRange: function( fieldModel ) {\n var yearRange = 10;\n var yearRangeStart = fieldModel.get( 'year_range_start' );\n var yearRangeEnd = fieldModel.get( 'year_range_end' );\n\n if( yearRangeStart && yearRangeEnd ){\n return [ yearRangeStart, yearRangeEnd ];\n } else if( yearRangeStart ) {\n yearRangeEnd = yearRangeStart + yearRange;\n return [ yearRangeStart, yearRangeEnd ];\n } else if( yearRangeEnd ) {\n yearRangeStart = yearRangeEnd - yearRange;\n return [ yearRangeStart, yearRangeEnd ];\n }\n\n return yearRange;\n },\n\n getMinDate: function( fieldModel ) {\n var minDate = null;\n var yearRangeStart = fieldModel.get( 'year_range_start' );\n\n if( yearRangeStart ) {\n return new Date( yearRangeStart, 0, 1 );\n }\n\n return minDate;\n },\n\n getMaxDate: function( fieldModel ) {\n var maxDate = null;\n var yearRangeEnd = fieldModel.get( 'year_range_end' );\n\n if( yearRangeEnd ) {\n return new Date( yearRangeEnd, 11, 31 );\n }\n\n return maxDate;\n },\n \n convertDateFormat: function( dateFormat ) {\n // http://php.net/manual/en/function.date.php\n // https://github.com/dbushell/Pikaday/blob/master/README.md#formatting **** Switched to flatpickr ***\n // Note: Be careful not to add overriding replacements. Order is important here.\n\n /** Day */\n dateFormat = dateFormat.replace( 'D', 'ddd' ); // @todo Ordering issue?\n dateFormat = dateFormat.replace( 'd', 'DD' );\n dateFormat = dateFormat.replace( 'l', 'dddd' );\n dateFormat = dateFormat.replace( 'j', 'D' );\n dateFormat = dateFormat.replace( 'N', '' ); // Not Supported\n dateFormat = dateFormat.replace( 'S', '' ); // Not Supported\n dateFormat = dateFormat.replace( 'w', 'd' );\n dateFormat = dateFormat.replace( 'z', '' ); // Not Supported\n\n /** Week */\n dateFormat = dateFormat.replace( 'W', 'W' );\n\n /** Month */\n dateFormat = dateFormat.replace( 'M', 'MMM' ); // \"M\" before \"F\" or \"m\" to avoid overriding.\n dateFormat = dateFormat.replace( 'F', 'MMMM' );\n dateFormat = dateFormat.replace( 'm', 'MM' );\n dateFormat = dateFormat.replace( 'n', 'M' );\n dateFormat = dateFormat.replace( 't', '' ); // Not Supported\n\n // Year\n dateFormat = dateFormat.replace( 'L', '' ); // Not Supported\n dateFormat = dateFormat.replace( 'o', 'YYYY' );\n dateFormat = dateFormat.replace( 'Y', 'YYYY' );\n dateFormat = dateFormat.replace( 'y', 'YY' );\n\n // Time - Not supported\n dateFormat = dateFormat.replace( 'a', '' );\n dateFormat = dateFormat.replace( 'A', '' );\n dateFormat = dateFormat.replace( 'B', '' );\n dateFormat = dateFormat.replace( 'g', '' );\n dateFormat = dateFormat.replace( 'G', '' );\n dateFormat = dateFormat.replace( 'h', '' );\n dateFormat = dateFormat.replace( 'H', '' );\n dateFormat = dateFormat.replace( 'i', '' );\n dateFormat = dateFormat.replace( 's', '' );\n dateFormat = dateFormat.replace( 'u', '' );\n dateFormat = dateFormat.replace( 'v', '' );\n\n // Timezone - Not supported\n dateFormat = dateFormat.replace( 'e', '' );\n dateFormat = dateFormat.replace( 'I', '' );\n dateFormat = dateFormat.replace( 'O', '' );\n dateFormat = dateFormat.replace( 'P', '' );\n dateFormat = dateFormat.replace( 'T', '' );\n dateFormat = dateFormat.replace( 'Z', '' );\n\n // Full Date/Time - Not Supported\n dateFormat = dateFormat.replace( 'c', '' );\n dateFormat = dateFormat.replace( 'r', '' );\n dateFormat = dateFormat.replace( 'u', '' );\n\n return dateFormat;\n }\n });\n\n return controller;\n});\n\ndefine('controllers/fieldRecaptcha',[], function() {\n var controller = Marionette.Object.extend({\n\n initialize: function () {\n this.listenTo( nfRadio.channel( 'recaptcha' ), 'init:model', this.initRecaptcha );\n this.listenTo( nfRadio.channel( 'forms' ), 'submit:response', this.resetRecaptcha );\n },\n\n \tinitRecaptcha: function ( model ) {\n \t\tnfRadio.channel( 'recaptcha' ).reply( 'update:response', this.updateResponse, this, model.id );\n },\n\n updateResponse: function( response, fieldID ) {\n \tvar model = nfRadio.channel( 'fields' ).request( 'get:field', fieldID );\n\t\t\tmodel.set( 'value', response );\n nfRadio.channel( 'fields' ).request( 'remove:error', model.get( 'id' ), 'required-error' );\n },\n\n resetRecaptcha: function() {\n\t\t\tvar recaptchaID = 0;\n\t\t\tjQuery( '.g-recaptcha' ).each( function() {\n\t\t\t\ttry {\n\t\t\t\t\tgrecaptcha.reset( recaptchaID );\n\t\t\t\t} catch( e ){\n\t\t\t\t\tconsole.log( 'Notice: Error trying to reset grecaptcha.' );\n\t\t\t\t}\n\t\t\t\trecaptchaID++;\n\t\t\t} );\n }\n });\n\n return controller;\n} );\ndefine('controllers/fieldHTML',[], function() {\n var controller = Marionette.Object.extend({\n\n htmlFields: [],\n trackedMergeTags: [],\n\n initialize: function () {\n this.listenTo( Backbone.Radio.channel( 'fields-html' ), 'init:model', this.setupFieldMergeTagTracking );\n },\n\n setupFieldMergeTagTracking: function( fieldModel ) {\n this.htmlFields.push( fieldModel );\n\n var formID = fieldModel.get( 'formID' );\n\n this.listenTo( nfRadio.channel( 'form-' + formID ), 'init:model', function( formModel ){\n\n var mergeTags = fieldModel.get( 'default' ).match( new RegExp( /{field:(.*?)}/g ) );\n if ( ! mergeTags ) return;\n\n _.each( mergeTags, function( mergeTag ) {\n var fieldKey = mergeTag.replace( '{field:', '' ).replace( '}', '' );\n var fieldModel = formModel.get( 'fields' ).findWhere({ key: fieldKey });\n if( 'undefined' == typeof fieldModel ) return;\n\n this.trackedMergeTags.push( fieldModel );\n this.listenTo( nfRadio.channel( 'field-' + fieldModel.get( 'id' ) ), 'change:modelValue', this.updateFieldMergeTags );\n }, this );\n\n // Let's get this party started!\n this.updateFieldMergeTags();\n }, this );\n },\n\n updateFieldMergeTags: function( fieldModel ) {\n _.each( this.htmlFields, function( htmlFieldModel ){\n var value = htmlFieldModel.get( 'value' );\n _.each( this.trackedMergeTags, function( fieldModel ){\n\n /* Search the value for any spans with mergetag data-key\n * values\n */\n var spans = value.match( new RegExp( /<span data-key=\"field:(.*?)<\\/span>/g ) );\n\t _.each( spans, function( spanVar ) {\n\t /* See if the span string contains the current\n * fieldModel's key. If so replace the span with a\n * merge tag for evaluation.\n */\n if( -1 < spanVar.indexOf( \"data-key=\\\"field:\" + fieldModel.get( 'key' ) ) ) {\n\t value = value.replace( spanVar, \"{field:\" + fieldModel.get( 'key' ) + \"}\" );\n }\n\t } );\n\n var mergeTag = '{field:' + fieldModel.get( 'key' ) + '}';\n\t /* We replace the merge tag with the value\n\t * surrounded by a span so that we can still find it\n\t * and not affect itself or other field merge tags\n\t */\n value = value.replace( mergeTag, \"<span data-key=\\\"field:\"\n + fieldModel.get( 'key' ) + \"\\\">\"\n + fieldModel.get( 'value' ) + \"</span>\" );\n }, this ) ;\n htmlFieldModel.set( 'value', value );\n htmlFieldModel.trigger( 'reRender' );\n }, this );\n }\n\n });\n\n return controller;\n});\n\n/**\n * When a form is loaded, enable any help text that appears on the page.\n */\ndefine('controllers/helpText',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'form' ), 'render:view', this.initHelpText );\n\n\t\t\tnfRadio.channel( 'form' ).reply( 'init:help', this.initHelpText );\n\t\t},\n\n\t\tinitHelpText: function( view ) {\n\t\t\tjQuery( view.el ).find( '.nf-help' ).each( function() {\n\t\t\t\tvar jBox = jQuery( this ).jBox( 'Tooltip', {\n\t\t\t\t\ttheme: 'TooltipBorder',\n\t\t\t\t\tcontent: jQuery( this ).data( 'text' )\n\t\t\t\t});\n\t\t\t} );\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/fieldTextbox',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n nfRadio.channel( 'textbox' ).reply( 'get:calcValue', this.getCalcValue, this );\n\t\t},\n\n\t\tgetCalcValue: function( fieldModel ) {\n if('currency' == fieldModel.get('mask')){\n var form = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n var currencySymbol = ('undefined' !== typeof form) ? form.get( 'currencySymbol' ) : '';\n var currencySymbolDecoded = jQuery('<textarea />').html(currencySymbol).text();\n return fieldModel.get( 'value' ).replace(currencySymbolDecoded, '');\n }\n\n\t\t\treturn fieldModel.get( 'value' );\n\t\t},\n\t});\n\n\treturn controller;\n} );\n/**\n * When a form is loaded, enable any rtes in textareas.\n */\ndefine('controllers/fieldTextareaRTE',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'textarea' ), 'render:view', this.initTextareaRTEs );\n\t\t\tthis.listenTo( nfRadio.channel( 'textarea' ), '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\tthis.currentContext = {};\n\n\t\t\tif( 'undefined' == typeof jQuery.summernote ) return;\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},\n\n\t\tinitTextareaRTEs: function( view ) {\n\t\t\tif ( 1 != view.model.get( 'textarea_rte' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\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\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];\n\n\t\t\tif ( 1 == view.model.get( 'textarea_media' ) && 0 != userSettings.uid ) {\n\t\t\t\ttoolbar.push( [ 'tools', [ 'mediaButton' ] ] );\n\t\t\t}\n\n\t\t\tjQuery( view.el ).find( '.nf-element' ).summernote( {\n\t\t\t\ttoolbar: toolbar,\n\t\t\t\tbuttons: {\n\t\t\t\t\tlinkButton: linkButton,\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\t\t\t\t},\n\t\t\t\tprettifyHtml: true,\n\t\t\t\tcallbacks: {\n\t\t\t\t\tonChange: function( e ) {\n\t\t\t\t\t\tview.model.set( 'value', jQuery( this ).summernote( 'code' ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tvar linkMenu = jQuery( view.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\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: nfi18n.fieldTextareaRTEInsertLink,\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\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: nfi18n.fieldTextareaRTEInsertMedia,\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.saveRange' );\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: nfi18n.fieldTextareaRTESelectAFile,\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 ) {\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\tcontext.invoke( 'editor.restoreRange' );\n\t\t\tif ( 'image' == media.type ) {\n\t\t\t\tcontext.invoke( 'editor.insertImage', media.url );\n\t\t\t} else {\n\t\t\t\tcontext.invoke( 'editor.createLink', { text: media.filename, url: media.url } );\n\t\t\t}\n\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/fieldStarRating',[], function() {\n var controller = Marionette.Object.extend( {\n\n initialize: function() {\n \tthis.listenTo( nfRadio.channel( 'starrating' ), 'init:model', this.register );\n this.listenTo( nfRadio.channel( 'starrating' ), 'render:view', this.initRating );\n },\n\n register: function( model ) {\n\t\t\tmodel.set( 'renderRatings', this.renderRatings );\n\t\t},\n\n initRating: function( view ){\n jQuery( view.el ).find( '.starrating' ).rating();\n\n },\n\n renderRatings: function() {\n \tvar html = document.createElement( 'span' );\n \t// changed from 'default' to 'number_of_stars'\n \tfor (var i = 0; i <= this.number_of_stars - 1; i++) {\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-starrating-star' );\n var num = i + 1;\n var checked = '';\n\n // Check to see if current 'star' matches the default value\n\t\t if ( this.value == num ) {\n\t\t \tchecked = 'checked';\n\t\t }\n var htmlFragment = template( { id: this.id, classes: this.classes, num: num, checked: checked, required: this.required } );\n html.appendChild(\n document.createRange().createContextualFragment( htmlFragment )\n );\n \t}\n \treturn html.innerHTML;\n }\n\n });\n\n return controller;\n});\n\ndefine('controllers/fieldTerms',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'terms' ), 'init:model', this.register );\n },\n\n register: function( model ) {\n // nfRadio.channel( 'field-' + this.model.get( 'id' ) ).trigger( 'click:extra', e, this.model );\n this.listenTo( nfRadio.channel( 'field-' + model.get( 'id' ) ), 'click:extra', this.clickExtra );\n this.listenTo( nfRadio.channel( 'field-' + model.get( 'id' ) ), 'keyup:field', this.keyUpExtra );\n },\n \n clickExtra: function( e, model ) {\n var el = jQuery( e.currentTarget );\n var value = el.parent().find( '.extra-value' ).val();\n this.addOption( model, value );\n },\n\n keyUpExtra: function( el, model, keyCode ) {\n if( 13 != keyCode ) return;\n this.addOption( model, el.val() );\n },\n\n addOption: function( model, value ) {\n if( ! value ) return;\n var options = model.get( 'options' );\n var new_option = {\n label: value,\n value: value,\n selected: 0,\n };\n options.push( new_option );\n\n var selected = model.get( 'value' );\n selected.push( value );\n\n // model.set( 'reRender', true );\n model.trigger( 'reRender' );\n }\n \n });\n\n return controller;\n} );\n/**\n * Before we display our form content, ask if anyone wants to give us a different view.\n * Before we do anything with the data, pass it through any loading filters.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2016 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/formContentFilters',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * Init our fieldContent view and load filter arrays.\n\t\t\t */\n\t\t\tthis.viewFilters = [];\n\t\t\tthis.loadFilters = [];\n\n\t\t\t/*\n\t\t\t * Listen for requests to add new formContent filters.\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContent' ).reply( 'add:viewFilter', this.addViewFilter, 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:loadFilters', this.getLoadFilters, this );\n\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\t\t\tnfRadio.channel( 'fieldContents' ).reply( 'add:viewFilter', this.addViewFilter, 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 * TODO: Remove eventually.\n\t\t\t */\n\t\t\tnfRadio.channel( 'fieldContents' ).reply( 'get:viewFilters', this.getViewFilters, 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\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} );\ndefine( 'views/fieldItem',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'div',\n\n\t\tinitialize: function() {\n \t\tthis.listenTo( this.model, 'reRender', this.render, this );\n \t\tthis.listenTo( this.model, 'change:addWrapperClass', this.addWrapperClass, this );\n \t\tthis.listenTo( this.model, 'change:removeWrapperClass', this.removeWrapperClass, this );\n \t\tthis.listenTo( this.model, 'change:invalid', this.toggleAriaInvalid, this );\n\n \t\tthis.template = '#tmpl-nf-field-' + this.model.get( 'wrap_template' );\n\t\t},\n\n\t\ttest: function( model ) {\n\t\t\tconsole.log( 'firing from trigger 1' );\n\t\t},\n\n\t\taddWrapperClass: function() {\n\t\t\tvar cl = this.model.get( 'addWrapperClass' );\n\t\t\tif ( '' != cl ) {\n\t\t\t\tjQuery( this.el ).addClass( cl );\n\t\t\t\tthis.model.set( 'addWrapperClass', '' );\n\t\t\t}\n\t\t},\n\n\t\tremoveWrapperClass: function() {\n\t\t\tvar cl = this.model.get( 'removeWrapperClass' );\n\t\t\tif ( '' != cl ) {\n\t\t\t\tjQuery( this.el ).removeClass( cl );\n\t\t\t\tthis.model.set( 'removeWrapperClass', '' );\n\t\t\t}\n\t\t},\n\n\t\ttoggleAriaInvalid: function() {\n\t\t\tvar invalid = this.model.get( 'invalid' );\n\t\t\tjQuery( '[aria-invalid]', this.el ).attr( 'aria-invalid', JSON.stringify( invalid ) );\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\t/*\n \t\t * If we have an input mask, init that mask.\n \t\t * TODO: Move this to a controller so that the logic isn't in the view.\n \t\t */\n \t\tif ( 'undefined' != typeof this.model.get( 'mask' ) && '' != jQuery.trim( this.model.get( 'mask' ) ) ) {\n \t\t\tif ( 'custom' == this.model.get( 'mask') ) {\n \t\t\t\tvar mask = this.model.get( 'custom_mask' );\n \t\t\t} else {\n \t\t\t\tvar mask = this.model.get( 'mask' );\n \t\t\t}\n\n\t\t\t\t/* POLYFILL */ Number.isInteger = Number.isInteger || function(value) { return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value; };\n \t\t\tif ( Number.isInteger( mask ) ) {\n \t\t\t\tmask = mask.toString();\n \t\t\t}\n\n\t\t\t\tif ( 'currency' == mask ) {\n\t\t\t\t\tvar form = nfRadio.channel( 'app' ).request( 'get:form', this.model.get( 'formID' ) );\n\n\t\t\t\t\tvar thousands_sep = form.get( 'thousands_sep' );\n\t\t\t\t\t/*\n\t\t\t\t\t * TODO: if we have a &nbsp; , replace it with a string with a space.\n\t\t\t\t\t */\n\t\t\t\t\tif ( '&nbsp;' == thousands_sep ) {\n\t\t\t\t\t\tthousands_sep = ' ';\n\t\t\t\t\t}\n\t\t\t\t\tvar currencySymbol = jQuery( '<div/>' ).html( form.get( 'currencySymbol' ) ).text();\n\t\t\t\t\tthousands_sep = jQuery( '<div/>' ).html( thousands_sep ).text();\n\t\t\t\t\tvar decimal_point = jQuery( '<div/>' ).html( form.get( 'decimal_point' ) ).text();\n\t\t\t\t\t\n\t\t\t\t\t/*\n\t\t\t\t\t * TODO: Currently, these options use the plugin-wide defaults for locale.\n\t\t\t\t\t * When per-form locales are implemented, these will need to be revisited.\n\t\t\t\t\t */\n\t\t\t\t\tvar autoNumericOptions = {\n\t\t\t\t\t digitGroupSeparator : thousands_sep,\n\t\t\t\t\t decimalCharacter : decimal_point,\n\t\t\t\t\t currencySymbol : currencySymbol\n\t\t\t\t\t};\n\n\t\t\t\t\t// Initialization\n\t\t\t\t\tvar autoN_el = jQuery(jQuery( this.el ).find( '.nf-element' )[ 0 ]);\n\t\t\t\t\tnew AutoNumeric( jQuery( this.el ).find( '.nf-element' )[ 0 ], autoNumericOptions );\n\t\t\t\t\t// update the value for the model so it gets saved to\n\t\t\t\t\t// the database properly\n\t\t\t\t\tvar context = this;\n\t\t\t\t\tautoN_el.on( 'change', function( e ) {\n\t\t\t\t\t\tcontext.model.set( 'value', e.target.value );\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tjQuery( this.el ).find( '.nf-element' ).mask( mask );\n\t\t\t\t} \t\t\t\n\t \t\t}\n\n\t\t\tnfRadio.channel( this.model.get( 'type' ) ).trigger( 'render:view', this );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'render:view', this );\n\t\t},\n\n\t\ttemplateHelpers: function () {\n\t\t\tvar that = this;\n\t \treturn {\n\n\t\t\t\trenderElement: function(){\n\t\t\t\t\tvar tmpl = _.find( this.element_templates, function( tmpl ) {\n\t\t\t\t\t\tif ( 0 < jQuery( '#tmpl-nf-field-' + tmpl ).length ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-' + tmpl );\n\t\t\t\t\treturn template( this );\n\t\t\t\t},\n\n\t\t\t\trenderLabel: function() {\n\t\t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-label' );\n\t\t\t\t\treturn template( 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 ( 'undefined' != typeof this.customLabelClasses ) {\n\t\t\t\t\t\tclasses = this.customLabelClasses( classes );\n\t\t\t\t\t}\n\t\t\t\t\treturn classes;\n\t\t\t\t},\n\n\t\t\t\trenderPlaceholder: function() {\n\t\t\t\t\tvar placeholder = this.placeholder;\n\n\t\t\t\t\tif ( 'undefined' != typeof this.customPlaceholder ) {\n\t\t\t\t\t\tplaceholder = this.customPlaceholder( placeholder );\n\t\t\t\t\t}\n\n\t\t\t\t\tif( '' != jQuery.trim( placeholder ) ) {\n\t\t\t\t\t\treturn 'placeholder=\"' + placeholder + '\"';\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\trenderWrapClass: function() {\n\t\t\t\t\tvar wrapClass = 'field-wrap ' + this.type + '-wrap';\n\n\t\t\t\t\t// Check if type and parentType are different. If, so\n\t\t\t\t\t// then add appropriate parentType wrap class\n\t\t\t\t\tif ( this.type !== this.parentType ) {\n\t\t\t\t\t\twrapClass = wrapClass + ' ' + this.parentType + '-wrap';\n\t\t\t\t\t}\n\t\t\t\t\t// If we have an old_classname defined, output wrap class for backward compatibility\n\t\t\t\t\tif ( 'undefined' != typeof this.old_classname && 0 < jQuery.trim( this.old_classname ).length ) {\n\t\t\t\t\t\twrapClass += ' ' + this.old_classname + '-wrap';\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( 'undefined' != typeof customWrapClass ) {\n\t\t\t\t\t\twrapClass = customWrapClass( wrapClass );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn wrapClass;\n\t\t\t\t},\n\n\t\t\t\trenderClasses: function() {\n\t\t\t\t\tvar classes = this.classes;\n\n\t\t\t\t\tif ( this.error ) {\n\t\t\t\t\t\tclasses += ' nf-error';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclasses = classes.replace( 'nf-error', '' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( 'undefined' != typeof this.element_class && 0 < jQuery.trim( this.element_class ).length ) {\n\t\t\t\t\t\tclasses += ' ' + this.element_class;\n\t\t\t\t\t}\n\n\t\t\t\t\t/*\n\t\t\t\t\t * If we have a function for adding extra classes, add those.\n\t\t\t\t\t */\n\n\t\t\t\t\tif ( 'undefined' != typeof this.customClasses ) {\n\t\t\t\t\t\tclasses = this.customClasses( classes );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn classes;\n\t\t\t\t},\n\n\t\t\t\tmaybeDisabled: function() {\n\t\t\t\t\tif ( 1 == this.disable_input ) {\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 \n maybeRequired: function() {\n if ( 1 == this.required ) {\n return 'required';\n } else {\n return '';\n }\n },\n\n\t\t\t\tmaybeDisableAutocomplete: function() {\n\t\t\t\t\tif ( 1 == this.disable_browser_autocomplete ) {\n\t\t\t\t\t\treturn 'autocomplete=\"off\"';\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\tmaybeInputLimit: function() {\n\t\t\t\t\tif ( 'characters' == this.input_limit_type && '' != jQuery.trim( this.input_limit ) ) {\n\t\t\t\t\t\treturn 'maxlength=\"' + this.input_limit + '\"';\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\tgetHelpText: function() {\n\t\t\t\t\t// this.help_text = jQuery( this.help_text ).html();\n\t\t\t\t\t// return ( 'undefined' != typeof this.help_text ) ? this.help_text.replace(/\"/g, \"&quot;\") : '';\n\t\t\t\t\treturn ( 'undefined' != typeof this.help_text ) ? this.help_text : '';\n\t\t\t\t},\n\n\t\t\t\tmaybeRenderHelp: function() {\n\n\t\t\t\t\t// use jQuery().text() to make sure help_text has actual\n\t\t\t\t\t// text and not just HTML tags.\n\t\t\t\t\tvar check_text_par = document.createElement( 'p' );\n check_text_par.innerHTML = this.help_text;\n\n var shouldRenderHelpText = false;\n // Check for text or image tags\n\t\t\t\t\tif ( 0 != jQuery.trim( jQuery( check_text_par ).text() ).length\n\t\t\t\t\t\t|| 0 < jQuery( check_text_par ).find('img').length ) {\n \tshouldRenderHelpText = true;\n }\n\n\t\t\t\t\tif ( 'undefined' != typeof this.help_text && shouldRenderHelpText ) {\n\t\t\t\t\t\tvar icon = document.createElement( 'span' );\n\t\t\t\t\t\ticon.classList.add( 'fa', 'fa-info-circle', 'nf-help' );\n\t\t\t\t\t\ticon.setAttribute( 'data-text', this.getHelpText() );\n\t\t\t\t\t\treturn icon.outerHTML;\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\trenderDescText: function() {\n\t\t\t\t\tif ( 'undefined' == typeof this.desc_text ) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\n\t\t\t\t\t// Creates an element so we can check to see if the text is empty.\n\t\t\t\t\tvar text = document.createElement( 'p' );\n\t\t\t\t\ttext.innerHTML = this.desc_text;\n\t\t\t\t\tif( 0 == jQuery.trim( text.innerText ).length ) return '';\n\n var check, checkText;\n\t\t\t\t\tcheckText = document.createTextNode( this.desc_text );\n\t\t\t\t\tcheck = document.createElement( 'p' );\n\t\t\t\t\tcheck.appendChild( checkText );\n\t\t\t\t\tif ( 0 != jQuery.trim( jQuery( check ).text() ).length ) {\n\t\t\t\t\t\tvar descriptionText, fieldDescription;\n descriptionText = document.createRange().createContextualFragment( this.desc_text );\n fieldDescription = document.createElement( 'div' );\n\t\t\t\t\t\tfieldDescription.classList.add( 'nf-field-description' );\n\t\t\t\t\t\tfieldDescription.appendChild( descriptionText );\n\t\t\t\t\t\treturn fieldDescription.outerHTML;\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 renderNumberDefault: function() {\n // If the field is clean...\n if ( this.clean ) {\n // If we have a default...\n if ( this.default ) {\n return this.default;\n } // If we do not have a placeholder...\n else if ( ! this.placeholder ) {\n return this.value;\n } // Otherwise...\n else {\n return '';\n }\n } // Otherwise... (The field is not clean.)\n else {\n return this.value;\n }\n },\n\n\t\t\t\trenderCurrencyFormatting: function( number ) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Our number will have a . as a decimal point. We want to replace that with our locale decimal, nfi18n.decimal_point.\n\t\t\t\t\t */\n\t\t\t\t\tvar replacedDecimal = number.toString().replace( '.', '||' );\n\t\t\t\t\t/*\n\t\t\t\t\t * Add thousands separator. Our original number var won't have thousands separators.\n\t\t\t\t\t */\n\t\t\t\t\tvar replacedThousands = replacedDecimal.replace( /\\B(?=(\\d{3})+(?!\\d))/g, nfi18n.thousands_sep );\n\t\t\t\t\tvar formattedNumber = replacedThousands.replace( '||', nfi18n.decimal_point );\n\n\t\t\t\t\tvar form = nfRadio.channel( 'app' ).request( 'get:form', that.model.get( 'formID' ) );\n\t\t\t\t\tvar currency_symbol = form.get( 'settings' ).currency_symbol;\n\t\t\t\t\treturn currency_symbol + formattedNumber;\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\tevents: {\n\t\t\t'change .nf-element': 'fieldChange',\n\t\t\t'keyup .nf-element': 'fieldKeyup',\n\t\t\t'click .nf-element': 'fieldClick',\n\t\t\t'click .extra': 'extraClick',\n\t\t\t'blur .nf-element': 'fieldBlur'\n\t\t},\n\n\t\tfieldChange: function( e ) {\n\t\t\tvar el = jQuery( e.currentTarget );\n\t\t\tvar response = nfRadio.channel( 'nfAdmin' ).request( 'change:field', el, this.model );\n\t\t},\n\n\t\tfieldKeyup: function( e ) {\n\t\t\tvar el = jQuery( e.currentTarget );\n\t\t\tvar keyCode = e.keyCode;\n\t\t\tnfRadio.channel( 'field-' + this.model.get( 'id' ) ).trigger( 'keyup:field', el, this.model, keyCode );\n\t\t\tnfRadio.channel( this.model.get( 'type' ) ).trigger( 'keyup:field', el, this.model, keyCode );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'keyup:field', el, this.model, keyCode );\n\t\t},\n\n\t\tfieldClick: function( e ) {\n\t\t\tvar el = jQuery( e.currentTarget );\n\t\t\tnfRadio.channel( 'field-' + this.model.get( 'id' ) ).trigger( 'click:field', el, this.model );\n\t\t\tnfRadio.channel( this.model.get( 'type' ) ).trigger( 'click:field', el, this.model );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'click:field', el, this.model );\n\t\t},\n\n\t\textraClick: function( e ) {\n\t\t\tnfRadio.channel( 'field-' + this.model.get( 'id' ) ).trigger( 'click:extra', e, this.model );\n\t\t\tnfRadio.channel( this.model.get( 'type' ) ).trigger( 'click:extra', e, this.model );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'click:extra', e, this.model );\n\t\t},\n\n\t\tfieldBlur: function( e ) {\n\t\t\tvar el = jQuery( e.currentTarget );\n\t\t\tnfRadio.channel( 'field-' + this.model.get( 'id' ) ).trigger( 'blur:field', el, this.model );\n\t\t\tnfRadio.channel( this.model.get( 'type' ) ).trigger( 'blur:field', el, this.model );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'blur:field', el, this.model );\n\t\t},\n\n\t\tonAttach: function() {\n\t\t\tnfRadio.channel( this.model.get( 'type' ) ).trigger( 'attach:view', this );\n\t\t}\n\t});\n\n\treturn view;\n} );\n\ndefine( 'views/beforeField',[], function() {\n var view = Marionette.ItemView.extend({\n tagName: 'nf-section',\n template: '#tmpl-nf-field-before'\n });\n\n return view;\n} );\ndefine( 'views/fieldErrorItem',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'nf-section',\n\t\ttemplate: '#tmpl-nf-field-error',\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} );\ndefine( 'views/fieldErrorCollection',['views/fieldErrorItem'], function( fieldErrorItem ) {\n\tvar view = Marionette.CollectionView.extend({\n\t\ttagName: \"nf-errors\",\n\t\tchildView: fieldErrorItem,\n\n\t\tinitialize: function( options ) {\n\t\t\tthis.fieldModel = options.fieldModel;\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tif ( 0 == this.fieldModel.get( 'errors' ).models.length ) {\n this.fieldModel.removeWrapperClass( 'nf-error' );\n this.fieldModel.removeWrapperClass( 'nf-fail' );\n this.fieldModel.addWrapperClass( 'nf-pass' );\n this.fieldModel.setInvalid( false );\n } else {\n this.fieldModel.removeWrapperClass( 'nf-pass' );\n this.fieldModel.addWrapperClass( 'nf-fail' );\n this.fieldModel.addWrapperClass( 'nf-error' );\n this.fieldModel.setInvalid( true );\n }\n\n\t\t}\n\t});\n\n\treturn view;\n} );\n\ndefine( 'views/inputLimit',[], function() {\n var view = Marionette.ItemView.extend({\n tagName: 'nf-section',\n template: '#tmpl-nf-field-input-limit',\n\n initialize: function() {\n \tthis.listenTo( nfRadio.channel( 'field-' + this.model.get( 'id' ) ), 'keyup:field', this.updateCount );\n \tthis.count = this.model.get( 'input_limit' );\n \tthis.render();\n },\n\n updateCount: function( el, model ) {\n var value = jQuery( el ).val();\n var regex = /\\s+/gi;\n var words = value.trim().replace(regex, ' ').split(' ');\n var wordCount = words.length;\n var charCount = value.length;\n \n /**\n * PHP Config has 'char' instead of 'characters', so I changed it to\n * 'characters', but added 'char' here so existing form fields will\n * act correctly\n **/\n if ( 'characters' == this.model.get( 'input_limit_type' )\n || 'char' == this.model.get( 'input_limit_type' ) ) {\n jQuery( el ).attr( 'maxlength', this.model.get( 'input_limit' ) );\n this.count = this.model.get( 'input_limit' ) - charCount;\n } else {\n this.count = this.model.get( 'input_limit' ) - wordCount;\n var limit = this.model.get( 'input_limit' );\n if( wordCount > limit ){\n jQuery( el ).val( words.slice( 0, limit).join( ' ' ) );\n }\n }\n\n \tthis.render();\n },\n\n templateHelpers: function() {\n \tvar that = this;\n \treturn {\n \t\tcurrentCount: function() {\n \t\t\treturn that.count;\n \t\t}\n \t}\n }\n\n });\n\n return view;\n} );\ndefine( 'views/afterField',['views/fieldErrorCollection', 'views/inputLimit'], function( fieldErrorCollection, InputLimitView ) {\n var view = Marionette.ItemView.extend({\n tagName: 'nf-section',\n template: '#tmpl-nf-field-after',\n\n initialize: function() {\n \t\tthis.model.on( 'change:errors', this.changeError, this );\n },\n\n onRender: function() {\n \t/*\n \t * If we have an error, render our error view.\n \t * TODO: Perhaps move to a controller?\n \t */\n \tvar errorEl = jQuery( this.el ).children( '.nf-error-wrap' );\n \t\tthis.errorCollectionView = new fieldErrorCollection( { el: errorEl, collection: this.model.get( 'errors' ), fieldModel: this.model } );\n if ( 0 < this.model.get( 'errors' ).length ) {\n this.errorCollectionView.render(); \n }\n \n \t\t/*\n \t\t * If we have an input limit set, render the view that contains our counter\n \t\t * TODO: Move this to a controller so that the logic isn't in the view.\n \t\t */\n \t\tif ( 'undefined' != typeof this.model.get( 'input_limit' ) && '' != jQuery.trim( this.model.get( 'input_limit' ) ) ){\n \t\t\tvar inputLimitEl = jQuery( this.el ).children( '.nf-input-limit');\n \t\t\tthis.inputLimitView = new InputLimitView( { el: inputLimitEl, model: this.model } );\n \t\t}\n },\n\n changeError: function() {\n\t\t\tthis.errorCollectionView.render();\n\t\t},\n\n });\n\n return view;\n} );\ndefine( 'views/fieldLayout',['views/fieldItem', 'views/beforeField', 'views/afterField'], function( fieldItem, beforeField, afterField ) {\n\n var view = Marionette.LayoutView.extend({\n tagName: 'nf-field',\n\n regions: {\n beforeField: '.nf-before-field',\n field: '.nf-field',\n afterField: '.nf-after-field',\n },\n\n initialize: function() {\n this.listenTo( this.model, 'change:visible', this.render, this );\n },\n\n getTemplate: function() {\n if ( this.model.get( 'visible' ) ) {\n return '#tmpl-nf-field-layout';\n } else {\n return '#tmpl-nf-empty';\n }\n },\n\n onRender: function() {\n if ( this.model.get( 'visible' ) ) {\n this.beforeField.show( new beforeField( { model: this.model } ) );\n this.field.show( new fieldItem( { model: this.model } ) );\n this.afterField.show( new afterField( { model: this.model } ) );\n }\n },\n\n templateHelpers: function() {\n return {\n renderContainerClass: function() {\n var containerClass = ' label-' + this.label_pos + ' ';\n // If we have a description position, add that to our container.\n if ( 'undefined' != typeof this.desc_pos ) {\n containerClass += 'desc-' + this.desc_pos + ' ';\n }\n // if we have a container_class field setting, add that to our container.\n if ( 'undefined' != typeof this.container_class && 0 < jQuery.trim( this.container_class ).length ) {\n containerClass += this.container_class + ' ';\n }\n\n //check if the parent type and type are different. If\n // so, add parent type container styling\n \n if( this.type !== this.parentType ) {\n containerClass += ' ' + this.parentType + '-container';\n }\n return containerClass;\n }\n }\n }\n\n });\n\n return view;\n} );\n\n/**\n * Return views that might be used in extensions.\n * These are un-instantiated views.\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/loadViews',['views/fieldItem', 'views/fieldLayout'], function( fieldItemView, fieldLayoutView ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t// Reply to requests for our field item view.\n\t\t\tnfRadio.channel( 'views' ).reply( 'get:fieldItem', this.getFieldItem );\n\n\t\t\tnfRadio.channel( 'views' ).reply( 'get:fieldLayout', this.getFieldLayout );\n\t\t},\n\n\t\tgetFieldItem: function( model ) {\n\t\t\treturn fieldItemView;\n\t\t},\n\n\t\tgetFieldLayout: function() {\n\t\t\treturn fieldLayoutView;\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n/**\n * If a form has at least one field error, we should disable the submit button and add a form error.\n * If a form had errors, but all the field errors have been removed, we should remove the form error.\n *\n * @since 3.0\n */\ndefine('controllers/formErrors',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * Listen for error messages being added to and removed from fields.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'add:error', this.addError );\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'remove:error', this.removeError );\n\n\t\t\t/*\n\t\t\t * Respond to requests to get form errors\n\t\t\t */\n\t\t\tnfRadio.channel( 'form' ).reply( 'get:errors', this.getFormErrors );\n\t\t},\n\n\t\taddError: function( fieldModel, errorID, errorMsg ) {\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t/*\n\t\t\t * We store our errors in this object by field ID so that we don't have to loop over all our fields when we're testing for errors.\n\t\t\t * They are stored as an object within an array, using the field ID as the key.\n\t\t\t *\n\t\t\t * If we haven't setup an array item for this field, set it as an object.\n\t\t\t */\n\t\t\tif ( 'undefined' == typeof formModel.get( 'fieldErrors' )[ fieldModel.get( 'id' ) ] ) {\n\t\t\t\tformModel.get( 'fieldErrors' )[ fieldModel.get( 'id' ) ] = {};\n\t\t\t}\n\t\t\t// Add an error to our tracking array\n\t\t\tformModel.get( 'fieldErrors' )[ fieldModel.get( 'id' ) ][ errorID ] = errorMsg;\n\t\t\t/*\n\t\t\t * We have at least one field error, so submmission should be prevented.\n\t\t\t * Add a form error.\n\t\t\t */\n\t\t\tnfRadio.channel( 'form-' + fieldModel.get( 'formID' ) ).request( 'add:error', 'field-errors', formModel.get( 'settings' ).formErrorsCorrectErrors );\n\t\t},\n\n\t\tremoveError: function( fieldModel, errorID ) {\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t// Remove this error ID from our tracking array.\n\t\t\tformModel.get( 'fieldErrors' )[ fieldModel.get( 'id' ) ] = _.omit( formModel.get( 'fieldErrors' )[ fieldModel.get( 'id' ) ], errorID );\n\t\t\t/*\n\t\t\t * If we don't have any more error IDs on this field, then we need to remove this field from the array.\n\t\t\t *\n\t\t\t * Then, if the fieldErrors tracking array has a length of 0, we remove our form error, because all field errors have been dealt with.\n\t\t\t */\n\t\t\tif ( 0 == _.size( formModel.get( 'fieldErrors' )[ fieldModel.get( 'id' ) ] ) ) {\n\t\t\t\tdelete formModel.get( 'fieldErrors' )[ fieldModel.get( 'id' ) ];\n\t\t\t}\n\n\t\t\tif ( 0 == _.size( formModel.get( 'fieldErrors' ) ) ) {\n\t\t\t\t// Remove our form error.\n\t\t\t\tnfRadio.channel( 'form-' + fieldModel.get( 'formID' ) ).request( 'remove:error', 'field-errors' );\n\t\t\t}\n\t\t},\n\n\t\tgetFormErrors: function( formID ) {\n\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', formID );\n\t\t\tvar errors = false;\n\t\t\t\n\t\t\tif ( formModel ) {\n\t\t\t\t/*\n\t\t\t\t * Check to see if we have any errors on our form model.\n\t\t\t\t */\n\t\t\t\tif ( 0 !== formModel.get( 'errors' ).length ) {\n\t\t\t\t\t_.each( formModel.get( 'errors' ).models, function( error ) {\n\t\t\t\t\t\terrors = errors || {};\n\t\t\t\t\t\terrors[ error.get( 'id' ) ] = error.get( 'msg' );\n\t\t\t\t\t} );\t\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\t\n\t\t\t}\n\t\t\treturn errors;\n\t\t}\n\t});\n\n\treturn controller;\n} );\n/**\n * Handles submission of our form.\n */\ndefine('controllers/submit',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'forms' ), 'init:model', this.registerSubmitHandler );\n\t\t},\n\n\t\t/**\n\t\t * Register the submission handler function.\n\t\t *\n\t\t * @since 3.0\n\t\t * @param Backbone.model \tformModel\n\t\t * @return void\n\t\t */\n\t\tregisterSubmitHandler: function( formModel ) {\n\t\t\tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).reply( 'submit', this.submit );\n\t\t},\n\n\t\t/**\n\t\t * Handles the actual submission of our form.\n\t\t * When we submit:\n\t\t *\n\t\t * 1) Send out a message saying that we're about to begin form submission.\n\t\t * 2) Check the form for errors\n\t\t * 3) Submit the data\n\t\t * 4) Send out a message with our response\n\t\t *\n\t\t * @since 3.0\n\t\t * @param Backbone.model \tformModel\n\t\t * @return void\n\t\t */\n\t\tsubmit: function( formModel ) {\n\n\t\t\t/*\n\t\t\t * Send out a radio message saying that we're about to begin submitting.\n\t\t\t * First we send on the generic forms channel, and then on the form-specific channel.\n\t\t\t */\n\t\t\tnfRadio.channel( 'forms' ).trigger( 'before:submit', formModel );\n\t\t\tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'before:submit', formModel );\n\n\t\t\t/*\n\t\t\t * Validate our field models.\n\t\t\t */\n\t\t\tvar validate = nfRadio.channel( 'forms' ).request( 'maybe:validate', formModel );\n\t\t \tif( false !== validate ){\n\n // When validating all fields, set clean to false to force validation.\n _.each( formModel.get( 'fields' ).models, function( fieldModel ) {\n fieldModel.set( 'clean', false );\n } );\n\n\t\t\t\t/*\n\t\t\t\t * This method is defined in our models/fieldCollection.js file,\n\t\t\t\t * except where overridden by an add-on (ie Layout & Styles).\n\t\t\t\t */\n\t\t\t\tformModel.get( 'formContentData' ).validateFields();\n\t\t\t}\n\n\t\t\tvar submit = nfRadio.channel( 'form-' + formModel.get( 'id' ) ).request( 'maybe:submit', formModel );\n\t\t\tif ( false == submit ) {\n\t\t\t\tnfRadio.channel( 'forms' ).trigger( 'submit:cancel', formModel );\n\t\t\t\tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'submit:cancel', formModel );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif( false !== validate ){\n\n\t\t\t\t// Ignore non-blocking errors.\n\t\t\t\tvar blockingFormErrors = _.filter( formModel.get( 'errors' ).models, function( error ){\n\n\t\t\t\t\t// Ignore email action related errors.\n\t\t\t\t\tif( 'invalid_email' == error.get( 'id' ) || 'email_not_sent' == error.get( 'id' ) ) return false;\n\n\t\t\t\t\treturn true; // Error is blocking.\n\t\t\t\t});\n\n\t\t\t\t/*\n\t\t\t\t * Make sure we don't have any form errors before we submit.\n\t\t\t\t * Return false if we do.\n\t\t\t\t */\n\t\t\t\tif ( 0 != _.size( blockingFormErrors ) ) {\n\t\t\t\t\tnfRadio.channel( 'forms' ).trigger( 'submit:failed', formModel );\n\t\t\t\t\tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'submit:failed', formModel );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Send out a radio message saying that we're about to begin submitting.\n\t\t\t * First we send on the generic forms channel, and then on the form-specific channel.\n\t\t\t */\n\t\t\tnfRadio.channel( 'forms' ).trigger( 'after:submitValidation', formModel );\n\t\t\tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'after:submitValidation', formModel );\n\n\t\t\t/*\n\t\t\t * Actually submit our form, and send out a message with our response.\n\t\t\t */\n\n \t\t\tvar formID = formModel.get( 'id' );\n\t\t\tvar fields = {};\n\t\t\t_.each( formModel.get( 'fields' ).models, function( field ) {\n\t\t\t\tvar fieldDataDefaults = { value:field.get( 'value' ), id:field.get( 'id' ) };\n\n\t\t\t\t// Add field data at the field ID for efficient access.\n\t\t\t\tfields[ field.get( 'id' ) ] = nfRadio.channel( field.get( 'type' ) ).request( 'get:submitData', fieldDataDefaults, field ) || fieldDataDefaults;;\n\t\t\t} );\n\t\t\tvar extra = formModel.get( 'extra' );\n\t\t\tvar settings = formModel.get( 'settings' );\n\t\t\tdelete settings.formContentData;\n\t\t\tvar formData = JSON.stringify( { id: formID, fields: fields, settings: settings, extra: extra } );\n\t\t\tvar data = {\n\t\t\t\t'action': 'nf_ajax_submit',\n\t\t\t\t'security': nfFrontEnd.ajaxNonce,\n\t\t\t\t'nonce_ts': nfFrontEnd.nonce_ts,\n\t\t\t\t'formData': formData\n\t\t\t}\n\n\t\t\tvar that = this;\n\n\t\t\tjQuery.ajax({\n\t\t\t url: nfFrontEnd.adminAjax,\n\t\t\t type: 'POST',\n\t\t\t data: data,\n\t\t\t cache: false,\n\t\t\t \tsuccess: function( data, textStatus, jqXHR ) {\n\t\t\t \t\ttry {\n\t\t\t\t \t\tvar response = data;\n\t\t\t\t nfRadio.channel( 'forms' ).trigger( 'submit:response', response, textStatus, jqXHR, formModel.get( 'id' ) );\n\t\t\t\t \tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'submit:response', response, textStatus, jqXHR );\n\t\t\t\t \tjQuery( document ).trigger( 'nfFormSubmitResponse', { response: response, id: formModel.get( 'id' ) } );\n\t\t\t \t\t} catch( e ) {\n\t\t\t \t\t\tconsole.log( e );\n\t\t\t \t\t\tconsole.log( 'Parse Error' );\n\t\t\t\t\t\tconsole.log( e );\n\t\t\t \t\t}\n\n\t\t\t },\n\t\t\t error: function( jqXHR, textStatus, errorThrown ) {\n\t\t\t // Handle errors here\n\t\t\t console.log('ERRORS: ' + errorThrown);\n\t\t\t\t\tconsole.log( jqXHR );\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar response = jQuery.parseJSON( jqXHR.responseText );\n\t\t\t\t\t\tnfRadio.channel( 'forms' ).trigger( 'submit:response', response, textStatus, jqXHR, formModel.get( 'id' ) );\n\t\t\t\t\t\tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'submit:response', response, textStatus, jqXHR );\n\t\t\t\t\t} catch( e ) {\n\t\t\t\t\t\tconsole.log( 'Parse Error' );\n\t\t\t\t\t}\n\n\t\t\t // STOP LOADING SPINNER\n\t\t\t\t\tnfRadio.channel( 'forms' ).trigger( 'submit:response', 'error', textStatus, jqXHR, errorThrown );\n\t\t\t }\n\t\t\t});\n\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n\ndefine( 'views/fieldCollection',['views/fieldLayout'], function( fieldLayout ) {\n\tvar view = Marionette.CollectionView.extend({\n\t\ttagName: 'nf-fields-wrap',\n\t\tchildView: fieldLayout\n\n\t});\n\n\treturn view;\n} );\n/**\n * Default filters\n * \n * @package Ninja Forms builder\n * @subpackage Main App\n * @copyright (c) 2015 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/defaultFilters',[ 'views/fieldCollection', 'models/fieldCollection' ], function( FieldCollectionView, FieldCollection ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'form' ), 'before:filterData', this.registerDefaultDataFilter );\n\t\t},\n\n\t\tregisterDefaultDataFilter: function( formModel ) {\n\t\t\t/*\n\t\t\t * Set our default formContent load filter\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContent' ).request( 'add:loadFilter', this.defaultFormContentLoad, 10, this );\n\t\t\t/*\n\t\t\t * Set our default formContentView.\n\t\t\t */\n\t\t\tnfRadio.channel( 'formContent' ).request( 'add:viewFilter', this.defaultFormContentView, 10, this );\n\t\t},\n\n\t\tdefaultFormContentLoad: function( formContentData, formModel, context ) {\n\t\t\tvar fieldCollection = formModel.get( 'fields' );\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\t\t\tif ( 1 == sortedArray.length || 'undefined' == typeof formContentData || true === formContentData instanceof Backbone.Collection ) return formModel.get( 'fields' );\n\n \tvar fieldModels = _.map( formContentData, function( key ) {\n \t\treturn formModel.get( 'fields' ).findWhere( { key: key } );\n \t}, this );\n\n \tvar currentFieldCollection = new FieldCollection( fieldModels );\n\n \tfieldCollection.on( 'reset', function( collection ) {\n \t\tvar resetFields = [];\n \t\tcurrentFieldCollection.each( function( fieldModel ) {\n \t\t\tif ( 'submit' != fieldModel.get( 'type' ) ) {\n \t\t\t\tresetFields.push( collection.findWhere( { key: fieldModel.get( 'key' ) } ) );\n \t\t\t} else {\n \t\t\t\tresetFields.push( fieldModel );\n \t\t\t}\n \t\t} );\n\n currentFieldCollection.options = { formModel: formModel };\n \t\tcurrentFieldCollection.reset( resetFields );\n \t} );\n\n \treturn currentFieldCollection;\n },\n\n defaultFormContentView: function() {\n \treturn FieldCollectionView;\n }\n\n\t});\n\n\treturn controller;\n} );\n/**\n * Controller responsible for removing unique field errors.\n */\n\ndefine('controllers/uniqueFieldError',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * Listen to keyup and field changes.\n\t\t\t *\n\t\t\t * If those fields have a unique field error, remove that error.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'change:modelValue', this.removeError );\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'keyup:field', this.removeError );\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'blur:field', this.removeError );\n\n\t\t},\n\n\t\tremoveError: function( el, model ) {\n\t\t\tmodel = model || el;\n\t\t\t/*\n\t\t\t * Remove any unique field errors.\n\t\t\t */\n\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', model.get( 'id' ), 'unique_field' );\n\t\t},\n\n\t});\n\n\treturn controller;\n} );\ndefine(\n\t'controllers/loadControllers',[\n\t\t'controllers/formData',\n\t\t'controllers/fieldError',\n\t\t'controllers/changeField',\n\t\t'controllers/changeEmail',\n\t\t'controllers/changeDate',\n\t\t'controllers/fieldCheckbox',\n\t\t'controllers/fieldCheckboxList',\n\t\t'controllers/fieldImageList',\n\t\t'controllers/fieldRadio',\n\t\t'controllers/fieldNumber',\n\t\t'controllers/mirrorField',\n\t\t'controllers/confirmField',\n\t\t'controllers/updateFieldModel',\n\t\t'controllers/submitButton',\n\t\t'controllers/submitDebug',\n\t\t'controllers/getFormErrors',\n\t\t'controllers/validateRequired',\n\t\t'controllers/submitError',\n\t\t'controllers/actionRedirect',\n\t\t'controllers/actionSuccess',\n\t\t'controllers/fieldSelect',\n\t\t'controllers/coreSubmitResponse',\n\t\t'controllers/fieldProduct',\n\t\t'controllers/fieldTotal',\n\t\t'controllers/fieldQuantity',\n\t\t'controllers/calculations',\n\t\t'controllers/dateBackwardsCompat',\n\t\t'controllers/fieldDate',\n\t\t'controllers/fieldRecaptcha',\n\t\t'controllers/fieldHTML',\n\t\t'controllers/helpText',\n\t\t'controllers/fieldTextbox',\n\t\t'controllers/fieldTextareaRTE',\n\t\t'controllers/fieldStarRating',\n\t\t'controllers/fieldTerms',\n\t\t'controllers/formContentFilters',\n\t\t'controllers/loadViews',\n\t\t'controllers/formErrors',\n\t\t'controllers/submit',\n\t\t'controllers/defaultFilters',\n\t\t'controllers/uniqueFieldError'\n\t],\n\tfunction(\n\t\tFormData,\n\t\tFieldError,\n\t\tChangeField,\n\t\tChangeEmail,\n\t\tChangeDate,\n\t\tFieldCheckbox,\n\t\tFieldCheckboxList,\n\t\tFieldImageList,\n\t\tFieldRadio,\n\t\tFieldNumber,\n\t\tMirrorField,\n\t\tConfirmField,\n\t\tUpdateFieldModel,\n\t\tSubmitButton,\n\t\tSubmitDebug,\n\t\tGetFormErrors,\n\t\tValidateRequired,\n\t\tSubmitError,\n\t\tActionRedirect,\n\t\tActionSuccess,\n\t\tFieldSelect,\n\t\tCoreSubmitResponse,\n\t\tFieldProduct,\n\t\tFieldTotal,\n\t\tFieldQuantity,\n\t\tCalculations,\n\t\tDateBackwardsCompat,\n\t\tFieldDate,\n\t\tFieldRecaptcha,\n\t\tFieldHTML,\n\t\tHelpText,\n\t\tFieldTextbox,\n\t\tFieldTextareaRTE,\n\t\tFieldStarRating,\n\t\tFieldTerms,\n\t\tFormContentFilters,\n\t\tLoadViews,\n\t\tFormErrors,\n\t\tSubmit,\n\t\tDefaultFilters,\n\t\tUniqueFieldError\n\t) {\n\t\tvar controller = Marionette.Object.extend( {\n\t\t\tinitialize: function() {\n\n\t\t\t\t/**\n\t\t\t\t * App Controllers\n\t\t\t\t */\n\t\t\t\tnew LoadViews();\n\t\t\t\tnew FormErrors();\n\t\t\t\tnew Submit();\n\t\t\t\t\n\t\t\t\t/**\n\t\t\t\t * Field type controllers\n\t\t\t\t */\n\t\t\t\tnew FieldCheckbox();\n\t\t\t\tnew FieldCheckboxList();\n\t\t\t\tnew FieldImageList();\n\t\t\t\tnew FieldRadio();\n\t\t\t\tnew FieldNumber();\n\t\t\t\tnew FieldSelect();\n\t\t\t\tnew FieldProduct();\n\t\t\t\tnew FieldTotal();\n\t\t\t\tnew FieldQuantity();\n\t\t\t\tnew FieldRecaptcha();\n\t\t\t\tnew FieldHTML();\n\t\t\t\tnew HelpText();\n\t\t\t\tnew FieldTextbox();\n\t\t\t\tnew FieldTextareaRTE();\n\t\t\t\tnew FieldStarRating();\n\t\t\t\tnew FieldTerms();\n\t\t\t\tnew FormContentFilters();\n\t\t\t\tnew UniqueFieldError();\n\t\t\t\t/**\n\t\t\t\t * Misc controllers\n\t\t\t\t */\n\t\t\t\tnew FieldError();\n\t\t\t\tnew ChangeField();\n\t\t\t\tnew ChangeEmail();\n\t\t\t\tnew ChangeDate();\n\t\t\t\t\n\t\t\t\tnew MirrorField();\n\t\t\t\tnew ConfirmField();\n\t\t\t\tnew UpdateFieldModel();\n\t\t\t\tnew SubmitButton();\n\t\t\t\tnew SubmitDebug();\n\t\t\t\tnew GetFormErrors();\n\t\t\t\tnew ValidateRequired();\n\t\t\t\tnew SubmitError();\n\t\t\t\tnew ActionRedirect();\n\t\t\t\tnew ActionSuccess();\n\t\t\t\t\n\t\t\t\tnew CoreSubmitResponse();\n\t\t\t\tnew Calculations();\n\n\t\t\t\tnew DefaultFilters();\n\n\t\t\t\t/**\n\t\t\t\t * Data controllers\n\t\t\t\t */\n\t\t\t\tnew DateBackwardsCompat();\n\t\t\t\tnew FieldDate();\n\t\t\t\tnew FormData();\n\t\t\t\t\n\t\t\t}\n\t\t});\n\n\t\treturn controller;\n} );\n\ndefine( 'views/beforeForm',[], function( ) {\n\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: \"nf-section\",\n\t\ttemplate: \"#tmpl-nf-before-form\",\n\n\t});\n\n\treturn view;\n} );\ndefine( 'views/formErrorItem',[], function() {\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: 'nf-section',\n\t\ttemplate: '#tmpl-nf-form-error',\n\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},\n\t});\n\n\treturn view;\n} );\ndefine( 'views/formErrorCollection',['views/formErrorItem'], function( formErrorItem ) {\n\tvar view = Marionette.CollectionView.extend({\n\t\ttagName: \"nf-errors\",\n\t\tchildView: formErrorItem\n\t});\n\n\treturn view;\n} );\ndefine( 'views/honeyPot',[], function() {\n var view = Marionette.ItemView.extend({\n tagName: 'nf-section',\n template: '#tmpl-nf-form-hp',\n\n events: {\n \t'keyup .nf-field-hp': 'maybeError',\n 'change .nf-field-hp': 'maybeError'\n },\n\n maybeError: function( e ) {\n /*\n * If we have an empty honeyPot field, remove the honeypot form error.\n * If we do not have an empty honeyPot field, add the honeypot form error.\n */\n if ( 0 == jQuery( e.target ).val().length ) {\n nfRadio.channel( 'form-' + this.model.get( 'id' ) ).request( 'remove:error', 'honeyPot' );\n } else {\n var formModel = nfRadio.channel( 'app' ).request( 'get:form', this.model.get( 'id' ) );\n nfRadio.channel( 'form-' + this.model.get( 'id' ) ).request( 'add:error', 'honeyPot', formModel.get( 'settings' ).honeypotHoneypotError );\n }\n }\n });\n\n return view;\n} );\ndefine( 'views/afterFormContent',['views/formErrorCollection', 'views/honeyPot'], function( FormErrors, HoneyPot ) {\n\n var view = Marionette.LayoutView.extend({\n tagName: \"nf-section\",\n template: \"#tmpl-nf-after-fields\",\n\n\t\tregions: {\n\t\t\terrors: \".nf-form-errors\",\n hp: \".nf-form-hp\"\n\t\t},\n\n onShow: function() {\n \tthis.errors.show( new FormErrors( { collection: this.model.get( 'errors' ) } ) );\n this.hp.show( new HoneyPot( { model: this.model } ) );\n }\n\n });\n\n return view;\n} );\ndefine( 'views/beforeFormContent',[], function( ) {\n\n var view = Marionette.ItemView.extend({\n tagName: \"nf-section\",\n template: \"#tmpl-nf-before-fields\",\n\n templateHelpers: function () {\n return {\n\n renderFieldsMarkedRequired: function() {\n\n var requiredFields = this.fields.filter( { required: 1 } );\n return ( requiredFields.length ) ? this.fieldsMarkedRequired : '';\n },\n };\n },\n\n });\n\n return view;\n} );\ndefine( 'views/formLayout',[ 'views/afterFormContent', 'views/beforeFormContent', 'models/fieldCollection' ], function( AfterFormContent, BeforeFormContent, FieldCollection ) {\n\n\tvar view = Marionette.LayoutView.extend({\n\t\ttagName: \"nf-section\",\n\t\ttemplate: \"#tmpl-nf-form-layout\",\n\n\t\tregions: {\n\t\t\tbeforeFormContent: \".nf-before-form-content\",\n\t\t\tformContent: \".nf-form-content\",\n\t\t\tafterFormContent: \".nf-after-form-content\"\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'form-' + this.model.get( 'id' ) ).reply( 'get:el', this.getEl, this );\n\t\t\t\n\t\t\t/*\n\t\t\t * If we need to hide a form, set the visibility of this form to hidden.\n\t\t\t */\n\t\t\t this.listenTo( this.model, 'hide', this.hide );\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\tthis.beforeFormContent.show( new BeforeFormContent( { model: this.model } ) );\n\t\t\t\n\t\t\t/*\n\t\t\t * Set our formContentData to our form setting 'formContentData'\n\t\t\t */\n\t\t\tvar formContentData = this.model.get( 'formContentData' );\n\t\t\t\n\t\t\t/*\n\t\t\t * Check our fieldContentViewsFilter to see if we have any defined.\n\t\t\t * If we do, overwrite our default with the view returned from the filter.\n\t\t\t */\n\t\t\tvar formContentViewFilters = nfRadio.channel( 'formContent' ).request( 'get:viewFilters' );\n\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( formContentViewFilters, undefined );\n\t\t\tvar callback = _.first( sortedArray );\n\t\t\tformContentView = callback();\n\t\t\t\n\t\t\tvar options = {\n\t\t\t\tdata: formContentData,\n\t\t\t\tformModel: this.model\n\t\t\t};\n\t\t\t\n\t\t\t/*\n\t\t\t * If we have a collection, pass the returned data as the collection.\n\t\t\t *\n\t\t\t * If we have a model, pass the returned data as the collection.\n\t\t\t */\n\t\t\tif ( false !== formContentData instanceof Backbone.Collection ) {\n\t\t\t\toptions.collection = formContentData;\n\t\t\t} else if ( false !== formContentData instanceof Backbone.Model ) {\n\t\t\t\toptions.model = formContentData;\n\t\t\t}\n\n\t\t\tthis.formContent.show( new formContentView( options ) );\n\t\t\tthis.afterFormContent.show( new AfterFormContent( { model: this.model } ) );\n\t\t},\n\n\t\tgetEl: function() {\n\t\t\treturn this.el;\n\t\t},\n\n templateHelpers: function () {\n return {\n\n renderClasses: function() {\n return '';\n }\n\n };\n },\n\n hide: function() {\n \tjQuery( this.el ).hide();\n }\n\n\t});\n\n\treturn view;\n} );\ndefine( 'views/afterForm',[], function( ) {\n\n\tvar view = Marionette.ItemView.extend({\n\t\ttagName: \"nf-section\",\n\t\ttemplate: \"#tmpl-nf-after-form\",\n\t\t\n\t});\n\n\treturn view;\n} );\ndefine( 'views/mainLayout',['views/beforeForm', 'views/formLayout', 'views/afterForm'], function( BeforeForm, FormLayout, AfterForm ) {\n\n\tvar view = Marionette.LayoutView.extend({\n\t\ttemplate: '#tmpl-nf-layout',\n\n\t\tregions: {\n\t\t\tresponseMsg: '.nf-response-msg',\n\t\t\tbeforeForm: '.nf-before-form',\n\t\t\tformLayout: '.nf-form-layout',\n\t\t\tafterForm: '.nf-after-form'\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.$el = jQuery( '#nf-form-' + this.model.id + '-cont' );\n\t\t\tthis.el = '#nf-form-' + this.model.id + '-cont';\n\n\t\t\tthis.render();\n\n\t\t\tthis.beforeForm.show( new BeforeForm( { model: this.model } ) );\n\t\t\tthis.formLayout.show( new FormLayout( { model: this.model, fieldCollection: this.options.fieldCollection } ) );\n\t\t\tthis.afterForm.show( new AfterForm( { model: this.model } ) );\n\n\t\t\t/*\n\t\t\t * If we need to hide a form, set the visibility of this form to hidden.\n\t\t\t */\n\t\t\t this.listenTo( this.model, 'hide', this.hide );\n\t\t},\n\n hide: function() {\n \tjQuery( this.el ).find( '.nf-form-title' ).hide();\n }\n\n\t});\n\n\treturn view;\n} );\n// const Intl = require('intl');\n\n// class nfLocaleConverter {\nvar nfLocaleConverter = function(newLocale, thousands_sep, decimal_sep) {\n\n // constructor(newLocale = 'en-US', thousands_sep, decimal_sep) {\n if ('undefined' !== typeof newLocale && 0 < newLocale.length) {\n this.locale = newLocale.split('_').join('-');\n } else {\n this.locale = 'en-US';\n }\n\n this.thousands_sep = thousands_sep || ',';\n this.decimal_sep = decimal_sep || '.';\n // }\n\n this.uniqueElememts = function( value, index, self ) {\n return self.indexOf(value) === index;\n }\n\n this.numberDecoder = function(num) {\n num = num.toString();\n // let thousands_sep = ',';\n var formatted = '';\n\n // Account for negative numbers.\n var negative = false;\n \n if ('-' === num.charAt(0)) {\n negative = true;\n num = num.replace( '-', '' );\n }\n \n // Account for a space as the thousands separator.\n // This pattern accounts for all whitespace characters (including thin space).\n num = num.replace( /\\s/g, '' );\n num = num.replace( /&nbsp;/g, '' );\n\n // Determine what our existing separators are.\n var myArr = num.split('');\n var separators = myArr.filter(function(el) {\n return !el.match(/[0-9]/);\n });\n \n var final_separators = separators.filter(this.uniqueElememts);\n \n switch( final_separators.length ) {\n case 0:\n formatted = num;\n break;\n case 1:\n var replacer = '';\n if ( 1 == separators.length ) {\n separator = separators.pop();\n var sides = num.split(separator);\n var last = sides.pop();\n if ( 3 == last.length && separator == this.thousands_sep ) {\n replacer = '';\n } else {\n replacer = '.';\n }\n } else {\n separator = final_separators.pop();\n }\n\n formatted = num.split(separator).join(replacer);\n break;\n case 2:\n var find_one = final_separators[0];\n var re_one;\n if('.' === find_one) {\n re_one = new RegExp('[.]', 'g');\n } else {\n re_one = new RegExp(find_one, 'g');\n }\n formatted = num.replace(re_one, '');\n \n var find_two = final_separators[1];\n \n var re_two;\n if('.' === find_two) {\n re_two = new RegExp('[.]', 'g');\n } else {\n re_two = new RegExp(find_two, 'g');\n }\n formatted = formatted.replace(re_two, '.' );\n break;\n default:\n return 'NaN';\n }\n\n if ( negative ) {\n formatted = '-' + formatted;\n }\n this.debug('Number Decoder ' + num + ' -> ' + formatted );\n return formatted;\n }\n\n this.numberEncoder = function(num, percision) {\n num = this.numberDecoder(num);\n\n return Intl.NumberFormat(this.locale, { minimumFractionDigits: percision, maximumFractionDigits: percision }).format(num);\n }\n\n this.debug = function(message) {\n if ( window.nfLocaleConverterDebug || false ) console.log(message);\n }\n}\n\n// module.exports = nfLocaleConverter;\ndefine(\"../nfLocaleConverter\", function(){});\n\n/*\n * Because our backbone listens to .change() events on elements, changes made using jQuery .val() don't bubble properly.\n * This patch overwrites the default behaviour of jQuery .val() so that IF the item has an nf-element class, we fire a change event.\n */\n( function( jQuery ) {\n\t/*\n\t * Store our original .val() function.\n\t */\n var originalVal = jQuery.fn.val;\n /*\n * Create our own .val() function.\n */\n jQuery.fn.val = function(){\n var prev;\n /* \n * Store a copy of the results of the original .val() call.\n * We use this to make sure that we've actually changed something.\n */\n if( arguments.length > 0 ){\n prev = originalVal.apply( this,[] );\n }\n /*\n * Get the results of the original .val() call. \n */\n var result = originalVal.apply( this, arguments );\n\n /*\n * If we have arguments, we have actually made a change, AND this has the nf-element class, trigger .change().\n */\n if( arguments.length > 0 && prev != originalVal.apply( this, [] ) && jQuery( this ).hasClass( 'nf-element' ) ) {\n\t\t\tjQuery(this).change();\n }\n\n return result;\n };\n} ) ( jQuery );\n\njQuery( document ).ready( function( $ ) {\n\trequire( [ 'models/formCollection', 'models/formModel', 'models/fieldCollection', 'controllers/loadControllers', 'views/mainLayout', '../nfLocaleConverter'], function( formCollection, FormModel, FieldCollection, LoadControllers, mainLayout ) {\n\n\t\tif( 'undefined' == typeof nfForms ) {\n\t\t\t/*\n\t\t\t * nfForms is not defined. This means that something went wrong loading the form data.\n\t\t\t * Bail form setup and empty the form containers to remove any loading animations.\n\t\t\t */\n\t\t\tjQuery( '.nf-form-cont' ).empty();\n\t\t\treturn;\n\t\t}\n\n\t\tvar NinjaForms = Marionette.Application.extend({\n\t\t\tforms: {},\n\t\t\tinitialize: function( options ) {\n\t\t\t\tvar that = this;\n\t\t\t\tMarionette.Renderer.render = function(template, data){\n\t\t\t\t\tvar template = that.template( template );\n\t\t\t\t\treturn template( data );\n\t\t\t\t};\n\n\t\t\t\t// Underscore one-liner for getting URL Parameters\n\t\t\t\tthis.urlParameters = _.object(_.compact(_.map(location.search.slice(1).split('&'), function(item) { if (item) return item.split('='); })));\n\n\t\t\t\tif( 'undefined' != typeof this.urlParameters.nf_resume ) {\n\t\t\t\t\tthis.listenTo(nfRadio.channel('form-' + this.urlParameters.nf_resume), 'loaded', this.restart);\n\t\t\t\t}\n\n\t\t\t\tnfRadio.channel( 'app' ).reply( 'locale:decodeNumber', this.decodeNumber);\n\n\t\t\t\tnfRadio.channel( 'app' ).reply( 'locale:encodeNumber',this.encodeNumber);\n\n\t\t\t\tvar loadControllers = new LoadControllers();\n\t\t\t\tnfRadio.channel( 'app' ).trigger( 'after:loadControllers' );\n\n\t\t\t\tnfRadio.channel( 'app' ).reply( 'get:template', this.template );\t\t\t},\n\t\t\t\n\t\t\tonStart: function() {\n\t\t\t\tvar formCollection = nfRadio.channel( 'app' ).request( 'get:forms' );\n\t\t\t\t_.each( formCollection.models, function( form, index ) {\n\t\t\t\t\tvar layoutView = new mainLayout( { model: form, fieldCollection: form.get( 'fields' ) } );\t\t\t\n\t\t\t\t\tnfRadio.channel( 'form' ).trigger( 'render:view', layoutView );\n\t\t\t\t\tjQuery( document ).trigger( 'nfFormReady', layoutView );\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\trestart: function( formModel ) {\n\t\t\t\tif( 'undefined' != typeof this.urlParameters.nf_resume ){\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\t'action': 'nf_ajax_submit',\n\t\t\t\t\t\t'security': nfFrontEnd.ajaxNonce,\n\t\t\t\t\t\t'nf_resume': this.urlParameters\n\t\t\t\t\t};\n\n\t\t\t\t\tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'disable:submit' );\n\t\t\t\t\tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'processingLabel' );\n\n\t\t\t\t\tthis.listenTo( nfRadio.channel( 'form' ), 'render:view', function() {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * TODO: This needs to be re-worked for backbone. It's not dynamic enough.\n\t\t\t\t\t\t */\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * Hide form fields (but not the submit button).\n\t\t\t\t\t\t */\n\t\t\t\t\t\tjQuery( '#nf-form-' + formModel.get( 'id' ) + '-cont .nf-field-container:not(.submit-container)' ).hide();\n\t\t\t\t\t});\n\n\t\t\t\t\t// TODO: Refactor Duplication\n\t\t\t\t\tjQuery.ajax({\n\t\t\t\t\t\turl: nfFrontEnd.adminAjax,\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\tdata: data,\n\t\t\t\t\t\tcache: false,\n\t\t\t\t\t\tsuccess: function( data, textStatus, jqXHR ) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t \t\tvar response = data;\n\t\t\t\t\t\t nfRadio.channel( 'forms' ).trigger( 'submit:response', response, textStatus, jqXHR, formModel.get( 'id' ) );\n\t\t\t\t\t\t \tnfRadio.channel( 'form-' + formModel.get( 'id' ) ).trigger( 'submit:response', response, textStatus, jqXHR );\n\t\t\t\t\t\t\t} catch( e ) {\n\t\t\t\t\t\t\t\tconsole.log( 'Parse Error' );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t },\n\t\t\t\t\t error: function( jqXHR, textStatus, errorThrown ) {\n\t\t\t\t\t // Handle errors here\n\t\t\t\t\t console.log('ERRORS: ' + textStatus);\n\t\t\t\t\t // STOP LOADING SPINNER\n\t\t\t\t\t\t\tnfRadio.channel( 'forms' ).trigger( 'submit:response', 'error', textStatus, jqXHR, errorThrown );\n\t\t\t\t\t }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\n\t\t\ttemplate: function( template ) {\n\t\t\t\treturn _.template( $( template ).html(), {\n\t\t\t\t\tevaluate: /<#([\\s\\S]+?)#>/g,\n\t\t\t\t\tinterpolate: /\\{\\{\\{([\\s\\S]+?)\\}\\}\\}/g,\n\t\t\t\t\tescape: /\\{\\{([^\\}]+?)\\}\\}(?!\\})/g,\n\t\t\t\t\tvariable: 'data'\n\t\t\t\t} );\n\t\t\t},\n\n\t\t\tencodeNumber: function(num) {\n\t\t\t\tvar localeConverter = new nfLocaleConverter(nfi18n.siteLocale, nfi18n.thousands_sep, nfi18n.decimal_point);\n\n\t\t\t\treturn localeConverter.numberEncoder(num);\n\t\t\t},\n\n\t\t\tdecodeNumber: function(num) {\n\t\t\t\tvar localeConverter = new nfLocaleConverter(nfi18n.siteLocale, nfi18n.thousands_sep, nfi18n.decimal_point);\n\n\t\t\t\treturn localeConverter.numberDecoder(num);\n\t\t\t}\n\t\t});\n\t\n\t\tvar ninjaForms = new NinjaForms();\n\t\tninjaForms.start();\t\t\n\t} );\n} );\n\ndefine(\"main\", function(){});\n\n}());"],"file":"front-end.js"}
1
+ {"version":3,"names":[],"mappings":"","sources":["main.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\ndefine( 'models/fieldErrorModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\n\t} );\n\t\n\treturn model;\n} );\ndefine( 'models/fieldErrorCollection',['models/fieldErrorModel'], function( errorModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: errorModel\n\t} );\n\treturn collection;\n} );\ndefine( 'models/fieldModel',['models/fieldErrorCollection'], function( fieldErrorCollection ) {\n\tvar model = Backbone.Model.extend( {\n\t\tdefaults: {\n\t\t\tplaceholder: '',\n\t\t\tvalue: '',\n\t\t\tlabel_pos: '',\n\t\t\tclasses: 'ninja-forms-field',\n\t\t\treRender: false,\n\t\t\tmirror_field: false,\n\t\t\tconfirm_field: false,\n\t\t\tclean: true,\n\t\t\tdisabled: '',\n\t\t\tvisible: true,\n\t\t\tinvalid: false\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tvar type = this.get('type');\n\n\t\t\tthis.set( 'formID', this.collection.options.formModel.get( 'id' ) );\n\t\t\tthis.listenTo( nfRadio.channel( 'form-' + this.get( 'formID' ) ), 'reset', this.resetModel );\n\n \t\tthis.bind( 'change', this.changeModel, this );\n \t\tthis.bind( 'change:value', this.changeValue, this );\n \t\tthis.set( 'errors', new fieldErrorCollection() );\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/*\n\t\t\t * Trigger an init event on two channels:\n\t\t\t * \n\t\t\t * fields\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:model', this );\n\t\t\tnfRadio.channel( this.get( 'type' ) ).trigger( 'init:model', this );\n\t\t\tnfRadio.channel( 'fields-' + this.get( 'type' ) ).trigger( 'init:model', this );\n\n\t\t\tif( 'undefined' != this.get( 'parentType' ) ){\n\t\t\t\tnfRadio.channel( this.get( 'parentType' ) ).trigger( 'init:model', this );\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * When we load our form, fire another event for this field.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'form-' + this.get( 'formID' ) ), 'loaded', this.formLoaded );\n\t\t\n\t\t\t/*\n\t\t\t * Before we submit our form, send out a message so that this field can be modified if necessary.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'form-' + this.get( 'formID' ) ), 'before:submit', this.beforeSubmit );\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\tchangeModel: function() {\n\t\t\tnfRadio.channel( 'field-' + this.get( 'id' ) ).trigger( 'change:model', this );\n\t\t\tnfRadio.channel( this.get( 'type' ) ).trigger( 'change:model', this );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'change:model', this );\n\t\t},\n\n\t\tchangeValue: function() {\n\t\t\tnfRadio.channel( 'field-' + this.get( 'id' ) ).trigger( 'change:modelValue', this );\n\t\t\tnfRadio.channel( this.get( 'type' ) ).trigger( 'change:modelValue', this );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'change:modelValue', this );\n\t\t},\n\n\t\taddWrapperClass: function( cl ) {\n\t\t\tthis.set( 'addWrapperClass', cl );\n\t\t},\n\n\t\tremoveWrapperClass: function( cl ) {\n\t\t\tthis.set( 'removeWrapperClass', cl );\n\t\t},\n\n\t\tsetInvalid: function( invalid ) {\n\t\t\tthis.set( 'invalid', invalid );\n\t\t},\n\n\t\tformLoaded: function() {\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'formLoaded', this );\n\t\t\tnfRadio.channel( 'fields-' + this.get( 'type' ) ).trigger( 'formLoaded', this );\n\t\t},\n\n\t\tbeforeSubmit: function( formModel ) {\n\t\t\tnfRadio.channel( this.get( 'type' ) ).trigger( 'before:submit', this );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'before:submit', this );\n\t\t}\n\n\t} );\n\n\treturn model;\n} );\n\ndefine( 'models/fieldCollection',['models/fieldModel'], function( fieldModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: fieldModel,\n\t\tcomparator: 'order',\n\n\t\tinitialize: function( models, options ) {\n\t\t\tthis.options = options;\n this.on( 'reset', function( fieldCollection ){\n nfRadio.channel( 'fields' ).trigger( 'reset:collection', fieldCollection );\n }, this );\n\t\t},\n\n\t\tvalidateFields: function() {\n\t\t\t_.each( this.models, function( fieldModel ) {\n\t\t\t\t// added here for help with multi-part part validation\n\t\t\t\tfieldModel.set( 'clean', false );\n\t\t\t\tnfRadio.channel( 'submit' ).trigger( 'validate:field', fieldModel );\n\t\t\t}, this );\n\t\t},\n\n\t\tshowFields: function() {\n\t\t\tthis.invoke( 'set', { visible: true } );\n this.invoke( function() {\n this.trigger( 'change:value', this );\n });\n\t\t},\n\n\t\thideFields: function() {\n\t\t\tthis.invoke( 'set', { visible: false } );\n this.invoke( function() {\n this.trigger( 'change:value', this );\n });\n\t\t}\n\t} );\n\treturn collection;\n} );\n\ndefine( 'models/formErrorModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\n\t} );\n\t\n\treturn model;\n} );\ndefine( 'models/formErrorCollection',['models/formErrorModel'], function( errorModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: errorModel\n\t} );\n\treturn collection;\n} );\ndefine( 'models/formModel',[\n\t'models/fieldCollection',\n\t'models/formErrorCollection'\n\t], function(\n\t\tFieldCollection,\n\t\tErrorCollection\n\t) {\n\tvar model = Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\tbeforeForm: '',\n\t\t\tafterForm: '',\n\t\t\tbeforeFields: '',\n\t\t\tafterFields: '',\n\t\t\twrapper_class: '',\n\t\t\telement_class: '',\n\t\t\thp: '',\n\t\t\tfieldErrors: {},\n\t\t\textra: {}\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\t// Loop over settings and map to attributes\n\t\t\t_.each( this.get( 'settings' ), function( value, setting ) {\n\t\t\t\tthis.set( setting, value );\n\t\t\t}, this );\n\n\t\t\tthis.set( 'loadedFields', this.get( 'fields' ) );\n\t\t\tthis.set( 'fields', new FieldCollection( this.get( 'fields' ), { formModel: this } ) );\n\t\t\tthis.set( 'errors', new ErrorCollection() );\n\n\t\t\t/*\n\t\t\t * Send out a radio message so that anyone who wants to filter our content data can register their filters.\n\t\t\t */\n\t\t\tnfRadio.channel( 'form' ).trigger( 'before:filterData', this );\n\n\t\t\t/*\n\t\t\t * Set our formContentData to our form setting 'formContentData'\n\t\t\t */\n\t\t\tvar formContentData = this.get( 'formContentData' );\n\n\t\t\t/*\n\t\t\t * The formContentData variable used to be fieldContentsData.\n\t\t\t * If we don't have a 'formContentData' setting, check to see if we have an old 'fieldContentsData'.\n\t\t\t * \n\t\t\t * TODO: This is for backwards compatibility and should be removed eventually. \n\t\t\t */\n\t\t\tif ( ! formContentData ) {\n\t\t\t\tformContentData = this.get( 'fieldContentsData' );\n\t\t\t}\n\t\t\t\n\t\t\tvar formContentLoadFilters = nfRadio.channel( 'formContent' ).request( 'get:loadFilters' );\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( formContentLoadFilters, undefined );\n\t\t\tvar callback = _.first( sortedArray );\n\t\t\tformContentData = callback( formContentData, this, this );\n\t\t\t\n\t\t\tthis.set( 'formContentData', formContentData );\n\n\t\t\tnfRadio.channel( 'forms' ).trigger( 'init:model', this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'init:model', this );\n\n\t\t\t// Fields\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'get:fieldByKey', this.getFieldByKey, this );\n\n\t\t\t// Form Errors\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'add:error', this.addError, this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'remove:error', this.removeError, this );\n\n\t\t\t// Extra Data\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'get:extra', this.getExtra, this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'add:extra', this.addExtra, this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'remove:extra', this.removeExtra, this );\n\t\t\n\t\t\t// Respond to requests to get this model.\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).reply( 'get:form', \t this.getForm, \t this );\n\n\t\t\tnfRadio.channel( 'form' ).trigger( 'loaded', this );\n\t\t\tnfRadio.channel( 'form' ).trigger( 'after:loaded', this );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'loaded', \t this );\n\t\t},\n\n\t\t/*\n\t\t |--------------------------------------------------------------------------\n\t\t | Fields\n\t\t |--------------------------------------------------------------------------\n\t\t */\n\n\t\tgetFieldByKey: function( key ) {\n\t\t\treturn this.get( 'fields' ).findWhere( { key: key } );\n\t\t},\n\n\t\t/*\n\t\t |--------------------------------------------------------------------------\n\t\t | Form Errors\n\t\t |--------------------------------------------------------------------------\n\t\t */\n\n\t\taddError: function( id, msg ) {\n\t\t\tvar errors = this.get( 'errors' );\n\t\t\terrors.add( { id: id, msg: msg } );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'add:error', this, id, msg );\n\t\t},\n\n\t\tremoveError: function( id ) {\n\t\t\tvar errors = this.get( 'errors' );\n\t\t\tvar errorModel = errors.get( id );\n\t\t\terrors.remove( errorModel );\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'remove:error', this, id );\n\t\t},\n\n\t\t/*\n\t\t |--------------------------------------------------------------------------\n\t\t | Extra Data\n\t\t |--------------------------------------------------------------------------\n\t\t */\n\n\t\tgetExtra: function( key ) {\n\t\t\tvar extraData = this.get( 'extra' );\n\t\t\tif( 'undefined' == typeof key ) return extraData;\n\t\t\treturn extraData[ key ];\n\t\t},\n\n\t\taddExtra: function( key, value ) {\n\t\t\tvar extraData = this.get( 'extra' );\n\t\t\textraData[ key ] = value;\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'add:extra', this, key, value );\n\t\t},\n\n\t\tremoveExtra: function( key ) {\n\t\t\tvar extraData = this.get( 'extra' );\n\t\t\tdelete extraData[ key ];\n\t\t\tnfRadio.channel( 'form-' + this.get( 'id' ) ).trigger( 'remove:extra', this, key );\n\t\t},\n\n\t\t/*\n\t\t |--------------------------------------------------------------------------\n\t\t | Get this form\n\t\t |--------------------------------------------------------------------------\n\t\t */\n\t\tgetForm: function() {\n\t\t\treturn this;\n\t\t}\n\t} );\n\n\treturn model;\n} );\ndefine( 'models/formCollection',['models/formModel'], function( formModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: formModel\n\t} );\n\treturn collection;\n} );\n/*\n * Handles setting up our form.\n *\n * Holds a collection of our fields.\n * Replies to requests for field data.\n * Updates field models.\n */\ndefine('controllers/formData',['models/formModel', 'models/formCollection', 'models/fieldCollection', 'models/formErrorCollection'], function( FormModel, FormCollection, FieldCollection, ErrorCollection ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\n\t\t\t/*\n\t\t\t * Setup our field collections.\n\t\t\t */\n\t\t\tvar that = this;\n\n\t\t\t/*\n\t\t\t * Initialize our form collection (incase we have multiple forms on the page)\n\t\t\t */\n\t\t\tthis.collection = new FormCollection( nfForms );\n\n\t\t\tnfRadio.channel( 'forms' ).trigger( 'loaded', this.collection );\n\t\t\tnfRadio.channel( 'app' ).trigger( 'forms:loaded', this.collection );\n\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:form', this.getForm, this );\n\t\t\tnfRadio.channel( 'app' ).reply( 'get:forms', this.getForms, this );\n\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:field', this.getField, this );\n\t\t},\n\n\t\tgetForm: function( id ) {\n\t\t\treturn this.collection.get( id );\n\t\t},\n\n\t\tgetForms: function() {\n\t\t\treturn this.collection;\n\t\t},\n\n\t\tgetField: function( id ) {\n\t\t\tvar model = false;\n\t\t\t\n\t\t\t_.each( this.collection.models, function( form ) {\n\t\t\t\tif ( ! model ) {\n\t\t\t\t\tmodel = form.get( 'fields' ).get( id );\t\n\t\t\t\t}\t\t\t\n\t\t\t} );\n\t\t\treturn model;\n\t\t}\n\t});\n\n\treturn controller;\n} );\n\ndefine('controllers/fieldError',['models/fieldErrorModel'], function( fieldErrorModel ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'fields' ).reply( 'add:error', this.addError );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'remove:error', this.removeError );\n\t\t\tnfRadio.channel( 'fields' ).reply( 'get:error', this.getError );\n\t\t},\n\n\t\taddError: function( targetID, id, msg ) {\n\t\t\tvar model = nfRadio.channel( 'fields' ).request( 'get:field', targetID );\n\n\t\t\tif( 'undefined' == typeof model ) return;\n\n\t\t\tvar errors = model.get( 'errors' );\n\t\t\terrors.add( { 'id': id, 'msg' : msg } );\n\t\t\tmodel.set( 'errors', errors );\n\t\t\tmodel.trigger( 'change:errors', model );\n\t\t\tmodel.set( 'clean', false );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'add:error', model, id, msg );\n\t\t},\n\n\t\tremoveError: function( targetID, id ) {\n\t\t\tvar model = nfRadio.channel( 'fields' ).request( 'get:field', targetID );\n\n\t\t\tif( 'undefined' == typeof model ) return;\n\n\t\t\tvar errors = model.get( 'errors' );\n\t\t\tvar targetError = errors.get( id );\n\t\t\tif ( 'undefined' != typeof targetError ) {\n\t\t\t\terrors.remove( targetError );\n\t\t\t\tmodel.set( 'errors', errors );\n\t\t\t\tmodel.trigger( 'change:errors', model );\n\t\t\t\tnfRadio.channel( 'fields' ).trigger( 'remove:error', model, id );\n\t\t\t}\n\t\t},\n\n\t\tgetError: function( targetID, id ) {\n\t\t\tvar model = nfRadio.channel( 'fields' ).request( 'get:field', targetID );\n\t\t\tvar errors = model.get( 'errors' );\n\t\t\tvar targetError = errors.get( id );\n\t\t\tif ( 'undefined' != targetError ) {\n\t\t\t\treturn targetError;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\n/**\n * Controller responsible for replying to a Radio request stating that a field has been changed.\n *\n * This controller sends out a message to the field-specific channel, the field type channel,\n * and the public fields channel so that the data model can be updated.\n */\n\ndefine('controllers/changeField',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * Reply to our request for changing a field.\n\t\t\t */\n\t\t\tnfRadio.channel( 'nfAdmin' ).reply( 'change:field', this.changeField );\n\n\t\t\t/*\n\t\t\t * If we blur our field, set the model attribute of 'clean' to false.\n\t\t\t * 'clean' tracks whether or not the user has every interacted with this element.\n\t\t\t * Some validation, like required, uses this to decide whether or not to add an error.\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'fields' ), 'blur:field', this.blurField );\n\t\t},\n\n\t\tchangeField: function( el, model ) {\n\t\t\t// Get our current value.\n\t\t\tvar value = nfRadio.channel( model.get( 'type' ) ).request( 'before:updateField', el, model );\n\t\t\tvalue = ( 'undefined' != typeof value ) ? value : nfRadio.channel( model.get( 'parentType' ) ).request( 'before:updateField', el, model );\n\t\t\tvalue = ( 'undefined' != typeof value ) ? value : jQuery( el ).val();\n\n\t\t\t// Set our 'isUpdated' flag to false.\n\t\t\tmodel.set( 'isUpdated', false );\n\n\t\t\t// Set our 'clean' flag to false.\n\t\t\tmodel.set( 'clean', false );\n\n\t\t\t/*\n\t\t\t * Send out a message saying that we've changed a field.\n\t\t\t * The first channel is field id/key specific.\n\t\t\t * The second channel is the field type, i.e. text, email, radio\n\t\t\t * The third channel is a generic 'field' channel.\n\t\t\t *\n\t\t\t * If the submitted value you wish to store in the data model isn't the same as the value received above,\n\t\t\t * you can set that model in the actions below and set the 'isUpdated' model attribute to true.\n\t\t\t * i.e. model.set( 'isUpdated', true );\n\t\t\t */\n\t\t\tnfRadio.channel( 'field-' + model.get( 'id' ) ).trigger( 'change:field', el, model );\n\t\t\tnfRadio.channel( model.get( 'type' ) ).trigger( 'change:field', el, model );\n\t\t\tnfRadio.channel( 'fields' ).trigger( 'change:field', el, model );\n\n\t\t\t/*\n\t\t\t * Send a request out on our nfAdmin channel to update our field model.\n\t\t\t * If the field model has a 'isUpdated' property of false, nothing will be updated.\n\t\t\t */\n\t\t\tnfRadio.channel( 'nfAdmin' ).request( 'update:field', model, value );\n\t\t},\n\n\t\tblurField: function( el, model ) {\n\t\t\t// Set our 'clean' flag to false.\n\t\t\tmodel.set( 'clean', false );\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/changeEmail',[], function() {\n\tvar radioChannel = nfRadio.channel( 'email' );\n\t// var emailReg = /^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\n\tvar emailReg = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\tvar errorID = 'invalid-email';\n\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( radioChannel, 'change:modelValue', this.onChangeModelValue );\n\t\t\tthis.listenTo( radioChannel, 'keyup:field', this.emailKeyup );\n\t\t\tthis.listenTo( radioChannel, 'blur:field', this.onBlurField );\n\t\t},\n\n\t\tonChangeModelValue: function( model ) {\n\t\t\tvar value = model.get( 'value' );\n\t\t\tvar fieldID = model.get( 'id' );\n\t\t\tthis.emailChange( value, fieldID );\n\t\t},\n\n\t\tonBlurField: function( el, model ) {\n\t\t\tvar value = jQuery( el ).val();\n\t\t\tvar fieldID = model.get( 'id' );\n\t\t\tthis.emailChange( value, fieldID );\n\t\t},\n\n\t\temailChange: function( value, fieldID ) {\n\t\t\tif ( 0 < value.length ) {\n\t\t\t\tif( emailReg.test( value ) ) {\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t\t} else {\n\t\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', fieldID );\n\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', fieldID, errorID, formModel.get( 'settings' ).changeEmailErrorMsg );\n\t\t\t\t}\t\t\t\t\n\t\t\t} else {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * When a user types inside of an email field, track their keypresses and add the appropriate class.\n\t\t * If the value validates as an email, add a class of nf-pass\n\t\t * If the value does not validate as email, add a class of nf-fail\n\t\t * \n\t\t * @since 3.0\n\t\t * @param {object} el Element that triggered the keyup event.\n\t\t * @param {object} model Model connected to the element that triggered the event\n\t\t * @return {void}\n\t\t */\n\t\temailKeyup: function( el, model, keyCode ) {\n\t\t\t\n\t\t\t/*\n\t\t\t * If we pressed the 'tab' key to get to this field, return false.\n\t\t\t */\n\t\t\tif ( 9 == keyCode ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Get the current value from our element.\n\t\t\t */\n\t\t\tvar value = jQuery( el ).val();\n\n\t\t\t/*\n\t\t\t * Get our current ID\n\t\t\t */\n\t\t\tvar fieldID = model.get( 'id' );\n\n\t\t\t/*\n\t\t\t * Check our value to see if it is a valid email.\n\t\t\t */\n\t\t\tif ( 0 == value.length ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t} else if ( ! emailReg.test( value ) && ! model.get( 'clean' ) ) {\n\n\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', fieldID );\n\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', fieldID, errorID, formModel.get( 'settings' ).changeEmailErrorMsg );\n\n\t\t\t\tmodel.removeWrapperClass( 'nf-pass' );\n\t\t\t} else if ( emailReg.test( value ) ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t\t/*\n\t\t\t\t * Add nf-pass class to the wrapper.\n\t\t\t\t */\n\t\t\t\tmodel.addWrapperClass( 'nf-pass' );\n\t\t\t\tmodel.set( 'clean', false );\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/changeDate',[], function() {\n\tvar radioChannel = nfRadio.channel( 'date' );\n\tvar errorID = 'invalid-date';\n\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( radioChannel, 'change:modelValue', this.onChangeModelValue );\n\t\t\tthis.listenTo( radioChannel, 'keyup:field', this.dateKeyup );\n\t\t\tthis.listenTo( radioChannel, 'blur:field', this.onBlurField );\n\t\t},\n\n\t\tonChangeModelValue: function( model ) {\n\t\t\tthis.dateChange( model );\n\t\t},\n\n\t\tonBlurField: function( el, model ) {\n\t\t\tthis.dateChange( model );\n\t\t},\n\n\t\tdateChange: function( model ) {\n\t\t\tvar fieldID = model.get( 'id' );\n\t\t\tvar value = model.get( 'value' );\n\t\t\tvar format = model.get( 'date_format' );\n\n\t\t\tif( 'default' === format) {\n\t\t\t\tformat = nfi18n.dateFormat;\n\t\t\t}\n\n\t\t\tif ( 0 < value.length ) {\n\t\t\t\t// use moment's isValid to check against the fields format setting\n\t\t\t\tif( moment( value, format ).isValid() ) {\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t\t} else {\n\t\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', fieldID );\n\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', fieldID, errorID, formModel.get( 'settings' ).changeDateErrorMsg );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * When a user types inside of an dat field, track their keypresses\n\t\t * and add the appropriate class.\n\t\t * If the value validates as an date, add a class of nf-pass\n\t\t * If the value does not validate as date, add a class of nf-fail\n\t\t *\n\t\t * @since 3.0\n\t\t * @param {object} el Element that triggered the keyup event.\n\t\t * @param {object} model Model connected to the element that triggered the event\n\t\t * @return {void}\n\t\t */\n\t\tdateKeyup: function( el, model, keyCode ) {\n\n\t\t\t/*\n\t\t\t * If we pressed the 'tab' key to get to this field, return false.\n\t\t\t */\n\t\t\tif ( 9 == keyCode ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Get the current value from our element.\n\t\t\t */\n\t\t\tvar value = jQuery( el ).val();\n\n\t\t\t/*\n\t\t\t * Get our current ID\n\t\t\t */\n\t\t\tvar fieldID = model.get( 'id' );\n\n\t\t\t/*\n\t\t\t* Get our current date format\n\t\t\t */\n\t\t\tvar format = model.get( 'date_format' );\n\n\t\t\tif( 'default' === format) {\n\t\t\t\tformat = nfi18n.dateFormat;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Check our value to see if it is a valid email.\n\t\t\t */\n\t\t\tif ( 0 == value.length ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t}\n\t\t\t// use moment's isValid to check against the fields format setting\n\t\t\telse if ( ! moment( value, format ).isValid() && ! model.get( 'clean' ) ) {\n\n\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', fieldID );\n\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', fieldID, errorID, formModel.get( 'settings' ).changeDateErrorMsg );\n\n\t\t\t\tmodel.removeWrapperClass( 'nf-pass' );\n\t\t\t}\n\t\t\t// use moment's isValid to check against the fields format setting\n\t\t\telse if ( moment( value, format ).isValid() ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', fieldID, errorID );\n\t\t\t\t/*\n\t\t\t\t * Add nf-pass class to the wrapper.\n\t\t\t\t */\n\t\t\t\tmodel.addWrapperClass( 'nf-pass' );\n\t\t\t\tmodel.set( 'clean', false );\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/fieldCheckbox',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\t/*\n\t\t\t * When we init our checkbox model, register our renderClasses() function\n\t\t\t */\n\t\t\tthis.listenTo( nfRadio.channel( 'checkbox' ), 'init:model', this.registerRenderClasses );\n\n\t\t\tnfRadio.channel( 'checkbox' ).reply( 'validate:required', this.validateRequired );\n\t\t\tnfRadio.channel( 'checkbox' ).reply( 'validate:modelData', this.validateModelData );\n nfRadio.channel( 'checkbox' ).reply( 'before:updateField', this.beforeUpdateField, this );\n nfRadio.channel( 'checkbox' ).reply( 'get:calcValue', this.getCalcValue, this );\n\t\t},\n\n\t\tbeforeUpdateField: function( el, model ) {\n\t\t\tvar checked = jQuery( el ).prop( 'checked' );\n\t\t\tif ( checked ) {\n\t\t\t\tvar value = 1;\n\t\t\t\tjQuery( el ).addClass( 'nf-checked' );\n\t\t\t\tjQuery( el ).closest( '.field-wrap' ).find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).addClass( 'nf-checked-label' );\n\t\t\t} else {\n\t\t\t\tvar value = 0;\n\t\t\t\tjQuery( el ).removeClass( 'nf-checked' );\n\t\t\t\tjQuery( el ).closest( '.field-wrap' ).find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).removeClass( 'nf-checked-label' );\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\n\t\tvalidateRequired: function( el, model ) {\n\t\t\treturn el[0].checked;\n\t\t},\n\n\t\tvalidateModelData: function( model ) {\n\t\t\treturn model.get( 'value' ) != 0;\n\t\t},\n\n\t\tgetCalcValue: function( fieldModel ) {\n\t\t\tif ( 1 == fieldModel.get( 'value' ) ) {\n\t\t\t\tcalcValue = fieldModel.get( 'checked_calc_value' );\n\t\t\t} else {\n\t\t\t\tcalcValue = fieldModel.get( 'unchecked_calc_value' );\n\t\t\t}\n\n\t\t\treturn calcValue;\n\t\t},\n\n\t\tregisterRenderClasses: function( model ) {\n\t\t\tif ( 'checked' == model.get( 'default_value' ) ) {\n\t\t\t\tmodel.set( 'value', 1 );\n\t\t\t} else {\n\t\t\t\tmodel.set( 'value', 0 );\n\t\t\t}\n\t\t\tmodel.set( 'customClasses', this.customClasses );\n\t\t\tmodel.set( 'customLabelClasses', this.customLabelClasses );\n\t\t\tmodel.set( 'maybeChecked', this.maybeChecked );\n\t\t},\n\n\t\tcustomClasses: function( classes ) {\n\t\t\tif ( 1 == this.value || ( this.clean && 'undefined' != typeof this.default_value && 'checked' == this.default_value ) ) {\n\t\t\t\tclasses += ' nf-checked';\n\t\t\t} else {\n\t\t\t\tclasses.replace( 'nf-checked', '' );\n\t\t\t}\n\t\t\treturn classes;\n\t\t},\n\n\t\tcustomLabelClasses: function( classes ) {\n\t\t\tif ( 1 == this.value || ( this.clean && 'undefined' != typeof this.default_value && 'checked' == this.default_value ) ) {\n\t\t\t\tclasses += ' nf-checked-label';\n\t\t\t} else {\n\t\t\t\tclasses.replace( 'nf-checked-label', '' );\n\t\t\t}\n\t\t\treturn classes;\n\t\t},\n\n\t\tmaybeChecked: function() {\n\t\t\tif ( 1 == this.value || ( this.clean && 'undefined' != typeof this.default_value && 'checked' == this.default_value ) ) {\n\t\t\t\treturn ' checked';\n\t\t\t} else {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/fieldCheckboxList',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'listcheckbox' ), 'init:model', this.register );\n this.listenTo( nfRadio.channel( 'terms' ), 'init:model', this.register );\n nfRadio.channel( 'listcheckbox' ).reply( 'before:updateField', this.beforeUpdateField, this );\n nfRadio.channel( 'terms' ).reply( 'before:updateField', this.beforeUpdateField, this );\n nfRadio.channel( 'listcheckbox' ).reply( 'get:calcValue', this.getCalcValue, this );\n nfRadio.channel( 'terms' ).reply( 'get:calcValue', this.getCalcValue, this );\n },\n\n register: function( model ) {\n model.set( 'renderOptions', this.renderOptions );\n model.set( 'renderOtherText', this.renderOtherText );\n model.set( 'selected', [] );\n\n /*\n * When we init a model, we need to set our 'value' to the selected option's value.\n * This is the list equivalent of a 'default value'.\n */ \n if ( 0 != model.get( 'options' ).length ) {\n var selected = _.filter( model.get( 'options' ), function( opt ) { return 1 == opt.selected } );\n selected = _.map( selected, function( opt ) { return opt.value } );\n }\n\n /*\n * This part is re-worked to take into account custom user-meta\n * values for fields.\n */\n\t var savedVal = model.get( 'value' );\n\t if( 'undefined' !== typeof savedVal && Array.isArray( savedVal ) ) {\n\t\t model.set( 'value', savedVal );\n\t } else if ( 'undefined' != typeof selected ) {\n\t\t model.set( 'value', selected );\n\t }\n },\n\n renderOptions: function() {\n var html = '';\n\n if ( '' == this.value || ( Array.isArray( this.value ) && 0 < this.value.length )\n || 0 < this.value.length ) {\n var valueFound = true;\n } else {\n var valueFound = false;\n }\n\n _.each( this.options, function( option, index ) {\n if( Array.isArray( this.value ) ) {\n \tif( Array.isArray( this.value[ 0 ] ) && -1 !== _.indexOf( this.value[ 0 ], option.value ) ) {\n \t\tvalueFound = true;\n\t }\n else if( _.indexOf( this.value, option.value ) ) {\n valueFound = true;\n\t }\n }\n\n if ( option.value == this.value ) {\n valueFound = true;\n }\n\n /*\n * TODO: This is a bandaid fix for making sure that each option has a \"visible\" property.\n * This should be moved to creation so that when an option is added, it has a visible property by default.\n */\n if ( 'undefined' == typeof option.visible ) {\n option.visible = true;\n }\n\n option.fieldID = this.id;\n option.classes = this.classes;\n option.index = index;\n\n var selected = false;\n\t\t\t\t/*\n\t\t\t\t* This part has been re-worked to account for values passed in\n\t\t\t\t* via custom user-meta ( a la User Mgmt add-on)\n\t\t\t\t */\n\t if( Array.isArray( this.value ) && 0 < this.value.length ) {\n\t \tif ( -1 !== _.indexOf( this.value[ 0 ].split( ',' ), option.value )\n\t\t || -1 !== _.indexOf( this.value, option.value ) ) {\n\t\t\t selected = true;\n\t \t}\n\t } else if ( ! _.isArray( this.value ) && option.value == this.value ) {\n\t\t selected = true;\n\t } else if ( ( 1 == option.selected && this.clean ) && 'undefined' === typeof this.value ) {\n\t\t selected = true;\n\t }\n\n\n // else if( ( option.selected && \"0\" != option.selected ) && this.clean ){\n\t // isSelected = true;\n\t // } else {\n\t // var testValues = _.map( this.value, function( value ) {\n\t // return value.toString();\n\t // } );\n\t //\n\t // option.isSelected = ( -1 != testValues.indexOf( option.value.toString() ) );\n\t // }\n\t option.selected = selected;\n\t option.isSelected = selected;\n\t option.required = this.required;\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listcheckbox-option' );\n html += template( option );\n }, this );\n\n if ( 1 == this.show_other ) {\n if ( 'nf-other' == this.value ) {\n valueFound = false;\n }\n var data = {\n fieldID: this.id,\n classes: this.classes,\n currentValue: this.value,\n renderOtherText: this.renderOtherText,\n valueFound: valueFound\n };\n\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listcheckbox-other' );\n html += template( data );\n\n }\n\n return html;\n },\n\n renderOtherText: function() {\n if ( 'nf-other' == this.currentValue || ! this.valueFound ) {\n if ( 'nf-other' == this.currentValue ) {\n this.currentValue = '';\n }\n var data = {\n fieldID: this.fieldID,\n classes: this.classes,\n currentValue: this.currentValue\n };\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listcheckbox-other-text' );\n return template( data );\n }\n },\n\n getCalcValue: function( fieldModel ) {\n var calc_value = 0;\n var options = fieldModel.get( 'options' );\n if ( 0 != options.length ) {\n _.each( fieldModel.get( 'value' ), function( val ) {\n var tmp_opt = _.find( options, function( opt ) { return opt.value == val } );\n calc_value = Number( calc_value ) + Number( tmp_opt.calc );\n } );\n }\n return calc_value;\n },\n\n beforeUpdateField: function( el, model ) {\n var selected = model.get( 'value' ) || [];\n if ( typeof selected == 'string' ) selected = [ selected ];\n\n var value = jQuery( el ).val();\n var checked = jQuery( el ).prop( 'checked' );\n if ( checked ) {\n selected.push( value );\n jQuery( el ).addClass( 'nf-checked' );\n jQuery( el ).parent().find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).addClass( 'nf-checked-label' );\n } else {\n jQuery( el ).removeClass( 'nf-checked' );\n jQuery( el ).parent().find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).removeClass( 'nf-checked-label' );\n var i = selected.indexOf( value );\n if( -1 != i ){\n selected.splice( i, 1 );\n } else if ( Array.isArray( selected ) ) {\n \tvar optionArray = selected[0].split( ',' );\n \tvar valueIndex = optionArray.indexOf( value );\n \tif( -1 !== valueIndex) {\n \t\toptionArray.splice( valueIndex, 1 );\n\t }\n \tselected = optionArray.join( ',' );\n }\n }\n\n // if ( 1 == model.get( 'show_other' ) ) {\n // model.set( 'reRender', true );\n // }\n\n return _.clone( selected );\n }\n });\n\n return controller;\n} );\ndefine('controllers/fieldImageList',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'listimage' ), 'init:model', this.register );\n nfRadio.channel( 'listimage' ).reply( 'before:updateField', this.beforeUpdateField, this );\n nfRadio.channel( 'listimage' ).reply( 'get:calcValue', this.getCalcValue, this );\n },\n\n register: function( model ) {\n model.set( 'renderOptions', this.renderOptions );\n model.set( 'renderOtherText', this.renderOtherText );\n model.set( 'selected', [] );\n\n /*\n * When we init a model, we need to set our 'value' to the selected option's value.\n * This is the list equivalent of a 'default value'.\n */ \n if ( 0 != model.get( 'image_options' ).length ) {\n var selected = _.filter( model.get( 'image_options' ), function( opt ) { return 1 == opt.selected } );\n selected = _.map( selected, function( opt ) { return opt.value } );\n }\n\n /*\n * This part is re-worked to take into account custom user-meta\n * values for fields.\n */\n\t var savedVal = model.get( 'value' );\n\t if( 'undefined' !== typeof savedVal && Array.isArray( savedVal ) ) {\n\t\t model.set( 'value', savedVal );\n\t } else if ( 'undefined' != typeof selected ) {\n\t\t model.set( 'value', selected );\n\t }\n },\n\n renderOptions: function() {\n var html = '';\n \n if ( '' == this.value || ( Array.isArray( this.value ) && 0 < this.value.length )\n || 0 < this.value.length ) {\n var valueFound = true;\n } else {\n var valueFound = false;\n }\n\n if (this.allow_multi_select === 1) {\n this.old_classname = 'list-checkbox';\n this.image_type = 'checkbox';\n } else {\n this.image_type = 'radio';\n }\n\n if(this.list_orientation === 'horizontal') {\n this.flex_direction = 'row';\n } else {\n this.flex_direction = 'column';\n }\n var that = this;\n\n var num_columns = parseInt(this.num_columns) || 1;\n var current_column = 1;\n var current_row = 1;\n \n _.each( this.image_options, function( image, index ) {\n if (!this.show_option_labels) {\n image.label = '';\n }\n if( Array.isArray( this.value ) ) {\n \tif( Array.isArray( this.value[ 0 ] ) && -1 !== _.indexOf( this.value[ 0 ], image.value ) ) {\n \t\tvalueFound = true;\n\t }\n else if( _.indexOf( this.value, image.value ) ) {\n valueFound = true;\n\t }\n }\n\n if ( image.value == this.value ) {\n valueFound = true;\n }\n\n /*\n * TODO: This is a bandaid fix for making sure that each option has a \"visible\" property.\n * This should be moved to creation so that when an option is added, it has a visible property by default.\n */\n if ( 'undefined' == typeof image.visible ) {\n image.visible = true;\n }\n \n if(that.list_orientation === 'horizontal' && current_column <= num_columns) {\n image.styles = \"margin:auto;grid-column: \" + current_column + \"; grid-row = \" + current_row;\n\n if(current_column === num_columns) {\n current_column = 1;\n current_row += 1;\n } else {\n current_column += 1;\n }\n }\n\n image.image_type = that.image_type; \n image.fieldID = this.id;\n image.classes = this.classes;\n image.index = index;\n\n var selected = false;\n\t\t\t\t/*\n\t\t\t\t* This part has been re-worked to account for values passed in\n\t\t\t\t* via custom user-meta ( a la User Mgmt add-on)\n\t\t\t\t */\n\t if( Array.isArray( this.value ) && 0 < this.value.length ) {\n\t \tif ( -1 !== _.indexOf( this.value[ 0 ].split( ',' ), image.value )\n\t\t || -1 !== _.indexOf( this.value, image.value ) ) {\n\t\t\t selected = true;\n\t \t}\n\t } else if ( ! _.isArray( this.value ) && image.value == this.value ) {\n\t\t selected = true;\n\t } else if ( ( 1 == image.selected && this.clean ) && ('undefined' === typeof this.value || '' === this.value)) {\n\t\t selected = true;\n\t }\n\n\t image.selected = selected;\n\t image.isSelected = selected;\n\t image.required = this.required;\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listimage-option' );\n html += template( image );\n }, this );\n\n if ( 1 == this.show_other ) {\n if ( 'nf-other' == this.value ) {\n valueFound = false;\n }\n var data = {\n fieldID: this.id,\n classes: this.classes,\n value: this.value,\n currentValue: this.value,\n renderOtherText: this.renderOtherText,\n valueFound: valueFound\n };\n\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listimage-other' );\n html += template( data );\n\n }\n\n return html;\n },\n\n renderOtherText: function() {\n if ( 'nf-other' == this.currentValue || ! this.valueFound ) {\n if ( 'nf-other' == this.currentValue ) {\n this.currentValue = '';\n }\n var data = {\n fieldID: this.fieldID,\n classes: this.classes,\n currentValue: this.currentValue\n };\n var template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listimage-other-text' );\n return template( data );\n }\n },\n\n getCalcValue: function( fieldModel ) {\n\t\t\tvar calc_value = 0;\n\t\t\tvar options = fieldModel.get( 'options' );\n\t\t\tif ( 0 != options.length ) {\n\t\t\t\t/*\n\t\t\t\t * Check to see if this is a multi-select list.\n\t\t\t\t */\n\t\t\t\tif ( 1 == parseInt( fieldModel.get( 'allow_multi_select' ) ) ) {\n\t\t\t\t\t/*\n\t\t\t\t\t * We're using a multi-select, so we need to check out any selected options and add them together.\n\t\t\t\t\t */\n\t\t\t\t\t_.each( fieldModel.get( 'value' ), function( val ) {\n\t\t\t\t\t\tvar tmp_opt = _.find( options, function( opt ) { return opt.value == val } );\n\t\t\t\t\t\tcalc_value += Number( tmp_opt.calc );\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\t/*\n\t\t\t\t\t * We are using a single select, so our selected option is in the 'value' attribute.\n\t\t\t\t\t */\n\t\t\t\t\tvar selected = _.find( options, function( opt ) { return fieldModel.get( 'value' ) == opt.value } );\n\t\t\t\t\t/*\n\t\t\t\t\t * If we have a selcted value, use it.\n\t\t\t\t\t */\n\t\t\t\t\tif ( 'undefined' !== typeof selected ) {\n calc_value = selected.calc;\n\t\t\t\t\t}\t\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn calc_value;\n },\n\n beforeUpdateField: function( el, model ) {\n\n if(model.get('allow_multi_select') !== 1) {\n var selected = jQuery( el ).val();\n var options = model.get('image_options');\n _.each(options, function(option, index) {\n if(option.value === selected) {\n option.isSelected = true;\n option.selected = true;\n } else {\n option.isSelected = false;\n option.selected = false;\n }\n if(!option.isSelected) {\n option.selected = false;\n jQuery(\"#nf-field-\" + option.fieldID + \"-\" + index).removeClass('nf-checked');\n jQuery(\"#nf-label-field-\" + option.fieldID + \"-\" + index).removeClass('nf-checked-label');\n } else {\n jQuery(\"#nf-field-\" + option.fieldID + \"-\" + index).addClass('nf-checked');\n jQuery(\"#nf-label-field-\" + option.fieldID + \"-\" + index).addClass('nf-checked-label');\n }\n });\n } else {\n var selected = model.get( 'value' ) || [];\n if ( typeof selected == 'string' ) selected = [ selected ];\n var value = jQuery( el ).val();\n var checked = jQuery( el ).prop( 'checked' );\n if ( checked ) {\n selected.push( value );\n jQuery( el ).addClass( 'nf-checked' );\n jQuery( el ).parent().find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).addClass( 'nf-checked-label' );\n } else {\n jQuery( el ).removeClass( 'nf-checked' );\n jQuery( el ).parent().find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).removeClass( 'nf-checked-label' );\n var i = selected.indexOf( value );\n if( -1 != i ){\n selected.splice( i, 1 );\n } else if ( Array.isArray( selected ) ) {\n var optionArray = selected[0].split( ',' );\n var valueIndex = optionArray.indexOf( value );\n if( -1 !== valueIndex) {\n optionArray.splice( valueIndex, 1 );\n }\n selected = optionArray.join( ',' );\n }\n }\n }\n\n return _.clone( selected );\n }\n });\n\n return controller;\n} );\ndefine('controllers/fieldRadio',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'listradio' ), 'change:modelValue', this.changeModelValue );\n\t\t\tthis.listenTo( nfRadio.channel( 'listradio' ), 'init:model', this.register );\n\t\t\tnfRadio.channel( 'listradio' ).reply( 'get:calcValue', this.getCalcValue, this );\n\t\t\t\n\t\t\tthis.listenTo( nfRadio.channel( 'listradio' ), 'change:field', this.updateCheckedClass, this );\n\t\t},\n\n\t\tregister: function( model ) {\n\t\t\tmodel.set( 'renderOptions', this.renderOptions );\n\t\t\tmodel.set( 'renderOtherText', this.renderOtherText );\n\t\t\t/*\n\t\t\t * When we init a model, we need to set our 'value' to the selected option's value.\n\t\t\t * This is the list equivalent of a 'default value'.\n\t\t\t */ \n\t\t\tif ( 0 != model.get( 'options' ).length ) {\n\t\t\t\t/*\n\t\t\t\t * Check to see if we have a selected value.\n\t\t\t\t */\n\t\t\t\tvar selected = _.find( model.get( 'options' ), function( opt ) { return 1 == opt.selected } );\n\n\t\t\t\tif ( 'undefined' != typeof selected ) {\n\t\t\t\t\tmodel.set( 'value', selected.value );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tchangeModelValue: function( model ) {\n\t\t\tif ( 1 == model.get( 'show_other' ) ) {\n\t\t\t\t// model.set( 'reRender', true );\n\t\t\t\tmodel.trigger( 'reRender');\n\t\t\t}\n\t\t},\n\n\t\trenderOptions: function() {\n\t\t\tvar html = '';\n\t\t\tif ( '' == this.value ) {\n\t\t\t\tvar valueFound = true;\n\t\t\t} else {\n\t\t\t\tvar valueFound = false;\n\t\t\t}\n\t\t\t\n\t\t\t_.each( this.options, function( option, index ) {\n\t\t\t\tif ( option.value == this.value ) {\n\t\t\t\t\tvalueFound = true;\n\t\t\t\t}\n\n\t\t\t\t/*\n * TODO: This is a bandaid fix for making sure that each option has a \"visible\" property.\n * This should be moved to creation so that when an option is added, it has a visible property by default.\n */\n if ( 'undefined' == typeof option.visible ) {\n option.visible = true;\n }\n\n option.selected = false;\n\t\t\t\toption.fieldID = this.id;\n\t\t\t\toption.classes = this.classes;\n\t\t\t\toption.currentValue = this.value;\n\t\t\t\toption.index = index;\n\t\t\t\toption.required = this.required;\n\n\t\t\t\t/*\n\t\t\t\t * If we haven't edited this field yet, use the default checked\n\t\t\t\t */\n\t\t\t\tif ( this.clean && 1 == this.selected ) {\n\t\t\t\t\toption.selected = true;\n\t\t\t\t} else if ( this.value == option.value ) {\n\t\t\t\t\toption.selected = true;\n\t\t\t\t} else {\n\t\t\t\t\toption.selected = false;\n\t\t\t\t}\n\n\t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listradio-option' );\n\n\t\t\t\thtml += template( option );\n\t\t\t}, this );\n\n\t\t\tif ( 1 == this.show_other ) {\n\t\t\t\tif ( 'nf-other' == this.value ) {\n\t\t\t\t\tvalueFound = false;\n\t\t\t\t}\n\t\t\t\tvar data = {\n\t\t\t\t\tfieldID: this.id,\n\t\t\t\t\tclasses: this.classes,\n\t\t\t\t\tcurrentValue: this.value,\n\t\t\t\t\trenderOtherText: this.renderOtherText,\n\t\t\t\t\tvalueFound: valueFound\n\t\t\t\t};\n\t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listradio-other' );\n\t\t\t\thtml += template( data );\n\t\t\t}\n\n\t\t\treturn html;\n\t\t},\n\n\t\trenderOtherText: function() {\n\t\t\tif ( 'nf-other' == this.currentValue || ! this.valueFound ) {\n\t\t\t\tif ( 'nf-other' == this.currentValue ) {\n\t\t\t\t\tthis.currentValue = '';\n\t\t\t\t}\n\t\t\t\tvar data = {\n\t\t\t\t\tfieldID: this.fieldID,\n\t\t\t\t\tclasses: this.classes,\n\t\t\t\t\tcurrentValue: this.currentValue\n\t\t\t\t};\n\t\t\t\tvar template = nfRadio.channel( 'app' ).request( 'get:template', '#tmpl-nf-field-listradio-other-text' );\n\t\t\t\treturn template( data );\n\t\t\t}\n\t\t},\n\n\t\tgetCalcValue: function( fieldModel ) {\n\t\t\t\n /*\n * Default to 0, in case we have no selection.\n */\n var calc_value = 0;\n \n\t\t\tif ( 0 != fieldModel.get( 'options' ).length ) {\n\t\t\t\t/*\n\t\t\t\t * Check to see if we have a selected value.\n\t\t\t\t */\n\t\t\t\tvar selected = _.find( fieldModel.get( 'options' ), function( opt ) { return fieldModel.get( 'value' ) == opt.value } );\n\t\t\t\tif ( 'undefined' !== typeof selected ) {\n calc_value = selected.calc;\n\t\t\t\t}\n\n\t\t\t}\n\t\t\treturn calc_value;\n\t\t},\n\n\t\tupdateCheckedClass: function( el, model ) {\n\t\t\tjQuery( '[name=\"' + jQuery( el ).attr( 'name' ) + '\"]' ).removeClass( 'nf-checked' );\n\t\t\tjQuery( el ).closest( 'ul' ).find( 'label' ).removeClass( 'nf-checked-label' );\n\t\t\tjQuery( el ).addClass( 'nf-checked' );\n\t\t\tjQuery( el ).closest( 'li' ).find( 'label[for=\"' + jQuery( el ).prop( 'id' ) + '\"]' ).addClass( 'nf-checked-label' );\n\n\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/fieldNumber',[], function() {\n var controller = Marionette.Object.extend( {\n initialize: function() {\n this.listenTo( nfRadio.channel( 'number' ), 'init:model', this.maybeMinDefault );\n this.listenTo( nfRadio.channel( 'number' ), 'keyup:field', this.validateMinMax );\n },\n\n maybeMinDefault: function( model ) {\n\n if( '' == model.get( 'value' ) && '' == model.get( 'placeholder' ) ){\n var min = model.get( 'num_min' );\n model.set( 'placeholder', min );\n }\n },\n\n validateMinMax: function( el, model ) {\n var $el = jQuery( el );\n var value = parseFloat( $el.val() );\n var min = $el.attr( 'min' );\n var max = $el.attr( 'max' );\n var step = parseFloat( $el.attr( 'step' ) );\n\n if( min && value < min ){\n var fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', model.get( 'id' ) );\n var formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n nfRadio.channel( 'fields' ).request( 'add:error', model.get( 'id' ), 'number-min', formModel.get( 'settings' ).fieldNumberNumMinError );\n } else {\n nfRadio.channel( 'fields' ).request( 'remove:error', model.get( 'id' ), 'number-min' );\n }\n\n if ( max && value > max ){\n var fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', model.get( 'id' ) );\n var formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n nfRadio.channel( 'fields' ).request( 'add:error', model.get( 'id' ), 'number-max', formModel.get( 'settings' ).fieldNumberNumMaxError );\n } else {\n nfRadio.channel( 'fields' ).request( 'remove:error', model.get( 'id' ), 'number-max' );\n }\n\n var testValue = Math.round( parseFloat( value ) * 1000000000 );\n var testStep = Math.round( parseFloat( step ) * 1000000000 );\n\n if( value && 0 !== testValue % testStep ){\n var fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', model.get( 'id' ) );\n var formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n nfRadio.channel( 'fields' ).request( 'add:error', model.get( 'id' ), 'number-step', formModel.get( 'settings' ).fieldNumberIncrementBy + step );\n } else {\n nfRadio.channel( 'fields' ).request( 'remove:error', model.get( 'id' ), 'number-step' );\n }\n }\n\n });\n\n return controller;\n} );\ndefine( 'controllers/mirrorField',[], function() {\n\tvar radioChannel = nfRadio.channel( 'fields' );\n\n\tvar controller = Marionette.Object.extend( {\n\t\tlisteningModel: '',\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( radioChannel, 'init:model', this.registerMirror );\n\t\t},\n\n\t\tregisterMirror: function( model ) {\n\t\t\tif ( model.get( 'mirror_field' ) ) {\n\t\t\t\tthis.listeningModel = model;\n\t\t\t\tvar targetID = model.get( 'mirror_field' );\n\t\t\t\tthis.listenTo( nfRadio.channel( 'field-' + targetID ), 'change:modelValue', this.changeValue );\n\t\t\t}\n\t\t},\n\n\t\tchangeValue: function( targetModel ) {\n\t\t\tthis.listeningModel.set( 'value', targetModel.get( 'value' ) );\n\t\t\t// this.listeningModel.set( 'reRender', true );\n\t\t\tthis.listeningModel.trigger( 'reRender' );\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine( 'controllers/confirmField',[], function() {\n\tvar radioChannel = nfRadio.channel( 'fields' );\n\tvar errorID = 'confirm-mismatch';\n\n\tvar controller = Marionette.Object.extend( {\n\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( radioChannel, 'init:model', this.registerConfirm );\n\t\t\tthis.listenTo( radioChannel, 'keyup:field', this.confirmKeyup );\n\t\t},\n\n\t\tregisterConfirm: function( confirmModel ) {\n\t\t\tif ( ! confirmModel.get( 'confirm_field' ) ) return;\n\n\t\t\tthis.listenTo( nfRadio.channel( 'form' ), 'loaded', function( formModal ){\n\t\t\t\tthis.registerConfirmListeners( confirmModel );\n\t\t\t});\n\t\t},\n\n\t\tregisterConfirmListeners: function( confirmModel ) {\n\t\t\t\n\t\t\tvar targetModel = nfRadio.channel( 'form-' + confirmModel.get( 'formID' ) ).request( 'get:fieldByKey', confirmModel.get( 'confirm_field' ) );\n\n\t\t\t//TODO: Add better handling for password confirm fields on the front end.\n\t\t\tif( 'undefined' == typeof targetModel ) return;\n\n\t\t\ttargetModel.set( 'confirm_with', confirmModel.get( 'id' ) );\n\t\t\tthis.listenTo( nfRadio.channel( 'field-' + targetModel.get( 'id' ) ), 'change:modelValue', this.changeValue );\n\t\t\tthis.listenTo( nfRadio.channel( 'field-' + confirmModel.get( 'id' ) ), 'change:modelValue', this.changeValue );\n\t\t},\n\n\t\tchangeValue: function( model ) {\n\t\t\tif ( 'undefined' == typeof model.get( 'confirm_with' ) ) {\n\t\t\t\tvar confirmModel = model;\n\t\t\t\tvar targetModel = nfRadio.channel( 'form-' + model.get( 'formID' ) ).request( 'get:fieldByKey', confirmModel.get( 'confirm_field' ) );\n\t\t\t} else {\n\t\t\t\tvar targetModel = model;\n\t\t\t\tvar confirmModel = radioChannel.request( 'get:field', targetModel.get( 'confirm_with' ) );\n\t\t\t}\n\t\t\tvar targetID = targetModel.get( 'id' );\n\t\t\tvar confirmID = confirmModel.get( 'id' );\n\n\t\t\tif ( '' == confirmModel.get( 'value' ) || confirmModel.get( 'value' ) == targetModel.get( 'value' ) ) {\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', confirmID, errorID );\n\t\t\t} else {\n\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', confirmID );\n\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', confirmID, errorID, formModel.get( 'settings' ).confirmFieldErrorMsg );\n\t\t\t}\n\t\t},\n\t\t\n\t\tconfirmKeyup: function( el, model, keyCode ) {\n\n\t\t\tvar currentValue = jQuery( el ).val();\n\t\t\tif ( model.get( 'confirm_field' ) ) {\n\t\t\t\tvar confirmModel = model;\n\t\t\t\tvar confirmID = model.get( 'id' );\n\t\t\t\tvar targetModel = nfRadio.channel( 'form-' + model.get( 'formID' ) ).request( 'get:fieldByKey', confirmModel.get( 'confirm_field' ) );\n\t\t\t\tvar compareValue = targetModel.get( 'value' );\n\t\t\t\tvar confirmValue = currentValue;\n\t\t\t} else if ( model.get( 'confirm_with' ) ) {\n\t\t\t\tvar confirmModel = nfRadio.channel( 'fields' ).request( 'get:field', model.get( 'confirm_with' ) );\n\t\t\t\tvar confirmID = confirmModel.get( 'id' );\n\t\t\t\tvar confirmValue = confirmModel.get( 'value' );\n\t\t\t\tvar compareValue = confirmValue;\n\t\t\t}\n\n\t\t\tif ( 'undefined' !== typeof confirmModel ) {\n\t\t\t\tif ( '' == confirmValue ) {\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', confirmID, errorID );\n\t\t\t\t} else if ( currentValue == compareValue ) {\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'remove:error', confirmID, errorID );\n\t\t\t\t} else {\n\t\t\t\t\tvar fieldModel = nfRadio.channel( 'fields' ).request( 'get:field', confirmID );\n\t\t\t\t\tvar formModel = nfRadio.channel( 'app' ).request( 'get:form', fieldModel.get( 'formID' ) );\n\t\t\t\t\tnfRadio.channel( 'fields' ).request( 'add:error', confirmID, errorID, formModel.get( 'settings' ).confirmFieldErrorMsg );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn controller;\n} );\ndefine('controllers/updateFieldModel',[], function() {\n\tvar controller = Marionette.Obje