fomantic-ui 2.10.0-beta.6 → 2.10.0-beta.8

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 (227) hide show
  1. package/.eslintrc.js +0 -10
  2. package/README.md +4 -5
  3. package/changelog-setup.js +64 -70
  4. package/dist/components/accordion.css +1 -1
  5. package/dist/components/accordion.js +94 -131
  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 +152 -205
  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 +305 -341
  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 +76 -116
  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 +58 -91
  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 +674 -977
  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 +80 -127
  42. package/dist/components/embed.min.css +1 -1
  43. package/dist/components/embed.min.js +2 -2
  44. package/dist/components/emoji.css +1 -1
  45. package/dist/components/emoji.min.css +1 -1
  46. package/dist/components/feed.css +1 -1
  47. package/dist/components/feed.min.css +1 -1
  48. package/dist/components/flag.css +1 -1
  49. package/dist/components/flag.min.css +1 -1
  50. package/dist/components/flyout.css +1 -1
  51. package/dist/components/flyout.js +192 -274
  52. package/dist/components/flyout.min.css +1 -1
  53. package/dist/components/flyout.min.js +2 -2
  54. package/dist/components/form.css +1 -1
  55. package/dist/components/form.js +325 -429
  56. package/dist/components/form.min.css +1 -1
  57. package/dist/components/form.min.js +2 -2
  58. package/dist/components/grid.css +1 -1
  59. package/dist/components/grid.min.css +1 -1
  60. package/dist/components/header.css +1 -1
  61. package/dist/components/header.min.css +1 -1
  62. package/dist/components/icon.css +1 -1
  63. package/dist/components/icon.min.css +1 -1
  64. package/dist/components/image.css +1 -1
  65. package/dist/components/image.min.css +1 -1
  66. package/dist/components/input.css +1 -1
  67. package/dist/components/input.min.css +1 -1
  68. package/dist/components/item.css +1 -1
  69. package/dist/components/item.min.css +1 -1
  70. package/dist/components/label.css +1 -1
  71. package/dist/components/label.min.css +1 -1
  72. package/dist/components/list.css +1 -1
  73. package/dist/components/list.min.css +1 -1
  74. package/dist/components/loader.css +1 -1
  75. package/dist/components/loader.min.css +1 -1
  76. package/dist/components/menu.css +1 -1
  77. package/dist/components/menu.min.css +1 -1
  78. package/dist/components/message.css +1 -1
  79. package/dist/components/message.min.css +1 -1
  80. package/dist/components/modal.css +1 -1
  81. package/dist/components/modal.js +221 -313
  82. package/dist/components/modal.min.css +1 -1
  83. package/dist/components/modal.min.js +2 -2
  84. package/dist/components/nag.css +1 -1
  85. package/dist/components/nag.js +67 -97
  86. package/dist/components/nag.min.css +1 -1
  87. package/dist/components/nag.min.js +2 -2
  88. package/dist/components/placeholder.css +1 -1
  89. package/dist/components/placeholder.min.css +1 -1
  90. package/dist/components/popup.css +1 -1
  91. package/dist/components/popup.js +185 -254
  92. package/dist/components/popup.min.css +1 -1
  93. package/dist/components/popup.min.js +2 -2
  94. package/dist/components/progress.css +1 -1
  95. package/dist/components/progress.js +103 -138
  96. package/dist/components/progress.min.css +1 -1
  97. package/dist/components/progress.min.js +2 -2
  98. package/dist/components/rail.css +1 -1
  99. package/dist/components/rail.min.css +1 -1
  100. package/dist/components/rating.css +1 -1
  101. package/dist/components/rating.js +89 -139
  102. package/dist/components/rating.min.css +1 -1
  103. package/dist/components/rating.min.js +2 -2
  104. package/dist/components/reset.css +1 -1
  105. package/dist/components/reset.min.css +1 -1
  106. package/dist/components/reveal.css +1 -1
  107. package/dist/components/reveal.min.css +1 -1
  108. package/dist/components/search.css +1 -1
  109. package/dist/components/search.js +253 -352
  110. package/dist/components/search.min.css +1 -1
  111. package/dist/components/search.min.js +2 -2
  112. package/dist/components/segment.css +1 -1
  113. package/dist/components/segment.min.css +1 -1
  114. package/dist/components/shape.css +1 -1
  115. package/dist/components/shape.js +157 -223
  116. package/dist/components/shape.min.css +1 -1
  117. package/dist/components/shape.min.js +2 -2
  118. package/dist/components/sidebar.css +1 -1
  119. package/dist/components/sidebar.js +122 -163
  120. package/dist/components/sidebar.min.css +1 -1
  121. package/dist/components/sidebar.min.js +2 -2
  122. package/dist/components/site.css +1 -1
  123. package/dist/components/site.js +38 -57
  124. package/dist/components/site.min.css +1 -1
  125. package/dist/components/site.min.js +2 -2
  126. package/dist/components/slider.css +1 -1
  127. package/dist/components/slider.js +242 -325
  128. package/dist/components/slider.min.css +1 -1
  129. package/dist/components/slider.min.js +2 -2
  130. package/dist/components/state.js +68 -98
  131. package/dist/components/state.min.js +2 -2
  132. package/dist/components/statistic.css +1 -1
  133. package/dist/components/statistic.min.css +1 -1
  134. package/dist/components/step.css +1 -1
  135. package/dist/components/step.min.css +1 -1
  136. package/dist/components/sticky.css +1 -1
  137. package/dist/components/sticky.js +116 -159
  138. package/dist/components/sticky.min.css +1 -1
  139. package/dist/components/sticky.min.js +2 -2
  140. package/dist/components/tab.css +1 -1
  141. package/dist/components/tab.js +168 -233
  142. package/dist/components/tab.min.css +1 -1
  143. package/dist/components/tab.min.js +2 -2
  144. package/dist/components/table.css +1 -1
  145. package/dist/components/table.min.css +1 -1
  146. package/dist/components/text.css +1 -1
  147. package/dist/components/text.min.css +1 -1
  148. package/dist/components/toast.css +1 -1
  149. package/dist/components/toast.js +99 -132
  150. package/dist/components/toast.min.css +1 -1
  151. package/dist/components/toast.min.js +2 -2
  152. package/dist/components/transition.css +1 -1
  153. package/dist/components/transition.js +86 -141
  154. package/dist/components/transition.min.css +1 -1
  155. package/dist/components/transition.min.js +2 -2
  156. package/dist/components/visibility.js +134 -210
  157. package/dist/components/visibility.min.js +2 -2
  158. package/dist/semantic.css +53 -53
  159. package/dist/semantic.js +4100 -5721
  160. package/dist/semantic.min.css +1 -1
  161. package/dist/semantic.min.js +2 -2
  162. package/examples/assets/show-examples.js +2 -4
  163. package/gulpfile.js +5 -7
  164. package/package.json +1 -1
  165. package/scripts/nightly-version.js +7 -10
  166. package/src/definitions/behaviors/api.js +151 -204
  167. package/src/definitions/behaviors/form.js +324 -428
  168. package/src/definitions/behaviors/state.js +67 -97
  169. package/src/definitions/behaviors/visibility.js +133 -209
  170. package/src/definitions/globals/site.js +37 -56
  171. package/src/definitions/modules/accordion.js +93 -130
  172. package/src/definitions/modules/calendar.js +304 -340
  173. package/src/definitions/modules/checkbox.js +75 -115
  174. package/src/definitions/modules/dimmer.js +57 -90
  175. package/src/definitions/modules/dropdown.js +673 -976
  176. package/src/definitions/modules/embed.js +79 -126
  177. package/src/definitions/modules/flyout.js +191 -273
  178. package/src/definitions/modules/modal.js +220 -312
  179. package/src/definitions/modules/nag.js +66 -96
  180. package/src/definitions/modules/popup.js +184 -253
  181. package/src/definitions/modules/progress.js +102 -137
  182. package/src/definitions/modules/rating.js +88 -138
  183. package/src/definitions/modules/search.js +252 -351
  184. package/src/definitions/modules/shape.js +156 -222
  185. package/src/definitions/modules/sidebar.js +121 -162
  186. package/src/definitions/modules/slider.js +241 -324
  187. package/src/definitions/modules/sticky.js +115 -158
  188. package/src/definitions/modules/tab.js +167 -232
  189. package/src/definitions/modules/toast.js +98 -131
  190. package/src/definitions/modules/transition.js +85 -140
  191. package/tasks/admin/components/create.js +88 -108
  192. package/tasks/admin/components/init.js +26 -32
  193. package/tasks/admin/components/update.js +46 -53
  194. package/tasks/admin/distributions/create.js +71 -101
  195. package/tasks/admin/distributions/init.js +27 -33
  196. package/tasks/admin/distributions/update.js +45 -52
  197. package/tasks/admin/register.js +11 -15
  198. package/tasks/build/assets.js +14 -18
  199. package/tasks/build/css.js +54 -63
  200. package/tasks/build/javascript.js +45 -53
  201. package/tasks/build.js +4 -6
  202. package/tasks/check-install.js +5 -7
  203. package/tasks/clean.js +2 -4
  204. package/tasks/collections/admin.js +13 -15
  205. package/tasks/collections/build.js +6 -8
  206. package/tasks/collections/docs.js +2 -4
  207. package/tasks/collections/install.js +2 -4
  208. package/tasks/collections/rtl.js +2 -4
  209. package/tasks/collections/various.js +2 -4
  210. package/tasks/config/admin/github.js +7 -9
  211. package/tasks/config/admin/templates/css-package.js +1 -3
  212. package/tasks/config/admin/templates/less-package.js +1 -3
  213. package/tasks/config/npm/gulpfile.js +4 -6
  214. package/tasks/config/project/config.js +22 -30
  215. package/tasks/config/project/install.js +56 -70
  216. package/tasks/config/project/release.js +6 -8
  217. package/tasks/config/tasks.js +8 -12
  218. package/tasks/config/user.js +13 -17
  219. package/tasks/docs/build.js +26 -31
  220. package/tasks/docs/metadata.js +24 -30
  221. package/tasks/docs/serve.js +20 -26
  222. package/tasks/install.js +71 -98
  223. package/tasks/rtl/build.js +2 -4
  224. package/tasks/rtl/watch.js +2 -4
  225. package/tasks/watch.js +9 -11
  226. package/test/meteor/fonts.js +1 -2
  227. package/test/modules/module.spec.js +16 -18
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.10.0-beta.6+42a411a - Search
2
+ * # Fomantic-UI 2.10.0-beta.8+62e258f - Search
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -20,49 +20,45 @@
20
20
  : globalThis;
