fomantic-ui 2.9.4-beta.4 → 2.9.4-beta.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/.all-contributorsrc +20 -1
  2. package/.eslintrc.js +17 -0
  3. package/.github/FUNDING.yml +1 -1
  4. package/.github/workflows/ci.yml +5 -5
  5. package/.github/workflows/nightly.yml +1 -1
  6. package/.github/workflows/release.yml +1 -1
  7. package/CONTRIBUTORS.md +2 -0
  8. package/dist/components/accordion.css +1 -1
  9. package/dist/components/accordion.js +4 -2
  10. package/dist/components/accordion.min.css +1 -1
  11. package/dist/components/accordion.min.js +2 -2
  12. package/dist/components/ad.css +1 -1
  13. package/dist/components/ad.min.css +1 -1
  14. package/dist/components/api.js +7 -3
  15. package/dist/components/api.min.js +2 -2
  16. package/dist/components/breadcrumb.css +1 -1
  17. package/dist/components/breadcrumb.min.css +1 -1
  18. package/dist/components/button.css +19 -3
  19. package/dist/components/button.min.css +2 -2
  20. package/dist/components/calendar.css +1 -1
  21. package/dist/components/calendar.js +4 -2
  22. package/dist/components/calendar.min.css +1 -1
  23. package/dist/components/calendar.min.js +2 -2
  24. package/dist/components/card.css +1 -1
  25. package/dist/components/card.min.css +1 -1
  26. package/dist/components/checkbox.css +1 -1
  27. package/dist/components/checkbox.js +10 -4
  28. package/dist/components/checkbox.min.css +1 -1
  29. package/dist/components/checkbox.min.js +3 -3
  30. package/dist/components/comment.css +1 -1
  31. package/dist/components/comment.min.css +1 -1
  32. package/dist/components/container.css +1 -1
  33. package/dist/components/container.min.css +1 -1
  34. package/dist/components/dimmer.css +1 -1
  35. package/dist/components/dimmer.js +4 -2
  36. package/dist/components/dimmer.min.css +1 -1
  37. package/dist/components/dimmer.min.js +2 -2
  38. package/dist/components/divider.css +1 -1
  39. package/dist/components/divider.min.css +1 -1
  40. package/dist/components/dropdown.css +18 -20
  41. package/dist/components/dropdown.js +99 -31
  42. package/dist/components/dropdown.min.css +2 -2
  43. package/dist/components/dropdown.min.js +3 -3
  44. package/dist/components/embed.css +1 -1
  45. package/dist/components/embed.js +17 -7
  46. package/dist/components/embed.min.css +1 -1
  47. package/dist/components/embed.min.js +3 -3
  48. package/dist/components/emoji.css +1 -1
  49. package/dist/components/emoji.min.css +1 -1
  50. package/dist/components/feed.css +1 -1
  51. package/dist/components/feed.min.css +1 -1
  52. package/dist/components/flag.css +1 -1
  53. package/dist/components/flag.min.css +1 -1
  54. package/dist/components/flyout.css +1 -1
  55. package/dist/components/flyout.js +4 -2
  56. package/dist/components/flyout.min.css +1 -1
  57. package/dist/components/flyout.min.js +2 -2
  58. package/dist/components/form.css +15 -5
  59. package/dist/components/form.js +42 -17
  60. package/dist/components/form.min.css +2 -2
  61. package/dist/components/form.min.js +3 -3
  62. package/dist/components/grid.css +5 -5
  63. package/dist/components/grid.min.css +2 -2
  64. package/dist/components/header.css +4 -1
  65. package/dist/components/header.min.css +2 -2
  66. package/dist/components/icon.css +1 -1
  67. package/dist/components/icon.min.css +1 -1
  68. package/dist/components/image.css +1 -1
  69. package/dist/components/image.min.css +1 -1
  70. package/dist/components/input.css +30 -10
  71. package/dist/components/input.min.css +2 -2
  72. package/dist/components/item.css +1 -1
  73. package/dist/components/item.min.css +1 -1
  74. package/dist/components/label.css +1 -2
  75. package/dist/components/label.min.css +2 -2
  76. package/dist/components/list.css +1 -1
  77. package/dist/components/list.min.css +1 -1
  78. package/dist/components/loader.css +1 -1
  79. package/dist/components/loader.min.css +1 -1
  80. package/dist/components/menu.css +1 -2
  81. package/dist/components/menu.min.css +2 -2
  82. package/dist/components/message.css +1 -1
  83. package/dist/components/message.min.css +1 -1
  84. package/dist/components/modal.css +1 -1
  85. package/dist/components/modal.js +7 -3
  86. package/dist/components/modal.min.css +1 -1
  87. package/dist/components/modal.min.js +2 -2
  88. package/dist/components/nag.css +1 -1
  89. package/dist/components/nag.js +11 -5
  90. package/dist/components/nag.min.css +1 -1
  91. package/dist/components/nag.min.js +3 -3
  92. package/dist/components/placeholder.css +1 -1
  93. package/dist/components/placeholder.min.css +1 -1
  94. package/dist/components/popup.css +1 -2
  95. package/dist/components/popup.js +10 -4
  96. package/dist/components/popup.min.css +2 -2
  97. package/dist/components/popup.min.js +2 -2
  98. package/dist/components/progress.css +1 -1
  99. package/dist/components/progress.js +4 -2
  100. package/dist/components/progress.min.css +1 -1
  101. package/dist/components/progress.min.js +2 -2
  102. package/dist/components/rail.css +1 -1
  103. package/dist/components/rail.min.css +1 -1
  104. package/dist/components/rating.css +1 -1
  105. package/dist/components/rating.js +4 -2
  106. package/dist/components/rating.min.css +1 -1
  107. package/dist/components/rating.min.js +2 -2
  108. package/dist/components/reset.css +1 -1
  109. package/dist/components/reset.min.css +1 -1
  110. package/dist/components/reveal.css +1 -1
  111. package/dist/components/reveal.min.css +1 -1
  112. package/dist/components/search.css +1 -1
  113. package/dist/components/search.js +64 -12
  114. package/dist/components/search.min.css +1 -1
  115. package/dist/components/search.min.js +3 -3
  116. package/dist/components/segment.css +1 -1
  117. package/dist/components/segment.min.css +1 -1
  118. package/dist/components/shape.css +1 -1
  119. package/dist/components/shape.js +4 -2
  120. package/dist/components/shape.min.css +1 -1
  121. package/dist/components/shape.min.js +2 -2
  122. package/dist/components/sidebar.css +1 -1
  123. package/dist/components/sidebar.js +4 -2
  124. package/dist/components/sidebar.min.css +1 -1
  125. package/dist/components/sidebar.min.js +2 -2
  126. package/dist/components/site.css +1 -1
  127. package/dist/components/site.js +4 -2
  128. package/dist/components/site.min.css +1 -1
  129. package/dist/components/site.min.js +2 -2
  130. package/dist/components/slider.css +1 -1
  131. package/dist/components/slider.js +4 -2
  132. package/dist/components/slider.min.css +1 -1
  133. package/dist/components/slider.min.js +2 -2
  134. package/dist/components/state.js +4 -2
  135. package/dist/components/state.min.js +2 -2
  136. package/dist/components/statistic.css +1 -1
  137. package/dist/components/statistic.min.css +1 -1
  138. package/dist/components/step.css +1 -1
  139. package/dist/components/step.min.css +1 -1
  140. package/dist/components/sticky.css +1 -1
  141. package/dist/components/sticky.js +4 -2
  142. package/dist/components/sticky.min.css +1 -1
  143. package/dist/components/sticky.min.js +2 -2
  144. package/dist/components/tab.css +1 -1
  145. package/dist/components/tab.js +4 -2
  146. package/dist/components/tab.min.css +1 -1
  147. package/dist/components/tab.min.js +2 -2
  148. package/dist/components/table.css +7 -7
  149. package/dist/components/table.min.css +2 -2
  150. package/dist/components/text.css +1 -1
  151. package/dist/components/text.min.css +1 -1
  152. package/dist/components/toast.css +1 -1
  153. package/dist/components/toast.js +4 -2
  154. package/dist/components/toast.min.css +1 -1
  155. package/dist/components/toast.min.js +2 -2
  156. package/dist/components/transition.css +1 -1
  157. package/dist/components/transition.js +7 -3
  158. package/dist/components/transition.min.css +1 -1
  159. package/dist/components/transition.min.js +2 -2
  160. package/dist/components/visibility.js +4 -2
  161. package/dist/components/visibility.min.js +2 -2
  162. package/dist/semantic.css +152 -101
  163. package/dist/semantic.js +336 -121
  164. package/dist/semantic.min.css +3 -3
  165. package/dist/semantic.min.js +3 -3
  166. package/dist/themes/basic/assets/fonts/LICENSE.txt +91 -0
  167. package/dist/themes/default/assets/fonts/LICENSE_Lato.txt +94 -0
  168. package/dist/themes/default/assets/fonts/LICENSE_icons.txt +165 -0
  169. package/dist/themes/github/assets/fonts/LICENSE.txt +94 -0
  170. package/dist/themes/material/assets/fonts/LICENSE.txt +202 -0
  171. package/package.json +3 -3
  172. package/src/definitions/behaviors/api.js +6 -2
  173. package/src/definitions/behaviors/form.js +41 -16
  174. package/src/definitions/behaviors/state.js +3 -1
  175. package/src/definitions/behaviors/visibility.js +3 -1
  176. package/src/definitions/collections/form.less +14 -4
  177. package/src/definitions/collections/grid.less +4 -4
  178. package/src/definitions/collections/table.less +6 -6
  179. package/src/definitions/elements/button.less +25 -3
  180. package/src/definitions/elements/header.less +5 -0
  181. package/src/definitions/elements/input.less +14 -6
  182. package/src/definitions/globals/site.js +3 -1
  183. package/src/definitions/modules/accordion.js +3 -1
  184. package/src/definitions/modules/calendar.js +3 -1
  185. package/src/definitions/modules/checkbox.js +9 -3
  186. package/src/definitions/modules/dimmer.js +3 -1
  187. package/src/definitions/modules/dropdown.js +98 -30
  188. package/src/definitions/modules/dropdown.less +12 -5
  189. package/src/definitions/modules/embed.js +16 -6
  190. package/src/definitions/modules/flyout.js +3 -1
  191. package/src/definitions/modules/modal.js +6 -2
  192. package/src/definitions/modules/nag.js +10 -4
  193. package/src/definitions/modules/popup.js +9 -3
  194. package/src/definitions/modules/progress.js +3 -1
  195. package/src/definitions/modules/rating.js +3 -1
  196. package/src/definitions/modules/search.js +63 -11
  197. package/src/definitions/modules/search.less +9 -2
  198. package/src/definitions/modules/shape.js +3 -1
  199. package/src/definitions/modules/sidebar.js +3 -1
  200. package/src/definitions/modules/slider.js +3 -1
  201. package/src/definitions/modules/sticky.js +3 -1
  202. package/src/definitions/modules/tab.js +3 -1
  203. package/src/definitions/modules/toast.js +3 -1
  204. package/src/definitions/modules/transition.js +6 -2
  205. package/src/themes/basic/assets/fonts/LICENSE.txt +91 -0
  206. package/src/themes/default/assets/fonts/LICENSE_Lato.txt +94 -0
  207. package/src/themes/default/assets/fonts/LICENSE_icons.txt +165 -0
  208. package/src/themes/default/collections/form.variables +1 -0
  209. package/src/themes/default/elements/button.variables +2 -0
  210. package/src/themes/default/globals/site.variables +3 -0
  211. package/src/themes/default/globals/variation.variables +3 -0
  212. package/src/themes/default/modules/dropdown.variables +3 -0
  213. package/src/themes/default/modules/search.variables +3 -0
  214. package/src/themes/github/assets/fonts/LICENSE.txt +94 -0
  215. package/src/themes/material/assets/fonts/LICENSE.txt +202 -0
  216. package/types/fomantic-ui-accordion.d.ts +1 -1
  217. package/types/fomantic-ui-api.d.ts +9 -3
  218. package/types/fomantic-ui-calendar.d.ts +93 -8
  219. package/types/fomantic-ui-checkbox.d.ts +14 -4
  220. package/types/fomantic-ui-dimmer.d.ts +1 -1
  221. package/types/fomantic-ui-dropdown.d.ts +36 -35
  222. package/types/fomantic-ui-embed.d.ts +1 -1
  223. package/types/fomantic-ui-flyout.d.ts +24 -10
  224. package/types/fomantic-ui-form.d.ts +123 -15
  225. package/types/fomantic-ui-modal.d.ts +75 -5
  226. package/types/fomantic-ui-nag.d.ts +4 -4
  227. package/types/fomantic-ui-popup.d.ts +11 -11
  228. package/types/fomantic-ui-progress.d.ts +12 -6
  229. package/types/fomantic-ui-rating.d.ts +1 -1
  230. package/types/fomantic-ui-search.d.ts +43 -13
  231. package/types/fomantic-ui-shape.d.ts +2 -2
  232. package/types/fomantic-ui-sidebar.d.ts +4 -4
  233. package/types/fomantic-ui-slider.d.ts +1 -1
  234. package/types/fomantic-ui-sticky.d.ts +1 -1
  235. package/types/fomantic-ui-tab.d.ts +5 -5
  236. package/types/fomantic-ui-toast.d.ts +7 -2
  237. package/types/fomantic-ui-transition.d.ts +29 -1
  238. package/types/fomantic-ui-visibility.d.ts +3 -3
  239. package/types/index.d.ts +25 -25
  240. package/types/tests.ts +188 -0
  241. package/types/tsconfig.json +1 -1
  242. package/types/fomantic-ui-tests.ts +0 -25
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Embed
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Embed
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -119,11 +119,12 @@
119
119
 
