locomotivecms 3.0.0.rc4 → 3.0.0.rc5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/app/api/locomotive/api/resources/content_type_resource.rb +16 -1
  4. data/app/api/locomotive/api/resources/page_resource.rb +9 -4
  5. data/app/api/locomotive/api/resources/snippet_resource.rb +17 -2
  6. data/app/api/locomotive/api/resources/theme_asset_resource.rb +11 -0
  7. data/app/api/locomotive/api/resources/translation_resource.rb +16 -1
  8. data/app/assets/javascripts/locomotive.js +1 -0
  9. data/app/assets/javascripts/locomotive/{not_logged_in.js.coffee → account.js.coffee} +1 -0
  10. data/app/assets/javascripts/locomotive/views/shared/form_view.js.coffee +2 -2
  11. data/app/assets/stylesheets/locomotive/{unauthorized.scss → account.scss} +7 -8
  12. data/app/assets/stylesheets/locomotive/{unauthorized → account}/_forms.scss +19 -0
  13. data/app/assets/stylesheets/locomotive/{unauthorized → account}/_keyframes.scss +0 -0
  14. data/app/assets/stylesheets/locomotive/{unauthorized → account}/_notify.scss +3 -1
  15. data/app/assets/stylesheets/locomotive/{unauthorized → account}/_public.scss +98 -10
  16. data/app/assets/stylesheets/locomotive/{unauthorized → account}/_type.scss +0 -0
  17. data/app/assets/stylesheets/locomotive/{unauthorized → account}/_variables.scss +1 -1
  18. data/app/assets/stylesheets/locomotive/application.scss +1 -1
  19. data/app/assets/stylesheets/locomotive/base/_form.scss +1 -0
  20. data/app/assets/stylesheets/locomotive/base/form/_tags.scss +17 -0
  21. data/app/assets/stylesheets/locomotive/error.scss +1 -1
  22. data/app/assets/stylesheets/locomotive/layouts/_error.scss +33 -0
  23. data/app/controllers/locomotive/concerns/site_dispatcher_controller.rb +1 -2
  24. data/app/controllers/locomotive/passwords_controller.rb +1 -1
  25. data/app/controllers/locomotive/registrations_controller.rb +1 -1
  26. data/app/controllers/locomotive/sessions_controller.rb +1 -1
  27. data/app/controllers/locomotive/sites_controller.rb +1 -1
  28. data/app/helpers/locomotive/custom_fields_helper.rb +8 -2
  29. data/app/models/locomotive/editable_element.rb +2 -2
  30. data/app/policies/locomotive/application_policy.rb +4 -0
  31. data/app/policies/locomotive/content_type_policy.rb +4 -0
  32. data/app/policies/locomotive/site_policy.rb +1 -1
  33. data/app/policies/locomotive/snippet_policy.rb +4 -0
  34. data/app/policies/locomotive/theme_asset_policy.rb +4 -0
  35. data/app/policies/locomotive/translation_policy.rb +4 -0
  36. data/app/views/locomotive/current_site/_membership.html.slim +20 -19
  37. data/app/views/locomotive/layouts/{not_logged_in.html.slim → account.html.slim} +8 -3
  38. data/app/views/locomotive/passwords/edit.html.slim +2 -2
  39. data/app/views/locomotive/passwords/new.html.slim +2 -4
  40. data/app/views/locomotive/registrations/new.html.slim +2 -2
  41. data/app/views/locomotive/sessions/new.html.slim +2 -2
  42. data/app/views/locomotive/shared/header/_site.html.slim +1 -1
  43. data/app/views/locomotive/sites/_navigation.slim +5 -0
  44. data/app/views/locomotive/sites/_site.html.slim +6 -16
  45. data/app/views/locomotive/sites/index.html.slim +12 -19
  46. data/app/views/locomotive/sites/new.html.slim +13 -8
  47. data/config/locales/en.yml +8 -4
  48. data/lib/locomotive/engine.rb +2 -2
  49. data/lib/locomotive/version.rb +1 -1
  50. data/spec/lib/locomotive/steam/services/liquid_parser_with_cache_service_spec.rb +1 -1
  51. data/spec/models/locomotive/content_entry_spec.rb +1 -1
  52. data/spec/models/locomotive/editable_element_spec.rb +26 -0
  53. data/spec/requests/locomotive/steam/cache_spec.rb +1 -1
  54. data/spec/support/capybara.rb +3 -3
  55. data/spec/support/features/session_helpers.rb +2 -3
  56. data/vendor/assets/{stylesheets/locomotive → components/locomotive/bootstrap-tagsinput}/bootstrap-tagsinput.css +16 -7
  57. data/vendor/assets/components/locomotive/bootstrap-tagsinput/bootstrap-tagsinput.js +663 -0
  58. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/Gruntfile.js +82 -0
  59. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/LICENSE +20 -0
  60. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/README.md +92 -0
  61. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/bootstrap-tagsinput.jquery.json +27 -0
  62. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/bower.json +42 -0
  63. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput-angular.js +87 -0
  64. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput-angular.min.js +7 -0
  65. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput-angular.min.js.map +1 -0
  66. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput-typeahead.css +49 -0
  67. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput.css +55 -0
  68. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput.js +663 -0
  69. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput.less +50 -0
  70. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js +7 -0
  71. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js.map +1 -0
  72. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/dist/bootstrap-tagsinput.zip +0 -0
  73. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/examples/assets/app.css +67 -0
  74. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/examples/assets/app.js +15 -0
  75. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/examples/assets/app_bs2.js +74 -0
  76. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/examples/assets/app_bs3.js +95 -0
  77. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/examples/assets/cities.json +16 -0
  78. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/examples/assets/citynames.json +16 -0
  79. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/examples/bootstrap-2.3.2.html +666 -0
  80. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/examples/index.html +742 -0
  81. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/karma.conf.js +20 -0
  82. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/package.json +47 -0
  83. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/src/bootstrap-tagsinput-angular.js +87 -0
  84. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/src/bootstrap-tagsinput-typeahead.css +49 -0
  85. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/src/bootstrap-tagsinput.css +55 -0
  86. data/vendor/assets/components/locomotive_sources/bootstrap-tagsinput/src/bootstrap-tagsinput.js +663 -0
  87. data/vendor/assets/components/locomotive_sources/jquery/MIT-LICENSE.txt +21 -0
  88. data/vendor/assets/components/locomotive_sources/jquery/bower.json +28 -0
  89. data/vendor/assets/components/locomotive_sources/jquery/dist/jquery.js +9210 -0
  90. data/vendor/assets/components/locomotive_sources/jquery/dist/jquery.min.js +5 -0
  91. data/vendor/assets/components/locomotive_sources/jquery/dist/jquery.min.map +1 -0
  92. data/vendor/assets/components/locomotive_sources/jquery/src/ajax.js +786 -0
  93. data/vendor/assets/components/locomotive_sources/jquery/src/ajax/jsonp.js +89 -0
  94. data/vendor/assets/components/locomotive_sources/jquery/src/ajax/load.js +75 -0
  95. data/vendor/assets/components/locomotive_sources/jquery/src/ajax/parseJSON.js +13 -0
  96. data/vendor/assets/components/locomotive_sources/jquery/src/ajax/parseXML.js +28 -0
  97. data/vendor/assets/components/locomotive_sources/jquery/src/ajax/script.js +64 -0
  98. data/vendor/assets/components/locomotive_sources/jquery/src/ajax/var/nonce.js +5 -0
  99. data/vendor/assets/components/locomotive_sources/jquery/src/ajax/var/rquery.js +3 -0
  100. data/vendor/assets/components/locomotive_sources/jquery/src/ajax/xhr.js +136 -0
  101. data/vendor/assets/components/locomotive_sources/jquery/src/attributes.js +11 -0
  102. data/vendor/assets/components/locomotive_sources/jquery/src/attributes/attr.js +141 -0
  103. data/vendor/assets/components/locomotive_sources/jquery/src/attributes/classes.js +158 -0
  104. data/vendor/assets/components/locomotive_sources/jquery/src/attributes/prop.js +94 -0
  105. data/vendor/assets/components/locomotive_sources/jquery/src/attributes/support.js +35 -0
  106. data/vendor/assets/components/locomotive_sources/jquery/src/attributes/val.js +161 -0
  107. data/vendor/assets/components/locomotive_sources/jquery/src/callbacks.js +205 -0
  108. data/vendor/assets/components/locomotive_sources/jquery/src/core.js +502 -0
  109. data/vendor/assets/components/locomotive_sources/jquery/src/core/access.js +60 -0
  110. data/vendor/assets/components/locomotive_sources/jquery/src/core/init.js +123 -0
  111. data/vendor/assets/components/locomotive_sources/jquery/src/core/parseHTML.js +39 -0
  112. data/vendor/assets/components/locomotive_sources/jquery/src/core/ready.js +97 -0
  113. data/vendor/assets/components/locomotive_sources/jquery/src/core/var/rsingleTag.js +4 -0
  114. data/vendor/assets/components/locomotive_sources/jquery/src/css.js +450 -0
  115. data/vendor/assets/components/locomotive_sources/jquery/src/css/addGetHookIf.js +22 -0
  116. data/vendor/assets/components/locomotive_sources/jquery/src/css/curCSS.js +57 -0
  117. data/vendor/assets/components/locomotive_sources/jquery/src/css/defaultDisplay.js +70 -0
  118. data/vendor/assets/components/locomotive_sources/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  119. data/vendor/assets/components/locomotive_sources/jquery/src/css/support.js +96 -0
  120. data/vendor/assets/components/locomotive_sources/jquery/src/css/swap.js +28 -0
  121. data/vendor/assets/components/locomotive_sources/jquery/src/css/var/cssExpand.js +3 -0
  122. data/vendor/assets/components/locomotive_sources/jquery/src/css/var/getStyles.js +12 -0
  123. data/vendor/assets/components/locomotive_sources/jquery/src/css/var/isHidden.js +13 -0
  124. data/vendor/assets/components/locomotive_sources/jquery/src/css/var/rmargin.js +3 -0
  125. data/vendor/assets/components/locomotive_sources/jquery/src/css/var/rnumnonpx.js +5 -0
  126. data/vendor/assets/components/locomotive_sources/jquery/src/data.js +178 -0
  127. data/vendor/assets/components/locomotive_sources/jquery/src/data/Data.js +181 -0
  128. data/vendor/assets/components/locomotive_sources/jquery/src/data/accepts.js +20 -0
  129. data/vendor/assets/components/locomotive_sources/jquery/src/data/var/data_priv.js +5 -0
  130. data/vendor/assets/components/locomotive_sources/jquery/src/data/var/data_user.js +5 -0
  131. data/vendor/assets/components/locomotive_sources/jquery/src/deferred.js +149 -0
  132. data/vendor/assets/components/locomotive_sources/jquery/src/deprecated.js +13 -0
  133. data/vendor/assets/components/locomotive_sources/jquery/src/dimensions.js +50 -0
  134. data/vendor/assets/components/locomotive_sources/jquery/src/effects.js +648 -0
  135. data/vendor/assets/components/locomotive_sources/jquery/src/effects/Tween.js +114 -0
  136. data/vendor/assets/components/locomotive_sources/jquery/src/effects/animatedSelector.js +13 -0
  137. data/vendor/assets/components/locomotive_sources/jquery/src/event.js +868 -0
  138. data/vendor/assets/components/locomotive_sources/jquery/src/event/ajax.js +13 -0
  139. data/vendor/assets/components/locomotive_sources/jquery/src/event/alias.js +39 -0
  140. data/vendor/assets/components/locomotive_sources/jquery/src/event/support.js +9 -0
  141. data/vendor/assets/components/locomotive_sources/jquery/src/exports/amd.js +24 -0
  142. data/vendor/assets/components/locomotive_sources/jquery/src/exports/global.js +32 -0
  143. data/vendor/assets/components/locomotive_sources/jquery/src/intro.js +44 -0
  144. data/vendor/assets/components/locomotive_sources/jquery/src/jquery.js +37 -0
  145. data/vendor/assets/components/locomotive_sources/jquery/src/manipulation.js +580 -0
  146. data/vendor/assets/components/locomotive_sources/jquery/src/manipulation/_evalUrl.js +18 -0
  147. data/vendor/assets/components/locomotive_sources/jquery/src/manipulation/support.js +32 -0
  148. data/vendor/assets/components/locomotive_sources/jquery/src/manipulation/var/rcheckableType.js +3 -0
  149. data/vendor/assets/components/locomotive_sources/jquery/src/offset.js +207 -0
  150. data/vendor/assets/components/locomotive_sources/jquery/src/outro.js +1 -0
  151. data/vendor/assets/components/locomotive_sources/jquery/src/queue.js +142 -0
  152. data/vendor/assets/components/locomotive_sources/jquery/src/queue/delay.js +22 -0
  153. data/vendor/assets/components/locomotive_sources/jquery/src/selector-native.js +172 -0
  154. data/vendor/assets/components/locomotive_sources/jquery/src/selector-sizzle.js +14 -0
  155. data/vendor/assets/components/locomotive_sources/jquery/src/selector.js +1 -0
  156. data/vendor/assets/components/locomotive_sources/jquery/src/serialize.js +111 -0
  157. data/vendor/assets/components/locomotive_sources/jquery/src/sizzle/dist/sizzle.js +2067 -0
  158. data/vendor/assets/components/locomotive_sources/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  159. data/vendor/assets/components/locomotive_sources/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  160. data/vendor/assets/components/locomotive_sources/jquery/src/traversing.js +199 -0
  161. data/vendor/assets/components/locomotive_sources/jquery/src/traversing/findFilter.js +100 -0
  162. data/vendor/assets/components/locomotive_sources/jquery/src/traversing/var/rneedsContext.js +6 -0
  163. data/vendor/assets/components/locomotive_sources/jquery/src/var/arr.js +3 -0
  164. data/vendor/assets/components/locomotive_sources/jquery/src/var/class2type.js +4 -0
  165. data/vendor/assets/components/locomotive_sources/jquery/src/var/concat.js +5 -0
  166. data/vendor/assets/components/locomotive_sources/jquery/src/var/hasOwn.js +5 -0
  167. data/vendor/assets/components/locomotive_sources/jquery/src/var/indexOf.js +5 -0
  168. data/vendor/assets/components/locomotive_sources/jquery/src/var/pnum.js +3 -0
  169. data/vendor/assets/components/locomotive_sources/jquery/src/var/push.js +5 -0
  170. data/vendor/assets/components/locomotive_sources/jquery/src/var/rnotwhite.js +3 -0
  171. data/vendor/assets/components/locomotive_sources/jquery/src/var/slice.js +5 -0
  172. data/vendor/assets/components/locomotive_sources/jquery/src/var/strundefined.js +3 -0
  173. data/vendor/assets/components/locomotive_sources/jquery/src/var/support.js +4 -0
  174. data/vendor/assets/components/locomotive_sources/jquery/src/var/toString.js +5 -0
  175. data/vendor/assets/components/locomotive_sources/jquery/src/wrap.js +79 -0
  176. metadata +138 -23
  177. data/app/assets/stylesheets/locomotive/base/not_logged_in/_all.scss +0 -4
  178. data/app/assets/stylesheets/locomotive/base/not_logged_in/_buttons.scss +0 -10
  179. data/app/assets/stylesheets/locomotive/base/not_logged_in/_form.scss +0 -72
  180. data/app/assets/stylesheets/locomotive/base/not_logged_in/_messages.scss +0 -4
  181. data/app/assets/stylesheets/locomotive/base/not_logged_in/_typography.scss +0 -12
  182. data/app/assets/stylesheets/locomotive/components/not_logged_in/_passwords.scss +0 -9
  183. data/app/assets/stylesheets/locomotive/components/not_logged_in/_sign_in_and_up.scss +0 -34
  184. data/app/models/locomotive/concerns/page/render.rb +0 -99
  185. data/vendor/assets/javascripts/locomotive/bootstrap-tagsinput.min.js +0 -6