21
21
 
22
22
  $.fn.search = function (parameters) {
23
- var
24
- $allModules = $(this),
23
+ let $allModules = $(this);
25
24
 
26
- time = Date.now(),
27
- performance = [],
25
+ let time = Date.now();
26
+ let performance = [];
28
27
 
29
- query = arguments[0],
30
- methodInvoked = typeof query === 'string',
31
- queryArguments = [].slice.call(arguments, 1),
32
- returnedValue
33
- ;
28
+ let query = arguments[0];
29
+ let methodInvoked = typeof query === 'string';
30
+ let queryArguments = [].slice.call(arguments, 1);
31
+ let returnedValue;
34
32
  $allModules.each(function () {
35
- var
36
- settings = $.isPlainObject(parameters)
37
- ? $.extend(true, {}, $.fn.search.settings, parameters)
38
- : $.extend({}, $.fn.search.settings),
39
-
40
- className = settings.className,
41
- metadata = settings.metadata,
42
- regExp = settings.regExp,
43
- fields = settings.fields,
44
- selector = settings.selector,
45
- error = settings.error,
46
- namespace = settings.namespace,
47
-
48
- eventNamespace = '.' + namespace,
49
- moduleNamespace = namespace + '-module',
50
-
51
- $module = $(this),
52
- $prompt = $module.find(selector.prompt),
53
- $searchButton = $module.find(selector.searchButton),
54
- $results = $module.find(selector.results),
55
- $result = $module.find(selector.result),
56
- $category = $module.find(selector.category),
57
-
58
- element = this,
59
- instance = $module.data(moduleNamespace),
60
-
61
- disabledBubbled = false,
62
- resultsDismissed = false,
63
-
64
- module
65
- ;
33
+ let settings = $.isPlainObject(parameters)
34
+ ? $.extend(true, {}, $.fn.search.settings, parameters)
35
+ : $.extend({}, $.fn.search.settings);
36
+
37
+ let className = settings.className;
38
+ let metadata = settings.metadata;
39
+ let regExp = settings.regExp;
40
+ let fields = settings.fields;
41
+ let selector = settings.selector;
42
+ let error = settings.error;
43
+ let namespace = settings.namespace;
44
+
45
+ let eventNamespace = '.' + namespace;
46
+ let moduleNamespace = namespace + '-module';
47
+
48
+ let $module = $(this);
49
+ let $prompt = $module.find(selector.prompt);
50
+ let $searchButton = $module.find(selector.searchButton);
51
+ let $results = $module.find(selector.results);
52
+ let $result = $module.find(selector.result);
53
+ let $category = $module.find(selector.category);
54
+
55
+ let element = this;
56
+ let instance = $module.data(moduleNamespace);
57
+
58
+ let disabledBubbled = false;
59
+ let resultsDismissed = false;
60
+
61
+ let module;
66
62
 
67
63
  module = {
68
64
 
@@ -79,15 +75,13 @@
79
75
  module.verbose('Storing instance of module', module);
80
76
  instance = module;
81
77
  $module
82
- .data(moduleNamespace, module)
83
- ;
78
+ .data(moduleNamespace, module);
84
79
  },
85
80
  destroy: function () {
86
81
  module.verbose('Destroying instance');
87
82
  $module
88
83
  .off(eventNamespace)
89
- .removeData(moduleNamespace)
90
- ;
84
+ .removeData(moduleNamespace);
91
85
  },
92
86
 
93
87
  refresh: function () {
@@ -109,11 +103,9 @@
109
103
  module.verbose('Binding events to search');
110
104
  if (settings.automatic) {
111
105
  $module
112
- .on(module.get.inputEvent() + eventNamespace, selector.prompt, module.event.input)
113
- ;
106
+ .on(module.get.inputEvent() + eventNamespace, selector.prompt, module.event.input);
114
107
  $prompt
115
- .attr('autocomplete', module.is.chrome() ? 'fomantic-search' : 'off')
116
- ;
108
+ .attr('autocomplete', module.is.chrome() ? 'fomantic-search' : 'off');
117
109
  }
118
110
  $module
119
111
  // prompt
@@ -126,8 +118,7 @@
126
118
  .on('mousedown' + eventNamespace, selector.results, module.event.result.mousedown)
127
119
  .on('mouseup' + eventNamespace, selector.results, module.event.result.mouseup)
128
120
  .on('click' + eventNamespace, selector.result, module.event.result.click)
129
- .on('click' + eventNamespace, selector.remove, module.event.remove.click)
130
- ;
121
+ .on('click' + eventNamespace, selector.remove, module.event.remove.click);
131
122
  },
132
123
  },
133
124
 
@@ -138,8 +129,7 @@
138
129
  if (parameters && parameters.searchFields !== undefined) {
139
130
  settings.searchFields = Array.isArray(parameters.searchFields)
140
131
  ? parameters.searchFields
141
- : [parameters.searchFields]
142
- ;
132
+ : [parameters.searchFields];
143
133
  }
144
134
  },
145
135
  },