120
120
  createPlaceholder: function (placeholder) {
121
121
  var
122
- icon = module.get.icon()
122
+ icon = module.get.icon(),
123
+ alt = module.get.alt()
123
124
  ;
124
125
  placeholder = placeholder || module.get.placeholder();
125
- $module.html(templates.placeholder(placeholder, icon));
126
- module.debug('Creating placeholder for embed', placeholder, icon);
126
+ $module.html(templates.placeholder(placeholder, icon, alt));
127
+ module.debug('Creating placeholder for embed', placeholder, icon, alt);
127
128
  },
128
129
 
129
130
  createEmbed: function (url) {
@@ -203,6 +204,9 @@
203
204
  placeholder: function () {
204
205
  return settings.placeholder || $module.data(metadata.placeholder);
205
206
  },
207
+ alt: function () {
208
+ return settings.alt || $module.data(metadata.alt);
209
+ },
206
210
  icon: function () {
207
211
  return settings.icon || ($module.data(metadata.icon) !== undefined
208
212
  ? $module.data(metadata.icon)
@@ -288,6 +292,7 @@
288
292
  .removeData(metadata.id)
289
293
  .removeData(metadata.icon)
290
294
  .removeData(metadata.placeholder)
295
+ .removeData(metadata.alt)
291
296
  .removeData(metadata.source)
292
297
  .removeData(metadata.url)
293
298
  ;
@@ -440,7 +445,9 @@
440
445
  });
441
446
  }
