fomantic-ui 2.10.0-beta.62 → 2.10.0-beta.64

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 (209) hide show
  1. package/.eslintrc.js +0 -1
  2. package/changelog-setup.js +10 -10
  3. package/dist/components/accordion.css +1 -1
  4. package/dist/components/accordion.js +40 -41
  5. package/dist/components/accordion.min.css +1 -1
  6. package/dist/components/accordion.min.js +2 -2
  7. package/dist/components/ad.css +1 -1
  8. package/dist/components/ad.min.css +1 -1
  9. package/dist/components/api.js +57 -61
  10. package/dist/components/api.min.js +2 -2
  11. package/dist/components/breadcrumb.css +1 -1
  12. package/dist/components/breadcrumb.min.css +1 -1
  13. package/dist/components/button.css +1 -1
  14. package/dist/components/button.min.css +1 -1
  15. package/dist/components/calendar.css +1 -1
  16. package/dist/components/calendar.js +186 -187
  17. package/dist/components/calendar.min.css +1 -1
  18. package/dist/components/calendar.min.js +2 -2
  19. package/dist/components/card.css +1 -1
  20. package/dist/components/card.min.css +1 -1
  21. package/dist/components/checkbox.css +1 -1
  22. package/dist/components/checkbox.js +29 -30
  23. package/dist/components/checkbox.min.css +1 -1
  24. package/dist/components/checkbox.min.js +2 -2
  25. package/dist/components/comment.css +1 -1
  26. package/dist/components/comment.min.css +1 -1
  27. package/dist/components/container.css +1 -1
  28. package/dist/components/container.min.css +1 -1
  29. package/dist/components/dimmer.css +1 -1
  30. package/dist/components/dimmer.js +22 -23
  31. package/dist/components/dimmer.min.css +1 -1
  32. package/dist/components/dimmer.min.js +2 -2
  33. package/dist/components/divider.css +1 -1
  34. package/dist/components/divider.min.css +1 -1
  35. package/dist/components/dropdown.css +1 -1
  36. package/dist/components/dropdown.js +293 -337
  37. package/dist/components/dropdown.min.css +1 -1
  38. package/dist/components/dropdown.min.js +2 -2
  39. package/dist/components/embed.css +1 -1
  40. package/dist/components/embed.js +33 -35
  41. package/dist/components/embed.min.css +1 -1
  42. package/dist/components/embed.min.js +2 -2
  43. package/dist/components/emoji.css +1 -1
  44. package/dist/components/emoji.min.css +1 -1
  45. package/dist/components/feed.css +1 -1
  46. package/dist/components/feed.min.css +1 -1
  47. package/dist/components/flag.css +1 -1
  48. package/dist/components/flag.min.css +1 -1
  49. package/dist/components/flyout.css +1 -1
  50. package/dist/components/flyout.js +74 -81
  51. package/dist/components/flyout.min.css +1 -1
  52. package/dist/components/flyout.min.js +2 -2
  53. package/dist/components/form.css +1 -1
  54. package/dist/components/form.js +141 -146
  55. package/dist/components/form.min.css +1 -1
  56. package/dist/components/form.min.js +2 -2
  57. package/dist/components/grid.css +1 -1
  58. package/dist/components/grid.min.css +1 -1
  59. package/dist/components/header.css +1 -1
  60. package/dist/components/header.min.css +1 -1
  61. package/dist/components/icon.css +1 -1
  62. package/dist/components/icon.min.css +1 -1
  63. package/dist/components/image.css +1 -1
  64. package/dist/components/image.min.css +1 -1
  65. package/dist/components/input.css +1 -1
  66. package/dist/components/input.min.css +1 -1
  67. package/dist/components/item.css +1 -1
  68. package/dist/components/item.min.css +1 -1
  69. package/dist/components/label.css +1 -1
  70. package/dist/components/label.min.css +1 -1
  71. package/dist/components/list.css +1 -1
  72. package/dist/components/list.min.css +1 -1
  73. package/dist/components/loader.css +1 -1
  74. package/dist/components/loader.min.css +1 -1
  75. package/dist/components/menu.css +1 -1
  76. package/dist/components/menu.min.css +1 -1
  77. package/dist/components/message.css +1 -1
  78. package/dist/components/message.min.css +1 -1
  79. package/dist/components/modal.css +1 -1
  80. package/dist/components/modal.js +80 -81
  81. package/dist/components/modal.min.css +1 -1
  82. package/dist/components/modal.min.js +2 -2
  83. package/dist/components/nag.css +1 -1
  84. package/dist/components/nag.js +27 -28
  85. package/dist/components/nag.min.css +1 -1
  86. package/dist/components/nag.min.js +2 -2
  87. package/dist/components/placeholder.css +1 -1
  88. package/dist/components/placeholder.min.css +1 -1
  89. package/dist/components/popup.css +1 -1
  90. package/dist/components/popup.js +62 -72
  91. package/dist/components/popup.min.css +1 -1
  92. package/dist/components/popup.min.js +2 -2
  93. package/dist/components/progress.css +1 -1
  94. package/dist/components/progress.js +51 -55
  95. package/dist/components/progress.min.css +1 -1
  96. package/dist/components/progress.min.js +2 -2
  97. package/dist/components/rail.css +1 -1
  98. package/dist/components/rail.min.css +1 -1
  99. package/dist/components/rating.css +1 -1
  100. package/dist/components/rating.js +33 -34
  101. package/dist/components/rating.min.css +1 -1
  102. package/dist/components/rating.min.js +2 -2
  103. package/dist/components/reset.css +1 -1
  104. package/dist/components/reset.min.css +1 -1
  105. package/dist/components/reveal.css +1 -1
  106. package/dist/components/reveal.min.css +1 -1
  107. package/dist/components/search.css +1 -1
  108. package/dist/components/search.js +96 -109
  109. package/dist/components/search.min.css +1 -1
  110. package/dist/components/search.min.js +2 -2
  111. package/dist/components/segment.css +1 -1
  112. package/dist/components/segment.min.css +1 -1
  113. package/dist/components/shape.css +1 -1
  114. package/dist/components/shape.js +44 -45
  115. package/dist/components/shape.min.css +1 -1
  116. package/dist/components/shape.min.js +2 -2
  117. package/dist/components/sidebar.css +1 -1
  118. package/dist/components/sidebar.js +56 -64
  119. package/dist/components/sidebar.min.css +1 -1
  120. package/dist/components/sidebar.min.js +2 -2
  121. package/dist/components/site.css +1 -1
  122. package/dist/components/site.js +16 -17
  123. package/dist/components/site.min.css +1 -1
  124. package/dist/components/site.min.js +2 -2
  125. package/dist/components/slider.css +1 -1
  126. package/dist/components/slider.js +143 -148
  127. package/dist/components/slider.min.css +1 -1
  128. package/dist/components/slider.min.js +2 -2
  129. package/dist/components/state.js +24 -25
  130. package/dist/components/state.min.js +2 -2
  131. package/dist/components/statistic.css +1 -1
  132. package/dist/components/statistic.min.css +1 -1
  133. package/dist/components/step.css +1 -1
  134. package/dist/components/step.min.css +1 -1
  135. package/dist/components/sticky.css +1 -1
  136. package/dist/components/sticky.js +42 -43
  137. package/dist/components/sticky.min.css +1 -1
  138. package/dist/components/sticky.min.js +2 -2
  139. package/dist/components/tab.css +1 -1
  140. package/dist/components/tab.js +57 -66
  141. package/dist/components/tab.min.css +1 -1
  142. package/dist/components/tab.min.js +2 -2
  143. package/dist/components/table.css +1 -1
  144. package/dist/components/table.min.css +1 -1
  145. package/dist/components/text.css +1 -1
  146. package/dist/components/text.min.css +1 -1
  147. package/dist/components/toast.css +1 -1
  148. package/dist/components/toast.js +32 -33
  149. package/dist/components/toast.min.css +1 -1
  150. package/dist/components/toast.min.js +2 -2
  151. package/dist/components/transition.css +1 -1
  152. package/dist/components/transition.js +38 -45
  153. package/dist/components/transition.min.css +1 -1
  154. package/dist/components/transition.min.js +2 -2
  155. package/dist/components/visibility.js +76 -77
  156. package/dist/components/visibility.min.js +2 -2
  157. package/dist/semantic.css +53 -53
  158. package/dist/semantic.js +1753 -1884
  159. package/dist/semantic.min.css +1 -1
  160. package/dist/semantic.min.js +2 -2
  161. package/package.json +1 -1
  162. package/scripts/nightly-version.js +3 -3
  163. package/src/definitions/behaviors/api.js +56 -60
  164. package/src/definitions/behaviors/form.js +140 -145
  165. package/src/definitions/behaviors/state.js +23 -24
  166. package/src/definitions/behaviors/visibility.js +75 -76
  167. package/src/definitions/globals/site.js +15 -16
  168. package/src/definitions/modules/accordion.js +39 -40
  169. package/src/definitions/modules/calendar.js +185 -186
  170. package/src/definitions/modules/checkbox.js +28 -29
  171. package/src/definitions/modules/dimmer.js +21 -22
  172. package/src/definitions/modules/dropdown.js +292 -336
  173. package/src/definitions/modules/embed.js +32 -34
  174. package/src/definitions/modules/flyout.js +73 -80
  175. package/src/definitions/modules/modal.js +79 -80
  176. package/src/definitions/modules/nag.js +26 -27
  177. package/src/definitions/modules/popup.js +61 -71
  178. package/src/definitions/modules/progress.js +50 -54
  179. package/src/definitions/modules/rating.js +32 -33
  180. package/src/definitions/modules/search.js +95 -108
  181. package/src/definitions/modules/shape.js +43 -44
  182. package/src/definitions/modules/sidebar.js +55 -63
  183. package/src/definitions/modules/slider.js +142 -147
  184. package/src/definitions/modules/sticky.js +41 -42
  185. package/src/definitions/modules/tab.js +56 -65
  186. package/src/definitions/modules/toast.js +31 -32
  187. package/src/definitions/modules/transition.js +37 -44
  188. package/tasks/admin/components/create.js +11 -11
  189. package/tasks/admin/components/init.js +11 -12
  190. package/tasks/admin/components/update.js +19 -20
  191. package/tasks/admin/distributions/create.js +24 -36
  192. package/tasks/admin/distributions/init.js +11 -12
  193. package/tasks/admin/distributions/update.js +18 -19
  194. package/tasks/admin/register.js +7 -7
  195. package/tasks/build/assets.js +1 -1
  196. package/tasks/build/css.js +1 -1
  197. package/tasks/build/javascript.js +1 -1
  198. package/tasks/config/admin/github.js +1 -1
  199. package/tasks/config/admin/templates/css-package.js +1 -1
  200. package/tasks/config/admin/templates/less-package.js +1 -1
  201. package/tasks/config/project/config.js +6 -6
  202. package/tasks/config/project/install.js +12 -12
  203. package/tasks/config/project/release.js +5 -11
  204. package/tasks/config/tasks.js +5 -5
  205. package/tasks/config/user.js +1 -4
  206. package/tasks/docs/metadata.js +11 -12
  207. package/tasks/install.js +9 -9
  208. package/test/meteor/assets.js +1 -1
  209. package/test/modules/module.spec.js +18 -18
