fomantic-ui 2.9.3-beta.1 → 2.9.3-beta.3

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 (187) hide show
  1. package/.all-contributorsrc +9 -0
  2. package/CONTRIBUTORS.md +102 -99
  3. package/dist/components/accordion.css +1 -1
  4. package/dist/components/accordion.js +1 -5
  5. package/dist/components/accordion.min.css +1 -1
  6. package/dist/components/accordion.min.js +2 -2
  7. package/dist/components/ad.css +1 -1
  8. package/dist/components/ad.min.css +1 -1
  9. package/dist/components/api.js +14 -8
  10. package/dist/components/api.min.js +2 -2
  11. package/dist/components/breadcrumb.css +1 -1
  12. package/dist/components/breadcrumb.min.css +1 -1
  13. package/dist/components/button.css +1 -1
  14. package/dist/components/button.min.css +1 -1
  15. package/dist/components/calendar.css +6 -6
  16. package/dist/components/calendar.js +1 -6
  17. package/dist/components/calendar.min.css +2 -2
  18. package/dist/components/calendar.min.js +2 -2
  19. package/dist/components/card.css +1 -1
  20. package/dist/components/card.min.css +1 -1
  21. package/dist/components/checkbox.css +1 -1
  22. package/dist/components/checkbox.js +1 -5
  23. package/dist/components/checkbox.min.css +1 -1
  24. package/dist/components/checkbox.min.js +2 -2
  25. package/dist/components/comment.css +1 -1
  26. package/dist/components/comment.min.css +1 -1
  27. package/dist/components/container.css +1 -1
  28. package/dist/components/container.min.css +1 -1
  29. package/dist/components/dimmer.css +1 -1
  30. package/dist/components/dimmer.js +1 -5
  31. package/dist/components/dimmer.min.css +1 -1
  32. package/dist/components/dimmer.min.js +2 -2
  33. package/dist/components/divider.css +1 -1
  34. package/dist/components/divider.min.css +1 -1
  35. package/dist/components/dropdown.css +1 -1
  36. package/dist/components/dropdown.js +29 -14
  37. package/dist/components/dropdown.min.css +1 -1
  38. package/dist/components/dropdown.min.js +2 -2
  39. package/dist/components/embed.css +1 -1
  40. package/dist/components/embed.js +1 -6
  41. package/dist/components/embed.min.css +1 -1
  42. package/dist/components/embed.min.js +2 -2
  43. package/dist/components/emoji.css +1 -1
  44. package/dist/components/emoji.min.css +1 -1
  45. package/dist/components/feed.css +1 -1
  46. package/dist/components/feed.min.css +1 -1
  47. package/dist/components/flag.css +1 -1
  48. package/dist/components/flag.min.css +1 -1
  49. package/dist/components/flyout.css +1 -1
  50. package/dist/components/flyout.js +38 -27
  51. package/dist/components/flyout.min.css +1 -1
  52. package/dist/components/flyout.min.js +2 -2
  53. package/dist/components/form.css +1 -1
  54. package/dist/components/form.js +31 -23
  55. package/dist/components/form.min.css +1 -1
  56. package/dist/components/form.min.js +2 -2
  57. package/dist/components/grid.css +1 -1
  58. package/dist/components/grid.min.css +1 -1
  59. package/dist/components/header.css +1 -1
  60. package/dist/components/header.min.css +1 -1
  61. package/dist/components/icon.css +1 -1
  62. package/dist/components/icon.min.css +1 -1
  63. package/dist/components/image.css +1 -1
  64. package/dist/components/image.min.css +1 -1
  65. package/dist/components/input.css +1 -1
  66. package/dist/components/input.min.css +1 -1
  67. package/dist/components/item.css +1 -1
  68. package/dist/components/item.min.css +1 -1
  69. package/dist/components/label.css +1 -1
  70. package/dist/components/label.min.css +1 -1
  71. package/dist/components/list.css +1 -1
  72. package/dist/components/list.min.css +1 -1
  73. package/dist/components/loader.css +1 -1
  74. package/dist/components/loader.min.css +1 -1
  75. package/dist/components/menu.css +1 -1
  76. package/dist/components/menu.min.css +1 -1
  77. package/dist/components/message.css +1 -1
  78. package/dist/components/message.min.css +1 -1
  79. package/dist/components/modal.css +1 -1
  80. package/dist/components/modal.js +38 -26
  81. package/dist/components/modal.min.css +1 -1
  82. package/dist/components/modal.min.js +2 -2
  83. package/dist/components/nag.css +1 -1
  84. package/dist/components/nag.js +16 -8
  85. package/dist/components/nag.min.css +1 -1
  86. package/dist/components/nag.min.js +2 -2
  87. package/dist/components/placeholder.css +1 -1
  88. package/dist/components/placeholder.min.css +1 -1
  89. package/dist/components/popup.css +1 -1
  90. package/dist/components/popup.js +18 -12
  91. package/dist/components/popup.min.css +1 -1
  92. package/dist/components/popup.min.js +2 -2
  93. package/dist/components/progress.css +1 -1
  94. package/dist/components/progress.js +1 -6
  95. package/dist/components/progress.min.css +1 -1
  96. package/dist/components/progress.min.js +2 -2
  97. package/dist/components/rail.css +1 -1
  98. package/dist/components/rail.min.css +1 -1
  99. package/dist/components/rating.css +1 -1
  100. package/dist/components/rating.js +1 -5
  101. package/dist/components/rating.min.css +1 -1
  102. package/dist/components/rating.min.js +2 -2
  103. package/dist/components/reset.css +1 -1
  104. package/dist/components/reset.min.css +1 -1
  105. package/dist/components/reveal.css +1 -1
  106. package/dist/components/reveal.min.css +1 -1
  107. package/dist/components/search.css +1 -1
  108. package/dist/components/search.js +1 -5
  109. package/dist/components/search.min.css +1 -1
  110. package/dist/components/search.min.js +2 -2
  111. package/dist/components/segment.css +3 -2
  112. package/dist/components/segment.min.css +2 -2
  113. package/dist/components/shape.css +1 -1
  114. package/dist/components/shape.js +1 -5
  115. package/dist/components/shape.min.css +1 -1
  116. package/dist/components/shape.min.js +2 -2
  117. package/dist/components/sidebar.css +1 -1
  118. package/dist/components/sidebar.js +15 -8
  119. package/dist/components/sidebar.min.css +1 -1
  120. package/dist/components/sidebar.min.js +2 -2
  121. package/dist/components/site.css +1 -1
  122. package/dist/components/site.js +1 -1
  123. package/dist/components/site.min.css +1 -1
  124. package/dist/components/site.min.js +1 -1
  125. package/dist/components/slider.css +1 -1
  126. package/dist/components/slider.js +1 -6
  127. package/dist/components/slider.min.css +1 -1
  128. package/dist/components/slider.min.js +2 -2
  129. package/dist/components/state.js +23 -20
  130. package/dist/components/state.min.js +2 -2
  131. package/dist/components/statistic.css +1 -1
  132. package/dist/components/statistic.min.css +1 -1
  133. package/dist/components/step.css +1 -1
  134. package/dist/components/step.min.css +1 -1
  135. package/dist/components/sticky.css +1 -1
  136. package/dist/components/sticky.js +17 -16
  137. package/dist/components/sticky.min.css +1 -1
  138. package/dist/components/sticky.min.js +2 -2
  139. package/dist/components/tab.css +1 -1
  140. package/dist/components/tab.js +14 -6
  141. package/dist/components/tab.min.css +1 -1
  142. package/dist/components/tab.min.js +2 -2
  143. package/dist/components/table.css +1 -1
  144. package/dist/components/table.min.css +1 -1
  145. package/dist/components/text.css +1 -1
  146. package/dist/components/text.min.css +1 -1
  147. package/dist/components/toast.css +1 -1
  148. package/dist/components/toast.js +17 -9
  149. package/dist/components/toast.min.css +1 -1
  150. package/dist/components/toast.min.js +2 -2
  151. package/dist/components/transition.css +1 -1
  152. package/dist/components/transition.js +1 -5
  153. package/dist/components/transition.min.css +1 -1
  154. package/dist/components/transition.min.js +2 -2
  155. package/dist/components/visibility.js +15 -6
  156. package/dist/components/visibility.min.js +2 -2
  157. package/dist/semantic.css +60 -59
  158. package/dist/semantic.js +298 -244
  159. package/dist/semantic.min.css +2 -2
  160. package/dist/semantic.min.js +2 -2
  161. package/package.json +1 -1
  162. package/src/definitions/behaviors/api.js +13 -7
  163. package/src/definitions/behaviors/form.js +30 -22
  164. package/src/definitions/behaviors/state.js +22 -19
  165. package/src/definitions/behaviors/visibility.js +14 -5
  166. package/src/definitions/elements/segment.less +2 -1
  167. package/src/definitions/modules/accordion.js +0 -4
  168. package/src/definitions/modules/calendar.js +0 -5
  169. package/src/definitions/modules/calendar.less +1 -1
  170. package/src/definitions/modules/checkbox.js +0 -4
  171. package/src/definitions/modules/dimmer.js +0 -4
  172. package/src/definitions/modules/dropdown.js +28 -13
  173. package/src/definitions/modules/embed.js +0 -5
  174. package/src/definitions/modules/flyout.js +37 -26
  175. package/src/definitions/modules/modal.js +37 -25
  176. package/src/definitions/modules/nag.js +15 -7
  177. package/src/definitions/modules/popup.js +17 -11
  178. package/src/definitions/modules/progress.js +0 -5
  179. package/src/definitions/modules/rating.js +0 -4
  180. package/src/definitions/modules/search.js +0 -4
  181. package/src/definitions/modules/shape.js +0 -4
  182. package/src/definitions/modules/sidebar.js +14 -7
  183. package/src/definitions/modules/slider.js +0 -5
  184. package/src/definitions/modules/sticky.js +16 -15
  185. package/src/definitions/modules/tab.js +13 -5
  186. package/src/definitions/modules/toast.js +16 -8
  187. package/src/definitions/modules/transition.js +0 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fomantic-ui",
3
- "version": "2.9.3-beta.1+d8dd970",
3
+ "version": "2.9.3-beta.3+880333c",
4
4
  "description": "Fomantic empowers designers and developers by creating a shared vocabulary for UI.",
5
5
  "keywords": [
6
6
  "fomantic-ui",
@@ -29,14 +29,25 @@
29
29
  $allModules = isFunction(this)
30
30
  ? $(window)
31
31
  : $(this),
32
- moduleSelector = $allModules.selector || '',
33
32
  time = Date.now(),
34
33
  performance = [],
35
34
 
36
35
  query = arguments[0],
37
36
  methodInvoked = typeof query === 'string',
38
37
  queryArguments = [].slice.call(arguments, 1),
38
+ contextCheck = function (context, win) {
39
+ var $context;
40
+ if ([window, document].indexOf(context) >= 0) {
41
+ $context = $(context);
42
+ } else {
43
+ $context = $(win.document).find(context);
44
+ if ($context.length === 0) {
45
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
46
+ }
47
+ }
39
48
 
49
+ return $context;
50
+ },
40
51
  returnedValue
41
52
  ;
42
53
 
@@ -62,9 +73,7 @@
62
73
  $form = $module.closest(selector.form),
63
74
 
64
75
  // context used for state
65
- $context = settings.stateContext
66
- ? ([window, document].indexOf(settings.stateContext) < 0 ? $(document).find(settings.stateContext) : $(settings.stateContext))
67
- : $module,
76
+ $context = settings.stateContext ? contextCheck(settings.stateContext, window) : $module,
68
77
 
69
78
  // request details
70
79
  ajaxSettings,
@@ -974,9 +983,6 @@
974
983
  totalTime += data['Execution Time'];
975
984
  });
