fomantic-ui 2.9.1-beta.23 → 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 (216) hide show
  1. package/.eslint/eqeqeq-rule.js +18 -0
  2. package/.eslint/index.js +26 -0
  3. package/.eslint/no-extra-parens-rule.js +17 -0
  4. package/.eslint/package.json +11 -0
  5. package/.eslintrc.js +7 -13
  6. package/dist/components/accordion.css +1 -1
  7. package/dist/components/accordion.js +24 -24
  8. package/dist/components/accordion.min.css +1 -1
  9. package/dist/components/accordion.min.js +2 -2
  10. package/dist/components/ad.css +1 -1
  11. package/dist/components/ad.min.css +1 -1
  12. package/dist/components/api.js +58 -58
  13. package/dist/components/api.min.js +2 -2
  14. package/dist/components/breadcrumb.css +1 -1
  15. package/dist/components/breadcrumb.min.css +1 -1
  16. package/dist/components/button.css +1 -1
  17. package/dist/components/button.min.css +1 -1
  18. package/dist/components/calendar.css +1 -1
  19. package/dist/components/calendar.js +84 -72
  20. package/dist/components/calendar.min.css +1 -1
  21. package/dist/components/calendar.min.js +2 -2
  22. package/dist/components/card.css +1 -1
  23. package/dist/components/card.min.css +1 -1
  24. package/dist/components/checkbox.css +1 -1
  25. package/dist/components/checkbox.js +17 -17
  26. package/dist/components/checkbox.min.css +1 -1
  27. package/dist/components/checkbox.min.js +2 -2
  28. package/dist/components/comment.css +1 -1
  29. package/dist/components/comment.min.css +1 -1
  30. package/dist/components/container.css +1 -1
  31. package/dist/components/container.min.css +1 -1
  32. package/dist/components/dimmer.css +1 -1
  33. package/dist/components/dimmer.js +18 -18
  34. package/dist/components/dimmer.min.css +1 -1
  35. package/dist/components/dimmer.min.js +2 -2
  36. package/dist/components/divider.css +1 -1
  37. package/dist/components/divider.min.css +1 -1
  38. package/dist/components/dropdown.css +1 -1
  39. package/dist/components/dropdown.js +264 -254
  40. package/dist/components/dropdown.min.css +1 -1
  41. package/dist/components/dropdown.min.js +2 -2
  42. package/dist/components/embed.css +1 -1
  43. package/dist/components/embed.js +19 -19
  44. package/dist/components/embed.min.css +1 -1
  45. package/dist/components/embed.min.js +2 -2
  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 +29 -25
  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 +158 -141
  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/message.css +1 -1
  77. package/dist/components/message.min.css +1 -1
  78. package/dist/components/modal.css +1 -1
  79. package/dist/components/modal.js +32 -28
  80. package/dist/components/modal.min.css +1 -1
  81. package/dist/components/modal.min.js +2 -2
  82. package/dist/components/nag.css +1 -1
  83. package/dist/components/nag.js +10 -10
  84. package/dist/components/nag.min.css +1 -1
  85. package/dist/components/nag.min.js +2 -2
  86. package/dist/components/placeholder.css +1 -1
  87. package/dist/components/placeholder.min.css +1 -1
  88. package/dist/components/popup.css +1 -1
  89. package/dist/components/popup.js +79 -71
  90. package/dist/components/popup.min.css +1 -1
  91. package/dist/components/popup.min.js +2 -2
  92. package/dist/components/progress.css +1 -1
  93. package/dist/components/progress.js +40 -42
  94. package/dist/components/progress.min.css +1 -1
  95. package/dist/components/progress.min.js +2 -2
  96. package/dist/components/rail.css +1 -1
  97. package/dist/components/rail.min.css +1 -1
  98. package/dist/components/rating.css +1 -1
  99. package/dist/components/rating.js +13 -13
  100. package/dist/components/rating.min.css +1 -1
  101. package/dist/components/rating.min.js +2 -2
  102. package/dist/components/reset.css +1 -1
  103. package/dist/components/reset.min.css +1 -1
  104. package/dist/components/reveal.css +1 -1
  105. package/dist/components/reveal.min.css +1 -1
  106. package/dist/components/search.css +1 -1
  107. package/dist/components/search.js +42 -42
  108. package/dist/components/search.min.css +1 -1
  109. package/dist/components/search.min.js +2 -2
  110. package/dist/components/segment.css +1 -1
  111. package/dist/components/segment.min.css +1 -1
  112. package/dist/components/shape.css +1 -1
  113. package/dist/components/shape.js +36 -36
  114. package/dist/components/shape.min.css +1 -1
  115. package/dist/components/shape.min.js +2 -2
  116. package/dist/components/sidebar.css +1 -1
  117. package/dist/components/sidebar.js +29 -29
  118. package/dist/components/sidebar.min.css +1 -1
  119. package/dist/components/sidebar.min.js +2 -2
  120. package/dist/components/site.css +1 -1
  121. package/dist/components/site.js +16 -16
  122. package/dist/components/site.min.css +1 -1
  123. package/dist/components/site.min.js +2 -2
  124. package/dist/components/slider.js +79 -58
  125. package/dist/components/slider.min.js +2 -2
  126. package/dist/components/state.js +14 -14
  127. package/dist/components/state.min.js +2 -2
  128. package/dist/components/statistic.css +1 -1
  129. package/dist/components/statistic.min.css +1 -1
  130. package/dist/components/step.css +1 -1
  131. package/dist/components/step.min.css +1 -1
  132. package/dist/components/sticky.css +1 -1
  133. package/dist/components/sticky.js +25 -25
  134. package/dist/components/sticky.min.css +1 -1
  135. package/dist/components/sticky.min.js +2 -2
  136. package/dist/components/tab.css +1 -1
  137. package/dist/components/tab.js +34 -34
  138. package/dist/components/tab.min.css +1 -1
  139. package/dist/components/tab.min.js +2 -2
  140. package/dist/components/table.css +1 -1
  141. package/dist/components/table.min.css +1 -1
  142. package/dist/components/text.css +1 -1
  143. package/dist/components/text.min.css +1 -1
  144. package/dist/components/toast.css +1 -1
  145. package/dist/components/toast.js +43 -19
  146. package/dist/components/toast.min.css +1 -1
  147. package/dist/components/toast.min.js +2 -2
  148. package/dist/components/transition.css +1 -1
  149. package/dist/components/transition.js +26 -26
  150. package/dist/components/transition.min.css +1 -1
  151. package/dist/components/transition.min.js +2 -2
  152. package/dist/components/visibility.js +29 -29
  153. package/dist/components/visibility.min.js +2 -2
  154. package/dist/semantic.css +50 -50
  155. package/dist/semantic.js +1218 -1120
  156. package/dist/semantic.min.css +1 -1
  157. package/dist/semantic.min.js +2 -2
  158. package/gulpfile.js +1 -1
  159. package/package.json +2 -1
  160. package/scripts/nightly-version.js +3 -1
  161. package/src/definitions/behaviors/api.js +57 -57
  162. package/src/definitions/behaviors/form.js +157 -140
  163. package/src/definitions/behaviors/state.js +13 -13
  164. package/src/definitions/behaviors/visibility.js +28 -28
  165. package/src/definitions/globals/site.js +15 -15
  166. package/src/definitions/modules/accordion.js +23 -23
  167. package/src/definitions/modules/calendar.js +83 -71
  168. package/src/definitions/modules/checkbox.js +16 -16
  169. package/src/definitions/modules/dimmer.js +17 -17
  170. package/src/definitions/modules/dropdown.js +263 -253
  171. package/src/definitions/modules/embed.js +18 -18
  172. package/src/definitions/modules/flyout.js +28 -24
  173. package/src/definitions/modules/modal.js +31 -27
  174. package/src/definitions/modules/nag.js +9 -9
  175. package/src/definitions/modules/popup.js +78 -70
  176. package/src/definitions/modules/progress.js +39 -41
  177. package/src/definitions/modules/rating.js +12 -12
  178. package/src/definitions/modules/search.js +41 -41
  179. package/src/definitions/modules/shape.js +35 -35
  180. package/src/definitions/modules/sidebar.js +28 -28
  181. package/src/definitions/modules/slider.js +78 -57
  182. package/src/definitions/modules/sticky.js +24 -24
  183. package/src/definitions/modules/tab.js +33 -33
  184. package/src/definitions/modules/toast.js +42 -18
  185. package/src/definitions/modules/transition.js +25 -25
  186. package/tasks/admin/components/create.js +1 -1
  187. package/tasks/admin/components/init.js +2 -2
  188. package/tasks/admin/components/update.js +4 -4
  189. package/tasks/admin/distributions/create.js +6 -7
  190. package/tasks/admin/distributions/init.js +2 -2
  191. package/tasks/admin/distributions/update.js +4 -4
  192. package/tasks/admin/publish.js +1 -3
  193. package/tasks/admin/register.js +5 -5
  194. package/tasks/admin/release.js +1 -3
  195. package/tasks/build/assets.js +1 -1
  196. package/tasks/build.js +1 -1
  197. package/tasks/check-install.js +1 -1
  198. package/tasks/clean.js +1 -1
  199. package/tasks/collections/admin.js +1 -1
  200. package/tasks/collections/rtl.js +1 -1
  201. package/tasks/config/admin/github.js +3 -4
  202. package/tasks/config/npm/gulpfile.js +1 -1
  203. package/tasks/config/project/config.js +10 -8
  204. package/tasks/config/project/install.js +14 -14
  205. package/tasks/config/project/release.js +3 -2
  206. package/tasks/config/tasks.js +4 -4
  207. package/tasks/config/user.js +5 -3
  208. package/tasks/docs/build.js +1 -1
  209. package/tasks/docs/metadata.js +2 -2
  210. package/tasks/docs/serve.js +2 -1
  211. package/tasks/install.js +3 -3
  212. package/tasks/rtl/build.js +1 -3
  213. package/tasks/rtl/watch.js +1 -3
  214. package/tasks/version.js +1 -3
  215. package/tasks/watch.js +1 -1
  216. package/test/modules/module.spec.js +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.23+27384cb - API