@@ -168,16 +158,14 @@
168
158
  }
169
159
  },
170
160
  blur: function (event) {
171
- var
172
- pageLostFocus = document.activeElement === this,
173
- callback = function () {
174
- module.cancel.query();
175
- module.remove.focus();
176
- module.timer = setTimeout(function () {
177
- module.hideResults();
178
- }, settings.hideDelay);
179
- }
180
- ;
161
+ let pageLostFocus = document.activeElement === this;
162
+ let callback = function () {
163
+ module.cancel.query();
164
+ module.remove.focus();
165
+ module.timer = setTimeout(function () {
166
+ module.hideResults();
167
+ }, settings.hideDelay);
168
+ };
181
169
  if (pageLostFocus) {
182
170
  return;
183
171
  }
@@ -195,8 +183,7 @@
195
183
  if (!module.is.animating() && !module.is.hidden()) {
196
184
  callback();
197
185
  }
198
- })
199
- ;
186
+ });
200
187
  } else {
201
188
  module.debug('Input blurred without user action, closing results');
202
189
  callback();
@@ -217,22 +204,20 @@
217
204
  },
218
205
  click: function (event) {
219
206
  module.debug('Search result selected');
220
- var
221
- $result = $(this),
222
- $title = $result.find(selector.title).eq(0),
223
- $link = $result.is('a[href]')
224
- ? $result
225
- : $result.find('a[href]').eq(0),
226
- href = $link.attr('href') || false,
227
- target = $link.attr('target') || false,
228
- // title is used for result lookup
229
- value = $title.length > 0
230
- ? $title.text()
231
- : false,
232
- results = module.get.results(),
233
- result = $result.data(metadata.result) || module.get.result(value, results)
234
- ;
235
- var oldValue = module.get.value();
207
+ let $result = $(this);
208
+ let $title = $result.find(selector.title).eq(0);
209
+ let $link = $result.is('a[href]')
210
+ ? $result
211
+ : $result.find('a[href]').eq(0);
212
+ let href = $link.attr('href') || false;
213
+ let target = $link.attr('target') || false;
214
+ // title is used for result lookup
215
+ let value = $title.length > 0
216
+ ? $title.text()
217
+ : false;
218
+ let results = module.get.results();
219
+ let result = $result.data(metadata.result) || module.get.result(value, results);
220
+ let oldValue = module.get.value();
236
221
  if (isFunction(settings.onSelect)) {
237
222
  if (settings.onSelect.call(element, result, results) === false) {
238
223
  module.debug('Custom onSelect callback cancelled default select action');
@@ -258,12 +243,10 @@
258
243
  },
259
244
  },
260
245
  ensureVisible: function ($el) {
261
- var
262
- elTop,
263
- elBottom,
264
- resultsScrollTop,
265
- resultsHeight
266
- ;
246
+ let elTop;
247
+ let elBottom;
248
+ let resultsScrollTop;
249
+ let resultsHeight;
267
250
  if ($el.length === 0) {
268
251
  return;
269
252
  }
@@ -280,25 +263,23 @@
280
263
  }
281
264
  },