976
985
  title += ' ' + totalTime + 'ms';
977
- if (moduleSelector) {
978
- title += ' \'' + moduleSelector + '\'';
979
- }
980
986
  if (performance.length > 0) {
981
987
  console.groupCollapsed(title);
982
988
  if (console.table) {
@@ -22,7 +22,7 @@
22
22
  $.fn.form = function (parameters) {
23
23
  var
24
24
  $allModules = $(this),
25
- moduleSelector = $allModules.selector || '',
25
+ $window = $(window),
26
26
 
27
27
  time = Date.now(),
28
28
  performance = [],
@@ -61,6 +61,8 @@
61
61
  namespace,
62
62
  moduleNamespace,
63
63
  eventNamespace,
64
+ attachEventsSelector,
65
+ attachEventsAction,
64
66
 
65
67
  submitting = false,
66
68
  dirty = false,
@@ -143,6 +145,9 @@
143
145
  module[action]();
144
146
  event.preventDefault();
145
147
  });
148
+
149
+ attachEventsSelector = selector;
150
+ attachEventsAction = action;
146
151
  },
147
152
 
148
153
  bindEvents: function () {
@@ -168,10 +173,14 @@
168
173
 
169
174
  // Dirty events
170
175
  if (settings.preventLeaving) {
171
- $(window).on('beforeunload' + eventNamespace, module.event.beforeUnload);
176
+ $window.on('beforeunload' + eventNamespace, module.event.beforeUnload);
172
177
  }
173
178
 
174
- $field.on('change click keyup keydown blur', function (e) {
179
+ $field.on('change' + eventNamespace
180
+ + ' click' + eventNamespace
181
+ + ' keyup' + eventNamespace
182
+ + ' keydown' + eventNamespace
183
+ + ' blur' + eventNamespace, function (e) {
175
184
  module.determine.isDirty();
176
185
  });
177
186
 
@@ -182,6 +191,9 @@
182
191
  $module.on('clean' + eventNamespace, function (e) {
183
192
  settings.onClean.call();
184
193
  });
194
+ if (attachEventsSelector) {
195
+ module.attachEvents(attachEventsSelector, attachEventsAction);
196
+ }
185
197
  },
186
198
 
187
199
  clear: function () {
@@ -230,6 +242,7 @@
230
242
  isCheckbox = $field.is(selector.checkbox),
231
243
  isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
232
244
  isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
245
+ isFile = $field.is(selector.file),
233
246
  isErrored = $fieldGroup.hasClass(className.error)
234
247
  ;
235
248
  if (defaultValue === undefined) {
@@ -250,7 +263,7 @@
250
263
  $calendar.calendar('set date', defaultValue);
251
264
  } else {
252
265
  module.verbose('Resetting field value', $field, defaultValue);
253
- $field.val(defaultValue);
266
+ $field.val(isFile ? '' : defaultValue);
254
267
  }
255
268
  });
256
269
  module.remove.states();
@@ -386,6 +399,13 @@
386
399
  $module.off(eventNamespace);
387
400
  $field.off(eventNamespace);
388
401
  $submit.off(eventNamespace);
402
+ if (settings.preventLeaving) {
403
+ $window.off(eventNamespace);
404
+ }
405
+ if (attachEventsSelector) {
406
+ $(attachEventsSelector).off(eventNamespace);
407
+ attachEventsSelector = undefined;
408
+ }
389
409
  },