2
+ * # Fomantic-UI 2.9.1-beta.25+bbe4e58 - API
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -12,14 +12,14 @@
12
12
  'use strict';
13
13
 
14
14
  function isWindow(obj) {
15
- return obj != null && obj === obj.window;
15
+ return obj !== null && obj === obj.window;
16
16
  }
17
17
 
18
18
  function isFunction(obj) {
19
19
  return typeof obj === 'function' && typeof obj.nodeType !== 'number';
20
20
  }
21
21
 
22
- window = (window !== undefined && window.Math === Math)
22
+ window = window !== undefined && window.Math === Math
23
23
  ? window
24
24
  : globalThis;
25
25
 
@@ -34,7 +34,7 @@
34
34
  performance = [],
35
35
 
36
36
  query = arguments[0],
37
- methodInvoked = (typeof query === 'string'),
37
+ methodInvoked = typeof query === 'string',
38
38
  queryArguments = [].slice.call(arguments, 1),
39
39
 
40
40
  returnedValue
@@ -42,7 +42,7 @@
42
42
 
43
43
  $allModules.each(function () {
44
44
  var
45
- settings = ($.isPlainObject(parameters))
45
+ settings = $.isPlainObject(parameters)
46
46
  ? $.extend(true, {}, $.fn.api.settings, parameters)
47
47
  : $.extend({}, $.fn.api.settings),
48
48
 
@@ -62,7 +62,7 @@
62
62
  $form = $module.closest(selector.form),
63
63
 
64
64
  // context used for state
65
- $context = (settings.stateContext)
65
+ $context = settings.stateContext
66
66
  ? ([window, document].indexOf(settings.stateContext) < 0 ? $(document).find(settings.stateContext) : $(settings.stateContext))
67
67
  : $module,
68
68
 
@@ -117,7 +117,7 @@
117
117
  $module
118
118
  .on(triggerEvent + eventNamespace, module.event.trigger)
119
119
  ;
120
- } else if (settings.on == 'now') {
120
+ } else if (settings.on === 'now') {
121
121
  module.debug('Querying API endpoint immediately');
122
122
  module.query();
123
123
  }
@@ -274,13 +274,13 @@
274
274
 
275
275
  should: {
276
276
  removeError: function () {
277
- return (settings.hideError === true || (settings.hideError === 'auto' && !module.is.form()));
277
+ return settings.hideError === true || (settings.hideError === 'auto' && !module.is.form());
278
278
  },
279
279
  },
280
280
 
281
281
  is: {
282
282
  disabled: function () {
283
- return ($module.filter(selector.disabled).length > 0);
283
+ return $module.filter(selector.disabled).length > 0;
284
284
  },
285
285
  expectingJSON: function () {
286
286
  return settings.dataType === 'json' || settings.dataType === 'jsonp';
@@ -289,14 +289,14 @@
289
289
  return $module.is('form') || $context.is('form');
290
290
  },
291
291
  mocked: function () {
292
- return (settings.mockResponse || settings.mockResponseAsync || settings.response || settings.responseAsync);
292
+ return settings.mockResponse || settings.mockResponseAsync || settings.response || settings.responseAsync;
293
293
  },
294
294
  input: function () {
295
295
  return $module.is('input');
296
296
  },
297
297
  loading: function () {
298
- return (module.request)
299
- ? (module.request.state() == 'pending')
298
+ return module.request
299
+ ? module.request.state() === 'pending'
300
300
  : false;
301
301
  },
302
302
  abortedRequest: function (xhr) {
@@ -311,7 +311,7 @@
311
311
  return false;
312
312
  },
313
313
  validResponse: function (response) {
314
- if ((!module.is.expectingJSON()) || !isFunction(settings.successTest)) {
314
+ if (!module.is.expectingJSON() || !isFunction(settings.successTest)) {
315
315
  module.verbose('Response is not JSON, skipping validation', settings.successTest, response);
316
316
 
317
317
  return true;
@@ -331,16 +331,16 @@
331
331
 
332
332
  was: {
333
333
  cancelled: function () {
334
- return (module.cancelled || false);
334
+ return module.cancelled || false;
335
335
  },
336
336
  successful: function () {
337
- return (module.request && module.request.state() == 'resolved');
337
+ return module.request && module.request.state() === 'resolved';
338
338
  },
339
339
  failure: function () {
340
- return (module.request && module.request.state() == 'rejected');
340
+ return module.request && module.request.state() === 'rejected';
341
341
  },
342
342
  complete: function () {
343
- return (module.request && (module.request.state() == 'resolved' || module.request.state() == 'rejected'));
343
+ return module.request && (module.request.state() === 'resolved' || module.request.state() === 'rejected');
344
344
  },
345
345
  },
346
346
 
@@ -359,16 +359,16 @@
359
359
  $.each(requiredVariables, function (index, templatedString) {
360
360
  var
361
361
  // allow legacy {$var} style
362
- variable = (templatedString.indexOf('$') !== -1)
362
+ variable = templatedString.indexOf('$') !== -1
363
363
  ? templatedString.slice(2, -1)
364
364
  : templatedString.slice(1, -1),
365
- value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
365
+ value = $.isPlainObject(urlData) && urlData[variable] !== undefined
366
366
  ? urlData[variable]
367
- : ($module.data(variable) !== undefined)
367
+ : ($module.data(variable) !== undefined
368
368
  ? $module.data(variable)
369
- : ($context.data(variable) !== undefined)
369
+ : ($context.data(variable) !== undefined // eslint-disable-line unicorn/no-nested-ternary
370
370
  ? $context.data(variable)
371
- : urlData[variable]
371
+ : urlData[variable]))
372
372
  ;
373
373
  // remove value
374
374
  if (value === undefined) {
@@ -379,7 +379,7 @@
379
379
  }
380
380
 
381
381
  module.verbose('Found required variable', variable, value);
382
- value = (settings.encodeParameters)
382
+ value = settings.encodeParameters
383
383
  ? module.get.urlEncodedValue(value)
384
384
  : value;
385
385
  url = url.replace(templatedString, value);
@@ -390,16 +390,16 @@
390
390
  $.each(optionalVariables, function (index, templatedString) {
391
391
  var
392
392
  // allow legacy {/$var} style
393
- variable = (templatedString.indexOf('$') !== -1)
393
+ variable = templatedString.indexOf('$') !== -1
394
394
  ? templatedString.slice(3, -1)
395
395
  : templatedString.slice(2, -1),
396
- value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)
396
+ value = $.isPlainObject(urlData) && urlData[variable] !== undefined
397
397
  ? urlData[variable]
398
- : ($module.data(variable) !== undefined)
398
+ : ($module.data(variable) !== undefined
399
399
  ? $module.data(variable)
400
- : ($context.data(variable) !== undefined)
400
+ : ($context.data(variable) !== undefined // eslint-disable-line unicorn/no-nested-ternary
401
401
  ? $context.data(variable)
402
- : urlData[variable]
402
+ : urlData[variable]))
403
403
  ;
404
404
  // optional replacement
405
405
  if (value !== undefined) {
@@ -478,7 +478,7 @@
478
478
  while (nameKeys.length > 0) {
479
479
  var k = nameKeys.pop();
480
480
 
481
- if (k == '' && !Array.isArray(value)) { // foo[]
481
+ if (k === '' && !Array.isArray(value)) { // foo[]
482
482
  value = build([], pushes[pushKey]++, value);
483
483
  } else if (settings.regExp.fixed.test(k)) { // foo[n]
484
484
  value = build([], k, value);
@@ -525,7 +525,7 @@
525
525
  event: {
526
526
  trigger: function (event) {
527
527
  module.query();
528
- if (event.type == 'submit' || event.type == 'click') {
528
+ if (event.type === 'submit' || event.type === 'click') {
529
529
  event.preventDefault();
530
530
  }
531
531
  },
@@ -536,15 +536,15 @@
536
536
  done: function (response, textStatus, xhr) {
537
537
  var
538
538
  context = this,
539
- elapsedTime = (Date.now() - requestStartTime),
540
- timeLeft = (settings.loadingDuration - elapsedTime),
541
- translatedResponse = (isFunction(settings.onResponse))
542
- ? module.is.expectingJSON() && !settings.rawResponse
539
+ elapsedTime = Date.now() - requestStartTime,
540
+ timeLeft = settings.loadingDuration - elapsedTime,
541
+ translatedResponse = isFunction(settings.onResponse)
542
+ ? (module.is.expectingJSON() && !settings.rawResponse
543
543
  ? settings.onResponse.call(context, $.extend(true, {}, response))
544
- : settings.onResponse.call(context, response)
544
+ : settings.onResponse.call(context, response))
545
545
  : false
546
546
  ;
547
- timeLeft = (timeLeft > 0)
547
+ timeLeft = timeLeft > 0
548
548
  ? timeLeft
549
549
  : 0;
550
550
  if (translatedResponse) {
@@ -565,10 +565,10 @@
565
565
  fail: function (xhr, status, httpMessage) {
566
566
  var
567
567
  context = this,
568
- elapsedTime = (Date.now() - requestStartTime),
569
- timeLeft = (settings.loadingDuration - elapsedTime)
568
+ elapsedTime = Date.now() - requestStartTime,
569
+ timeLeft = settings.loadingDuration - elapsedTime
570
570
  ;
571
- timeLeft = (timeLeft > 0)
571
+ timeLeft = timeLeft > 0
572
572
  ? timeLeft
573
573
  : 0;
574
574
  if (timeLeft > 0) {
@@ -614,15 +614,15 @@
614
614
  response = module.get.responseFromXHR(xhr),
615
615
  errorMessage = module.get.errorFromRequest(response, status, httpMessage)
616
616
  ;
617
- if (status == 'aborted') {
617
+ if (status === 'aborted') {
618
618
  module.debug('XHR Aborted (Most likely caused by page navigation or CORS Policy)', status, httpMessage);
619
619
  settings.onAbort.call(context, status, $module, xhr);
620
620
 
621
621
  return true;
622
622
  }
623
- if (status == 'invalid') {
623
+ if (status === 'invalid') {
624
624
  module.debug('JSON did not pass success test. A server-side error has most likely occurred', response);
625
- } else if (status == 'error') {
625
+ } else if (status === 'error') {
626
626
  if (xhr !== undefined) {
627
627
  module.debug('XHR produced a server error', status, httpMessage);
628
628
  // make sure we have an error to display to console
@@ -748,17 +748,17 @@
748
748
  },
749
749
  responseFromXHR: function (xhr) {
750
750
  return $.isPlainObject(xhr)
751
- ? (module.is.expectingJSON())
751
+ ? (module.is.expectingJSON()
752
752
  ? module.decode.json(xhr.responseText)
753
- : xhr.responseText
753
+ : xhr.responseText)
754
754
  : false;
755
755
  },
756
756
  errorFromRequest: function (response, status, httpMessage) {
757
- return ($.isPlainObject(response) && response.error !== undefined)
757
+ return $.isPlainObject(response) && response.error !== undefined
758
758
  ? response.error // use json error message
759
- : (settings.error[status] !== undefined) // use server error message
759
+ : (settings.error[status] !== undefined // use server error message
760
760
  ? settings.error[status]
761
- : httpMessage;
761
+ : httpMessage);
762
762
  },
763
763
  request: function () {
764
764
  return module.request || false;
@@ -795,7 +795,7 @@
795
795
  return runSettings;
796
796
  }
797
797
 
798
- return (runSettings !== undefined)
798
+ return runSettings !== undefined
799
799
  ? $.extend(true, {}, runSettings)
800
800
  : $.extend(true, {}, settings);
801
801
  },
@@ -803,7 +803,7 @@
803
803
  var
804
804
  decodedValue = window.decodeURIComponent(value),
805
805
  encodedValue = window.encodeURIComponent(value),
806
- alreadyEncoded = (decodedValue !== value)
806
+ alreadyEncoded = decodedValue !== value
807
807
  ;
808
808
  if (alreadyEncoded) {
809
809
  module.debug('URL value is already encoded, avoiding double encoding', value);
@@ -829,18 +829,18 @@
829
829
  return data;
830
830
  },
831
831
  event: function () {
832
- if (isWindow(element) || settings.on == 'now') {
832
+ if (isWindow(element) || settings.on === 'now') {
833
833
  module.debug('API called without element, no events attached');
834
834
 
835
835
  return false;
836
836
  }
837
- if (settings.on == 'auto') {
837
+ if (settings.on === 'auto') {
838
838
  if ($module.is('input')) {
839
- return (element.oninput !== undefined)
839
+ return element.oninput !== undefined
840
840
  ? 'input'
841
- : (element.onpropertychange !== undefined)
841
+ : (element.onpropertychange !== undefined
842
842
  ? 'propertychange'
843
- : 'keyup';
843
+ : 'keyup');
844
844
  }
845
845
  if ($module.is('form')) {
846
846
  return 'submit';
@@ -1004,17 +1004,17 @@
1004
1004
  query = query.split(/[ .]/);
1005
1005
  maxDepth = query.length - 1;
1006
1006
  $.each(query, function (depth, value) {
1007
- var camelCaseValue = (depth != maxDepth)
1007
+ var camelCaseValue = depth !== maxDepth
1008
1008
  ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
1009
1009
  : query
1010
1010
  ;
1011
- if ($.isPlainObject(object[camelCaseValue]) && (depth != maxDepth)) {
1011
+ if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
1012
1012
  object = object[camelCaseValue];
1013
1013
  } else if (object[camelCaseValue] !== undefined) {
1014
1014
  found = object[camelCaseValue];
1015
1015
 
1016
1016
  return false;
1017
- } else if ($.isPlainObject(object[value]) && (depth != maxDepth)) {
1017
+ } else if ($.isPlainObject(object[value]) && (depth !== maxDepth)) {
1018
1018
  object = object[value];
1019
1019
  } else if (object[value] !== undefined) {
1020
1020
  found = object[value];
@@ -1057,7 +1057,7 @@
1057
1057
  }
1058
1058
  });
1059
1059
 
1060
- return (returnedValue !== undefined)
1060
+ return returnedValue !== undefined
1061
1061
  ? returnedValue
1062
1062
  : this;
1063
1063
  };
@@ -1,5 +1,5 @@
1
1
  /*
2
- * # Fomantic UI - 2.9.1-beta.23+27384cb
2
+ * # Fomantic UI - 2.9.1-beta.25+bbe4e58
3
3
  * https://github.com/fomantic/Fomantic-UI
4
4
  * https://fomantic-ui.com/
5
5
  *
@@ -8,4 +8,4 @@
8
8
  * https://opensource.org/licenses/MIT
9
9
  *
10
10
  */
11
- !function(O,P,j,C){"use strict";function E(e){return null!=e&&e===e.window}function F(e){return"function"==typeof e&&"number"!=typeof e.nodeType}P=P!==C&&P.Math===Math?P:globalThis,O.fn.api=function(q){var x,e=F(this)?O(P):O(this),A=e.selector||"",k=Date.now(),S=[],T=q,w="string"==typeof T,D=[].slice.call(arguments,1);return e.each(function(){var a,n,r,e,s,o,f=O.isPlainObject(q)?O.extend(!0,{},O.fn.api.settings,q):O.extend({},O.fn.api.settings),t=f.namespace,i=f.metadata,u=f.selector,c=f.error,d=f.className,l="."+t,p="module-"+t,g=O(this),m=g.closest(u.form),b=f.stateContext?[P,j].indexOf(f.stateContext)<0?O(j).find(f.stateContext):O(f.stateContext):g,v=this,h=b[0],y=g.data(p),R={initialize:function(){w||(o=f.data,R.bind.events()),R.instantiate()},instantiate:function(){R.verbose("Storing instance of module",R),y=R,g.data(p,y)},destroy:function(){R.verbose("Destroying previous module for",v),g.removeData(p).off(l)},bind:{events:function(){var e=R.get.event();e?(R.verbose("Attaching API events to element",e),g.on(e+l,R.event.trigger)):"now"==f.on&&(R.debug("Querying API endpoint immediately"),R.query())}},decode:{json:function(e){if(e!==C&&"string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}},read:{cachedResponse:function(e){var t;if(P.Storage!==C)return t=sessionStorage.getItem(e+R.get.normalizedData()),R.debug("Using cached response",e,f.data,t),R.decode.json(t);R.error(c.noStorage)}},write:{cachedResponse:function(e,t){P.Storage===C?R.error(c.noStorage):(O.isPlainObject(t)&&(t=JSON.stringify(t)),sessionStorage.setItem(e+R.get.normalizedData(),t),R.verbose("Storing cached response for url",e,f.data,t))}},query:function(){if(R.is.disabled())R.debug("Element is disabled API request aborted");else{if(R.is.loading()){if(!f.interruptRequests)return void R.debug("Cancelling request, previous request is still pending");R.debug("Interrupting previous request"),R.abort()}if(f.defaultData&&O.extend(!0,f.urlData,R.get.defaultData()),f.serializeForm&&(f.data=R.add.formData(o||f.data)),!1===(n=R.get.settings()))return R.cancelled=!0,void R.error(c.beforeSend);if(R.cancelled=!1,(r=R.get.templatedURL())||R.is.mocked()){if((r=R.add.urlData(r))||R.is.mocked()){if(n.url=f.base+r,a=O.extend(!0,{},f,{type:f.method||f.type,data:e,url:f.base+r,beforeSend:f.beforeXHR,success:function(){},failure:function(){},complete:function(){}}),R.debug("Querying URL",a.url),R.verbose("Using AJAX settings",a),"local"===f.cache&&R.read.cachedResponse(r))return R.debug("Response returned from local cache"),R.request=R.create.request(),void R.request.resolveWith(h,[R.read.cachedResponse(r)]);f.throttle?f.throttleFirstRequest||R.timer?(R.debug("Throttling request",f.throttle),clearTimeout(R.timer),R.timer=setTimeout(function(){R.timer&&delete R.timer,R.debug("Sending throttled request",e,a.method),R.send.request()},f.throttle)):(R.debug("Sending request",e,a.method),R.send.request(),R.timer=setTimeout(function(){},f.throttle)):(R.debug("Sending request",e,a.method),R.send.request())}}else R.error(c.missingURL)}},should:{removeError:function(){return!0===f.hideError||"auto"===f.hideError&&!R.is.form()}},is:{disabled:function(){return 0<g.filter(u.disabled).length},expectingJSON:function(){return"json"===f.dataType||"jsonp"===f.dataType},form:function(){return g.is("form")||b.is("form")},mocked:function(){return f.mockResponse||f.mockResponseAsync||f.response||f.responseAsync},input:function(){return g.is("input")},loading:function(){return!!R.request&&"pending"==R.request.state()},abortedRequest:function(e){return e&&e.readyState!==C&&0===e.readyState?(R.verbose("XHR request determined to be aborted"),!0):(R.verbose("XHR request was not aborted"),!1)},validResponse:function(e){return R.is.expectingJSON()&&F(f.successTest)?(R.debug("Checking JSON returned success",f.successTest,e),f.successTest(e)?(R.debug("Response passed success test",e),!0):(R.debug("Response failed success test",e),!1)):(R.verbose("Response is not JSON, skipping validation",f.successTest,e),!0)}},was:{cancelled:function(){return R.cancelled||!1},successful:function(){return R.request&&"resolved"==R.request.state()},failure:function(){return R.request&&"rejected"==R.request.state()},complete:function(){return R.request&&("resolved"==R.request.state()||"rejected"==R.request.state())}},add:{urlData:function(o,a){var e,t;return o&&(e=o.match(f.regExp.required),t=o.match(f.regExp.optional),a=a||f.urlData,e&&(R.debug("Looking for required URL variables",e),O.each(e,function(e,t){var r=-1!==t.indexOf("$")?t.slice(2,-1):t.slice(1,-1),n=O.isPlainObject(a)&&a[r]!==C?a[r]:g.data(r)!==C?g.data(r):b.data(r)!==C?b.data(r):a[r];if(n===C)return R.error(c.requiredParameter,r,o),o=!1;R.verbose("Found required variable",r,n),n=f.encodeParameters?R.get.urlEncodedValue(n):n,o=o.replace(t,n)})),t&&(R.debug("Looking for optional URL variables",e),O.each(t,function(e,t){var r=-1!==t.indexOf("$")?t.slice(3,-1):t.slice(2,-1),n=O.isPlainObject(a)&&a[r]!==C?a[r]:g.data(r)!==C?g.data(r):b.data(r)!==C?b.data(r):a[r];o=n!==C?(R.verbose("Optional variable Found",r,n),o.replace(t,n)):(R.verbose("Optional variable not found",r),-1!==o.indexOf("/"+t)?o.replace("/"+t,""):o.replace(t,""))}))),o},formData:function(r){var e,n,u,c,d,l={},t="formdata"===f.serializeForm;return r=r||o||f.data,e=O.isPlainObject(r),t?(l=new FormData(m[0]),f.processData=f.processData!==C&&f.processData,f.contentType=f.contentType!==C&&f.contentType):(n=m.serializeArray(),u={},c={},d=function(e,t,r){return e[t]=r,e},O.each(O('input[type="file"]',m),function(e,r){O.each(O(r)[0].files,function(e,t){n.push({name:r.name,value:t})})}),O.each(n,function(e,t){if(f.regExp.validate.test(t.name)){var r="checkbox"===O('[name="'+t.name+'"]',m).attr("type"),n=parseFloat(t.value),o=r&&"on"===t.value||"true"===t.value||(String(n)===t.value?n:"false"!==t.value&&t.value),a=t.name.match(f.regExp.key)||[],s=t.name.replace(/\[]$/,"");s in u?Array.isArray(c[s])?c[s].push(o):c[s]=[c[s],o]:(u[s]=0,c[s]=o),-1===s.indexOf("[]")&&(o=c[s]);for(;0<a.length;){var i=a.pop();""!=i||Array.isArray(o)?f.regExp.fixed.test(i)?o=d([],i,o):f.regExp.named.test(i)&&(o=d({},i,o)):o=d([],u[s]++,o)}l=O.extend(!0,l,o)}})),r=e?(R.debug("Extending existing data with form data",r,l),t?(O.each(Object.keys(r),function(e,t){l.append(t,r[t])}),l):O.extend(!0,{},r,l)):(R.debug("Adding form data",l),l)}},send:{request:function(){R.set.loading(),R.request=R.create.request(),R.is.mocked()?R.mockedXHR=R.create.mockedXHR():R.xhr=R.create.xhr(),f.onRequest.call(h,R.request,R.xhr)}},event:{trigger:function(e){R.query(),"submit"!=e.type&&"click"!=e.type||e.preventDefault()},xhr:{always:function(){},done:function(e,t,r){var n=this,o=Date.now()-s,o=f.loadingDuration-o,a=!!F(f.onResponse)&&(R.is.expectingJSON()&&!f.rawResponse?f.onResponse.call(n,O.extend(!0,{},e)):f.onResponse.call(n,e)),o=0<o?o:0;a&&(R.debug("Modified API response in onResponse callback",f.onResponse,a,e),e=a),0<o&&R.debug("Response completed early delaying state change by",o),setTimeout(function(){R.is.validResponse(e)?R.request.resolveWith(n,[e,r]):R.request.rejectWith(n,[r,"invalid"])},o)},fail:function(e,t,r){var n=this,o=Date.now()-s,o=f.loadingDuration-o;0<(o=0<o?o:0)&&R.debug("Response completed early delaying state change by",o),setTimeout(function(){R.is.abortedRequest(e)?R.request.rejectWith(n,[e,"aborted",r]):R.request.rejectWith(n,[e,"error",t,r])},o)}},request:{done:function(e,t){R.debug("Successful API Response",e),"local"===f.cache&&r&&(R.write.cachedResponse(r,e),R.debug("Saving server response locally",R.cache)),f.onSuccess.call(h,e,g,t)},complete:function(e,t){var r,n;R.was.successful()?(n=e,r=t):n=R.get.responseFromXHR(r=e),R.remove.loading(),f.onComplete.call(h,n,g,r)},fail:function(e,t,r){var n=R.get.responseFromXHR(e),o=R.get.errorFromRequest(n,t,r);if("aborted"==t)return R.debug("XHR Aborted (Most likely caused by page navigation or CORS Policy)",t,r),f.onAbort.call(h,t,g,e),!0;"invalid"==t?R.debug("JSON did not pass success test. A server-side error has most likely occurred",n):"error"==t&&e!==C&&(R.debug("XHR produced a server error",t,r),(e.status<200||300<=e.status)&&r!==C&&""!==r&&R.error(c.statusMessage+r,a.url),f.onError.call(h,o,g,e)),f.errorDuration&&"aborted"!==t&&(R.debug("Adding error state"),R.set.error(),R.should.removeError()&&setTimeout(R.remove.error,f.errorDuration)),R.debug("API Request failed",o,e),f.onFailure.call(h,n,g,e)}}},create:{request:function(){return O.Deferred().always(R.event.request.complete).done(R.event.request.done).fail(R.event.request.fail)},mockedXHR:function(){var e=f.mockResponse||f.response,t=f.mockResponseAsync||f.responseAsync,r=O.Deferred().always(R.event.xhr.complete).done(R.event.xhr.done).fail(R.event.xhr.fail);return e?(e=F(e)?(R.debug("Using specified synchronous callback",e),e.call(h,n)):(R.debug("Using settings specified response",e),e),r.resolveWith(h,[e,!1,{responseText:e}])):F(t)&&(e=function(e){R.debug("Async callback returned response",e),e?r.resolveWith(h,[e,!1,{responseText:e}]):r.rejectWith(h,[{responseText:e},!1,!1])},R.debug("Using specified async response callback",t),t.call(h,n,e)),r},xhr:function(){var e=O.ajax(a).always(R.event.xhr.always).done(R.event.xhr.done).fail(R.event.xhr.fail);return R.verbose("Created server request",e,a),e}},set:{error:function(){R.verbose("Adding error state to element",b),b.addClass(d.error)},loading:function(){R.verbose("Adding loading state to element",b),b.addClass(d.loading),s=Date.now()}},remove:{error:function(){R.verbose("Removing error state from element",b),b.removeClass(d.error)},loading:function(){R.verbose("Removing loading state from element",b),b.removeClass(d.loading)}},get:{normalizedData:function(){return"string"==typeof f.data?f.data:JSON.stringify(f.data,Object.keys(f.data).sort())},responseFromXHR:function(e){return!!O.isPlainObject(e)&&(R.is.expectingJSON()?R.decode.json(e.responseText):e.responseText)},errorFromRequest:function(e,t,r){return O.isPlainObject(e)&&e.error!==C?e.error:f.error[t]!==C?f.error[t]:r},request:function(){return R.request||!1},xhr:function(){return R.xhr||!1},settings:function(){var e=f.beforeSend.call(g,f);return e&&(e.success!==C&&(R.debug("Legacy success callback detected",e),R.error(c.legacyParameters,e.success),e.onSuccess=e.success),e.failure!==C&&(R.debug("Legacy failure callback detected",e),R.error(c.legacyParameters,e.failure),e.onFailure=e.failure),e.complete!==C&&(R.debug("Legacy complete callback detected",e),R.error(c.legacyParameters,e.complete),e.onComplete=e.complete)),e===C&&R.error(c.noReturnedValue),!1===e?e:e!==C?O.extend(!0,{},e):O.extend(!0,{},f)},urlEncodedValue:function(e){var t=P.decodeURIComponent(e),r=P.encodeURIComponent(e);return t!==e?(R.debug("URL value is already encoded, avoiding double encoding",e),e):(R.verbose("Encoding value using encodeURIComponent",e,r),r)},defaultData:function(){var e={};return E(v)||(R.is.input()?e.value=g.val():R.is.form()||(e.text=g.text())),e},event:function(){return E(v)||"now"==f.on?(R.debug("API called without element, no events attached"),!1):"auto"==f.on?g.is("input")?v.oninput!==C?"input":v.onpropertychange!==C?"propertychange":"keyup":g.is("form")?"submit":"click":f.on},templatedURL:function(e){if(e=e||g.data(i.action)||f.action||!1,r=g.data(i.url)||f.url||!1)return R.debug("Using specified url",r),r;if(e){if(R.debug("Looking up url for action",e,f.api),f.api[e]===C&&!R.is.mocked())return void R.error(c.missingAction,f.action,f.api);r=f.api[e]}else R.is.form()&&(r=g.attr("action")||b.attr("action")||!1,R.debug("No url or action specified, defaulting to form action",r));return r}},abort:function(){var e=R.get.xhr();e&&"resolved"!==e.state()&&(R.debug("Cancelling API request"),e.abort())},reset:function(){R.remove.error(),R.remove.loading()},setting:function(e,t){if(R.debug("Changing setting",e,t),O.isPlainObject(e))O.extend(!0,f,e);else{if(t===C)return f[e];O.isPlainObject(f[e])?O.extend(!0,f[e],t):f[e]=t}},internal:function(e,t){if(O.isPlainObject(e))O.extend(!0,R,e);else{if(t===C)return R[e];R[e]=t}},debug:function(){!f.silent&&f.debug&&(f.performance?R.performance.log(arguments):(R.debug=Function.prototype.bind.call(console.info,console,f.name+":"),R.debug.apply(console,arguments)))},verbose:function(){!f.silent&&f.verbose&&f.debug&&(f.performance?R.performance.log(arguments):(R.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),R.verbose.apply(console,arguments)))},error:function(){f.silent||(R.error=Function.prototype.bind.call(console.error,console,f.name+":"),R.error.apply(console,arguments))},performance:{log:function(e){var t,r;f.performance&&(r=(t=Date.now())-(k||t),k=t,S.push({Name:e[0],Arguments:[].slice.call(e,1)||"","Execution Time":r})),clearTimeout(R.performance.timer),R.performance.timer=setTimeout(R.performance.display,500)},display:function(){var e=f.name+":",r=0;k=!1,clearTimeout(R.performance.timer),O.each(S,function(e,t){r+=t["Execution Time"]}),e+=" "+r+"ms",A&&(e+=" '"+A+"'"),(console.group!==C||console.table!==C)&&0<S.length&&(console.groupCollapsed(e),console.table?console.table(S):O.each(S,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),S=[]}},invoke:function(n,e,t){var o,a,r,s=y;return e=e||D,t=t||v,"string"==typeof n&&s!==C&&(n=n.split(/[ .]/),o=n.length-1,O.each(n,function(e,t){var r=e!=o?t+n[e+1].charAt(0).toUpperCase()+n[e+1].slice(1):n;if(O.isPlainObject(s[r])&&e!=o)s=s[r];else{if(s[r]!==C)return a=s[r],!1;{if(!O.isPlainObject(s[t])||e==o)return s[t]!==C?a=s[t]:R.error(c.method,n),!1;s=s[t]}}})),F(a)?r=a.apply(t,e):a!==C&&(r=a),Array.isArray(x)?x.push(r):x!==C?x=[x,r]:r!==C&&(x=r),a}};w?(y===C&&R.initialize(),R.invoke(T)):(y!==C&&y.invoke("destroy"),R.initialize())}),x!==C?x:this},O.api=O.fn.api,O.api.settings={name:"API",namespace:"api",debug:!1,verbose:!1,performance:!0,api:{},cache:!0,interruptRequests:!0,on:"auto",stateContext:!1,loadingDuration:0,hideError:"auto",errorDuration:2e3,encodeParameters:!0,action:!1,url:!1,base:"",urlData:{},defaultData:!0,serializeForm:!1,throttle:0,throttleFirstRequest:!0,method:"get",data:{},dataType:"json",mockResponse:!1,mockResponseAsync:!1,response:!1,responseAsync:!1,rawResponse:!0,beforeSend:function(e){return e},beforeXHR:function(e){},onRequest:function(e,t){},onResponse:!1,onSuccess:function(e,t){},onComplete:function(e,t){},onFailure:function(e,t){},onError:function(e,t){},onAbort:function(e,t){},successTest:!1,error:{beforeSend:"The before send function has aborted the request",error:"There was an error with your request",exitConditions:"API Request Aborted. Exit conditions met",JSONParse:"JSON could not be parsed during error handling",legacyParameters:"You are using legacy API success callback names",method:"The method you called is not defined",missingAction:"API action used but no url was defined",missingURL:"No URL specified for api event",noReturnedValue:"The beforeSend callback must return a settings object, beforeSend ignored.",noStorage:"Caching responses locally requires session storage",parseError:"There was an error parsing your request",requiredParameter:"Missing a required URL parameter: ",statusMessage:"Server gave an error: ",timeout:"Your request timed out"},regExp:{required:/{\$*[\da-z]+}/gi,optional:/{\/\$*[\da-z]+}/gi,validate:/^[_a-z][\w-]*(?:\[[\w-]*])*$/i,key:/[\w-]+|(?=\[])/gi,push:/^$/,fixed:/^\d+$/,named:/^[\w-]+$/i},className:{loading:"loading",error:"error"},selector:{disabled:".disabled",form:"form"},metadata:{action:"action",url:"url"}}}(jQuery,window,document);
11
+ !function(O,P,j,C){"use strict";function E(e){return null!==e&&e===e.window}function F(e){return"function"==typeof e&&"number"!=typeof e.nodeType}P=P!==C&&P.Math===Math?P:globalThis,O.fn.api=function(q){var x,e=F(this)?O(P):O(this),A=e.selector||"",k=Date.now(),S=[],T=q,w="string"==typeof T,D=[].slice.call(arguments,1);return e.each(function(){var a,n,r,e,s,o,f=O.isPlainObject(q)?O.extend(!0,{},O.fn.api.settings,q):O.extend({},O.fn.api.settings),t=f.namespace,i=f.metadata,u=f.selector,c=f.error,d=f.className,l="."+t,p="module-"+t,g=O(this),m=g.closest(u.form),b=f.stateContext?[P,j].indexOf(f.stateContext)<0?O(j).find(f.stateContext):O(f.stateContext):g,v=this,h=b[0],y=g.data(p),R={initialize:function(){w||(o=f.data,R.bind.events()),R.instantiate()},instantiate:function(){R.verbose("Storing instance of module",R),y=R,g.data(p,y)},destroy:function(){R.verbose("Destroying previous module for",v),g.removeData(p).off(l)},bind:{events:function(){var e=R.get.event();e?(R.verbose("Attaching API events to element",e),g.on(e+l,R.event.trigger)):"now"===f.on&&(R.debug("Querying API endpoint immediately"),R.query())}},decode:{json:function(e){if(e!==C&&"string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}},read:{cachedResponse:function(e){var t;if(P.Storage!==C)return t=sessionStorage.getItem(e+R.get.normalizedData()),R.debug("Using cached response",e,f.data,t),R.decode.json(t);R.error(c.noStorage)}},write:{cachedResponse:function(e,t){P.Storage===C?R.error(c.noStorage):(O.isPlainObject(t)&&(t=JSON.stringify(t)),sessionStorage.setItem(e+R.get.normalizedData(),t),R.verbose("Storing cached response for url",e,f.data,t))}},query:function(){if(R.is.disabled())R.debug("Element is disabled API request aborted");else{if(R.is.loading()){if(!f.interruptRequests)return void R.debug("Cancelling request, previous request is still pending");R.debug("Interrupting previous request"),R.abort()}if(f.defaultData&&O.extend(!0,f.urlData,R.get.defaultData()),f.serializeForm&&(f.data=R.add.formData(o||f.data)),!1===(n=R.get.settings()))return R.cancelled=!0,void R.error(c.beforeSend);if(R.cancelled=!1,(r=R.get.templatedURL())||R.is.mocked()){if((r=R.add.urlData(r))||R.is.mocked()){if(n.url=f.base+r,a=O.extend(!0,{},f,{type:f.method||f.type,data:e,url:f.base+r,beforeSend:f.beforeXHR,success:function(){},failure:function(){},complete:function(){}}),R.debug("Querying URL",a.url),R.verbose("Using AJAX settings",a),"local"===f.cache&&R.read.cachedResponse(r))return R.debug("Response returned from local cache"),R.request=R.create.request(),void R.request.resolveWith(h,[R.read.cachedResponse(r)]);f.throttle?f.throttleFirstRequest||R.timer?(R.debug("Throttling request",f.throttle),clearTimeout(R.timer),R.timer=setTimeout(function(){R.timer&&delete R.timer,R.debug("Sending throttled request",e,a.method),R.send.request()},f.throttle)):(R.debug("Sending request",e,a.method),R.send.request(),R.timer=setTimeout(function(){},f.throttle)):(R.debug("Sending request",e,a.method),R.send.request())}}else R.error(c.missingURL)}},should:{removeError:function(){return!0===f.hideError||"auto"===f.hideError&&!R.is.form()}},is:{disabled:function(){return 0<g.filter(u.disabled).length},expectingJSON:function(){return"json"===f.dataType||"jsonp"===f.dataType},form:function(){return g.is("form")||b.is("form")},mocked:function(){return f.mockResponse||f.mockResponseAsync||f.response||f.responseAsync},input:function(){return g.is("input")},loading:function(){return!!R.request&&"pending"===R.request.state()},abortedRequest:function(e){return e&&e.readyState!==C&&0===e.readyState?(R.verbose("XHR request determined to be aborted"),!0):(R.verbose("XHR request was not aborted"),!1)},validResponse:function(e){return R.is.expectingJSON()&&F(f.successTest)?(R.debug("Checking JSON returned success",f.successTest,e),f.successTest(e)?(R.debug("Response passed success test",e),!0):(R.debug("Response failed success test",e),!1)):(R.verbose("Response is not JSON, skipping validation",f.successTest,e),!0)}},was:{cancelled:function(){return R.cancelled||!1},successful:function(){return R.request&&"resolved"===R.request.state()},failure:function(){return R.request&&"rejected"===R.request.state()},complete:function(){return R.request&&("resolved"===R.request.state()||"rejected"===R.request.state())}},add:{urlData:function(o,a){var e,t;return o&&(e=o.match(f.regExp.required),t=o.match(f.regExp.optional),a=a||f.urlData,e&&(R.debug("Looking for required URL variables",e),O.each(e,function(e,t){var r=-1!==t.indexOf("$")?t.slice(2,-1):t.slice(1,-1),n=O.isPlainObject(a)&&a[r]!==C?a[r]:g.data(r)!==C?g.data(r):b.data(r)!==C?b.data(r):a[r];if(n===C)return R.error(c.requiredParameter,r,o),o=!1;R.verbose("Found required variable",r,n),n=f.encodeParameters?R.get.urlEncodedValue(n):n,o=o.replace(t,n)})),t&&(R.debug("Looking for optional URL variables",e),O.each(t,function(e,t){var r=-1!==t.indexOf("$")?t.slice(3,-1):t.slice(2,-1),n=O.isPlainObject(a)&&a[r]!==C?a[r]:g.data(r)!==C?g.data(r):b.data(r)!==C?b.data(r):a[r];o=n!==C?(R.verbose("Optional variable Found",r,n),o.replace(t,n)):(R.verbose("Optional variable not found",r),-1!==o.indexOf("/"+t)?o.replace("/"+t,""):o.replace(t,""))}))),o},formData:function(r){var e,n,u,c,d,l={},t="formdata"===f.serializeForm;return r=r||o||f.data,e=O.isPlainObject(r),t?(l=new FormData(m[0]),f.processData=f.processData!==C&&f.processData,f.contentType=f.contentType!==C&&f.contentType):(n=m.serializeArray(),u={},c={},d=function(e,t,r){return e[t]=r,e},O.each(O('input[type="file"]',m),function(e,r){O.each(O(r)[0].files,function(e,t){n.push({name:r.name,value:t})})}),O.each(n,function(e,t){if(f.regExp.validate.test(t.name)){var r="checkbox"===O('[name="'+t.name+'"]',m).attr("type"),n=parseFloat(t.value),o=r&&"on"===t.value||"true"===t.value||(String(n)===t.value?n:"false"!==t.value&&t.value),a=t.name.match(f.regExp.key)||[],s=t.name.replace(/\[]$/,"");s in u?Array.isArray(c[s])?c[s].push(o):c[s]=[c[s],o]:(u[s]=0,c[s]=o),-1===s.indexOf("[]")&&(o=c[s]);for(;0<a.length;){var i=a.pop();""!==i||Array.isArray(o)?f.regExp.fixed.test(i)?o=d([],i,o):f.regExp.named.test(i)&&(o=d({},i,o)):o=d([],u[s]++,o)}l=O.extend(!0,l,o)}})),r=e?(R.debug("Extending existing data with form data",r,l),t?(O.each(Object.keys(r),function(e,t){l.append(t,r[t])}),l):O.extend(!0,{},r,l)):(R.debug("Adding form data",l),l)}},send:{request:function(){R.set.loading(),R.request=R.create.request(),R.is.mocked()?R.mockedXHR=R.create.mockedXHR():R.xhr=R.create.xhr(),f.onRequest.call(h,R.request,R.xhr)}},event:{trigger:function(e){R.query(),"submit"!==e.type&&"click"!==e.type||e.preventDefault()},xhr:{always:function(){},done:function(e,t,r){var n=this,o=Date.now()-s,o=f.loadingDuration-o,a=!!F(f.onResponse)&&(R.is.expectingJSON()&&!f.rawResponse?f.onResponse.call(n,O.extend(!0,{},e)):f.onResponse.call(n,e)),o=0<o?o:0;a&&(R.debug("Modified API response in onResponse callback",f.onResponse,a,e),e=a),0<o&&R.debug("Response completed early delaying state change by",o),setTimeout(function(){R.is.validResponse(e)?R.request.resolveWith(n,[e,r]):R.request.rejectWith(n,[r,"invalid"])},o)},fail:function(e,t,r){var n=this,o=Date.now()-s,o=f.loadingDuration-o;0<(o=0<o?o:0)&&R.debug("Response completed early delaying state change by",o),setTimeout(function(){R.is.abortedRequest(e)?R.request.rejectWith(n,[e,"aborted",r]):R.request.rejectWith(n,[e,"error",t,r])},o)}},request:{done:function(e,t){R.debug("Successful API Response",e),"local"===f.cache&&r&&(R.write.cachedResponse(r,e),R.debug("Saving server response locally",R.cache)),f.onSuccess.call(h,e,g,t)},complete:function(e,t){var r,n;R.was.successful()?(n=e,r=t):n=R.get.responseFromXHR(r=e),R.remove.loading(),f.onComplete.call(h,n,g,r)},fail:function(e,t,r){var n=R.get.responseFromXHR(e),o=R.get.errorFromRequest(n,t,r);if("aborted"===t)return R.debug("XHR Aborted (Most likely caused by page navigation or CORS Policy)",t,r),f.onAbort.call(h,t,g,e),!0;"invalid"===t?R.debug("JSON did not pass success test. A server-side error has most likely occurred",n):"error"===t&&e!==C&&(R.debug("XHR produced a server error",t,r),(e.status<200||300<=e.status)&&r!==C&&""!==r&&R.error(c.statusMessage+r,a.url),f.onError.call(h,o,g,e)),f.errorDuration&&"aborted"!==t&&(R.debug("Adding error state"),R.set.error(),R.should.removeError()&&setTimeout(R.remove.error,f.errorDuration)),R.debug("API Request failed",o,e),f.onFailure.call(h,n,g,e)}}},create:{request:function(){return O.Deferred().always(R.event.request.complete).done(R.event.request.done).fail(R.event.request.fail)},mockedXHR:function(){var e=f.mockResponse||f.response,t=f.mockResponseAsync||f.responseAsync,r=O.Deferred().always(R.event.xhr.complete).done(R.event.xhr.done).fail(R.event.xhr.fail);return e?(e=F(e)?(R.debug("Using specified synchronous callback",e),e.call(h,n)):(R.debug("Using settings specified response",e),e),r.resolveWith(h,[e,!1,{responseText:e}])):F(t)&&(e=function(e){R.debug("Async callback returned response",e),e?r.resolveWith(h,[e,!1,{responseText:e}]):r.rejectWith(h,[{responseText:e},!1,!1])},R.debug("Using specified async response callback",t),t.call(h,n,e)),r},xhr:function(){var e=O.ajax(a).always(R.event.xhr.always).done(R.event.xhr.done).fail(R.event.xhr.fail);return R.verbose("Created server request",e,a),e}},set:{error:function(){R.verbose("Adding error state to element",b),b.addClass(d.error)},loading:function(){R.verbose("Adding loading state to element",b),b.addClass(d.loading),s=Date.now()}},remove:{error:function(){R.verbose("Removing error state from element",b),b.removeClass(d.error)},loading:function(){R.verbose("Removing loading state from element",b),b.removeClass(d.loading)}},get:{normalizedData:function(){return"string"==typeof f.data?f.data:JSON.stringify(f.data,Object.keys(f.data).sort())},responseFromXHR:function(e){return!!O.isPlainObject(e)&&(R.is.expectingJSON()?R.decode.json(e.responseText):e.responseText)},errorFromRequest:function(e,t,r){return O.isPlainObject(e)&&e.error!==C?e.error:f.error[t]!==C?f.error[t]:r},request:function(){return R.request||!1},xhr:function(){return R.xhr||!1},settings:function(){var e=f.beforeSend.call(g,f);return e&&(e.success!==C&&(R.debug("Legacy success callback detected",e),R.error(c.legacyParameters,e.success),e.onSuccess=e.success),e.failure!==C&&(R.debug("Legacy failure callback detected",e),R.error(c.legacyParameters,e.failure),e.onFailure=e.failure),e.complete!==C&&(R.debug("Legacy complete callback detected",e),R.error(c.legacyParameters,e.complete),e.onComplete=e.complete)),e===C&&R.error(c.noReturnedValue),!1===e?e:e!==C?O.extend(!0,{},e):O.extend(!0,{},f)},urlEncodedValue:function(e){var t=P.decodeURIComponent(e),r=P.encodeURIComponent(e);return t!==e?(R.debug("URL value is already encoded, avoiding double encoding",e),e):(R.verbose("Encoding value using encodeURIComponent",e,r),r)},defaultData:function(){var e={};return E(v)||(R.is.input()?e.value=g.val():R.is.form()||(e.text=g.text())),e},event:function(){return E(v)||"now"===f.on?(R.debug("API called without element, no events attached"),!1):"auto"===f.on?g.is("input")?v.oninput!==C?"input":v.onpropertychange!==C?"propertychange":"keyup":g.is("form")?"submit":"click":f.on},templatedURL:function(e){if(e=e||g.data(i.action)||f.action||!1,r=g.data(i.url)||f.url||!1)return R.debug("Using specified url",r),r;if(e){if(R.debug("Looking up url for action",e,f.api),f.api[e]===C&&!R.is.mocked())return void R.error(c.missingAction,f.action,f.api);r=f.api[e]}else R.is.form()&&(r=g.attr("action")||b.attr("action")||!1,R.debug("No url or action specified, defaulting to form action",r));return r}},abort:function(){var e=R.get.xhr();e&&"resolved"!==e.state()&&(R.debug("Cancelling API request"),e.abort())},reset:function(){R.remove.error(),R.remove.loading()},setting:function(e,t){if(R.debug("Changing setting",e,t),O.isPlainObject(e))O.extend(!0,f,e);else{if(t===C)return f[e];O.isPlainObject(f[e])?O.extend(!0,f[e],t):f[e]=t}},internal:function(e,t){if(O.isPlainObject(e))O.extend(!0,R,e);else{if(t===C)return R[e];R[e]=t}},debug:function(){!f.silent&&f.debug&&(f.performance?R.performance.log(arguments):(R.debug=Function.prototype.bind.call(console.info,console,f.name+":"),R.debug.apply(console,arguments)))},verbose:function(){!f.silent&&f.verbose&&f.debug&&(f.performance?R.performance.log(arguments):(R.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),R.verbose.apply(console,arguments)))},error:function(){f.silent||(R.error=Function.prototype.bind.call(console.error,console,f.name+":"),R.error.apply(console,arguments))},performance:{log:function(e){var t,r;f.performance&&(r=(t=Date.now())-(k||t),k=t,S.push({Name:e[0],Arguments:[].slice.call(e,1)||"","Execution Time":r})),clearTimeout(R.performance.timer),R.performance.timer=setTimeout(R.performance.display,500)},display:function(){var e=f.name+":",r=0;k=!1,clearTimeout(R.performance.timer),O.each(S,function(e,t){r+=t["Execution Time"]}),e+=" "+r+"ms",A&&(e+=" '"+A+"'"),(console.group!==C||console.table!==C)&&0<S.length&&(console.groupCollapsed(e),console.table?console.table(S):O.each(S,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),S=[]}},invoke:function(n,e,t){var o,a,r,s=y;return e=e||D,t=t||v,"string"==typeof n&&s!==C&&(n=n.split(/[ .]/),o=n.length-1,O.each(n,function(e,t){var r=e!==o?t+n[e+1].charAt(0).toUpperCase()+n[e+1].slice(1):n;if(O.isPlainObject(s[r])&&e!==o)s=s[r];else{if(s[r]!==C)return a=s[r],!1;{if(!O.isPlainObject(s[t])||e===o)return s[t]!==C?a=s[t]:R.error(c.method,n),!1;s=s[t]}}})),F(a)?r=a.apply(t,e):a!==C&&(r=a),Array.isArray(x)?x.push(r):x!==C?x=[x,r]:r!==C&&(x=r),a}};w?(y===C&&R.initialize(),R.invoke(T)):(y!==C&&y.invoke("destroy"),R.initialize())}),x!==C?x:this},O.api=O.fn.api,O.api.settings={name:"API",namespace:"api",debug:!1,verbose:!1,performance:!0,api:{},cache:!0,interruptRequests:!0,on:"auto",stateContext:!1,loadingDuration:0,hideError:"auto",errorDuration:2e3,encodeParameters:!0,action:!1,url:!1,base:"",urlData:{},defaultData:!0,serializeForm:!1,throttle:0,throttleFirstRequest:!0,method:"get",data:{},dataType:"json",mockResponse:!1,mockResponseAsync:!1,response:!1,responseAsync:!1,rawResponse:!0,beforeSend:function(e){return e},beforeXHR:function(e){},onRequest:function(e,t){},onResponse:!1,onSuccess:function(e,t){},onComplete:function(e,t){},onFailure:function(e,t){},onError:function(e,t){},onAbort:function(e,t){},successTest:!1,error:{beforeSend:"The before send function has aborted the request",error:"There was an error with your request",exitConditions:"API Request Aborted. Exit conditions met",JSONParse:"JSON could not be parsed during error handling",legacyParameters:"You are using legacy API success callback names",method:"The method you called is not defined",missingAction:"API action used but no url was defined",missingURL:"No URL specified for api event",noReturnedValue:"The beforeSend callback must return a settings object, beforeSend ignored.",noStorage:"Caching responses locally requires session storage",parseError:"There was an error parsing your request",requiredParameter:"Missing a required URL parameter: ",statusMessage:"Server gave an error: ",timeout:"Your request timed out"},regExp:{required:/{\$*[\da-z]+}/gi,optional:/{\/\$*[\da-z]+}/gi,validate:/^[_a-z][\w-]*(?:\[[\w-]*])*$/i,key:/[\w-]+|(?=\[])/gi,push:/^$/,fixed:/^\d+$/,named:/^[\w-]+$/i},className:{loading:"loading",error:"error"},selector:{disabled:".disabled",form:"form"},metadata:{action:"action",url:"url"}}}(jQuery,window,document);
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.23+27384cb - Breadcrumb
2
+ * # Fomantic-UI 2.9.1-beta.25+bbe4e58 - Breadcrumb
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.23+27384cb - Breadcrumb
2
+ * # Fomantic-UI 2.9.1-beta.25+bbe4e58 - Breadcrumb
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.23+27384cb - Button
2
+ * # Fomantic-UI 2.9.1-beta.25+bbe4e58 - Button
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.23+27384cb - Button
2
+ * # Fomantic-UI 2.9.1-beta.25+bbe4e58 - Button
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.9.1-beta.23+27384cb - Calendar
2
+ * # Fomantic-UI 2.9.1-beta.25+bbe4e58 - Calendar
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *