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

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 (345) hide show
  1. package/.eslintrc.js +6 -23
  2. package/.github/workflows/ci.yml +9 -9
  3. package/.github/workflows/depsreview.yml +1 -1
  4. package/.github/workflows/nightly.yml +7 -5
  5. package/.github/workflows/release.yml +2 -2
  6. package/.stylelintrc.js +1 -15
  7. package/CHANGELOG.md +5289 -2325
  8. package/README.md +8 -4
  9. package/changelog-setup.js +32 -10
  10. package/changelog-template.hbs +256 -251
  11. package/dist/components/accordion.css +1 -1
  12. package/dist/components/accordion.js +62 -73
  13. package/dist/components/accordion.min.css +1 -1
  14. package/dist/components/accordion.min.js +3 -3
  15. package/dist/components/ad.css +1 -1
  16. package/dist/components/ad.min.css +1 -1
  17. package/dist/components/api.js +101 -161
  18. package/dist/components/api.min.js +3 -3
  19. package/dist/components/breadcrumb.css +1 -1
  20. package/dist/components/breadcrumb.min.css +1 -1
  21. package/dist/components/button.css +5 -6
  22. package/dist/components/button.min.css +2 -2
  23. package/dist/components/calendar.css +3 -3
  24. package/dist/components/calendar.js +283 -332
  25. package/dist/components/calendar.min.css +2 -2
  26. package/dist/components/calendar.min.js +3 -3
  27. package/dist/components/card.css +1 -1
  28. package/dist/components/card.min.css +1 -1
  29. package/dist/components/checkbox.css +1 -1
  30. package/dist/components/checkbox.js +58 -79
  31. package/dist/components/checkbox.min.css +1 -1
  32. package/dist/components/checkbox.min.js +3 -3
  33. package/dist/components/comment.css +1 -1
  34. package/dist/components/comment.min.css +1 -1
  35. package/dist/components/container.css +1 -1
  36. package/dist/components/container.min.css +1 -1
  37. package/dist/components/dimmer.css +2 -2
  38. package/dist/components/dimmer.js +39 -52
  39. package/dist/components/dimmer.min.css +2 -2
  40. package/dist/components/dimmer.min.js +3 -3
  41. package/dist/components/divider.css +1 -1
  42. package/dist/components/divider.min.css +1 -1
  43. package/dist/components/dropdown.css +21 -35
  44. package/dist/components/dropdown.js +435 -531
  45. package/dist/components/dropdown.min.css +2 -2
  46. package/dist/components/dropdown.min.js +3 -3
  47. package/dist/components/embed.css +1 -1
  48. package/dist/components/embed.js +55 -68
  49. package/dist/components/embed.min.css +1 -1
  50. package/dist/components/embed.min.js +3 -3
  51. package/dist/components/emoji.css +3809 -7617
  52. package/dist/components/emoji.min.css +2 -2
  53. package/dist/components/feed.css +1 -1
  54. package/dist/components/feed.min.css +1 -1
  55. package/dist/components/flag.css +1 -1
  56. package/dist/components/flag.min.css +1 -1
  57. package/dist/components/flyout.css +1 -1
  58. package/dist/components/flyout.js +149 -168
  59. package/dist/components/flyout.min.css +1 -1
  60. package/dist/components/flyout.min.js +3 -3
  61. package/dist/components/form.css +3 -5
  62. package/dist/components/form.js +249 -269
  63. package/dist/components/form.min.css +2 -2
  64. package/dist/components/form.min.js +3 -3
  65. package/dist/components/grid.css +2 -2
  66. package/dist/components/grid.min.css +2 -2
  67. package/dist/components/header.css +6 -6
  68. package/dist/components/header.min.css +2 -2
  69. package/dist/components/icon.css +10 -37
  70. package/dist/components/icon.min.css +2 -2
  71. package/dist/components/image.css +1 -1
  72. package/dist/components/image.min.css +1 -1
  73. package/dist/components/input.css +284 -12
  74. package/dist/components/input.min.css +2 -2
  75. package/dist/components/item.css +1 -1
  76. package/dist/components/item.min.css +1 -1
  77. package/dist/components/label.css +6 -14
  78. package/dist/components/label.min.css +2 -2
  79. package/dist/components/list.css +3 -3
  80. package/dist/components/list.min.css +2 -2
  81. package/dist/components/loader.css +53 -53
  82. package/dist/components/loader.min.css +2 -2
  83. package/dist/components/menu.css +45 -60
  84. package/dist/components/menu.min.css +2 -2
  85. package/dist/components/message.css +2 -2
  86. package/dist/components/message.min.css +2 -2
  87. package/dist/components/modal.css +5 -5
  88. package/dist/components/modal.js +161 -170
  89. package/dist/components/modal.min.css +2 -2
  90. package/dist/components/modal.min.js +3 -3
  91. package/dist/components/nag.css +1 -1
  92. package/dist/components/nag.js +74 -88
  93. package/dist/components/nag.min.css +1 -1
  94. package/dist/components/nag.min.js +3 -3
  95. package/dist/components/placeholder.css +2 -2
  96. package/dist/components/placeholder.min.css +2 -2
  97. package/dist/components/popup.css +19 -73
  98. package/dist/components/popup.js +105 -138
  99. package/dist/components/popup.min.css +2 -2
  100. package/dist/components/popup.min.js +3 -3
  101. package/dist/components/progress.css +4 -13
  102. package/dist/components/progress.js +75 -97
  103. package/dist/components/progress.min.css +2 -2
  104. package/dist/components/progress.min.js +3 -3
  105. package/dist/components/rail.css +1 -1
  106. package/dist/components/rail.min.css +1 -1
  107. package/dist/components/rating.css +1 -1
  108. package/dist/components/rating.js +49 -61
  109. package/dist/components/rating.min.css +1 -1
  110. package/dist/components/rating.min.js +3 -3
  111. package/dist/components/reset.css +48 -208
  112. package/dist/components/reset.min.css +2 -2
  113. package/dist/components/reveal.css +2 -5
  114. package/dist/components/reveal.min.css +2 -2
  115. package/dist/components/search.css +2 -3
  116. package/dist/components/search.js +178 -198
  117. package/dist/components/search.min.css +2 -2
  118. package/dist/components/search.min.js +3 -3
  119. package/dist/components/segment.css +6 -6
  120. package/dist/components/segment.min.css +2 -2
  121. package/dist/components/shape.css +1 -1
  122. package/dist/components/shape.js +59 -69
  123. package/dist/components/shape.min.css +1 -1
  124. package/dist/components/shape.min.js +3 -3
  125. package/dist/components/sidebar.css +1 -1
  126. package/dist/components/sidebar.js +81 -101
  127. package/dist/components/sidebar.min.css +1 -1
  128. package/dist/components/sidebar.min.js +3 -3
  129. package/dist/components/site.css +1 -1
  130. package/dist/components/site.js +37 -58
  131. package/dist/components/site.min.css +1 -1
  132. package/dist/components/site.min.js +3 -3
  133. package/dist/components/slider.css +1 -1
  134. package/dist/components/slider.js +169 -183
  135. package/dist/components/slider.min.css +1 -1
  136. package/dist/components/slider.min.js +3 -3
  137. package/dist/components/state.js +45 -59
  138. package/dist/components/state.min.js +3 -3
  139. package/dist/components/statistic.css +1 -1
  140. package/dist/components/statistic.min.css +1 -1
  141. package/dist/components/step.css +4 -4
  142. package/dist/components/step.min.css +2 -2
  143. package/dist/components/sticky.css +1 -1
  144. package/dist/components/sticky.js +95 -117
  145. package/dist/components/sticky.min.css +1 -1
  146. package/dist/components/sticky.min.js +3 -3
  147. package/dist/components/tab.css +1 -1
  148. package/dist/components/tab.js +83 -115
  149. package/dist/components/tab.min.css +1 -1
  150. package/dist/components/tab.min.js +3 -3
  151. package/dist/components/table.css +8 -8
  152. package/dist/components/table.min.css +2 -2
  153. package/dist/components/text.css +1 -1
  154. package/dist/components/text.min.css +1 -1
  155. package/dist/components/toast.css +1 -1
  156. package/dist/components/toast.js +64 -74
  157. package/dist/components/toast.min.css +1 -1
  158. package/dist/components/toast.min.js +3 -3
  159. package/dist/components/transition.css +1 -1
  160. package/dist/components/transition.js +61 -85
  161. package/dist/components/transition.min.css +1 -1
  162. package/dist/components/transition.min.js +3 -3
  163. package/dist/components/visibility.js +120 -140
  164. package/dist/components/visibility.min.js +3 -3
  165. package/dist/semantic.css +4480 -8222
  166. package/dist/semantic.js +2886 -3485
  167. package/dist/semantic.min.css +3 -3
  168. package/dist/semantic.min.js +3 -3
  169. package/examples/attached.html +1 -1
  170. package/examples/components/menu.html +1 -1
  171. package/package.json +8 -5
  172. package/scripts/nightly-version.js +4 -4
  173. package/src/definitions/behaviors/api.js +100 -160
  174. package/src/definitions/behaviors/form.js +248 -268
  175. package/src/definitions/behaviors/state.js +44 -58
  176. package/src/definitions/behaviors/visibility.js +119 -139
  177. package/src/definitions/collections/breadcrumb.less +0 -1
  178. package/src/definitions/collections/form.less +3 -9
  179. package/src/definitions/collections/grid.less +1 -2
  180. package/src/definitions/collections/menu.less +106 -117
  181. package/src/definitions/collections/message.less +1 -2
  182. package/src/definitions/collections/table.less +7 -8
  183. package/src/definitions/elements/button.less +4 -6
  184. package/src/definitions/elements/container.less +0 -1
  185. package/src/definitions/elements/divider.less +1 -2
  186. package/src/definitions/elements/emoji.less +1 -1
  187. package/src/definitions/elements/flag.less +1 -1
  188. package/src/definitions/elements/header.less +4 -5
  189. package/src/definitions/elements/icon.less +10 -37
  190. package/src/definitions/elements/image.less +0 -1
  191. package/src/definitions/elements/input.less +4 -7
  192. package/src/definitions/elements/label.less +5 -14
  193. package/src/definitions/elements/list.less +2 -3
  194. package/src/definitions/elements/loader.less +10 -11
  195. package/src/definitions/elements/placeholder.less +1 -2
  196. package/src/definitions/elements/rail.less +0 -1
  197. package/src/definitions/elements/reveal.less +1 -5
  198. package/src/definitions/elements/segment.less +5 -6
  199. package/src/definitions/elements/step.less +3 -4
  200. package/src/definitions/elements/text.less +0 -1
  201. package/src/definitions/globals/reset.less +0 -1
  202. package/src/definitions/globals/site.js +36 -57
  203. package/src/definitions/globals/site.less +0 -1
  204. package/src/definitions/modules/accordion.js +61 -72
  205. package/src/definitions/modules/accordion.less +0 -1
  206. package/src/definitions/modules/calendar.js +282 -331
  207. package/src/definitions/modules/calendar.less +2 -3
  208. package/src/definitions/modules/checkbox.js +57 -78
  209. package/src/definitions/modules/checkbox.less +0 -1
  210. package/src/definitions/modules/dimmer.js +38 -51
  211. package/src/definitions/modules/dimmer.less +1 -2
  212. package/src/definitions/modules/dropdown.js +434 -530
  213. package/src/definitions/modules/dropdown.less +27 -38
  214. package/src/definitions/modules/embed.js +54 -67
  215. package/src/definitions/modules/embed.less +0 -1
  216. package/src/definitions/modules/flyout.js +148 -167
  217. package/src/definitions/modules/flyout.less +0 -1
  218. package/src/definitions/modules/modal.js +160 -169
  219. package/src/definitions/modules/modal.less +3 -4
  220. package/src/definitions/modules/nag.js +73 -87
  221. package/src/definitions/modules/nag.less +0 -1
  222. package/src/definitions/modules/popup.js +104 -137
  223. package/src/definitions/modules/popup.less +18 -73
  224. package/src/definitions/modules/progress.js +74 -96
  225. package/src/definitions/modules/progress.less +3 -13
  226. package/src/definitions/modules/rating.js +48 -60
  227. package/src/definitions/modules/rating.less +0 -1
  228. package/src/definitions/modules/search.js +177 -197
  229. package/src/definitions/modules/search.less +2 -4
  230. package/src/definitions/modules/shape.js +58 -68
  231. package/src/definitions/modules/shape.less +0 -1
  232. package/src/definitions/modules/sidebar.js +80 -100
  233. package/src/definitions/modules/sidebar.less +0 -1
  234. package/src/definitions/modules/slider.js +168 -182
  235. package/src/definitions/modules/slider.less +0 -1
  236. package/src/definitions/modules/sticky.js +94 -116
  237. package/src/definitions/modules/sticky.less +0 -1
  238. package/src/definitions/modules/tab.js +82 -114
  239. package/src/definitions/modules/tab.less +0 -1
  240. package/src/definitions/modules/toast.js +63 -73
  241. package/src/definitions/modules/toast.less +0 -1
  242. package/src/definitions/modules/transition.js +60 -84
  243. package/src/definitions/modules/transition.less +1 -2
  244. package/src/definitions/views/ad.less +0 -1
  245. package/src/definitions/views/card.less +0 -1
  246. package/src/definitions/views/comment.less +0 -1
  247. package/src/definitions/views/feed.less +0 -1
  248. package/src/definitions/views/item.less +0 -1
  249. package/src/definitions/views/statistic.less +0 -1
  250. package/src/semantic.less +1 -1
  251. package/src/themes/amazon/elements/button.overrides +1 -1
  252. package/src/themes/amazon/elements/button.variables +5 -6
  253. package/src/themes/amazon/globals/site.variables +2 -3
  254. package/src/themes/bookish/elements/header.variables +2 -2
  255. package/src/themes/bootstrap3/elements/button.variables +4 -5
  256. package/src/themes/chubby/collections/menu.variables +1 -1
  257. package/src/themes/chubby/elements/button.overrides +4 -4
  258. package/src/themes/chubby/modules/accordion.overrides +1 -1
  259. package/src/themes/chubby/views/comment.overrides +2 -2
  260. package/src/themes/chubby/views/comment.variables +2 -2
  261. package/src/themes/classic/collections/table.variables +2 -2
  262. package/src/themes/classic/elements/button.variables +11 -11
  263. package/src/themes/classic/modules/progress.variables +2 -2
  264. package/src/themes/classic/views/card.variables +2 -2
  265. package/src/themes/default/collections/form.variables +2 -3
  266. package/src/themes/default/collections/menu.variables +28 -28
  267. package/src/themes/default/collections/message.variables +1 -1
  268. package/src/themes/default/collections/table.variables +4 -4
  269. package/src/themes/default/elements/button.variables +9 -10
  270. package/src/themes/default/elements/divider.variables +1 -1
  271. package/src/themes/default/elements/icon.variables +2 -2
  272. package/src/themes/default/elements/image.variables +1 -1
  273. package/src/themes/default/elements/input.variables +2 -2
  274. package/src/themes/default/elements/label.variables +4 -4
  275. package/src/themes/default/elements/list.variables +1 -1
  276. package/src/themes/default/elements/placeholder.variables +6 -6
  277. package/src/themes/default/elements/segment.variables +8 -8
  278. package/src/themes/default/globals/reset.overrides +45 -201
  279. package/src/themes/default/globals/site.variables +50 -50
  280. package/src/themes/default/globals/variation.variables +3 -2
  281. package/src/themes/default/modules/accordion.variables +0 -1
  282. package/src/themes/default/modules/checkbox.variables +1 -1
  283. package/src/themes/default/modules/dimmer.variables +12 -12
  284. package/src/themes/default/modules/dropdown.variables +17 -16
  285. package/src/themes/default/modules/embed.variables +2 -2
  286. package/src/themes/default/modules/flyout.variables +3 -3
  287. package/src/themes/default/modules/modal.variables +14 -14
  288. package/src/themes/default/modules/nag.variables +1 -1
  289. package/src/themes/default/modules/rating.variables +1 -1
  290. package/src/themes/default/modules/search.variables +1 -1
  291. package/src/themes/default/modules/shape.variables +1 -1
  292. package/src/themes/default/modules/sidebar.variables +2 -2
  293. package/src/themes/default/modules/toast.variables +4 -4
  294. package/src/themes/default/views/card.variables +6 -7
  295. package/src/themes/default/views/feed.variables +4 -4
  296. package/src/themes/default/views/item.variables +2 -3
  297. package/src/themes/flat/collections/form.variables +1 -1
  298. package/src/themes/flat/globals/site.variables +9 -9
  299. package/src/themes/github/collections/form.overrides +3 -3
  300. package/src/themes/github/collections/form.variables +3 -3
  301. package/src/themes/github/collections/menu.overrides +1 -1
  302. package/src/themes/github/collections/menu.variables +10 -10
  303. package/src/themes/github/collections/message.variables +6 -6
  304. package/src/themes/github/elements/button.variables +17 -17
  305. package/src/themes/github/elements/input.variables +3 -3
  306. package/src/themes/github/elements/segment.variables +2 -2
  307. package/src/themes/github/elements/step.overrides +4 -4
  308. package/src/themes/github/elements/step.variables +3 -3
  309. package/src/themes/github/globals/site.variables +2 -2
  310. package/src/themes/github/modules/dropdown.variables +1 -3
  311. package/src/themes/gmail/collections/message.variables +2 -2
  312. package/src/themes/material/collections/menu.variables +1 -1
  313. package/src/themes/material/elements/button.overrides +4 -4
  314. package/src/themes/material/elements/button.variables +5 -5
  315. package/src/themes/material/modules/dropdown.variables +1 -1
  316. package/src/themes/material/modules/modal.variables +1 -1
  317. package/src/themes/raised/elements/button.variables +1 -1
  318. package/src/themes/round/elements/button.variables +12 -12
  319. package/src/themes/striped/modules/progress.overrides +3 -3
  320. package/src/themes/timeline/views/feed.variables +2 -2
  321. package/src/themes/twitter/elements/button.overrides +1 -1
  322. package/src/themes/twitter/elements/button.variables +4 -5
  323. package/tasks/admin/components/create.js +12 -15
  324. package/tasks/admin/components/init.js +11 -12
  325. package/tasks/admin/components/update.js +19 -20
  326. package/tasks/admin/distributions/create.js +30 -51
  327. package/tasks/admin/distributions/init.js +11 -12
  328. package/tasks/admin/distributions/update.js +18 -19
  329. package/tasks/admin/register.js +7 -7
  330. package/tasks/build/assets.js +1 -1
  331. package/tasks/build/css.js +5 -5
  332. package/tasks/build/javascript.js +1 -1
  333. package/tasks/config/admin/github.js +1 -1
  334. package/tasks/config/admin/templates/css-package.js +1 -1
  335. package/tasks/config/admin/templates/less-package.js +1 -1
  336. package/tasks/config/project/config.js +10 -10
  337. package/tasks/config/project/install.js +12 -12
  338. package/tasks/config/project/release.js +6 -12
  339. package/tasks/config/tasks.js +15 -11
  340. package/tasks/config/user.js +1 -4
  341. package/tasks/docs/metadata.js +18 -20
  342. package/tasks/install.js +14 -12
  343. package/test/meteor/assets.js +4 -4
  344. package/test/meteor/fonts.js +10 -11
  345. package/test/modules/module.spec.js +18 -18
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * # Fomantic-UI 2.10.0-beta.8+62e258f - API
2
+ * # Fomantic-UI 2.10.0-beta.81+4f706c2 - API
3
3
  * https://github.com/fomantic/Fomantic-UI/