390
410
 
391
411
  event: {
@@ -487,18 +507,7 @@
487
507
  return rule.type;
488
508
  },
489
509
  changeEvent: function (type, $input) {
490
- if (type === 'checkbox' || type === 'radio' || type === 'hidden' || $input.is('select')) {
491
- return 'change';
492
- }
493
-
494
- return module.get.inputEvent();
495
- },
496
- inputEvent: function () {
497
- return document.createElement('input').oninput !== undefined
498
- ? 'input'
499
- : (document.createElement('input').onpropertychange !== undefined
500
- ? 'propertychange'
501
- : 'keyup');
510
+ return ['file', 'checkbox', 'radio', 'hidden'].indexOf(type) >= 0 || $input.is('select') ? 'change' : 'input';
502
511
  },
503
512
  fieldsFromShorthand: function (fields) {
504
513
  var
@@ -1103,6 +1112,7 @@
1103
1112
  $field = module.get.field(key),
1104
1113
  $element = $field.parent(),
1105
1114
  $calendar = $field.closest(selector.uiCalendar),
1115
+ isFile = $field.is(selector.file),
1106
1116
  isMultiple = Array.isArray(value),
1107
1117
  isCheckbox = $element.is(selector.uiCheckbox) && module.can.useElement('checkbox'),
1108
1118
  isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
@@ -1145,7 +1155,7 @@
1145
1155
  $calendar.calendar('set date', value);
1146
1156
  } else {
1147
1157
  module.verbose('Setting field value', value, $field);
1148
- $field.val(value);
1158
+ $field.val(isFile ? '' : value);
1149
1159
  }
