fomantic-ui 2.9.0-beta.266 → 2.9.0-beta.267

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 (151) hide show
  1. package/dist/components/accordion.css +1 -1
  2. package/dist/components/accordion.js +1 -1
  3. package/dist/components/accordion.min.css +1 -1
  4. package/dist/components/accordion.min.js +1 -1
  5. package/dist/components/ad.css +1 -1
  6. package/dist/components/ad.min.css +1 -1
  7. package/dist/components/api.js +69 -14
  8. package/dist/components/api.min.js +2 -2
  9. package/dist/components/breadcrumb.css +1 -1
  10. package/dist/components/breadcrumb.min.css +1 -1
  11. package/dist/components/button.css +1 -1
  12. package/dist/components/button.min.css +1 -1
  13. package/dist/components/calendar.css +1 -1
  14. package/dist/components/calendar.js +2 -2
  15. package/dist/components/calendar.min.css +1 -1
  16. package/dist/components/calendar.min.js +2 -2
  17. package/dist/components/card.css +1 -1
  18. package/dist/components/card.min.css +1 -1
  19. package/dist/components/checkbox.css +1 -1
  20. package/dist/components/checkbox.js +1 -1
  21. package/dist/components/checkbox.min.css +1 -1
  22. package/dist/components/checkbox.min.js +1 -1
  23. package/dist/components/comment.css +1 -1
  24. package/dist/components/comment.min.css +1 -1
  25. package/dist/components/container.css +1 -1
  26. package/dist/components/container.min.css +1 -1
  27. package/dist/components/dimmer.css +1 -1
  28. package/dist/components/dimmer.js +1 -1
  29. package/dist/components/dimmer.min.css +1 -1
  30. package/dist/components/dimmer.min.js +1 -1
  31. package/dist/components/divider.css +1 -1
  32. package/dist/components/divider.min.css +1 -1
  33. package/dist/components/dropdown.css +1 -1
  34. package/dist/components/dropdown.js +1 -1
  35. package/dist/components/dropdown.min.css +1 -1
  36. package/dist/components/dropdown.min.js +1 -1
  37. package/dist/components/embed.css +1 -1
  38. package/dist/components/embed.js +1 -1
  39. package/dist/components/embed.min.css +1 -1
  40. package/dist/components/embed.min.js +1 -1
  41. package/dist/components/feed.css +1 -1
  42. package/dist/components/feed.min.css +1 -1
  43. package/dist/components/flag.css +1 -1
  44. package/dist/components/flag.min.css +1 -1
  45. package/dist/components/form.css +1 -1
  46. package/dist/components/form.js +1 -1
  47. package/dist/components/form.min.css +1 -1
  48. package/dist/components/form.min.js +1 -1
  49. package/dist/components/grid.css +1 -1
  50. package/dist/components/grid.min.css +1 -1
  51. package/dist/components/header.css +1 -1
  52. package/dist/components/header.min.css +1 -1
  53. package/dist/components/icon.css +1 -1
  54. package/dist/components/icon.min.css +1 -1
  55. package/dist/components/image.css +1 -1
  56. package/dist/components/image.min.css +1 -1
  57. package/dist/components/input.css +1 -1
  58. package/dist/components/input.min.css +1 -1
  59. package/dist/components/item.css +1 -1
  60. package/dist/components/item.min.css +1 -1
  61. package/dist/components/label.css +1 -1
  62. package/dist/components/label.min.css +1 -1
  63. package/dist/components/list.css +1 -1
  64. package/dist/components/list.min.css +1 -1
  65. package/dist/components/loader.css +1 -1
  66. package/dist/components/loader.min.css +1 -1
  67. package/dist/components/message.css +1 -1
  68. package/dist/components/message.min.css +1 -1
  69. package/dist/components/modal.css +1 -1
  70. package/dist/components/modal.js +1 -1
  71. package/dist/components/modal.min.css +1 -1
  72. package/dist/components/modal.min.js +1 -1
  73. package/dist/components/nag.css +1 -1
  74. package/dist/components/nag.js +1 -1
  75. package/dist/components/nag.min.css +1 -1
  76. package/dist/components/nag.min.js +1 -1
  77. package/dist/components/placeholder.css +1 -1
  78. package/dist/components/placeholder.min.css +1 -1
  79. package/dist/components/popup.css +1 -1
  80. package/dist/components/popup.js +1 -1
  81. package/dist/components/popup.min.css +1 -1
  82. package/dist/components/popup.min.js +1 -1
  83. package/dist/components/progress.css +1 -1
  84. package/dist/components/progress.js +1 -1
  85. package/dist/components/progress.min.css +1 -1
  86. package/dist/components/progress.min.js +1 -1
  87. package/dist/components/rail.css +1 -1
  88. package/dist/components/rail.min.css +1 -1
  89. package/dist/components/rating.css +1 -1
  90. package/dist/components/rating.js +1 -1
  91. package/dist/components/rating.min.css +1 -1
  92. package/dist/components/rating.min.js +1 -1
  93. package/dist/components/reset.css +1 -1
  94. package/dist/components/reset.min.css +1 -1
  95. package/dist/components/reveal.css +1 -1
  96. package/dist/components/reveal.min.css +1 -1
  97. package/dist/components/search.css +1 -1
  98. package/dist/components/search.js +1 -1
  99. package/dist/components/search.min.css +1 -1
  100. package/dist/components/search.min.js +1 -1
  101. package/dist/components/segment.css +1 -1
  102. package/dist/components/segment.min.css +1 -1
  103. package/dist/components/shape.css +1 -1
  104. package/dist/components/shape.js +1 -1
  105. package/dist/components/shape.min.css +1 -1
  106. package/dist/components/shape.min.js +1 -1
  107. package/dist/components/sidebar.css +1 -1
  108. package/dist/components/sidebar.js +1 -1
  109. package/dist/components/sidebar.min.css +1 -1
  110. package/dist/components/sidebar.min.js +1 -1
  111. package/dist/components/site.css +1 -1
  112. package/dist/components/site.js +1 -1
  113. package/dist/components/site.min.css +1 -1
  114. package/dist/components/site.min.js +1 -1
  115. package/dist/components/slider.js +1 -1
  116. package/dist/components/slider.min.js +1 -1
  117. package/dist/components/state.js +1 -1
  118. package/dist/components/state.min.js +1 -1
  119. package/dist/components/statistic.css +1 -1
  120. package/dist/components/statistic.min.css +1 -1
  121. package/dist/components/step.css +1 -1
  122. package/dist/components/step.min.css +1 -1
  123. package/dist/components/sticky.css +1 -1
  124. package/dist/components/sticky.js +1 -1
  125. package/dist/components/sticky.min.css +1 -1
  126. package/dist/components/sticky.min.js +1 -1
  127. package/dist/components/tab.css +1 -1
  128. package/dist/components/tab.js +1 -1
  129. package/dist/components/tab.min.css +1 -1
  130. package/dist/components/tab.min.js +1 -1
  131. package/dist/components/table.css +1 -1
  132. package/dist/components/table.min.css +1 -1
  133. package/dist/components/text.css +1 -1
  134. package/dist/components/text.min.css +1 -1
  135. package/dist/components/toast.css +1 -1
  136. package/dist/components/toast.js +1 -1
  137. package/dist/components/toast.min.css +1 -1
  138. package/dist/components/toast.min.js +1 -1
  139. package/dist/components/transition.css +1 -1
  140. package/dist/components/transition.js +1 -1
  141. package/dist/components/transition.min.css +1 -1
  142. package/dist/components/transition.min.js +1 -1
  143. package/dist/components/visibility.js +1 -1
  144. package/dist/components/visibility.min.js +1 -1
  145. package/dist/semantic.css +49 -49
  146. package/dist/semantic.js +94 -39
  147. package/dist/semantic.min.css +1 -1
  148. package/dist/semantic.min.js +2 -2
  149. package/package.json +1 -1
  150. package/src/definitions/behaviors/api.js +68 -13
  151. package/src/definitions/modules/calendar.js +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fomantic-ui",