@@ -1,6 +0,0 @@
1
- /*
2
- * bootstrap-tagsinput v0.4.2 by Tim Schlechter
3
- *
4
- */
5
-
6
- !function(a){"use strict";function b(b,c){this.itemsArray=[],this.$element=a(b),this.$element.hide(),this.isSelect="SELECT"===b.tagName,this.multiple=this.isSelect&&b.hasAttribute("multiple"),this.objectItems=c&&c.itemValue,this.placeholderText=b.hasAttribute("placeholder")?this.$element.attr("placeholder"):"",this.inputSize=Math.max(1,this.placeholderText.length),this.$container=a('<div class="bootstrap-tagsinput"></div>'),this.$input=a('<input type="text" placeholder="'+this.placeholderText+'"/>').appendTo(this.$container),this.$element.after(this.$container);var d=(this.inputSize<3?3:this.inputSize)+"em";this.$input.get(0).style.cssText="width: "+d+" !important;",this.build(c)}function c(a,b){if("function"!=typeof a[b]){var c=a[b];a[b]=function(a){return a[c]}}}function d(a,b){if("function"!=typeof a[b]){var c=a[b];a[b]=function(){return c}}}function e(a){return a?i.text(a).html():""}function f(a){var b=0;if(document.selection){a.focus();var c=document.selection.createRange();c.moveStart("character",-a.value.length),b=c.text.length}else(a.selectionStart||"0"==a.selectionStart)&&(b=a.selectionStart);return b}function g(b,c){var d=!1;return a.each(c,function(a,c){if("number"==typeof c&&b.which===c)return d=!0,!1;if(b.which===c.which){var e=!c.hasOwnProperty("altKey")||b.altKey===c.altKey,f=!c.hasOwnProperty("shiftKey")||b.shiftKey===c.shiftKey,g=!c.hasOwnProperty("ctrlKey")||b.ctrlKey===c.ctrlKey;if(e&&f&&g)return d=!0,!1}}),d}var h={tagClass:function(){return"label label-info"},itemValue:function(a){return a?a.toString():a},itemText:function(a){return this.itemValue(a)},freeInput:!0,addOnBlur:!0,maxTags:void 0,maxChars:void 0,confirmKeys:[13,44],onTagExists:function(a,b){b.hide().fadeIn()},trimValue:!1,allowDuplicates:!1};b.prototype={constructor:b,add:function(b,c){var d=this;if(!(d.options.maxTags&&d.itemsArray.length>=d.options.maxTags||b!==!1&&!b)){if("string"==typeof b&&d.options.trimValue&&(b=a.trim(b)),"object"==typeof b&&!d.objectItems)throw"Can't add objects when itemValue option is not set";if(!b.toString().match(/^\s*$/)){if(d.isSelect&&!d.multiple&&d.itemsArray.length>0&&d.remove(d.itemsArray[0]),"string"==typeof b&&"INPUT"===this.$element[0].tagName){var f=b.split(",");if(f.length>1){for(var g=0;g<f.length;g++)this.add(f[g],!0);return void(c||d.pushVal())}}var h=d.options.itemValue(b),i=d.options.itemText(b),j=d.options.tagClass(b),k=a.grep(d.itemsArray,function(a){return d.options.itemValue(a)===h})[0];if(!k||d.options.allowDuplicates){if(!(d.items().toString().length+b.length+1>d.options.maxInputLength)){var l=a.Event("beforeItemAdd",{item:b,cancel:!1});if(d.$element.trigger(l),!l.cancel){d.itemsArray.push(b);var m=a('<span class="tag '+e(j)+'">'+e(i)+'<span data-role="remove"></span></span>');if(m.data("item",b),d.findInputWrapper().before(m),m.after(" "),d.isSelect&&!a('option[value="'+encodeURIComponent(h)+'"]',d.$element)[0]){var n=a("<option selected>"+e(i)+"</option>");n.data("item",b),n.attr("value",h),d.$element.append(n)}c||d.pushVal(),(d.options.maxTags===d.itemsArray.length||d.items().toString().length===d.options.maxInputLength)&&d.$container.addClass("bootstrap-tagsinput-max"),d.$element.trigger(a.Event("itemAdded",{item:b}))}}}else if(d.options.onTagExists){var o=a(".tag",d.$container).filter(function(){return a(this).data("item")===k});d.options.onTagExists(b,o)}}}},remove:function(b,c){var d=this;if(d.objectItems&&(b="object"==typeof b?a.grep(d.itemsArray,function(a){return d.options.itemValue(a)==d.options.itemValue(b)}):a.grep(d.itemsArray,function(a){return d.options.itemValue(a)==b}),b=b[b.length-1]),b){var e=a.Event("beforeItemRemove",{item:b,cancel:!1});if(d.$element.trigger(e),e.cancel)return;a(".tag",d.$container).filter(function(){return a(this).data("item")===b}).remove(),a("option",d.$element).filter(function(){return a(this).data("item")===b}).remove(),-1!==a.inArray(b,d.itemsArray)&&d.itemsArray.splice(a.inArray(b,d.itemsArray),1)}c||d.pushVal(),d.options.maxTags>d.itemsArray.length&&d.$container.removeClass("bootstrap-tagsinput-max"),d.$element.trigger(a.Event("itemRemoved",{item:b}))},removeAll:function(){var b=this;for(a(".tag",b.$container).remove(),a("option",b.$element).remove();b.itemsArray.length>0;)b.itemsArray.pop();b.pushVal()},refresh:function(){var b=this;a(".tag",b.$container).each(function(){var c=a(this),d=c.data("item"),f=b.options.itemValue(d),g=b.options.itemText(d),h=b.options.tagClass(d);if(c.attr("class",null),c.addClass("tag "+e(h)),c.contents().filter(function(){return 3==this.nodeType})[0].nodeValue=e(g),b.isSelect){var i=a("option",b.$element).filter(function(){return a(this).data("item")===d});i.attr("value",f)}})},items:function(){return this.itemsArray},pushVal:function(){var b=this,c=a.map(b.items(),function(a){return b.options.itemValue(a).toString()});b.$element.val(c,!0).trigger("change")},build:function(b){var e=this;if(e.options=a.extend({},h,b),e.objectItems&&(e.options.freeInput=!1),c(e.options,"itemValue"),c(e.options,"itemText"),d(e.options,"tagClass"),e.options.typeahead){var i=e.options.typeahead||{};d(i,"source"),e.$input.typeahead(a.extend({},i,{source:function(b,c){function d(a){for(var b=[],d=0;d<a.length;d++){var g=e.options.itemText(a[d]);f[g]=a[d],b.push(g)}c(b)}this.map={};var f=this.map,g=i.source(b);a.isFunction(g.success)?g.success(d):a.isFunction(g.then)?g.then(d):a.when(g).then(d)},updater:function(a){e.add(this.map[a])},matcher:function(a){return-1!==a.toLowerCase().indexOf(this.query.trim().toLowerCase())},sorter:function(a){return a.sort()},highlighter:function(a){var b=new RegExp("("+this.query+")","gi");return a.replace(b,"<strong>$1</strong>")}}))}if(e.options.typeaheadjs){var j=e.options.typeaheadjs||{};e.$input.typeahead(null,j).on("typeahead:selected",a.proxy(function(a,b){e.add(j.valueKey?b[j.valueKey]:b),e.$input.typeahead("val","")},e))}e.$container.on("click",a.proxy(function(){e.$element.attr("disabled")||e.$input.removeAttr("disabled"),e.$input.focus()},e)),e.options.addOnBlur&&e.options.freeInput&&e.$input.on("focusout",a.proxy(function(){0===a(".typeahead, .twitter-typeahead",e.$container).length&&(e.add(e.$input.val()),e.$input.val(""))},e)),e.$container.on("keydown","input",a.proxy(function(b){var c=a(b.target),d=e.findInputWrapper();if(e.$element.attr("disabled"))return void e.$input.attr("disabled","disabled");switch(b.which){case 8:if(0===f(c[0])){var g=d.prev();g&&e.remove(g.data("item"))}break;case 46:if(0===f(c[0])){var h=d.next();h&&e.remove(h.data("item"))}break;case 37:var i=d.prev();0===c.val().length&&i[0]&&(i.before(d),c.focus());break;case 39:var j=d.next();0===c.val().length&&j[0]&&(j.after(d),c.focus())}{var k=c.val().length;Math.ceil(k/5)}c.attr("size",Math.max(this.inputSize,c.val().length))},e)),e.$container.on("keypress","input",a.proxy(function(b){var c=a(b.target);if(e.$element.attr("disabled"))return void e.$input.attr("disabled","disabled");var d=c.val(),f=e.options.maxChars&&d.length>=e.options.maxChars;e.options.freeInput&&(g(b,e.options.confirmKeys)||f)&&(e.add(f?d.substr(0,e.options.maxChars):d),c.val(""),b.preventDefault());{var h=c.val().length;Math.ceil(h/5)}c.attr("size",Math.max(this.inputSize,c.val().length))},e)),e.$container.on("click","[data-role=remove]",a.proxy(function(b){e.$element.attr("disabled")||e.remove(a(b.target).closest(".tag").data("item"))},e)),e.options.itemValue===h.itemValue&&("INPUT"===e.$element[0].tagName?e.add(e.$element.val()):a("option",e.$element).each(function(){e.add(a(this).attr("value"),!0)}))},destroy:function(){var a=this;a.$container.off("keypress","input"),a.$container.off("click","[role=remove]"),a.$container.remove(),a.$element.removeData("tagsinput"),a.$element.show()},focus:function(){this.$input.focus()},input:function(){return this.$input},findInputWrapper:function(){for(var b=this.$input[0],c=this.$container[0];b&&b.parentNode!==c;)b=b.parentNode;return a(b)}},a.fn.tagsinput=function(c,d){var e=[];return this.each(function(){var f=a(this).data("tagsinput");if(f)if(c||d){if(void 0!==f[c]){var g=f[c](d);void 0!==g&&e.push(g)}}else e.push(f);else f=new b(this,c),a(this).data("tagsinput",f),e.push(f),"SELECT"===this.tagName&&a("option",a(this)).attr("selected","selected"),a(this).val(a(this).val())}),"string"==typeof c?e.length>1?e:e[0]:e},a.fn.tagsinput.Constructor=b;var i=a("<div />");a(function(){a("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput()})}(window.jQuery);