fomantic-ui 2.9.1-beta.24 → 2.9.1-beta.25

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 (193) hide show
  1. package/.eslint/eqeqeq-rule.js +18 -0
  2. package/.eslint/index.js +3 -0
  3. package/.eslintrc.js +1 -2
  4. package/dist/components/accordion.css +1 -1
  5. package/dist/components/accordion.js +4 -4
  6. package/dist/components/accordion.min.css +1 -1
  7. package/dist/components/accordion.min.js +2 -2
  8. package/dist/components/ad.css +1 -1
  9. package/dist/components/ad.min.css +1 -1
  10. package/dist/components/api.js +17 -17
  11. package/dist/components/api.min.js +2 -2
  12. package/dist/components/breadcrumb.css +1 -1
  13. package/dist/components/breadcrumb.min.css +1 -1
  14. package/dist/components/button.css +1 -1
  15. package/dist/components/button.min.css +1 -1
  16. package/dist/components/calendar.css +1 -1
  17. package/dist/components/calendar.js +18 -17
  18. package/dist/components/calendar.min.css +1 -1
  19. package/dist/components/calendar.min.js +2 -2
  20. package/dist/components/card.css +1 -1
  21. package/dist/components/card.min.css +1 -1
  22. package/dist/components/checkbox.css +1 -1
  23. package/dist/components/checkbox.js +11 -11
  24. package/dist/components/checkbox.min.css +1 -1
  25. package/dist/components/checkbox.min.js +2 -2
  26. package/dist/components/comment.css +1 -1
  27. package/dist/components/comment.min.css +1 -1
  28. package/dist/components/container.css +1 -1
  29. package/dist/components/container.min.css +1 -1
  30. package/dist/components/dimmer.css +1 -1
  31. package/dist/components/dimmer.js +9 -9
  32. package/dist/components/dimmer.min.css +1 -1
  33. package/dist/components/dimmer.min.js +2 -2
  34. package/dist/components/divider.css +1 -1
  35. package/dist/components/divider.min.css +1 -1
  36. package/dist/components/dropdown.css +1 -1
  37. package/dist/components/dropdown.js +103 -91
  38. package/dist/components/dropdown.min.css +1 -1
  39. package/dist/components/dropdown.min.js +2 -2
  40. package/dist/components/embed.css +1 -1
  41. package/dist/components/embed.js +5 -5
  42. package/dist/components/embed.min.css +1 -1
  43. package/dist/components/embed.min.js +2 -2
  44. package/dist/components/feed.css +1 -1
  45. package/dist/components/feed.min.css +1 -1
  46. package/dist/components/flag.css +1 -1
  47. package/dist/components/flag.min.css +1 -1
  48. package/dist/components/flyout.css +1 -1
  49. package/dist/components/flyout.js +10 -10
  50. package/dist/components/flyout.min.css +1 -1
  51. package/dist/components/flyout.min.js +2 -2
  52. package/dist/components/form.css +1 -1
  53. package/dist/components/form.js +77 -60
  54. package/dist/components/form.min.css +1 -1
  55. package/dist/components/form.min.js +2 -2
  56. package/dist/components/grid.css +1 -1
  57. package/dist/components/grid.min.css +1 -1
  58. package/dist/components/header.css +1 -1
  59. package/dist/components/header.min.css +1 -1
  60. package/dist/components/icon.css +1 -1
  61. package/dist/components/icon.min.css +1 -1
  62. package/dist/components/image.css +1 -1
  63. package/dist/components/image.min.css +1 -1
  64. package/dist/components/input.css +1 -1
  65. package/dist/components/input.min.css +1 -1
  66. package/dist/components/item.css +1 -1
  67. package/dist/components/item.min.css +1 -1
  68. package/dist/components/label.css +1 -1
  69. package/dist/components/label.min.css +1 -1
  70. package/dist/components/list.css +1 -1
  71. package/dist/components/list.min.css +1 -1
  72. package/dist/components/loader.css +1 -1
  73. package/dist/components/loader.min.css +1 -1
  74. package/dist/components/message.css +1 -1
  75. package/dist/components/message.min.css +1 -1
  76. package/dist/components/modal.css +1 -1
  77. package/dist/components/modal.js +4 -4
  78. package/dist/components/modal.min.css +1 -1
  79. package/dist/components/modal.min.js +2 -2
  80. package/dist/components/nag.css +1 -1
  81. package/dist/components/nag.js +5 -5
  82. package/dist/components/nag.min.css +1 -1
  83. package/dist/components/nag.min.js +2 -2
  84. package/dist/components/placeholder.css +1 -1
  85. package/dist/components/placeholder.min.css +1 -1
  86. package/dist/components/popup.css +1 -1
  87. package/dist/components/popup.js +39 -31
  88. package/dist/components/popup.min.css +1 -1
  89. package/dist/components/popup.min.js +2 -2
  90. package/dist/components/progress.css +1 -1
  91. package/dist/components/progress.js +12 -12
  92. package/dist/components/progress.min.css +1 -1
  93. package/dist/components/progress.min.js +2 -2
  94. package/dist/components/rail.css +1 -1
  95. package/dist/components/rail.min.css +1 -1
  96. package/dist/components/rating.css +1 -1
  97. package/dist/components/rating.js +6 -6
  98. package/dist/components/rating.min.css +1 -1
  99. package/dist/components/rating.min.js +2 -2
  100. package/dist/components/reset.css +1 -1
  101. package/dist/components/reset.min.css +1 -1
  102. package/dist/components/reveal.css +1 -1
  103. package/dist/components/reveal.min.css +1 -1
  104. package/dist/components/search.css +1 -1
  105. package/dist/components/search.js +16 -16
  106. package/dist/components/search.min.css +1 -1
  107. package/dist/components/search.min.js +2 -2
  108. package/dist/components/segment.css +1 -1
  109. package/dist/components/segment.min.css +1 -1
  110. package/dist/components/shape.css +1 -1
  111. package/dist/components/shape.js +5 -5
  112. package/dist/components/shape.min.css +1 -1
  113. package/dist/components/shape.min.js +2 -2
  114. package/dist/components/sidebar.css +1 -1
  115. package/dist/components/sidebar.js +13 -13
  116. package/dist/components/sidebar.min.css +1 -1
  117. package/dist/components/sidebar.min.js +2 -2
  118. package/dist/components/site.css +1 -1
  119. package/dist/components/site.js +4 -4
  120. package/dist/components/site.min.css +1 -1
  121. package/dist/components/site.min.js +2 -2
  122. package/dist/components/slider.js +50 -37
  123. package/dist/components/slider.min.js +2 -2
  124. package/dist/components/state.js +5 -5
  125. package/dist/components/state.min.js +2 -2
  126. package/dist/components/statistic.css +1 -1
  127. package/dist/components/statistic.min.css +1 -1
  128. package/dist/components/step.css +1 -1
  129. package/dist/components/step.min.css +1 -1
  130. package/dist/components/sticky.css +1 -1
  131. package/dist/components/sticky.js +8 -8
  132. package/dist/components/sticky.min.css +1 -1
  133. package/dist/components/sticky.min.js +2 -2
  134. package/dist/components/tab.css +1 -1
  135. package/dist/components/tab.js +17 -17
  136. package/dist/components/tab.min.css +1 -1
  137. package/dist/components/tab.min.js +2 -2
  138. package/dist/components/table.css +1 -1
  139. package/dist/components/table.min.css +1 -1
  140. package/dist/components/text.css +1 -1
  141. package/dist/components/text.min.css +1 -1
  142. package/dist/components/toast.css +1 -1
  143. package/dist/components/toast.js +4 -4
  144. package/dist/components/toast.min.css +1 -1
  145. package/dist/components/toast.min.js +2 -2
  146. package/dist/components/transition.css +1 -1
  147. package/dist/components/transition.js +8 -8
  148. package/dist/components/transition.min.css +1 -1
  149. package/dist/components/transition.min.js +2 -2
  150. package/dist/components/visibility.js +12 -12
  151. package/dist/components/visibility.min.js +2 -2
  152. package/dist/semantic.css +50 -50
  153. package/dist/semantic.js +462 -411
  154. package/dist/semantic.min.css +1 -1
  155. package/dist/semantic.min.js +2 -2
  156. package/package.json +1 -1
  157. package/src/definitions/behaviors/api.js +16 -16
  158. package/src/definitions/behaviors/form.js +76 -59
  159. package/src/definitions/behaviors/state.js +4 -4
  160. package/src/definitions/behaviors/visibility.js +11 -11
  161. package/src/definitions/globals/site.js +3 -3
  162. package/src/definitions/modules/accordion.js +3 -3
  163. package/src/definitions/modules/calendar.js +17 -16
  164. package/src/definitions/modules/checkbox.js +10 -10
  165. package/src/definitions/modules/dimmer.js +8 -8
  166. package/src/definitions/modules/dropdown.js +102 -90
  167. package/src/definitions/modules/embed.js +4 -4
  168. package/src/definitions/modules/flyout.js +9 -9
  169. package/src/definitions/modules/modal.js +3 -3
  170. package/src/definitions/modules/nag.js +4 -4
  171. package/src/definitions/modules/popup.js +38 -30
  172. package/src/definitions/modules/progress.js +11 -11
  173. package/src/definitions/modules/rating.js +5 -5
  174. package/src/definitions/modules/search.js +15 -15
  175. package/src/definitions/modules/shape.js +4 -4
  176. package/src/definitions/modules/sidebar.js +12 -12
  177. package/src/definitions/modules/slider.js +49 -36
  178. package/src/definitions/modules/sticky.js +7 -7
  179. package/src/definitions/modules/tab.js +16 -16
  180. package/src/definitions/modules/toast.js +3 -3
  181. package/src/definitions/modules/transition.js +7 -7
  182. package/tasks/admin/components/init.js +1 -1
  183. package/tasks/admin/components/update.js +1 -1
  184. package/tasks/admin/distributions/create.js +4 -5
  185. package/tasks/admin/distributions/init.js +1 -1
  186. package/tasks/admin/distributions/update.js +1 -1
  187. package/tasks/config/project/config.js +2 -2
  188. package/tasks/config/project/install.js +8 -8
  189. package/tasks/config/project/release.js +1 -1
  190. package/tasks/config/tasks.js +2 -2
  191. package/tasks/docs/metadata.js +1 -1
  192. package/tasks/install.js +2 -2
  193. package/test/modules/module.spec.js +1 -1