4
4
  *
5
5
  *
@@ -23,20 +23,20 @@
23
23
  ? window
24
24
  : globalThis;
25
25
 
26
- $.fn.api = function (parameters) {
26
+ $.fn.api = function (...args) {
27
27
  // use window context if none specified
28
- let $allModules = isFunction(this)
28
+ const $allModules = isFunction(this)
29
29
  ? $(window)
30
30
  : $(this);
31
31
  let time = Date.now();
32
32
  let performance = [];
33
33
 
34
- let query = arguments[0];
35
- let methodInvoked = typeof query === 'string';
36
- let queryArguments = [].slice.call(arguments, 1);
37
- let contextCheck = function (context, win) {
34
+ const parameters = args[0];
35
+ const methodInvoked = typeof parameters === 'string';
36
+ const queryArguments = args.slice(1);
37
+ const contextCheck = function (context, win) {
38
38
  let $context;
39
- if ([window, document].indexOf(context) >= 0) {
39
+ if ([window, document].includes(context)) {
40
40
  $context = $(context);
41
41
  } else {
42
42
  $context = $(win.document).find(context);
@@ -50,28 +50,28 @@
50
50
  let returnedValue;
51
51
 
52
52
  $allModules.each(function () {
53
- let settings = $.isPlainObject(parameters)
53
+ const settings = $.isPlainObject(parameters)
54
54
  ? $.extend(true, {}, $.fn.api.settings, parameters)
55
55
  : $.extend({}, $.fn.api.settings);
56
56
 
57
57
  // internal aliases
58
- let regExp = settings.regExp;
59
- let namespace = settings.namespace;
60
- let metadata = settings.metadata;
61
- let selector = settings.selector;
62
- let error = settings.error;
63
- let className = settings.className;
58
+ const regExp = settings.regExp;
59
+ const namespace = settings.namespace;
60
+ const metadata = settings.metadata;
61
+ const selector = settings.selector;
62
+ const error = settings.error;
63
+ const className = settings.className;
64
64
 
65
65
  // define namespaces for modules
66
- let eventNamespace = '.' + namespace;
67
- let moduleNamespace = 'module-' + namespace;
66
+ const eventNamespace = '.' + namespace;
67
+ const moduleNamespace = 'module-' + namespace;
68
68
 
69
69
  // element that creates request
70
- let $module = $(this);
71
- let $form = $module.closest(selector.form);
70
+ const $module = $(this);
71
+ const $form = $module.closest(selector.form);
72
72
 
73
73
  // context used for state
74
- let $context = settings.stateContext ? contextCheck(settings.stateContext, window) : $module;
74
+ const $context = settings.stateContext ? contextCheck(settings.stateContext, window) : $module;
75
75
 
76
76
  // request details
77
77
  let ajaxSettings;
@@ -82,12 +82,11 @@
82
82
  let originalData;
83
83
 
84
84
  // standard module
85
- let element = this;
86
- let context = $context[0];
85
+ const element = this;
86
+ const context = $context[0];
87
87
  let instance = $module.data(moduleNamespace);
88
- let module;
89
88
 
90
- module = {
89
+ const module = {
91
90
 
92
91
  initialize: function () {
93
92
  if (!methodInvoked) {
@@ -113,7 +112,7 @@
113
112
 
114
113
  bind: {
115
114
  events: function () {
116
- let triggerEvent = module.get.event();
115
+ const triggerEvent = module.get.event();
117
116
  if (triggerEvent) {
118
117
  module.verbose('Attaching API events to element', triggerEvent);
119
118
  $module
@@ -130,7 +129,7 @@
130
129
  if (response !== undefined && typeof response === 'string') {
131
130
  try {
132
131
  response = JSON.parse(response);
133
- } catch (e) {
132
+ } catch {
134
133
  // isn't json string
135
134
  }
136
135
  }
@@ -141,13 +140,7 @@
141
140
 
142
141
  read: {
143
142
  cachedResponse: function (url) {
144
- let response;
145
- if (window.Storage === undefined) {
146
- module.error(error.noStorage);
147
-
148
- return;
149
- }
150
- response = sessionStorage.getItem(url + module.get.normalizedData());
143
+ let response = window.sessionStorage.getItem(url + module.get.normalizedData());
151
144
  module.debug('Using cached response', url, settings.data, response);
152
145
  response = module.decode.json(response);
153
146
 
@@ -156,15 +149,10 @@
156
149
  },
157
150
  write: {
158
151
  cachedResponse: function (url, response) {
159
- if (window.Storage === undefined) {
160
- module.error(error.noStorage);
161
-
162
- return;
163
- }
164
152
  if ($.isPlainObject(response)) {
165
153
  response = JSON.stringify(response);
166
154
  }
167
- sessionStorage.setItem(url + module.get.normalizedData(), response);
155
+ window.sessionStorage.setItem(url + module.get.normalizedData(), response);
168
156
  module.verbose('Storing cached response for url', url, settings.data, response);
169
157
  },
170
158
  },
@@ -252,22 +240,20 @@
252
240
  if (!settings.throttle) {
253
241
  module.debug('Sending request', data, ajaxSettings.method);
254
242
  module.send.request();
243
+ } else if (!settings.throttleFirstRequest && !module.timer) {
244
+ module.debug('Sending request', data, ajaxSettings.method);
245
+ module.send.request();
246
+ module.timer = setTimeout(function () {}, settings.throttle);
255
247
  } else {
256
- if (!settings.throttleFirstRequest && !module.timer) {
257
- module.debug('Sending request', data, ajaxSettings.method);
248
+ module.debug('Throttling request', settings.throttle);
249
+ clearTimeout(module.timer);
250
+ module.timer = setTimeout(function () {
251
+ if (module.timer) {
252
+ delete module.timer;
253
+ }
254
+ module.debug('Sending throttled request', data, ajaxSettings.method);
258
255
  module.send.request();
259
- module.timer = setTimeout(function () {}, settings.throttle);
260
- } else {
261
- module.debug('Throttling request', settings.throttle);
262
- clearTimeout(module.timer);
263
- module.timer = setTimeout(function () {
264
- if (module.timer) {
265
- delete module.timer;
266
- }
267
- module.debug('Sending throttled request', data, ajaxSettings.method);
268
- module.send.request();
269
- }, settings.throttle);
270
- }
256
+ }, settings.throttle);
271
257
  }
272
258
  },
273
259
 
@@ -344,20 +330,16 @@
344
330
  },
345
331
 
346
332
  add: {
347
- urlData: function (url, urlData) {
333
+ urlData: function (url, urlData = settings.urlData) {
348
334
  let requiredVariables;
349
335
  let optionalVariables;
350
336
  if (url) {
351
337
  requiredVariables = url.match(regExp.required);
352
338
  optionalVariables = url.match(regExp.optional);
353
- urlData = urlData || settings.urlData;
354
339
  if (requiredVariables) {
355
340
  module.debug('Looking for required URL variables', requiredVariables);
356
341
  $.each(requiredVariables, function (index, templatedString) {
357
- // allow legacy {$var} style
358
- let variable = templatedString.indexOf('$') !== -1
359
- ? templatedString.slice(2, -1)
360
- : templatedString.slice(1, -1);
342
+ const variable = templatedString.slice(1, -1);
361
343
  let value = $.isPlainObject(urlData) && urlData[variable] !== undefined
362
344
  ? urlData[variable]
363
345
  : ($module.data(variable) !== undefined
@@ -383,11 +365,8 @@
383
365
  if (optionalVariables) {
384
366
  module.debug('Looking for optional URL variables', requiredVariables);
385
367
  $.each(optionalVariables, function (index, templatedString) {
386
- // allow legacy {/$var} style
387
- let variable = templatedString.indexOf('$') !== -1
388
- ? templatedString.slice(3, -1)
389
- : templatedString.slice(2, -1);
390
- let value = $.isPlainObject(urlData) && urlData[variable] !== undefined
368
+ const variable = templatedString.slice(2, -1);
369
+ const value = $.isPlainObject(urlData) && urlData[variable] !== undefined
391
370
  ? urlData[variable]
392
371
  : ($module.data(variable) !== undefined
393
372
  ? $module.data(variable)
@@ -401,7 +380,7 @@
401
380
  } else {
402
381
  module.verbose('Optional variable not found', variable);
403
382
  // remove preceding slash if set
404
- url = url.indexOf('/' + templatedString) !== -1
383
+ url = url.includes('/' + templatedString)
405
384
  ? url.replace('/' + templatedString, '')
406
385
  : url.replace(templatedString, '');
407
386
  }
@@ -411,22 +390,20 @@
411
390
 
412
391
  return url;
413
392
  },
414
- formData: function (data) {
393
+ formData: function (data = originalData || settings.data) {
415
394
  let formData = {};
416
- let hasOtherData;
417
- let useFormDataApi = settings.serializeForm === 'formdata';
418
- data = data || originalData || settings.data;
419
- hasOtherData = $.isPlainObject(data);
395
+ const useFormDataApi = settings.serializeForm === 'formdata';
396
+ const hasOtherData = $.isPlainObject(data);
420
397
 
421
398
  if (useFormDataApi) {
422
399
  formData = new FormData($form[0]);
423
400
  settings.processData = settings.processData !== undefined ? settings.processData : false;
424
401
  settings.contentType = settings.contentType !== undefined ? settings.contentType : false;
425
402
  } else {
426
- let formArray = $form.serializeArray();
427
- let pushes = {};
428
- let pushValues = {};
429
- let build = function (base, key, value) {
403
+ const formArray = $form.serializeArray();
404
+ const pushes = {};
405
+ const pushValues = {};
406
+ const build = function (base, key, value) {
430
407
  base[key] = value;
431
408
 
432
409
  return base;
@@ -441,15 +418,15 @@
441
418
  if (!regExp.validate.test(el.name)) {
442
419
  return;
443
420
  }
444
- let isCheckbox = $('[name="' + CSS.escape(el.name) + '"]', $form).attr('type') === 'checkbox';
445
- let floatValue = parseFloat(el.value);
421
+ const isCheckbox = $('[name="' + CSS.escape(el.name) + '"]', $form).attr('type') === 'checkbox';
422
+ const floatValue = Number.parseFloat(el.value);
446
423
  let value = (isCheckbox && el.value === 'on')
447
424
  || el.value === 'true'
448
425
  || (String(floatValue) === el.value
449
426
  ? floatValue
450
427
  : (el.value === 'false' ? false : el.value));
451
- let nameKeys = el.name.match(regExp.key) || [];
452
- let pushKey = el.name.replace(/\[]$/, '');
428
+ const nameKeys = el.name.match(regExp.key) || [];
429
+ const pushKey = el.name.replace(/\[]$/, '');
453
430
  if (!(pushKey in pushes)) {
454
431
  pushes[pushKey] = 0;
455
432
  pushValues[pushKey] = value;
@@ -458,12 +435,12 @@
458
435
  } else {
459
436
  pushValues[pushKey] = [pushValues[pushKey], value];
460
437
  }
461
- if (pushKey.indexOf('[]') === -1) {
438
+ if (!pushKey.includes('[]')) {
462
439
  value = pushValues[pushKey];
463
440
  }
464
441
 
465
442
  while (nameKeys.length > 0) {
466
- let k = nameKeys.pop();
443
+ const k = nameKeys.pop();
467
444
 
468
445
  if (k === '' && !Array.isArray(value)) { // foo[]
469
446
  value = build([], pushes[pushKey]++, value);
@@ -521,17 +498,15 @@
521
498
  // nothing special
522
499
  },
523
500
  done: function (response, textStatus, xhr) {
524
- let context = this;
525
- let elapsedTime = Date.now() - requestStartTime;
501
+ const context = this;
502
+ const elapsedTime = Date.now() - requestStartTime;
526
503
  let timeLeft = settings.loadingDuration - elapsedTime;
527
- let translatedResponse = isFunction(settings.onResponse)
504
+ const translatedResponse = isFunction(settings.onResponse)
528
505
  ? (module.is.expectingJSON() && !settings.rawResponse
529
506
  ? settings.onResponse.call(context, $.extend(true, {}, response))
530
507
  : settings.onResponse.call(context, response))
531
508
  : false;
532
- timeLeft = timeLeft > 0
533
- ? timeLeft
534
- : 0;
509
+ timeLeft = Math.max(timeLeft, 0);
535
510
  if (translatedResponse) {
536
511
  module.debug('Modified API response in onResponse callback', settings.onResponse, translatedResponse, response);
537
512
  response = translatedResponse;
@@ -548,12 +523,10 @@
548
523
  }, timeLeft);
549
524
  },
550
525
  fail: function (xhr, status, httpMessage) {
551
- let context = this;
552
- let elapsedTime = Date.now() - requestStartTime;
526
+ const context = this;
527
+ const elapsedTime = Date.now() - requestStartTime;
553
528
  let timeLeft = settings.loadingDuration - elapsedTime;
554
- timeLeft = timeLeft > 0
555
- ? timeLeft
556
- : 0;
529
+ timeLeft = Math.max(timeLeft, 0);
557
530
  if (timeLeft > 0) {
558
531
  module.debug('Response completed early delaying state change by', timeLeft);
559
532
  }
@@ -591,8 +564,8 @@
591
564
  },
592
565
  fail: function (xhr, status, httpMessage) {
593
566
  // pull response from xhr if available
594
- let response = module.get.responseFromXHR(xhr);
595
- let errorMessage = module.get.errorFromRequest(response, status, httpMessage);
567
+ const response = module.get.responseFromXHR(xhr);
568
+ const errorMessage = module.get.errorFromRequest(response, status, httpMessage);
596
569
  if (status === 'aborted') {
597
570
  module.debug('XHR Aborted (Most likely caused by page navigation or CORS Policy)', status, httpMessage);
598
571
  settings.onAbort.call(context, status, $module, xhr);
@@ -601,15 +574,13 @@
601
574
  }
602
575
  if (status === 'invalid') {
603
576
  module.debug('JSON did not pass success test. A server-side error has most likely occurred', response);
604
- } else if (status === 'error') {
605
- if (xhr !== undefined) {
606
- module.debug('XHR produced a server error', status, httpMessage);
607
- // make sure we have an error to display to console
608
- if ((xhr.status < 200 || xhr.status >= 300) && httpMessage !== undefined && httpMessage !== '') {
609
- module.error(error.statusMessage + httpMessage, ajaxSettings.url);
610
- }
611
- settings.onError.call(context, errorMessage, $module, xhr);
577
+ } else if (status === 'error' && xhr !== undefined) {
578
+ module.debug('XHR produced a server error', status, httpMessage);
579
+ // make sure we have an error to display to console
580
+ if ((xhr.status < 200 || xhr.status >= 300) && httpMessage !== undefined && httpMessage !== '') {
581
+ module.error(error.statusMessage + httpMessage, ajaxSettings.url);
612
582
  }
583
+ settings.onError.call(context, errorMessage, $module, xhr);
613
584
  }
614
585
 
615
586
  if (settings.errorDuration && status !== 'aborted') {
@@ -639,16 +610,15 @@
639
610
 
640
611
  mockedXHR: function () {
641
612
  // xhr does not simulate these properties of xhr but must return them
642
- let textStatus = false;
643
- let status = false;
644
- let httpMessage = false;
645
- let responder = settings.mockResponse || settings.response;
646
- let asyncResponder = settings.mockResponseAsync || settings.responseAsync;
613
+ const textStatus = false;
614
+ const status = false;
615
+ const httpMessage = false;
616
+ const responder = settings.mockResponse || settings.response;
617
+ const asyncResponder = settings.mockResponseAsync || settings.responseAsync;
647
618
  let asyncCallback;
648
619
  let response;
649
- let mockedXHR;
650
620
 
651
- mockedXHR = $.Deferred()
621
+ const mockedXHR = $.Deferred()
652
622
  .always(module.event.xhr.complete)
653
623
  .done(module.event.xhr.done)
654
624
  .fail(module.event.xhr.fail);
@@ -681,9 +651,8 @@
681
651
  },
682
652
 
683
653
  xhr: function () {
684
- let xhr;
685
654
  // ajax request promise
686
- xhr = $.ajax(ajaxSettings)
655
+ const xhr = $.ajax(ajaxSettings)
687
656
  .always(module.event.xhr.always)
688
657
  .done(module.event.xhr.done)
689
658
  .fail(module.event.xhr.fail);
@@ -741,25 +710,7 @@
741
710
  return module.xhr || false;
742
711
  },
743
712
  settings: function () {
744
- let runSettings;
745
- runSettings = settings.beforeSend.call($module, settings);
746
- if (runSettings) {
747
- if (runSettings.success !== undefined) {
748
- module.debug('Legacy success callback detected', runSettings);
749
- module.error(error.legacyParameters, runSettings.success);
750
- runSettings.onSuccess = runSettings.success;
751
- }
752
- if (runSettings.failure !== undefined) {
753
- module.debug('Legacy failure callback detected', runSettings);
754
- module.error(error.legacyParameters, runSettings.failure);
755
- runSettings.onFailure = runSettings.failure;
756
- }
757
- if (runSettings.complete !== undefined) {
758
- module.debug('Legacy complete callback detected', runSettings);
759
- module.error(error.legacyParameters, runSettings.complete);
760
- runSettings.onComplete = runSettings.complete;
761
- }
762
- }
713
+ const runSettings = settings.beforeSend.call(element, settings);
763
714
  if (runSettings === undefined) {
764
715
  module.error(error.noReturnedValue);
765
716
  }
@@ -772,9 +723,9 @@
772
723
  : $.extend(true, {}, settings);
773
724
  },
774
725
  urlEncodedValue: function (value) {
775
- let decodedValue = window.decodeURIComponent(value);
776
- let encodedValue = window.encodeURIComponent(value);
777
- let alreadyEncoded = decodedValue !== value;
726
+ const decodedValue = window.decodeURIComponent(value);
727
+ const encodedValue = window.encodeURIComponent(value);
728
+ const alreadyEncoded = decodedValue !== value;
778
729
  if (alreadyEncoded) {
779
730
  module.debug('URL value is already encoded, avoiding double encoding', value);
780
731
 
@@ -785,7 +736,7 @@
785
736
  return encodedValue;
786
737
  },
787
738
  defaultData: function () {
788
- let data = {};
739
+ const data = {};
789
740
  if (!isWindow(element)) {
790
741
  if (module.is.input()) {
791
742
  data.value = $module.val();
@@ -819,8 +770,7 @@
819
770
 
820
771
  return settings.on;
821
772
  },
822
- templatedURL: function (action) {
823
- action = action || settings.action || $module.data(metadata.action) || false;
773
+ templatedURL: function (action = settings.action || $module.data(metadata.action) || false) {
824
774
  url = settings.url || $module.data(metadata.url) || false;
825
775
  if (url) {
826
776
  module.debug('Using specified url', url);
@@ -845,7 +795,7 @@
845
795
  },
846
796
 
847
797
  abort: function () {
848
- let xhr = module.get.xhr();
798
+ const xhr = module.get.xhr();
849
799
  if (xhr && xhr.state() !== 'resolved') {
850
800
  module.debug('Cancelling API request');
851
801
  xhr.abort();
@@ -881,30 +831,30 @@
881
831
  return module[name];
882
832
  }
883
833
  },
884
- debug: function () {
834
+ debug: function (...args) {
885
835
  if (!settings.silent && settings.debug) {
886
836
  if (settings.performance) {
887
- module.performance.log(arguments);
837
+ module.performance.log(args);
888
838
  } else {
889
839
  module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
890
- module.debug.apply(console, arguments);
840
+ module.debug.apply(console, args);
891
841
  }
892
842
  }
893
843
  },
894
- verbose: function () {
844
+ verbose: function (...args) {
895
845
  if (!settings.silent && settings.verbose && settings.debug) {
896
846
  if (settings.performance) {
897
- module.performance.log(arguments);
847
+ module.performance.log(args);
898
848
  } else {
899
849
  module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
900
- module.verbose.apply(console, arguments);
850
+ module.verbose.apply(console, args);
901
851
  }
902
852
  }
903
853
  },
904
- error: function () {
854
+ error: function (...args) {
905
855
  if (!settings.silent) {
906
856
  module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
907
- module.error.apply(console, arguments);
857
+ module.error.apply(console, args);
908
858
  }
909
859
  },
910
860
  performance: {
@@ -919,7 +869,7 @@
919
869
  time = currentTime;
920
870
  performance.push({
921
871
  Name: message[0],
922
- Arguments: [].slice.call(message, 1) || '',
872
+ Arguments: message.slice(1),
923
873
  // 'Element' : element,
924
874
  'Execution Time': executionTime,
925
875
  });
@@ -940,30 +890,22 @@
940
890
  title += ' ' + totalTime + 'ms';
941
891
  if (performance.length > 0) {
942
892
  console.groupCollapsed(title);
943
- if (console.table) {
944
- console.table(performance);
945
- } else {
946
- $.each(performance, function (index, data) {
947
- console.log(data.Name + ': ' + data['Execution Time'] + 'ms');
948
- });
949
- }
893
+ console.table(performance);
950
894
  console.groupEnd();
951
895
  }
952
896
  performance = [];
953
897
  },
954
898
  },
955
- invoke: function (query, passedArguments, context) {
899
+ invoke: function (query, passedArguments = queryArguments, context = element) {
956
900
  let object = instance;
957
901
  let maxDepth;
958
902
  let found;
959
903
  let response;
960
- passedArguments = passedArguments || queryArguments;
961
- context = context || element;
962
904
  if (typeof query === 'string' && object !== undefined) {
963
905
  query = query.split(/[ .]/);
964
906
  maxDepth = query.length - 1;
965
907
  $.each(query, function (depth, value) {
966
- let camelCaseValue = depth !== maxDepth
908
+ const camelCaseValue = depth !== maxDepth
967
909
  ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
968
910
  : query;
969
911
  if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
@@ -1006,7 +948,7 @@
1006
948
  if (instance === undefined) {
1007
949
  module.initialize();
1008
950
  }
1009
- module.invoke(query);
951
+ module.invoke(parameters);
1010
952
  } else {
1011
953
  if (instance !== undefined) {
1012
954
  instance.invoke('destroy');
@@ -1132,12 +1074,10 @@
1132
1074
  error: 'There was an error with your request',
1133
1075
  exitConditions: 'API Request Aborted. Exit conditions met',
1134
1076
  JSONParse: 'JSON could not be parsed during error handling',
1135
- legacyParameters: 'You are using legacy API success callback names',
1136
1077
  method: 'The method you called is not defined',
1137
1078
  missingAction: 'API action used but no url was defined',
1138
1079
  missingURL: 'No URL specified for api event',
1139
1080
  noReturnedValue: 'The beforeSend callback must return a settings object, beforeSend ignored.',
1140
- noStorage: 'Caching responses locally requires session storage',
1141
1081
  parseError: 'There was an error parsing your request',
1142
1082
  requiredParameter: 'Missing a required URL parameter: ',
1143
1083
  statusMessage: 'Server gave an error: ',
@@ -1145,8 +1085,8 @@
1145
1085
  },
1146
1086
 
1147
1087
  regExp: {
1148
- required: /{\$*[\da-z]+}/gi,
1149
- optional: /{\/\$*[\da-z]+}/gi,
1088
+ required: /{[\da-z]+}/gi,
1089
+ optional: /{\/[\da-z]+}/gi,
1150
1090
  validate: /^[_a-z][\w-]*(?:\[[\w-]*])*$/i,
1151
1091
  key: /[\w-]+|(?=\[])/gi,
1152
1092
  push: /^$/,