442
447
  clearTimeout(module.performance.timer);
443
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
448
+ module.performance.timer = setTimeout(function () {
449
+ module.performance.display();
450
+ }, 500);
444
451
  },
445
452
  display: function () {
446
453
  var
@@ -555,6 +562,8 @@
555
562
  source: false,
556
563
  url: false,
557
564
  id: false,
565
+ placeholder: false,
566
+ alt: false,
558
567
 
559
568
  // standard video settings
560
569
  autoplay: 'auto',
@@ -577,6 +586,7 @@
577
586
  id: 'id',
578
587
  icon: 'icon',
579
588
  placeholder: 'placeholder',
589
+ alt: 'alt',
580
590
  source: 'source',
581
591
  url: 'url',
582
592
  },
@@ -652,7 +662,7 @@
652
662
  + ' width="100%" height="100%"'
653
663
  + ' msallowFullScreen allowFullScreen></iframe>';
654
664
  },
655
- placeholder: function (image, icon) {
665
+ placeholder: function (image, icon, alt) {
656
666
  var
657
667
  html = '',
658
668
  deQuote = $.fn.embed.settings.templates.deQuote
@@ -661,7 +671,7 @@
661
671
  html += '<i class="' + deQuote(icon) + ' icon"></i>';
662
672
  }
663
673
  if (image) {
664
- html += '<img class="placeholder" src="' + deQuote(image) + '">';
674
+ html += '<img class="placeholder" src="' + deQuote(image) + (alt ? '" alt="' + deQuote(alt) : '') + '">';
665
675
  }
666
676
 
667
677
  return html;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Embed
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Embed
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,11 +1,11 @@
1
1
  /*
2
- * # Fomantic UI - 2.9.4-beta.4+34acb50
2
+ * # Fomantic UI - 2.9.4-beta.41+9e455a4
3
3
  * https://github.com/fomantic/Fomantic-UI
4
4
  * https://fomantic-ui.com/
5
5
  *
6
- * Copyright 2023 Contributors
6
+ * Copyright 2024 Contributors
7
7
  * Released under the MIT license
8
8
  * https://opensource.org/licenses/MIT
9
9
  *
10
10
  */
11
- !function(D,e){"use strict";e=void 0!==e&&e.Math===Math?e:globalThis,D.fn.embed=function(h){var b,v=D(this),g=Date.now(),y=[],w=h,P="string"==typeof w,C=[].slice.call(arguments,1);return v.each(function(){var t=D.isPlainObject(h)?D.extend(!0,{},D.fn.embed.settings,h):D.extend({},D.fn.embed.settings),e=t.selector,o=t.className,a=t.sources,d=t.error,r=t.metadata,n=t.namespace,i=t.templates,c="."+n,l="module-"+n,u=D(this),s=(u.find(e.placeholder),u.find(e.icon),u.find(e.embed)),m=this,p=u.data(l),f={initialize:function(){f.debug("Initializing embed"),f.determine.autoplay(),f.create(),f.bind.events(),f.instantiate()},instantiate:function(){f.verbose("Storing instance of module",f),p=f,u.data(l,f)},destroy:function(){f.verbose("Destroying previous instance of embed"),f.reset(),u.removeData(l).off(c)},refresh:function(){f.verbose("Refreshing selector cache"),u.find(e.placeholder),u.find(e.icon),s=u.find(e.embed)},bind:{events:function(){f.has.placeholder()&&(f.debug("Adding placeholder events"),u.on("click"+c,e.placeholder,f.createAndShow).on("click"+c,e.icon,f.createAndShow))}},create:function(){f.get.placeholder()?f.createPlaceholder():f.createAndShow()},createPlaceholder:function(e){var o=f.get.icon();e=e||f.get.placeholder(),u.html(i.placeholder(e,o)),f.debug("Creating placeholder for embed",e,o)},createEmbed:function(e){f.refresh(),e=e||f.get.url(),s=D("<div/>").addClass(o.embed).html(f.generate.embed(e)).appendTo(u),t.onCreate.call(m,e),f.debug("Creating embed object",s)},changeEmbed:function(e){s.html(f.generate.embed(e))},createAndShow:function(){f.createEmbed(),f.show()},change:function(e,o,n){f.debug("Changing video to ",e,o,n),u.data(r.source,e).data(r.id,o),n?u.data(r.url,n):u.removeData(r.url),f.has.embed()?f.changeEmbed():f.create()},reset:function(){f.debug("Clearing embed and showing placeholder"),f.remove.data(),f.remove.active(),f.remove.embed(),f.showPlaceholder(),t.onReset.call(m)},show:function(){f.debug("Showing embed"),f.set.active(),t.onDisplay.call(m)},hide:function(){f.debug("Hiding embed"),f.showPlaceholder()},showPlaceholder:function(){f.debug("Showing placeholder image"),f.remove.active(),t.onPlaceholderDisplay.call(m)},get:{id:function(){return t.id||u.data(r.id)},placeholder:function(){return t.placeholder||u.data(r.placeholder)},icon:function(){return t.icon||(void 0!==u.data(r.icon)?u.data(r.icon):f.determine.icon())},source:function(e){return t.source||(void 0!==u.data(r.source)?u.data(r.source):f.determine.source())},type:function(){var e=f.get.source();return void 0!==a[e]&&a[e].type},url:function(){return t.url||(void 0!==u.data(r.url)?u.data(r.url):f.determine.url())}},determine:{autoplay:function(){f.should.autoplay()&&(t.autoplay=!0)},source:function(n){var t=!1;return(n=n||f.get.url())&&D.each(a,function(e,o){if(-1!==n.search(o.domain))return t=e,!1}),t},icon:function(){var e=f.get.source();return void 0!==a[e]&&a[e].icon},url:function(){var e=t.id||u.data(r.id),o=t.source||u.data(r.source),o=void 0!==a[o]&&a[o].url.replace("{id}",e);return o&&u.data(r.url,o),o}},set:{active:function(){u.addClass(o.active)}},remove:{data:function(){u.removeData(r.id).removeData(r.icon).removeData(r.placeholder).removeData(r.source).removeData(r.url)},active:function(){u.removeClass(o.active)},embed:function(){s.empty()}},encode:{parameters:function(e){var o,n=[];for(o in e)n.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));return n.join("&amp;")}},generate:{embed:function(e){f.debug("Generating embed html");var o,n=f.get.source();return(e=f.get.url(e))?(n=f.generate.parameters(n),o=i.iframe(e,n)):f.error(d.noURL,u),o},parameters:function(e,o){e=a[e]&&void 0!==a[e].parameters?a[e].parameters(t):{};return(o=o||t.parameters)&&(e=D.extend({},e,o)),e=t.onEmbed(e),f.encode.parameters(e)}},has:{embed:function(){return 0<s.length},placeholder:function(){return t.placeholder||u.data(r.placeholder)}},should:{autoplay:function(){return"auto"===t.autoplay?t.placeholder||void 0!==u.data(r.placeholder):t.autoplay}},is:{video:function(){return"video"===f.get.type()}},setting:function(e,o){if(f.debug("Changing setting",e,o),D.isPlainObject(e))D.extend(!0,t,e);else{if(void 0===o)return t[e];D.isPlainObject(t[e])?D.extend(!0,t[e],o):t[e]=o}},internal:function(e,o){if(D.isPlainObject(e))D.extend(!0,f,e);else{if(void 0===o)return f[e];f[e]=o}},debug:function(){!t.silent&&t.debug&&(t.performance?f.performance.log(arguments):(f.debug=Function.prototype.bind.call(console.info,console,t.name+":"),f.debug.apply(console,arguments)))},verbose:function(){!t.silent&&t.verbose&&t.debug&&(t.performance?f.performance.log(arguments):(f.verbose=Function.prototype.bind.call(console.info,console,t.name+":"),f.verbose.apply(console,arguments)))},error:function(){t.silent||(f.error=Function.prototype.bind.call(console.error,console,t.name+":"),f.error.apply(console,arguments))},performance:{log:function(e){var o,n;t.performance&&(n=(o=Date.now())-(g||o),g=o,y.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:m,"Execution Time":n})),clearTimeout(f.performance.timer),f.performance.timer=setTimeout(function(){f.performance.display()},500)},display:function(){var e=t.name+":",n=0;g=!1,clearTimeout(f.performance.timer),D.each(y,function(e,o){n+=o["Execution Time"]}),e+=" "+n+"ms",1<v.length&&(e+=" ("+v.length+")"),0<y.length&&(console.groupCollapsed(e),console.table?console.table(y):D.each(y,function(e,o){console.log(o.Name+": "+o["Execution Time"]+"ms")}),console.groupEnd()),y=[]}},invoke:function(t,e,o){var a,r,n,i,c=p;return e=e||C,o=o||m,"string"==typeof t&&void 0!==c&&(t=t.split(/[ .]/),a=t.length-1,D.each(t,function(e,o){var n=e!==a?o+t[e+1].charAt(0).toUpperCase()+t[e+1].slice(1):t;if(D.isPlainObject(c[n])&&e!==a)c=c[n];else{if(void 0!==c[n])return r=c[n],!1;{if(!D.isPlainObject(c[o])||e===a)return void 0!==c[o]?r=c[o]:f.error(d.method,t),!1;c=c[o]}}})),"function"==typeof(i=r)&&"number"!=typeof i.nodeType?n=r.apply(o,e):void 0!==r&&(n=r),Array.isArray(b)?b.push(n):void 0!==b?b=[b,n]:void 0!==n&&(b=n),r}};P?(void 0===p&&f.initialize(),f.invoke(w)):(void 0!==p&&p.invoke("destroy"),f.initialize())}),void 0!==b?b:this},D.fn.embed.settings={name:"Embed",namespace:"embed",silent:!1,debug:!1,verbose:!1,performance:!0,icon:!1,source:!1,url:!1,id:!1,autoplay:"auto",color:"#444",hd:!0,brandedUI:!1,parameters:!1,onDisplay:function(){},onPlaceholderDisplay:function(){},onReset:function(){},onCreate:function(e){},onEmbed:function(e){return e},metadata:{id:"id",icon:"icon",placeholder:"placeholder",source:"source",url:"url"},error:{noURL:"No URL specified",method:"The method you called is not defined"},className:{active:"active",embed:"embed"},selector:{embed:".embed",placeholder:".placeholder",icon:".icon"},sources:{youtube:{name:"youtube",type:"video",icon:"video play",domain:"youtube.com",url:"//www.youtube.com/embed/{id}",parameters:function(e){return{autohide:!e.brandedUI,autoplay:e.autoplay,color:e.color||void 0,hq:e.hd,jsapi:e.api,modestbranding:!e.brandedUI}}},vimeo:{name:"vimeo",type:"video",icon:"video play",domain:"vimeo.com",url:"//player.vimeo.com/video/{id}",parameters:function(e){return{api:e.api,autoplay:e.autoplay,byline:e.brandedUI,color:e.color||void 0,portrait:e.brandedUI,title:e.brandedUI}}}},templates:{deQuote:function(e,o){return String(e).replace(/"/g,o?"&quot;":"")},iframe:function(e,o){return o&&(e+="?"+o),'<iframe src="'+(0,D.fn.embed.settings.templates.deQuote)(e)+'" width="100%" height="100%" msallowFullScreen allowFullScreen></iframe>'},placeholder:function(e,o){var n="",t=D.fn.embed.settings.templates.deQuote;return o&&(n+='<i class="'+t(o)+' icon"></i>'),e&&(n+='<img class="placeholder" src="'+t(e)+'">'),n}},api:!1,onPause:function(){},onPlay:function(){},onStop:function(){}}}(jQuery,window,document);
11
+ !function(C,e){"use strict";e=void 0!==e&&e.Math===Math?e:globalThis,C.fn.embed=function(h){var b,v=C(this),g=Date.now(),y=[],w=h,D="string"==typeof w,P=[].slice.call(arguments,1);return v.each(function(){var t=C.isPlainObject(h)?C.extend(!0,{},C.fn.embed.settings,h):C.extend({},C.fn.embed.settings),e=t.selector,o=t.className,a=t.sources,d=t.error,r=t.metadata,n=t.namespace,i=t.templates,c="."+n,l="module-"+n,u=C(this),s=(u.find(e.placeholder),u.find(e.icon),u.find(e.embed)),m=this,p=u.data(l),f={initialize:function(){f.debug("Initializing embed"),f.determine.autoplay(),f.create(),f.bind.events(),f.instantiate()},instantiate:function(){f.verbose("Storing instance of module",f),p=f,u.data(l,f)},destroy:function(){f.verbose("Destroying previous instance of embed"),f.reset(),u.removeData(l).off(c)},refresh:function(){f.verbose("Refreshing selector cache"),u.find(e.placeholder),u.find(e.icon),s=u.find(e.embed)},bind:{events:function(){f.has.placeholder()&&(f.debug("Adding placeholder events"),u.on("click"+c,e.placeholder,f.createAndShow).on("click"+c,e.icon,f.createAndShow))}},create:function(){f.get.placeholder()?f.createPlaceholder():f.createAndShow()},createPlaceholder:function(e){var o=f.get.icon(),n=f.get.alt();e=e||f.get.placeholder(),u.html(i.placeholder(e,o,n)),f.debug("Creating placeholder for embed",e,o,n)},createEmbed:function(e){f.refresh(),e=e||f.get.url(),s=C("<div/>").addClass(o.embed).html(f.generate.embed(e)).appendTo(u),t.onCreate.call(m,e),f.debug("Creating embed object",s)},changeEmbed:function(e){s.html(f.generate.embed(e))},createAndShow:function(){f.createEmbed(),f.show()},change:function(e,o,n){f.debug("Changing video to ",e,o,n),u.data(r.source,e).data(r.id,o),n?u.data(r.url,n):u.removeData(r.url),f.has.embed()?f.changeEmbed():f.create()},reset:function(){f.debug("Clearing embed and showing placeholder"),f.remove.data(),f.remove.active(),f.remove.embed(),f.showPlaceholder(),t.onReset.call(m)},show:function(){f.debug("Showing embed"),f.set.active(),t.onDisplay.call(m)},hide:function(){f.debug("Hiding embed"),f.showPlaceholder()},showPlaceholder:function(){f.debug("Showing placeholder image"),f.remove.active(),t.onPlaceholderDisplay.call(m)},get:{id:function(){return t.id||u.data(r.id)},placeholder:function(){return t.placeholder||u.data(r.placeholder)},alt:function(){return t.alt||u.data(r.alt)},icon:function(){return t.icon||(void 0!==u.data(r.icon)?u.data(r.icon):f.determine.icon())},source:function(e){return t.source||(void 0!==u.data(r.source)?u.data(r.source):f.determine.source())},type:function(){var e=f.get.source();return void 0!==a[e]&&a[e].type},url:function(){return t.url||(void 0!==u.data(r.url)?u.data(r.url):f.determine.url())}},determine:{autoplay:function(){f.should.autoplay()&&(t.autoplay=!0)},source:function(n){var t=!1;return(n=n||f.get.url())&&C.each(a,function(e,o){if(-1!==n.search(o.domain))return t=e,!1}),t},icon:function(){var e=f.get.source();return void 0!==a[e]&&a[e].icon},url:function(){var e=t.id||u.data(r.id),o=t.source||u.data(r.source),o=void 0!==a[o]&&a[o].url.replace("{id}",e);return o&&u.data(r.url,o),o}},set:{active:function(){u.addClass(o.active)}},remove:{data:function(){u.removeData(r.id).removeData(r.icon).removeData(r.placeholder).removeData(r.alt).removeData(r.source).removeData(r.url)},active:function(){u.removeClass(o.active)},embed:function(){s.empty()}},encode:{parameters:function(e){var o,n=[];for(o in e)n.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));return n.join("&amp;")}},generate:{embed:function(e){f.debug("Generating embed html");var o,n=f.get.source();return(e=f.get.url(e))?(n=f.generate.parameters(n),o=i.iframe(e,n)):f.error(d.noURL,u),o},parameters:function(e,o){e=a[e]&&void 0!==a[e].parameters?a[e].parameters(t):{};return(o=o||t.parameters)&&(e=C.extend({},e,o)),e=t.onEmbed(e),f.encode.parameters(e)}},has:{embed:function(){return 0<s.length},placeholder:function(){return t.placeholder||u.data(r.placeholder)}},should:{autoplay:function(){return"auto"===t.autoplay?t.placeholder||void 0!==u.data(r.placeholder):t.autoplay}},is:{video:function(){return"video"===f.get.type()}},setting:function(e,o){if(f.debug("Changing setting",e,o),C.isPlainObject(e))C.extend(!0,t,e);else{if(void 0===o)return t[e];C.isPlainObject(t[e])?C.extend(!0,t[e],o):t[e]=o}},internal:function(e,o){if(C.isPlainObject(e))C.extend(!0,f,e);else{if(void 0===o)return f[e];f[e]=o}},debug:function(){!t.silent&&t.debug&&(t.performance?f.performance.log(arguments):(f.debug=Function.prototype.bind.call(console.info,console,t.name+":"),f.debug.apply(console,arguments)))},verbose:function(){!t.silent&&t.verbose&&t.debug&&(t.performance?f.performance.log(arguments):(f.verbose=Function.prototype.bind.call(console.info,console,t.name+":"),f.verbose.apply(console,arguments)))},error:function(){t.silent||(f.error=Function.prototype.bind.call(console.error,console,t.name+":"),f.error.apply(console,arguments))},performance:{log:function(e){var o,n;t.performance&&(n=(o=Date.now())-(g||o),g=o,y.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:m,"Execution Time":n})),clearTimeout(f.performance.timer),f.performance.timer=setTimeout(function(){f.performance.display()},500)},display:function(){var e=t.name+":",n=0;g=!1,clearTimeout(f.performance.timer),C.each(y,function(e,o){n+=o["Execution Time"]}),e+=" "+n+"ms",1<v.length&&(e+=" ("+v.length+")"),0<y.length&&(console.groupCollapsed(e),console.table?console.table(y):C.each(y,function(e,o){console.log(o.Name+": "+o["Execution Time"]+"ms")}),console.groupEnd()),y=[]}},invoke:function(t,e,o){var a,r,n,i,c=p;return e=e||P,o=o||m,"string"==typeof t&&void 0!==c&&(t=t.split(/[ .]/),a=t.length-1,C.each(t,function(e,o){var n=e!==a?o+t[e+1].charAt(0).toUpperCase()+t[e+1].slice(1):t;if(C.isPlainObject(c[n])&&e!==a)c=c[n];else{if(void 0!==c[n])return r=c[n],!1;{if(!C.isPlainObject(c[o])||e===a)return void 0!==c[o]?r=c[o]:f.error(d.method,t),!1;c=c[o]}}})),"function"==typeof(i=r)&&"number"!=typeof i.nodeType?n=r.apply(o,e):void 0!==r&&(n=r),Array.isArray(b)?b.push(n):void 0!==b?b=[b,n]:void 0!==n&&(b=n),r}};D?(void 0===p&&f.initialize(),f.invoke(w)):(void 0!==p&&p.invoke("destroy"),f.initialize())}),void 0!==b?b:this},C.fn.embed.settings={name:"Embed",namespace:"embed",silent:!1,debug:!1,verbose:!1,performance:!0,icon:!1,source:!1,url:!1,id:!1,placeholder:!1,alt:!1,autoplay:"auto",color:"#444",hd:!0,brandedUI:!1,parameters:!1,onDisplay:function(){},onPlaceholderDisplay:function(){},onReset:function(){},onCreate:function(e){},onEmbed:function(e){return e},metadata:{id:"id",icon:"icon",placeholder:"placeholder",alt:"alt",source:"source",url:"url"},error:{noURL:"No URL specified",method:"The method you called is not defined"},className:{active:"active",embed:"embed"},selector:{embed:".embed",placeholder:".placeholder",icon:".icon"},sources:{youtube:{name:"youtube",type:"video",icon:"video play",domain:"youtube.com",url:"//www.youtube.com/embed/{id}",parameters:function(e){return{autohide:!e.brandedUI,autoplay:e.autoplay,color:e.color||void 0,hq:e.hd,jsapi:e.api,modestbranding:!e.brandedUI}}},vimeo:{name:"vimeo",type:"video",icon:"video play",domain:"vimeo.com",url:"//player.vimeo.com/video/{id}",parameters:function(e){return{api:e.api,autoplay:e.autoplay,byline:e.brandedUI,color:e.color||void 0,portrait:e.brandedUI,title:e.brandedUI}}}},templates:{deQuote:function(e,o){return String(e).replace(/"/g,o?"&quot;":"")},iframe:function(e,o){return o&&(e+="?"+o),'<iframe src="'+(0,C.fn.embed.settings.templates.deQuote)(e)+'" width="100%" height="100%" msallowFullScreen allowFullScreen></iframe>'},placeholder:function(e,o,n){var t="",a=C.fn.embed.settings.templates.deQuote;return o&&(t+='<i class="'+a(o)+' icon"></i>'),e&&(t+='<img class="placeholder" src="'+a(e)+(n?'" alt="'+a(n):"")+'">'),t}},api:!1,onPause:function(){},onPlay:function(){},onStop:function(){}}}(jQuery,window,document);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Emoji
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Emoji
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Emoji
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Emoji
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Feed
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Feed
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Feed
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Feed
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Flag
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Flag
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Flag
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Flag
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Flyout
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Flyout
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Flyout
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Flyout
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1219,7 +1219,9 @@
1219
1219
  });
1220
1220
  }
1221
1221
  clearTimeout(module.performance.timer);
1222
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1222
+ module.performance.timer = setTimeout(function () {
1223
+ module.performance.display();
1224
+ }, 500);
1223
1225
  },
1224
1226
  display: function () {
1225
1227
  var
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Flyout
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Flyout
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,9 +1,9 @@
1
1
  /*
2
- * # Fomantic UI - 2.9.4-beta.4+34acb50
2
+ * # Fomantic UI - 2.9.4-beta.41+9e455a4
3
3
  * https://github.com/fomantic/Fomantic-UI
4
4
  * https://fomantic-ui.com/
5
5
  *
6
- * Copyright 2023 Contributors
6
+ * Copyright 2024 Contributors
7
7
  * Released under the MIT license
8
8
  * https://opensource.org/licenses/MIT
9
9
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Form
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Form
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -147,6 +147,11 @@
147
147
  font-family: "Lato", system-ui, -apple-system, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
148
148
  line-height: 1.2857;
149
149
  resize: vertical;
150
+ min-height: 2.99992857em;
151
+ }
152
+ .ui.input > textarea {
153
+ flex: 1 1 auto;
154
+ max-width: 100%;
150
155
  }
151
156
  .ui.form textarea:not([rows]) {
152
157
  height: 12em;
@@ -264,8 +269,10 @@
264
269
 
265
270
  /* Auto Input */
266
271
  .ui.form .fields .field .ui.input input,
267
- .ui.form .field .ui.input input {
268
- width: auto;
272
+ .ui.form .fields .field .ui.input textarea,
273
+ .ui.form .field .ui.input input,
274
+ .ui.form .field .ui.input textarea {
275
+ width: 100%;
269
276
  }
270
277
 
271
278
  /* Full Width Input */
@@ -422,7 +429,8 @@
422
429
  .ui.form .ui.action.input:not([class*="left action"]) input[type="text"]:focus,
423
430
  .ui.form .ui.action.input:not([class*="left action"]) input[type="file"]:focus,
424
431
  .ui.form .ui.action.input:not([class*="left action"]) input[type="url"]:focus,
425
- .ui.form .ui.action.input:not([class*="left action"]) input[type="week"]:focus {
432
+ .ui.form .ui.action.input:not([class*="left action"]) input[type="week"]:focus,
433
+ .ui.form .ui.action.input:not([class*="left action"]) textarea:focus {
426
434
  border-top-right-radius: 0;
427
435
  border-bottom-right-radius: 0;
428
436
  }
@@ -440,7 +448,8 @@
440
448
  .ui.form .ui[class*="left action"].input input[type="text"],
441
449
  .ui.form .ui[class*="left action"].input input[type="file"],
442
450
  .ui.form .ui[class*="left action"].input input[type="url"],
443
- .ui.form .ui[class*="left action"].input input[type="week"] {
451
+ .ui.form .ui[class*="left action"].input input[type="week"],
452
+ .ui.form .ui[class*="left action"].input textarea {
444
453
  border-bottom-left-radius: 0;
445
454
  border-top-left-radius: 0;
446
455
  }
@@ -1516,6 +1525,7 @@
1516
1525
  .ui.form .inverted.segment label,
1517
1526
  .ui.form .inverted.segment .ui.checkbox label,
1518
1527
  .ui.inverted.form .ui.checkbox label,
1528
+ .ui.inverted.form .grouped.fields > label,
1519
1529
  .ui.inverted.form .inline.fields > label,
1520
1530
  .ui.inverted.form .inline.fields .field > label,
1521
1531
  .ui.inverted.form .inline.fields .field > p,
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.4-beta.4+34acb50 - Form Validation
2
+ * # Fomantic-UI 2.9.4-beta.41+9e455a4 - Form Validation
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -538,6 +538,13 @@
538
538
  fullFields[name].rules.push({ type: rule });
539
539
  });
540
540
  }
541
+
542
+ $.each(fullFields[name].rules, function (index, rule) {
543
+ var ruleName = module.get.ruleName(rule);
544
+ if (ruleName === 'empty') {
545
+ module.warn('*** DEPRECATED *** : Rule "empty" for field "' + name + '" will be removed in a future version. -> Use "notEmpty" rule instead.');
546
+ }
547
+ });
541
548
  });
542
549
 
543
550
  return fullFields;
@@ -551,9 +558,10 @@
551
558
  ancillary = module.get.ancillaryValue(rule),
552
559
  $field = module.get.field(field.identifier),
553
560
  value = $field.val(),
554
- prompt = isFunction(rule.prompt)
555
- ? rule.prompt(value)
556
- : rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule,
561
+ promptCheck = rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule,
562
+ prompt = String(isFunction(promptCheck)
563
+ ? promptCheck.call($field[0], value)
564
+ : promptCheck),
557
565
  requiresValue = prompt.search('{value}') !== -1,
558
566
  requiresName = prompt.search('{name}') !== -1,
559
567
  parts,
@@ -591,10 +599,10 @@
591
599
  },
592
600
  settings: function () {
593
601
  if ($.isPlainObject(parameters)) {
594
- if (parameters.fields) {
595
- parameters.fields = module.get.fieldsFromShorthand(parameters.fields);
596
- }
597
602
  settings = $.extend(true, {}, $.fn.form.settings, parameters);
603
+ if (settings.fields) {
604
+ settings.fields = module.get.fieldsFromShorthand(settings.fields);
605
+ }
598
606
  validation = $.extend(true, {}, $.fn.form.settings.defaults, settings.fields);
599
607
  module.verbose('Extending settings', validation, settings);
600
608
  } else {
@@ -711,7 +719,7 @@
711
719
  var
712
720
  $field = $(field),
713
721
  $calendar = $field.closest(selector.uiCalendar),
714
- name = $field.prop('name'),
722
+ name = $field.prop('name') || $field.prop('id'),
715
723
  value = $field.val(),
716
724
  isCheckbox = $field.is(selector.checkbox),
717
725
  isRadio = $field.is(selector.radio),
@@ -1237,20 +1245,20 @@
1237
1245
  isRequired = $el.prop('required') || $elGroup.hasClass(className.required) || $elGroup.parent().hasClass(className.required),
1238
1246
  isDisabled = $el.is(':disabled') || $elGroup.hasClass(className.disabled) || $elGroup.parent().hasClass(className.disabled),
1239
1247
  validation = module.get.validation($el),
1240
- hasEmptyRule = validation
1248
+ hasNotEmptyRule = validation
1241
1249
  ? $.grep(validation.rules, function (rule) {
1242
- return rule.type === 'empty';
1243
- }) !== 0
1250
+ return ['notEmpty', 'checked', 'empty'].indexOf(rule.type) >= 0;
1251
+ }).length > 0
1244
1252
  : false,
1245
1253
  identifier = module.get.identifier(validation, $el)
1246
1254
  ;
1247
- if (isRequired && !isDisabled && !hasEmptyRule && identifier !== undefined) {
1255
+ if (isRequired && !isDisabled && !hasNotEmptyRule && identifier !== undefined) {
1248
1256
  if (isCheckbox) {
1249
1257
  module.verbose("Adding 'checked' rule on field", identifier);
1250
1258
  module.add.rule(identifier, 'checked');
1251
1259
  } else {
1252
- module.verbose("Adding 'empty' rule on field", identifier);
1253
- module.add.rule(identifier, 'empty');
1260
+ module.verbose("Adding 'notEmpty' rule on field", identifier);
1261
+ module.add.rule(identifier, 'notEmpty');
1254
1262
  }
1255
1263
  }
1256
1264
  });
@@ -1349,13 +1357,14 @@
1349
1357
  fieldErrors = [],
1350
1358
  isDisabled = $field.filter(':not(:disabled)').length === 0,
1351
1359
  validationMessage = $field[0].validationMessage,
1360
+ noNativeValidation = field.noNativeValidation || settings.noNativeValidation || $field.filter('[formnovalidate],[novalidate]').length > 0 || $module.filter('[novalidate]').length > 0,
1352
1361
  errorLimit
1353
1362
  ;
1354
1363
  if (!field.identifier) {
1355
1364
  module.debug('Using field name as identifier', identifier);
1356
1365
  field.identifier = identifier;
1357
1366
  }
1358
- if (validationMessage) {
1367
+ if (validationMessage && !noNativeValidation) {
1359
1368
  module.debug('Field is natively invalid', identifier);
1360
1369
  fieldErrors.push(validationMessage);
1361
1370
  fieldValid = false;
@@ -1491,6 +1500,12 @@
1491
1500
  module.error.apply(console, arguments);
1492
1501
  }
1493
1502
  },
1503
+ warn: function () {
1504
+ if (!settings.silent) {
1505
+ module.warn = Function.prototype.bind.call(console.warn, console, settings.name + ':');
1506
+ module.warn.apply(console, arguments);
1507
+ }
1508
+ },
1494
1509
  performance: {
1495
1510
  log: function (message) {
1496
1511
  var
@@ -1511,7 +1526,9 @@
1511
1526
  });
1512
1527
  }
1513
1528
  clearTimeout(module.performance.timer);
1514
- module.performance.timer = setTimeout(function () { module.performance.display(); }, 500);
1529
+ module.performance.timer = setTimeout(function () {
1530
+ module.performance.display();
1531
+ }, 500);
1515
1532
  },