@@ -662,7 +662,7 @@
662
662
  ? -1
663
663
  : (keyCode === 38
664
664
  ? -bigIncrement
665
- : (keyCode == 39 ? 1 : bigIncrement)); // eslint-disable-line unicorn/no-nested-ternary
665
+ : (keyCode === 39 ? 1 : bigIncrement)); // eslint-disable-line unicorn/no-nested-ternary
666
666
  increment *= mode === 'minute' ? settings.minTimeGap : 1;
667
667
  var focusDate = module.get.focusDate() || module.get.date() || new Date();
668
668
  var year = focusDate.getFullYear() + (mode === 'year' ? increment : 0);
@@ -695,11 +695,12 @@
695
695
  break;
696
696
  }
697
697
  // escape key
698
- case 27:
698
+ case 27: {
699
699
  module.popup('hide');
700
700
  event.stopPropagation();
701
701
 
702
702
  break;
703
+ }
703
704
  }
704
705
  }
705
706
 
@@ -1138,19 +1139,19 @@
1138
1139
  } else if (d !== null && typeof d === 'object') {
1139
1140
  if (d[metadata.year]) {
1140
1141
  if (typeof d[metadata.year] === 'number') {
1141
- blocked = date.getFullYear() == d[metadata.year];
1142
+ blocked = date.getFullYear() === d[metadata.year];
1142
1143
  } else if (Array.isArray(d[metadata.year])) {
1143
1144
  blocked = d[metadata.year].indexOf(date.getFullYear()) > -1;
1144
1145
  }
1145
1146
  } else if (d[metadata.month]) {
1146
1147
  if (typeof d[metadata.month] === 'number') {
1147
- blocked = date.getMonth() == d[metadata.month];
1148
+ blocked = date.getMonth() === d[metadata.month];
1148
1149
  } else if (Array.isArray(d[metadata.month])) {
1149
1150
  blocked = d[metadata.month].indexOf(date.getMonth()) > -1;
1150
1151
  } else if (d[metadata.month] instanceof Date) {
1151
1152
  var sdate = module.helper.sanitiseDate(d[metadata.month]);
1152
1153
 
1153
- blocked = (date.getMonth() == sdate.getMonth()) && (date.getFullYear() == sdate.getFullYear());
1154
+ blocked = (date.getMonth() === sdate.getMonth()) && (date.getFullYear() === sdate.getFullYear());
1154
1155
  }
1155
1156
  } else if (d[metadata.date] && mode === 'day') {
1156
1157
  if (d[metadata.date] instanceof Date) {
@@ -1187,7 +1188,7 @@
1187
1188
 
1188
1189
  if (d[metadata.days]) {
1189
1190
  if (typeof d[metadata.days] === 'number') {
1190
- blocked = date.getDay() == d[metadata.days];
1191
+ blocked = date.getDay() === d[metadata.days];
1191
1192
  } else if (Array.isArray(d[metadata.days])) {
1192
1193
  blocked = d[metadata.days].indexOf(date.getDay()) > -1;
1193
1194
  }
@@ -1195,7 +1196,7 @@
1195
1196
 
1196
1197
  if (d[metadata.hours]) {
1197
1198
  if (typeof d[metadata.hours] === 'number') {
1198
- blocked = blocked && date.getHours() == d[metadata.hours];
1199
+ blocked = blocked && date.getHours() === d[metadata.hours];
1199
1200
  } else if (Array.isArray(d[metadata.hours])) {
1200
1201
  blocked = blocked && d[metadata.hours].indexOf(date.getHours()) > -1;
1201
1202
  }
@@ -1241,7 +1242,7 @@
1241
1242
  }
1242
1243
  if (d !== null && typeof d === 'object') {
1243
1244
  if (d[metadata.year]) {
1244
- if (typeof d[metadata.year] === 'number' && date.getFullYear() == d[metadata.year]) {
1245
+ if (typeof d[metadata.year] === 'number' && date.getFullYear() === d[metadata.year]) {
1245
1246
  return d;
1246
1247
  }
1247
1248
  if (Array.isArray(d[metadata.year])) {
@@ -1250,7 +1251,7 @@
1250
1251
  }
1251
1252
  }
1252
1253
  } else if (d[metadata.month]) {
1253
- if (typeof d[metadata.month] === 'number' && date.getMonth() == d[metadata.month]) {
1254
+ if (typeof d[metadata.month] === 'number' && date.getMonth() === d[metadata.month]) {
1254
1255
  return d;
1255
1256
  }
1256
1257
  if (Array.isArray(d[metadata.month])) {
@@ -1259,7 +1260,7 @@
1259
1260
  }
1260
1261
  } else if (d[metadata.month] instanceof Date) {
1261
1262
  var sdate = module.helper.sanitiseDate(d[metadata.month]);
1262
- if ((date.getMonth() == sdate.getMonth()) && (date.getFullYear() == sdate.getFullYear())) {
1263
+ if ((date.getMonth() === sdate.getMonth()) && (date.getFullYear() === sdate.getFullYear())) {
1263
1264
  return d;
1264
1265
  }
1265
1266
  }
@@ -1286,7 +1287,7 @@
1286
1287
  var d;
1287
1288
  var hourCheck = function (date, d) {
1288
1289
  if (d[metadata.hours]) {
1289
- if (typeof d[metadata.hours] === 'number' && date.getHours() == d[metadata.hours]) {
1290
+ if (typeof d[metadata.hours] === 'number' && date.getHours() === d[metadata.hours]) {
1290
1291
  return d;
1291
1292
  }
1292
1293
  if (Array.isArray(d[metadata.hours])) {
@@ -1298,12 +1299,12 @@
1298
1299
  };
1299
1300
  for (var i = 0; i < hours.length; i++) {
1300
1301
  d = hours[i];
1301
- if (typeof d === 'number' && date.getHours() == d) {
1302
+ if (typeof d === 'number' && date.getHours() === d) {
1302
1303
  return null;
1303
1304
  }
1304
1305
  if (d !== null && typeof d === 'object') {
1305
1306
  if (d[metadata.days] && hourCheck(date, d)) {
1306
- if (typeof d[metadata.days] === 'number' && date.getDay() == d[metadata.days]) {
1307
+ if (typeof d[metadata.days] === 'number' && date.getDay() === d[metadata.days]) {
1307
1308
  return d;
1308
1309
  }
1309
1310
  if (Array.isArray(d[metadata.days])) {
@@ -1523,17 +1524,17 @@
1523
1524
  query = query.split(/[ .]/);
1524
1525
  maxDepth = query.length - 1;
1525
1526
  $.each(query, function (depth, value) {
1526
- var camelCaseValue = depth != maxDepth
1527
+ var camelCaseValue = depth !== maxDepth
1527
1528
  ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
1528
1529
  : query
1529
1530
  ;
1530
- if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
1531
+ if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
1531
1532
  object = object[camelCaseValue];
1532
1533
  } else if (object[camelCaseValue] !== undefined) {
1533
1534
  found = object[camelCaseValue];
1534
1535
 
1535
1536
  return false;
1536
- } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
1537
+ } else if ($.isPlainObject(object[value]) && (depth !== maxDepth)) {
1537
1538
  object = object[value];
1538
1539
  } else if (object[value] !== undefined) {
1539
1540
  found = object[value];
@@ -217,9 +217,9 @@
217
217
  checkIndex = false
218
218
  ;
219
219
 
220
- if (key == keyCode.left || key == keyCode.up) {
220
+ if (key === keyCode.left || key === keyCode.up) {
221
221
  checkIndex = (rIndex === 0 ? rLen : rIndex) - 1;
222
- } else if (key == keyCode.right || key == keyCode.down) {
222
+ } else if (key === keyCode.right || key === keyCode.down) {
223
223
  checkIndex = rIndex === rLen - 1 ? 0 : rIndex + 1;
224
224
  }
225
225
 
@@ -237,21 +237,21 @@
237
237
  }
238
238
 
239
239
  shortcutPressed = false;
240
- if (key == keyCode.escape) {
240
+ if (key === keyCode.escape) {
241
241
  module.verbose('Escape key pressed blurring field');
242
242
  $input.trigger('blur');
243
243
  shortcutPressed = true;
244
244
  event.stopPropagation();
245
245
  } else if (!event.ctrlKey && module.can.change()) {
246
- if (key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey)) {
246
+ if (key === keyCode.space || (key === keyCode.enter && settings.enableEnterKey)) {
247
247
  module.verbose('Enter/space key pressed, toggling checkbox');
248
248
  module.toggle();
249
249
  shortcutPressed = true;
250
250
  } else if ($module.is('.toggle, .slider') && !module.is.radio()) {
251
- if (key == keyCode.left && module.is.checked()) {
251
+ if (key === keyCode.left && module.is.checked()) {
252
252
  module.uncheck();
253
253
  shortcutPressed = true;
254
- } else if (key == keyCode.right && module.is.unchecked()) {
254
+ } else if (key === keyCode.right && module.is.unchecked()) {
255
255
  module.check();
256
256
  shortcutPressed = true;
257
257
  }
@@ -370,7 +370,7 @@
370
370
  return initialLoad;
371
371
  },
372
372
  radio: function () {
373
- return $input.hasClass(className.radio) || $input.attr('type') == 'radio';
373
+ return $input.hasClass(className.radio) || $input.attr('type') === 'radio';
374
374
  },
375
375
  indeterminate: function () {
376
376
  return $input.prop('indeterminate') !== undefined && $input.prop('indeterminate');
@@ -767,17 +767,17 @@
767
767
  query = query.split(/[ .]/);
768
768
  maxDepth = query.length - 1;
769
769
  $.each(query, function (depth, value) {
770
- var camelCaseValue = depth != maxDepth
770
+ var camelCaseValue = depth !== maxDepth
771
771
  ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
772
772
  : query
773
773
  ;
774
- if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
774
+ if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
775
775
  object = object[camelCaseValue];
776
776
  } else if (object[camelCaseValue] !== undefined) {
777
777
  found = object[camelCaseValue];
778
778
 
779
779
  return false;
780
- } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
780
+ } else if ($.isPlainObject(object[value]) && (depth !== maxDepth)) {
781
781
  object = object[value];
782
782
  } else if (object[value] !== undefined) {
783
783
  found = object[value];
@@ -106,12 +106,12 @@
106
106
 
107
107
  bind: {
108
108
  events: function () {
109
- if (settings.on == 'hover') {
109
+ if (settings.on === 'hover') {
110
110
  $dimmable
111
111
  .on('mouseenter' + eventNamespace, module.show)
112
112
  .on('mouseleave' + eventNamespace, module.hide)
113
113
  ;
114
- } else if (settings.on == 'click') {
114
+ } else if (settings.on === 'click') {
115
115
  $dimmable
116
116
  .on(clickEvent + eventNamespace, module.toggle)
117
117
  ;
@@ -265,7 +265,7 @@
265
265
  } else {
266
266
  module.verbose('Showing dimmer animation with javascript');
267
267
  module.set.dimmed();
268
- if (settings.opacity == 'auto') {
268
+ if (settings.opacity === 'auto') {
269
269
  settings.opacity = 0.8;
270
270
  }
271
271
  $dimmer
@@ -358,8 +358,8 @@
358
358
  return $dimmer.is(':animated') || $dimmer.hasClass(className.animating);
359
359
  },
360
360
  closable: function () {
361
- if (settings.closable == 'auto') {
362
- return settings.on != 'hover';
361
+ if (settings.closable === 'auto') {
362
+ return settings.on !== 'hover';
363
363
  }
364
364
 
365
365
  return settings.closable;
@@ -575,17 +575,17 @@
575
575
  query = query.split(/[ .]/);
576
576
  maxDepth = query.length - 1;
577
577
  $.each(query, function (depth, value) {
578
- var camelCaseValue = depth != maxDepth
578
+ var camelCaseValue = depth !== maxDepth
579
579
  ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
580
580
  : query
581
581
  ;
582
- if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
582
+ if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
583
583
  object = object[camelCaseValue];
584
584
  } else if (object[camelCaseValue] !== undefined) {
585
585
  found = object[camelCaseValue];
586
586
 
587
587
  return false;
588
- } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
588
+ } else if ($.isPlainObject(object[value]) && (depth !== maxDepth)) {
589
589
  object = object[value];
590
590
  } else if (object[value] !== undefined) {
591
591
  found = object[value];
@@ -663,12 +663,12 @@
663
663
  ;
664
664
  }
665
665
  } else {
666
- if (settings.on == 'click') {
666
+ if (settings.on === 'click') {
667
667
  $module
668
668
  .on('click' + eventNamespace, selector.icon, module.event.icon.click)
669
669
  .on('click' + eventNamespace, module.event.test.toggle)
670
670
  ;
671
- } else if (settings.on == 'hover') {
671
+ } else if (settings.on === 'hover') {
672
672
  $module
673
673
  .on('mouseenter' + eventNamespace, module.delay.show)
674
674
  .on('mouseleave' + eventNamespace, module.delay.hide)
@@ -1413,7 +1413,7 @@
1413
1413
  hasActiveLabel = $activeLabel.length > 0,
1414
1414
  hasMultipleActive = $activeLabel.length > 1,
1415
1415
  isFirstLabel = labelIndex === 0,
1416
- isLastLabel = labelIndex + 1 == labelCount,
1416
+ isLastLabel = labelIndex + 1 === labelCount,
1417
1417
  isSearch = module.is.searchSelection(),
1418
1418
  isFocusedOnSearch = module.is.focusedOnSearch(),
1419
1419
  isFocused = module.is.focused(),
@@ -1424,82 +1424,94 @@
1424
1424
  return;
1425
1425
  }
1426
1426
 
1427
- if (pressedKey == keys.leftArrow) {
1428
- // activate previous label
1429
- if ((isFocused || caretAtStart) && !hasActiveLabel) {
1430
- module.verbose('Selecting previous label');
1431
- $label.last().addClass(className.active);
1432
- } else if (hasActiveLabel) {
1433
- if (!event.shiftKey) {
1427
+ switch (pressedKey) {
1428
+ case keys.leftArrow: {
1429
+ // activate previous label
1430
+ if ((isFocused || caretAtStart) && !hasActiveLabel) {
1434
1431
  module.verbose('Selecting previous label');
1435
- $label.removeClass(className.active);
1436
- } else {
1437
- module.verbose('Adding previous label to selection');
1438
- }
1439
- if (isFirstLabel && !hasMultipleActive) {
1440
- $activeLabel.addClass(className.active);
1441
- } else {
1442
- $activeLabel.prev(selector.siblingLabel)
1443
- .addClass(className.active)
1444
- .end()
1445
- ;
1432
+ $label.last().addClass(className.active);
1433
+ } else if (hasActiveLabel) {
1434
+ if (!event.shiftKey) {
1435
+ module.verbose('Selecting previous label');
1436
+ $label.removeClass(className.active);
1437
+ } else {
1438
+ module.verbose('Adding previous label to selection');
1439
+ }
1440
+ if (isFirstLabel && !hasMultipleActive) {
1441
+ $activeLabel.addClass(className.active);
1442
+ } else {
1443
+ $activeLabel.prev(selector.siblingLabel)
1444
+ .addClass(className.active)
1445
+ .end()
1446
+ ;
1447
+ }
1448
+ event.preventDefault();
1446
1449
  }
1447
- event.preventDefault();
1448
- }
1449
- } else if (pressedKey == keys.rightArrow) {
1450
- // activate first label
1451
- if (isFocused && !hasActiveLabel) {
1452
- $label.first().addClass(className.active);
1450
+
1451
+ break;
1453
1452
  }
1454
- // activate next label
1455
- if (hasActiveLabel) {
1456
- if (!event.shiftKey) {
1457
- module.verbose('Selecting next label');
1458
- $label.removeClass(className.active);
1459
- } else {
1460
- module.verbose('Adding next label to selection');
1453
+ case keys.rightArrow: {
1454
+ // activate first label
1455
+ if (isFocused && !hasActiveLabel) {
1456
+ $label.first().addClass(className.active);
1461
1457
  }
1462
- if (isLastLabel) {
1463
- if (isSearch) {
1464
- if (!isFocusedOnSearch) {
1465
- module.focusSearch();
1458
+ // activate next label
1459
+ if (hasActiveLabel) {
1460
+ if (!event.shiftKey) {
1461
+ module.verbose('Selecting next label');
1462
+ $label.removeClass(className.active);
1463
+ } else {
1464
+ module.verbose('Adding next label to selection');
1465
+ }
1466
+ if (isLastLabel) {
1467
+ if (isSearch) {
1468
+ if (!isFocusedOnSearch) {
1469
+ module.focusSearch();
1470
+ } else {
1471
+ $label.removeClass(className.active);
1472
+ }
1473
+ } else if (hasMultipleActive) {
1474
+ $activeLabel.next(selector.siblingLabel).addClass(className.active);
1466
1475
  } else {
1467
- $label.removeClass(className.active);
1476
+ $activeLabel.addClass(className.active);
1468
1477
  }
1469
- } else if (hasMultipleActive) {
1470
- $activeLabel.next(selector.siblingLabel).addClass(className.active);
1471
1478
  } else {
1472
- $activeLabel.addClass(className.active);
1479
+ $activeLabel.next(selector.siblingLabel).addClass(className.active);
1473
1480
  }
1474
- } else {
1475
- $activeLabel.next(selector.siblingLabel).addClass(className.active);
1481
+ event.preventDefault();
1476
1482
  }
1477
- event.preventDefault();
1483
+
1484
+ break;
1478
1485
  }
1479
- } else if (pressedKey == keys.deleteKey || pressedKey == keys.backspace) {
1480
- if (hasActiveLabel) {
1481
- module.verbose('Removing active labels');
1482
- if (isLastLabel) {
1483
- if (isSearch && !isFocusedOnSearch) {
1484
- module.focusSearch();
1486
+ case keys.deleteKey:
1487
+ case keys.backspace: {
1488
+ if (hasActiveLabel) {
1489
+ module.verbose('Removing active labels');
1490
+ if (isLastLabel) {
1491
+ if (isSearch && !isFocusedOnSearch) {
1492
+ module.focusSearch();
1493
+ }
1494
+ }
1495
+ $activeLabel.last().next(selector.siblingLabel).addClass(className.active);
1496
+ module.remove.activeLabels($activeLabel);
1497
+ if (!module.is.visible()) {
1498
+ module.show();
1499
+ }
1500
+ event.preventDefault();
1501
+ } else if (caretAtStart && !isSelectedSearch && !hasActiveLabel && pressedKey === keys.backspace) {
1502
+ module.verbose('Removing last label on input backspace');
1503
+ $activeLabel = $label.last().addClass(className.active);
1504
+ module.remove.activeLabels($activeLabel);
1505
+ if (!module.is.visible()) {
1506
+ module.show();
1485
1507
  }
1486
1508
  }
1487
- $activeLabel.last().next(selector.siblingLabel).addClass(className.active);
1488
- module.remove.activeLabels($activeLabel);
1489
- if (!module.is.visible()) {
1490
- module.show();
1491
- }
1492
- event.preventDefault();
1493
- } else if (caretAtStart && !isSelectedSearch && !hasActiveLabel && pressedKey == keys.backspace) {
1494
- module.verbose('Removing last label on input backspace');
1495
- $activeLabel = $label.last().addClass(className.active);
1496
- module.remove.activeLabels($activeLabel);
1497
- if (!module.is.visible()) {
1498
- module.show();
1499
- }
1509
+
1510
+ break;
1511
+ }
1512
+ default: {
1513
+ $activeLabel.removeClass(className.active);
1500
1514
  }
1501
- } else {
1502
- $activeLabel.removeClass(className.active);
1503
1515
  }
1504
1516
  }
1505
1517
  },
@@ -1527,7 +1539,7 @@
1527
1539
  hasSelectedItem = $selectedItem.length > 0,
1528
1540
  selectedIsSelectable = $selectedItem.not(selector.unselectable).length > 0,
1529
1541
  delimiterPressed = event.key === settings.delimiter && module.is.multiple(),
1530
- isAdditionWithoutMenu = settings.allowAdditions && (pressedKey == keys.enter || delimiterPressed),
1542
+ isAdditionWithoutMenu = settings.allowAdditions && (pressedKey === keys.enter || delimiterPressed),
1531
1543
  $nextItem,
1532
1544
  isSubMenuItem
1533
1545
  ;
@@ -1548,8 +1560,8 @@
1548
1560
  // visible menu keyboard shortcuts
1549
1561
  if (module.is.visible()) {
1550
1562
  // enter (select or open sub-menu)
1551
- if (pressedKey == keys.enter || delimiterPressed) {
1552
- if (pressedKey == keys.enter && hasSelectedItem && hasSubMenu && !settings.allowCategorySelection) {
1563
+ if (pressedKey === keys.enter || delimiterPressed) {
1564
+ if (pressedKey === keys.enter && hasSelectedItem && hasSubMenu && !settings.allowCategorySelection) {
1553
1565
  module.verbose('Pressed enter on unselectable category, opening sub menu');
1554
1566
  pressedKey = keys.rightArrow;
1555
1567
  } else if (selectedIsSelectable) {
@@ -1567,7 +1579,7 @@
1567
1579
 
1568
1580
  // sub-menu actions
1569
1581
  if (hasSelectedItem) {
1570
- if (pressedKey == keys.leftArrow) {
1582
+ if (pressedKey === keys.leftArrow) {
1571
1583
  isSubMenuItem = $parentMenu[0] !== $menu[0];
1572
1584
 
1573
1585
  if (isSubMenuItem) {
@@ -1585,7 +1597,7 @@
1585
1597
  }
1586
1598
 
1587
1599
  // right arrow (show sub-menu)
1588
- if (pressedKey == keys.rightArrow) {
1600
+ if (pressedKey === keys.rightArrow) {
1589
1601
  if (hasSubMenu) {
1590
1602
  module.verbose('Right key pressed, opening sub-menu');
1591
1603
  module.animate.show(false, $subMenu);
@@ -1602,7 +1614,7 @@
1602
1614
  }
1603
1615
 
1604
1616
  // up arrow (traverse menu up)
1605
- if (pressedKey == keys.upArrow) {
1617
+ if (pressedKey === keys.upArrow) {
1606
1618
  $nextItem = hasSelectedItem && inVisibleMenu
1607
1619
  ? $selectedItem.prevAll(selector.item + ':not(' + selector.unselectable + ')').eq(0)
1608
1620
  : $item.eq(0);
@@ -1629,7 +1641,7 @@
1629
1641
  }
1630
1642
 
1631
1643
  // down arrow (traverse menu down)
1632
- if (pressedKey == keys.downArrow) {
1644
+ if (pressedKey === keys.downArrow) {
1633
1645
  $nextItem = hasSelectedItem && inVisibleMenu
1634
1646
  ? $selectedItem.nextAll(selector.item + ':not(' + selector.unselectable + ')').eq(0)
1635
1647
  : $item.eq(0);
@@ -1656,28 +1668,28 @@
1656
1668
  }
1657
1669
 
1658
1670
  // page down (show next page)
1659
- if (pressedKey == keys.pageUp) {
1671
+ if (pressedKey === keys.pageUp) {
1660
1672
  module.scrollPage('up');
1661
1673
  event.preventDefault();
1662
1674
  }
1663
- if (pressedKey == keys.pageDown) {
1675
+ if (pressedKey === keys.pageDown) {
1664
1676
  module.scrollPage('down');
1665
1677
  event.preventDefault();
1666
1678
  }
1667
1679
 
1668
1680
  // escape (close menu)
1669
- if (pressedKey == keys.escape) {
1681
+ if (pressedKey === keys.escape) {
1670
1682
  module.verbose('Escape key pressed, closing dropdown');
1671
1683
  module.hide();
1672
1684
  event.stopPropagation();
1673
1685
  }
1674
1686
  } else {
1675
1687
  // delimiter key
1676
- if (pressedKey == keys.enter || delimiterPressed) {
1688
+ if (pressedKey === keys.enter || delimiterPressed) {
1677
1689
  event.preventDefault();
1678
1690
  }
1679
1691
  // down arrow (open menu)
1680
- if (pressedKey == keys.downArrow && !module.is.visible()) {
1692
+ if (pressedKey === keys.downArrow && !module.is.visible()) {
1681
1693
  module.verbose('Down key pressed, showing dropdown');
1682
1694
  module.show();
1683
1695
  event.preventDefault();
@@ -1818,7 +1830,7 @@
1818
1830
  return $module.data(metadata.defaultValue);
1819
1831
  },
1820
1832
  placeholderText: function () {
1821
- if (settings.placeholder != 'auto' && typeof settings.placeholder === 'string') {
1833
+ if (settings.placeholder !== 'auto' && typeof settings.placeholder === 'string') {
1822
1834
  return settings.placeholder;
1823
1835
  }
1824
1836
 
@@ -2368,7 +2380,7 @@
2368
2380
  currentScroll = $menu.scrollTop(),
2369
2381
  itemHeight = $item.eq(0).outerHeight(),
2370
2382
  itemsPerPage = Math.floor(menuHeight / itemHeight),
2371
- newScroll = direction == 'up'
2383
+ newScroll = direction === 'up'
2372
2384
  ? currentScroll - (itemHeight * itemsPerPage)
2373
2385
  : currentScroll + (itemHeight * itemsPerPage),
2374
2386
  $selectableItem = $item.not(selector.unselectable),
@@ -2376,15 +2388,15 @@
2376
2388
  $nextSelectedItem,
2377
2389
  elementIndex
2378
2390
  ;
2379
- elementIndex = direction == 'up'
2391
+ elementIndex = direction === 'up'
2380
2392
  ? $selectableItem.index($currentItem) - itemsPerPage
2381
2393
  : $selectableItem.index($currentItem) + itemsPerPage;
2382
- isWithinRange = direction == 'up'
2394
+ isWithinRange = direction === 'up'
2383
2395
  ? elementIndex >= 0
2384
2396
  : elementIndex < $selectableItem.length;
2385
2397
  $nextSelectedItem = isWithinRange
2386
2398
  ? $selectableItem.eq(elementIndex)
2387
- : (direction == 'up'
2399
+ : (direction === 'up'
2388
2400
  ? $selectableItem.first()
2389
2401
  : $selectableItem.last());
2390
2402
  if ($nextSelectedItem.length > 0) {
@@ -3319,7 +3331,7 @@
3319
3331
  values = [values];
3320
3332
  }
3321
3333
  $.each(values, function (index, existingValue) {
3322
- if (String(value).toLowerCase() == String(existingValue).toLowerCase()) {
3334
+ if (String(value).toLowerCase() === String(existingValue).toLowerCase()) {
3323
3335
  hasValue = true;
3324
3336
 
3325
3337
  return false;
@@ -3458,7 +3470,7 @@
3458
3470
  : false
3459
3471
  ;
3460
3472
 
3461
- return overflowY == 'auto' || overflowY == 'scroll';
3473
+ return overflowY === 'auto' || overflowY === 'scroll';
3462
3474
  },
3463
3475
  horizontallyScrollableContext: function () {
3464
3476
  var
@@ -3467,7 +3479,7 @@
3467
3479
  : false
3468
3480
  ;
3469
3481
 
3470
- return overflowX == 'auto' || overflowX == 'scroll';
3482
+ return overflowX === 'auto' || overflowX === 'scroll';
3471
3483
  },
3472
3484
  },
3473
3485
 
@@ -3860,17 +3872,17 @@
3860
3872
  query = query.split(/[ .]/);
3861
3873
  maxDepth = query.length - 1;
3862
3874
  $.each(query, function (depth, value) {
3863
- var camelCaseValue = depth != maxDepth
3875
+ var camelCaseValue = depth !== maxDepth
3864
3876
  ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
3865
3877
  : query
3866
3878
  ;
3867
- if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
3879
+ if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
3868
3880
  object = object[camelCaseValue];
3869
3881
  } else if (object[camelCaseValue] !== undefined) {
3870
3882
  found = object[camelCaseValue];
3871
3883
 
3872
3884
  return false;
3873
- } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
3885
+ } else if ($.isPlainObject(object[value]) && (depth !== maxDepth)) {
3874
3886
  object = object[value];
3875
3887
  } else if (object[value] !== undefined) {
3876
3888
  found = object[value];
@@ -4225,7 +4237,7 @@
4225
4237
  maybeDescriptionVertical = option[fields.descriptionVertical]
4226
4238
  ? className.descriptionVertical + ' '
4227
4239
  : '',
4228
- hasDescription = escape(option[fields.description] || '', preserveHTML) != ''
4240
+ hasDescription = escape(option[fields.description] || '', preserveHTML) !== ''
4229
4241
  ;
4230
4242
  html += '<div class="' + deQuote(maybeActionable + maybeDisabled + maybeDescriptionVertical + (option[fields.class] || className.item)) + '" data-value="' + deQuote(option[fields.value], true) + '"' + maybeText + '>';
4231
4243
  if (isMenu) {