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

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 (243) 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 +19 -2
  36. package/dist/components/dropdown.js +29 -14
  37. package/dist/components/dropdown.min.css +2 -2
  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 +40 -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 +36 -5
  54. package/dist/components/form.js +32 -24
  55. package/dist/components/form.min.css +2 -2
  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 +21 -2
  70. package/dist/components/label.min.css +2 -2
  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 +6 -3
  80. package/dist/components/modal.js +44 -32
  81. package/dist/components/modal.min.css +2 -2
  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 +41 -40
  90. package/dist/components/popup.js +25 -17
  91. package/dist/components/popup.min.css +2 -2
  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 +122 -31
  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 +203 -108
  158. package/dist/semantic.js +435 -281
  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 +31 -23
  164. package/src/definitions/behaviors/state.js +22 -19
  165. package/src/definitions/behaviors/visibility.js +14 -5
  166. package/src/definitions/collections/breadcrumb.less +2 -1
  167. package/src/definitions/collections/form.less +24 -5
  168. package/src/definitions/collections/grid.less +2 -1
  169. package/src/definitions/collections/menu.less +2 -1
  170. package/src/definitions/collections/message.less +2 -1
  171. package/src/definitions/collections/table.less +2 -1
  172. package/src/definitions/elements/button.less +3 -1
  173. package/src/definitions/elements/container.less +2 -1
  174. package/src/definitions/elements/divider.less +2 -1
  175. package/src/definitions/elements/emoji.less +2 -1
  176. package/src/definitions/elements/flag.less +2 -1
  177. package/src/definitions/elements/header.less +2 -1
  178. package/src/definitions/elements/icon.less +2 -1
  179. package/src/definitions/elements/image.less +2 -1
  180. package/src/definitions/elements/input.less +2 -1
  181. package/src/definitions/elements/label.less +23 -2
  182. package/src/definitions/elements/list.less +2 -1
  183. package/src/definitions/elements/loader.less +2 -1
  184. package/src/definitions/elements/placeholder.less +2 -1
  185. package/src/definitions/elements/rail.less +2 -1
  186. package/src/definitions/elements/reveal.less +2 -1
  187. package/src/definitions/elements/segment.less +4 -2
  188. package/src/definitions/elements/step.less +2 -1
  189. package/src/definitions/elements/text.less +2 -1
  190. package/src/definitions/globals/reset.less +2 -1
  191. package/src/definitions/globals/site.less +2 -1
  192. package/src/definitions/modules/accordion.js +0 -4
  193. package/src/definitions/modules/accordion.less +2 -1
  194. package/src/definitions/modules/calendar.js +0 -5
  195. package/src/definitions/modules/calendar.less +3 -2
  196. package/src/definitions/modules/checkbox.js +0 -4
  197. package/src/definitions/modules/checkbox.less +2 -1
  198. package/src/definitions/modules/dimmer.js +0 -4
  199. package/src/definitions/modules/dimmer.less +2 -1
  200. package/src/definitions/modules/dropdown.js +28 -13
  201. package/src/definitions/modules/dropdown.less +22 -2
  202. package/src/definitions/modules/embed.js +0 -5
  203. package/src/definitions/modules/embed.less +2 -1
  204. package/src/definitions/modules/flyout.js +39 -26
  205. package/src/definitions/modules/flyout.less +2 -1
  206. package/src/definitions/modules/modal.js +43 -31
  207. package/src/definitions/modules/modal.less +7 -3
  208. package/src/definitions/modules/nag.js +15 -7
  209. package/src/definitions/modules/nag.less +3 -1
  210. package/src/definitions/modules/popup.js +24 -16
  211. package/src/definitions/modules/popup.less +42 -39
  212. package/src/definitions/modules/progress.js +0 -5
  213. package/src/definitions/modules/progress.less +2 -1
  214. package/src/definitions/modules/rating.js +0 -4
  215. package/src/definitions/modules/rating.less +2 -1
  216. package/src/definitions/modules/search.js +0 -4
  217. package/src/definitions/modules/search.less +2 -1
  218. package/src/definitions/modules/shape.js +0 -4
  219. package/src/definitions/modules/shape.less +2 -1
  220. package/src/definitions/modules/sidebar.js +14 -7
  221. package/src/definitions/modules/sidebar.less +2 -1
  222. package/src/definitions/modules/slider.js +121 -30
  223. package/src/definitions/modules/slider.less +2 -1
  224. package/src/definitions/modules/sticky.js +16 -15
  225. package/src/definitions/modules/sticky.less +2 -1
  226. package/src/definitions/modules/tab.js +13 -5
  227. package/src/definitions/modules/tab.less +2 -1
  228. package/src/definitions/modules/toast.js +16 -8
  229. package/src/definitions/modules/toast.less +2 -1
  230. package/src/definitions/modules/transition.js +0 -4
  231. package/src/definitions/modules/transition.less +2 -1
  232. package/src/definitions/views/ad.less +2 -1
  233. package/src/definitions/views/card.less +2 -1
  234. package/src/definitions/views/comment.less +2 -1
  235. package/src/definitions/views/feed.less +2 -1
  236. package/src/definitions/views/item.less +2 -1
  237. package/src/definitions/views/statistic.less +2 -1
  238. package/src/overrides.less +7 -0
  239. package/src/theme.less +7 -6
  240. package/src/themes/default/elements/label.variables +5 -0
  241. package/src/themes/default/modules/dropdown.variables +3 -0
  242. package/src/themes/default/modules/modal.variables +1 -0
  243. package/src/themes/default/modules/popup.variables +3 -1