@@ -20,19 +20,19 @@
20
20
  : globalThis;
21
21
 
22
22
  $.fn.form = function (...args) {
23
- let $allModules = $(this);
24
- let $window = $(window);
23
+ const $allModules = $(this);
24
+ const $window = $(window);
25
25
 
26
26
  let time = Date.now();
27
27
  let performance = [];
28
28
 
29
- let parameters = args[0];
30
- let methodInvoked = typeof parameters === 'string';
31
- let queryArguments = args.slice(1);
29
+ const parameters = args[0];
30
+ const methodInvoked = typeof parameters === 'string';
31
+ const queryArguments = args.slice(1);
32
32
  let returnedValue;
33
33
  $allModules.each(function () {
34
- let $module = $(this);
35
- let element = this;
34
+ const $module = $(this);
35
+ const element = this;
36
36
 
37
37
  let formErrors = [];
38
38
  let formErrorsTracker = {};
@@ -64,12 +64,11 @@
64
64
 
65
65
  let submitting = false;
66
66
  let dirty = false;
67
- let history = ['clean', 'clean'];
67
+ const history = ['clean', 'clean'];
68
68
 
69
69
  let instance;
70
- let module;
71
70
 
72
- module = {
71
+ const module = {
73
72
 
74
73
  initialize: function () {
75
74
  // settings grabbed at run time
@@ -162,9 +161,9 @@
162
161
  $module.on('keydown' + eventNamespace, selector.field, module.event.field.keydown);
163
162
  }
164
163
  $field.each(function (index, el) {
165
- let $input = $(el);
166
- let type = $input.prop('type');
167
- let inputEvent = module.get.changeEvent(type, $input);
164
+ const $input = $(el);
165
+ const type = $input.prop('type');
166
+ const inputEvent = module.get.changeEvent(type, $input);
168
167
  $input.on(inputEvent + eventNamespace, module.event.field.change);
169
168
  });
170
169
 
@@ -195,16 +194,16 @@
195
194
 
196
195
  clear: function () {
197
196
  $field.each(function (index, el) {
198
- let $field = $(el);
199
- let $element = $field.parent();
200
- let $fieldGroup = $field.closest($group);
201
- let $prompt = $fieldGroup.find(selector.prompt);
202
- let $calendar = $field.closest(selector.uiCalendar);
203
- let defaultValue = $field.data(metadata.defaultValue) || '';
204
- let isCheckbox = $field.is(selector.checkbox);
205
- let isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown');
206
- let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
207
- let isErrored = $fieldGroup.hasClass(className.error);
197
+ const $field = $(el);
198
+ const $element = $field.parent();
199
+ const $fieldGroup = $field.closest($group);
200
+ const $prompt = $fieldGroup.find(selector.prompt);
201
+ const $calendar = $field.closest(selector.uiCalendar);
202
+ const defaultValue = $field.data(metadata.defaultValue) || '';
203
+ const isCheckbox = $field.is(selector.checkbox);
204
+ const isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown');
205
+ const isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
206
+ const isErrored = $fieldGroup.hasClass(className.error);
208
207
  if (isErrored) {
209
208
  module.verbose('Resetting error on field', $fieldGroup);
210
209
  $fieldGroup.removeClass(className.error);
@@ -227,17 +226,17 @@
227
226
 
228
227
  reset: function () {
229
228
  $field.each(function (index, el) {
230
- let $field = $(el);
231
- let $element = $field.parent();
232
- let $fieldGroup = $field.closest($group);
233
- let $calendar = $field.closest(selector.uiCalendar);
234
- let $prompt = $fieldGroup.find(selector.prompt);
235
- let defaultValue = $field.data(metadata.defaultValue);
236
- let isCheckbox = $field.is(selector.checkbox);
237
- let isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown');
238
- let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
239
- let isFile = $field.is(selector.file);
240
- let isErrored = $fieldGroup.hasClass(className.error);
229
+ const $field = $(el);
230
+ const $element = $field.parent();
231
+ const $fieldGroup = $field.closest($group);
232
+ const $calendar = $field.closest(selector.uiCalendar);
233
+ const $prompt = $fieldGroup.find(selector.prompt);
234
+ const defaultValue = $field.data(metadata.defaultValue);
235
+ const isCheckbox = $field.is(selector.checkbox);
236
+ const isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown');
237
+ const isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
238
+ const isFile = $field.is(selector.file);
239
+ const isErrored = $fieldGroup.hasClass(className.error);
241
240
  if (defaultValue === undefined) {
242
241
  return;
243
242
  }
@@ -266,9 +265,9 @@
266
265
  isValid: function () {
267
266
  let allValid = true;
268
267
  $field.each(function (index, el) {
269
- let $el = $(el);
270
- let validation = module.get.validation($el) || {};
271
- let identifier = module.get.identifier(validation, $el);
268
+ const $el = $(el);
269
+ const validation = module.get.validation($el) || {};
270
+ const identifier = module.get.identifier(validation, $el);
272
271
  if (!module.validate.field(validation, identifier, true)) {
273
272
  allValid = false;
274
273
  }
@@ -280,11 +279,10 @@
280
279
  let formIsDirty = false;
281
280
 
282
281
  $field.each(function (index, el) {
283
- let $el = $(el);
284
- let isCheckbox = $el.filter(selector.checkbox).length > 0;
285
- let isDirty;
282
+ const $el = $(el);
283
+ const isCheckbox = $el.filter(selector.checkbox).length > 0;
286
284
 
287
- isDirty = isCheckbox
285
+ const isDirty = isCheckbox
288
286
  ? module.is.checkboxDirty($el)
289
287
  : module.is.fieldDirty($el);
290
288
 
@@ -361,10 +359,10 @@
361
359
  currentValue = currentValue.toString();
362
360
  }
363
361
  // Boolean values can be encoded as "true/false" or "True/False" depending on underlying frameworks, so we need a case-insensitive comparison
364
- let boolRegex = /^(true|false)$/i;
365
- let isBoolValue = boolRegex.test(initialValue) && boolRegex.test(currentValue);
362
+ const boolRegex = /^(true|false)$/i;
363
+ const isBoolValue = boolRegex.test(initialValue) && boolRegex.test(currentValue);
366
364
  if (isBoolValue) {
367
- let regex = new RegExp('^' + initialValue + '$', 'i');
365
+ const regex = new RegExp('^' + initialValue + '$', 'i');
368
366
 
369
367
  return !regex.test(currentValue);
370
368
  }
@@ -372,8 +370,8 @@
372
370
  return currentValue !== initialValue;
373
371
  },
374
372
  checkboxDirty: function ($el) {
375
- let initialValue = $el.data(metadata.defaultValue);
376
- let currentValue = $el.is(':checked');
373
+ const initialValue = $el.data(metadata.defaultValue);
374
+ const currentValue = $el.is(':checked');
377
375
 
378
376
  return initialValue !== currentValue;
379
377
  },
@@ -401,12 +399,12 @@
401
399
  event: {
402
400
  field: {
403
401
  keydown: function (event) {
404
- let $field = $(this);
405
- let key = event.which;
406
- let isInput = $field.is(selector.input);
407
- let isCheckbox = $field.is(selector.checkbox);
408
- let isInDropdown = $field.closest(selector.uiDropdown).length > 0;
409
- let keyCode = {
402
+ const $field = $(this);
403
+ const key = event.which;
404
+ const isInput = $field.is(selector.input);
405
+ const isCheckbox = $field.is(selector.checkbox);
406
+ const isInDropdown = $field.closest(selector.uiDropdown).length > 0;
407
+ const keyCode = {
410
408
  enter: 13,
411
409
  escape: 27,
412
410
  };
@@ -431,9 +429,9 @@
431
429
  event.preventDefault();
432
430
  },
433
431
  blur: function (event) {
434
- let $field = $(this);
435
- let validationRules = module.get.validation($field) || {};
436
- let identifier = module.get.identifier(validationRules, $field);
432
+ const $field = $(this);
433
+ const validationRules = module.get.validation($field) || {};
434
+ const identifier = module.get.identifier(validationRules, $field);
437
435
  if (settings.on === 'blur' || (!$module.hasClass(className.initial) && settings.revalidate)) {
438
436
  module.debug('Revalidating field', $field, validationRules);
439
437
  module.validate.field(validationRules, identifier);
@@ -443,9 +441,9 @@
443
441
  }
444
442
  },
445
443
  change: function (event) {
446
- let $field = $(this);
447
- let validationRules = module.get.validation($field) || {};
448
- let identifier = module.get.identifier(validationRules, $field);
444
+ const $field = $(this);
445
+ const validationRules = module.get.validation($field) || {};
446
+ const identifier = module.get.identifier(validationRules, $field);
449
447
  if (settings.on === 'change' || (!$module.hasClass(className.initial) && settings.revalidate)) {
450
448
  clearTimeout(module.timer);
451
449
  module.timer = setTimeout(function () {
@@ -495,7 +493,7 @@
495
493
  return ['file', 'checkbox', 'radio', 'hidden'].includes(type) || $input.is('select') ? 'change' : 'input';
496
494
  },
497
495
  fieldsFromShorthand: function (fields) {
498
- let fullFields = {};
496
+ const fullFields = {};
499
497
  $.each(fields, function (name, rules) {
500
498
  if (!Array.isArray(rules) && typeof rules === 'object') {
501
499
  fullFields[name] = rules;
@@ -518,16 +516,16 @@
518
516
  return validation.identifier || $el.attr('id') || $el.attr('name') || $el.data(metadata.validate);
519
517
  },
520
518
  prompt: function (rule, field) {
521
- let ruleName = module.get.ruleName(rule);
522
- let ancillary = module.get.ancillaryValue(rule);
523
- let $field = module.get.field(field.identifier);
524
- let value = $field.val();
525
- let promptCheck = rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule;
519
+ const ruleName = module.get.ruleName(rule);
520
+ const ancillary = module.get.ancillaryValue(rule);
521
+ const $field = module.get.field(field.identifier);
522
+ const value = $field.val();
523
+ const promptCheck = rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule;
526
524
  let prompt = String(isFunction(promptCheck)
527
525
  ? promptCheck.call($field[0], value)
528
526
  : promptCheck);
529
- let requiresValue = prompt.search('{value}') !== -1;
530
- let requiresName = prompt.search('{name}') !== -1;
527
+ const requiresValue = prompt.search('{value}') !== -1;
528
+ const requiresName = prompt.search('{name}') !== -1;
531
529
  let parts;
532
530
  let suffixPrompt;
533
531
  if (ancillary && ['integer', 'decimal', 'number', 'size'].includes(ruleName) && ancillary.includes('..')) {
@@ -624,10 +622,10 @@
624
622
  return $fields;
625
623
  },
626
624
  fieldLabel: function (identifier, useIdAsFallback) {
627
- let $field = typeof identifier === 'string'
625
+ const $field = typeof identifier === 'string'
628
626
  ? module.get.field(identifier)
629
627
  : identifier;
630
- let $label = $field.closest(selector.group).find('label:not(:empty)').eq(0);
628
+ const $label = $field.closest(selector.group).find('label:not(:empty)').eq(0);
631
629
 
632
630
  return $label.length === 1
633
631
  ? $label.text()
@@ -654,30 +652,28 @@
654
652
  return fieldValidation || false;
655
653
  },
656
654
  value: function (field, strict) {
657
- let fields = [];
658
- let results;
659
- let resultKeys;
655
+ const fields = [];
660
656
  fields.push(field);
661
- results = module.get.values.call(element, fields, strict);
662
- resultKeys = Object.keys(results);
657
+ const results = module.get.values.call(element, fields, strict);
658
+ const resultKeys = Object.keys(results);
663
659
 
664
660
  return resultKeys.length > 0 ? results[resultKeys[0]] : undefined;
665
661
  },
666
662
  values: function (fields, strict) {
667
- let $fields = Array.isArray(fields) && fields.length > 0
663
+ const $fields = Array.isArray(fields) && fields.length > 0
668
664
  ? module.get.fields(fields, strict)
669
665
  : $field;
670
- let values = {};
666
+ const values = {};
671
667
  $fields.each(function (index, field) {
672
- let $field = $(field);
673
- let $calendar = $field.closest(selector.uiCalendar);
668
+ const $field = $(field);
669
+ const $calendar = $field.closest(selector.uiCalendar);
674
670
  let name = $field.prop('name') || $field.prop('id');
675
- let value = $field.val();
676
- let isCheckbox = $field.is(selector.checkbox);
677
- let isRadio = $field.is(selector.radio);
678
- let isMultiple = name.includes('[]');
679
- let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
680
- let isChecked = isCheckbox
671
+ const value = $field.val();
672
+ const isCheckbox = $field.is(selector.checkbox);
673
+ const isRadio = $field.is(selector.radio);
674
+ const isMultiple = name.includes('[]');
675
+ const isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
676
+ const isChecked = isCheckbox
681
677
  ? $field.is(':checked')
682
678
  : false;
683
679
  if (name) {
@@ -704,7 +700,7 @@
704
700
  } else if (isCheckbox) {
705
701
  values[name] = isChecked ? value || true : false;
706
702
  } else if (isCalendar) {
707
- let date = $calendar.calendar('get date');
703
+ const date = $calendar.calendar('get date');
708
704
 
709
705
  if (date !== null) {
710
706
  switch (settings.dateHandling) {
@@ -719,7 +715,7 @@
719
715
  break;
720
716
  }
721
717
  case 'formatter': {
722
- let type = $calendar.calendar('setting', 'type');
718
+ const type = $calendar.calendar('setting', 'type');
723
719
 
724
720
  switch (type) {
725
721
  case 'date': {
@@ -824,7 +820,7 @@
824
820
  rules: [],
825
821
  };
826
822
  }
827
- let newValidation = {
823
+ const newValidation = {
828
824
  rules: [],
829
825
  };
830
826
  if (module.is.shorthandRules(rules)) {
@@ -857,11 +853,11 @@
857
853
  if (errors === false) {
858
854
  return;
859
855
  }
860
- let $field = module.get.field(identifier);
861
- let $fieldGroup = $field.closest($group);
856
+ const $field = module.get.field(identifier);
857
+ const $fieldGroup = $field.closest($group);
862
858
  let $prompt = $fieldGroup.children(selector.prompt);
863
859
  let promptExists = $prompt.length > 0;
864
- let canTransition = settings.transition && module.can.useElement('transition');
860
+ const canTransition = settings.transition && module.can.useElement('transition');
865
861
  module.verbose('Adding field error state', identifier);
866
862
  if (!internal) {
867
863
  $fieldGroup
@@ -952,7 +948,7 @@
952
948
  module.determine.isDirty();
953
949
  },
954
950
  rule: function (field, rule) {
955
- let rules = Array.isArray(rule)
951
+ const rules = Array.isArray(rule)
956
952
  ? rule
957
953
  : [rule];
958
954
  if (validation[field] === undefined || !Array.isArray(validation[field].rules)) {
@@ -976,7 +972,7 @@
976
972
  });
977
973
  },
978
974
  field: function (field) {
979
- let fields = Array.isArray(field)
975
+ const fields = Array.isArray(field)
980
976
  ? field
981
977
  : [field];
982
978
  $.each(fields, function (index, field) {
@@ -998,9 +994,9 @@
998
994
  module.remove.field(fields);
999
995
  },
1000
996
  prompt: function (identifier) {
1001
- let $field = module.get.field(identifier);
1002
- let $fieldGroup = $field.closest($group);
1003
- let $prompt = $fieldGroup.children(selector.prompt);
997
+ const $field = module.get.field(identifier);
998
+ const $fieldGroup = $field.closest($group);
999
+ const $prompt = $fieldGroup.children(selector.prompt);
1004
1000
  $fieldGroup
1005
1001
  .removeClass(className.error);
1006
1002
  if (settings.inline && $prompt.is(':visible')) {
@@ -1027,13 +1023,13 @@
1027
1023
  },
1028
1024
  defaults: function () {
1029
1025
  $field.each(function (index, el) {
1030
- let $el = $(el);
1031
- let $parent = $el.parent();
1032
- let isCheckbox = $el.filter(selector.checkbox).length > 0;
1033
- let isDropdown = ($parent.is(selector.uiDropdown) || $el.is(selector.uiDropdown)) && module.can.useElement('dropdown');
1034
- let $calendar = $el.closest(selector.uiCalendar);
1035
- let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
1036
- let value = isCheckbox
1026
+ const $el = $(el);
1027
+ const $parent = $el.parent();
1028
+ const isCheckbox = $el.filter(selector.checkbox).length > 0;
1029
+ const isDropdown = ($parent.is(selector.uiDropdown) || $el.is(selector.uiDropdown)) && module.can.useElement('dropdown');
1030
+ const $calendar = $el.closest(selector.uiCalendar);
1031
+ const isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
1032
+ const value = isCheckbox
1037
1033
  ? $el.is(':checked')
1038
1034
  : $el.val();
1039
1035
  if (isDropdown) {
@@ -1055,7 +1051,7 @@
1055
1051
  .addClass(className.error);
1056
1052
  },
1057
1053
  value: function (field, value) {
1058
- let fields = {};
1054
+ const fields = {};
1059
1055
  fields[field] = value;
1060
1056
 
1061
1057
  return module.set.values.call(element, fields);
@@ -1065,16 +1061,16 @@
1065
1061
  return;
1066
1062
  }
1067
1063
  $.each(fields, function (key, value) {
1068
- let $field = module.get.field(key);
1064
+ const $field = module.get.field(key);
1069
1065
  let $element = $field.parent();
1070
- let $calendar = $field.closest(selector.uiCalendar);
1071
- let isFile = $field.is(selector.file);
1072
- let isMultiple = Array.isArray(value);
1073
- let isCheckbox = $element.is(selector.uiCheckbox) && module.can.useElement('checkbox');
1074
- let isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown');
1075
- let isRadio = $field.is(selector.radio) && isCheckbox;
1076
- let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
1077
- let fieldExists = $field.length > 0;
1066
+ const $calendar = $field.closest(selector.uiCalendar);
1067
+ const isFile = $field.is(selector.file);
1068
+ const isMultiple = Array.isArray(value);
1069
+ const isCheckbox = $element.is(selector.uiCheckbox) && module.can.useElement('checkbox');
1070
+ const isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown');
1071
+ const isRadio = $field.is(selector.radio) && isCheckbox;
1072
+ const isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
1073
+ const fieldExists = $field.length > 0;
1078
1074
  let $multipleField;
1079
1075
  if (fieldExists) {
1080
1076
  if (isMultiple && isCheckbox) {
@@ -1153,18 +1149,18 @@
1153
1149
  });
1154
1150
  }
1155
1151
  $field.each(function (_index, el) {
1156
- let $el = $(el);
1157
- let $elGroup = $el.closest($group);
1158
- let isCheckbox = $el.filter(selector.checkbox).length > 0;
1159
- let isRequired = $el.prop('required') || $elGroup.hasClass(className.required) || $elGroup.parent().hasClass(className.required);
1160
- let isDisabled = $el.is(':disabled') || $elGroup.hasClass(className.disabled) || $elGroup.parent().hasClass(className.disabled);
1161
- let validation = module.get.validation($el);
1162
- let hasNotEmptyRule = validation
1152
+ const $el = $(el);
1153
+ const $elGroup = $el.closest($group);
1154
+ const isCheckbox = $el.filter(selector.checkbox).length > 0;
1155
+ const isRequired = $el.prop('required') || $elGroup.hasClass(className.required) || $elGroup.parent().hasClass(className.required);
1156
+ const isDisabled = $el.is(':disabled') || $elGroup.hasClass(className.disabled) || $elGroup.parent().hasClass(className.disabled);
1157
+ const validation = module.get.validation($el);
1158
+ const hasNotEmptyRule = validation
1163
1159
  ? $.grep(validation.rules, function (rule) {
1164
1160
  return ['notEmpty', 'checked'].includes(rule.type);
1165
1161
  }).length > 0
1166
1162
  : false;
1167
- let identifier = module.get.identifier(validation, $el);
1163
+ const identifier = module.get.identifier(validation, $el);
1168
1164
  if (isRequired && !isDisabled && !hasNotEmptyRule && identifier !== undefined) {
1169
1165
  if (isCheckbox) {
1170
1166
  module.verbose("Adding 'checked' rule on field", identifier);
@@ -1189,7 +1185,7 @@
1189
1185
  validate: {
1190
1186
 
1191
1187
  form: function (event, ignoreCallbacks) {
1192
- let values = module.get.values();
1188
+ const values = module.get.values();
1193
1189
 
1194
1190
  // input keydown event will fire submit repeatedly by browser default
1195
1191
  if (keyHeldDown) {
@@ -1256,17 +1252,17 @@
1256
1252
 
1257
1253
  return true;
1258
1254
  }
1259
- let identifier = field.identifier || fieldName;
1260
- let $field = module.get.field(identifier);
1261
- let $fieldGroup = $field.closest($group);
1262
- let $dependsField = field.depends
1255
+ const identifier = field.identifier || fieldName;
1256
+ const $field = module.get.field(identifier);
1257
+ const $fieldGroup = $field.closest($group);
1258
+ const $dependsField = field.depends
1263
1259
  ? module.get.field(field.depends)
1264
1260
  : false;
1265
1261
  let fieldValid = true;
1266
- let fieldErrors = [];
1267
- let isDisabled = $field.filter(':not(:disabled)').length === 0 || $fieldGroup.hasClass(className.disabled) || $fieldGroup.parent().hasClass(className.disabled);
1268
- let validationMessage = $field[0].validationMessage;
1269
- let noNativeValidation = field.noNativeValidation || settings.noNativeValidation || $field.filter('[formnovalidate],[novalidate]').length > 0 || $module.filter('[novalidate]').length > 0;
1262
+ const fieldErrors = [];
1263
+ const isDisabled = $field.filter(':not(:disabled)').length === 0 || $fieldGroup.hasClass(className.disabled) || $fieldGroup.parent().hasClass(className.disabled);
1264
+ const validationMessage = $field[0].validationMessage;
1265
+ const noNativeValidation = field.noNativeValidation || settings.noNativeValidation || $field.filter('[formnovalidate],[novalidate]').length > 0 || $module.filter('[novalidate]').length > 0;
1270
1266
  let errorLimit;
1271
1267
  if (!field.identifier) {
1272
1268
  module.debug('Using field name as identifier', identifier);
@@ -1292,10 +1288,10 @@
1292
1288
  errorLimit = field.errorLimit || settings.errorLimit;
1293
1289
  $.each(field.rules, function (index, rule) {
1294
1290
  if (module.has.field(identifier) && (!errorLimit || fieldErrors.length < errorLimit)) {
1295
- let invalidFields = module.validate.rule(field, rule, true) || [];
1291
+ const invalidFields = module.validate.rule(field, rule, true) || [];
1296
1292
  if (invalidFields.length > 0) {
1297
1293
  module.debug('Field is invalid', identifier, rule.type);
1298
- let fieldError = module.get.prompt(rule, field);
1294
+ const fieldError = module.get.prompt(rule, field);
1299
1295
  if (!settings.inline) {
1300
1296
  if (
1301
1297
  // Always allow the first error prompt for new field identifiers
@@ -1339,13 +1335,13 @@
1339
1335
 
1340
1336
  // takes validation rule and returns whether field passes rule
1341
1337
  rule: function (field, rule, internal) {
1342
- let $field = module.get.field(field.identifier);
1343
- let ancillary = module.get.ancillaryValue(rule);
1344
- let ruleName = module.get.ruleName(rule);
1345
- let ruleFunction = settings.rules[ruleName];
1338
+ const $field = module.get.field(field.identifier);
1339
+ const ancillary = module.get.ancillaryValue(rule);
1340
+ const ruleName = module.get.ruleName(rule);
1341
+ const ruleFunction = settings.rules[ruleName];
1346
1342
  let invalidFields = [];
1347
- let isCheckbox = $field.is(selector.checkbox);
1348
- let isValid = function (field) {
1343
+ const isCheckbox = $field.is(selector.checkbox);
1344
+ const isValid = function (field) {
1349
1345
  let value = isCheckbox ? $(field).filter(':checked').val() : $(field).val();
1350
1346
  // cast to string avoiding encoding special values
1351
1347
  value = value === undefined || value === '' || value === null
@@ -1478,7 +1474,7 @@
1478
1474
  query = query.split(/[ .]/);
1479
1475
  maxDepth = query.length - 1;
1480
1476
  $.each(query, function (depth, value) {
1481
- let camelCaseValue = depth !== maxDepth
1477
+ const camelCaseValue = depth !== maxDepth
1482
1478
  ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
1483
1479
  : query;
1484
1480
  if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
@@ -1747,7 +1743,7 @@
1747
1743
  if (regExp instanceof RegExp) {
1748
1744
  return value.match(regExp);
1749
1745
  }
1750
- let regExpParts = regExp.match($.fn.form.settings.regExp.flags);
1746
+ const regExpParts = regExp.match($.fn.form.settings.regExp.flags);
1751
1747
  let flags;
1752
1748
  // regular expression specified as /baz/gi (flags)
1753
1749
  if (regExpParts) {
@@ -1906,7 +1902,7 @@
1906
1902
 
1907
1903
  // matches another field
1908
1904
  match: function (value, identifier, module) {
1909
- let matchingValue = module.get.value(identifier, true);
1905
+ const matchingValue = module.get.value(identifier, true);
1910
1906
 
1911
1907
  return matchingValue !== undefined
1912
1908
  ? value.toString() === matchingValue.toString()
@@ -1915,7 +1911,7 @@
1915
1911
 
1916
1912
  // different from another field
1917
1913
  different: function (value, identifier, module) {
1918
- let matchingValue = module.get.value(identifier, true);
1914
+ const matchingValue = module.get.value(identifier, true);
1919
1915
 
1920
1916
  return matchingValue !== undefined
1921
1917
  ? value.toString() !== matchingValue.toString()
@@ -1923,7 +1919,7 @@
1923
1919
  },
1924
1920
 
1925
1921
  creditCard: function (cardNumber, cardTypes) {
1926
- let cards = {
1922
+ const cards = {
1927
1923
  visa: {
1928
1924
  pattern: /^4/,
1929
1925
  length: [16],
@@ -1967,10 +1963,9 @@
1967
1963
  };
1968
1964
  let valid = {};
1969
1965
  let validCard = false;
1970
- let requiredTypes = typeof cardTypes === 'string'
1966
+ const requiredTypes = typeof cardTypes === 'string'
1971
1967
  ? cardTypes.split(',')
1972
1968
  : false;
1973
- let unionPay;
1974
1969
  let validation;
1975
1970
 
1976
1971
  if (typeof cardNumber !== 'string' || cardNumber.length === 0) {
@@ -2002,7 +1997,7 @@
2002
1997
  }
2003
1998
 
2004
1999
  // skip luhn for UnionPay
2005
- unionPay = {
2000
+ const unionPay = {
2006
2001
  number: cards.unionPay.length.includes(cardNumber.length),
2007
2002
  pattern: cardNumber.search(cards.unionPay.pattern) !== -1,
2008
2003
  };
@@ -2013,7 +2008,7 @@
2013
2008
  // verify luhn, adapted from <https://gist.github.com/2134376>
2014
2009
  let length = cardNumber.length;
2015
2010
  let multiple = 0;
2016
- let producedValue = [
2011
+ const producedValue = [
2017
2012
  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
2018
2013
  [0, 2, 4, 6, 8, 1, 3, 5, 7, 9],
2019
2014
  ];