From 1a8e3aea14fa85faf41ca89b94774d6758ef14a3 Mon Sep 17 00:00:00 2001 From: Kevin Chappell Date: Thu, 17 Mar 2016 02:06:38 +0000 Subject: [PATCH] hidden field breaks formRender --- CHANGELOG.md | 1 + README.md | 2 +- bower.json | 2 +- demo/assets/css/demo.css | 2 +- demo/assets/css/form-builder.css | 2 +- demo/assets/css/form-builder.min.css | 2 +- demo/assets/css/form-render.css | 2 +- demo/assets/css/form-render.min.css | 2 +- demo/assets/js/form-builder.js | 2 +- demo/assets/js/form-builder.min.js | 2 +- demo/assets/js/form-render.js | 19 ++++++++++++++++++- demo/assets/js/form-render.min.js | 4 ++-- demo/assets/js/form-render.min.js.map | 2 +- dist/form-builder.css | 2 +- dist/form-builder.js | 2 +- dist/form-builder.min.css | 2 +- dist/form-builder.min.js | 2 +- dist/form-render.css | 2 +- dist/form-render.js | 19 ++++++++++++++++++- dist/form-render.min.css | 2 +- dist/form-render.min.js | 4 ++-- package.json | 2 +- src/js/form-render.js | 17 +++++++++++++++++ 23 files changed, 75 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c57899020..8a35a0ce4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Changelog +- v1.9.11 - Bugfix: formRender hidden field issue [#100](https://github.com/kevinchappell/formBuilder/pull/100) - v1.9.10 - Bugfix: formRender not rendering with containers [#98](https://github.com/kevinchappell/formBuilder/pull/98) - v1.9.9 - Bugfix: formRender reinit, take regular js object [#97](https://github.com/kevinchappell/formBuilder/pull/97) - v1.9.8 - Bugfix: Enter toggles XML field [#95](https://github.com/kevinchappell/formBuilder/pull/95) diff --git a/README.md b/README.md index faf034149..c32de119b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -formBuilder v1.9.10 +formBuilder v1.9.11 =========== [![Join the chat at https://gitter.im/kevinchappell/formBuilder](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/kevinchappell/formBuilder?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) diff --git a/bower.json b/bower.json index c6321eacc..a28aa7522 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "formBuilder", - "version": "1.9.10", + "version": "1.9.11", "main": [ "dist/*" ], diff --git a/demo/assets/css/demo.css b/demo/assets/css/demo.css index f5a99c9cc..4855053e8 100644 --- a/demo/assets/css/demo.css +++ b/demo/assets/css/demo.css @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,pre code,section{display:block}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}blockquote,table{margin-bottom:20px}code,pre{padding:1%;box-shadow:0 0 10px rgba(0,0,0,.1);width:100%}dl dd,dl p,ol,ul{padding-left:20px}td,th{padding:10px}#forkme_banner,#project_title,dl dt,h1,strong{font-weight:700}dl dd,dl p,em{font-style:italic}body{box-sizing:border-box;color:#373737;background:#212121;font-size:14px;font-family:'Myriad Pro',Calibri,Helvetica,Arial,sans-serif;line-height:1.42857143;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{margin:10px 0;font-weight:700;color:#222;font-family:'Lucida Grande',Calibri,Helvetica,Arial,sans-serif;letter-spacing:-1px}h1{font-size:36px}h2{padding-bottom:10px;font-size:32px}h3{font-size:24px}h4{font-size:21px}h5{font-size:18px}h6{font-size:16px}p{margin:10px 0 15px}footer p{color:#f2f2f2}a{text-decoration:none;color:#0090ff;text-shadow:none;-webkit-transition:text-shadow .5s ease;transition:text-shadow .5s ease}a:focus,a:hover{text-decoration:underline}p img{display:inline;margin:0;padding:0;vertical-align:middle;text-align:center;border:none}code,pre{color:#222;background-color:#fff;font-family:Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:14px;border-radius:2px}table,td{border:1px solid #373737}pre{overflow:auto;white-space:pre-wrap}code{margin:0 3px}pre code{box-shadow:none}blockquote{color:#666;padding:0 0 0 20px;border-left:3px solid #bbb}dl,ol,ul{margin-bottom:15px}ul{list-style:disc}ol{list-style:decimal}hr{height:1px;margin-bottom:5px;border-bottom:1px dashed #999}table{border-collapse:collapse;border-spacing:0;text-align:left}th{font-family:'Lucida Grande','Helvetica Neue',Helvetica,Arial,sans-serif;background:#373737;color:#fff}.outer{width:100%}.inner{position:relative;max-width:1080px;padding:20px 10px;margin:0 auto}#downloads,#forkme_banner{position:absolute;z-index:10}#forkme_banner{display:block;top:0;right:10px;padding:10px 50px 10px 10px;color:#fff;background:url(../img/blacktocat.png) 95% 50% no-repeat #0090ff;box-shadow:0 0 10px rgba(0,0,0,.5);border-bottom-left-radius:2px;border-bottom-right-radius:2px}#header_wrap{background:-webkit-linear-gradient(top,#373737,#212121);background:linear-gradient(to bottom,#373737,#212121)}#header_wrap .inner{padding:50px 10px 30px}#project_title{margin:0;color:#fff;font-size:42px;text-shadow:#111 0 0 10px}#project_tagline{color:#fff;font-size:24px;font-weight:300;background:0 0;text-shadow:#111 0 0 10px}#downloads{width:210px;bottom:-40px;right:0;height:70px;background:url(../img/icon_download.png) 0 90% no-repeat}.tar_download_link,.zip_download_link{display:block;float:right;width:90px;height:70px;text-indent:-5000px;overflow:hidden}.zip_download_link{background:url(../img/sprite_download.png) bottom left no-repeat}.tar_download_link{background:url(../img/sprite_download.png) bottom right no-repeat;margin-left:10px}.zip_download_link:hover{background:url(../img/sprite_download.png) top left no-repeat}.tar_download_link:hover{background:url(../img/sprite_download.png) top right no-repeat}fieldset,legend{border:1px solid #999;background:#fefefe}#main_content_wrap{background-color:#f2f2f2;background-image:url(data:image/png;base64,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);border-top:1px solid #111;border-bottom:1px solid #111}#footer_wrap{background:#212121}@media screen and (max-width:480px){.inner,code,pre{min-width:320px;max-width:480px}body{font-size:14px}#downloads{display:none}#project_title{font-size:32px}h1{font-size:28px}h2{font-size:24px}h3{font-size:21px}h4{font-size:18px}h5{font-size:14px}h6{font-size:12px}code,pre{font-size:11px;width:100%;padding:1%}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.demo-wrap{width:100%}.donate-plea{width:50%;float:left;text-align:left}.donate-plea h3{color:#fff;margin-top:0}.donate-plea form{float:left;margin-bottom:10px}.copyright{float:right;text-align:right}.badges{margin-top:-30px}.social{margin-top:-40px}.social .chicklets{text-indent:-9999px}em{color:#999;display:block}fieldset{padding:20px;margin:20px 0}legend{padding:5px 10px}#rendered-form{clear:both;float:left;width:62%;margin-right:2%}#rendered-form .form-group>label{font-weight:700;font-size:1.1em}.render-description{width:36%;float:right;overflow:hidden}#main_content hr{clear:both}.build-form{margin-bottom:30px} \ No newline at end of file diff --git a/demo/assets/css/form-builder.css b/demo/assets/css/form-builder.css index ee30040b2..eb5b474e7 100644 --- a/demo/assets/css/form-builder.css +++ b/demo/assets/css/form-builder.css @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ @charset "UTF-8"; diff --git a/demo/assets/css/form-builder.min.css b/demo/assets/css/form-builder.min.css index 423663b2d..7eca7f062 100644 --- a/demo/assets/css/form-builder.min.css +++ b/demo/assets/css/form-builder.min.css @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ @charset "UTF-8";.btn,.btn-group{display:inline-block;vertical-align:middle}.btn,.frmb-control li{-moz-user-select:none;-ms-user-select:none}.btn-group>.btn,.input-group .form-control{float:left;position:relative}.btn,.btn.active,.btn.btn-active,.btn:active,.form-control{background-image:none}.btn-group,.btn-group>.btn,.frmb li,.input-group{position:relative}*{box-sizing:border-box}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}.btn,.frmb .prev-holder label,.frmb li.disabled label,.frmb li.no-fields label{font-weight:400}textarea{overflow:auto}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-group .input-group .form-control:last-child,.btn-group .input-group-addon:last-child,.btn-group .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.btn-group .input-group-btn:first-child>.btn:not(:first-child),.btn-group .input-group-btn:last-child>.btn,.btn-group .input-group-btn:last-child>.btn-group>.btn,.btn-group .input-group-btn:last-child>.dropdown-toggle,.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn{color:#fff;padding:6px 12px;margin-bottom:0;font-size:14px;line-height:1.42857143;text-align:center;white-space:nowrap;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn.btn-sm,.btn.btn-xs{font-size:12px;line-height:1.5;border-radius:3px}.btn.btn-sm{padding:5px 10px}.btn.btn-xs{padding:1px 5px}.btn-primary{background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.btn-active,.btn-primary:active,.btn-primary:hover{background-color:#286090;border-color:#204d74}.btn-danger{background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.form-actions .clear-all:hover{background-color:#c9302c;border-color:#ac2925}.btn-default{background-color:#fff;border-color:#ccc}.btn-success{background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover{background-color:#449d44;border-color:#398439}.btn-info{background-color:#5bc0de;border-color:#46b8da}.btn-info:hover{background-color:#31b0d5;border-color:#269abc}.btn-warning{background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover{background-color:#ec971f;border-color:#d58512}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.input-group .form-control{z-index:2;width:100%;margin-bottom:0}.input-group{display:table;border-collapse:separate}.form-control,output{display:block;font-size:14px;line-height:1.42857143;color:#555}textarea.form-control{height:auto}.form-control{height:34px;width:100%;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-group{margin-bottom:15px}.pull-right{float:right}.pull-left{float:left}.cb-wrap,.form-actions{float:right}@font-face{font-family:form-builder-font;src:url(data:application/vnd.ms-fontobject;base64,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);src:url(data:application/vnd.ms-fontobject;base64,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) format("embedded-opentype"),url(data:application/font-woff;base64,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) format("woff"),url(data:application/x-font-ttf;base64,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) format("truetype"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtZXRhZGF0YT5Db3B5cmlnaHQgKEMpIDIwMTYgYnkgb3JpZ2luYWwgYXV0aG9ycyBAIGZvbnRlbGxvLmNvbTwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0iZm9ybS1idWlsZGVyLWZvbnQiIGhvcml6LWFkdi14PSIxMDAwIiA+Cjxmb250LWZhY2UgZm9udC1mYW1pbHk9ImZvcm0tYnVpbGRlci1mb250IiBmb250LXdlaWdodD0iNDAwIiBmb250LXN0cmV0Y2g9Im5vcm1hbCIgdW5pdHMtcGVyLWVtPSIxMDAwIiBhc2NlbnQ9Ijg1MCIgZGVzY2VudD0iLTE1MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjEwMDAiIC8+CjxnbHlwaCBnbHlwaC1uYW1lPSJhdXRvY29tcGxldGUiIHVuaWNvZGU9IiYjeGU4MDA7IiBkPSJNMzc1IDUzOGg2M3YtNjNoLTYzdjYzeiBtLTEyNSA2MmgtNjJ2LTYyaDYydjYyeiBtMTI1IDBoLTYydi02Mmg2MnY2MnogbS0yNTAtNjJ2LTYzaDYzdjYzaC02M3ogbTYzLTEyNWg2MnY2MmgtNjJ2LTYyeiBtMTI1IDBoNjJ2NjJoLTYydi02MnogbS02MyAxMjV2LTYzaDYzdjYzaC02M3ogbS0xMjUtNTYzaDYzdjYzaC02M3YtNjN6IG0xMjUgMGg2M3Y2M2gtNjN2LTYzeiBtMTI1IDBoNjN2NjNoLTYzdi02M3ogbTE4OCA2M2gtNjN2LTYzaDYzdjYzeiBtNDM3IDU5M3YtMjUwYzAtNTAtNDQtOTMtOTQtOTNoLTMxdi0xODgtMTg4YzAtMzctMjUtNjItNjItNjJoLTc1MGMtMzggMC02MyAyNS02MyA2MnY3MTljMCA1MCA0NCA5NCA5NCA5NGgxODcgMjE5djMxIDMyaC02Mi02M3YzMSAzMWgxNTYgMTU3di0zMS0zMWgtNjMtNjJ2LTMyLTMxaDE4NyAxNTZjNTAgMCA5NC00NCA5NC05NHogbS0xODctNTMxaC0zNzUtMzc1di0xODhoNzUwdjE4OHogbS02MjUgNjN2NjJoLTYzdi02Mmg2M3ogbTEyNSAwdjYyaC02M3YtNjJoNjN6IG02MjUgNDY4YzAgMTktMTMgMzItMzIgMzJoLTM0M3YtMTU3LTE1NmgtMzItMzF2MzEgMzJoLTYydjYyaDYydjMxIDMyaC02MnY2Mmg2MnYzMSAzMmgtNDA2Yy0xOSAwLTMxLTEzLTMxLTMydi0yNTBjMC0xOCAxMi0zMSAzMS0zMWg0MDZ2LTYyaC0xMjV2LTMyLTMxaDE1NiAxNTd2MzEgMzJoLTEyNXY2MmgzNDNjMTkgMCAzMiAxMyAzMiAzMXYyNTB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9ImNhbGVuZGFyIiB1bmljb2RlPSImI3hlODAxOyIgZD0iTTcxLTc5aDE2MXYxNjFoLTE2MXYtMTYxeiBtMTk3IDBoMTc4djE2MWgtMTc4di0xNjF6IG0tMTk3IDE5N2gxNjF2MTc4aC0xNjF2LTE3OHogbTE5NyAwaDE3OHYxNzhoLTE3OHYtMTc4eiBtLTE5NyAyMTRoMTYxdjE2MWgtMTYxdi0xNjF6IG00MTEtNDExaDE3OXYxNjFoLTE3OXYtMTYxeiBtLTIxNCA0MTFoMTc4djE2MWgtMTc4di0xNjF6IG00MjgtNDExaDE2MXYxNjFoLTE2MXYtMTYxeiBtLTIxNCAxOTdoMTc5djE3OGgtMTc5di0xNzh6IG0tMTk2IDQ4MnYxNjFxMCA3LTYgMTJ0LTEyIDZoLTM2cS03IDAtMTItNnQtNi0xMnYtMTYxcTAtNyA2LTEzdDEyLTVoMzZxNyAwIDEyIDV0NiAxM3ogbTQxMC00ODJoMTYxdjE3OGgtMTYxdi0xNzh6IG0tMjE0IDIxNGgxNzl2MTYxaC0xNzl2LTE2MXogbTIxNCAwaDE2MXYxNjFoLTE2MXYtMTYxeiBtMTggMjY4djE2MXEwIDctNSAxMnQtMTMgNmgtMzVxLTggMC0xMy02dC01LTEydi0xNjFxMC03IDUtMTN0MTMtNWgzNXE4IDAgMTMgNXQ1IDEzeiBtMjE1IDM2di03MTVxMC0yOS0yMi01MHQtNTAtMjFoLTc4NnEtMjkgMC01MCAyMXQtMjEgNTB2NzE1cTAgMjkgMjEgNTB0NTAgMjFoNzJ2NTRxMCAzNyAyNiA2M3Q2MyAyNmgzNnEzNyAwIDYzLTI2dDI2LTYzdi01NGgyMTR2NTRxMCAzNyAyNyA2M3Q2MyAyNmgzNXEzNyAwIDYzLTI2dDI3LTYzdi01NGg3MXEyOSAwIDUwLTIxdDIyLTUweiIgaG9yaXotYWR2LXg9IjkyOC42IiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iY2hlY2tib3giIHVuaWNvZGU9IiYjeGU4MDI7IiBkPSJNODQ0IDUzOHYtNTAwYzAtNTEtNDQtOTQtOTQtOTRoLTU2MmMtNTAgMC05NCA0My05NCA5NHY1NjJjMCA1MCA0NCA5NCA5NCA5NGg1NjJjNDQgMCA4MS0zMSA5NC03NWwxNTAgODctMTUwLTE2OHogbS02My03NWwtMzAwLTM2My0zMDYgNDA2IDMwNi0xMDAgMzAwIDE4MnYxMmMwIDE5LTEyIDMxLTMxIDMxaC01NjJjLTE5IDAtMzItMTItMzItMzF2LTU2MmMwLTE5IDEzLTMyIDMyLTMyaDU2MmMxOSAwIDMxIDEzIDMxIDMydjQyNXoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iY2hlY2tib3gtZ3JvdXAiIHVuaWNvZGU9IiYjeGU4MDM7IiBkPSJNMCA3ODhoMTAwMHY2MmgtMTAwMHYtNjJ6IG0wLTEyNWgxMDAwdjYyaC0xMDAwdi02MnogbTM3NS0xMjV2LTYzaDU2M3Y2M2gtNTYzeiBtNTYzLTU2M3Y2M2gtNTYzdi02M2g1NjN6IG0tNTYzIDI1MGg1NjN2NjNoLTU2M3YtNjN6IG0tMTI1LTEyNWwtMTU2LTk0LTk0IDMyIDk0LTEyNiAxNTYgMTg4eiBtMCAyNTBsLTE1Ni05NC05NCAzMiA5NC0xMjUgMTU2IDE4N3ogbTAgMjUwbC0xNTYtOTQtOTQgMzIgOTQtMTI1IDE1NiAxODd6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InJhZGlvLWdyb3VwIiB1bmljb2RlPSImI3hlODA0OyIgZD0iTTAgNzg4aDEwMDB2NjJoLTEwMDB2LTYyeiBtMC0xMjVoMTAwMHY2MmgtMTAwMHYtNjJ6IG0zMTMtMTg4aDYyNXY2M2gtNjI1di02M3ogbTYyNS0xODdoLTYyNXYtNjNoNjI1djYzeiBtMC0zMTN2NjNoLTYyNXYtNjNoNjI1eiBtLTg0NCA0MzhjLTUwIDAtOTQgNDMtOTQgOTNzNDQgOTQgOTQgOTQgOTQtNDQgOTQtOTQtNDQtOTMtOTQtOTN6IG0wIDEyNWMtMTkgMC0zMS0xMy0zMS0zMnMxMi0zMSAzMS0zMSAzMSAxMyAzMSAzMS0xMiAzMi0zMSAzMnogbTAtMzgyYy01MCAwLTk0IDQ0LTk0IDk0czQ0IDk0IDk0IDk0IDk0LTM4IDk0LTk0LTQ0LTk0LTk0LTk0eiBtMCAxMjVjLTE5IDAtMzEtMTItMzEtMzFzMTItMzEgMzEtMzEgMzEgMTkgMzEgMzEtMTIgMzEtMzEgMzF6IG0wLTM2OWMtNTAgMC05NCA0NC05NCA5NHM0NCA5NCA5NCA5NCA5NC00NCA5NC05NC00NC05NC05NC05NHogbTAgMTI2Yy0xOSAwLTMxLTEzLTMxLTMyczEyLTMxIDMxLTMxIDMxIDEyIDMxIDMxLTEyIDMyLTMxIDMyeiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+CjxnbHlwaCBnbHlwaC1uYW1lPSJyaWNoLXRleHQiIHVuaWNvZGU9IiYjeGU4MDU7IiBkPSJNOTM4IDc4OGgtODc1Yy0zOCAwLTYzLTI1LTYzLTYzdi03NTBjMC0zOCAyNS02MyA2My02M2g4NzVjMzcgMCA2MiAyNSA2MiA2M3Y3NTBjMCAzOC0yNSA2My02MiA2M3ogbS04NzUtMTMyaDUwdi0xOGgtNTB2MTh6IG0wLTMxaDUwdi0xOWgtNTB2MTl6IG04NzUtNjUwaC04NzV2NTU2aDg3NXYtNTU2eiBtMCA1NjloLTg3NXYxOWg4NzV2LTE5eiBtMCAzMWgtODc1djE5aDUwdi0xM2g5M3YxM2g4MnYtMTNoODd2MTNoODF2LTEzaDk0djEzaDc1di0xM2g5NHYxM2g4MXYtMTNoOTR2MTNoNDR2LTE5eiBtLTY1NyA1MHYtMTloLTc1djE5aDc1eiBtLTc1IDEzdjE4aDgydi0xOGgtODJ6IG0yNTAtMTN2LTE5aC04MXYxOWg4MXogbS04MSAxM3YxOGg4MXYtMThoLTgxeiBtMjUwLTEzdi0xOWgtNzV2MTloNzV6IG0tNzUgMTN2MThoNzV2LTE4aC03NXogbTI1MC0xM3YtMTloLTgxdjE5aDgxeiBtLTgxIDEzdjE4aDgxdi0xOGgtODF6IG0yMTktMzJoLTUwdjE5aDUwdi0xOXogbTAgMzJoLTUwdjE4aDUwdi0xOHogbTAgMzFoLTUwdjZoLTk0di0xMmgtODF2MTJoLTg4di0xMmgtNzV2MTJoLTk0di0xMmgtODF2MTJoLTk0di0xMmgtNzV2MTJoLTkzdi0xMmgtNTB2MjVoODc1di0xOXogbTAgMzFoLTg3NXYxOWg4NzV2LTE5eiBtLTc1MC02MDB2NjNoNjI1di02M2gtNjI1eiBtNjI1IDEyNWgtNjI1djYzaDYyNXYtNjN6IG0tMTI1IDEyNWgtNTAwdjYzaDUwMHYtNjN6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InNlbGVjdCIgdW5pY29kZT0iJiN4ZTgwNjsiIGQ9Ik0wIDg1MHYtODc1aDBjMC0zOCAyNS02MyA2My02M2g2MjVjMzcgMCA2MiAyNSA2MiA2M2gwdjU2M2gyNTB2MzEyaC0xMDAweiBtNjMtNjJoNjI1di0xODhoLTYyNXYxODh6IG0wLTM3NWg2MjV2LTE4OGgtNjI1djE4OHogbTAtNDM4djE4OGg2MjV2LTE4OGgtNjI1eiBtODc1IDYyNWgtMTg4djE4OGgxODh2LTE4OHogbS04MTMgMTI1aDYzdi02MmgtNjN2NjJ6IG0wLTYyNWg2M3YtNjJoLTYzdjYyeiBtMTI1IDBoNjN2LTYyaC02M3Y2MnogbTEyNSAwaDYzdi02MmgtNjN2NjJ6IG0xODggMHYtNjJoLTYzdjYyaDYzeiBtLTQzOCAyNTBoNjN2LTYyaC02M3Y2MnogbTEyNSAwaDYzdi02MmgtNjN2NjJ6IG0xMjUgMGg2M3YtNjJoLTYzdjYyeiBtNDY5IDMwNmwtNjMgNjloMTE5bC01Ni02OXogbS03MTktMTgxdjYzaDYzdi02M2gtNjNsMCAweiBtMTI1IDB2NjNoNjN2LTYzaC02M2wwIDB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InRleHQtYXJlYSIgdW5pY29kZT0iJiN4ZTgwNzsiIGQ9Ik0xODggMTYzdjYyaDUwMHYtNjJoLTUwMGwwIDB6IG0wIDI1MGg2MjV2NjJoLTYyNXYtNjJsMCAweiBtMC02M3YtNjJoNjI1djYyaC02MjVsMCAweiBtNjI1IDI1MGgtNjI1di02Mmg2MjV2NjJsMCAweiBtMTg3LTYyNXY3NTBjMCAzOC0yNSA2My02MiA2M2gtODc1Yy0zOCAwLTYzLTI1LTYzLTYzdi03NTBjMC0zOCAyNS02MyA2My02M2g4NzVjMzcgMCA2MiAyNSA2MiA2M3ogbS02MiA3NTB2LTc1MGgtODc1djc1MGg4NzV6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InRleHQtaW5wdXQiIHVuaWNvZGU9IiYjeGU4MDg7IiBkPSJNOTM4IDYwMGgtNjU3djYzaDk0djYyaC05NC02Mi05NHYtNjJoOTR2LTYzaC0xNTZjLTM4IDAtNjMtMzEtNjMtNjJ2LTM3NWMwLTM4IDI1LTYzIDYzLTYzaDE1NnYtNjJoLTk0di02M2gyNTB2NjNoLTk0djYyaDY1N2MzNyAwIDYyIDI1IDYyIDYzdjM3NWMwIDMxLTI1IDYyLTYyIDYyeiBtLTg3NS00Mzd2Mzc1aDE1NnYtMzc1aC0xNTZ6IG04NzUgMGgtNjU3djM3NWg2NTd2LTM3NXoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0icGVuY2lsIiB1bmljb2RlPSImI3hlODA5OyIgZD0iTTIwMy03bDUwIDUxLTEzMSAxMzEtNTEtNTF2LTYwaDcydi03MWg2MHogbTI5MSA1MThxMCAxMi0xMiAxMi01IDAtOS00bC0zMDMtMzAycS00LTQtNC0xMCAwLTEyIDEzLTEyIDUgMCA5IDRsMzAzIDMwMnEzIDQgMyAxMHogbS0zMCAxMDdsMjMyLTIzMi00NjQtNDY1aC0yMzJ2MjMzeiBtMzgxLTU0cTAtMjktMjAtNTBsLTkzLTkzLTIzMiAyMzMgOTMgOTJxMjAgMjEgNTAgMjEgMjkgMCA1MS0yMWwxMzEtMTMxcTIwLTIyIDIwLTUxeiIgaG9yaXotYWR2LXg9Ijg1Ny4xIiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iZmlsZS1pbnB1dCIgdW5pY29kZT0iJiN4ZTgwYTsiIGQ9Ik00NjkgMTYzaC00Njl2LTI1MWg5Mzh2MjUxaC00Njl6IG00MDYtMTI1aC0xMjV2NjJoMTI1di02MnogbS02NTYgNTAwbDI1MCAyNTAgMjUwLTI1MGgtMTU2di0zMTNoLTE4OHYzMTN6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9ImhpZGRlbi1pbnB1dCIgdW5pY29kZT0iJiN4ZTgwYjsiIGQ9Ik02MyA1MzhsNjIgMCAwIDYyLTYyIDB6IG0xMjUgMGw2MiAwIDAgNjItNjIgMHogbTEyNSAwbDYyIDAgMCA2Mi02MiAweiBtMTI1IDBsNjIgMCAwIDYyLTYyIDB6IG0xMjUgMGw2MiAwIDAgNjItNjIgMHogbTEyNSAwbDYyIDAgMCA2Mi02MiAweiBtMTI1IDBsNjIgMCAwIDYyLTYyIDB6IG0tODEzLTYzbDYzIDAgMCA2My02MyAweiBtOTM4LTYybDYyIDAgMCA2Mi02MiAweiBtLTkzOC02M2w2MyAwIDAgNjMtNjMgMHogbTkzOC02Mmw2MiAwIDAgNjItNjIgMHogbS05MzgtNjNsNjMgMCAwIDYzLTYzIDB6IG05MzgtNjJsNjIgMCAwIDYyLTYyIDB6IG0tODEzLTYzbDYzIDAgMCA2My02MyAweiBtMTI1IDBsNjMgMCAwIDYzLTYzIDB6IG0xMjUgMGw2MyAwIDAgNjMtNjMgMHogbTEyNSAwbDYzIDAgMCA2My02MyAweiBtMTI1IDBsNjMgMCAwIDYzLTYzIDB6IG0xMjUgMGw2MyAwIDAgNjMtNjMgMHogbTEyNSAwbDYzIDAgMCA2My02MyAweiBtNjMgNDM4bDYyIDAgMCA2Mi02MiAweiBtLTkzOC00MzhsNjMgMCAwIDYzLTYzIDB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InJlc2l6ZS12ZXJ0aWNhbCIgdW5pY29kZT0iJiN4ZTgwYzsiIGQ9Ik0zOTMgNjcxcTAtMTQtMTEtMjV0LTI1LTEwaC03MXYtNTcyaDcxcTE1IDAgMjUtMTB0MTEtMjUtMTEtMjZsLTE0My0xNDJxLTEwLTExLTI1LTExdC0yNSAxMWwtMTQzIDE0MnEtMTAgMTEtMTAgMjZ0MTAgMjUgMjUgMTBoNzJ2NTcyaC03MnEtMTQgMC0yNSAxMHQtMTAgMjUgMTAgMjZsMTQzIDE0MnExMSAxMSAyNSAxMXQyNS0xMWwxNDMtMTQycTExLTExIDExLTI2eiIgaG9yaXotYWR2LXg9IjQyOC42IiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iYnV0dG9uLWlucHV0IiB1bmljb2RlPSImI3hlODBkOyIgZD0iTTYyIDUzOGw4NzUgMCAwIDYyLTg3NSAweiBtLTYyLTM3NWw2MyAwIDAgMzc1LTYzIDB6IG02My02M2w4NzUgMCAwIDYzLTg3NSAweiBtODc1IDYzbDYyIDAgMCAzNzUtNjIgMHogbS01NTIgMjgwcS0zNCAwLTU0LTI1LTE5LTI1LTE5LTY4IDAtNDMgMTktNjggMjAtMjUgNTQtMjUgMzMgMCA1MyAyNSAxOSAyNSAxOSA2OCAwIDQzLTE5IDY4LTIwIDI1LTUzIDI1eiBtMCAyNXE0OCAwIDc2LTMyIDI5LTMyIDI5LTg2IDAtNTQtMjktODYtMjgtMzItNzYtMzItNDggMC03NyAzMi0yOSAzMi0yOSA4NiAwIDU0IDI5IDg2IDI5IDMyIDc3IDMyeiBtMTUzLTRsMzEgMCAwLTk2IDEwMiA5NiA0MCAwLTExMy0xMDYgMTIxLTEyMi00MSAwLTEwOSAxMTAgMC0xMTAtMzEgMCAwIDIyOHoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iYXR0YWNoIiB1bmljb2RlPSImI3hlODBlOyIgZD0iTTc4MyA3N3EwLTY1LTQ0LTEwOXQtMTA5LTQ0cS03NSAwLTEzMSA1NWwtNDM0IDQzNHEtNjMgNjQtNjMgMTUxIDAgODggNjIgMTUwdDE1MCA2MnE4OCAwIDE1Mi02M2wzMzgtMzM4cTUtNSA1LTEyIDAtOS0xNy0yNnQtMjYtMTdxLTcgMC0xMyA1bC0zMzggMzM5cS00NCA0My0xMDEgNDMtNTkgMC0xMDAtNDJ0LTQwLTEwMXEwLTU4IDQyLTEwMWw0MzMtNDMzcTM1LTM2IDgxLTM2IDM2IDAgNTkgMjR0MjQgNTlxMCA0Ni0zNiA4MWwtMzI0IDMyNHEtMTQgMTQtMzMgMTQtMTYgMC0yNy0xMXQtMTEtMjdxMC0xOCAxNC0zM2wyMjktMjI4cTYtNiA2LTEzIDAtOS0xOC0yNnQtMjYtMTdxLTcgMC0xMiA1bC0yMjkgMjI5cS0zNSAzNC0zNSA4MyAwIDQ2IDMyIDc4dDc3IDMycTQ5IDAgODMtMzZsMzI1LTMyNHE1NS01NCA1NS0xMzF6IiBob3Jpei1hZHYteD0iNzg1LjciIC8+CjwvZm9udD4KPC9kZWZzPgo8L3N2Zz4=) format("svg");font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:form-builder-font;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.frmb .field-actions a:hover,.frmb li .close-field:hover{text-decoration:none}.icon-autocomplete:before{content:'\e800'}.icon-calendar:before{content:'\e801'}.icon-checkbox:before{content:'\e802'}.icon-checkbox-group:before{content:'\e803'}.icon-radio-group:before{content:'\e804'}.icon-rich-text:before{content:'\e805'}.icon-select:before{content:'\e806'}.icon-text-area:before{content:'\e807'}.icon-text-input:before{content:'\e808'}.icon-pencil:before{content:'\e809'}.icon-file-input:before{content:'\e80a'}.icon-hidden-input:before{content:'\e80b'}.icon-resize-vertical:before{content:'\e80c'}.icon-button-input:before{content:'\e80d'}.icon-attach:before{content:'\e80e'}@-webkit-keyframes PLACEHOLDER{0%{height:1px}100%{height:15px}}.cb-wrap{width:26%}.cb-wrap h4{margin-top:0;color:#666}.cb-wrap .save:hover{color:#08fe00}@media (max-width:481px){.cb-wrap{width:64px}.cb-wrap h4{display:none}}.frmb-control li{cursor:move;list-style:none;margin:0 0 3px;padding:10px;text-align:left;background:#fff;-webkit-user-select:none;user-select:none}.frmb-control li:first-child{border-radius:5px 5px 0 0}.frmb-control li:last-child{border-radius:0 0 5px 5px}.frmb-control li:before{margin-right:10px;font-size:16px}.frmb-control li:hover{background-color:#f2f2f2}.frmb-control li.ui-state-highlight{width:0;overflow:hidden;padding:0;margin:0;border:0}.frmb-control li.smallme{-webkit-transform:scale(.2);transform:scale(.2)}.frmb-control li.ui-sortable-helper{border-radius:5px;-webkit-transition:box-shadow 250ms,-webkit-transform 250ms;transition:box-shadow 250ms,-webkit-transform 250ms;transition:box-shadow 250ms,transform 250ms;transition:box-shadow 250ms,transform 250ms,-webkit-transform 250ms;-webkit-transform:scale(1.1);transform:scale(1.1);box-shadow:2px 2px 6px 0 #666;border:1px solid #fff}.frmb-control li.moving{opacity:.6}@media (max-width:481px){.frmb-control li:before{font-size:30px}.frmb-control li span{display:none}}.frmb-control{margin:0;padding:0}.form-actions .clear-all:hover{color:#fff}.frmb{list-style-type:none;min-height:200px;margin:0 6px 0 0;padding:0;-webkit-transition:background-color .5s ease-in-out;transition:background-color .5s ease-in-out}.frmb.removing{overflow:hidden}.empty .frmb{border:3px dashed #ccc;margin-right:5px;background-color:rgba(255,255,255,.25)}.frmb li{padding:6px;clear:both;margin-left:0;margin-bottom:3px;background-color:#fff;-webkit-transition:background-color 250ms ease-in-out,margin-top .5s;transition:background-color 250ms ease-in-out,margin-top .5s}.frmb li.hidden-field{background-color:rgba(255,255,255,.6)}.frmb li:first-child{border-top-right-radius:5px;border-top-left-radius:5px}.frmb li:first-child .field-actions .btn:last-child{border-radius:0 5px 0 0}.frmb li:last-child{border-bottom-right-radius:5px;border-bottom-left-radius:5px}.frmb li:hover{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.frmb li:hover li :hover{background:#fefefe}@keyframes PLACEHOLDER{0%{height:0}100%{height:15px}}.frmb li.frmb-placeholder,.frmb li.ui-state-highlight{height:0;padding:0;background:-webkit-radial-gradient(center ellipse,#545454 0,transparent 75%);background:radial-gradient(ellipse at center,#545454 0,transparent 75%);border:0;-webkit-clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);visibility:visible;overflow:hidden;margin-bottom:3px;-webkit-animation:PLACEHOLDER 250ms forwards;animation:PLACEHOLDER 250ms forwards}.frmb li.moving,.frmb li.ui-sortable-helper{-webkit-transition:box-shadow .5s ease-in-out;transition:box-shadow .5s ease-in-out;box-shadow:2px 2px 6px 0 #666;border:1px solid #fff;border-radius:5px}.frmb li.disabled{z-index:1}.frmb li.disabled [type=checkbox]{float:left;margin-right:10px}.frmb li.disabled h2{border-bottom:0 none}.frmb li.disabled label{font-size:12px;color:#666}.frmb li.disabled .prev-holder{cursor:default;line-height:28px;padding-left:5px}.frmb li .close-field{position:absolute;color:#666;left:50%;bottom:6px;background:#fff;border-top:1px solid #d7d7d7;border-left:1px solid #d7d7d7;border-right:1px solid #D7D7D7;-webkit-transform:translateX(-50%);transform:translateX(-50%);padding:0 5px;border-top-right-radius:3px;border-top-left-radius:3px;cursor:pointer;-webkit-transition:background-color 250ms ease-in-out;transition:background-color 250ms ease-in-out}.frmb li.delete:hover,.frmb li.delete:hover .close-field,.frmb li.deleting,.frmb li.deleting .close-field,.frmb li:hover li.delete:hover,.frmb li:hover li.delete:hover .close-field{background-color:#fdd}.frmb li.deleting{z-index:20;pointer-events:none}.frmb.disabled{padding:0 5px}.frmb.disabled :hover{border-color:transparent}.frmb.disabled .form-element{float:none;margin-bottom:10px;overflow:visible;padding:5px 0;position:relative}.frmb .frm-holder{display:none}.frmb .tooltip{left:20px}.frmb .prev-holder{display:block;margin-top:12px}.frmb .prev-holder input[type=color]{width:60px;padding:2px;display:inline-block}.frmb .prev-holder input[type=date]{width:auto}.frmb .prev-holder select[multiple]{height:auto}.frmb .required-asterisk{display:none}.frmb .field-label,.frmb .legend{color:#666;margin-bottom:5px}.frmb .disabled .field-label{display:block}.frmb .button-field .field-label{display:none}.frmb .field-actions{position:absolute;top:0;right:0}.frmb .field-actions .btn{display:inline-block;width:32px;height:32px;padding:0;opacity:0;border-radius:0;border-color:#b3b3b3;color:#b3b3b3;line-height:32px;font-size:16px;border-width:0 0 1px 1px}.frmb .field-actions .btn:first-child{border-bottom-left-radius:5px}.frmb .field-actions .toggle-form{font-size:.85em;background-color:rgba(255,255,255,.75)}.frmb .field-actions .toggle-form:hover{color:#000}.frmb .field-actions .del-button:hover{background-color:#c66865;color:#fff}.stage-wrap{position:relative;float:left;width:74%}@media (max-width:481px){.stage-wrap{width:calc(100% - 64px)}}.stage-wrap .action-links{width:calc(100% - 141px);display:none;float:right;overflow:hidden;text-align:right}.stage-wrap.empty:after{content:attr(data-content);position:absolute;text-align:center;top:50%;left:0;width:100%;margin-top:-1em}.stage-wrap .action-links .active{font-weight:700;color:#000}.option-actions{text-align:right}.sortable-options-wrap{width:81.33333333%;display:inline-block}ol.sortable-options{display:inline-block;width:100%;margin-left:2%;background:#b3b3b3;margin-bottom:0;border-radius:5px;list-style:none;padding:0}ol.sortable-options li{cursor:move;margin:1px}.tooltip-element,[tooltip]:hover:after{cursor:default;font-size:12px;color:#fff}ol.sortable-options li:nth-child(1) .remove,ol.sortable-options li:nth-child(2) .remove{display:none}ol.sortable-options li .remove{position:absolute;opacity:1;right:14px;height:17px;width:17px;line-height:17px;text-align:center;top:14px;font-size:18px;padding:0;color:#C10000}ol.sortable-options li .remove:hover{background-color:#C10000;text-decoration:none;color:#fff}ol.sortable-options input[type=checkbox],ol.sortable-options input[type=radio]{margin:0;width:7%}ol.sortable-options input[type=text]{width:calc(44.5% - 17px);margin:0 1%;float:none}.form-field .form-group{width:100%;clear:left;float:none}.form-field .form-group input[type=checkbox]{margin:12px 5px 0 2%}.form-elements .field-options .add-area .add{clear:both}.form-elements{padding:10px 5px;background:#f7f7f7;border-radius:3px;margin:12px 0 0;border:1px solid #d7d7d7}.form-elements input[type=text],.form-elements select{width:81.33333333%;-webkit-transition:background 250ms ease-in-out;transition:background 250ms ease-in-out;margin-left:2%;padding:6px 12px;border:1px solid #AFAFAB;background-color:#fff;float:left}.col-md-6 .form-elements input[type=text],.col-md-6 .form-elements select,.col-md-8 .form-elements input[type=text],.col-md-8 .form-elements select{width:100%}.form-elements .btn-group{margin-left:2%}.button-field .form-elements{margin-top:32px}[tooltip]{position:relative}[tooltip]:hover:after{background:#262626;background:rgba(0,0,0,.9);border-radius:5px 5px 5px 0;bottom:23px;content:attr(tooltip);padding:10px 5px;position:absolute;z-index:98;left:2px;width:230px;text-shadow:none;line-height:1.5em}.form-wrap:after,[tooltip]:hover:before{content:""}[tooltip]:hover:before{border:solid;border-color:#222 transparent;border-width:6px 6px 0;bottom:17px;left:2px;position:absolute;z-index:99;cursor:default}.tooltip-element{visibility:visible;background:#000;width:16px;height:16px;border-radius:8px;display:inline-block;text-align:center;line-height:16px;margin:0 5px}.kc-toggle{position:relative;margin:4px 0 0 2px;width:60px;height:21px;border-radius:3px;cursor:pointer;overflow:hidden;display:inline-block;background:#e9e9e9;border:1px solid #cbcbcb;vertical-align:bottom;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kc-toggle .kct-inner{position:absolute;top:0;left:-28px;width:115px;height:100%;-webkit-transition:left 150ms ease;transition:left 150ms ease}.kc-toggle.on .kct-inner{background:#e2e2e2;background:-webkit-linear-gradient(top,#e2e2e2 0,#fff 100%);background:linear-gradient(to bottom,#e2e2e2 0,#fff 100%);left:0}.kc-toggle input{display:none;position:absolute;z-index:-1;opacity:0;margin:0;padding:0;width:100%;height:100%}.kct-handle,.kct-off,.kct-on{position:relative}.kc-toggle .kct-on{color:#12a912}.kct-off{color:#666}.kct-handle,.kct-off,.kct-on{width:28px;height:100%;font-family:Arial,Tahoma,sans-serif;font-size:12px;text-align:center;line-height:22px;font-weight:700;float:left}.kct-handle{height:17px;background:#fff;background:-webkit-linear-gradient(top,#fff 0,#cecece 100%);background:linear-gradient(to bottom,#fff 0,#cecece 100%);border:1px solid #999;font-weight:100;color:#4b4b4b;text-shadow:none;border-radius:3px;margin:1px}textarea.idea-template{display:none;width:617px;color:#fefefe;font:13px/19px courier;padding-left:40px;height:1055px}.template-textarea-wrap{display:none}.form-wrap:after{display:table;clear:both}.cb-wrap,.stage-wrap{vertical-align:top}.action-links .action-links-inner{overflow:hidden;width:0;height:20px;-webkit-transition:width 250ms;transition:width 250ms}.action-links .dev-mode-link{-webkit-transition:color 250ms;transition:color 250ms;color:#666;cursor:pointer;padding-right:2px}.stage-wrap h4{margin-top:0;color:#666}.action-links a.clear-all:hover,.del-button:hover,ul.frmb span.required{color:#C10000}.action-links a{color:#666}.form-elements input[type=text].error{border-radius:0;border:1px solid #C10000}.form-elements input[type=text].fld-maxlength{width:10%}.form-elements input.field_error{background:#fefefe;border:1px solid #afafab}.form-elements .false-label,.form-elements label{width:16.66666667%;padding-top:7px;margin-bottom:0;text-align:right;font-weight:700;float:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-md-6 .form-elements .false-label,.col-md-6 .form-elements label,.col-md-8 .form-elements .false-label,.col-md-8 .form-elements label{display:block}.form-elements label.multiple,.form-elements label.required-label,.form-elements label.roles-label,.form-elements label.toggle-label{text-align:left;float:none;margin-bottom:-3px;font-weight:400;width:calc(81.3333% - 23px)}.form-elements label em{display:block;font-weight:400;font-size:.75em}.form-elements label.maxlength-label{line-height:1em}.form-group .available-roles{display:none;padding:5px 10px;margin:5px 0 10px 133px;width:434px;background:#e6e6e6;box-shadow:inset 0 0 2px 0 #999}.form-elements .available-roles label{font-weight:400;width:auto;float:none;display:inline}.form-elements .available-roles input{display:inline;top:auto}.form-elements,.form-group,.multi-row span,textarea{display:block}.form-elements:after,.form-group:after{content:".";display:block;height:0;clear:both;visibility:hidden}.form-elements .field-options div:hover,.frmb .legend,.frmb .prev-holder,.frmb .prev-holder *{cursor:move}.prev-holder input[type=checkbox],.prev-holder input[type=radio]{margin-right:5px}.frmb-tt{position:absolute;border:1px solid #262626;background-color:#666;border-radius:5px;padding:5px;color:#fff;z-index:20;text-align:left;font-size:12px;pointer-events:none}.frmb-tt:after,.frmb-tt:before{content:'';position:absolute;border-style:solid;border-width:10px 10px 0;border-color:#666 transparent;display:block;width:0;z-index:1;margin-left:-10px;bottom:-10px;left:20px}.frmb-tt a{text-decoration:underline;color:#fff}.fb-mobile .frmb li .del-button,.fb-mobile .frmb li .toggle-form,.frmb li:hover .del-button,.frmb li:hover .toggle-form{opacity:1}.fresh .frmb .legend .element-info{display:inline-block;visibility:visible;line-height:12px;margin-left:6px}.frmb-xml pre.ui-dialog-content{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;font-size:12px;padding:0 30px;margin-top:0}.action-links a.export-xml:hover,.toggle-form.closed:hover{color:#6fc245}a.btn.toggle-form{margin-left:5px;opacity:0}a.btn.toggle-form:hover{border-color:#ccc}a.btn.toggle-form:before{margin:0}.formb-field-vars .copy-var{display:inline-block;width:24px;height:24px;background:#999;text-indent:-9999px}.ite-warning{box-shadow:1px 1px 4px 0 rgba(50,50,50,.5);border-radius:0;border:1px solid #ddd;font-size:12px;line-height:1.5em}.ite-warning .ui-dialog-buttonpane{height:27px}.ite-warning button{color:#4479B9;margin:0}.ite-warning button:focus{outline:0;font-weight:700}.ite-warning button.cancel:before{content:"|";margin-right:15px;padding:0}.ite-warning .ui-dialog-content{padding:0 15px 10px}.ite-warning .ui-dialog-titlebar-close{display:none}.ite-warning .ui-widget-header{height:15px}.ite-warning h3{color:#666;margin-bottom:10px}.ite-warning button{background:0 0;padding:2px 5px}.required-asterisk{display:none;color:#C10000}.ui-button .ui-button-text{line-height:0}.form-builder-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:none;z-index:10}.form-builder-overlay.visible{display:block}.form-builder-dialog{position:absolute;border-radius:5px;background:#fff;z-index:20;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);top:0;left:0;padding:10px;box-shadow:0 3px 10px #000}.form-builder-dialog h3{margin-top:0}.form-builder-dialog.data-dialog{width:65%;background-color:#23241f}.form-builder-dialog.data-dialog pre{background:0 0;border:0;box-shadow:none;margin:0;color:#f2f2f2}.form-builder-dialog.positioned{-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.form-builder-dialog.positioned .button-wrap:before{content:'';width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-top:10px solid #fff;position:absolute;left:50%;top:100%;-webkit-transform:translate(-50%,10px);transform:translate(-50%,10px)}.form-builder-dialog .button-wrap{position:relative;margin-top:10px;text-align:right;clear:both}.form-builder-dialog .button-wrap .btn{margin-left:10px} \ No newline at end of file diff --git a/demo/assets/css/form-render.css b/demo/assets/css/form-render.css index b25dc2a3c..362473217 100644 --- a/demo/assets/css/form-render.css +++ b/demo/assets/css/form-render.css @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ * { diff --git a/demo/assets/css/form-render.min.css b/demo/assets/css/form-render.min.css index af9d1b341..49ceb060b 100644 --- a/demo/assets/css/form-render.min.css +++ b/demo/assets/css/form-render.min.css @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ .btn,.btn-group{display:inline-block;vertical-align:middle}.btn-group>.btn,.input-group .form-control{float:left;position:relative}.btn,.btn.active,.btn.btn-active,.btn:active,.form-control{background-image:none}.btn-group,.btn-group>.btn,.input-group,.kc-toggle{position:relative}*{box-sizing:border-box}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}textarea{overflow:auto}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-group .input-group .form-control:last-child,.btn-group .input-group-addon:last-child,.btn-group .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.btn-group .input-group-btn:first-child>.btn:not(:first-child),.btn-group .input-group-btn:last-child>.btn,.btn-group .input-group-btn:last-child>.btn-group>.btn,.btn-group .input-group-btn:last-child>.dropdown-toggle,.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn{color:#fff;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn.btn-sm,.btn.btn-xs{font-size:12px;line-height:1.5;border-radius:3px}.btn.btn-sm{padding:5px 10px}.btn.btn-xs{padding:1px 5px}.btn-primary{background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.btn-active,.btn-primary:active,.btn-primary:hover{background-color:#286090;border-color:#204d74}.btn-danger{background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover{background-color:#c9302c;border-color:#ac2925}.btn-default{background-color:#fff;border-color:#ccc}.btn-success{background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover{background-color:#449d44;border-color:#398439}.btn-info{background-color:#5bc0de;border-color:#46b8da}.btn-info:hover{background-color:#31b0d5;border-color:#269abc}.btn-warning{background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover{background-color:#ec971f;border-color:#d58512}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.input-group .form-control{z-index:2;width:100%;margin-bottom:0}.input-group{display:table;border-collapse:separate}.form-control,output{display:block;font-size:14px;line-height:1.42857143;color:#555}textarea.form-control{height:auto}.form-control{height:34px;width:100%;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-group{margin-bottom:15px}.pull-right{float:right}.pull-left{float:left}.kc-toggle{margin:4px 0 0 2px;width:60px;height:21px;border-radius:3px;cursor:pointer;overflow:hidden;display:inline-block;background:#e9e9e9;border:1px solid #cbcbcb;vertical-align:bottom;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kc-toggle .kct-inner{position:absolute;top:0;left:-28px;width:115px;height:100%;-webkit-transition:left 150ms ease;transition:left 150ms ease}.kc-toggle.on .kct-inner{background:#e2e2e2;background:-webkit-linear-gradient(top,#e2e2e2 0,#fff 100%);background:linear-gradient(to bottom,#e2e2e2 0,#fff 100%);left:0}.kc-toggle input{display:none;position:absolute;z-index:-1;opacity:0;margin:0;padding:0;width:100%;height:100%}.kct-handle,.kct-off,.kct-on,[tooltip]{position:relative}.kc-toggle .kct-on{color:#12a912}.kct-off{color:#666}.kct-handle,.kct-off,.kct-on{width:28px;height:100%;font-family:Arial,Tahoma,sans-serif;font-size:12px;text-align:center;line-height:22px;font-weight:700;float:left}.kct-handle{height:17px;background:#fff;background:-webkit-linear-gradient(top,#fff 0,#cecece 100%);background:linear-gradient(to bottom,#fff 0,#cecece 100%);border:1px solid #999;font-weight:100;color:#4b4b4b;text-shadow:none;border-radius:3px;margin:1px}.form-group .required{color:#C10000}[tooltip]:hover:after{background:#262626;background:rgba(0,0,0,.9);border-radius:5px 5px 5px 0;bottom:23px;color:#fff;content:attr(tooltip);padding:10px 5px;position:absolute;z-index:98;left:2px;width:230px;text-shadow:none;font-size:12px;line-height:1.5em}[tooltip]:hover:before{border:solid;border-color:#222 transparent;border-width:6px 6px 0;bottom:17px;content:"";left:2px;position:absolute;z-index:99}.tooltip-element{color:#fff;background:#000;width:16px;height:16px;border-radius:8px;display:inline-block;text-align:center;line-height:16px;margin:0 5px;font-size:12px}.form-control[type=color]{width:60px;padding:2px;display:inline-block}.form-control[multiple]{height:auto} \ No newline at end of file diff --git a/demo/assets/js/form-builder.js b/demo/assets/js/form-builder.js index a4a6a92b3..aa3e6ac72 100644 --- a/demo/assets/js/form-builder.js +++ b/demo/assets/js/form-builder.js @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ 'use strict'; diff --git a/demo/assets/js/form-builder.min.js b/demo/assets/js/form-builder.min.js index 5c7c6b20e..cee0f8596 100644 --- a/demo/assets/js/form-builder.min.js +++ b/demo/assets/js/form-builder.min.js @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ "use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},formBuilderHelpers=function(e,t){var a={doCancel:!1};return t.events=formBuilderEvents(e,a),a.attrString=function(e){var t=[];for(var l in e)e.hasOwnProperty(l)&&(l=a.safeAttr(l,e[l]),t.push(l.name+l.value));return t.join(" ")},a.hyphenCase=function(e){return e=e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}),e.replace(/\s/g,"-").replace(/^-+/g,"")},a.safeAttrName=function(e){var t={className:"class"};return t[e]||a.hyphenCase(e)},a.safeAttr=function(e,t){return e=a.safeAttrName(e),t=window.JSON.stringify(t),t=t?"="+t:"",{name:e,value:t}},a.mobileClass=function(){var e="";return function(t){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=" fb-mobile")}(navigator.userAgent||navigator.vendor||window.opera),e},a.startMoving=function(e,t){e=e,t.item.show().addClass("moving"),a.startIndex=$("li",this).index(t.item)},a.stopMoving=function(e,t){e=e,t.item.removeClass("moving"),a.doCancel&&($(t.sender).sortable("cancel"),$(this).sortable("cancel")),a.save(),a.doCancel=!1},a.beforeStop=function(t,l){t=t;var s=document.getElementById(e.formID),o=s.children.length-1,n=[];a.stopIndex=l.placeholder.index()-1,l.item.parent().hasClass("frmb-control")&&n.push(!0),e.prepend&&n.push(0===a.stopIndex),e.append&&n.push(a.stopIndex+1===o),a.doCancel=n.some(function(e){return e===!0})},a.safename=function(e){return e.replace(/\s/g,"-").replace(/[^a-zA-Z0-9\-]/g,"").toLowerCase()},a.forceNumber=function(e){return e.replace(/[^0-9]/g,"")},a.initTooltip=function(e){var t=e.find(".tooltip");e.mouseenter(function(){t.outerWidth()>200&&t.addClass("max-width"),t.css("left",e.width()+14),t.stop(!0,!0).fadeIn("fast")}).mouseleave(function(){e.find(".tooltip").stop(!0,!0).fadeOut("fast")}),t.hide()},a.xmlSave=function(e){var a=$(e).toXML();return window.JSON.stringify(a)===window.JSON.stringify(t.formData)?!1:void(t.formData=a)},a.jsonSave=function(){e.notify.warning("json data not available yet")},a.save=function(){var l=a.getElement(),s=document.getElementById(e.formID),o={xml:a.xmlSave,json:a.jsonSave};o[e.dataType](s),l&&(l.value=t.formData,window.jQuery?$(l).trigger("change"):l.onchange())},a.getElement=function(){var l=!1;return t.element&&(l=t.element,l.id||a.makeId(l),l.onchange||(l.onchange=function(){e.notify.success(e.messages.formUpdated)})),l},a.makeId=function(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0],t=(new Date).getTime();return e.tagName+"-"+t},a.updatePreview=function(e){var t=e.data("fieldData")||{},l=e.attr("class");if(-1===l.indexOf("ui-sortable-handle")){var s,o=$(".prev-holder",e),n=$(".fld-subtype",e).val();l=l.replace("-field form-field",""),s=n?n:l;var i,r={type:s,label:$(".fld-label",e).val()},c=$(".fld-maxlength",e);c&&(r.maxlength=c.val()),r.className=$(".fld-className",e).val()||t.className||"";var d=$(".fld-placeholder",e).val();d&&(r.placeholder=d);var p=$(".btn-style",e).val();p&&(r.style=p),"checkbox"===l&&(r.toggle=$(".checkbox-toggle",e).is(":checked")),l.match(/(select|checkbox-group|radio-group)/)&&(r.values=[],r.multiple=$('[name="multiple"]',e).is(":checked"),$(".sortable-options li",e).each(function(){var e={};e.selected=$(".option-selected",this).is(":checked"),e.value=$(".option-value",this).val(),e.label=$(".option-label",this).val(),r.values.push(e)})),r.className=a.classNames(e,r),e.data("fieldData",r),i=a.fieldPreview(r),o.html(i),$("input[toggle]",o).kcToggle()}},a.fieldPreview=function(t){var l,s="",o=(new Date).getTime(),n=t.toggle?"toggle":"",i=a.attrString(t);switch(t.type){case"textarea":case"rich-text":s="";break;case"button":case"submit":s="";break;case"select":var r="",c=t.multiple?"multiple":"";for(t.values.reverse(),t.placeholder&&(r+=""),l=t.values.length-1;l>=0;l--){var d=t.values[l].selected&&!t.placeholder?"selected":"";r+='"}s="<"+t.type+' class="'+t.className+'" '+c+">"+r+"";break;case"checkbox-group":case"radio-group":var p=t.type.replace("-group",""),u=p+"-"+o;for(t.values.reverse(),l=t.values.length-1;l>=0;l--){var m=t.values[l].selected?"checked":"",f=p+"-"+o+"-"+l;s+='
"}break;case"text":case"password":case"email":case"date":case"file":s="";break;case"color":s=' '+e.messages.selectColor;break;case"hidden":case"checkbox":s='";break;case"autocomplete":s='';break;default:s="<"+t.type+">"}return s},a.updateMultipleSelect=function(){$(document.getElementById(e.formID)).on("change",'input[name="multiple"]',function(){var e=$(this).parents(".field-options:eq(0)").find(".sortable-options input.option-selected");this.checked?e.each(function(){$(this).prop("type","checkbox")}):e.each(function(){$(this).removeAttr("checked").prop("type","radio")})})},a.debounce=function(e){var t,a=arguments.length<=1||void 0===arguments[1]?250:arguments[1],l=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];return function(){var s=this,o=arguments,n=function(){t=null,l||e.apply(s,o)},i=l&&!t;clearTimeout(t),t=setTimeout(n,a),i&&e.apply(s,o)}},a.htmlEncode=function(e){return $("
").text(e).html()},a.htmlDecode=function(e){return $("
").html(e).text()},a.validateForm=function(){var t=$(document.getElementById(e.formID)),a=[];$('input[name="label"], input[type="text"].option',t).each(function(){if(""===$(this).val()){var t=$(this).parents("li.form-field"),l=$(this);a.push({field:t,error:e.messages.labelEmpty,attribute:l})}}),a.length&&(alert("Error: "+a[0].error),$("html, body").animate({scrollTop:a[0].field.offset().top},1e3,function(){var e=$(".toggle-form",a[0].field).attr("id");$(".toggle-form",a[0].field).addClass("open").parent().next(".prev-holder").slideUp(250),$("#"+e+"-fld").slideDown(250,function(){a[0].attribute.addClass("error")})}))},a.disabledTT={className:"frmb-tt",add:function(t){var l=e.messages.fieldNonEditable;if(l){var s=a.markup("p",l,{className:a.disabledTT.className});t.append(s)}},remove:function(e){$(".frmb-tt",e).remove()}},a.classNames=function(e,t){var a=["checkbox","checkbox-group","radio-group","button"],l=t.type,s=t.style,o=[],n={button:"btn",submit:"btn"},i=e[0].querySelector(".fld-className").value,r=n[l];return i&&o.push(i),r?(o.push(r),s&&o.push(r+"-"+s)):-1===a.indexOf(l)&&o.push("form-control"),o.join(" ")},a.markup=function(e){var t=arguments.length<=1||void 0===arguments[1]?"":arguments[1],l=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],s=void 0,o=document.createElement(e),n=function(e){return Array.isArray(e)?"array":"undefined"==typeof e?"undefined":_typeof(e)},i={string:function(e){o.innerHTML=e},object:function(e){return o.appendChild(e)},array:function(e){for(var t=0;t').insertAfter(t).append(t);o.toggleClass("on",t.is(":checked"));var n='
'+s.labels.on+"
",i='
'+s.labels.off+"
",r='
',c='
'+n+r+i+"
";o.append(c),o.click(function(){t.attr("checked",!t.attr("checked")),e(this).toggleClass("on")})};e.fn.kcToggle=function(a){var l=this;return l.each(function(){var l=e(this);if(!l.data("kcToggle")){var s=new t(l,a);l.data("kcToggle",s)}})}}(jQuery),function(e){var t=function(t,a){var l=this,s={dataType:"xml",disableFields:{},append:!1,prepend:!1,defaultFields:[],fieldRemoveWarn:!1,roles:{1:"Administrator"},serializePrefix:"frmb",messages:{addOption:"Add Option",allFieldsRemoved:"All fields were removed.",allowSelect:"Allow Select",autocomplete:"Autocomplete",button:"Button",cannotBeEmpty:"This field cannot be empty",checkboxGroup:"Checkbox Group",checkbox:"Checkbox",checkboxes:"Checkboxes",className:"Class",clearAllMessage:"Are you sure you want to clear all fields?",clearAll:"Clear",close:"Close",copy:"Copy To Clipboard",dateField:"Date Field",description:"Help Text",descriptionField:"Description",devMode:"Developer Mode",editNames:"Edit Names",editorTitle:"Form Elements",editXML:"Edit XML",fieldDeleteWarning:!1,fieldVars:"Field Variables",fieldNonEditable:"This field cannot be edited.",fieldRemoveWarning:"Are you sure you want to remove this field?",fileUpload:"File Upload",formUpdated:"Form Updated",getStarted:"Drag a field from the right to this area",hide:"Edit",hidden:"Hidden Input",label:"Label",labelEmpty:"Field Label cannot be empty",limitRole:"Limit access to one or more of the following roles:",mandatory:"Mandatory",maxlength:"Max Length",minOptionMessage:"This field requires a minimum of 2 options",name:"Name",no:"No",off:"Off",on:"On",option:"Option",optional:"optional",optionLabelPlaceholder:"Label",optionValuePlaceholder:"Value",optionEmpty:"Option value required",paragraph:"Paragraph",placeholder:"Placeholder",placeholders:{value:"Value",label:"Label",text:"",textarea:"",email:"Enter you email",placeholder:"",className:"space separated classes",password:"Enter your password"},preview:"Preview",radioGroup:"Radio Group",radio:"Radio",removeMessage:"Remove Element",remove:"×",required:"Required",richText:"Rich Text Editor",roles:"Access",save:"Save",selectOptions:"Options",select:"Select",selectColor:"Select Color",selectionsMessage:"Allow Multiple Selections",size:"Size",sizes:{xs:"Extra Small",sm:"Small",m:"Default",lg:"Large"},style:"Style",styles:{btn:{"default":"Default",danger:"Danger",info:"Info",primary:"Primary",success:"Success",warning:"Warning"}},subtype:"Type",subtypes:{text:["text","password","email","color"],button:["button","submit"]},text:"Text Field",textArea:"Text Area",toggle:"Toggle",warning:"Warning!",viewXML:"</>",yes:"Yes"},notify:{error:function(e){return console.error(e)},success:function(e){return console.log(e)},warning:function(e){return console.warn(e)}}};s.messages.subtypes.password=s.messages.subtypes.text,s.messages.subtypes.email=s.messages.subtypes.text,s.messages.subtypes.color=s.messages.subtypes.text,s.messages.subtypes.submit=s.messages.subtypes.button;var o=e.extend(!0,s,t),n=e(a),i="frmb-"+e("ul[id^=frmb-]").length++;o.formID=i,l.element=a;for(var r=e("
    ").attr("id",i).addClass("frmb"),c=formBuilderHelpers(o,l),d=1,p=i+"-control-box",u=[{label:o.messages.text,attrs:{type:"text",className:"text-input",name:"text-input"}},{label:o.messages.select,attrs:{type:"select",className:"select",name:"select"}},{label:o.messages.textArea,attrs:{type:"textarea",className:"text-area",name:"textarea"}},{label:o.messages.radioGroup,attrs:{type:"radio-group",className:"radio-group",name:"radio-group"}},{label:o.messages.hidden,attrs:{type:"hidden",className:"hidden-input",name:"hidden-input"}},{label:o.messages.fileUpload,attrs:{type:"file",className:"file-input",name:"file-input"}},{label:o.messages.dateField,attrs:{type:"date",className:"calendar",name:"date-input"}},{label:o.messages.checkboxGroup,attrs:{type:"checkbox-group",className:"checkbox-group",name:"checkbox-group"}},{label:o.messages.checkbox,attrs:{type:"checkbox",className:"checkbox",name:"checkbox"}},{label:o.messages.button,attrs:{type:"button",className:"button-input",name:"button"}},{label:o.messages.autocomplete,attrs:{type:"autocomplete",className:"autocomplete",name:"autocomplete"}}],m=e("
      ",{id:p,"class":"frmb-control"}),f=u.length-1;f>=0;f--){var v=e("
    • ",{"class":"icon-"+u[f].attrs.className,type:u[f].type,name:u[f].className,label:u[f].label});for(var g in u[f])u[f].hasOwnProperty(g)&&v.data(g,u[f][g]);var h=c.markup("span",u[f].label);v.html(h).appendTo(m)}var b="xml"===o.dataType?o.messages.viewXML:o.messages.viewJSON,y=c.markup("button",b,{id:i+"-view-data",type:"button",className:"view-data btn btn-default"}),k=c.markup("button",o.messages.clearAll,{id:i+"-clear-all",type:"button",className:"clear-all btn btn-default"}),x=c.markup("button",o.messages.save,{className:"btn btn-primary fb-save",id:i+"-save",type:"button"}),w=c.markup("div",[k,y,x],{className:"form-actions btn-group"}).outerHTML;r.sortable({cursor:"move",opacity:.9,revert:150,beforeStop:c.beforeStop,start:c.startMoving,stop:c.stopMoving,cancel:"input, select, .disabled, .form-group, .btn",placeholder:"frmb-placeholder"}),m.sortable({helper:"clone",opacity:.9,connectWith:r,cursor:"move",placeholder:"ui-state-highlight",start:c.startMoving,stop:c.stopMoving,revert:150,beforeStop:c.beforeStop,update:function(e,t){return c.doCancel?!1:(e=e,q(t.item,!0),void(c.doCancel=!0))}});var N=e("
      ",{id:i+"-stage-wrap","class":"stage-wrap"}),C=e("
      ",{id:i+"-form-wrap","class":"form-wrap form-builder"+c.mobileClass()});n.before(N).appendTo(N);var E=e("
      ",{id:i+"-cb-wrap","class":"cb-wrap"}).append(m[0],w);N.append(r,E),N.before(C),C.append(N,E);var T=c.debounce(function(){var t=e(this).parents(".form-field:eq(0)");c.updatePreview(t),c.save()});r.on("change blur keyup",".form-elements input, .form-elements select",T);var M=function(){var t=""!==n.val()?e.parseXML(n.val()):!1,a=e(t).find("field");if(a.length>0)l.formData=t,a.each(function(){q(e(this))});else if(!t)if(o.defaultFields.length){o.defaultFields.reverse();for(var s=o.defaultFields.length-1;s>=0;s--)I(o.defaultFields[s]);N.removeClass("empty")}else o.prepend||o.append||N.addClass("empty").attr("data-content",o.messages.getStarted);e("li.form-field:not(.disabled)",r).each(function(){c.updatePreview(e(this))}),S()},D=function(){var e={xml:M,json:function(){console.log("coming soon")}};e[o.dataType]()},S=function(){var t=[];if(o.prepend&&!e(".disabled.prepend",r).length){var a=c.markup("li",o.prepend,{className:"disabled prepend"});t.push(!0),r.prepend(a)}if(o.append&&!e(".disabled.append",r).length){var l=c.markup("li",o.append,{className:"disabled append"});t.push(!0),r.append(l)}t.some(function(e){return e===!0})&&N.removeClass("empty")};r.on("mousemove","li.disabled",function(t){e(".frmb-tt",this).css({left:t.offsetX-16,top:t.offsetY-34})}),r.on("mouseenter","li.disabled",function(){c.disabledTT.add(e(this))}),r.on("mouseleave","li.disabled",function(){c.disabledTT.remove(e(this))});var A=function(e){var t=(new Date).getTime();return e.data("attrs").name+"-"+t},q=function(e){var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],a=e.data("attrs")||{},l=a.type||e.attr("type"),s={};s.label=c.htmlEncode(e.attr("label")),s.name=t?A(e):a.name||e.attr("name"),s.role=e.attr("role"),s.required=e.attr("required"),s.maxlength=e.attr("maxlength"),s.toggle=e.attr("toggle"),s.multiple=l.match(/(checkbox-group)/),s.type=l,s.description=void 0!==e.attr("description")?c.htmlEncode(e.attr("description")):"",I(s),N.removeClass("empty")},L=function(e){P(o.messages.textArea,B(e),e)},O=function(e){var t=e.type||"text";P(o.messages[t],B(e),e)},$=function(t){t.values&&t.values.length||(t.values=[{selected:!0},{selected:!1}],t.values=t.values.map(function(e,t){return e.label=o.messages.option+" "+(t+1),e.value=c.hyphenCase(e.label),e}));var a="";for(a+=B(t),a+='
      ',a+='",a+='
      ',"select"===t.type&&(a+='
      ',a+='",a+='",a+="
      "),a+='
        ',f=0;f";var l=c.markup("a",o.messages.addOption,{className:"add add-opt"});a+=c.markup("div",l,{className:"option-actions"}).outerHTML,a+="
      ",a+="
      ",P(o.messages.select,a,t),e(".sortable-options").sortable()},I=function(e){var t={select:$,"rich-text":L,textarea:L,"radio-group":$,"checkbox-group":$};e=e||"",t[e.type]?t[e.type](e):O(e)},B=function _(t){var a,_=[],l=void 0!==t.role?t.role.split(","):[],s=c.markup("label",o.messages.label),n=c.markup("input",null,{type:"text",name:"label",value:t.label,className:"fld-label form-control"}),i=c.markup("div",[s,n],{className:"form-group label-wrap"});if(_.push(i.outerHTML),t.size=t.size||"m",t.style=t.style||"default","button"!==t.type){var r=c.markup("label",o.messages.description,{"for":"description-"+d}),p=c.markup("input",null,{type:"text",className:"fld-description form-control",name:"description",id:"description-"+d,value:t.description}),u=c.markup("div",[r,p],{"class":"form-group description-wrap"});_.push(u.outerHTML)}_.push(j(t.type)),_.push(F(t.style,t.type)),_.push(H("placeholder",t.type)),_.push(H("className")),_.push('
      '),_.push('
      '),_.push('
      "),_.push(' "),_.push('
      ");for(a in o.roles)-1===e.inArray(a,["date","4"])&&_.push('
      ");return _.push("
      "),e.inArray(t.type,["checkbox","select","checkbox-group","date","autocomplete","radio-group","hidden","button"])<0&&(_.push('
      "),_.push('
      ')),_.join("")},j=function(e){var t=o.messages.subtypes,a="";if(t[e]){var l="";a+='",a='
      '+l+" "+a+"
      "}return a},F=function(e,t){var a={button:"btn"},l=o.messages.styles[a[t]],s="";if(l){var n="";s+='',s+='
      ',Object.keys(o.messages.styles[a[t]]).forEach(function(l){var n=e===l?"active":"";s+='"}),s+="
      ",s='
      '+n+" "+s+"
      "}return s},H=function(e){var t=arguments.length<=1||void 0===arguments[1]?"":arguments[1],a=["text","textarea","select"],l=o.messages.placeholders,s=l[e]||"",n="",i=[];"placeholder"===e&&-1===a.indexOf(t)&&i.push(!0);var r=i.some(function(e){return e===!0});if(!r){var c="";n+='',n='
      '+c+" "+n+"
      "}return n},P=function(t,a,l){var s=e(a).find('input[name="label"]').val(),n=s?s:t,i=c.markup("a",o.messages.remove,{id:"del_"+d,className:"del-button btn delete-confirm",title:o.messages.removeMessage}),p=c.markup("a",null,{id:"frm-"+d,className:"toggle-form btn icon-pencil",title:o.messages.hide}),u=c.markup("div",[p,i],{className:"field-actions"}).outerHTML,m=l.required,f=l.toggle||void 0,v=""!==l.description?'?':"",g=u;g+='"+v+' *",g+=c.markup("div","",{className:"prev-holder"}).outerHTML,g+='
      ',g+='
      ',g+='
      ',g+="";var h=c.markup("input",null,{className:"required",type:"checkbox",name:"required-"+d,id:"required-"+d,value:1});h.defaultChecked="true"===m,g+=h.outerHTML,g+=c.markup("label",o.messages.required,{className:"required-label","for":"required-"+d}).outerHTML,g+="
      ","checkbox"===l.type&&(g+='
      ',g+="",g+='",g+="
      "),g+=a,g+=c.markup("a",o.messages.close,{className:"close-field"}).outerHTML,g+="
      ",g+="
      ";var b=c.markup("li",g,{"class":l.type+"-field form-field",id:"frm-"+d+"-item"}),y=e(b);y.data("fieldData",{attrs:l}),"undefined"!=typeof c.stopIndex?e("> li",r).eq(c.stopIndex).after(y):r.append(y),c.updatePreview(y),e(document.getElementById("frm-"+d+"-item")).hide().slideDown(250),d++},z=function(e,t,a,l){var s={selected:l?"checkbox":"radio"},n={selected:a,label:"",value:""},i=Object.assign(n,t),r=[];for(var d in i)if(i.hasOwnProperty(d)){var p={type:s[d]||"text","class":"option-"+d,placeholder:o.messages.placeholders[d],value:i[d],name:e},u=c.markup("input",null,p);"selected"===d&&(u.checked=i.selected),r.push(u)}var m={className:"remove btn",title:o.messages.removeMessage};r.push(c.markup("a",o.messages.remove,m));var f=c.markup("li",r);return f.outerHTML};r.on("click touchstart",".remove",function(t){var a=e(this).parents(".form-field:eq(0)");t.preventDefault();var l=e(this).parents(".sortable-options:eq(0)").children("li").length;2>=l?o.notify.error("Error: "+o.messages.minOptionMessage):e(this).parent("li").slideUp("250",function(){e(this).remove()}),T.call(a)}),r.on("touchstart","input",function(t){if(t.handled===!0)return!1;if("checkbox"===e(this).attr("type"))e(this).trigger("click");else{e(this).focus();var a=e(this).val();e(this).val(a)}}),r.on("click touchstart",".toggle-form",function(t){if(t.stopPropagation(),t.preventDefault(),t.handled===!0)return!1;var a=e(this).attr("id");c.toggleEdit(a+"-item"),t.handled=!0}),c.toggleEdit=function(t){var a=document.getElementById(t),l=e(".toggle-form",a),s=e(".frm-holder",a);l.toggleClass("open"),e(".prev-holder",a).slideToggle(250),s.slideToggle(250)},r.on("keyup change",'input[name="label"]',function(){e(".field-label",e(this).closest("li")).text(e(this).val())}),r.delegate("input.error","keyup",function(){e(this).removeClass("error")}),r.on("keyup",'input[name="description"]',function(){var t=e(this).parents(".form-field:eq(0)"),a=e(".tooltip-element",t),l=e(this).val();if(""!==l)if(a.length)a.attr("tooltip",l).css("display","inline-block");else{var s='?';e(".field-label",t).after(s)}else a.length&&a.css("display","none")}),c.updateMultipleSelect(),r.delegate('input[name="name"]',"keyup",function(){e(this).val(c.safename(e(this).val())),""===e(this).val()?e(this).addClass("field_error").attr("placeholder",o.messages.cannotBeEmpty):e(this).removeClass("field_error")}),r.delegate("input.fld-maxlength","keyup",function(){e(this).val(c.forceNumber(e(this).val()))}),r.on("click touchstart",".delete-confirm",function(t){t.preventDefault();var a=this.getBoundingClientRect(),l=document.body.getBoundingClientRect(),s={pageX:a.left+a.width/2,pageY:a.top-l.top-12},n=e(this).attr("id").replace(/del_/,""),i=e(document.getElementById("frm-"+n+"-item")),d=function(){i.slideUp(250,function(){i.removeClass("deleting"),i.remove(),c.save()})};if(document.addEventListener("modalClosed",function(){i.removeClass("deleting")},!1),o.fieldRemoveWarn){var p=c.markup("h3",o.messages.warning),u=c.markup("p",o.messages.fieldRemoveWarning);c.confirm([p,u],d,s),i.addClass("deleting")}else d(i);1===e("> li",r).length&&N.addClass("empty").attr("data-content",o.messages.getStarted)}),r.on("click",".style-wrap button",function(){var t=e(this).val(),a=e(this).parent(),l=a.prev(".btn-style");l.val(t),e(this).siblings(".btn").removeClass("active"),e(this).addClass("active"),T.call(a)}),r.on("click","input.required",function(){var t=e(this).parents("li.form-field").find(".required-asterisk");t.toggle()}),r.on("click",'input[name="enable_roles"]',function(){var t=e(this).siblings("div.available-roles"),a=e(this);t.slideToggle(250,function(){a.is(":checked")||e('input[type="checkbox"]',t).removeAttr("checked")})}),r.on("click",".add-opt",function(t){t.preventDefault();var a=e(this).parents(".field-options:eq(0)"),l=e('[name="multiple"]',a),s=e(".option-selected:eq(0)",a),o=!1;o=l.length?l.prop("checked"):"checkbox"===s.attr("type");var n=s.attr("name");e(".sortable-options",a).append(z(n,!1,!1,o)),c.updateMultipleSelect()}),r.on("click touchstart",".close-field",function(){var t=e(this).parents("li.form-field:eq(0)").attr("id");c.toggleEdit(t)}),r.on("mouseover mouseout",".remove, .del-button",function(){e(this).parents("li:eq(0)").toggleClass("delete")});var R=e(document.getElementById(i+"-view-data"));R.click(function(e){e.preventDefault();var t=c.htmlEncode(n.val()),a=c.markup("code",t,{className:"xml"}),l=c.markup("pre",a);c.dialog(l,null,"data-dialog")});var X=e(document.getElementById(i+"-clear-all"));return X.click(function(){var t=e("li.form-field"),a=this.getBoundingClientRect(),l=document.body.getBoundingClientRect(),s={pageX:a.left+a.width/2,pageY:a.top-l.top-12};t.length?c.confirm(o.messages.clearAllMessage,function(){c.removeAllfields(),o.notify.success(o.messages.allFieldsRemoved),c.save()},s):c.dialog("There are no fields to clear",{pageX:s.pageX,pageY:s.pageY})}),e(document.getElementById(i+"-save")).click(function(e){e.preventDefault(),c.save(),c.validateForm(e)}),n.parent().find('p[id*="ideaTemplate"]').remove(),n.wrap('
      '),D(),r.css("min-height",m.height()),document.dispatchEvent(l.events.loaded),l};e.fn.formBuilder=function(a){return this.each(function(){var l,s=this;if(e(s).data("formBuilder")){var o=e(s).parents(".form-builder:eq(0)"),n=e(s).clone();o.before(n),o.remove(),l=new t(a,n[0]),n.data("formBuilder",l)}else l=new t(a,s),e(s).data("formBuilder",l)})}}(jQuery),function(e){e.fn.toXML=function(t){var a={prepend:"",attributes:["class"]},l=e.extend(a,t),s="",o={};o.getType=function(t){var a=e(".fld-subtype",t).val()||t.attr("class").replace("-field form-field","");return a},o.hyphenCase=function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})},o.attrString=function(e){var t=[];for(var a in e)if(e.hasOwnProperty(a)&&e[a]){var l=a+'="'+e[a]+'"';t.push(l)}return t.join(" ")};var n=function(t){var a=[];return e(".sortable-options li",t).each(function(){var t=e(this),l='value="'+e(".option-value",t).val()+'"',s=e(".option-label",t).val(),o=e(".option-selected",t).is(":checked")?' selected="true"':""; diff --git a/demo/assets/js/form-render.js b/demo/assets/js/form-render.js index d7a350c65..79bda9325 100644 --- a/demo/assets/js/form-render.js +++ b/demo/assets/js/form-render.js @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ 'use strict'; @@ -279,11 +279,28 @@ var FormRender = function FormRender(options, element) { fieldMarkup = _helpers.markup('div', fieldMarkup, { className: 'form-group field-' + fieldAttrs.id }); + } else { + fieldMarkup = _helpers.markup('input', null, fieldAttrs); } return fieldMarkup; }; + /** + * Convert camelCase into lowercase-hyphen + * + * @param {string} str + * @return {string} + */ + _helpers.hyphenCase = function (str) { + str = str.replace(/[^\w\s\-]/gi, ''); + str = str.replace(/([A-Z])/g, function ($1) { + return '-' + $1.toLowerCase(); + }); + + return str.replace(/\s/g, '-').replace(/^-+/g, ''); + }; + _helpers.attrString = function (attrs) { var attributes = []; diff --git a/demo/assets/js/form-render.min.js b/demo/assets/js/form-render.min.js index 9a0219923..3ebdefd2b 100644 --- a/demo/assets/js/form-render.min.js +++ b/demo/assets/js/form-render.min.js @@ -1,7 +1,7 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ -"use strict";!function(e){var t=function(t,r){var n={theme:"fresh",labels:{off:"Off",on:"On"}},a=e.extend(n,r),o=e('
      ').insertAfter(t).append(t);o.toggleClass("on",t.is(":checked"));var i='
      '+a.labels.on+"
      ",l='
      '+a.labels.off+"
      ",s='
      ',c='
      '+i+s+l+"
      ";o.append(c),o.click(function(){t.attr("checked",!t.attr("checked")),e(this).toggleClass("on")})};e.fn.kcToggle=function(r){var n=this;return n.each(function(){var n=e(this);if(!n.data("kcToggle")){var a=new t(n,r);n.data("kcToggle",a)}})}}(jQuery);var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},FormRender=function(e,t){var r=this,n={destroyTemplate:!0,container:!1,dataType:"xml",formData:!1,label:{selectColor:"Select Color",noFormData:"No form data.",formRendered:"Form Rendered"},render:!0,notify:{error:function(e){return console.error(e)},success:function(e){return console.log(e)},warning:function(e){return console.warn(e)}}},a={},o=$.extend(n,e);a.getElement=function(){return t.id||(t.id=a.makeId(t)),document.getElementById(t.id)},a.makeId=function(e){var t=(new Date).getTime();return e.tagName+"-"+t},!o.formData&&t&&(t=a.getElement(),o.formData=t.value),a.markup=function(e){var t=arguments.length<=1||void 0===arguments[1]?"":arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],n=void 0,o=document.createElement(e),i=function(e){return Array.isArray(e)?"array":"undefined"==typeof e?"undefined":_typeof(e)},l={string:function(e){o.innerHTML=e},object:function(e){return o.appendChild(e)},array:function(e){for(var t=0;t*'),"hidden"!==i.type){l&&(l='?');var d=i.label||"";r='"}var u=i.label;delete i.label,delete i.description;var f=a.attrString(i);switch(i.type){case"textarea":case"rich-text":delete i.type,delete i.value,t=r+"";break;case"select":i.type=i.type.replace("-group",""),c.length&&c.each(function(e,t){e=e;var r=a.parseAttrs(t.attributes),o=a.attrString(r);n+=""}),t=r+"";break;case"checkbox-group":case"radio-group":i.type=i.type.replace("-group",""),delete i.className,c.length&&!function(){var e="checkbox"===i.type?i.name+"[]":i.name;c.each(function(t,r){var o=Object.assign({},i,a.parseAttrs(r.attributes)),l=void 0;o.selected&&(delete o.selected,o.checked=null),o.name=e,o.id=i.id+"-"+t,l=a.attrString(o),n+="
      "})}(),t=r+'
      '+n+"
      ";break;case"text":case"password":case"email":case"file":case"hidden":case"date":case"autocomplete":t=r+" ";break;case"color":t=r+" "+o.label.selectColor;break;case"button":case"submit":t="";break;case"checkbox":t=" "+r,i.toggle&&setTimeout(function(){$(document.getElementById(i.id)).kcToggle()},100);break;default:t="<"+i.type+">"}return"hidden"!==i.type&&(t=a.markup("div",t,{className:"form-group field-"+i.id})),t},a.attrString=function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&(r=a.safeAttr(r,e[r]),t.push(r.name+r.value));return t.join(" ")},a.safeAttr=function(e,t){var r={className:"class"};return e=r[e]||e,t=t?window.JSON.stringify(t):!1,t=t?"="+t:"",{name:e,value:t}},a.safeAttrName=function(e){var t={className:"class"};return t[e]||a.hyphenCase(e)},a.parseAttrs=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[e[r].name]=e[r].value);return t},Element.prototype.appendFormFields=function(e){var t=this;e.reverse();for(var r=e.length-1;r>=0;r--)t.appendChild(e[r])},Element.prototype.emptyContainer=function(){for(var e=this;e.lastChild;)e.removeChild(e.lastChild)};var i=[],l=$.parseXML(o.formData),s=$("field",l);if(!l)return o.notify.error(o.label.noFormData),!1;if(o.notify.success(o.label.formRendered),s.length&&s.each(function(e,t){e=e,i.push(a.fieldRender(t))}),o.render){if(o.container)o.container.emptyContainer(),o.container.appendFormFields(i);else if(t){var c=document.querySelector(".rendered-form");c?(c.emptyContainer(),c.appendFormFields(i)):(c=a.markup("div",i,{className:"rendered-form"}),t.parentNode.insertBefore(c,t.nextSibling),t.style.display="none",t.setAttribute("disabled","disabled"))}}else{var d=i.join("");r.markup=d}return r};!function(e){e.fn.formRender=function(e){this.each(function(){var t=new FormRender(e,this);return t})}}(jQuery); +"use strict";!function(e){var t=function(t,r){var n={theme:"fresh",labels:{off:"Off",on:"On"}},a=e.extend(n,r),o=e('
      ').insertAfter(t).append(t);o.toggleClass("on",t.is(":checked"));var i='
      '+a.labels.on+"
      ",l='
      '+a.labels.off+"
      ",s='
      ',c='
      '+i+s+l+"
      ";o.append(c),o.click(function(){t.attr("checked",!t.attr("checked")),e(this).toggleClass("on")})};e.fn.kcToggle=function(r){var n=this;return n.each(function(){var n=e(this);if(!n.data("kcToggle")){var a=new t(n,r);n.data("kcToggle",a)}})}}(jQuery);var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},FormRender=function(e,t){var r=this,n={destroyTemplate:!0,container:!1,dataType:"xml",formData:!1,label:{selectColor:"Select Color",noFormData:"No form data.",formRendered:"Form Rendered"},render:!0,notify:{error:function(e){return console.error(e)},success:function(e){return console.log(e)},warning:function(e){return console.warn(e)}}},a={},o=$.extend(n,e);a.getElement=function(){return t.id||(t.id=a.makeId(t)),document.getElementById(t.id)},a.makeId=function(e){var t=(new Date).getTime();return e.tagName+"-"+t},!o.formData&&t&&(t=a.getElement(),o.formData=t.value),a.markup=function(e){var t=arguments.length<=1||void 0===arguments[1]?"":arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],n=void 0,o=document.createElement(e),i=function(e){return Array.isArray(e)?"array":"undefined"==typeof e?"undefined":_typeof(e)},l={string:function(e){o.innerHTML=e},object:function(e){return o.appendChild(e)},array:function(e){for(var t=0;t*'),"hidden"!==i.type){l&&(l='?');var d=i.label||"";r='"}var u=i.label;delete i.label,delete i.description;var f=a.attrString(i);switch(i.type){case"textarea":case"rich-text":delete i.type,delete i.value,t=r+"";break;case"select":i.type=i.type.replace("-group",""),c.length&&c.each(function(e,t){e=e;var r=a.parseAttrs(t.attributes),o=a.attrString(r);n+=""}),t=r+"";break;case"checkbox-group":case"radio-group":i.type=i.type.replace("-group",""),delete i.className,c.length&&!function(){var e="checkbox"===i.type?i.name+"[]":i.name;c.each(function(t,r){var o=Object.assign({},i,a.parseAttrs(r.attributes)),l=void 0;o.selected&&(delete o.selected,o.checked=null),o.name=e,o.id=i.id+"-"+t,l=a.attrString(o),n+="
      "})}(),t=r+'
      '+n+"
      ";break;case"text":case"password":case"email":case"file":case"hidden":case"date":case"autocomplete":t=r+" ";break;case"color":t=r+" "+o.label.selectColor;break;case"button":case"submit":t="";break;case"checkbox":t=" "+r,i.toggle&&setTimeout(function(){$(document.getElementById(i.id)).kcToggle()},100);break;default:t="<"+i.type+">"}return t="hidden"!==i.type?a.markup("div",t,{className:"form-group field-"+i.id}):a.markup("input",null,i)},a.hyphenCase=function(e){return e=e.replace(/[^\w\s\-]/gi,""),e=e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}),e.replace(/\s/g,"-").replace(/^-+/g,"")},a.attrString=function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&(r=a.safeAttr(r,e[r]),t.push(r.name+r.value));return t.join(" ")},a.safeAttr=function(e,t){var r={className:"class"};return e=r[e]||e,t=t?window.JSON.stringify(t):!1,t=t?"="+t:"",{name:e,value:t}},a.safeAttrName=function(e){var t={className:"class"};return t[e]||a.hyphenCase(e)},a.parseAttrs=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[e[r].name]=e[r].value);return t},Element.prototype.appendFormFields=function(e){var t=this;e.reverse();for(var r=e.length-1;r>=0;r--)t.appendChild(e[r])},Element.prototype.emptyContainer=function(){for(var e=this;e.lastChild;)e.removeChild(e.lastChild)};var i=[],l=$.parseXML(o.formData),s=$("field",l);if(!l)return o.notify.error(o.label.noFormData),!1;if(o.notify.success(o.label.formRendered),s.length&&s.each(function(e,t){e=e,i.push(a.fieldRender(t))}),o.render){if(o.container)o.container.emptyContainer(),o.container.appendFormFields(i);else if(t){var c=document.querySelector(".rendered-form");c?(c.emptyContainer(),c.appendFormFields(i)):(c=a.markup("div",i,{className:"rendered-form"}),t.parentNode.insertBefore(c,t.nextSibling),t.style.display="none",t.setAttribute("disabled","disabled"))}}else{var d=i.join("");r.markup=d}return r};!function(e){e.fn.formRender=function(e){this.each(function(){var t=new FormRender(e,this);return t})}}(jQuery); //# sourceMappingURL=form-render.min.js.map diff --git a/demo/assets/js/form-render.min.js.map b/demo/assets/js/form-render.min.js.map index 10e01da4b..61d031bf8 100644 --- a/demo/assets/js/form-render.min.js.map +++ b/demo/assets/js/form-render.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["form-render.min.js","kc-toggle.js","form-render.js"],"names":["$","Toggle","element","options","defaults","theme","labels","off","on","opts","extend","$kcToggle","insertAfter","append","toggleClass","is","kctOn","kctOff","kctHandle","kctInner","click","attr","this","fn","kcToggle","toggle","each","data","jQuery","_typeof","Symbol","iterator","obj","constructor","FormRender","formRender","destroyTemplate","container","dataType","formData","label","selectColor","noFormData","formRendered","render","notify","error","message","console","success","log","warning","warn","_helpers","getElement","id","makeId","document","getElementById","epoch","Date","getTime","tagName","value","markup","tag","content","arguments","length","undefined","attrs","contentType","field","createElement","getContentType","Array","isArray","appendContent","string","innerHTML","object","appendChild","array","i","hasOwnProperty","name","safeAttrName","setAttribute","call","fieldRender","fieldMarkup","fieldLabel","optionsMarkup","fieldAttrs","parseAttrs","attributes","fieldDesc","description","fieldRequired","fieldOptions","required","type","fieldLabelText","fieldLabelVal","fieldAttrsString","attrString","replace","index","el","optionAttrs","optionAttrsString","textContent","className","optionName","Object","assign","selected","checked","setTimeout","safeAttr","push","join","window","JSON","stringify","hyphenCase","attrNodes","Element","prototype","appendFormFields","fields","reverse","emptyContainer","lastChild","removeChild","rendered","parseXML","renderedFormWrap","querySelector","parentNode","insertBefore","nextSibling","style","display","output"],"mappings":"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","file":"form-render.min.js","sourcesContent":["'use strict';\n\n(function ($) {\n 'use strict';\n\n var Toggle = function Toggle(element, options) {\n\n var defaults = {\n theme: 'fresh',\n labels: {\n off: 'Off',\n on: 'On'\n }\n };\n\n var opts = $.extend(defaults, options),\n $kcToggle = $('
      ').insertAfter(element).append(element);\n\n $kcToggle.toggleClass('on', element.is(':checked'));\n\n var kctOn = '
      ' + opts.labels.on + '
      ',\n kctOff = '
      ' + opts.labels.off + '
      ',\n kctHandle = '
      ',\n kctInner = '
      ' + kctOn + kctHandle + kctOff + '
      ';\n\n $kcToggle.append(kctInner);\n\n $kcToggle.click(function () {\n element.attr('checked', !element.attr('checked'));\n $(this).toggleClass('on');\n });\n };\n\n $.fn.kcToggle = function (options) {\n var toggle = this;\n return toggle.each(function () {\n var element = $(this);\n if (element.data('kcToggle')) {\n return;\n }\n var kcToggle = new Toggle(element, options);\n element.data('kcToggle', kcToggle);\n });\n };\n})(jQuery);\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\n// render the formBuilder XML into html\nvar FormRender = function FormRender(options, element) {\n 'use strict';\n\n var formRender = this,\n defaults = {\n destroyTemplate: true, // @todo\n container: false,\n dataType: 'xml',\n formData: false,\n label: {\n selectColor: 'Select Color',\n noFormData: 'No form data.',\n formRendered: 'Form Rendered'\n },\n render: true,\n notify: {\n error: function error(message) {\n return console.error(message);\n },\n success: function success(message) {\n return console.log(message);\n },\n warning: function warning(message) {\n return console.warn(message);\n }\n }\n },\n _helpers = {};\n\n var opts = $.extend(defaults, options);\n\n /**\n * Require the html element if it has been lost\n *\n * @return {object} javascript object for html element\n */\n _helpers.getElement = function () {\n if (!element.id) {\n element.id = _helpers.makeId(element);\n }\n\n return document.getElementById(element.id);\n };\n\n /**\n * Make an ID for this element using current date and tag\n *\n * @param {Boolean} element\n * @return {String} new id for element\n */\n _helpers.makeId = function (element) {\n var epoch = new Date().getTime();\n\n return element.tagName + '-' + epoch;\n };\n\n if (!opts.formData && element) {\n element = _helpers.getElement();\n opts.formData = element.value;\n }\n\n /**\n * Generate markup wrapper where needed\n *\n * @param {string} type\n * @param {object} attrs\n * @param {string} content we wrap this\n * @return {string}\n */\n _helpers.markup = function (tag) {\n var content = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n var attrs = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n var contentType = void 0,\n field = document.createElement(tag),\n getContentType = function getContentType(content) {\n return Array.isArray(content) ? 'array' : typeof content === 'undefined' ? 'undefined' : _typeof(content);\n },\n appendContent = {\n string: function string(content) {\n field.innerHTML = content;\n },\n object: function object(content) {\n return field.appendChild(content);\n },\n array: function array(content) {\n for (var i = 0; i < content.length; i++) {\n contentType = getContentType(content[i]);\n appendContent[contentType](content[i]);\n }\n }\n };\n\n for (var attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n var name = _helpers.safeAttrName(attr);\n field.setAttribute(name, attrs[attr]);\n }\n }\n\n contentType = getContentType(content);\n\n if (content) {\n appendContent[contentType].call(this, content);\n }\n\n return field;\n };\n\n /**\n * Generate preview markup\n * @param {object} field\n * @return {string} preview markup for field\n * @todo\n */\n _helpers.fieldRender = function (field) {\n var fieldMarkup = '',\n fieldLabel = '',\n optionsMarkup = '';\n var fieldAttrs = _helpers.parseAttrs(field.attributes),\n fieldDesc = fieldAttrs.description || '',\n fieldRequired = '',\n fieldOptions = $('option', field);\n fieldAttrs.id = fieldAttrs.name;\n\n if (fieldAttrs.required) {\n fieldAttrs.required = null;\n fieldAttrs['aria-required'] = 'true';\n fieldRequired = '*';\n }\n\n if (fieldAttrs.type !== 'hidden') {\n if (fieldDesc) {\n fieldDesc = '?';\n }\n var fieldLabelText = fieldAttrs.label || '';\n fieldLabel = '';\n }\n\n var fieldLabelVal = fieldAttrs.label;\n\n delete fieldAttrs.label;\n delete fieldAttrs.description;\n\n var fieldAttrsString = _helpers.attrString(fieldAttrs);\n\n switch (fieldAttrs.type) {\n case 'textarea':\n case 'rich-text':\n delete fieldAttrs.type;\n delete fieldAttrs.value;\n fieldMarkup = fieldLabel + '';\n break;\n case 'select':\n fieldAttrs.type = fieldAttrs.type.replace('-group', '');\n\n if (fieldOptions.length) {\n fieldOptions.each(function (index, el) {\n index = index;\n var optionAttrs = _helpers.parseAttrs(el.attributes),\n optionAttrsString = _helpers.attrString(optionAttrs);\n optionsMarkup += '';\n });\n }\n fieldMarkup = fieldLabel + '';\n break;\n case 'checkbox-group':\n case 'radio-group':\n fieldAttrs.type = fieldAttrs.type.replace('-group', '');\n\n delete fieldAttrs.className;\n\n if (fieldOptions.length) {\n (function () {\n var optionName = fieldAttrs.type === 'checkbox' ? fieldAttrs.name + '[]' : fieldAttrs.name;\n fieldOptions.each(function (index, el) {\n var optionAttrs = Object.assign({}, fieldAttrs, _helpers.parseAttrs(el.attributes)),\n optionAttrsString = void 0;\n\n if (optionAttrs.selected) {\n delete optionAttrs.selected;\n optionAttrs.checked = null;\n }\n\n optionAttrs.name = optionName;\n optionAttrs.id = fieldAttrs.id + '-' + index;\n optionAttrsString = _helpers.attrString(optionAttrs);\n optionsMarkup += '
      ';\n });\n })();\n }\n fieldMarkup = fieldLabel + '
      ' + optionsMarkup + '
      ';\n break;\n case 'text':\n case 'password':\n case 'email':\n case 'file':\n case 'hidden':\n case 'date':\n case 'autocomplete':\n fieldMarkup = fieldLabel + ' ';\n break;\n case 'color':\n fieldMarkup = fieldLabel + ' ' + opts.label.selectColor;\n break;\n case 'button':\n case 'submit':\n fieldMarkup = '';\n break;\n case 'checkbox':\n fieldMarkup = ' ' + fieldLabel;\n\n if (fieldAttrs.toggle) {\n setTimeout(function () {\n $(document.getElementById(fieldAttrs.id)).kcToggle();\n }, 100);\n }\n break;\n default:\n fieldMarkup = '<' + fieldAttrs.type + '>';\n }\n\n if (fieldAttrs.type !== 'hidden') {\n fieldMarkup = _helpers.markup('div', fieldMarkup, {\n className: 'form-group field-' + fieldAttrs.id\n });\n }\n\n return fieldMarkup;\n };\n\n _helpers.attrString = function (attrs) {\n var attributes = [];\n\n for (var attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n attr = _helpers.safeAttr(attr, attrs[attr]);\n attributes.push(attr.name + attr.value);\n }\n }\n return attributes.join(' ');\n };\n\n _helpers.safeAttr = function (name, value) {\n var safeAttr = {\n className: 'class'\n };\n\n name = safeAttr[name] || name;\n value = value ? window.JSON.stringify(value) : false;\n value = value ? '=' + value : '';\n\n return {\n name: name,\n value: value\n };\n };\n\n _helpers.safeAttrName = function (name) {\n var safeAttr = {\n className: 'class'\n };\n\n return safeAttr[name] || _helpers.hyphenCase(name);\n };\n\n _helpers.parseAttrs = function (attrNodes) {\n var fieldAttrs = {};\n for (var attr in attrNodes) {\n if (attrNodes.hasOwnProperty(attr)) {\n fieldAttrs[attrNodes[attr].name] = attrNodes[attr].value;\n }\n }\n return fieldAttrs;\n };\n\n /**\n * Extend Element prototype to allow us to append fields\n *\n * @param {object} fields Node elements\n */\n Element.prototype.appendFormFields = function (fields) {\n var element = this;\n fields.reverse();\n for (var i = fields.length - 1; i >= 0; i--) {\n element.appendChild(fields[i]);\n }\n };\n\n /**\n * Extend ELement prototype to remove content\n *\n * @param {object} fields Node elements\n */\n Element.prototype.emptyContainer = function () {\n var element = this;\n while (element.lastChild) {\n element.removeChild(element.lastChild);\n }\n };\n\n // Begin the core plugin\n var rendered = [];\n\n var formData = $.parseXML(opts.formData),\n fields = $('field', formData);\n // @todo - form configuration settings (control position, creatorId, theme etc)\n // settings = $('settings', formData);\n\n if (!formData) {\n opts.notify.error(opts.label.noFormData);\n return false;\n } else {\n opts.notify.success(opts.label.formRendered);\n }\n\n // generate field markup if we have fields\n if (fields.length) {\n fields.each(function (index, field) {\n index = index;\n rendered.push(_helpers.fieldRender(field));\n });\n }\n\n if (opts.render) {\n if (opts.container) {\n opts.container.emptyContainer();\n opts.container.appendFormFields(rendered);\n } else if (element) {\n var renderedFormWrap = document.querySelector('.rendered-form');\n if (renderedFormWrap) {\n renderedFormWrap.emptyContainer();\n renderedFormWrap.appendFormFields(rendered);\n } else {\n renderedFormWrap = _helpers.markup('div', rendered, { className: 'rendered-form' });\n element.parentNode.insertBefore(renderedFormWrap, element.nextSibling);\n element.style.display = 'none';\n element.setAttribute('disabled', 'disabled');\n }\n }\n } else {\n var output = rendered.join('');\n formRender.markup = output;\n }\n\n return formRender;\n};\n\n(function ($) {\n 'use strict';\n\n $.fn.formRender = function (options) {\n this.each(function () {\n var formRender = new FormRender(options, this);\n return formRender;\n });\n };\n})(jQuery);","(function($) {\n 'use strict';\n\n var Toggle = function(element, options) {\n\n var defaults = {\n theme: 'fresh',\n labels: {\n off: 'Off',\n on: 'On'\n }\n };\n\n var opts = $.extend(defaults, options),\n $kcToggle = $('
      ').insertAfter(element).append(element);\n\n $kcToggle.toggleClass('on', element.is(':checked'));\n\n var kctOn = `
      ${opts.labels.on}
      `,\n kctOff = `
      ${opts.labels.off}
      `,\n kctHandle = `
      `,\n kctInner = `
      ${kctOn}${kctHandle}${kctOff}
      `;\n\n $kcToggle.append(kctInner);\n\n $kcToggle.click(function() {\n element.attr('checked', !element.attr('checked'));\n $(this).toggleClass('on');\n });\n\n };\n\n $.fn.kcToggle = function(options) {\n var toggle = this;\n return toggle.each(function() {\n var element = $(this);\n if (element.data('kcToggle')) {\n return;\n }\n var kcToggle = new Toggle(element, options);\n element.data('kcToggle', kcToggle);\n });\n };\n\n})(jQuery);\n","// render the formBuilder XML into html\nvar FormRender = function(options, element) {\n 'use strict';\n\n var formRender = this,\n defaults = {\n destroyTemplate: true, // @todo\n container: false,\n dataType: 'xml',\n formData: false,\n label: {\n selectColor: 'Select Color',\n noFormData: 'No form data.',\n formRendered: 'Form Rendered'\n },\n render: true,\n notify: {\n error: function(message) {\n return console.error(message);\n },\n success: function(message) {\n return console.log(message);\n },\n warning: function(message) {\n return console.warn(message);\n }\n }\n },\n _helpers = {};\n\n var opts = $.extend(defaults, options);\n\n\n /**\n * Require the html element if it has been lost\n *\n * @return {object} javascript object for html element\n */\n _helpers.getElement = function() {\n if (!element.id) {\n element.id = _helpers.makeId(element);\n }\n\n return document.getElementById(element.id);\n };\n\n /**\n * Make an ID for this element using current date and tag\n *\n * @param {Boolean} element\n * @return {String} new id for element\n */\n _helpers.makeId = function(element) {\n let epoch = new Date().getTime();\n\n return `${element.tagName}-${epoch}`;\n };\n\n if (!opts.formData && element) {\n element = _helpers.getElement();\n opts.formData = element.value;\n }\n\n /**\n * Generate markup wrapper where needed\n *\n * @param {string} type\n * @param {object} attrs\n * @param {string} content we wrap this\n * @return {string}\n */\n _helpers.markup = function(tag, content = '', attrs = {}) {\n let contentType,\n field = document.createElement(tag),\n getContentType = function(content) {\n return Array.isArray(content) ? 'array' : typeof content;\n },\n appendContent = {\n string: function(content) {\n field.innerHTML = content;\n },\n object: function(content) {\n return field.appendChild(content);\n },\n array: function(content) {\n for (var i = 0; i < content.length; i++) {\n contentType = getContentType(content[i]);\n appendContent[contentType](content[i]);\n }\n }\n };\n\n for (var attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n let name = _helpers.safeAttrName(attr);\n field.setAttribute(name, attrs[attr]);\n }\n }\n\n contentType = getContentType(content);\n\n if (content) {\n appendContent[contentType].call(this, content);\n }\n\n return field;\n };\n\n /**\n * Generate preview markup\n * @param {object} field\n * @return {string} preview markup for field\n * @todo\n */\n _helpers.fieldRender = function(field) {\n var fieldMarkup = '',\n fieldLabel = '',\n optionsMarkup = '';\n var fieldAttrs = _helpers.parseAttrs(field.attributes),\n fieldDesc = fieldAttrs.description || '',\n fieldRequired = '',\n fieldOptions = $('option', field);\n fieldAttrs.id = fieldAttrs.name;\n\n if (fieldAttrs.required) {\n fieldAttrs.required = null;\n fieldAttrs['aria-required'] = 'true';\n fieldRequired = `*`;\n }\n\n if (fieldAttrs.type !== 'hidden') {\n if (fieldDesc) {\n fieldDesc = `?`;\n }\n let fieldLabelText = fieldAttrs.label || '';\n fieldLabel = ``;\n }\n\n var fieldLabelVal = fieldAttrs.label;\n\n delete fieldAttrs.label;\n delete fieldAttrs.description;\n\n var fieldAttrsString = _helpers.attrString(fieldAttrs);\n\n switch (fieldAttrs.type) {\n case 'textarea':\n case 'rich-text':\n delete fieldAttrs.type;\n delete fieldAttrs.value;\n fieldMarkup = `${fieldLabel}`;\n break;\n case 'select':\n fieldAttrs.type = fieldAttrs.type.replace('-group', '');\n\n if (fieldOptions.length) {\n fieldOptions.each(function(index, el) {\n index = index;\n let optionAttrs = _helpers.parseAttrs(el.attributes),\n optionAttrsString = _helpers.attrString(optionAttrs);\n optionsMarkup += ``;\n });\n }\n fieldMarkup = `${fieldLabel}`;\n break;\n case 'checkbox-group':\n case 'radio-group':\n fieldAttrs.type = fieldAttrs.type.replace('-group', '');\n\n delete fieldAttrs.className;\n\n if (fieldOptions.length) {\n let optionName = fieldAttrs.type === 'checkbox' ? fieldAttrs.name + '[]' : fieldAttrs.name;\n fieldOptions.each(function(index, el) {\n let optionAttrs = Object.assign({}, fieldAttrs, _helpers.parseAttrs(el.attributes)),\n optionAttrsString;\n\n if (optionAttrs.selected) {\n delete optionAttrs.selected;\n optionAttrs.checked = null;\n }\n\n optionAttrs.name = optionName;\n optionAttrs.id = fieldAttrs.id + '-' + index;\n optionAttrsString = _helpers.attrString(optionAttrs);\n optionsMarkup += `
      `;\n });\n }\n fieldMarkup = `${fieldLabel}
      ${optionsMarkup}
      `;\n break;\n case 'text':\n case 'password':\n case 'email':\n case 'file':\n case 'hidden':\n case 'date':\n case 'autocomplete':\n fieldMarkup = `${fieldLabel} `;\n break;\n case 'color':\n fieldMarkup = `${fieldLabel} ${opts.label.selectColor}`;\n break;\n case 'button':\n case 'submit':\n fieldMarkup = ``;\n break;\n case 'checkbox':\n fieldMarkup = ` ${fieldLabel}`;\n\n if (fieldAttrs.toggle) {\n setTimeout(function() {\n $(document.getElementById(fieldAttrs.id)).kcToggle();\n }, 100);\n }\n break;\n default:\n fieldMarkup = `<${fieldAttrs.type}>`;\n }\n\n if (fieldAttrs.type !== 'hidden') {\n fieldMarkup = _helpers.markup('div', fieldMarkup, {\n className: 'form-group field-' + fieldAttrs.id\n });\n }\n\n return fieldMarkup;\n };\n\n _helpers.attrString = function(attrs) {\n let attributes = [];\n\n for (var attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n attr = _helpers.safeAttr(attr, attrs[attr]);\n attributes.push(attr.name + attr.value);\n }\n }\n return attributes.join(' ');\n };\n\n _helpers.safeAttr = function(name, value) {\n let safeAttr = {\n className: 'class'\n };\n\n name = safeAttr[name] || name;\n value = value ? window.JSON.stringify(value) : false;\n value = value ? `=${value}` : '';\n\n return {\n name,\n value\n };\n };\n\n _helpers.safeAttrName = function(name) {\n let safeAttr = {\n className: 'class'\n };\n\n return safeAttr[name] || _helpers.hyphenCase(name);\n };\n\n _helpers.parseAttrs = function(attrNodes) {\n var fieldAttrs = {};\n for (var attr in attrNodes) {\n if (attrNodes.hasOwnProperty(attr)) {\n fieldAttrs[attrNodes[attr].name] = attrNodes[attr].value;\n }\n }\n return fieldAttrs;\n };\n\n /**\n * Extend Element prototype to allow us to append fields\n *\n * @param {object} fields Node elements\n */\n Element.prototype.appendFormFields = function(fields) {\n var element = this;\n fields.reverse();\n for (var i = fields.length - 1; i >= 0; i--) {\n element.appendChild(fields[i]);\n }\n };\n\n /**\n * Extend ELement prototype to remove content\n *\n * @param {object} fields Node elements\n */\n Element.prototype.emptyContainer = function() {\n var element = this;\n while (element.lastChild) {\n element.removeChild(element.lastChild);\n }\n };\n\n // Begin the core plugin\n var rendered = [];\n\n var formData = $.parseXML(opts.formData),\n fields = $('field', formData);\n // @todo - form configuration settings (control position, creatorId, theme etc)\n // settings = $('settings', formData);\n\n if (!formData) {\n opts.notify.error(opts.label.noFormData);\n return false;\n } else {\n opts.notify.success(opts.label.formRendered);\n }\n\n // generate field markup if we have fields\n if (fields.length) {\n fields.each(function(index, field) {\n index = index;\n rendered.push(_helpers.fieldRender(field));\n });\n }\n\n if (opts.render) {\n if (opts.container) {\n opts.container.emptyContainer();\n opts.container.appendFormFields(rendered);\n } else if (element) {\n let renderedFormWrap = document.querySelector('.rendered-form');\n if (renderedFormWrap) {\n renderedFormWrap.emptyContainer();\n renderedFormWrap.appendFormFields(rendered);\n } else {\n renderedFormWrap = _helpers.markup('div', rendered, { className: 'rendered-form' });\n element.parentNode.insertBefore(renderedFormWrap, element.nextSibling);\n element.style.display = 'none';\n element.setAttribute('disabled', 'disabled');\n }\n }\n } else {\n var output = rendered.join('');\n formRender.markup = output;\n }\n\n return formRender;\n\n};\n\n(function($) {\n 'use strict';\n\n $.fn.formRender = function(options) {\n this.each(function() {\n let formRender = new FormRender(options, this);\n return formRender;\n });\n };\n\n})(jQuery);\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["form-render.min.js","kc-toggle.js","form-render.js"],"names":["$","Toggle","element","options","defaults","theme","labels","off","on","opts","extend","$kcToggle","insertAfter","append","toggleClass","is","kctOn","kctOff","kctHandle","kctInner","click","attr","this","fn","kcToggle","toggle","each","data","jQuery","_typeof","Symbol","iterator","obj","constructor","FormRender","formRender","destroyTemplate","container","dataType","formData","label","selectColor","noFormData","formRendered","render","notify","error","message","console","success","log","warning","warn","_helpers","getElement","id","makeId","document","getElementById","epoch","Date","getTime","tagName","value","markup","tag","content","arguments","length","undefined","attrs","contentType","field","createElement","getContentType","Array","isArray","appendContent","string","innerHTML","object","appendChild","array","i","hasOwnProperty","name","safeAttrName","setAttribute","call","fieldRender","fieldMarkup","fieldLabel","optionsMarkup","fieldAttrs","parseAttrs","attributes","fieldDesc","description","fieldRequired","fieldOptions","required","type","fieldLabelText","fieldLabelVal","fieldAttrsString","attrString","replace","index","el","optionAttrs","optionAttrsString","textContent","className","optionName","Object","assign","selected","checked","setTimeout","hyphenCase","str","$1","toLowerCase","safeAttr","push","join","window","JSON","stringify","attrNodes","Element","prototype","appendFormFields","fields","reverse","emptyContainer","lastChild","removeChild","rendered","parseXML","renderedFormWrap","querySelector","parentNode","insertBefore","nextSibling","style","display","output"],"mappings":"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","file":"form-render.min.js","sourcesContent":["'use strict';\n\n(function ($) {\n 'use strict';\n\n var Toggle = function Toggle(element, options) {\n\n var defaults = {\n theme: 'fresh',\n labels: {\n off: 'Off',\n on: 'On'\n }\n };\n\n var opts = $.extend(defaults, options),\n $kcToggle = $('
      ').insertAfter(element).append(element);\n\n $kcToggle.toggleClass('on', element.is(':checked'));\n\n var kctOn = '
      ' + opts.labels.on + '
      ',\n kctOff = '
      ' + opts.labels.off + '
      ',\n kctHandle = '
      ',\n kctInner = '
      ' + kctOn + kctHandle + kctOff + '
      ';\n\n $kcToggle.append(kctInner);\n\n $kcToggle.click(function () {\n element.attr('checked', !element.attr('checked'));\n $(this).toggleClass('on');\n });\n };\n\n $.fn.kcToggle = function (options) {\n var toggle = this;\n return toggle.each(function () {\n var element = $(this);\n if (element.data('kcToggle')) {\n return;\n }\n var kcToggle = new Toggle(element, options);\n element.data('kcToggle', kcToggle);\n });\n };\n})(jQuery);\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\n// render the formBuilder XML into html\nvar FormRender = function FormRender(options, element) {\n 'use strict';\n\n var formRender = this,\n defaults = {\n destroyTemplate: true, // @todo\n container: false,\n dataType: 'xml',\n formData: false,\n label: {\n selectColor: 'Select Color',\n noFormData: 'No form data.',\n formRendered: 'Form Rendered'\n },\n render: true,\n notify: {\n error: function error(message) {\n return console.error(message);\n },\n success: function success(message) {\n return console.log(message);\n },\n warning: function warning(message) {\n return console.warn(message);\n }\n }\n },\n _helpers = {};\n\n var opts = $.extend(defaults, options);\n\n /**\n * Require the html element if it has been lost\n *\n * @return {object} javascript object for html element\n */\n _helpers.getElement = function () {\n if (!element.id) {\n element.id = _helpers.makeId(element);\n }\n\n return document.getElementById(element.id);\n };\n\n /**\n * Make an ID for this element using current date and tag\n *\n * @param {Boolean} element\n * @return {String} new id for element\n */\n _helpers.makeId = function (element) {\n var epoch = new Date().getTime();\n\n return element.tagName + '-' + epoch;\n };\n\n if (!opts.formData && element) {\n element = _helpers.getElement();\n opts.formData = element.value;\n }\n\n /**\n * Generate markup wrapper where needed\n *\n * @param {string} type\n * @param {object} attrs\n * @param {string} content we wrap this\n * @return {string}\n */\n _helpers.markup = function (tag) {\n var content = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n var attrs = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n var contentType = void 0,\n field = document.createElement(tag),\n getContentType = function getContentType(content) {\n return Array.isArray(content) ? 'array' : typeof content === 'undefined' ? 'undefined' : _typeof(content);\n },\n appendContent = {\n string: function string(content) {\n field.innerHTML = content;\n },\n object: function object(content) {\n return field.appendChild(content);\n },\n array: function array(content) {\n for (var i = 0; i < content.length; i++) {\n contentType = getContentType(content[i]);\n appendContent[contentType](content[i]);\n }\n }\n };\n\n for (var attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n var name = _helpers.safeAttrName(attr);\n field.setAttribute(name, attrs[attr]);\n }\n }\n\n contentType = getContentType(content);\n\n if (content) {\n appendContent[contentType].call(this, content);\n }\n\n return field;\n };\n\n /**\n * Generate preview markup\n * @param {object} field\n * @return {string} preview markup for field\n * @todo\n */\n _helpers.fieldRender = function (field) {\n var fieldMarkup = '',\n fieldLabel = '',\n optionsMarkup = '';\n var fieldAttrs = _helpers.parseAttrs(field.attributes),\n fieldDesc = fieldAttrs.description || '',\n fieldRequired = '',\n fieldOptions = $('option', field);\n fieldAttrs.id = fieldAttrs.name;\n\n if (fieldAttrs.required) {\n fieldAttrs.required = null;\n fieldAttrs['aria-required'] = 'true';\n fieldRequired = '*';\n }\n\n if (fieldAttrs.type !== 'hidden') {\n if (fieldDesc) {\n fieldDesc = '?';\n }\n var fieldLabelText = fieldAttrs.label || '';\n fieldLabel = '';\n }\n\n var fieldLabelVal = fieldAttrs.label;\n\n delete fieldAttrs.label;\n delete fieldAttrs.description;\n\n var fieldAttrsString = _helpers.attrString(fieldAttrs);\n\n switch (fieldAttrs.type) {\n case 'textarea':\n case 'rich-text':\n delete fieldAttrs.type;\n delete fieldAttrs.value;\n fieldMarkup = fieldLabel + '';\n break;\n case 'select':\n fieldAttrs.type = fieldAttrs.type.replace('-group', '');\n\n if (fieldOptions.length) {\n fieldOptions.each(function (index, el) {\n index = index;\n var optionAttrs = _helpers.parseAttrs(el.attributes),\n optionAttrsString = _helpers.attrString(optionAttrs);\n optionsMarkup += '';\n });\n }\n fieldMarkup = fieldLabel + '';\n break;\n case 'checkbox-group':\n case 'radio-group':\n fieldAttrs.type = fieldAttrs.type.replace('-group', '');\n\n delete fieldAttrs.className;\n\n if (fieldOptions.length) {\n (function () {\n var optionName = fieldAttrs.type === 'checkbox' ? fieldAttrs.name + '[]' : fieldAttrs.name;\n fieldOptions.each(function (index, el) {\n var optionAttrs = Object.assign({}, fieldAttrs, _helpers.parseAttrs(el.attributes)),\n optionAttrsString = void 0;\n\n if (optionAttrs.selected) {\n delete optionAttrs.selected;\n optionAttrs.checked = null;\n }\n\n optionAttrs.name = optionName;\n optionAttrs.id = fieldAttrs.id + '-' + index;\n optionAttrsString = _helpers.attrString(optionAttrs);\n optionsMarkup += '
      ';\n });\n })();\n }\n fieldMarkup = fieldLabel + '
      ' + optionsMarkup + '
      ';\n break;\n case 'text':\n case 'password':\n case 'email':\n case 'file':\n case 'hidden':\n case 'date':\n case 'autocomplete':\n fieldMarkup = fieldLabel + ' ';\n break;\n case 'color':\n fieldMarkup = fieldLabel + ' ' + opts.label.selectColor;\n break;\n case 'button':\n case 'submit':\n fieldMarkup = '';\n break;\n case 'checkbox':\n fieldMarkup = ' ' + fieldLabel;\n\n if (fieldAttrs.toggle) {\n setTimeout(function () {\n $(document.getElementById(fieldAttrs.id)).kcToggle();\n }, 100);\n }\n break;\n default:\n fieldMarkup = '<' + fieldAttrs.type + '>';\n }\n\n if (fieldAttrs.type !== 'hidden') {\n fieldMarkup = _helpers.markup('div', fieldMarkup, {\n className: 'form-group field-' + fieldAttrs.id\n });\n } else {\n fieldMarkup = _helpers.markup('input', null, fieldAttrs);\n }\n\n return fieldMarkup;\n };\n\n /**\n * Convert camelCase into lowercase-hyphen\n *\n * @param {string} str\n * @return {string}\n */\n _helpers.hyphenCase = function (str) {\n str = str.replace(/[^\\w\\s\\-]/gi, '');\n str = str.replace(/([A-Z])/g, function ($1) {\n return '-' + $1.toLowerCase();\n });\n\n return str.replace(/\\s/g, '-').replace(/^-+/g, '');\n };\n\n _helpers.attrString = function (attrs) {\n var attributes = [];\n\n for (var attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n attr = _helpers.safeAttr(attr, attrs[attr]);\n attributes.push(attr.name + attr.value);\n }\n }\n return attributes.join(' ');\n };\n\n _helpers.safeAttr = function (name, value) {\n var safeAttr = {\n className: 'class'\n };\n\n name = safeAttr[name] || name;\n value = value ? window.JSON.stringify(value) : false;\n value = value ? '=' + value : '';\n\n return {\n name: name,\n value: value\n };\n };\n\n _helpers.safeAttrName = function (name) {\n var safeAttr = {\n className: 'class'\n };\n\n return safeAttr[name] || _helpers.hyphenCase(name);\n };\n\n _helpers.parseAttrs = function (attrNodes) {\n var fieldAttrs = {};\n for (var attr in attrNodes) {\n if (attrNodes.hasOwnProperty(attr)) {\n fieldAttrs[attrNodes[attr].name] = attrNodes[attr].value;\n }\n }\n return fieldAttrs;\n };\n\n /**\n * Extend Element prototype to allow us to append fields\n *\n * @param {object} fields Node elements\n */\n Element.prototype.appendFormFields = function (fields) {\n var element = this;\n fields.reverse();\n for (var i = fields.length - 1; i >= 0; i--) {\n element.appendChild(fields[i]);\n }\n };\n\n /**\n * Extend ELement prototype to remove content\n *\n * @param {object} fields Node elements\n */\n Element.prototype.emptyContainer = function () {\n var element = this;\n while (element.lastChild) {\n element.removeChild(element.lastChild);\n }\n };\n\n // Begin the core plugin\n var rendered = [];\n\n var formData = $.parseXML(opts.formData),\n fields = $('field', formData);\n // @todo - form configuration settings (control position, creatorId, theme etc)\n // settings = $('settings', formData);\n\n if (!formData) {\n opts.notify.error(opts.label.noFormData);\n return false;\n } else {\n opts.notify.success(opts.label.formRendered);\n }\n\n // generate field markup if we have fields\n if (fields.length) {\n fields.each(function (index, field) {\n index = index;\n rendered.push(_helpers.fieldRender(field));\n });\n }\n\n if (opts.render) {\n if (opts.container) {\n opts.container.emptyContainer();\n opts.container.appendFormFields(rendered);\n } else if (element) {\n var renderedFormWrap = document.querySelector('.rendered-form');\n if (renderedFormWrap) {\n renderedFormWrap.emptyContainer();\n renderedFormWrap.appendFormFields(rendered);\n } else {\n renderedFormWrap = _helpers.markup('div', rendered, { className: 'rendered-form' });\n element.parentNode.insertBefore(renderedFormWrap, element.nextSibling);\n element.style.display = 'none';\n element.setAttribute('disabled', 'disabled');\n }\n }\n } else {\n var output = rendered.join('');\n formRender.markup = output;\n }\n\n return formRender;\n};\n\n(function ($) {\n 'use strict';\n\n $.fn.formRender = function (options) {\n this.each(function () {\n var formRender = new FormRender(options, this);\n return formRender;\n });\n };\n})(jQuery);","(function($) {\n 'use strict';\n\n var Toggle = function(element, options) {\n\n var defaults = {\n theme: 'fresh',\n labels: {\n off: 'Off',\n on: 'On'\n }\n };\n\n var opts = $.extend(defaults, options),\n $kcToggle = $('
      ').insertAfter(element).append(element);\n\n $kcToggle.toggleClass('on', element.is(':checked'));\n\n var kctOn = `
      ${opts.labels.on}
      `,\n kctOff = `
      ${opts.labels.off}
      `,\n kctHandle = `
      `,\n kctInner = `
      ${kctOn}${kctHandle}${kctOff}
      `;\n\n $kcToggle.append(kctInner);\n\n $kcToggle.click(function() {\n element.attr('checked', !element.attr('checked'));\n $(this).toggleClass('on');\n });\n\n };\n\n $.fn.kcToggle = function(options) {\n var toggle = this;\n return toggle.each(function() {\n var element = $(this);\n if (element.data('kcToggle')) {\n return;\n }\n var kcToggle = new Toggle(element, options);\n element.data('kcToggle', kcToggle);\n });\n };\n\n})(jQuery);\n","// render the formBuilder XML into html\nvar FormRender = function(options, element) {\n 'use strict';\n\n var formRender = this,\n defaults = {\n destroyTemplate: true, // @todo\n container: false,\n dataType: 'xml',\n formData: false,\n label: {\n selectColor: 'Select Color',\n noFormData: 'No form data.',\n formRendered: 'Form Rendered'\n },\n render: true,\n notify: {\n error: function(message) {\n return console.error(message);\n },\n success: function(message) {\n return console.log(message);\n },\n warning: function(message) {\n return console.warn(message);\n }\n }\n },\n _helpers = {};\n\n var opts = $.extend(defaults, options);\n\n\n /**\n * Require the html element if it has been lost\n *\n * @return {object} javascript object for html element\n */\n _helpers.getElement = function() {\n if (!element.id) {\n element.id = _helpers.makeId(element);\n }\n\n return document.getElementById(element.id);\n };\n\n /**\n * Make an ID for this element using current date and tag\n *\n * @param {Boolean} element\n * @return {String} new id for element\n */\n _helpers.makeId = function(element) {\n let epoch = new Date().getTime();\n\n return `${element.tagName}-${epoch}`;\n };\n\n if (!opts.formData && element) {\n element = _helpers.getElement();\n opts.formData = element.value;\n }\n\n /**\n * Generate markup wrapper where needed\n *\n * @param {string} type\n * @param {object} attrs\n * @param {string} content we wrap this\n * @return {string}\n */\n _helpers.markup = function(tag, content = '', attrs = {}) {\n let contentType,\n field = document.createElement(tag),\n getContentType = function(content) {\n return Array.isArray(content) ? 'array' : typeof content;\n },\n appendContent = {\n string: function(content) {\n field.innerHTML = content;\n },\n object: function(content) {\n return field.appendChild(content);\n },\n array: function(content) {\n for (var i = 0; i < content.length; i++) {\n contentType = getContentType(content[i]);\n appendContent[contentType](content[i]);\n }\n }\n };\n\n for (var attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n let name = _helpers.safeAttrName(attr);\n field.setAttribute(name, attrs[attr]);\n }\n }\n\n contentType = getContentType(content);\n\n if (content) {\n appendContent[contentType].call(this, content);\n }\n\n return field;\n };\n\n /**\n * Generate preview markup\n * @param {object} field\n * @return {string} preview markup for field\n * @todo\n */\n _helpers.fieldRender = function(field) {\n var fieldMarkup = '',\n fieldLabel = '',\n optionsMarkup = '';\n var fieldAttrs = _helpers.parseAttrs(field.attributes),\n fieldDesc = fieldAttrs.description || '',\n fieldRequired = '',\n fieldOptions = $('option', field);\n fieldAttrs.id = fieldAttrs.name;\n\n if (fieldAttrs.required) {\n fieldAttrs.required = null;\n fieldAttrs['aria-required'] = 'true';\n fieldRequired = `*`;\n }\n\n if (fieldAttrs.type !== 'hidden') {\n if (fieldDesc) {\n fieldDesc = `?`;\n }\n let fieldLabelText = fieldAttrs.label || '';\n fieldLabel = ``;\n }\n\n var fieldLabelVal = fieldAttrs.label;\n\n delete fieldAttrs.label;\n delete fieldAttrs.description;\n\n var fieldAttrsString = _helpers.attrString(fieldAttrs);\n\n switch (fieldAttrs.type) {\n case 'textarea':\n case 'rich-text':\n delete fieldAttrs.type;\n delete fieldAttrs.value;\n fieldMarkup = `${fieldLabel}`;\n break;\n case 'select':\n fieldAttrs.type = fieldAttrs.type.replace('-group', '');\n\n if (fieldOptions.length) {\n fieldOptions.each(function(index, el) {\n index = index;\n let optionAttrs = _helpers.parseAttrs(el.attributes),\n optionAttrsString = _helpers.attrString(optionAttrs);\n optionsMarkup += ``;\n });\n }\n fieldMarkup = `${fieldLabel}`;\n break;\n case 'checkbox-group':\n case 'radio-group':\n fieldAttrs.type = fieldAttrs.type.replace('-group', '');\n\n delete fieldAttrs.className;\n\n if (fieldOptions.length) {\n let optionName = fieldAttrs.type === 'checkbox' ? fieldAttrs.name + '[]' : fieldAttrs.name;\n fieldOptions.each(function(index, el) {\n let optionAttrs = Object.assign({}, fieldAttrs, _helpers.parseAttrs(el.attributes)),\n optionAttrsString;\n\n if (optionAttrs.selected) {\n delete optionAttrs.selected;\n optionAttrs.checked = null;\n }\n\n optionAttrs.name = optionName;\n optionAttrs.id = fieldAttrs.id + '-' + index;\n optionAttrsString = _helpers.attrString(optionAttrs);\n optionsMarkup += `
      `;\n });\n }\n fieldMarkup = `${fieldLabel}
      ${optionsMarkup}
      `;\n break;\n case 'text':\n case 'password':\n case 'email':\n case 'file':\n case 'hidden':\n case 'date':\n case 'autocomplete':\n fieldMarkup = `${fieldLabel} `;\n break;\n case 'color':\n fieldMarkup = `${fieldLabel} ${opts.label.selectColor}`;\n break;\n case 'button':\n case 'submit':\n fieldMarkup = ``;\n break;\n case 'checkbox':\n fieldMarkup = ` ${fieldLabel}`;\n\n if (fieldAttrs.toggle) {\n setTimeout(function() {\n $(document.getElementById(fieldAttrs.id)).kcToggle();\n }, 100);\n }\n break;\n default:\n fieldMarkup = `<${fieldAttrs.type}>`;\n }\n\n if (fieldAttrs.type !== 'hidden') {\n fieldMarkup = _helpers.markup('div', fieldMarkup, {\n className: 'form-group field-' + fieldAttrs.id\n });\n } else {\n fieldMarkup = _helpers.markup('input', null, fieldAttrs);\n }\n\n return fieldMarkup;\n };\n\n /**\n * Convert camelCase into lowercase-hyphen\n *\n * @param {string} str\n * @return {string}\n */\n _helpers.hyphenCase = (str) => {\n str = str.replace(/[^\\w\\s\\-]/gi, '');\n str = str.replace(/([A-Z])/g, function($1) {\n return '-' + $1.toLowerCase();\n });\n\n return str.replace(/\\s/g, '-').replace(/^-+/g, '');\n };\n\n _helpers.attrString = function(attrs) {\n let attributes = [];\n\n for (var attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n attr = _helpers.safeAttr(attr, attrs[attr]);\n attributes.push(attr.name + attr.value);\n }\n }\n return attributes.join(' ');\n };\n\n _helpers.safeAttr = function(name, value) {\n let safeAttr = {\n className: 'class'\n };\n\n name = safeAttr[name] || name;\n value = value ? window.JSON.stringify(value) : false;\n value = value ? `=${value}` : '';\n\n return {\n name,\n value\n };\n };\n\n _helpers.safeAttrName = function(name) {\n let safeAttr = {\n className: 'class'\n };\n\n return safeAttr[name] || _helpers.hyphenCase(name);\n };\n\n _helpers.parseAttrs = function(attrNodes) {\n var fieldAttrs = {};\n for (var attr in attrNodes) {\n if (attrNodes.hasOwnProperty(attr)) {\n fieldAttrs[attrNodes[attr].name] = attrNodes[attr].value;\n }\n }\n return fieldAttrs;\n };\n\n /**\n * Extend Element prototype to allow us to append fields\n *\n * @param {object} fields Node elements\n */\n Element.prototype.appendFormFields = function(fields) {\n var element = this;\n fields.reverse();\n for (var i = fields.length - 1; i >= 0; i--) {\n element.appendChild(fields[i]);\n }\n };\n\n /**\n * Extend ELement prototype to remove content\n *\n * @param {object} fields Node elements\n */\n Element.prototype.emptyContainer = function() {\n var element = this;\n while (element.lastChild) {\n element.removeChild(element.lastChild);\n }\n };\n\n // Begin the core plugin\n var rendered = [];\n\n var formData = $.parseXML(opts.formData),\n fields = $('field', formData);\n // @todo - form configuration settings (control position, creatorId, theme etc)\n // settings = $('settings', formData);\n\n if (!formData) {\n opts.notify.error(opts.label.noFormData);\n return false;\n } else {\n opts.notify.success(opts.label.formRendered);\n }\n\n // generate field markup if we have fields\n if (fields.length) {\n fields.each(function(index, field) {\n index = index;\n rendered.push(_helpers.fieldRender(field));\n });\n }\n\n if (opts.render) {\n if (opts.container) {\n opts.container.emptyContainer();\n opts.container.appendFormFields(rendered);\n } else if (element) {\n let renderedFormWrap = document.querySelector('.rendered-form');\n if (renderedFormWrap) {\n renderedFormWrap.emptyContainer();\n renderedFormWrap.appendFormFields(rendered);\n } else {\n renderedFormWrap = _helpers.markup('div', rendered, { className: 'rendered-form' });\n element.parentNode.insertBefore(renderedFormWrap, element.nextSibling);\n element.style.display = 'none';\n element.setAttribute('disabled', 'disabled');\n }\n }\n } else {\n var output = rendered.join('');\n formRender.markup = output;\n }\n\n return formRender;\n\n};\n\n(function($) {\n 'use strict';\n\n $.fn.formRender = function(options) {\n this.each(function() {\n let formRender = new FormRender(options, this);\n return formRender;\n });\n };\n\n})(jQuery);\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/form-builder.css b/dist/form-builder.css index ee30040b2..eb5b474e7 100644 --- a/dist/form-builder.css +++ b/dist/form-builder.css @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ @charset "UTF-8"; diff --git a/dist/form-builder.js b/dist/form-builder.js index a4a6a92b3..aa3e6ac72 100644 --- a/dist/form-builder.js +++ b/dist/form-builder.js @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ 'use strict'; diff --git a/dist/form-builder.min.css b/dist/form-builder.min.css index 423663b2d..7eca7f062 100644 --- a/dist/form-builder.min.css +++ b/dist/form-builder.min.css @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ @charset "UTF-8";.btn,.btn-group{display:inline-block;vertical-align:middle}.btn,.frmb-control li{-moz-user-select:none;-ms-user-select:none}.btn-group>.btn,.input-group .form-control{float:left;position:relative}.btn,.btn.active,.btn.btn-active,.btn:active,.form-control{background-image:none}.btn-group,.btn-group>.btn,.frmb li,.input-group{position:relative}*{box-sizing:border-box}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}.btn,.frmb .prev-holder label,.frmb li.disabled label,.frmb li.no-fields label{font-weight:400}textarea{overflow:auto}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-group .input-group .form-control:last-child,.btn-group .input-group-addon:last-child,.btn-group .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.btn-group .input-group-btn:first-child>.btn:not(:first-child),.btn-group .input-group-btn:last-child>.btn,.btn-group .input-group-btn:last-child>.btn-group>.btn,.btn-group .input-group-btn:last-child>.dropdown-toggle,.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn{color:#fff;padding:6px 12px;margin-bottom:0;font-size:14px;line-height:1.42857143;text-align:center;white-space:nowrap;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn.btn-sm,.btn.btn-xs{font-size:12px;line-height:1.5;border-radius:3px}.btn.btn-sm{padding:5px 10px}.btn.btn-xs{padding:1px 5px}.btn-primary{background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.btn-active,.btn-primary:active,.btn-primary:hover{background-color:#286090;border-color:#204d74}.btn-danger{background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.form-actions .clear-all:hover{background-color:#c9302c;border-color:#ac2925}.btn-default{background-color:#fff;border-color:#ccc}.btn-success{background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover{background-color:#449d44;border-color:#398439}.btn-info{background-color:#5bc0de;border-color:#46b8da}.btn-info:hover{background-color:#31b0d5;border-color:#269abc}.btn-warning{background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover{background-color:#ec971f;border-color:#d58512}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.input-group .form-control{z-index:2;width:100%;margin-bottom:0}.input-group{display:table;border-collapse:separate}.form-control,output{display:block;font-size:14px;line-height:1.42857143;color:#555}textarea.form-control{height:auto}.form-control{height:34px;width:100%;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-group{margin-bottom:15px}.pull-right{float:right}.pull-left{float:left}.cb-wrap,.form-actions{float:right}@font-face{font-family:form-builder-font;src:url(data:application/vnd.ms-fontobject;base64,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);src:url(data:application/vnd.ms-fontobject;base64,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) format("embedded-opentype"),url(data:application/font-woff;base64,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) format("woff"),url(data:application/x-font-ttf;base64,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) format("truetype"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtZXRhZGF0YT5Db3B5cmlnaHQgKEMpIDIwMTYgYnkgb3JpZ2luYWwgYXV0aG9ycyBAIGZvbnRlbGxvLmNvbTwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0iZm9ybS1idWlsZGVyLWZvbnQiIGhvcml6LWFkdi14PSIxMDAwIiA+Cjxmb250LWZhY2UgZm9udC1mYW1pbHk9ImZvcm0tYnVpbGRlci1mb250IiBmb250LXdlaWdodD0iNDAwIiBmb250LXN0cmV0Y2g9Im5vcm1hbCIgdW5pdHMtcGVyLWVtPSIxMDAwIiBhc2NlbnQ9Ijg1MCIgZGVzY2VudD0iLTE1MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjEwMDAiIC8+CjxnbHlwaCBnbHlwaC1uYW1lPSJhdXRvY29tcGxldGUiIHVuaWNvZGU9IiYjeGU4MDA7IiBkPSJNMzc1IDUzOGg2M3YtNjNoLTYzdjYzeiBtLTEyNSA2MmgtNjJ2LTYyaDYydjYyeiBtMTI1IDBoLTYydi02Mmg2MnY2MnogbS0yNTAtNjJ2LTYzaDYzdjYzaC02M3ogbTYzLTEyNWg2MnY2MmgtNjJ2LTYyeiBtMTI1IDBoNjJ2NjJoLTYydi02MnogbS02MyAxMjV2LTYzaDYzdjYzaC02M3ogbS0xMjUtNTYzaDYzdjYzaC02M3YtNjN6IG0xMjUgMGg2M3Y2M2gtNjN2LTYzeiBtMTI1IDBoNjN2NjNoLTYzdi02M3ogbTE4OCA2M2gtNjN2LTYzaDYzdjYzeiBtNDM3IDU5M3YtMjUwYzAtNTAtNDQtOTMtOTQtOTNoLTMxdi0xODgtMTg4YzAtMzctMjUtNjItNjItNjJoLTc1MGMtMzggMC02MyAyNS02MyA2MnY3MTljMCA1MCA0NCA5NCA5NCA5NGgxODcgMjE5djMxIDMyaC02Mi02M3YzMSAzMWgxNTYgMTU3di0zMS0zMWgtNjMtNjJ2LTMyLTMxaDE4NyAxNTZjNTAgMCA5NC00NCA5NC05NHogbS0xODctNTMxaC0zNzUtMzc1di0xODhoNzUwdjE4OHogbS02MjUgNjN2NjJoLTYzdi02Mmg2M3ogbTEyNSAwdjYyaC02M3YtNjJoNjN6IG02MjUgNDY4YzAgMTktMTMgMzItMzIgMzJoLTM0M3YtMTU3LTE1NmgtMzItMzF2MzEgMzJoLTYydjYyaDYydjMxIDMyaC02MnY2Mmg2MnYzMSAzMmgtNDA2Yy0xOSAwLTMxLTEzLTMxLTMydi0yNTBjMC0xOCAxMi0zMSAzMS0zMWg0MDZ2LTYyaC0xMjV2LTMyLTMxaDE1NiAxNTd2MzEgMzJoLTEyNXY2MmgzNDNjMTkgMCAzMiAxMyAzMiAzMXYyNTB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9ImNhbGVuZGFyIiB1bmljb2RlPSImI3hlODAxOyIgZD0iTTcxLTc5aDE2MXYxNjFoLTE2MXYtMTYxeiBtMTk3IDBoMTc4djE2MWgtMTc4di0xNjF6IG0tMTk3IDE5N2gxNjF2MTc4aC0xNjF2LTE3OHogbTE5NyAwaDE3OHYxNzhoLTE3OHYtMTc4eiBtLTE5NyAyMTRoMTYxdjE2MWgtMTYxdi0xNjF6IG00MTEtNDExaDE3OXYxNjFoLTE3OXYtMTYxeiBtLTIxNCA0MTFoMTc4djE2MWgtMTc4di0xNjF6IG00MjgtNDExaDE2MXYxNjFoLTE2MXYtMTYxeiBtLTIxNCAxOTdoMTc5djE3OGgtMTc5di0xNzh6IG0tMTk2IDQ4MnYxNjFxMCA3LTYgMTJ0LTEyIDZoLTM2cS03IDAtMTItNnQtNi0xMnYtMTYxcTAtNyA2LTEzdDEyLTVoMzZxNyAwIDEyIDV0NiAxM3ogbTQxMC00ODJoMTYxdjE3OGgtMTYxdi0xNzh6IG0tMjE0IDIxNGgxNzl2MTYxaC0xNzl2LTE2MXogbTIxNCAwaDE2MXYxNjFoLTE2MXYtMTYxeiBtMTggMjY4djE2MXEwIDctNSAxMnQtMTMgNmgtMzVxLTggMC0xMy02dC01LTEydi0xNjFxMC03IDUtMTN0MTMtNWgzNXE4IDAgMTMgNXQ1IDEzeiBtMjE1IDM2di03MTVxMC0yOS0yMi01MHQtNTAtMjFoLTc4NnEtMjkgMC01MCAyMXQtMjEgNTB2NzE1cTAgMjkgMjEgNTB0NTAgMjFoNzJ2NTRxMCAzNyAyNiA2M3Q2MyAyNmgzNnEzNyAwIDYzLTI2dDI2LTYzdi01NGgyMTR2NTRxMCAzNyAyNyA2M3Q2MyAyNmgzNXEzNyAwIDYzLTI2dDI3LTYzdi01NGg3MXEyOSAwIDUwLTIxdDIyLTUweiIgaG9yaXotYWR2LXg9IjkyOC42IiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iY2hlY2tib3giIHVuaWNvZGU9IiYjeGU4MDI7IiBkPSJNODQ0IDUzOHYtNTAwYzAtNTEtNDQtOTQtOTQtOTRoLTU2MmMtNTAgMC05NCA0My05NCA5NHY1NjJjMCA1MCA0NCA5NCA5NCA5NGg1NjJjNDQgMCA4MS0zMSA5NC03NWwxNTAgODctMTUwLTE2OHogbS02My03NWwtMzAwLTM2My0zMDYgNDA2IDMwNi0xMDAgMzAwIDE4MnYxMmMwIDE5LTEyIDMxLTMxIDMxaC01NjJjLTE5IDAtMzItMTItMzItMzF2LTU2MmMwLTE5IDEzLTMyIDMyLTMyaDU2MmMxOSAwIDMxIDEzIDMxIDMydjQyNXoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iY2hlY2tib3gtZ3JvdXAiIHVuaWNvZGU9IiYjeGU4MDM7IiBkPSJNMCA3ODhoMTAwMHY2MmgtMTAwMHYtNjJ6IG0wLTEyNWgxMDAwdjYyaC0xMDAwdi02MnogbTM3NS0xMjV2LTYzaDU2M3Y2M2gtNTYzeiBtNTYzLTU2M3Y2M2gtNTYzdi02M2g1NjN6IG0tNTYzIDI1MGg1NjN2NjNoLTU2M3YtNjN6IG0tMTI1LTEyNWwtMTU2LTk0LTk0IDMyIDk0LTEyNiAxNTYgMTg4eiBtMCAyNTBsLTE1Ni05NC05NCAzMiA5NC0xMjUgMTU2IDE4N3ogbTAgMjUwbC0xNTYtOTQtOTQgMzIgOTQtMTI1IDE1NiAxODd6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InJhZGlvLWdyb3VwIiB1bmljb2RlPSImI3hlODA0OyIgZD0iTTAgNzg4aDEwMDB2NjJoLTEwMDB2LTYyeiBtMC0xMjVoMTAwMHY2MmgtMTAwMHYtNjJ6IG0zMTMtMTg4aDYyNXY2M2gtNjI1di02M3ogbTYyNS0xODdoLTYyNXYtNjNoNjI1djYzeiBtMC0zMTN2NjNoLTYyNXYtNjNoNjI1eiBtLTg0NCA0MzhjLTUwIDAtOTQgNDMtOTQgOTNzNDQgOTQgOTQgOTQgOTQtNDQgOTQtOTQtNDQtOTMtOTQtOTN6IG0wIDEyNWMtMTkgMC0zMS0xMy0zMS0zMnMxMi0zMSAzMS0zMSAzMSAxMyAzMSAzMS0xMiAzMi0zMSAzMnogbTAtMzgyYy01MCAwLTk0IDQ0LTk0IDk0czQ0IDk0IDk0IDk0IDk0LTM4IDk0LTk0LTQ0LTk0LTk0LTk0eiBtMCAxMjVjLTE5IDAtMzEtMTItMzEtMzFzMTItMzEgMzEtMzEgMzEgMTkgMzEgMzEtMTIgMzEtMzEgMzF6IG0wLTM2OWMtNTAgMC05NCA0NC05NCA5NHM0NCA5NCA5NCA5NCA5NC00NCA5NC05NC00NC05NC05NC05NHogbTAgMTI2Yy0xOSAwLTMxLTEzLTMxLTMyczEyLTMxIDMxLTMxIDMxIDEyIDMxIDMxLTEyIDMyLTMxIDMyeiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+CjxnbHlwaCBnbHlwaC1uYW1lPSJyaWNoLXRleHQiIHVuaWNvZGU9IiYjeGU4MDU7IiBkPSJNOTM4IDc4OGgtODc1Yy0zOCAwLTYzLTI1LTYzLTYzdi03NTBjMC0zOCAyNS02MyA2My02M2g4NzVjMzcgMCA2MiAyNSA2MiA2M3Y3NTBjMCAzOC0yNSA2My02MiA2M3ogbS04NzUtMTMyaDUwdi0xOGgtNTB2MTh6IG0wLTMxaDUwdi0xOWgtNTB2MTl6IG04NzUtNjUwaC04NzV2NTU2aDg3NXYtNTU2eiBtMCA1NjloLTg3NXYxOWg4NzV2LTE5eiBtMCAzMWgtODc1djE5aDUwdi0xM2g5M3YxM2g4MnYtMTNoODd2MTNoODF2LTEzaDk0djEzaDc1di0xM2g5NHYxM2g4MXYtMTNoOTR2MTNoNDR2LTE5eiBtLTY1NyA1MHYtMTloLTc1djE5aDc1eiBtLTc1IDEzdjE4aDgydi0xOGgtODJ6IG0yNTAtMTN2LTE5aC04MXYxOWg4MXogbS04MSAxM3YxOGg4MXYtMThoLTgxeiBtMjUwLTEzdi0xOWgtNzV2MTloNzV6IG0tNzUgMTN2MThoNzV2LTE4aC03NXogbTI1MC0xM3YtMTloLTgxdjE5aDgxeiBtLTgxIDEzdjE4aDgxdi0xOGgtODF6IG0yMTktMzJoLTUwdjE5aDUwdi0xOXogbTAgMzJoLTUwdjE4aDUwdi0xOHogbTAgMzFoLTUwdjZoLTk0di0xMmgtODF2MTJoLTg4di0xMmgtNzV2MTJoLTk0di0xMmgtODF2MTJoLTk0di0xMmgtNzV2MTJoLTkzdi0xMmgtNTB2MjVoODc1di0xOXogbTAgMzFoLTg3NXYxOWg4NzV2LTE5eiBtLTc1MC02MDB2NjNoNjI1di02M2gtNjI1eiBtNjI1IDEyNWgtNjI1djYzaDYyNXYtNjN6IG0tMTI1IDEyNWgtNTAwdjYzaDUwMHYtNjN6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InNlbGVjdCIgdW5pY29kZT0iJiN4ZTgwNjsiIGQ9Ik0wIDg1MHYtODc1aDBjMC0zOCAyNS02MyA2My02M2g2MjVjMzcgMCA2MiAyNSA2MiA2M2gwdjU2M2gyNTB2MzEyaC0xMDAweiBtNjMtNjJoNjI1di0xODhoLTYyNXYxODh6IG0wLTM3NWg2MjV2LTE4OGgtNjI1djE4OHogbTAtNDM4djE4OGg2MjV2LTE4OGgtNjI1eiBtODc1IDYyNWgtMTg4djE4OGgxODh2LTE4OHogbS04MTMgMTI1aDYzdi02MmgtNjN2NjJ6IG0wLTYyNWg2M3YtNjJoLTYzdjYyeiBtMTI1IDBoNjN2LTYyaC02M3Y2MnogbTEyNSAwaDYzdi02MmgtNjN2NjJ6IG0xODggMHYtNjJoLTYzdjYyaDYzeiBtLTQzOCAyNTBoNjN2LTYyaC02M3Y2MnogbTEyNSAwaDYzdi02MmgtNjN2NjJ6IG0xMjUgMGg2M3YtNjJoLTYzdjYyeiBtNDY5IDMwNmwtNjMgNjloMTE5bC01Ni02OXogbS03MTktMTgxdjYzaDYzdi02M2gtNjNsMCAweiBtMTI1IDB2NjNoNjN2LTYzaC02M2wwIDB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InRleHQtYXJlYSIgdW5pY29kZT0iJiN4ZTgwNzsiIGQ9Ik0xODggMTYzdjYyaDUwMHYtNjJoLTUwMGwwIDB6IG0wIDI1MGg2MjV2NjJoLTYyNXYtNjJsMCAweiBtMC02M3YtNjJoNjI1djYyaC02MjVsMCAweiBtNjI1IDI1MGgtNjI1di02Mmg2MjV2NjJsMCAweiBtMTg3LTYyNXY3NTBjMCAzOC0yNSA2My02MiA2M2gtODc1Yy0zOCAwLTYzLTI1LTYzLTYzdi03NTBjMC0zOCAyNS02MyA2My02M2g4NzVjMzcgMCA2MiAyNSA2MiA2M3ogbS02MiA3NTB2LTc1MGgtODc1djc1MGg4NzV6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InRleHQtaW5wdXQiIHVuaWNvZGU9IiYjeGU4MDg7IiBkPSJNOTM4IDYwMGgtNjU3djYzaDk0djYyaC05NC02Mi05NHYtNjJoOTR2LTYzaC0xNTZjLTM4IDAtNjMtMzEtNjMtNjJ2LTM3NWMwLTM4IDI1LTYzIDYzLTYzaDE1NnYtNjJoLTk0di02M2gyNTB2NjNoLTk0djYyaDY1N2MzNyAwIDYyIDI1IDYyIDYzdjM3NWMwIDMxLTI1IDYyLTYyIDYyeiBtLTg3NS00Mzd2Mzc1aDE1NnYtMzc1aC0xNTZ6IG04NzUgMGgtNjU3djM3NWg2NTd2LTM3NXoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0icGVuY2lsIiB1bmljb2RlPSImI3hlODA5OyIgZD0iTTIwMy03bDUwIDUxLTEzMSAxMzEtNTEtNTF2LTYwaDcydi03MWg2MHogbTI5MSA1MThxMCAxMi0xMiAxMi01IDAtOS00bC0zMDMtMzAycS00LTQtNC0xMCAwLTEyIDEzLTEyIDUgMCA5IDRsMzAzIDMwMnEzIDQgMyAxMHogbS0zMCAxMDdsMjMyLTIzMi00NjQtNDY1aC0yMzJ2MjMzeiBtMzgxLTU0cTAtMjktMjAtNTBsLTkzLTkzLTIzMiAyMzMgOTMgOTJxMjAgMjEgNTAgMjEgMjkgMCA1MS0yMWwxMzEtMTMxcTIwLTIyIDIwLTUxeiIgaG9yaXotYWR2LXg9Ijg1Ny4xIiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iZmlsZS1pbnB1dCIgdW5pY29kZT0iJiN4ZTgwYTsiIGQ9Ik00NjkgMTYzaC00Njl2LTI1MWg5Mzh2MjUxaC00Njl6IG00MDYtMTI1aC0xMjV2NjJoMTI1di02MnogbS02NTYgNTAwbDI1MCAyNTAgMjUwLTI1MGgtMTU2di0zMTNoLTE4OHYzMTN6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9ImhpZGRlbi1pbnB1dCIgdW5pY29kZT0iJiN4ZTgwYjsiIGQ9Ik02MyA1MzhsNjIgMCAwIDYyLTYyIDB6IG0xMjUgMGw2MiAwIDAgNjItNjIgMHogbTEyNSAwbDYyIDAgMCA2Mi02MiAweiBtMTI1IDBsNjIgMCAwIDYyLTYyIDB6IG0xMjUgMGw2MiAwIDAgNjItNjIgMHogbTEyNSAwbDYyIDAgMCA2Mi02MiAweiBtMTI1IDBsNjIgMCAwIDYyLTYyIDB6IG0tODEzLTYzbDYzIDAgMCA2My02MyAweiBtOTM4LTYybDYyIDAgMCA2Mi02MiAweiBtLTkzOC02M2w2MyAwIDAgNjMtNjMgMHogbTkzOC02Mmw2MiAwIDAgNjItNjIgMHogbS05MzgtNjNsNjMgMCAwIDYzLTYzIDB6IG05MzgtNjJsNjIgMCAwIDYyLTYyIDB6IG0tODEzLTYzbDYzIDAgMCA2My02MyAweiBtMTI1IDBsNjMgMCAwIDYzLTYzIDB6IG0xMjUgMGw2MyAwIDAgNjMtNjMgMHogbTEyNSAwbDYzIDAgMCA2My02MyAweiBtMTI1IDBsNjMgMCAwIDYzLTYzIDB6IG0xMjUgMGw2MyAwIDAgNjMtNjMgMHogbTEyNSAwbDYzIDAgMCA2My02MyAweiBtNjMgNDM4bDYyIDAgMCA2Mi02MiAweiBtLTkzOC00MzhsNjMgMCAwIDYzLTYzIDB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KPGdseXBoIGdseXBoLW5hbWU9InJlc2l6ZS12ZXJ0aWNhbCIgdW5pY29kZT0iJiN4ZTgwYzsiIGQ9Ik0zOTMgNjcxcTAtMTQtMTEtMjV0LTI1LTEwaC03MXYtNTcyaDcxcTE1IDAgMjUtMTB0MTEtMjUtMTEtMjZsLTE0My0xNDJxLTEwLTExLTI1LTExdC0yNSAxMWwtMTQzIDE0MnEtMTAgMTEtMTAgMjZ0MTAgMjUgMjUgMTBoNzJ2NTcyaC03MnEtMTQgMC0yNSAxMHQtMTAgMjUgMTAgMjZsMTQzIDE0MnExMSAxMSAyNSAxMXQyNS0xMWwxNDMtMTQycTExLTExIDExLTI2eiIgaG9yaXotYWR2LXg9IjQyOC42IiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iYnV0dG9uLWlucHV0IiB1bmljb2RlPSImI3hlODBkOyIgZD0iTTYyIDUzOGw4NzUgMCAwIDYyLTg3NSAweiBtLTYyLTM3NWw2MyAwIDAgMzc1LTYzIDB6IG02My02M2w4NzUgMCAwIDYzLTg3NSAweiBtODc1IDYzbDYyIDAgMCAzNzUtNjIgMHogbS01NTIgMjgwcS0zNCAwLTU0LTI1LTE5LTI1LTE5LTY4IDAtNDMgMTktNjggMjAtMjUgNTQtMjUgMzMgMCA1MyAyNSAxOSAyNSAxOSA2OCAwIDQzLTE5IDY4LTIwIDI1LTUzIDI1eiBtMCAyNXE0OCAwIDc2LTMyIDI5LTMyIDI5LTg2IDAtNTQtMjktODYtMjgtMzItNzYtMzItNDggMC03NyAzMi0yOSAzMi0yOSA4NiAwIDU0IDI5IDg2IDI5IDMyIDc3IDMyeiBtMTUzLTRsMzEgMCAwLTk2IDEwMiA5NiA0MCAwLTExMy0xMDYgMTIxLTEyMi00MSAwLTEwOSAxMTAgMC0xMTAtMzEgMCAwIDIyOHoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgo8Z2x5cGggZ2x5cGgtbmFtZT0iYXR0YWNoIiB1bmljb2RlPSImI3hlODBlOyIgZD0iTTc4MyA3N3EwLTY1LTQ0LTEwOXQtMTA5LTQ0cS03NSAwLTEzMSA1NWwtNDM0IDQzNHEtNjMgNjQtNjMgMTUxIDAgODggNjIgMTUwdDE1MCA2MnE4OCAwIDE1Mi02M2wzMzgtMzM4cTUtNSA1LTEyIDAtOS0xNy0yNnQtMjYtMTdxLTcgMC0xMyA1bC0zMzggMzM5cS00NCA0My0xMDEgNDMtNTkgMC0xMDAtNDJ0LTQwLTEwMXEwLTU4IDQyLTEwMWw0MzMtNDMzcTM1LTM2IDgxLTM2IDM2IDAgNTkgMjR0MjQgNTlxMCA0Ni0zNiA4MWwtMzI0IDMyNHEtMTQgMTQtMzMgMTQtMTYgMC0yNy0xMXQtMTEtMjdxMC0xOCAxNC0zM2wyMjktMjI4cTYtNiA2LTEzIDAtOS0xOC0yNnQtMjYtMTdxLTcgMC0xMiA1bC0yMjkgMjI5cS0zNSAzNC0zNSA4MyAwIDQ2IDMyIDc4dDc3IDMycTQ5IDAgODMtMzZsMzI1LTMyNHE1NS01NCA1NS0xMzF6IiBob3Jpei1hZHYteD0iNzg1LjciIC8+CjwvZm9udD4KPC9kZWZzPgo8L3N2Zz4=) format("svg");font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:form-builder-font;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.frmb .field-actions a:hover,.frmb li .close-field:hover{text-decoration:none}.icon-autocomplete:before{content:'\e800'}.icon-calendar:before{content:'\e801'}.icon-checkbox:before{content:'\e802'}.icon-checkbox-group:before{content:'\e803'}.icon-radio-group:before{content:'\e804'}.icon-rich-text:before{content:'\e805'}.icon-select:before{content:'\e806'}.icon-text-area:before{content:'\e807'}.icon-text-input:before{content:'\e808'}.icon-pencil:before{content:'\e809'}.icon-file-input:before{content:'\e80a'}.icon-hidden-input:before{content:'\e80b'}.icon-resize-vertical:before{content:'\e80c'}.icon-button-input:before{content:'\e80d'}.icon-attach:before{content:'\e80e'}@-webkit-keyframes PLACEHOLDER{0%{height:1px}100%{height:15px}}.cb-wrap{width:26%}.cb-wrap h4{margin-top:0;color:#666}.cb-wrap .save:hover{color:#08fe00}@media (max-width:481px){.cb-wrap{width:64px}.cb-wrap h4{display:none}}.frmb-control li{cursor:move;list-style:none;margin:0 0 3px;padding:10px;text-align:left;background:#fff;-webkit-user-select:none;user-select:none}.frmb-control li:first-child{border-radius:5px 5px 0 0}.frmb-control li:last-child{border-radius:0 0 5px 5px}.frmb-control li:before{margin-right:10px;font-size:16px}.frmb-control li:hover{background-color:#f2f2f2}.frmb-control li.ui-state-highlight{width:0;overflow:hidden;padding:0;margin:0;border:0}.frmb-control li.smallme{-webkit-transform:scale(.2);transform:scale(.2)}.frmb-control li.ui-sortable-helper{border-radius:5px;-webkit-transition:box-shadow 250ms,-webkit-transform 250ms;transition:box-shadow 250ms,-webkit-transform 250ms;transition:box-shadow 250ms,transform 250ms;transition:box-shadow 250ms,transform 250ms,-webkit-transform 250ms;-webkit-transform:scale(1.1);transform:scale(1.1);box-shadow:2px 2px 6px 0 #666;border:1px solid #fff}.frmb-control li.moving{opacity:.6}@media (max-width:481px){.frmb-control li:before{font-size:30px}.frmb-control li span{display:none}}.frmb-control{margin:0;padding:0}.form-actions .clear-all:hover{color:#fff}.frmb{list-style-type:none;min-height:200px;margin:0 6px 0 0;padding:0;-webkit-transition:background-color .5s ease-in-out;transition:background-color .5s ease-in-out}.frmb.removing{overflow:hidden}.empty .frmb{border:3px dashed #ccc;margin-right:5px;background-color:rgba(255,255,255,.25)}.frmb li{padding:6px;clear:both;margin-left:0;margin-bottom:3px;background-color:#fff;-webkit-transition:background-color 250ms ease-in-out,margin-top .5s;transition:background-color 250ms ease-in-out,margin-top .5s}.frmb li.hidden-field{background-color:rgba(255,255,255,.6)}.frmb li:first-child{border-top-right-radius:5px;border-top-left-radius:5px}.frmb li:first-child .field-actions .btn:last-child{border-radius:0 5px 0 0}.frmb li:last-child{border-bottom-right-radius:5px;border-bottom-left-radius:5px}.frmb li:hover{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.frmb li:hover li :hover{background:#fefefe}@keyframes PLACEHOLDER{0%{height:0}100%{height:15px}}.frmb li.frmb-placeholder,.frmb li.ui-state-highlight{height:0;padding:0;background:-webkit-radial-gradient(center ellipse,#545454 0,transparent 75%);background:radial-gradient(ellipse at center,#545454 0,transparent 75%);border:0;-webkit-clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);visibility:visible;overflow:hidden;margin-bottom:3px;-webkit-animation:PLACEHOLDER 250ms forwards;animation:PLACEHOLDER 250ms forwards}.frmb li.moving,.frmb li.ui-sortable-helper{-webkit-transition:box-shadow .5s ease-in-out;transition:box-shadow .5s ease-in-out;box-shadow:2px 2px 6px 0 #666;border:1px solid #fff;border-radius:5px}.frmb li.disabled{z-index:1}.frmb li.disabled [type=checkbox]{float:left;margin-right:10px}.frmb li.disabled h2{border-bottom:0 none}.frmb li.disabled label{font-size:12px;color:#666}.frmb li.disabled .prev-holder{cursor:default;line-height:28px;padding-left:5px}.frmb li .close-field{position:absolute;color:#666;left:50%;bottom:6px;background:#fff;border-top:1px solid #d7d7d7;border-left:1px solid #d7d7d7;border-right:1px solid #D7D7D7;-webkit-transform:translateX(-50%);transform:translateX(-50%);padding:0 5px;border-top-right-radius:3px;border-top-left-radius:3px;cursor:pointer;-webkit-transition:background-color 250ms ease-in-out;transition:background-color 250ms ease-in-out}.frmb li.delete:hover,.frmb li.delete:hover .close-field,.frmb li.deleting,.frmb li.deleting .close-field,.frmb li:hover li.delete:hover,.frmb li:hover li.delete:hover .close-field{background-color:#fdd}.frmb li.deleting{z-index:20;pointer-events:none}.frmb.disabled{padding:0 5px}.frmb.disabled :hover{border-color:transparent}.frmb.disabled .form-element{float:none;margin-bottom:10px;overflow:visible;padding:5px 0;position:relative}.frmb .frm-holder{display:none}.frmb .tooltip{left:20px}.frmb .prev-holder{display:block;margin-top:12px}.frmb .prev-holder input[type=color]{width:60px;padding:2px;display:inline-block}.frmb .prev-holder input[type=date]{width:auto}.frmb .prev-holder select[multiple]{height:auto}.frmb .required-asterisk{display:none}.frmb .field-label,.frmb .legend{color:#666;margin-bottom:5px}.frmb .disabled .field-label{display:block}.frmb .button-field .field-label{display:none}.frmb .field-actions{position:absolute;top:0;right:0}.frmb .field-actions .btn{display:inline-block;width:32px;height:32px;padding:0;opacity:0;border-radius:0;border-color:#b3b3b3;color:#b3b3b3;line-height:32px;font-size:16px;border-width:0 0 1px 1px}.frmb .field-actions .btn:first-child{border-bottom-left-radius:5px}.frmb .field-actions .toggle-form{font-size:.85em;background-color:rgba(255,255,255,.75)}.frmb .field-actions .toggle-form:hover{color:#000}.frmb .field-actions .del-button:hover{background-color:#c66865;color:#fff}.stage-wrap{position:relative;float:left;width:74%}@media (max-width:481px){.stage-wrap{width:calc(100% - 64px)}}.stage-wrap .action-links{width:calc(100% - 141px);display:none;float:right;overflow:hidden;text-align:right}.stage-wrap.empty:after{content:attr(data-content);position:absolute;text-align:center;top:50%;left:0;width:100%;margin-top:-1em}.stage-wrap .action-links .active{font-weight:700;color:#000}.option-actions{text-align:right}.sortable-options-wrap{width:81.33333333%;display:inline-block}ol.sortable-options{display:inline-block;width:100%;margin-left:2%;background:#b3b3b3;margin-bottom:0;border-radius:5px;list-style:none;padding:0}ol.sortable-options li{cursor:move;margin:1px}.tooltip-element,[tooltip]:hover:after{cursor:default;font-size:12px;color:#fff}ol.sortable-options li:nth-child(1) .remove,ol.sortable-options li:nth-child(2) .remove{display:none}ol.sortable-options li .remove{position:absolute;opacity:1;right:14px;height:17px;width:17px;line-height:17px;text-align:center;top:14px;font-size:18px;padding:0;color:#C10000}ol.sortable-options li .remove:hover{background-color:#C10000;text-decoration:none;color:#fff}ol.sortable-options input[type=checkbox],ol.sortable-options input[type=radio]{margin:0;width:7%}ol.sortable-options input[type=text]{width:calc(44.5% - 17px);margin:0 1%;float:none}.form-field .form-group{width:100%;clear:left;float:none}.form-field .form-group input[type=checkbox]{margin:12px 5px 0 2%}.form-elements .field-options .add-area .add{clear:both}.form-elements{padding:10px 5px;background:#f7f7f7;border-radius:3px;margin:12px 0 0;border:1px solid #d7d7d7}.form-elements input[type=text],.form-elements select{width:81.33333333%;-webkit-transition:background 250ms ease-in-out;transition:background 250ms ease-in-out;margin-left:2%;padding:6px 12px;border:1px solid #AFAFAB;background-color:#fff;float:left}.col-md-6 .form-elements input[type=text],.col-md-6 .form-elements select,.col-md-8 .form-elements input[type=text],.col-md-8 .form-elements select{width:100%}.form-elements .btn-group{margin-left:2%}.button-field .form-elements{margin-top:32px}[tooltip]{position:relative}[tooltip]:hover:after{background:#262626;background:rgba(0,0,0,.9);border-radius:5px 5px 5px 0;bottom:23px;content:attr(tooltip);padding:10px 5px;position:absolute;z-index:98;left:2px;width:230px;text-shadow:none;line-height:1.5em}.form-wrap:after,[tooltip]:hover:before{content:""}[tooltip]:hover:before{border:solid;border-color:#222 transparent;border-width:6px 6px 0;bottom:17px;left:2px;position:absolute;z-index:99;cursor:default}.tooltip-element{visibility:visible;background:#000;width:16px;height:16px;border-radius:8px;display:inline-block;text-align:center;line-height:16px;margin:0 5px}.kc-toggle{position:relative;margin:4px 0 0 2px;width:60px;height:21px;border-radius:3px;cursor:pointer;overflow:hidden;display:inline-block;background:#e9e9e9;border:1px solid #cbcbcb;vertical-align:bottom;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kc-toggle .kct-inner{position:absolute;top:0;left:-28px;width:115px;height:100%;-webkit-transition:left 150ms ease;transition:left 150ms ease}.kc-toggle.on .kct-inner{background:#e2e2e2;background:-webkit-linear-gradient(top,#e2e2e2 0,#fff 100%);background:linear-gradient(to bottom,#e2e2e2 0,#fff 100%);left:0}.kc-toggle input{display:none;position:absolute;z-index:-1;opacity:0;margin:0;padding:0;width:100%;height:100%}.kct-handle,.kct-off,.kct-on{position:relative}.kc-toggle .kct-on{color:#12a912}.kct-off{color:#666}.kct-handle,.kct-off,.kct-on{width:28px;height:100%;font-family:Arial,Tahoma,sans-serif;font-size:12px;text-align:center;line-height:22px;font-weight:700;float:left}.kct-handle{height:17px;background:#fff;background:-webkit-linear-gradient(top,#fff 0,#cecece 100%);background:linear-gradient(to bottom,#fff 0,#cecece 100%);border:1px solid #999;font-weight:100;color:#4b4b4b;text-shadow:none;border-radius:3px;margin:1px}textarea.idea-template{display:none;width:617px;color:#fefefe;font:13px/19px courier;padding-left:40px;height:1055px}.template-textarea-wrap{display:none}.form-wrap:after{display:table;clear:both}.cb-wrap,.stage-wrap{vertical-align:top}.action-links .action-links-inner{overflow:hidden;width:0;height:20px;-webkit-transition:width 250ms;transition:width 250ms}.action-links .dev-mode-link{-webkit-transition:color 250ms;transition:color 250ms;color:#666;cursor:pointer;padding-right:2px}.stage-wrap h4{margin-top:0;color:#666}.action-links a.clear-all:hover,.del-button:hover,ul.frmb span.required{color:#C10000}.action-links a{color:#666}.form-elements input[type=text].error{border-radius:0;border:1px solid #C10000}.form-elements input[type=text].fld-maxlength{width:10%}.form-elements input.field_error{background:#fefefe;border:1px solid #afafab}.form-elements .false-label,.form-elements label{width:16.66666667%;padding-top:7px;margin-bottom:0;text-align:right;font-weight:700;float:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-md-6 .form-elements .false-label,.col-md-6 .form-elements label,.col-md-8 .form-elements .false-label,.col-md-8 .form-elements label{display:block}.form-elements label.multiple,.form-elements label.required-label,.form-elements label.roles-label,.form-elements label.toggle-label{text-align:left;float:none;margin-bottom:-3px;font-weight:400;width:calc(81.3333% - 23px)}.form-elements label em{display:block;font-weight:400;font-size:.75em}.form-elements label.maxlength-label{line-height:1em}.form-group .available-roles{display:none;padding:5px 10px;margin:5px 0 10px 133px;width:434px;background:#e6e6e6;box-shadow:inset 0 0 2px 0 #999}.form-elements .available-roles label{font-weight:400;width:auto;float:none;display:inline}.form-elements .available-roles input{display:inline;top:auto}.form-elements,.form-group,.multi-row span,textarea{display:block}.form-elements:after,.form-group:after{content:".";display:block;height:0;clear:both;visibility:hidden}.form-elements .field-options div:hover,.frmb .legend,.frmb .prev-holder,.frmb .prev-holder *{cursor:move}.prev-holder input[type=checkbox],.prev-holder input[type=radio]{margin-right:5px}.frmb-tt{position:absolute;border:1px solid #262626;background-color:#666;border-radius:5px;padding:5px;color:#fff;z-index:20;text-align:left;font-size:12px;pointer-events:none}.frmb-tt:after,.frmb-tt:before{content:'';position:absolute;border-style:solid;border-width:10px 10px 0;border-color:#666 transparent;display:block;width:0;z-index:1;margin-left:-10px;bottom:-10px;left:20px}.frmb-tt a{text-decoration:underline;color:#fff}.fb-mobile .frmb li .del-button,.fb-mobile .frmb li .toggle-form,.frmb li:hover .del-button,.frmb li:hover .toggle-form{opacity:1}.fresh .frmb .legend .element-info{display:inline-block;visibility:visible;line-height:12px;margin-left:6px}.frmb-xml pre.ui-dialog-content{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;font-size:12px;padding:0 30px;margin-top:0}.action-links a.export-xml:hover,.toggle-form.closed:hover{color:#6fc245}a.btn.toggle-form{margin-left:5px;opacity:0}a.btn.toggle-form:hover{border-color:#ccc}a.btn.toggle-form:before{margin:0}.formb-field-vars .copy-var{display:inline-block;width:24px;height:24px;background:#999;text-indent:-9999px}.ite-warning{box-shadow:1px 1px 4px 0 rgba(50,50,50,.5);border-radius:0;border:1px solid #ddd;font-size:12px;line-height:1.5em}.ite-warning .ui-dialog-buttonpane{height:27px}.ite-warning button{color:#4479B9;margin:0}.ite-warning button:focus{outline:0;font-weight:700}.ite-warning button.cancel:before{content:"|";margin-right:15px;padding:0}.ite-warning .ui-dialog-content{padding:0 15px 10px}.ite-warning .ui-dialog-titlebar-close{display:none}.ite-warning .ui-widget-header{height:15px}.ite-warning h3{color:#666;margin-bottom:10px}.ite-warning button{background:0 0;padding:2px 5px}.required-asterisk{display:none;color:#C10000}.ui-button .ui-button-text{line-height:0}.form-builder-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:none;z-index:10}.form-builder-overlay.visible{display:block}.form-builder-dialog{position:absolute;border-radius:5px;background:#fff;z-index:20;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);top:0;left:0;padding:10px;box-shadow:0 3px 10px #000}.form-builder-dialog h3{margin-top:0}.form-builder-dialog.data-dialog{width:65%;background-color:#23241f}.form-builder-dialog.data-dialog pre{background:0 0;border:0;box-shadow:none;margin:0;color:#f2f2f2}.form-builder-dialog.positioned{-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.form-builder-dialog.positioned .button-wrap:before{content:'';width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-top:10px solid #fff;position:absolute;left:50%;top:100%;-webkit-transform:translate(-50%,10px);transform:translate(-50%,10px)}.form-builder-dialog .button-wrap{position:relative;margin-top:10px;text-align:right;clear:both}.form-builder-dialog .button-wrap .btn{margin-left:10px} \ No newline at end of file diff --git a/dist/form-builder.min.js b/dist/form-builder.min.js index 7da026271..9e3cd6455 100644 --- a/dist/form-builder.min.js +++ b/dist/form-builder.min.js @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ "use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},formBuilderHelpers=function(e,t){var a={doCancel:!1};return t.events=formBuilderEvents(e,a),a.attrString=function(e){var t=[];for(var l in e)e.hasOwnProperty(l)&&(l=a.safeAttr(l,e[l]),t.push(l.name+l.value));return t.join(" ")},a.hyphenCase=function(e){return e=e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}),e.replace(/\s/g,"-").replace(/^-+/g,"")},a.safeAttrName=function(e){var t={className:"class"};return t[e]||a.hyphenCase(e)},a.safeAttr=function(e,t){return e=a.safeAttrName(e),t=window.JSON.stringify(t),t=t?"="+t:"",{name:e,value:t}},a.mobileClass=function(){var e="";return function(t){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(e=" fb-mobile")}(navigator.userAgent||navigator.vendor||window.opera),e},a.startMoving=function(e,t){e=e,t.item.show().addClass("moving"),a.startIndex=$("li",this).index(t.item)},a.stopMoving=function(e,t){e=e,t.item.removeClass("moving"),a.doCancel&&($(t.sender).sortable("cancel"),$(this).sortable("cancel")),a.save(),a.doCancel=!1},a.beforeStop=function(t,l){t=t;var s=document.getElementById(e.formID),o=s.children.length-1,n=[];a.stopIndex=l.placeholder.index()-1,l.item.parent().hasClass("frmb-control")&&n.push(!0),e.prepend&&n.push(0===a.stopIndex),e.append&&n.push(a.stopIndex+1===o),a.doCancel=n.some(function(e){return e===!0})},a.safename=function(e){return e.replace(/\s/g,"-").replace(/[^a-zA-Z0-9\-]/g,"").toLowerCase()},a.forceNumber=function(e){return e.replace(/[^0-9]/g,"")},a.initTooltip=function(e){var t=e.find(".tooltip");e.mouseenter(function(){t.outerWidth()>200&&t.addClass("max-width"),t.css("left",e.width()+14),t.stop(!0,!0).fadeIn("fast")}).mouseleave(function(){e.find(".tooltip").stop(!0,!0).fadeOut("fast")}),t.hide()},a.xmlSave=function(e){var a=$(e).toXML();return window.JSON.stringify(a)===window.JSON.stringify(t.formData)?!1:void(t.formData=a)},a.jsonSave=function(){e.notify.warning("json data not available yet")},a.save=function(){var l=a.getElement(),s=document.getElementById(e.formID),o={xml:a.xmlSave,json:a.jsonSave};o[e.dataType](s),l&&(l.value=t.formData,window.jQuery?$(l).trigger("change"):l.onchange())},a.getElement=function(){var l=!1;return t.element&&(l=t.element,l.id||a.makeId(l),l.onchange||(l.onchange=function(){e.notify.success(e.messages.formUpdated)})),l},a.makeId=function(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0],t=(new Date).getTime();return e.tagName+"-"+t},a.updatePreview=function(e){var t=e.data("fieldData")||{},l=e.attr("class");if(-1===l.indexOf("ui-sortable-handle")){var s,o=$(".prev-holder",e),n=$(".fld-subtype",e).val();l=l.replace("-field form-field",""),s=n?n:l;var i,r={type:s,label:$(".fld-label",e).val()},c=$(".fld-maxlength",e);c&&(r.maxlength=c.val()),r.className=$(".fld-className",e).val()||t.className||"";var d=$(".fld-placeholder",e).val();d&&(r.placeholder=d);var p=$(".btn-style",e).val();p&&(r.style=p),"checkbox"===l&&(r.toggle=$(".checkbox-toggle",e).is(":checked")),l.match(/(select|checkbox-group|radio-group)/)&&(r.values=[],r.multiple=$('[name="multiple"]',e).is(":checked"),$(".sortable-options li",e).each(function(){var e={};e.selected=$(".option-selected",this).is(":checked"),e.value=$(".option-value",this).val(),e.label=$(".option-label",this).val(),r.values.push(e)})),r.className=a.classNames(e,r),e.data("fieldData",r),i=a.fieldPreview(r),o.html(i),$("input[toggle]",o).kcToggle()}},a.fieldPreview=function(t){var l,s="",o=(new Date).getTime(),n=t.toggle?"toggle":"",i=a.attrString(t);switch(t.type){case"textarea":case"rich-text":s="";break;case"button":case"submit":s="";break;case"select":var r="",c=t.multiple?"multiple":"";for(t.values.reverse(),t.placeholder&&(r+=""),l=t.values.length-1;l>=0;l--){var d=t.values[l].selected&&!t.placeholder?"selected":"";r+='"}s="<"+t.type+' class="'+t.className+'" '+c+">"+r+"";break;case"checkbox-group":case"radio-group":var p=t.type.replace("-group",""),u=p+"-"+o;for(t.values.reverse(),l=t.values.length-1;l>=0;l--){var m=t.values[l].selected?"checked":"",f=p+"-"+o+"-"+l;s+='
      "}break;case"text":case"password":case"email":case"date":case"file":s="";break;case"color":s=' '+e.messages.selectColor;break;case"hidden":case"checkbox":s='";break;case"autocomplete":s='';break;default:s="<"+t.type+">"}return s},a.updateMultipleSelect=function(){$(document.getElementById(e.formID)).on("change",'input[name="multiple"]',function(){var e=$(this).parents(".field-options:eq(0)").find(".sortable-options input.option-selected");this.checked?e.each(function(){$(this).prop("type","checkbox")}):e.each(function(){$(this).removeAttr("checked").prop("type","radio")})})},a.debounce=function(e){var t,a=arguments.length<=1||void 0===arguments[1]?250:arguments[1],l=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];return function(){var s=this,o=arguments,n=function(){t=null,l||e.apply(s,o)},i=l&&!t;clearTimeout(t),t=setTimeout(n,a),i&&e.apply(s,o)}},a.htmlEncode=function(e){return $("
      ").text(e).html()},a.htmlDecode=function(e){return $("
      ").html(e).text()},a.validateForm=function(){var t=$(document.getElementById(e.formID)),a=[];$('input[name="label"], input[type="text"].option',t).each(function(){if(""===$(this).val()){var t=$(this).parents("li.form-field"),l=$(this);a.push({field:t,error:e.messages.labelEmpty,attribute:l})}}),a.length&&(alert("Error: "+a[0].error),$("html, body").animate({scrollTop:a[0].field.offset().top},1e3,function(){var e=$(".toggle-form",a[0].field).attr("id");$(".toggle-form",a[0].field).addClass("open").parent().next(".prev-holder").slideUp(250),$("#"+e+"-fld").slideDown(250,function(){a[0].attribute.addClass("error")})}))},a.disabledTT={className:"frmb-tt",add:function(t){var l=e.messages.fieldNonEditable;if(l){var s=a.markup("p",l,{className:a.disabledTT.className});t.append(s)}},remove:function(e){$(".frmb-tt",e).remove()}},a.classNames=function(e,t){var a=["checkbox","checkbox-group","radio-group","button"],l=t.type,s=t.style,o=[],n={button:"btn",submit:"btn"},i=e[0].querySelector(".fld-className").value,r=n[l];return i&&o.push(i),r?(o.push(r),s&&o.push(r+"-"+s)):-1===a.indexOf(l)&&o.push("form-control"),o.join(" ")},a.markup=function(e){var t=arguments.length<=1||void 0===arguments[1]?"":arguments[1],l=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],s=void 0,o=document.createElement(e),n=function(e){return Array.isArray(e)?"array":"undefined"==typeof e?"undefined":_typeof(e)},i={string:function(e){o.innerHTML=e},object:function(e){return o.appendChild(e)},array:function(e){for(var t=0;t').insertAfter(t).append(t);o.toggleClass("on",t.is(":checked"));var n='
      '+s.labels.on+"
      ",i='
      '+s.labels.off+"
      ",r='
      ',c='
      '+n+r+i+"
      ";o.append(c),o.click(function(){t.attr("checked",!t.attr("checked")),e(this).toggleClass("on")})};e.fn.kcToggle=function(a){var l=this;return l.each(function(){var l=e(this);if(!l.data("kcToggle")){var s=new t(l,a);l.data("kcToggle",s)}})}}(jQuery),function(e){var t=function(t,a){var l=this,s={dataType:"xml",disableFields:{},append:!1,prepend:!1,defaultFields:[],fieldRemoveWarn:!1,roles:{1:"Administrator"},serializePrefix:"frmb",messages:{addOption:"Add Option",allFieldsRemoved:"All fields were removed.",allowSelect:"Allow Select",autocomplete:"Autocomplete",button:"Button",cannotBeEmpty:"This field cannot be empty",checkboxGroup:"Checkbox Group",checkbox:"Checkbox",checkboxes:"Checkboxes",className:"Class",clearAllMessage:"Are you sure you want to clear all fields?",clearAll:"Clear",close:"Close",copy:"Copy To Clipboard",dateField:"Date Field",description:"Help Text",descriptionField:"Description",devMode:"Developer Mode",editNames:"Edit Names",editorTitle:"Form Elements",editXML:"Edit XML",fieldDeleteWarning:!1,fieldVars:"Field Variables",fieldNonEditable:"This field cannot be edited.",fieldRemoveWarning:"Are you sure you want to remove this field?",fileUpload:"File Upload",formUpdated:"Form Updated",getStarted:"Drag a field from the right to this area",hide:"Edit",hidden:"Hidden Input",label:"Label",labelEmpty:"Field Label cannot be empty",limitRole:"Limit access to one or more of the following roles:",mandatory:"Mandatory",maxlength:"Max Length",minOptionMessage:"This field requires a minimum of 2 options",name:"Name",no:"No",off:"Off",on:"On",option:"Option",optional:"optional",optionLabelPlaceholder:"Label",optionValuePlaceholder:"Value",optionEmpty:"Option value required",paragraph:"Paragraph",placeholder:"Placeholder",placeholders:{value:"Value",label:"Label",text:"",textarea:"",email:"Enter you email",placeholder:"",className:"space separated classes",password:"Enter your password"},preview:"Preview",radioGroup:"Radio Group",radio:"Radio",removeMessage:"Remove Element",remove:"×",required:"Required",richText:"Rich Text Editor",roles:"Access",save:"Save",selectOptions:"Options",select:"Select",selectColor:"Select Color",selectionsMessage:"Allow Multiple Selections",size:"Size",sizes:{xs:"Extra Small",sm:"Small",m:"Default",lg:"Large"},style:"Style",styles:{btn:{"default":"Default",danger:"Danger",info:"Info",primary:"Primary",success:"Success",warning:"Warning"}},subtype:"Type",subtypes:{text:["text","password","email","color"],button:["button","submit"]},text:"Text Field",textArea:"Text Area",toggle:"Toggle",warning:"Warning!",viewXML:"</>",yes:"Yes"},notify:{error:function(e){return console.error(e)},success:function(e){return console.log(e)},warning:function(e){return console.warn(e)}}};s.messages.subtypes.password=s.messages.subtypes.text,s.messages.subtypes.email=s.messages.subtypes.text,s.messages.subtypes.color=s.messages.subtypes.text,s.messages.subtypes.submit=s.messages.subtypes.button;var o=e.extend(!0,s,t),n=e(a),i="frmb-"+e("ul[id^=frmb-]").length++;o.formID=i,l.element=a;for(var r=e("
        ").attr("id",i).addClass("frmb"),c=formBuilderHelpers(o,l),d=1,p=i+"-control-box",u=[{label:o.messages.text,attrs:{type:"text",className:"text-input",name:"text-input"}},{label:o.messages.select,attrs:{type:"select",className:"select",name:"select"}},{label:o.messages.textArea,attrs:{type:"textarea",className:"text-area",name:"textarea"}},{label:o.messages.radioGroup,attrs:{type:"radio-group",className:"radio-group",name:"radio-group"}},{label:o.messages.hidden,attrs:{type:"hidden",className:"hidden-input",name:"hidden-input"}},{label:o.messages.fileUpload,attrs:{type:"file",className:"file-input",name:"file-input"}},{label:o.messages.dateField,attrs:{type:"date",className:"calendar",name:"date-input"}},{label:o.messages.checkboxGroup,attrs:{type:"checkbox-group",className:"checkbox-group",name:"checkbox-group"}},{label:o.messages.checkbox,attrs:{type:"checkbox",className:"checkbox",name:"checkbox"}},{label:o.messages.button,attrs:{type:"button",className:"button-input",name:"button"}},{label:o.messages.autocomplete,attrs:{type:"autocomplete",className:"autocomplete",name:"autocomplete"}}],m=e("
          ",{id:p,"class":"frmb-control"}),f=u.length-1;f>=0;f--){var v=e("
        • ",{"class":"icon-"+u[f].attrs.className,type:u[f].type,name:u[f].className,label:u[f].label});for(var g in u[f])u[f].hasOwnProperty(g)&&v.data(g,u[f][g]);var h=c.markup("span",u[f].label);v.html(h).appendTo(m)}var b="xml"===o.dataType?o.messages.viewXML:o.messages.viewJSON,y=c.markup("button",b,{id:i+"-view-data",type:"button",className:"view-data btn btn-default"}),k=c.markup("button",o.messages.clearAll,{id:i+"-clear-all",type:"button",className:"clear-all btn btn-default"}),x=c.markup("button",o.messages.save,{className:"btn btn-primary fb-save",id:i+"-save",type:"button"}),w=c.markup("div",[k,y,x],{className:"form-actions btn-group"}).outerHTML;r.sortable({cursor:"move",opacity:.9,revert:150,beforeStop:c.beforeStop,start:c.startMoving,stop:c.stopMoving,cancel:"input, select, .disabled, .form-group, .btn",placeholder:"frmb-placeholder"}),m.sortable({helper:"clone",opacity:.9,connectWith:r,cursor:"move",placeholder:"ui-state-highlight",start:c.startMoving,stop:c.stopMoving,revert:150,beforeStop:c.beforeStop,update:function(e,t){return c.doCancel?!1:(e=e,q(t.item,!0),void(c.doCancel=!0))}});var N=e("
          ",{id:i+"-stage-wrap","class":"stage-wrap"}),C=e("
          ",{id:i+"-form-wrap","class":"form-wrap form-builder"+c.mobileClass()});n.before(N).appendTo(N);var E=e("
          ",{id:i+"-cb-wrap","class":"cb-wrap"}).append(m[0],w);N.append(r,E),N.before(C),C.append(N,E);var T=c.debounce(function(){var t=e(this).parents(".form-field:eq(0)");c.updatePreview(t),c.save()});r.on("change blur keyup",".form-elements input, .form-elements select",T);var M=function(){var t=""!==n.val()?e.parseXML(n.val()):!1,a=e(t).find("field");if(a.length>0)l.formData=t,a.each(function(){q(e(this))});else if(!t)if(o.defaultFields.length){o.defaultFields.reverse();for(var s=o.defaultFields.length-1;s>=0;s--)I(o.defaultFields[s]);N.removeClass("empty")}else o.prepend||o.append||N.addClass("empty").attr("data-content",o.messages.getStarted);e("li.form-field:not(.disabled)",r).each(function(){c.updatePreview(e(this))}),S()},D=function(){var e={xml:M,json:function(){console.log("coming soon")}};e[o.dataType]()},S=function(){var t=[];if(o.prepend&&!e(".disabled.prepend",r).length){var a=c.markup("li",o.prepend,{className:"disabled prepend"});t.push(!0),r.prepend(a)}if(o.append&&!e(".disabled.append",r).length){var l=c.markup("li",o.append,{className:"disabled append"});t.push(!0),r.append(l)}t.some(function(e){return e===!0})&&N.removeClass("empty")};r.on("mousemove","li.disabled",function(t){e(".frmb-tt",this).css({left:t.offsetX-16,top:t.offsetY-34})}),r.on("mouseenter","li.disabled",function(){c.disabledTT.add(e(this))}),r.on("mouseleave","li.disabled",function(){c.disabledTT.remove(e(this))});var A=function(e){var t=(new Date).getTime();return e.data("attrs").name+"-"+t},q=function(e){var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],a=e.data("attrs")||{},l=a.type||e.attr("type"),s={};s.label=c.htmlEncode(e.attr("label")),s.name=t?A(e):a.name||e.attr("name"),s.role=e.attr("role"),s.required=e.attr("required"),s.maxlength=e.attr("maxlength"),s.toggle=e.attr("toggle"),s.multiple=l.match(/(checkbox-group)/),s.type=l,s.description=void 0!==e.attr("description")?c.htmlEncode(e.attr("description")):"",I(s),N.removeClass("empty")},L=function(e){P(o.messages.textArea,B(e),e)},O=function(e){var t=e.type||"text";P(o.messages[t],B(e),e)},$=function(t){t.values&&t.values.length||(t.values=[{selected:!0},{selected:!1}],t.values=t.values.map(function(e,t){return e.label=o.messages.option+" "+(t+1),e.value=c.hyphenCase(e.label),e}));var a="";for(a+=B(t),a+='
          ',a+='",a+='
          ',"select"===t.type&&(a+='
          ',a+='",a+='",a+="
          "),a+='
            ',f=0;f";var l=c.markup("a",o.messages.addOption,{className:"add add-opt"});a+=c.markup("div",l,{className:"option-actions"}).outerHTML,a+="
          ",a+="
          ",P(o.messages.select,a,t),e(".sortable-options").sortable()},I=function(e){var t={select:$,"rich-text":L,textarea:L,"radio-group":$,"checkbox-group":$};e=e||"",t[e.type]?t[e.type](e):O(e)},B=function _(t){var a,_=[],l=void 0!==t.role?t.role.split(","):[],s=c.markup("label",o.messages.label),n=c.markup("input",null,{type:"text",name:"label",value:t.label,className:"fld-label form-control"}),i=c.markup("div",[s,n],{className:"form-group label-wrap"});if(_.push(i.outerHTML),t.size=t.size||"m",t.style=t.style||"default","button"!==t.type){var r=c.markup("label",o.messages.description,{"for":"description-"+d}),p=c.markup("input",null,{type:"text",className:"fld-description form-control",name:"description",id:"description-"+d,value:t.description}),u=c.markup("div",[r,p],{"class":"form-group description-wrap"});_.push(u.outerHTML)}_.push(j(t.type)),_.push(F(t.style,t.type)),_.push(H("placeholder",t.type)),_.push(H("className")),_.push('
          '),_.push('
          '),_.push('
          "),_.push(' "),_.push('
          ");for(a in o.roles)-1===e.inArray(a,["date","4"])&&_.push('
          ");return _.push("
          "),e.inArray(t.type,["checkbox","select","checkbox-group","date","autocomplete","radio-group","hidden","button"])<0&&(_.push('
          "),_.push('
          ')),_.join("")},j=function(e){var t=o.messages.subtypes,a="";if(t[e]){var l="";a+='",a='
          '+l+" "+a+"
          "}return a},F=function(e,t){var a={button:"btn"},l=o.messages.styles[a[t]],s="";if(l){var n="";s+='',s+='
          ',Object.keys(o.messages.styles[a[t]]).forEach(function(l){var n=e===l?"active":"";s+='"}),s+="
          ",s='
          '+n+" "+s+"
          "}return s},H=function(e){var t=arguments.length<=1||void 0===arguments[1]?"":arguments[1],a=["text","textarea","select"],l=o.messages.placeholders,s=l[e]||"",n="",i=[];"placeholder"===e&&-1===a.indexOf(t)&&i.push(!0);var r=i.some(function(e){return e===!0});if(!r){var c="";n+='',n='
          '+c+" "+n+"
          "}return n},P=function(t,a,l){var s=e(a).find('input[name="label"]').val(),n=s?s:t,i=c.markup("a",o.messages.remove,{id:"del_"+d,className:"del-button btn delete-confirm",title:o.messages.removeMessage}),p=c.markup("a",null,{id:"frm-"+d,className:"toggle-form btn icon-pencil",title:o.messages.hide}),u=c.markup("div",[p,i],{className:"field-actions"}).outerHTML,m=l.required,f=l.toggle||void 0,v=""!==l.description?'?':"",g=u;g+='"+v+' *",g+=c.markup("div","",{className:"prev-holder"}).outerHTML,g+='
          ',g+='
          ',g+='
          ',g+="";var h=c.markup("input",null,{className:"required",type:"checkbox",name:"required-"+d,id:"required-"+d,value:1});h.defaultChecked="true"===m,g+=h.outerHTML,g+=c.markup("label",o.messages.required,{className:"required-label","for":"required-"+d}).outerHTML,g+="
          ","checkbox"===l.type&&(g+='
          ',g+="",g+='",g+="
          "),g+=a,g+=c.markup("a",o.messages.close,{className:"close-field"}).outerHTML,g+="
          ",g+="
          ";var b=c.markup("li",g,{"class":l.type+"-field form-field",id:"frm-"+d+"-item"}),y=e(b);y.data("fieldData",{attrs:l}),"undefined"!=typeof c.stopIndex?e("> li",r).eq(c.stopIndex).after(y):r.append(y),c.updatePreview(y),e(document.getElementById("frm-"+d+"-item")).hide().slideDown(250),d++},z=function(e,t,a,l){var s={selected:l?"checkbox":"radio"},n={selected:a,label:"",value:""},i=Object.assign(n,t),r=[];for(var d in i)if(i.hasOwnProperty(d)){var p={type:s[d]||"text","class":"option-"+d,placeholder:o.messages.placeholders[d],value:i[d],name:e},u=c.markup("input",null,p);"selected"===d&&(u.checked=i.selected),r.push(u)}var m={className:"remove btn",title:o.messages.removeMessage};r.push(c.markup("a",o.messages.remove,m));var f=c.markup("li",r);return f.outerHTML};r.on("click touchstart",".remove",function(t){var a=e(this).parents(".form-field:eq(0)");t.preventDefault();var l=e(this).parents(".sortable-options:eq(0)").children("li").length;2>=l?o.notify.error("Error: "+o.messages.minOptionMessage):e(this).parent("li").slideUp("250",function(){e(this).remove()}),T.call(a)}),r.on("touchstart","input",function(t){if(t.handled===!0)return!1;if("checkbox"===e(this).attr("type"))e(this).trigger("click");else{e(this).focus();var a=e(this).val();e(this).val(a)}}),r.on("click touchstart",".toggle-form",function(t){if(t.stopPropagation(),t.preventDefault(),t.handled===!0)return!1;var a=e(this).attr("id");c.toggleEdit(a+"-item"),t.handled=!0}),c.toggleEdit=function(t){var a=document.getElementById(t),l=e(".toggle-form",a),s=e(".frm-holder",a);l.toggleClass("open"),e(".prev-holder",a).slideToggle(250),s.slideToggle(250)},r.on("keyup change",'input[name="label"]',function(){e(".field-label",e(this).closest("li")).text(e(this).val())}),r.delegate("input.error","keyup",function(){e(this).removeClass("error")}),r.on("keyup",'input[name="description"]',function(){var t=e(this).parents(".form-field:eq(0)"),a=e(".tooltip-element",t),l=e(this).val();if(""!==l)if(a.length)a.attr("tooltip",l).css("display","inline-block");else{var s='?';e(".field-label",t).after(s)}else a.length&&a.css("display","none")}),c.updateMultipleSelect(),r.delegate('input[name="name"]',"keyup",function(){e(this).val(c.safename(e(this).val())),""===e(this).val()?e(this).addClass("field_error").attr("placeholder",o.messages.cannotBeEmpty):e(this).removeClass("field_error")}),r.delegate("input.fld-maxlength","keyup",function(){e(this).val(c.forceNumber(e(this).val()))}),r.on("click touchstart",".delete-confirm",function(t){t.preventDefault();var a=this.getBoundingClientRect(),l=document.body.getBoundingClientRect(),s={pageX:a.left+a.width/2,pageY:a.top-l.top-12},n=e(this).attr("id").replace(/del_/,""),i=e(document.getElementById("frm-"+n+"-item")),d=function(){i.slideUp(250,function(){i.removeClass("deleting"),i.remove(),c.save()})};if(document.addEventListener("modalClosed",function(){i.removeClass("deleting")},!1),o.fieldRemoveWarn){var p=c.markup("h3",o.messages.warning),u=c.markup("p",o.messages.fieldRemoveWarning);c.confirm([p,u],d,s),i.addClass("deleting")}else d(i);1===e("> li",r).length&&N.addClass("empty").attr("data-content",o.messages.getStarted)}),r.on("click",".style-wrap button",function(){var t=e(this).val(),a=e(this).parent(),l=a.prev(".btn-style");l.val(t),e(this).siblings(".btn").removeClass("active"),e(this).addClass("active"),T.call(a)}),r.on("click","input.required",function(){var t=e(this).parents("li.form-field").find(".required-asterisk");t.toggle()}),r.on("click",'input[name="enable_roles"]',function(){var t=e(this).siblings("div.available-roles"),a=e(this);t.slideToggle(250,function(){a.is(":checked")||e('input[type="checkbox"]',t).removeAttr("checked")})}),r.on("click",".add-opt",function(t){t.preventDefault();var a=e(this).parents(".field-options:eq(0)"),l=e('[name="multiple"]',a),s=e(".option-selected:eq(0)",a),o=!1;o=l.length?l.prop("checked"):"checkbox"===s.attr("type");var n=s.attr("name");e(".sortable-options",a).append(z(n,!1,!1,o)),c.updateMultipleSelect()}),r.on("click touchstart",".close-field",function(){var t=e(this).parents("li.form-field:eq(0)").attr("id");c.toggleEdit(t)}),r.on("mouseover mouseout",".remove, .del-button",function(){e(this).parents("li:eq(0)").toggleClass("delete")});var R=e(document.getElementById(i+"-view-data"));R.click(function(e){e.preventDefault();var t=c.htmlEncode(n.val()),a=c.markup("code",t,{className:"xml"}),l=c.markup("pre",a);c.dialog(l,null,"data-dialog")});var X=e(document.getElementById(i+"-clear-all"));return X.click(function(){var t=e("li.form-field"),a=this.getBoundingClientRect(),l=document.body.getBoundingClientRect(),s={pageX:a.left+a.width/2,pageY:a.top-l.top-12};t.length?c.confirm(o.messages.clearAllMessage,function(){c.removeAllfields(),o.notify.success(o.messages.allFieldsRemoved),c.save()},s):c.dialog("There are no fields to clear",{pageX:s.pageX,pageY:s.pageY})}),e(document.getElementById(i+"-save")).click(function(e){e.preventDefault(),c.save(),c.validateForm(e)}),n.parent().find('p[id*="ideaTemplate"]').remove(),n.wrap('
          '),D(),r.css("min-height",m.height()),document.dispatchEvent(l.events.loaded),l};e.fn.formBuilder=function(a){return this.each(function(){var l,s=this;if(e(s).data("formBuilder")){var o=e(s).parents(".form-builder:eq(0)"),n=e(s).clone();o.before(n),o.remove(),l=new t(a,n[0]),n.data("formBuilder",l)}else l=new t(a,s),e(s).data("formBuilder",l)})}}(jQuery),function(e){e.fn.toXML=function(t){var a={prepend:"",attributes:["class"]},l=e.extend(a,t),s="",o={};o.getType=function(t){var a=e(".fld-subtype",t).val()||t.attr("class").replace("-field form-field","");return a},o.hyphenCase=function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})},o.attrString=function(e){var t=[];for(var a in e)if(e.hasOwnProperty(a)&&e[a]){var l=a+'="'+e[a]+'"';t.push(l)}return t.join(" ")};var n=function(t){var a=[];return e(".sortable-options li",t).each(function(){var t=e(this),l='value="'+e(".option-value",t).val()+'"',s=e(".option-label",t).val(),o=e(".option-selected",t).is(":checked")?' selected="true"':""; diff --git a/dist/form-render.css b/dist/form-render.css index b25dc2a3c..362473217 100644 --- a/dist/form-render.css +++ b/dist/form-render.css @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ * { diff --git a/dist/form-render.js b/dist/form-render.js index d7a350c65..79bda9325 100644 --- a/dist/form-render.js +++ b/dist/form-render.js @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ 'use strict'; @@ -279,11 +279,28 @@ var FormRender = function FormRender(options, element) { fieldMarkup = _helpers.markup('div', fieldMarkup, { className: 'form-group field-' + fieldAttrs.id }); + } else { + fieldMarkup = _helpers.markup('input', null, fieldAttrs); } return fieldMarkup; }; + /** + * Convert camelCase into lowercase-hyphen + * + * @param {string} str + * @return {string} + */ + _helpers.hyphenCase = function (str) { + str = str.replace(/[^\w\s\-]/gi, ''); + str = str.replace(/([A-Z])/g, function ($1) { + return '-' + $1.toLowerCase(); + }); + + return str.replace(/\s/g, '-').replace(/^-+/g, ''); + }; + _helpers.attrString = function (attrs) { var attributes = []; diff --git a/dist/form-render.min.css b/dist/form-render.min.css index af9d1b341..49ceb060b 100644 --- a/dist/form-render.min.css +++ b/dist/form-render.min.css @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ .btn,.btn-group{display:inline-block;vertical-align:middle}.btn-group>.btn,.input-group .form-control{float:left;position:relative}.btn,.btn.active,.btn.btn-active,.btn:active,.form-control{background-image:none}.btn-group,.btn-group>.btn,.input-group,.kc-toggle{position:relative}*{box-sizing:border-box}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}textarea{overflow:auto}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-group .input-group .form-control:last-child,.btn-group .input-group-addon:last-child,.btn-group .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.btn-group .input-group-btn:first-child>.btn:not(:first-child),.btn-group .input-group-btn:last-child>.btn,.btn-group .input-group-btn:last-child>.btn-group>.btn,.btn-group .input-group-btn:last-child>.dropdown-toggle,.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn{color:#fff;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn.btn-sm,.btn.btn-xs{font-size:12px;line-height:1.5;border-radius:3px}.btn.btn-sm{padding:5px 10px}.btn.btn-xs{padding:1px 5px}.btn-primary{background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.btn-active,.btn-primary:active,.btn-primary:hover{background-color:#286090;border-color:#204d74}.btn-danger{background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover{background-color:#c9302c;border-color:#ac2925}.btn-default{background-color:#fff;border-color:#ccc}.btn-success{background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover{background-color:#449d44;border-color:#398439}.btn-info{background-color:#5bc0de;border-color:#46b8da}.btn-info:hover{background-color:#31b0d5;border-color:#269abc}.btn-warning{background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover{background-color:#ec971f;border-color:#d58512}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.input-group .form-control{z-index:2;width:100%;margin-bottom:0}.input-group{display:table;border-collapse:separate}.form-control,output{display:block;font-size:14px;line-height:1.42857143;color:#555}textarea.form-control{height:auto}.form-control{height:34px;width:100%;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-group{margin-bottom:15px}.pull-right{float:right}.pull-left{float:left}.kc-toggle{margin:4px 0 0 2px;width:60px;height:21px;border-radius:3px;cursor:pointer;overflow:hidden;display:inline-block;background:#e9e9e9;border:1px solid #cbcbcb;vertical-align:bottom;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kc-toggle .kct-inner{position:absolute;top:0;left:-28px;width:115px;height:100%;-webkit-transition:left 150ms ease;transition:left 150ms ease}.kc-toggle.on .kct-inner{background:#e2e2e2;background:-webkit-linear-gradient(top,#e2e2e2 0,#fff 100%);background:linear-gradient(to bottom,#e2e2e2 0,#fff 100%);left:0}.kc-toggle input{display:none;position:absolute;z-index:-1;opacity:0;margin:0;padding:0;width:100%;height:100%}.kct-handle,.kct-off,.kct-on,[tooltip]{position:relative}.kc-toggle .kct-on{color:#12a912}.kct-off{color:#666}.kct-handle,.kct-off,.kct-on{width:28px;height:100%;font-family:Arial,Tahoma,sans-serif;font-size:12px;text-align:center;line-height:22px;font-weight:700;float:left}.kct-handle{height:17px;background:#fff;background:-webkit-linear-gradient(top,#fff 0,#cecece 100%);background:linear-gradient(to bottom,#fff 0,#cecece 100%);border:1px solid #999;font-weight:100;color:#4b4b4b;text-shadow:none;border-radius:3px;margin:1px}.form-group .required{color:#C10000}[tooltip]:hover:after{background:#262626;background:rgba(0,0,0,.9);border-radius:5px 5px 5px 0;bottom:23px;color:#fff;content:attr(tooltip);padding:10px 5px;position:absolute;z-index:98;left:2px;width:230px;text-shadow:none;font-size:12px;line-height:1.5em}[tooltip]:hover:before{border:solid;border-color:#222 transparent;border-width:6px 6px 0;bottom:17px;content:"";left:2px;position:absolute;z-index:99}.tooltip-element{color:#fff;background:#000;width:16px;height:16px;border-radius:8px;display:inline-block;text-align:center;line-height:16px;margin:0 5px;font-size:12px}.form-control[type=color]{width:60px;padding:2px;display:inline-block}.form-control[multiple]{height:auto} \ No newline at end of file diff --git a/dist/form-render.min.js b/dist/form-render.min.js index 4b571bc9f..6a676c946 100644 --- a/dist/form-render.min.js +++ b/dist/form-render.min.js @@ -1,6 +1,6 @@ /* formBuilder - http://kevinchappell.github.io/formBuilder/ -Version: 1.9.10 +Version: 1.9.11 Author: Kevin Chappell */ -"use strict";!function(e){var t=function(t,r){var n={theme:"fresh",labels:{off:"Off",on:"On"}},a=e.extend(n,r),o=e('
          ').insertAfter(t).append(t);o.toggleClass("on",t.is(":checked"));var i='
          '+a.labels.on+"
          ",l='
          '+a.labels.off+"
          ",s='
          ',c='
          '+i+s+l+"
          ";o.append(c),o.click(function(){t.attr("checked",!t.attr("checked")),e(this).toggleClass("on")})};e.fn.kcToggle=function(r){var n=this;return n.each(function(){var n=e(this);if(!n.data("kcToggle")){var a=new t(n,r);n.data("kcToggle",a)}})}}(jQuery);var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},FormRender=function(e,t){var r=this,n={destroyTemplate:!0,container:!1,dataType:"xml",formData:!1,label:{selectColor:"Select Color",noFormData:"No form data.",formRendered:"Form Rendered"},render:!0,notify:{error:function(e){return console.error(e)},success:function(e){return console.log(e)},warning:function(e){return console.warn(e)}}},a={},o=$.extend(n,e);a.getElement=function(){return t.id||(t.id=a.makeId(t)),document.getElementById(t.id)},a.makeId=function(e){var t=(new Date).getTime();return e.tagName+"-"+t},!o.formData&&t&&(t=a.getElement(),o.formData=t.value),a.markup=function(e){var t=arguments.length<=1||void 0===arguments[1]?"":arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],n=void 0,o=document.createElement(e),i=function(e){return Array.isArray(e)?"array":"undefined"==typeof e?"undefined":_typeof(e)},l={string:function(e){o.innerHTML=e},object:function(e){return o.appendChild(e)},array:function(e){for(var t=0;t*'),"hidden"!==i.type){l&&(l='?');var d=i.label||"";r='"}var u=i.label;delete i.label,delete i.description;var f=a.attrString(i);switch(i.type){case"textarea":case"rich-text":delete i.type,delete i.value,t=r+"";break;case"select":i.type=i.type.replace("-group",""),c.length&&c.each(function(e,t){e=e;var r=a.parseAttrs(t.attributes),o=a.attrString(r);n+=""}),t=r+"";break;case"checkbox-group":case"radio-group":i.type=i.type.replace("-group",""),delete i.className,c.length&&!function(){var e="checkbox"===i.type?i.name+"[]":i.name;c.each(function(t,r){var o=Object.assign({},i,a.parseAttrs(r.attributes)),l=void 0;o.selected&&(delete o.selected,o.checked=null),o.name=e,o.id=i.id+"-"+t,l=a.attrString(o),n+="
          "})}(),t=r+'
          '+n+"
          ";break;case"text":case"password":case"email":case"file":case"hidden":case"date":case"autocomplete":t=r+" ";break;case"color":t=r+" "+o.label.selectColor;break;case"button":case"submit":t="";break;case"checkbox":t=" "+r,i.toggle&&setTimeout(function(){$(document.getElementById(i.id)).kcToggle()},100);break;default:t="<"+i.type+">"}return"hidden"!==i.type&&(t=a.markup("div",t,{className:"form-group field-"+i.id})),t},a.attrString=function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&(r=a.safeAttr(r,e[r]),t.push(r.name+r.value));return t.join(" ")},a.safeAttr=function(e,t){var r={className:"class"};return e=r[e]||e,t=t?window.JSON.stringify(t):!1,t=t?"="+t:"",{name:e,value:t}},a.safeAttrName=function(e){var t={className:"class"};return t[e]||a.hyphenCase(e)},a.parseAttrs=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[e[r].name]=e[r].value);return t},Element.prototype.appendFormFields=function(e){var t=this;e.reverse();for(var r=e.length-1;r>=0;r--)t.appendChild(e[r])},Element.prototype.emptyContainer=function(){for(var e=this;e.lastChild;)e.removeChild(e.lastChild)};var i=[],l=$.parseXML(o.formData),s=$("field",l);if(!l)return o.notify.error(o.label.noFormData),!1;if(o.notify.success(o.label.formRendered),s.length&&s.each(function(e,t){e=e,i.push(a.fieldRender(t))}),o.render){if(o.container)o.container.emptyContainer(),o.container.appendFormFields(i);else if(t){var c=document.querySelector(".rendered-form");c?(c.emptyContainer(),c.appendFormFields(i)):(c=a.markup("div",i,{className:"rendered-form"}),t.parentNode.insertBefore(c,t.nextSibling),t.style.display="none",t.setAttribute("disabled","disabled"))}}else{var d=i.join("");r.markup=d}return r};!function(e){e.fn.formRender=function(e){this.each(function(){var t=new FormRender(e,this);return t})}}(jQuery); \ No newline at end of file +"use strict";!function(e){var t=function(t,r){var n={theme:"fresh",labels:{off:"Off",on:"On"}},a=e.extend(n,r),o=e('
          ').insertAfter(t).append(t);o.toggleClass("on",t.is(":checked"));var i='
          '+a.labels.on+"
          ",l='
          '+a.labels.off+"
          ",s='
          ',c='
          '+i+s+l+"
          ";o.append(c),o.click(function(){t.attr("checked",!t.attr("checked")),e(this).toggleClass("on")})};e.fn.kcToggle=function(r){var n=this;return n.each(function(){var n=e(this);if(!n.data("kcToggle")){var a=new t(n,r);n.data("kcToggle",a)}})}}(jQuery);var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},FormRender=function(e,t){var r=this,n={destroyTemplate:!0,container:!1,dataType:"xml",formData:!1,label:{selectColor:"Select Color",noFormData:"No form data.",formRendered:"Form Rendered"},render:!0,notify:{error:function(e){return console.error(e)},success:function(e){return console.log(e)},warning:function(e){return console.warn(e)}}},a={},o=$.extend(n,e);a.getElement=function(){return t.id||(t.id=a.makeId(t)),document.getElementById(t.id)},a.makeId=function(e){var t=(new Date).getTime();return e.tagName+"-"+t},!o.formData&&t&&(t=a.getElement(),o.formData=t.value),a.markup=function(e){var t=arguments.length<=1||void 0===arguments[1]?"":arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],n=void 0,o=document.createElement(e),i=function(e){return Array.isArray(e)?"array":"undefined"==typeof e?"undefined":_typeof(e)},l={string:function(e){o.innerHTML=e},object:function(e){return o.appendChild(e)},array:function(e){for(var t=0;t*'),"hidden"!==i.type){l&&(l='?');var d=i.label||"";r='"}var u=i.label;delete i.label,delete i.description;var f=a.attrString(i);switch(i.type){case"textarea":case"rich-text":delete i.type,delete i.value,t=r+"";break;case"select":i.type=i.type.replace("-group",""),c.length&&c.each(function(e,t){e=e;var r=a.parseAttrs(t.attributes),o=a.attrString(r);n+=""}),t=r+"";break;case"checkbox-group":case"radio-group":i.type=i.type.replace("-group",""),delete i.className,c.length&&!function(){var e="checkbox"===i.type?i.name+"[]":i.name;c.each(function(t,r){var o=Object.assign({},i,a.parseAttrs(r.attributes)),l=void 0;o.selected&&(delete o.selected,o.checked=null),o.name=e,o.id=i.id+"-"+t,l=a.attrString(o),n+="
          "})}(),t=r+'
          '+n+"
          ";break;case"text":case"password":case"email":case"file":case"hidden":case"date":case"autocomplete":t=r+" ";break;case"color":t=r+" "+o.label.selectColor;break;case"button":case"submit":t="";break;case"checkbox":t=" "+r,i.toggle&&setTimeout(function(){$(document.getElementById(i.id)).kcToggle()},100);break;default:t="<"+i.type+">"}return t="hidden"!==i.type?a.markup("div",t,{className:"form-group field-"+i.id}):a.markup("input",null,i)},a.hyphenCase=function(e){return e=e.replace(/[^\w\s\-]/gi,""),e=e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}),e.replace(/\s/g,"-").replace(/^-+/g,"")},a.attrString=function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&(r=a.safeAttr(r,e[r]),t.push(r.name+r.value));return t.join(" ")},a.safeAttr=function(e,t){var r={className:"class"};return e=r[e]||e,t=t?window.JSON.stringify(t):!1,t=t?"="+t:"",{name:e,value:t}},a.safeAttrName=function(e){var t={className:"class"};return t[e]||a.hyphenCase(e)},a.parseAttrs=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[e[r].name]=e[r].value);return t},Element.prototype.appendFormFields=function(e){var t=this;e.reverse();for(var r=e.length-1;r>=0;r--)t.appendChild(e[r])},Element.prototype.emptyContainer=function(){for(var e=this;e.lastChild;)e.removeChild(e.lastChild)};var i=[],l=$.parseXML(o.formData),s=$("field",l);if(!l)return o.notify.error(o.label.noFormData),!1;if(o.notify.success(o.label.formRendered),s.length&&s.each(function(e,t){e=e,i.push(a.fieldRender(t))}),o.render){if(o.container)o.container.emptyContainer(),o.container.appendFormFields(i);else if(t){var c=document.querySelector(".rendered-form");c?(c.emptyContainer(),c.appendFormFields(i)):(c=a.markup("div",i,{className:"rendered-form"}),t.parentNode.insertBefore(c,t.nextSibling),t.style.display="none",t.setAttribute("disabled","disabled"))}}else{var d=i.join("");r.markup=d}return r};!function(e){e.fn.formRender=function(e){this.each(function(){var t=new FormRender(e,this);return t})}}(jQuery); \ No newline at end of file diff --git a/package.json b/package.json index 2b420a7ab..c0f0553dc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "formBuilder", - "version": "1.9.10", + "version": "1.9.11", "main": "dist/form-builder.js", "files": [ "dist/form-builder.js", diff --git a/src/js/form-render.js b/src/js/form-render.js index 2645f4ec9..b36eb6fb5 100644 --- a/src/js/form-render.js +++ b/src/js/form-render.js @@ -221,11 +221,28 @@ var FormRender = function(options, element) { fieldMarkup = _helpers.markup('div', fieldMarkup, { className: 'form-group field-' + fieldAttrs.id }); + } else { + fieldMarkup = _helpers.markup('input', null, fieldAttrs); } return fieldMarkup; }; + /** + * Convert camelCase into lowercase-hyphen + * + * @param {string} str + * @return {string} + */ + _helpers.hyphenCase = (str) => { + str = str.replace(/[^\w\s\-]/gi, ''); + str = str.replace(/([A-Z])/g, function($1) { + return '-' + $1.toLowerCase(); + }); + + return str.replace(/\s/g, '-').replace(/^-+/g, ''); + }; + _helpers.attrString = function(attrs) { let attributes = [];