1150
1160
  }
1151
1161
  });
@@ -1473,9 +1483,6 @@
1473
1483
  totalTime += data['Execution Time'];
1474
1484
  });
1475
1485
  title += ' ' + totalTime + 'ms';
1476
- if (moduleSelector) {
1477
- title += ' \'' + moduleSelector + '\'';
1478
- }
1479
1486
  if ($allModules.length > 1) {
1480
1487
  title += ' (' + $allModules.length + ')';
1481
1488
  }
@@ -1651,9 +1658,10 @@
1651
1658
  selector: {
1652
1659
  checkbox: 'input[type="checkbox"], input[type="radio"]',
1653
1660
  clear: '.clear',
1654
- field: 'input:not(.search):not([type="file"]):not([type="reset"]):not([type="button"]):not([type="submit"]), textarea, select',
1661
+ field: 'input:not(.search):not([type="reset"]):not([type="button"]):not([type="submit"]), textarea, select',
1662
+ file: 'input[type="file"]',
1655
1663
  group: '.field',
1656
- input: 'input:not([type="file"])',
1664
+ input: 'input',
1657
1665
  message: '.error.message',
1658
1666
  prompt: '.prompt.label',
1659
1667
  radio: 'input[type="radio"]',
@@ -23,15 +23,25 @@
23
23
  var
24
24
  $allModules = $(this),
25
25
 
26
- moduleSelector = $allModules.selector || '',
27
-
28
26
  time = Date.now(),
29
27
  performance = [],
30
28
 
31
29
  query = arguments[0],
32
30
  methodInvoked = typeof query === 'string',
33
31
  queryArguments = [].slice.call(arguments, 1),
32
+ contextCheck = function (context, win) {
33
+ var $context;
34
+ if ([window, document].indexOf(context) >= 0) {
35
+ $context = $(context);
36
+ } else {
37
+ $context = $(win.document).find(context);
38
+ if ($context.length === 0) {
39
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
40
+ }
41
+ }
34
42
 
43
+ return $context;
44
+ },
35
45
  returnedValue
36
46
  ;
37
47
  $allModules.each(function () {
@@ -51,6 +61,7 @@
51
61
  moduleNamespace = namespace + '-module',
52
62
 
53
63
  $module = $(this),
64
+ $context = settings.context ? contextCheck(settings.context, window) : $module,
54
65
 
55
66
  element = this,
56
67
  instance = $module.data(moduleNamespace),
@@ -68,19 +79,11 @@
68
79
  }
69
80
 
70
81
  // bind events with delegated events
71
- if (settings.context && moduleSelector !== '') {
72
- ([window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context))
73
- .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
74
- .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
75
- .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
76
- ;
77
- } else {
78
- $module
79
- .on('mouseenter' + eventNamespace, module.change.text)
80
- .on('mouseleave' + eventNamespace, module.reset.text)
81
- .on('click' + eventNamespace, module.toggle.state)
82
- ;
83
- }
82
+ $context
83
+ .on('mouseenter' + eventNamespace, module.change.text)
84
+ .on('mouseleave' + eventNamespace, module.reset.text)
85
+ .on('click' + eventNamespace, module.toggle.state)
86
+ ;
84
87
  module.instantiate();
85
88
  },
86
89
 
@@ -94,8 +97,11 @@
94
97
 
95
98
  destroy: function () {
96
99
  module.verbose('Destroying previous module', instance);
97
- $module
100
+ $context
98
101
  .off(eventNamespace)
102
+ ;
103
+ $module
104
+ .removeData(metadata.storedText)
99
105
  .removeData(moduleNamespace)
100
106
  ;
101
107
  },
@@ -489,9 +495,6 @@
489
495
  totalTime += data['Execution Time'];
490
496
  });