3
- "version": "2.9.0-beta.266+cb122de",
3
+ "version": "2.9.0-beta.267+acc903b",
4
4
  "description": "Fomantic empowers designers and developers by creating a shared vocabulary for UI.",
5
5
  "keywords": [
6
6
  "fomantic-ui",
@@ -428,28 +428,76 @@ $.api = $.fn.api = function(parameters) {
428
428
  formData: function(data) {
429
429
  var
430
430
  formData = {},
431
- hasOtherData
431
+ hasOtherData,
432
+ useFormDataApi = settings.serializeForm === 'formdata'
432
433
  ;
433
434
  data = data || originalData || settings.data;
434
435
  hasOtherData = $.isPlainObject(data);
435
436
 
436
- $.each($form.serializeArray(), function (i, element) {
437
- var node = formData[element.name];
438
-
439
- if ('undefined' !== typeof node && node !== null) {
440
- if (Array.isArray(node)) {
441
- node.push(element.value);
437
+ if (useFormDataApi) {
438
+ formData = new FormData($form[0]);
439
+ settings.processData = typeof settings.processData !== 'undefined' ? settings.processData : false;
440
+ settings.contentType = typeof settings.contentType !== 'undefined' ? settings.contentType : false;
441
+ } else {
442
+ var formArray = $form.serializeArray(),
443
+ pushes = {},
444
+ pushValues= {},
445
+ build = function(base, key, value) {
446
+ base[key] = value;
447
+ return base;
448
+ }
449
+ ;
450
+ // add files
451
+ $.each($('input[type="file"]',$form), function(i, tag) {
452
+ $.each($(tag)[0].files, function(j, file) {
453
+ formArray.push({name:tag.name, value: file});
454
+ });
455
+ });
456
+ $.each(formArray, function(i, el) {
457
+ if (!settings.regExp.validate.test(el.name)) return;
458
+ var isCheckbox = $('[name="' + el.name + '"]', $form).attr('type') === 'checkbox',
459
+ floatValue = parseFloat(el.value),
460
+ value = (isCheckbox && el.value === 'on') || el.value === 'true' || (String(floatValue) === el.value ? floatValue : (el.value === 'false' ? false : el.value)),
461
+ nameKeys = el.name.match(settings.regExp.key) || [], k, pushKey= el.name.replace(/\[\]$/,'')
462
+ ;
463
+ if(!(pushKey in pushes)) {
464
+ pushes[pushKey] = 0;
465
+ pushValues[pushKey] = value;
466
+ } else if (Array.isArray(pushValues[pushKey])) {
467
+ pushValues[pushKey].push(value);
442
468
  } else {
443
- formData[element.name] = [node, element.value];
469
+ pushValues[pushKey] = [pushValues[pushKey] , value];
444
470
  }
445
- } else {
446
- formData[element.name] = element.value;
447
- }
448
- });
471
+ value = pushValues[pushKey];
472
+
473
+ while ((k = nameKeys.pop()) !== undefined) {
474
+ // foo[]
475
+ if (k == '' && !Array.isArray(value)){
476
+ value = build([], pushes[pushKey]++, value);
477
+ }
478
+ // foo[n]
479
+ else if (settings.regExp.fixed.test(k)) {
480
+ value = build([], k, value);
481
+ }
482
+ // foo; foo[bar]
483
+ else if (settings.regExp.named.test(k)) {
484
+ value = build({}, k, value);
485
+ }
486
+ }
487
+ formData = $.extend(true, formData, value);
488
+ });
489
+ }
449
490
 
450
491
  if(hasOtherData) {
451
492
  module.debug('Extending existing data with form data', data, formData);
452
- data = $.extend(true, {}, data, formData);
493
+ if(useFormDataApi) {
494
+ $.each(Object.keys(data),function(i, el){
495
+ formData.append(el, data[el]);
496
+ });
497
+ data = formData;
498
+ } else {
499
+ data = $.extend(true, {}, data, formData);
500
+ }
453
501
  }
454
502
  else {
455
503
  module.debug('Adding form data', formData);
@@ -1088,6 +1136,8 @@ $.api.settings = {
1088
1136
  defaultData : true,
1089
1137
 
1090
1138
  // whether to serialize closest form
1139
+ // use true to convert complex named keys like a[b][1][c][] into a nested object
1140
+ // use 'formdata' for formdata web api
1091
1141
  serializeForm : false,
1092
1142
 
1093
1143
  // how long to wait before request should occur
@@ -1158,6 +1208,11 @@ $.api.settings = {
1158
1208
  regExp : {
1159
1209
  required : /\{\$*[A-z0-9]+\}/g,
1160
1210
  optional : /\{\/\$*[A-z0-9]+\}/g,
1211
+ validate: /^[a-z_][a-z0-9_-]*(?:\[(?:\d*|[a-z0-9_-]+)\])*$/i,
1212
+ key: /[a-z0-9_-]+|(?=\[\])/gi,
1213
+ push: /^$/,
1214
+ fixed: /^\d+$/,
1215
+ named: /^[a-z0-9_-]+$/i
1161
1216
  },
1162
1217
 
1163
1218
  className: {
@@ -1560,7 +1560,7 @@ $.fn.calendar.settings = {
1560
1560
  if (!text) {
1561
1561
  return null;
1562
1562
  }
1563
- text = String(text).replace(/\s/g,'');
1563
+ text = String(text).trim().replace(/([.:\/\-])\s+/g,'$1').replace(/\s+([.:\/-])/g,'$1').replace(/\s+/g,' ');
1564
1564
  if (text.length === 0) {
1565
1565
  return null;
1566
1566
  }