1516
1533
  display: function () {
1517
1534
  var
@@ -1605,6 +1622,7 @@
1605
1622
  name: 'Form',
1606
1623
  namespace: 'form',
1607
1624
 
1625
+ silent: false,
1608
1626
  debug: false,
1609
1627
  verbose: false,
1610
1628
  performance: true,
@@ -1627,6 +1645,7 @@
1627
1645
  errorFocus: true,
1628
1646
  dateHandling: 'date', // 'date', 'input', 'formatter'
1629
1647
  errorLimit: 0,
1648
+ noNativeValidation: false,
1630
1649
 
1631
1650
  onValid: function () {},
1632
1651
  onInvalid: function () {},
@@ -1669,6 +1688,7 @@
1669
1688
  maxValue: '{name} must have a maximum value of {ruleValue}',
1670
1689
  minValue: '{name} must have a minimum value of {ruleValue}',
1671
1690
  empty: '{name} must have a value',
1691
+ notEmpty: '{name} must have a value',
1672
1692
  checked: '{name} must be checked',
1673
1693
  email: '{name} must be a valid e-mail',
1674
1694
  url: '{name} must be a valid url',
@@ -1801,10 +1821,15 @@
1801
1821
  rules: {
1802
1822
 
1803
1823
  // is not empty or blank string
1804
- empty: function (value) {
1824
+ notEmpty: function (value) {
1805
1825
  return !(value === undefined || value === '' || (Array.isArray(value) && value.length === 0));
1806
1826
  },
1807
1827
 
1828
+ /* Deprecated */
1829
+ empty: function (value) {
1830
+ return $.fn.form.settings.rules.notEmpty(value);
1831
+ },
1832
+
1808
1833
  // checkbox checked
1809
1834
  checked: function () {
1810
1835
  return $(this).filter(':checked').length > 0;