491
497
  title += ' ' + totalTime + 'ms';
492
- if (moduleSelector) {
493
- title += ' \'' + moduleSelector + '\'';
494
- }
495
498
  if (performance.length > 0) {
496
499
  console.groupCollapsed(title);
497
500
  if (console.table) {
@@ -22,7 +22,6 @@
22
22
  $.fn.visibility = function (parameters) {
23
23
  var
24
24
  $allModules = $(this),
25
- moduleSelector = $allModules.selector || '',
26
25
 
27
26
  time = Date.now(),
28
27
  performance = [],
@@ -30,6 +29,19 @@
30
29
  query = arguments[0],
31
30
  methodInvoked = typeof query === 'string',
32
31
  queryArguments = [].slice.call(arguments, 1),
32
+ contextCheck = function (context, win) {
33
+ var $context;
34
+ if ([window, document].indexOf(context) >= 0) {
35
+ $context = $(context);
36
+ } else {
37
+ $context = $(win.document).find(context);
38
+ if ($context.length === 0) {
39
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
40
+ }
41
+ }
42
+
43
+ return $context;
44
+ },
33
45
  returnedValue,
34
46
 
35
47
  moduleCount = $allModules.length,
@@ -53,7 +65,7 @@
53
65
  $window = $(window),
54
66
 
55
67
  $module = $(this),
56
- $context = [window, document].indexOf(settings.context) < 0 ? $(document).find(settings.context) : $(settings.context),
68
+ $context = contextCheck(settings.context, window),
57
69
 
58
70
  $placeholder,
59
71
 
@@ -1089,9 +1101,6 @@
1089
1101
  totalTime += data['Execution Time'];
1090
1102
  });
1091
1103
  title += ' ' + totalTime + 'ms';
1092
- if (moduleSelector) {
1093
- title += ' \'' + moduleSelector + '\'';
1094
- }
1095
1104
  if (performance.length > 0) {
1096
1105
  console.groupCollapsed(title);
1097
1106
  if (console.table) {
@@ -437,6 +437,7 @@
437
437
  border-radius: @groupedBorderRadius;
438
438
  border: @groupedBorder;
439
439
  }
440
+ .ui.wrapping.horizontal.segments,
440
441
  .ui.stackable.horizontal.segments {
441
442
  flex-wrap: wrap;
442
443
  }
@@ -473,7 +474,7 @@
473
474
  .ui.segments > .horizontal.segments:first-child {
474
475
  border-top: none;
475
476
  }
476
- .ui.horizontal.segments:not(.stackable) > .segment:first-child {
477
+ .ui.horizontal.segments:not(.stackable):not(.wrapping) > .segment:first-child {
477
478
  border-left: none;
478
479
  }
479
480
  .ui.horizontal.segments > .segment:first-child {
@@ -45,7 +45,6 @@
45
45
 
46
46
  eventNamespace = '.' + namespace,
47
47
  moduleNamespace = 'module-' + namespace,
48
- moduleSelector = $allModules.selector || '',
49
48
 
50
49
  $module = $(this),
51
50
  $title = $module.find(selector.title),
@@ -452,9 +451,6 @@
452
451
  totalTime += data['Execution Time'];
453
452
  });
454
453
  title += ' ' + totalTime + 'ms';
455
- if (moduleSelector) {
456
- title += ' \'' + moduleSelector + '\'';
457
- }
458
454
  if (performance.length > 0) {
459
455
  console.groupCollapsed(title);
460
456
  if (console.table) {
@@ -24,8 +24,6 @@
24
24
  $allModules = $(this),
25
25
  $document = $(document),
26
26
 
27
- moduleSelector = $allModules.selector || '',
28
-
29
27
  time = Date.now(),
30
28
  performance = [],
31
29
 
@@ -1494,9 +1492,6 @@
1494
1492
  totalTime += data['Execution Time'];
1495
1493
  });
1496
1494
  title += ' ' + totalTime + 'ms';
1497
- if (moduleSelector) {
1498
- title += ' \'' + moduleSelector + '\'';
1499
- }
1500
1495
  if (performance.length > 0) {
1501
1496
  console.groupCollapsed(title);
1502
1497
  if (console.table) {
@@ -177,7 +177,7 @@
177
177
  }
178
178
 
179
179
  & when (@variationCalendarMultiMonth) {
180
- .ui.calendar.popup > .ui.ui.grid {
180
+ .ui.ui.ui.calendar.popup > .ui.ui.grid {
181
181
  margin: @multiMonthMargin;
182
182
  & > .column:not(:first-child) {
183
183
  padding-left: @multiMonthPadding;
@@ -22,7 +22,6 @@
22
22
  $.fn.checkbox = function (parameters) {
23
23
  var
24
24
  $allModules = $(this),
25
- moduleSelector = $allModules.selector || '',
26
25
 
27
26
  time = Date.now(),
28
27
  performance = [],
@@ -737,9 +736,6 @@
737
736
  totalTime += data['Execution Time'];
738
737
  });
739
738
  title += ' ' + totalTime + 'ms';
740
- if (moduleSelector) {
741
- title += ' \'' + moduleSelector + '\'';
742
- }
743
739
  if (performance.length > 0) {
744
740
  console.groupCollapsed(title);
745
741
  if (console.table) {
@@ -46,7 +46,6 @@
46
46
 
47
47
  eventNamespace = '.' + namespace,
48
48
  moduleNamespace = 'module-' + namespace,
49
- moduleSelector = $allModules.selector || '',
50
49
 
51
50
  clickEvent = 'ontouchstart' in document.documentElement
52
51
  ? 'touchstart'
@@ -542,9 +541,6 @@
542
541
  totalTime += data['Execution Time'];
543
542
  });
544
543
  title += ' ' + totalTime + 'ms';
545
- if (moduleSelector) {
546
- title += ' \'' + moduleSelector + '\'';
547
- }
548
544
  if ($allModules.length > 1) {
549
545
  title += ' (' + $allModules.length + ')';
550
546
  }
@@ -24,14 +24,25 @@
24
24
  $allModules = $(this),
25
25
  $document = $(document),
26
26
 
27
- moduleSelector = $allModules.selector || '',
28
-
29
27
  time = Date.now(),
30
28
  performance = [],
31
29
 
32
30
  query = arguments[0],
33
31
  methodInvoked = typeof query === 'string',
34
32
  queryArguments = [].slice.call(arguments, 1),
33
+ contextCheck = function (context, win) {
34
+ var $context;
35
+ if ([window, document].indexOf(context) >= 0) {
36
+ $context = $(context);
37
+ } else {
38
+ $context = $(win.document).find(context);
39
+ if ($context.length === 0) {
40
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
41
+ }
42
+ }
43
+
44
+ return $context;
45
+ },
35
46
  returnedValue
36
47
  ;
37
48
 
@@ -56,7 +67,7 @@
56
67
  moduleNamespace = 'module-' + namespace,
57
68
 
58
69
  $module = $(this),
59
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $(settings.context),
70
+ $context = contextCheck(settings.context, window),
60
71
  $text = $module.find(selector.text),
61
72
  $search = $module.find(selector.search),
62
73
  $sizer = $module.find(selector.sizer),
@@ -91,7 +102,8 @@
91
102
  selectObserver,
92
103
  menuObserver,
93
104
  classObserver,
94
- module
105
+ module,
106
+ tempDisableApiCache = false
95
107
  ;
96
108
 
97
109
  module = {
@@ -858,11 +870,12 @@
858
870
  if (!$module.api('get request')) {
859
871
  module.setup.api();
860
872
  }
861
- apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings, apiCallbacks);
873
+ apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings, apiCallbacks, tempDisableApiCache ? { cache: false } : {});
862
874
  $module
863
875
  .api('setting', apiSettings)
864
876
  .api('query')
865
877
  ;
878
+ tempDisableApiCache = false;
866
879
  },
867
880
 
868
881
  filterItems: function (query) {
@@ -2065,7 +2078,7 @@
2065
2078
  values.push({
2066
2079
  name: name,
2067
2080
  value: value,
2068
- text: text,
2081
+ text: module.escape.htmlEntities(text, true),
2069
2082
  disabled: disabled,
2070
2083
  });
2071
2084
  }
@@ -2388,6 +2401,11 @@
2388
2401
  module.set.value('', null, null, preventChangeTrigger);
2389
2402
  },
2390
2403
 
2404
+ clearCache: function () {
2405
+ module.debug('Clearing API cache once');
2406
+ tempDisableApiCache = true;
2407
+ },
2408
+
2391
2409
  scrollPage: function (direction, $selectedItem) {
2392
2410
  var
2393
2411
  $currentItem = $selectedItem || module.get.selectedItem(),
@@ -3438,7 +3456,7 @@
3438
3456
  return settings.apiSettings && module.can.useAPI();
3439
3457
  },
3440
3458
  noApiCache: function () {
3441
- return settings.apiSettings && !settings.apiSettings.cache;
3459
+ return tempDisableApiCache || (settings.apiSettings && !settings.apiSettings.cache);
3442
3460
  },
3443
3461
  single: function () {
3444
3462
  return !module.is.multiple();
@@ -3448,7 +3466,7 @@
3448
3466
  selectChanged = false
3449
3467
  ;
3450
3468
  $.each(mutations, function (index, mutation) {
3451
- if ($(mutation.target).is('select, option, optgroup') || $(mutation.addedNodes).is('select')) {
3469
+ if ($(mutation.target).is('option, optgroup') || $(mutation.addedNodes).is('select') || ($(mutation.target).is('select') && mutation.type !== 'attributes')) {
3452
3470
  selectChanged = true;
3453
3471
 
3454
3472
  return false;
@@ -3757,7 +3775,7 @@
3757
3775
 
3758
3776
  return text.replace(regExp.escape, '\\$&');
3759
3777
  },
3760
- htmlEntities: function (string) {
3778
+ htmlEntities: function (string, forceAmpersand) {
3761
3779
  var
3762
3780
  badChars = /["'<>`]/g,
3763
3781
  shouldEscape = /["&'<>`]/,
@@ -3773,7 +3791,7 @@
3773
3791
  }
3774
3792
  ;
3775
3793
  if (shouldEscape.test(string)) {
3776
- string = string.replace(/&(?![\d#a-z]{1,12};)/gi, '&amp;');
3794
+ string = string.replace(forceAmpersand ? /&/g : /&(?![\d#a-z]{1,12};)/gi, '&amp;');
3777
3795
 
3778
3796
  return string.replace(badChars, escapedChar);
3779
3797
  }
@@ -3864,9 +3882,6 @@
3864
3882
  totalTime += data['Execution Time'];
3865
3883
  });
3866
3884
  title += ' ' + totalTime + 'ms';
3867
- if (moduleSelector) {
3868
- title += ' \'' + moduleSelector + '\'';
3869
- }
3870
3885
  if (performance.length > 0) {
3871
3886
  console.groupCollapsed(title);
3872
3887
  if (console.table) {
@@ -23,8 +23,6 @@
23
23
  var
24
24
  $allModules = $(this),
25
25
 
26
- moduleSelector = $allModules.selector || '',
27
-
28
26
  time = Date.now(),
29
27
  performance = [],
30
28
 
@@ -455,9 +453,6 @@
455
453
  totalTime += data['Execution Time'];
456
454
  });
457
455
  title += ' ' + totalTime + 'ms';
458
- if (moduleSelector) {
459
- title += ' \'' + moduleSelector + '\'';
460
- }
461
456
  if ($allModules.length > 1) {
462
457
  title += ' (' + $allModules.length + ')';
463
458
  }