282
265
  handleKeyboard: function (event) {
283
- var
284
- // force selector refresh
285
- $result = $module.find(selector.result),
286
- $category = $module.find(selector.category),
287
- $activeResult = $result.filter('.' + className.active),
288
- currentIndex = $result.index($activeResult),
289
- resultSize = $result.length,
290
- hasActiveResult = $activeResult.length > 0,
291
-
292
- keyCode = event.which,
293
- keys = {
294
- backspace: 8,
295
- enter: 13,
296
- escape: 27,
297
- upArrow: 38,
298
- downArrow: 40,
299
- },
300
- newIndex
301
- ;
266
+ // force selector refresh
267
+ let $result = $module.find(selector.result);
268
+ let $category = $module.find(selector.category);
269
+ let $activeResult = $result.filter('.' + className.active);
270
+ let currentIndex = $result.index($activeResult);
271
+ let resultSize = $result.length;
272
+ let hasActiveResult = $activeResult.length > 0;
273
+
274
+ let keyCode = event.which;
275
+ let keys = {
276
+ backspace: 8,
277
+ enter: 13,
278
+ escape: 27,
279
+ upArrow: 38,
280
+ downArrow: 40,
281
+ };
282
+ let newIndex;
302
283
  // search shortcuts
303
284
  if (keyCode === keys.escape) {
304
285
  if (!module.is.visible()) {
@@ -325,15 +306,13 @@
325
306
  ? currentIndex
326
307
  : currentIndex - 1;
327
308
  $category
328
- .removeClass(className.active)
329
- ;
309
+ .removeClass(className.active);
330
310
  $result
331
311
  .removeClass(className.active)
332
312
  .eq(newIndex)
333
313
  .addClass(className.active)
334
314
  .closest($category)
335
- .addClass(className.active)
336
- ;
315
+ .addClass(className.active);
337
316
  module.ensureVisible($result.eq(newIndex));
338
317
  event.preventDefault();
339
318
  } else if (keyCode === keys.downArrow) {
@@ -342,15 +321,13 @@
342
321
  ? currentIndex
343
322
  : currentIndex + 1;
344
323
  $category
345
- .removeClass(className.active)
346
- ;
324
+ .removeClass(className.active);
347
325
  $result
348
326
  .removeClass(className.active)
349
327
  .eq(newIndex)
350
328
  .addClass(className.active)
351
329
  .closest($category)
352
- .addClass(className.active)
353
- ;
330
+ .addClass(className.active);
354
331
  module.ensureVisible($result.eq(newIndex));
355
332
  event.preventDefault();
356
333
  }
@@ -367,44 +344,42 @@
367
344
 
368
345
  setup: {
369
346
  api: function (searchTerm, callback) {
370
- var
371
- apiSettings = {
372
- debug: settings.debug,
373
- on: false,
374
- cache: settings.cache,
375
- action: 'search',
376
- urlData: {
377
- query: searchTerm,
378
- },
347
+ let apiSettings = {
348
+ debug: settings.debug,
349
+ on: false,
350
+ cache: settings.cache,
351
+ action: 'search',
352
+ urlData: {
353
+ query: searchTerm,
379
354
  },
380
- apiCallbacks = {
381
- onSuccess: function (response, $module, xhr) {
382
- module.parse.response.call(element, response, searchTerm);
383
- callback();
384
- if (settings.apiSettings && typeof settings.apiSettings.onSuccess === 'function') {
385
- settings.apiSettings.onSuccess.call(this, response, $module, xhr);
386
- }
387
- },
388
- onFailure: function (response, $module, xhr) {
389
- module.displayMessage(error.serverError);
390
- callback();
391
- if (settings.apiSettings && typeof settings.apiSettings.onFailure === 'function') {
392
- settings.apiSettings.onFailure.call(this, response, $module, xhr);
393
- }
394
- },
395
- onAbort: function (status, $module, xhr) {
396
- if (settings.apiSettings && typeof settings.apiSettings.onAbort === 'function') {
397
- settings.apiSettings.onAbort.call(this, status, $module, xhr);
398
- }
399
- },
400
- onError: function (errorMessage, $module, xhr) {
401
- module.error();
402
- if (settings.apiSettings && typeof settings.apiSettings.onError === 'function') {
403
- settings.apiSettings.onError.call(this, errorMessage, $module, xhr);
404
- }
405
- },
406
- }
407
- ;
355
+ };
356
+ let apiCallbacks = {
357
+ onSuccess: function (response, $module, xhr) {
358
+ module.parse.response.call(element, response, searchTerm);
359
+ callback();
360
+ if (settings.apiSettings && typeof settings.apiSettings.onSuccess === 'function') {
361
+ settings.apiSettings.onSuccess.call(this, response, $module, xhr);
362
+ }
363
+ },
364
+ onFailure: function (response, $module, xhr) {
365
+ module.displayMessage(error.serverError);
366
+ callback();
367
+ if (settings.apiSettings && typeof settings.apiSettings.onFailure === 'function') {
368
+ settings.apiSettings.onFailure.call(this, response, $module, xhr);
369
+ }
370
+ },
371
+ onAbort: function (status, $module, xhr) {
372
+ if (settings.apiSettings && typeof settings.apiSettings.onAbort === 'function') {
373
+ settings.apiSettings.onAbort.call(this, status, $module, xhr);
374
+ }
375
+ },
376
+ onError: function (errorMessage, $module, xhr) {
377
+ module.error();
378
+ if (settings.apiSettings && typeof settings.apiSettings.onError === 'function') {
379
+ settings.apiSettings.onError.call(this, errorMessage, $module, xhr);
380
+ }
381
+ },
382
+ };
408
383
  $.extend(true, apiSettings, settings.apiSettings, apiCallbacks);
409
384
  module.verbose('Setting up API request', apiSettings);
410
385
  $module.api(apiSettings);
@@ -437,10 +412,8 @@
437
412
  if (!event.target) {
438
413
  return;
439
414
  }
440
- var
441
- $target = $(event.target),
442
- isInDOM = $.contains(document.documentElement, event.target)
443
- ;
415
+ let $target = $(event.target);
416
+ let isInDOM = $.contains(document.documentElement, event.target);
444
417
 
445
418
  return isInDOM && $target.closest(selector.message).length > 0;
446
419
  },
@@ -463,14 +436,12 @@
463
436
  }
464
437
  },
465
438
  inputEvent: function () {
466
- var
467
- prompt = $prompt[0],
468
- inputEvent = prompt !== undefined && prompt.oninput !== undefined
469
- ? 'input'
470
- : (prompt !== undefined && prompt.onpropertychange !== undefined
471
- ? 'propertychange'
472
- : 'keyup')
473
- ;
439
+ let prompt = $prompt[0];
440
+ let inputEvent = prompt !== undefined && prompt.oninput !== undefined
441
+ ? 'input'
442
+ : (prompt !== undefined && prompt.onpropertychange !== undefined
443
+ ? 'propertychange'
444
+ : 'keyup');
474
445
 
475
446
  return inputEvent;
476
447
  },
@@ -481,9 +452,7 @@
481
452
  return $module.data(metadata.results);
482
453
  },
483
454
  result: function (value, results) {
484
- var
485
- result = false
486
- ;
455
+ let result = false;
487
456
  value = value !== undefined
488
457
  ? value
489
458
  : module.get.value();
@@ -527,8 +496,7 @@
527
496
  value: function (value) {
528
497
  module.verbose('Setting search input value', value);
529
498
  $prompt
530
- .val(value)
531
- ;
499
+ .val(value);
532
500
  },
533
501
  type: function (type) {
534
502
  type = type || settings.type;
@@ -560,10 +528,8 @@
560
528
  callback = isFunction(callback)
561
529
  ? callback
562
530
  : function () {};
563
- var
564
- searchTerm = module.get.value(),
565
- cache = module.read.cache(searchTerm)
566
- ;
531
+ let searchTerm = module.get.value();
532
+ let cache = module.read.cache(searchTerm);
567
533
  callback = callback || function () {};
568
534
  if (module.has.minimumCharacters()) {
569
535
  if (cache) {
@@ -593,10 +559,8 @@
593
559
 
594
560
  search: {
595
561
  local: function (searchTerm) {
596
- var
597
- results = module.search.object(searchTerm, settings.source),
598
- searchHTML
599
- ;
562
+ let results = module.search.object(searchTerm, settings.source);
563
+ let searchHTML;
600
564
  module.set.loading();
601
565
  module.save.results(results);
602
566
  module.debug('Returned full local search results', results);
@@ -627,30 +591,25 @@
627
591
  }
628
592
  module.setup.api(searchTerm, callback);
629
593
  $module
630
- .api('query')
631
- ;
594
+ .api('query');
632
595
  },
633
596
  object: function (searchTerm, source, searchFields) {
634
597
  searchTerm = module.remove.diacritics(String(searchTerm));
635
- var
636
- results = [],
637
- exactResults = [],
638
- fuzzyResults = [],
639
- searchExp = searchTerm.replace(regExp.escape, '\\$&'),
640
- matchRegExp = new RegExp(regExp.beginsWith + searchExp, settings.ignoreSearchCase ? 'i' : ''),
641
-
642
- // avoid duplicates when pushing results
643
- addResult = function (array, result) {
644
- var
645
- notResult = $.inArray(result, results) === -1,
646
- notFuzzyResult = $.inArray(result, fuzzyResults) === -1,
647
- notExactResults = $.inArray(result, exactResults) === -1
648
- ;
649
- if (notResult && notFuzzyResult && notExactResults) {
650
- array.push(result);
651
- }
598
+ let results = [];
599
+ let exactResults = [];
600
+ let fuzzyResults = [];
601
+ let searchExp = searchTerm.replace(regExp.escape, '\\$&');
602
+ let matchRegExp = new RegExp(regExp.beginsWith + searchExp, settings.ignoreSearchCase ? 'i' : '');
603
+
604
+ // avoid duplicates when pushing results
605
+ let addResult = function (array, result) {
606
+ let notResult = $.inArray(result, results) === -1;
607
+ let notFuzzyResult = $.inArray(result, fuzzyResults) === -1;
608
+ let notExactResults = $.inArray(result, exactResults) === -1;
609
+ if (notResult && notFuzzyResult && notExactResults) {
610
+ array.push(result);
652
611
  }
653
- ;
612
+ };
654
613
  source = source || settings.source;
655
614
  searchFields = searchFields !== undefined
656
615
  ? searchFields
@@ -668,15 +627,13 @@
668
627
  return [];
669
628
  }
670
629
  // iterate through search fields looking for matches
671
- var lastSearchFieldIndex = searchFields.length - 1;
630
+ let lastSearchFieldIndex = searchFields.length - 1;
672
631
  $.each(source, function (label, content) {
673
- var concatenatedContent = [];
632
+ let concatenatedContent = [];
674
633
  $.each(searchFields, function (index, field) {
675
- var
676
- fieldExists = typeof content[field] === 'string' || typeof content[field] === 'number'
677
- ;
634
+ let fieldExists = typeof content[field] === 'string' || typeof content[field] === 'number';
678
635
  if (fieldExists) {
679
- var text;
636
+ let text;
680
637
  text = typeof content[field] === 'string'
681
638
  ? module.remove.diacritics(content[field])
682
639
  : content[field].toString();
@@ -719,11 +676,10 @@
719
676
  return term.indexOf(query) > -1;
720
677
  },
721
678
  wordSearch: function (query, term, matchAll) {
722
- var allWords = query.split(/\s+/),
723
- w,
724
- wL = allWords.length,
725
- found = false
726
- ;
679
+ let allWords = query.split(/\s+/);
680
+ let w;
681
+ let wL = allWords.length;
682
+ let found = false;
727
683
  for (w = 0; w < wL; w++) {
728
684
  found = module.exactSearch(allWords[w], term);
729
685
  if ((!found && matchAll) || (found && !matchAll)) {
@@ -734,10 +690,8 @@
734
690
  return found;
735
691
  },
736
692
  fuzzySearch: function (query, term) {
737
- var
738
- termLength = term.length,
739
- queryLength = query.length
740
- ;
693
+ let termLength = term.length;
694
+ let queryLength = query.length;
741
695
  if (typeof query !== 'string') {
742
696
  return false;
743
697
  }
@@ -751,11 +705,9 @@
751
705
  if (queryLength === termLength) {
752
706
  return query === term;
753
707
  }
754
- for (var characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) {
755
- var
756
- continueSearch = false,
757
- queryCharacter = query.charCodeAt(characterIndex)
758
- ;
708
+ for (let characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) {
709
+ let continueSearch = false;
710
+ let queryCharacter = query.charCodeAt(characterIndex);
759
711
  while (nextCharacterIndex < termLength) {
760
712
  if (term.charCodeAt(nextCharacterIndex++) === queryCharacter) {
761
713
  continueSearch = true;
@@ -775,13 +727,11 @@
775
727
  parse: {
776
728
  response: function (response, searchTerm) {
777
729
  if (Array.isArray(response)) {
778
- var o = {};
730
+ let o = {};
779
731
  o[fields.results] = response;
780
732
  response = o;
781
733
  }
782
- var
783
- searchHTML = module.generateResults(response)
784
- ;
734
+ let searchHTML = module.generateResults(response);
785
735
  module.verbose('Parsing server response', response);
786
736
  if (response !== undefined) {
787
737
  if (searchTerm !== undefined && response[fields.results] !== undefined) {
@@ -807,10 +757,8 @@
807
757
 
808
758
  has: {
809
759
  minimumCharacters: function () {
810
- var
811
- searchTerm = module.get.value(),
812
- numCharacters = searchTerm.length
813
- ;
760
+ let searchTerm = module.get.value();
761
+ let numCharacters = searchTerm.length;
814
762
 
815
763
  return numCharacters >= settings.minCharacters;
816
764
  },
@@ -818,9 +766,7 @@
818
766
  if ($results.length === 0) {
819
767
  return false;
820
768
  }
821
- var
822
- html = $results.html()
823
- ;
769
+ let html = $results.html();
824
770
 
825
771
  return html !== '';
826
772
  },
@@ -828,9 +774,7 @@
828
774
 
829
775
  clear: {
830
776
  cache: function (value) {
831
- var
832
- cache = $module.data(metadata.cache)
833
- ;
777
+ let cache = $module.data(metadata.cache);
834
778
  if (!value) {
835
779
  module.debug('Clearing cache', value);
836
780
  $module.removeData(metadata.cache);
@@ -847,9 +791,7 @@
847
791
 
848
792
  read: {
849
793
  cache: function (name) {
850
- var
851
- cache = $module.data(metadata.cache)
852
- ;
794
+ let cache = $module.data(metadata.cache);
853
795
  if (settings.cache) {
854
796
  module.verbose('Checking cache for generated html for query', name);
855
797
 
@@ -864,9 +806,7 @@
864
806
 
865
807
  create: {
866
808
  categoryResults: function (results) {
867
- var
868
- categoryResults = {}
869
- ;
809
+ let categoryResults = {};
870
810
  $.each(results, function (index, result) {
871
811
  if (!result.category) {
872
812
  return;
@@ -885,11 +825,9 @@
885
825
  return categoryResults;
886
826
  },
887
827
  id: function (resultIndex, categoryIndex) {
888
- var
889
- resultID = resultIndex + 1, // not zero indexed
890
- letterID,
891
- id
892
- ;
828
+ let resultID = resultIndex + 1; // not zero indexed
829
+ let letterID;
830
+ let id;
893
831
  if (categoryIndex !== undefined) {
894
832
  // start char code for "A"
895
833
  letterID = String.fromCharCode(97 + categoryIndex);
@@ -906,8 +844,7 @@
906
844
  if ($results.length === 0) {
907
845
  $results = $('<div />')
908
846
  .addClass(className.results)
909
- .appendTo($module)
910
- ;
847
+ .appendTo($module);
911
848
  }
912
849
  },
913
850
  },
@@ -915,29 +852,24 @@
915
852
  inject: {
916
853
  result: function (result, resultIndex, categoryIndex) {
917
854
  module.verbose('Injecting result into results');
918
- var
919
- $selectedResult = categoryIndex !== undefined
920
- ? $results
921
- .children().eq(categoryIndex)
922
- .children(selector.results)
923
- .first()
924
- .children(selector.result)
925
- .eq(resultIndex)
926
- : $results
927
- .children(selector.result).eq(resultIndex)
928
- ;
855
+ let $selectedResult = categoryIndex !== undefined
856
+ ? $results
857
+ .children().eq(categoryIndex)
858
+ .children(selector.results)
859
+ .first()
860
+ .children(selector.result)
861
+ .eq(resultIndex)
862
+ : $results
863
+ .children(selector.result).eq(resultIndex);
929
864
  module.verbose('Injecting results metadata', $selectedResult);
930
865
  $selectedResult
931
- .data(metadata.result, result)
932
- ;
866
+ .data(metadata.result, result);
933
867
  },
934
868
  id: function (results) {
935
869
  module.debug('Injecting unique ids into results');
936
- var
937
- // since results may be an object, we must use counters
938
- categoryIndex = 0,
939
- resultIndex = 0
940
- ;
870
+ // since results may be an object, we must use counters
871
+ let categoryIndex = 0;
872
+ let resultIndex = 0;
941
873
  if (settings.type === 'category') {
942
874
  // iterate through each category result
943
875
  $.each(results, function (index, category) {
@@ -977,17 +909,14 @@
977
909
 
978
910
  write: {
979
911
  cache: function (name, value) {
980
- var
981
- cache = $module.data(metadata.cache) !== undefined
982
- ? $module.data(metadata.cache)
983
- : {}
984
- ;
912
+ let cache = $module.data(metadata.cache) !== undefined
913
+ ? $module.data(metadata.cache)
914
+ : {};
985
915
  if (settings.cache) {
986
916
  module.verbose('Writing generated html to cache', name, value);
987
917
  cache[name] = value;
988
918
  $module
989
- .data(metadata.cache, cache)
990
- ;
919
+ .data(metadata.cache, cache);
991
920
  }
992
921
  },
993
922
  },
@@ -1002,8 +931,7 @@
1002
931
  }
1003
932
  if (html) {
1004
933
  $results
1005
- .html(html)
1006
- ;
934
+ .html(html);
1007
935
  module.refreshResults();
1008
936
  if (settings.selectFirstResult) {
1009
937
  module.select.firstResult();
@@ -1034,21 +962,19 @@
1034
962
  silent: settings.silent,
1035
963
  duration: settings.duration,
1036
964
  onShow: function () {
1037
- var $firstResult = $module.find(selector.result).eq(0);
965
+ let $firstResult = $module.find(selector.result).eq(0);
1038
966
  module.ensureVisible($firstResult);
1039
967
  },
1040
968
  onComplete: function () {
1041
969
  callback();
1042
970
  },
1043
971
  queue: true,
1044
- })
1045
- ;
972
+ });
1046
973
  } else {
1047
974
  module.debug('Showing results with javascript');
1048
975
  $results
1049
976
  .stop()
1050
- .fadeIn(settings.duration, settings.easing)
1051
- ;
977
+ .fadeIn(settings.duration, settings.easing);
1052
978
  }
1053
979
  settings.onResultsOpen.call($results);
1054
980
  }
@@ -1071,14 +997,12 @@
1071
997
  callback();
1072
998
  },
1073
999
  queue: true,
1074
- })
1075
- ;
1000
+ });
1076
1001
  } else {
1077
1002
  module.debug('Hiding results with javascript');
1078
1003
  $results
1079
1004
  .stop()
1080
- .fadeOut(settings.duration, settings.easing)
1081
- ;
1005
+ .fadeOut(settings.duration, settings.easing);
1082
1006
  }
1083
1007
  settings.onResultsClose.call($results);
1084
1008
  }
@@ -1086,12 +1010,10 @@
1086
1010
 
1087
1011
  generateResults: function (response) {
1088
1012
  module.debug('Generating html from response', response);
1089
- var
1090
- template = settings.templates[settings.type],
1091
- isProperObject = $.isPlainObject(response[fields.results]) && !$.isEmptyObject(response[fields.results]),
1092
- isProperArray = Array.isArray(response[fields.results]) && response[fields.results].length > 0,
1093
- html = ''
1094
- ;
1013
+ let template = settings.templates[settings.type];
1014
+ let isProperObject = $.isPlainObject(response[fields.results]) && !$.isEmptyObject(response[fields.results]);
1015
+ let isProperArray = Array.isArray(response[fields.results]) && response[fields.results].length > 0;
1016
+ let html = '';
1095
1017
  if (isProperObject || isProperArray) {
1096
1018
  if (settings.maxResults > 0) {
1097
1019
  if (isProperObject) {
@@ -1103,27 +1025,24 @@
1103
1025
  }
1104
1026
  }
1105
1027
  if (settings.highlightMatches) {
1106
- var results = response[fields.results],
1107
- regExpIgnore = settings.ignoreSearchCase ? 'i' : '',
1108
- querySplit = module.get.value().split(''),
1109
- diacriticReg = settings.ignoreDiacritics ? '[\u0300-\u036F]?' : '',
1110
- htmlReg = '(?![^<]*>)',
1111
- markedRegExp = new RegExp(htmlReg + '(' + querySplit.join(diacriticReg + ')(.*?)' + htmlReg + '(') + diacriticReg + ')', regExpIgnore),
1112
- markedReplacer = function () {
1113
- var args = [].slice.call(arguments, 1, querySplit.length * 2).map(function (x, i) {
1114
- return i & 1 ? x : '<mark>' + x + '</mark>'; // eslint-disable-line no-bitwise
1115
- });
1028
+ let results = response[fields.results];
1029
+ let regExpIgnore = settings.ignoreSearchCase ? 'i' : '';
1030
+ let querySplit = module.get.value().split('');
1031
+ let diacriticReg = settings.ignoreDiacritics ? '[\u0300-\u036F]?' : '';
1032
+ let htmlReg = '(?![^<]*>)';
1033
+ let markedRegExp = new RegExp(htmlReg + '(' + querySplit.join(diacriticReg + ')(.*?)' + htmlReg + '(') + diacriticReg + ')', regExpIgnore);
1034
+ let markedReplacer = function () {
1035
+ let args = [].slice.call(arguments, 1, querySplit.length * 2).map(function (x, i) {
1036
+ return i & 1 ? x : '<mark>' + x + '</mark>'; // eslint-disable-line no-bitwise
1037
+ });
1116
1038
 
1117
- return args.join('');
1118
- }
1119
- ;
1039
+ return args.join('');
1040
+ };
1120
1041
  $.each(results, function (label, content) {
1121
1042
  $.each(settings.searchFields, function (index, field) {
1122
- var
1123
- fieldExists = typeof content[field] === 'string' || typeof content[field] === 'number'
1124
- ;
1043
+ let fieldExists = typeof content[field] === 'string' || typeof content[field] === 'number';
1125
1044
  if (fieldExists) {
1126
- var markedHTML = typeof content[field] === 'string'
1045
+ let markedHTML = typeof content[field] === 'string'
1127
1046
  ? content[field]
1128
1047
  : content[field].toString();
1129
1048
  if (settings.ignoreDiacritics) {
@@ -1202,11 +1121,9 @@
1202
1121
  },
1203
1122
  performance: {
1204
1123
  log: function (message) {
1205
- var
1206
- currentTime,
1207
- executionTime,
1208
- previousTime
1209
- ;
1124
+ let currentTime;
1125
+ let executionTime;
1126
+ let previousTime;
1210
1127
  if (settings.performance) {
1211
1128
  currentTime = Date.now();
1212
1129
  previousTime = time || currentTime;
@@ -1225,10 +1142,8 @@
1225
1142
  }, 500);
1226
1143
  },
1227
1144
  display: function () {
1228
- var
1229
- title = settings.name + ':',
1230
- totalTime = 0
1231
- ;
1145
+ let title = settings.name + ':';
1146
+ let totalTime = 0;
1232
1147
  time = false;
1233
1148
  clearTimeout(module.performance.timer);
1234
1149
  $.each(performance, function (index, data) {
@@ -1253,22 +1168,19 @@
1253
1168
  },
1254
1169
  },
1255
1170
  invoke: function (query, passedArguments, context) {
1256
- var
1257
- object = instance,
1258
- maxDepth,
1259
- found,
1260
- response
1261
- ;
1171
+ let object = instance;
1172
+ let maxDepth;
1173
+ let found;
1174
+ let response;
1262
1175
  passedArguments = passedArguments || queryArguments;
1263
1176
  context = context || element;
1264
1177
  if (typeof query === 'string' && object !== undefined) {
1265
1178
  query = query.split(/[ .]/);
1266
1179
  maxDepth = query.length - 1;
1267
1180
  $.each(query, function (depth, value) {
1268
- var camelCaseValue = depth !== maxDepth
1181
+ let camelCaseValue = depth !== maxDepth
1269
1182
  ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
1270
- : query
1271
- ;
1183
+ : query;
1272
1184
  if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
1273
1185
  object = object[camelCaseValue];
1274
1186
  } else if (object[camelCaseValue] !== undefined) {
@@ -1475,32 +1387,25 @@
1475
1387
  if (settings !== undefined && settings.preserveHTML) {
1476
1388
  return string;
1477
1389
  }
1478
- var
1479
- badChars = /["'<>]/g,
1480
- shouldEscape = /["&'<>]/,
1481
- escape = {
1482
- '<': '&lt;',
1483
- '>': '&gt;',
1484
- '"': '&quot;',
1485
- "'": '&apos;',
1486
- },
1487
- escapedChar = function (chr) {
1488
- return escape[chr];
1489
- }
1490
- ;
1491
- if (shouldEscape.test(string)) {
1492
- string = string.replace(/&(?![\d#a-z]{1,12};)/gi, '&amp;');
1493
- string = string.replace(badChars, escapedChar);
1494
- // FUI controlled HTML is still allowed
1495
- string = string.replace(/&lt;(\/)*mark&gt;/g, '<$1mark>');
1496
- }
1390
+
1391
+ const badChars = /["'<>]|&(?![\d#A-Za-z]{1,12};)/g;
1392
+ const escape = {
1393
+ '"': '&quot;',
1394
+ '&': '&amp;',
1395
+ "'": '&apos;',
1396
+ '<': '&lt;',
1397
+ '>': '&gt;',
1398
+ };
1399
+
1400
+ string = string.replace(badChars, (chr) => escape[chr]);
1401
+
1402
+ // FUI controlled HTML is still allowed
1403
+ string = string.replace(/&lt;(\/)*mark&gt;/g, '<$1mark>');
1497
1404
 
1498
1405
  return string;
1499
1406
  },
1500
1407
  message: function (message, type, header) {
1501
- var
1502
- html = ''
1503
- ;
1408
+ let html = '';
1504
1409
  if (message !== undefined && type !== undefined) {
1505
1410
  html += ''
1506
1411
  + '<div class="message ' + type + '">';
@@ -1515,11 +1420,9 @@
1515
1420
  return html;
1516
1421
  },
1517
1422
  category: function (response, settings) {
1518
- var
1519
- html = '',
1520
- fields = settings.fields,
1521
- escape = settings.templates.escape
1522
- ;
1423
+ let html = '';
1424
+ let fields = settings.fields;
1425
+ let escape = settings.templates.escape;
1523
1426
  if (response[fields.categoryResults] !== undefined) {
1524
1427
  // each category
1525
1428
  $.each(response[fields.categoryResults], function (index, category) {
@@ -1579,11 +1482,9 @@
1579
1482
  return false;
1580
1483
  },
1581
1484
  standard: function (response, settings) {
1582
- var
1583
- html = '',
1584
- fields = settings.fields,
1585
- escape = settings.templates.escape
1586
- ;
1485
+ let html = '';
1486
+ let fields = settings.fields;
1487
+ let escape = settings.templates.escape;
1587
1488
  if (response[fields.results] !== undefined) {
1588
1489
  // each result
1589
1490
  $.each(response[fields.results], function (index, result) {