@@ -207,4 +207,5 @@ input::selection {
207
207
  color: @inputHighlightColor;
208
208
  }
209
209
 
210
- .loadUIOverrides();
210
+ // stylelint-disable no-invalid-position-at-import-rule
211
+ @import (multiple, optional) "../../overrides.less";
@@ -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) {
@@ -364,4 +364,5 @@
364
364
  }
365
365
  }
366
366
 
367
- .loadUIOverrides();
367
+ // stylelint-disable no-invalid-position-at-import-rule
368
+ @import (multiple, optional) "../../overrides.less";
@@ -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;
@@ -215,4 +215,5 @@
215
215
  }
216
216
  }
217
217
 
218
- .loadUIOverrides();
218
+ // stylelint-disable no-invalid-position-at-import-rule
219
+ @import (multiple, optional) "../../overrides.less";
@@ -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) {
@@ -696,4 +696,5 @@
696
696
  });
697
697
  }
698
698
 
699
- .loadUIOverrides();
699
+ // stylelint-disable no-invalid-position-at-import-rule
700
+ @import (multiple, optional) "../../overrides.less";
@@ -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
  }
@@ -390,4 +390,5 @@ body.dimmable > .dimmer {
390
390
  }
391
391
  }
392
392
 
393
- .loadUIOverrides();
393
+ // stylelint-disable no-invalid-position-at-import-rule
394
+ @import (multiple, optional) "../../overrides.less";
@@ -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) {
@@ -816,7 +816,7 @@ select.ui.dropdown {
816
816
  .ui.dropdown:not(.selection) > .remove.icon ~ .dropdown.icon {
817
817
  margin-left: @clearableIconMargin;
818
818
  }
819
- .ui.dropdown:not(.selection) > .remove.icon {
819
+ .ui.dropdown:not(.selection):not(.multiple) > .remove.icon {
820
820
  margin-top: -@clearableIconMarginTop;
821
821
  }
822
822
  }
@@ -879,6 +879,18 @@ select.ui.dropdown {
879
879
  margin: @imageLabelImageMargin;
880
880
  height: @imageLabelHeight;
881
881
  }
882
+ .ui.multiple.dropdown:not(.selection):not(.labeled) {
883
+ & > .dropdown.icon {
884
+ right: @dropdownIconMultipleRight;
885
+ }
886
+ & > .remove.icon {
887
+ margin-right: @dropdownIconMultipleRight;
888
+ }
889
+ &:not(.search) > .remove.icon ~ .text.default,
890
+ > .text.default:first-child {
891
+ overflow: inherit;
892
+ }
893
+ }
882
894
 
883
895
  & when (@variationDropdownSearch) {
884
896
  /* -----------------
@@ -919,6 +931,13 @@ select.ui.dropdown {
919
931
  .ui.multiple.search.dropdown.button {
920
932
  min-width: @selectionMinWidth;
921
933
  }
934
+ .ui.multiple.search.dropdown > span.sizer {
935
+ display: none;
936
+ }
937
+ .ui.multiple.search.dropdown:not(.selection) > .remove.icon + input.search,
938
+ .ui.multiple.search.dropdown:not(.selection) > input.search:first-child {
939
+ min-width: @multipleSearchMinWidth;
940
+ }
922
941
  }
923
942
  }
924
943
 
@@ -1951,4 +1970,5 @@ select.ui.dropdown {
1951
1970
  }
1952
1971
  }
1953
1972
 
1954
- .loadUIOverrides();
1973
+ // stylelint-disable no-invalid-position-at-import-rule
1974
+ @import (multiple, optional) "../../overrides.less";
@@ -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
  }
@@ -155,4 +155,5 @@
155
155
  }
156
156
  }
157
157
 
158
- .loadUIOverrides();
158
+ // stylelint-disable no-invalid-position-at-import-rule
159
+ @import (multiple, optional) "../../overrides.less";
@@ -28,15 +28,25 @@
28
28
  $head = $('head'),
29
29
  $body = $('body'),
30
30
 
31
- moduleSelector = $allModules.selector || '',
32
-
33
31
  time = Date.now(),
34
32
  performance = [],
35
33
 
36
34
  query = arguments[0],
37
35
  methodInvoked = typeof query === 'string',
38
36
  queryArguments = [].slice.call(arguments, 1),
37
+ contextCheck = function (context, win) {
38
+ var $context;
39
+ if ([window, document].indexOf(context) >= 0) {
40
+ $context = $body;
41
+ } else {
42
+ $context = $(win.document).find(context);
43
+ if ($context.length === 0) {
44
+ $context = win.frameElement ? contextCheck(context, win.parent) : $body;
45
+ }
46
+ }
39
47
 
48
+ return $context;
49
+ },
40
50
  returnedValue
41
51
  ;
42
52
 
@@ -57,7 +67,7 @@
57
67
  moduleNamespace = 'module-' + namespace,
58
68
 
59
69
  $module = $(this),
60
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body,
70
+ $context = contextCheck(settings.context, window),
61
71
  $closeIcon = $module.find(selector.close),
62
72
  $inputs,
63
73
  $focusedElement,
@@ -76,6 +86,7 @@
76
86
  initialBodyMargin = '',
77
87
  tempBodyMargin = '',
78
88
  hadScrollbar = false,
89
+ windowRefocused = false,
79
90
 
80
91
  elementNamespace,
81
92
  id,
@@ -254,9 +265,13 @@
254
265
  module.setup.heights();
255
266
  },
256
267
  focus: function () {
257
- if (module.is.visible() && settings.autofocus && settings.dimPage) {
268
+ windowRefocused = true;
269
+ },
270
+ click: function (event) {
271
+ if (windowRefocused && document.activeElement !== event.target && module.is.visible() && settings.autofocus && settings.dimPage && $(document.activeElement).closest(selector.flyout).length === 0) {
258
272
  requestAnimationFrame(module.set.autofocus);
259
273
  }
274
+ windowRefocused = false;
260
275
  },
261
276
  clickaway: function (event) {
262
277
  if (settings.closable) {
@@ -363,6 +378,9 @@
363
378
  $window
364
379
  .on('focus' + elementNamespace, module.event.focus)
365
380
  ;
381
+ $context
382
+ .on('click' + elementNamespace, module.event.click)
383
+ ;
366
384
  },
367
385
  clickaway: function () {
368
386
  module.verbose('Adding clickaway events to context', $context);
@@ -492,11 +510,12 @@
492
510
 
493
511
  return nodes;
494
512
  },
495
- shouldRefreshInputs = false
513
+ shouldRefreshInputs = false,
514
+ ignoreAutofocus = true
496
515
  ;
497
516
  mutations.every(function (mutation) {
498
517
  if (mutation.type === 'attributes') {
499
- if (observeAttributes && (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input').length > 0)) {
518
+ if (observeAttributes && (mutation.attributeName === 'disabled' || $(mutation.target).find(':input').addBack(':input').filter(':visible').length > 0)) {
500
519
  shouldRefreshInputs = true;
501
520
  }
502
521
  } else {
@@ -506,6 +525,9 @@
506
525
  $removedInputs = $(collectNodes(mutation.removedNodes)).filter('a[href], [tabindex], :input');
507
526
  if ($addedInputs.length > 0 || $removedInputs.length > 0) {
508
527
  shouldRefreshInputs = true;
528
+ if ($addedInputs.filter(':input').length > 0 || $removedInputs.filter(':input').length > 0) {
529
+ ignoreAutofocus = false;
530
+ }
509
531
  }
510
532
  }
511
533
 
@@ -513,7 +535,7 @@
513
535
  });
514
536
 
515
537
  if (shouldRefreshInputs) {
516
- module.refreshInputs();
538
+ module.refreshInputs(ignoreAutofocus);
517
539
  }
518
540
  });
519
541
  observer.observe(element, {
@@ -527,7 +549,7 @@
527
549
  },
528
550
  refresh: function () {
529
551
  module.verbose('Refreshing selector cache');
530
- $context = [window, document].indexOf(settings.context) < 0 ? $document.find(settings.context) : $body;
552
+ $context = contextCheck(settings.context, window);
531
553
  module.refreshFlyouts();
532
554
  $pusher = $context.children(selector.pusher);
533
555
  module.clear.cache();
@@ -538,7 +560,7 @@
538
560
  $flyouts = $context.children(selector.flyout);
539
561
  },
540
562
 
541
- refreshInputs: function () {
563
+ refreshInputs: function (ignoreAutofocus) {
542
564
  if ($inputs) {
543
565
  $inputs
544
566
  .off('keydown' + elementNamespace)
@@ -550,8 +572,8 @@
550
572
  $inputs = $module.find('a[href], [tabindex], :input:enabled').filter(':visible').filter(function () {
551
573
  return $(this).closest('.disabled').length === 0;
552
574
  });
553
- if ($inputs.length === 0) {
554
- $inputs = $module;
575
+ if ($inputs.filter(':input').length === 0) {
576
+ $inputs = $module.add($inputs);
555
577
  $module.attr('tabindex', -1);
556
578
  } else {
557
579
  $module.removeAttr('tabindex');
@@ -562,7 +584,7 @@
562
584
  $inputs.last()
563
585
  .on('keydown' + elementNamespace, module.event.inputKeyDown.last)
564
586
  ;
565
- if (settings.autofocus && $inputs.filter(':focus').length === 0) {
587
+ if (!ignoreAutofocus && settings.autofocus && $inputs.filter(':focus').length === 0) {
566
588
  module.set.autofocus();
567
589
  }
568
590
  },
@@ -840,20 +862,14 @@
840
862
  var
841
863
  $autofocus = $inputs.filter('[autofocus]'),
842
864
  $rawInputs = $inputs.filter(':input'),
843
- $input = $autofocus.length > 0
844
- ? $autofocus.first()
865
+ $input = ($autofocus.length > 0
866
+ ? $autofocus
845
867
  : ($rawInputs.length > 0
846
868
  ? $rawInputs
847
- : $inputs.filter(':not(i.close)')
848
- ).first()
869
+ : $module)
870
+ ).first()
849
871
  ;
850
- // check if only the close icon is remaining
851
- if ($input.length === 0 && $inputs.length > 0) {
852
- $input = $inputs.first();
853
- }
854
- if ($input.length > 0) {
855
- $input.trigger('focus');
856
- }
872
+ $input.trigger('focus');
857
873
  },
858
874
  dimmerStyles: function () {
859
875
  if (settings.blurring) {
@@ -1244,9 +1260,6 @@
1244
1260
  totalTime += data['Execution Time'];
1245
1261
  });
1246
1262
  title += ' ' + totalTime + 'ms';
1247
- if (moduleSelector) {
1248
- title += ' \'' + moduleSelector + '\'';
1249
- }
1250
1263
  if (performance.length > 0) {
1251
1264
  console.groupCollapsed(title);
1252
1265
  if (console.table) {
@@ -645,4 +645,5 @@ body.pushable > .pusher {
645
645
  }
646
646
  }
647
647
 
648
- .loadUIOverrides();
648
+ // stylelint-disable no-invalid-position-at-import-rule
649
+ @import (multiple, optional) "../../overrides.less";