diff --git a/public/external/fomantic-ui/dist/semantic.css b/public/external/fomantic-ui/dist/semantic.css
index 35fe9a612d..e948108912 100644
--- a/public/external/fomantic-ui/dist/semantic.css
+++ b/public/external/fomantic-ui/dist/semantic.css
@@ -1,5 +1,5 @@
/*
- * # Fomantic UI - 2.10.0-beta.4+fcf090f
+ * # Fomantic UI - 2.10.0-beta.9+45ac3fe
* https://github.com/fomantic/Fomantic-UI
* https://fomantic-ui.com/
*
@@ -46613,13 +46613,15 @@ select.ui.dropdown {
box-shadow: none;
}
- .ui.ui.selection.dropdown:not(.inverted):has(> input:focus) > i.icon {
+ .ui.ui.selection.dropdown:focus > i.icon:not(.remove),
+ .ui.ui.selection.dropdown:has(> input:focus) > i.icon:not(.remove) {
opacity: 1;
}
-}
-.ui.ui.selection.dropdown:focus > i.icon {
- opacity: 1;
+ .ui.ui.selection.dropdown:focus > i.icon.remove:not(:hover),
+ .ui.ui.selection.dropdown:has(> input:focus) > i.icon.remove:not(:hover) {
+ opacity: 0.68;
+ }
}
/* Visible */
diff --git a/public/external/fomantic-ui/dist/semantic.js b/public/external/fomantic-ui/dist/semantic.js
index cf09b267ae..b33a5d82fc 100644
--- a/public/external/fomantic-ui/dist/semantic.js
+++ b/public/external/fomantic-ui/dist/semantic.js
@@ -1,5 +1,5 @@
/*
- * # Fomantic UI - 2.10.0-beta.4+fcf090f
+ * # Fomantic UI - 2.10.0-beta.9+45ac3fe
* https://github.com/fomantic/Fomantic-UI
* https://fomantic-ui.com/
*
@@ -21,31 +21,29 @@
: globalThis;
$.fn.site = function (parameters) {
- var
- time = Date.now(),
- performance = [],
+ let time = Date.now();
+ let performance = [];
- query = arguments[0],
- methodInvoked = typeof query === 'string',
- queryArguments = [].slice.call(arguments, 1),
+ let query = arguments[0];
+ let methodInvoked = typeof query === 'string';
+ let queryArguments = [].slice.call(arguments, 1);
- settings = $.isPlainObject(parameters)
- ? $.extend(true, {}, $.site.settings, parameters)
- : $.extend({}, $.site.settings),
+ let settings = $.isPlainObject(parameters)
+ ? $.extend(true, {}, $.site.settings, parameters)
+ : $.extend({}, $.site.settings);
- namespace = settings.namespace,
- error = settings.error,
+ let namespace = settings.namespace;
+ let error = settings.error;
- moduleNamespace = 'module-' + namespace,
+ let moduleNamespace = 'module-' + namespace;
- $document = $(document),
- $module = $document,
- element = this,
- instance = $module.data(moduleNamespace),
+ let $document = $(document);
+ let $module = $document;
+ let element = this;
+ let instance = $module.data(moduleNamespace);
- module,
- returnedValue
- ;
+ let module;
+ let returnedValue;
module = {
initialize: function () {
@@ -56,8 +54,7 @@
module.verbose('Storing instance of site', module);
instance = module;
$module
- .data(moduleNamespace, module)
- ;
+ .data(moduleNamespace, module);
},
normalize: function () {
@@ -79,9 +76,7 @@
enabled: {
modules: function (modules) {
- var
- enabledModules = []
- ;
+ let enabledModules = [];
modules = modules || settings.modules;
$.each(modules, function (index, name) {
if (module.moduleExists(name)) {
@@ -95,9 +90,7 @@
disabled: {
modules: function (modules) {
- var
- disabledModules = []
- ;
+ let disabledModules = [];
modules = modules || settings.modules;
$.each(modules, function (index, name) {
if (!module.moduleExists(name)) {
@@ -120,12 +113,10 @@
? modifyExisting
: true;
$.each(modules, function (index, name) {
- var
- namespace = module.moduleExists(name)
- ? $.fn[name].settings.namespace || false
- : true,
- $existingModules
- ;
+ let namespace = module.moduleExists(name)
+ ? $.fn[name].settings.namespace || false
+ : true;
+ let $existingModules;
if (module.moduleExists(name)) {
module.verbose('Changing default setting', setting, value, name);
$.fn[name].settings[setting] = value;
@@ -147,9 +138,7 @@
? modifyExisting
: true;
$.each(modules, function (index, name) {
- var
- $existingModules
- ;
+ let $existingModules;
if (module.moduleExists(name)) {
module.verbose('Changing default setting', newSettings, name);
$.extend(true, $.fn[name].settings, newSettings);
@@ -225,8 +214,7 @@
destroy: function () {
module.verbose('Destroying previous site for', $module);
$module
- .removeData(moduleNamespace)
- ;
+ .removeData(moduleNamespace);
},
cache: {},
@@ -275,11 +263,9 @@
},
performance: {
log: function (message) {
- var
- currentTime,
- executionTime,
- previousTime
- ;
+ let currentTime;
+ let executionTime;
+ let previousTime;
if (settings.performance) {
currentTime = Date.now();
previousTime = time || currentTime;
@@ -298,10 +284,8 @@
}, 500);
},
display: function () {
- var
- title = settings.name + ':',
- totalTime = 0
- ;
+ let title = settings.name + ':';
+ let totalTime = 0;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function (index, data) {
@@ -323,22 +307,19 @@
},
},
invoke: function (query, passedArguments, context) {
- var
- object = instance,
- maxDepth,
- found,
- response
- ;
+ let object = instance;
+ let maxDepth;
+ let found;
+ let response;
passedArguments = passedArguments || queryArguments;
context = context || element;
if (typeof query === 'string' && object !== undefined) {
query = query.split(/[ .]/);
maxDepth = query.length - 1;
$.each(query, function (depth, value) {
- var camelCaseValue = depth !== maxDepth
+ let camelCaseValue = depth !== maxDepth
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
- : query
- ;
+ : query;
if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
object = object[camelCaseValue];
} else if (object[camelCaseValue] !== undefined) {
@@ -468,58 +449,54 @@
: globalThis;
$.fn.form = function (parameters) {
- var
- $allModules = $(this),
- $window = $(window),
-
- time = Date.now(),
- performance = [],
-
- query = arguments[0],
- methodInvoked = typeof query === 'string',
- queryArguments = [].slice.call(arguments, 1),
- returnedValue
- ;
+ let $allModules = $(this);
+ let $window = $(window);
+
+ let time = Date.now();
+ let performance = [];
+
+ let query = arguments[0];
+ let methodInvoked = typeof query === 'string';
+ let queryArguments = [].slice.call(arguments, 1);
+ let returnedValue;
$allModules.each(function () {
- var
- $module = $(this),
- element = this,
-
- formErrors = [],
- formErrorsTracker = {},
- keyHeldDown = false,
-
- // set at run-time
- $field,
- $group,
- $message,
- $prompt,
- $submit,
- $clear,
- $reset,
-
- settings,
- validation,
-
- metadata,
- selector,
- className,
- regExp,
- error,
-
- namespace,
- moduleNamespace,
- eventNamespace,
- attachEventsSelector,
- attachEventsAction,
-
- submitting = false,
- dirty = false,
- history = ['clean', 'clean'],
-
- instance,
- module
- ;
+ let $module = $(this);
+ let element = this;
+
+ let formErrors = [];
+ let formErrorsTracker = {};
+ let keyHeldDown = false;
+
+ // set at run-time
+ let $field;
+ let $group;
+ let $message;
+ let $prompt;
+ let $submit;
+ let $clear;
+ let $reset;
+
+ let settings;
+ let validation;
+
+ let metadata;
+ let selector;
+ let className;
+ let regExp;
+ let error;
+
+ let namespace;
+ let moduleNamespace;
+ let eventNamespace;
+ let attachEventsSelector;
+ let attachEventsAction;
+
+ let submitting = false;
+ let dirty = false;
+ let history = ['clean', 'clean'];
+
+ let instance;
+ let module;
module = {
@@ -551,16 +528,14 @@
module.verbose('Storing instance of module', module);
instance = module;
$module
- .data(moduleNamespace, module)
- ;
+ .data(moduleNamespace, module);
},
destroy: function () {
module.verbose('Destroying previous module', instance);
module.removeEvents();
$module
- .removeData(moduleNamespace)
- ;
+ .removeData(moduleNamespace);
},
refresh: function () {
@@ -610,18 +585,15 @@
.on('blur' + eventNamespace, selector.field, module.event.field.blur)
.on('click' + eventNamespace, selector.submit, module.submit)
.on('click' + eventNamespace, selector.reset, module.reset)
- .on('click' + eventNamespace, selector.clear, module.clear)
- ;
+ .on('click' + eventNamespace, selector.clear, module.clear);
$field.on('invalid' + eventNamespace, module.event.field.invalid);
if (settings.keyboardShortcuts) {
$module.on('keydown' + eventNamespace, selector.field, module.event.field.keydown);
}
$field.each(function (index, el) {
- var
- $input = $(el),
- type = $input.prop('type'),
- inputEvent = module.get.changeEvent(type, $input)
- ;
+ let $input = $(el);
+ let type = $input.prop('type');
+ let inputEvent = module.get.changeEvent(type, $input);
$input.on(inputEvent + eventNamespace, module.event.field.change);
});
@@ -652,18 +624,16 @@
clear: function () {
$field.each(function (index, el) {
- var
- $field = $(el),
- $element = $field.parent(),
- $fieldGroup = $field.closest($group),
- $prompt = $fieldGroup.find(selector.prompt),
- $calendar = $field.closest(selector.uiCalendar),
- defaultValue = $field.data(metadata.defaultValue) || '',
- isCheckbox = $field.is(selector.checkbox),
- isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
- isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
- isErrored = $fieldGroup.hasClass(className.error)
- ;
+ let $field = $(el);
+ let $element = $field.parent();
+ let $fieldGroup = $field.closest($group);
+ let $prompt = $fieldGroup.find(selector.prompt);
+ let $calendar = $field.closest(selector.uiCalendar);
+ let defaultValue = $field.data(metadata.defaultValue) || '';
+ let isCheckbox = $field.is(selector.checkbox);
+ let isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown');
+ let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
+ let isErrored = $fieldGroup.hasClass(className.error);
if (isErrored) {
module.verbose('Resetting error on field', $fieldGroup);
$fieldGroup.removeClass(className.error);
@@ -686,19 +656,17 @@
reset: function () {
$field.each(function (index, el) {
- var
- $field = $(el),
- $element = $field.parent(),
- $fieldGroup = $field.closest($group),
- $calendar = $field.closest(selector.uiCalendar),
- $prompt = $fieldGroup.find(selector.prompt),
- defaultValue = $field.data(metadata.defaultValue),
- isCheckbox = $field.is(selector.checkbox),
- isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
- isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
- isFile = $field.is(selector.file),
- isErrored = $fieldGroup.hasClass(className.error)
- ;
+ let $field = $(el);
+ let $element = $field.parent();
+ let $fieldGroup = $field.closest($group);
+ let $calendar = $field.closest(selector.uiCalendar);
+ let $prompt = $fieldGroup.find(selector.prompt);
+ let defaultValue = $field.data(metadata.defaultValue);
+ let isCheckbox = $field.is(selector.checkbox);
+ let isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown');
+ let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
+ let isFile = $field.is(selector.file);
+ let isErrored = $fieldGroup.hasClass(className.error);
if (defaultValue === undefined) {
return;
}
@@ -725,14 +693,11 @@
determine: {
isValid: function () {
- var
- allValid = true
- ;
+ let allValid = true;
$field.each(function (index, el) {
- var $el = $(el),
- validation = module.get.validation($el) || {},
- identifier = module.get.identifier(validation, $el)
- ;
+ let $el = $(el);
+ let validation = module.get.validation($el) || {};
+ let identifier = module.get.identifier(validation, $el);
if (!module.validate.field(validation, identifier, true)) {
allValid = false;
}
@@ -741,14 +706,12 @@
return allValid;
},
isDirty: function (e) {
- var formIsDirty = false;
+ let formIsDirty = false;
$field.each(function (index, el) {
- var
- $el = $(el),
- isCheckbox = $el.filter(selector.checkbox).length > 0,
- isDirty
- ;
+ let $el = $(el);
+ let isCheckbox = $el.filter(selector.checkbox).length > 0;
+ let isDirty;
isDirty = isCheckbox
? module.is.checkboxDirty($el)
@@ -789,9 +752,7 @@
return String($field.val()).trim() === '';
},
valid: function (field, showErrors) {
- var
- allValid = true
- ;
+ let allValid = true;
if (field) {
module.verbose('Checking if field is valid', field);
@@ -814,14 +775,14 @@
return !dirty;
},
fieldDirty: function ($el) {
- var initialValue = $el.data(metadata.defaultValue);
+ let initialValue = $el.data(metadata.defaultValue);
// Explicitly check for undefined/null here as value may be `false`, so ($el.data(dataInitialValue) || '') would not work
if (initialValue === undefined || initialValue === null) {
initialValue = '';
} else if (Array.isArray(initialValue)) {
initialValue = initialValue.toString();
}
- var currentValue = $el.val();
+ let currentValue = $el.val();
if (currentValue === undefined || currentValue === null) {
currentValue = '';
} else if (Array.isArray(currentValue)) {
@@ -829,10 +790,10 @@
currentValue = currentValue.toString();
}
// Boolean values can be encoded as "true/false" or "True/False" depending on underlying frameworks, so we need a case-insensitive comparison
- var boolRegex = /^(true|false)$/i;
- var isBoolValue = boolRegex.test(initialValue) && boolRegex.test(currentValue);
+ let boolRegex = /^(true|false)$/i;
+ let isBoolValue = boolRegex.test(initialValue) && boolRegex.test(currentValue);
if (isBoolValue) {
- var regex = new RegExp('^' + initialValue + '$', 'i');
+ let regex = new RegExp('^' + initialValue + '$', 'i');
return !regex.test(currentValue);
}
@@ -840,8 +801,8 @@
return currentValue !== initialValue;
},
checkboxDirty: function ($el) {
- var initialValue = $el.data(metadata.defaultValue);
- var currentValue = $el.is(':checked');
+ let initialValue = $el.data(metadata.defaultValue);
+ let currentValue = $el.is(':checked');
return initialValue !== currentValue;
},
@@ -869,22 +830,19 @@
event: {
field: {
keydown: function (event) {
- var
- $field = $(this),
- key = event.which,
- isInput = $field.is(selector.input),
- isCheckbox = $field.is(selector.checkbox),
- isInDropdown = $field.closest(selector.uiDropdown).length > 0,
- keyCode = {
- enter: 13,
- escape: 27,
- }
- ;
+ let $field = $(this);
+ let key = event.which;
+ let isInput = $field.is(selector.input);
+ let isCheckbox = $field.is(selector.checkbox);
+ let isInDropdown = $field.closest(selector.uiDropdown).length > 0;
+ let keyCode = {
+ enter: 13,
+ escape: 27,
+ };
if (key === keyCode.escape) {
module.verbose('Escape key pressed blurring field');
$field[0]
- .blur()
- ;
+ .blur();
}
if (!event.ctrlKey && key === keyCode.enter && isInput && !isInDropdown && !isCheckbox) {
if (!keyHeldDown) {
@@ -902,11 +860,9 @@
event.preventDefault();
},
blur: function (event) {
- var
- $field = $(this),
- validationRules = module.get.validation($field) || {},
- identifier = module.get.identifier(validationRules, $field)
- ;
+ let $field = $(this);
+ let validationRules = module.get.validation($field) || {};
+ let identifier = module.get.identifier(validationRules, $field);
if (settings.on === 'blur' || (!$module.hasClass(className.initial) && settings.revalidate)) {
module.debug('Revalidating field', $field, validationRules);
module.validate.field(validationRules, identifier);
@@ -916,11 +872,9 @@
}
},
change: function (event) {
- var
- $field = $(this),
- validationRules = module.get.validation($field) || {},
- identifier = module.get.identifier(validationRules, $field)
- ;
+ let $field = $(this);
+ let validationRules = module.get.validation($field) || {};
+ let identifier = module.get.identifier(validationRules, $field);
if (settings.on === 'change' || (!$module.hasClass(className.initial) && settings.revalidate)) {
clearTimeout(module.timer);
module.timer = setTimeout(function () {
@@ -970,9 +924,7 @@
return ['file', 'checkbox', 'radio', 'hidden'].indexOf(type) >= 0 || $input.is('select') ? 'change' : 'input';
},
fieldsFromShorthand: function (fields) {
- var
- fullFields = {}
- ;
+ let fullFields = {};
$.each(fields, function (name, rules) {
if (!Array.isArray(rules) && typeof rules === 'object') {
fullFields[name] = rules;
@@ -989,7 +941,7 @@
}
$.each(fullFields[name].rules, function (index, rule) {
- var ruleName = module.get.ruleName(rule);
+ let ruleName = module.get.ruleName(rule);
if (ruleName === 'empty') {
module.warn('*** DEPRECATED *** : Rule "empty" for field "' + name + '" will be removed in a future version. -> Use "notEmpty" rule instead.');
}
@@ -1002,20 +954,18 @@
return validation.identifier || $el.attr('id') || $el.attr('name') || $el.data(metadata.validate);
},
prompt: function (rule, field) {
- var
- ruleName = module.get.ruleName(rule),
- ancillary = module.get.ancillaryValue(rule),
- $field = module.get.field(field.identifier),
- value = $field.val(),
- promptCheck = rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule,
- prompt = String(isFunction(promptCheck)
- ? promptCheck.call($field[0], value)
- : promptCheck),
- requiresValue = prompt.search('{value}') !== -1,
- requiresName = prompt.search('{name}') !== -1,
- parts,
- suffixPrompt
- ;
+ let ruleName = module.get.ruleName(rule);
+ let ancillary = module.get.ancillaryValue(rule);
+ let $field = module.get.field(field.identifier);
+ let value = $field.val();
+ let promptCheck = rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule;
+ let prompt = String(isFunction(promptCheck)
+ ? promptCheck.call($field[0], value)
+ : promptCheck);
+ let requiresValue = prompt.search('{value}') !== -1;
+ let requiresName = prompt.search('{name}') !== -1;
+ let parts;
+ let suffixPrompt;
if (ancillary && ['integer', 'decimal', 'number', 'size'].indexOf(ruleName) >= 0 && ancillary.indexOf('..') >= 0) {
parts = ancillary.split('..', 2);
if (!rule.prompt && ruleName !== 'size') {
@@ -1078,21 +1028,20 @@
},
field: function (identifier, strict, ignoreMissing) {
module.verbose('Finding field with identifier', identifier);
- identifier = module.escape.string(identifier);
- var t;
- t = $field.filter('#' + identifier);
+ let t;
+ t = $field.filter('#' + CSS.escape(identifier));
if (t.length > 0) {
return t;
}
- t = $field.filter('[name="' + identifier + '"]');
+ t = $field.filter('[name="' + CSS.escape(identifier) + '"]');
if (t.length > 0) {
return t;
}
- t = $field.filter('[name="' + identifier + '[]"]');
+ t = $field.filter('[name="' + CSS.escape(identifier) + '[]"]');
if (t.length > 0) {
return t;
}
- t = $field.filter('[data-' + metadata.validate + '="' + identifier + '"]');
+ t = $field.filter('[data-' + metadata.validate + '="' + CSS.escape(identifier) + '"]');
if (t.length > 0) {
return t;
}
@@ -1103,9 +1052,7 @@
return strict ? $() : $('');
},
fields: function (fields, strict) {
- var
- $fields = $()
- ;
+ let $fields = $();
$.each(fields, function (index, name) {
$fields = $fields.add(module.get.field(name, strict));
});
@@ -1113,21 +1060,18 @@
return $fields;
},
fieldLabel: function (identifier, useIdAsFallback) {
- var $field = typeof identifier === 'string'
- ? module.get.field(identifier)
- : identifier,
- $label = $field.closest(selector.group).find('label:not(:empty)').eq(0)
- ;
+ let $field = typeof identifier === 'string'
+ ? module.get.field(identifier)
+ : identifier;
+ let $label = $field.closest(selector.group).find('label:not(:empty)').eq(0);
return $label.length === 1
? $label.text()
: $field.prop('placeholder') || (useIdAsFallback ? identifier : settings.text.unspecifiedField);
},
validation: function ($field) {
- var
- fieldValidation,
- identifier
- ;
+ let fieldValidation;
+ let identifier;
if (!validation) {
return false;
}
@@ -1146,11 +1090,9 @@
return fieldValidation || false;
},
value: function (field, strict) {
- var
- fields = [],
- results,
- resultKeys
- ;
+ let fields = [];
+ let results;
+ let resultKeys;
fields.push(field);
results = module.get.values.call(element, fields, strict);
resultKeys = Object.keys(results);
@@ -1158,26 +1100,22 @@
return resultKeys.length > 0 ? results[resultKeys[0]] : undefined;
},
values: function (fields, strict) {
- var
- $fields = Array.isArray(fields) && fields.length > 0
- ? module.get.fields(fields, strict)
- : $field,
- values = {}
- ;
+ let $fields = Array.isArray(fields) && fields.length > 0
+ ? module.get.fields(fields, strict)
+ : $field;
+ let values = {};
$fields.each(function (index, field) {
- var
- $field = $(field),
- $calendar = $field.closest(selector.uiCalendar),
- name = $field.prop('name') || $field.prop('id'),
- value = $field.val(),
- isCheckbox = $field.is(selector.checkbox),
- isRadio = $field.is(selector.radio),
- isMultiple = name.indexOf('[]') !== -1,
- isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
- isChecked = isCheckbox
- ? $field.is(':checked')
- : false
- ;
+ let $field = $(field);
+ let $calendar = $field.closest(selector.uiCalendar);
+ let name = $field.prop('name') || $field.prop('id');
+ let value = $field.val();
+ let isCheckbox = $field.is(selector.checkbox);
+ let isRadio = $field.is(selector.radio);
+ let isMultiple = name.indexOf('[]') !== -1;
+ let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
+ let isChecked = isCheckbox
+ ? $field.is(':checked')
+ : false;
if (name) {
if (isMultiple) {
name = name.replace('[]', '');
@@ -1203,7 +1141,7 @@
} else if (isCheckbox) {
values[name] = isChecked ? value || true : false;
} else if (isCalendar) {
- var date = $calendar.calendar('get date');
+ let date = $calendar.calendar('get date');
if (date !== null) {
switch (settings.dateHandling) {
@@ -1218,7 +1156,7 @@
break;
}
case 'formatter': {
- var type = $calendar.calendar('setting', 'type');
+ let type = $calendar.calendar('setting', 'type');
switch (type) {
case 'date': {
@@ -1295,14 +1233,6 @@
},
},
- escape: {
- string: function (text) {
- text = String(text);
-
- return text.replace(regExp.escape, '\\$&');
- },
- },
-
checkErrors: function (errors, internal) {
if (!errors || errors.length === 0) {
if (!internal) {
@@ -1331,11 +1261,9 @@
rules: [],
};
}
- var
- newValidation = {
- rules: [],
- }
- ;
+ let newValidation = {
+ rules: [],
+ };
if (module.is.shorthandRules(rules)) {
rules = Array.isArray(rules)
? rules
@@ -1366,18 +1294,15 @@
if (errors === false) {
return;
}
- var
- $field = module.get.field(identifier),
- $fieldGroup = $field.closest($group),
- $prompt = $fieldGroup.children(selector.prompt),
- promptExists = $prompt.length > 0,
- canTransition = settings.transition && module.can.useElement('transition')
- ;
+ let $field = module.get.field(identifier);
+ let $fieldGroup = $field.closest($group);
+ let $prompt = $fieldGroup.children(selector.prompt);
+ let promptExists = $prompt.length > 0;
+ let canTransition = settings.transition && module.can.useElement('transition');
module.verbose('Adding field error state', identifier);
if (!internal) {
$fieldGroup
- .addClass(className.error)
- ;
+ .addClass(className.error);
}
if (settings.inline) {
if (promptExists) {
@@ -1397,12 +1322,10 @@
$prompt.css('display', 'none');
}
$prompt
- .appendTo($fieldGroup.filter('.' + className.error))
- ;
+ .appendTo($fieldGroup.filter('.' + className.error));
}
$prompt
- .html(settings.templates.prompt(errors))
- ;
+ .html(settings.templates.prompt(errors));
if (!promptExists) {
if (canTransition) {
module.verbose('Displaying error with css transition', settings.transition);
@@ -1410,8 +1333,7 @@
} else {
module.verbose('Displaying error with fallback javascript animation');
$prompt
- .fadeIn(settings.duration)
- ;
+ .fadeIn(settings.duration);
}
}
} else {
@@ -1425,9 +1347,8 @@
}
module.debug('Adding form error messages', errors);
module.set.error();
- var customErrors = [],
- tempErrors
- ;
+ let customErrors = [];
+ let tempErrors;
if ($.isPlainObject(errors)) {
$.each(Object.keys(errors), function (i, id) {
if (module.checkErrors(errors[id], true) !== false) {
@@ -1450,8 +1371,7 @@
}
if (customErrors.length > 0) {
$message
- .html(settings.templates.error(customErrors))
- ;
+ .html(settings.templates.error(customErrors));
}
},
},
@@ -1469,11 +1389,9 @@
module.determine.isDirty();
},
rule: function (field, rule) {
- var
- rules = Array.isArray(rule)
- ? rule
- : [rule]
- ;
+ let rules = Array.isArray(rule)
+ ? rule
+ : [rule];
if (validation[field] === undefined || !Array.isArray(validation[field].rules)) {
return;
}
@@ -1495,11 +1413,9 @@
});
},
field: function (field) {
- var
- fields = Array.isArray(field)
- ? field
- : [field]
- ;
+ let fields = Array.isArray(field)
+ ? field
+ : [field];
$.each(fields, function (index, field) {
module.remove.rule(field);
});
@@ -1519,14 +1435,11 @@
module.remove.field(fields);
},
prompt: function (identifier) {
- var
- $field = module.get.field(identifier),
- $fieldGroup = $field.closest($group),
- $prompt = $fieldGroup.children(selector.prompt)
- ;
+ let $field = module.get.field(identifier);
+ let $fieldGroup = $field.closest($group);
+ let $prompt = $fieldGroup.children(selector.prompt);
$fieldGroup
- .removeClass(className.error)
- ;
+ .removeClass(className.error);
if (settings.inline && $prompt.is(':visible')) {
module.verbose('Removing prompt for field', identifier);
if (settings.transition && module.can.useElement('transition')) {
@@ -1537,8 +1450,7 @@
$prompt
.fadeOut(settings.duration, function () {
$prompt.remove();
- })
- ;
+ });
}
}
},
@@ -1548,22 +1460,19 @@
success: function () {
$module
.removeClass(className.error)
- .addClass(className.success)
- ;
+ .addClass(className.success);
},
defaults: function () {
$field.each(function (index, el) {
- var
- $el = $(el),
- $parent = $el.parent(),
- isCheckbox = $el.filter(selector.checkbox).length > 0,
- isDropdown = ($parent.is(selector.uiDropdown) || $el.is(selector.uiDropdown)) && module.can.useElement('dropdown'),
- $calendar = $el.closest(selector.uiCalendar),
- isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
- value = isCheckbox
- ? $el.is(':checked')
- : $el.val()
- ;
+ let $el = $(el);
+ let $parent = $el.parent();
+ let isCheckbox = $el.filter(selector.checkbox).length > 0;
+ let isDropdown = ($parent.is(selector.uiDropdown) || $el.is(selector.uiDropdown)) && module.can.useElement('dropdown');
+ let $calendar = $el.closest(selector.uiCalendar);
+ let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
+ let value = isCheckbox
+ ? $el.is(':checked')
+ : $el.val();
if (isDropdown) {
if ($parent.is(selector.uiDropdown)) {
$parent.dropdown('save defaults');
@@ -1580,13 +1489,10 @@
error: function () {
$module
.removeClass(className.success)
- .addClass(className.error)
- ;
+ .addClass(className.error);
},
value: function (field, value) {
- var
- fields = {}
- ;
+ let fields = {};
fields[field] = value;
return module.set.values.call(element, fields);
@@ -1596,25 +1502,23 @@
return;
}
$.each(fields, function (key, value) {
- var
- $field = module.get.field(key),
- $element = $field.parent(),
- $calendar = $field.closest(selector.uiCalendar),
- isFile = $field.is(selector.file),
- isMultiple = Array.isArray(value),
- isCheckbox = $element.is(selector.uiCheckbox) && module.can.useElement('checkbox'),
- isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
- isRadio = $field.is(selector.radio) && isCheckbox,
- isCalendar = $calendar.length > 0 && module.can.useElement('calendar'),
- fieldExists = $field.length > 0,
- $multipleField
- ;
+ let $field = module.get.field(key);
+ let $element = $field.parent();
+ let $calendar = $field.closest(selector.uiCalendar);
+ let isFile = $field.is(selector.file);
+ let isMultiple = Array.isArray(value);
+ let isCheckbox = $element.is(selector.uiCheckbox) && module.can.useElement('checkbox');
+ let isDropdown = $element.is(selector.uiDropdown) && module.can.useElement('dropdown');
+ let isRadio = $field.is(selector.radio) && isCheckbox;
+ let isCalendar = $calendar.length > 0 && module.can.useElement('calendar');
+ let fieldExists = $field.length > 0;
+ let $multipleField;
if (fieldExists) {
if (isMultiple && isCheckbox) {
module.verbose('Selecting multiple', value, $field);
$element.checkbox('uncheck');
$.each(value, function (index, value) {
- $multipleField = $field.filter('[value="' + value + '"]');
+ $multipleField = $field.filter('[value="' + CSS.escape(value) + '"]');
$element = $multipleField.parent();
if ($multipleField.length > 0) {
$element.checkbox('check');
@@ -1622,10 +1526,9 @@
});
} else if (isRadio) {
module.verbose('Selecting radio value', value, $field);
- $field.filter('[value="' + value + '"]')
+ $field.filter('[value="' + CSS.escape(value) + '"]')
.parent(selector.uiCheckbox)
- .checkbox('check')
- ;
+ .checkbox('check');
} else if (isCheckbox) {
module.verbose('Setting checkbox value', value, $element);
if (value === true || value === 1 || value === 'on') {
@@ -1687,20 +1590,18 @@
});
}
$field.each(function (_index, el) {
- var
- $el = $(el),
- $elGroup = $el.closest($group),
- isCheckbox = $el.filter(selector.checkbox).length > 0,
- isRequired = $el.prop('required') || $elGroup.hasClass(className.required) || $elGroup.parent().hasClass(className.required),
- isDisabled = $el.is(':disabled') || $elGroup.hasClass(className.disabled) || $elGroup.parent().hasClass(className.disabled),
- validation = module.get.validation($el),
- hasNotEmptyRule = validation
- ? $.grep(validation.rules, function (rule) {
- return ['notEmpty', 'checked', 'empty'].indexOf(rule.type) >= 0;
- }).length > 0
- : false,
- identifier = module.get.identifier(validation, $el)
- ;
+ let $el = $(el);
+ let $elGroup = $el.closest($group);
+ let isCheckbox = $el.filter(selector.checkbox).length > 0;
+ let isRequired = $el.prop('required') || $elGroup.hasClass(className.required) || $elGroup.parent().hasClass(className.required);
+ let isDisabled = $el.is(':disabled') || $elGroup.hasClass(className.disabled) || $elGroup.parent().hasClass(className.disabled);
+ let validation = module.get.validation($el);
+ let hasNotEmptyRule = validation
+ ? $.grep(validation.rules, function (rule) {
+ return ['notEmpty', 'checked', 'empty'].indexOf(rule.type) >= 0;
+ }).length > 0
+ : false;
+ let identifier = module.get.identifier(validation, $el);
if (isRequired && !isDisabled && !hasNotEmptyRule && identifier !== undefined) {
if (isCheckbox) {
module.verbose("Adding 'checked' rule on field", identifier);
@@ -1725,7 +1626,7 @@
validate: {
form: function (event, ignoreCallbacks) {
- var values = module.get.values();
+ let values = module.get.values();
// input keydown event will fire submit repeatedly by browser default
if (keyHeldDown) {
@@ -1756,10 +1657,8 @@
event.stopImmediatePropagation();
}
if (settings.errorFocus && ignoreCallbacks !== true) {
- var
- $focusElement,
- hasTabIndex = true
- ;
+ let $focusElement;
+ let hasTabIndex = true;
if (typeof settings.errorFocus === 'string') {
$focusElement = $(document).find(settings.errorFocus);
hasTabIndex = $focusElement.is('[tabindex]');
@@ -1797,20 +1696,18 @@
return true;
}
- var
- identifier = field.identifier || fieldName,
- $field = module.get.field(identifier),
- $fieldGroup = $field.closest($group),
- $dependsField = field.depends
- ? module.get.field(field.depends)
- : false,
- fieldValid = true,
- fieldErrors = [],
- isDisabled = $field.filter(':not(:disabled)').length === 0 || $fieldGroup.hasClass(className.disabled) || $fieldGroup.parent().hasClass(className.disabled),
- validationMessage = $field[0].validationMessage,
- noNativeValidation = field.noNativeValidation || settings.noNativeValidation || $field.filter('[formnovalidate],[novalidate]').length > 0 || $module.filter('[novalidate]').length > 0,
- errorLimit
- ;
+ let identifier = field.identifier || fieldName;
+ let $field = module.get.field(identifier);
+ let $fieldGroup = $field.closest($group);
+ let $dependsField = field.depends
+ ? module.get.field(field.depends)
+ : false;
+ let fieldValid = true;
+ let fieldErrors = [];
+ let isDisabled = $field.filter(':not(:disabled)').length === 0 || $fieldGroup.hasClass(className.disabled) || $fieldGroup.parent().hasClass(className.disabled);
+ let validationMessage = $field[0].validationMessage;
+ let noNativeValidation = field.noNativeValidation || settings.noNativeValidation || $field.filter('[formnovalidate],[novalidate]').length > 0 || $module.filter('[novalidate]').length > 0;
+ let errorLimit;
if (!field.identifier) {
module.debug('Using field name as identifier', identifier);
field.identifier = identifier;
@@ -1835,10 +1732,10 @@
errorLimit = field.errorLimit || settings.errorLimit;
$.each(field.rules, function (index, rule) {
if (module.has.field(identifier) && (!errorLimit || fieldErrors.length < errorLimit)) {
- var invalidFields = module.validate.rule(field, rule, true) || [];
+ let invalidFields = module.validate.rule(field, rule, true) || [];
if (invalidFields.length > 0) {
module.debug('Field is invalid', identifier, rule.type);
- var fieldError = module.get.prompt(rule, field);
+ let fieldError = module.get.prompt(rule, field);
if (!settings.inline) {
if (
// Always allow the first error prompt for new field identifiers
@@ -1882,25 +1779,23 @@
// takes validation rule and returns whether field passes rule
rule: function (field, rule, internal) {
- var
- $field = module.get.field(field.identifier),
- ancillary = module.get.ancillaryValue(rule),
- ruleName = module.get.ruleName(rule),
- ruleFunction = settings.rules[ruleName],
- invalidFields = [],
- isCheckbox = $field.is(selector.checkbox),
- isValid = function (field) {
- var value = isCheckbox ? $(field).filter(':checked').val() : $(field).val();
- // cast to string avoiding encoding special values
- value = value === undefined || value === '' || value === null
- ? ''
- : ((settings.shouldTrim && rule.shouldTrim !== false) || rule.shouldTrim
- ? String(value + '').trim()
- : String(value + ''));
-
- return ruleFunction.call(field, value, ancillary, module);
- }
- ;
+ let $field = module.get.field(field.identifier);
+ let ancillary = module.get.ancillaryValue(rule);
+ let ruleName = module.get.ruleName(rule);
+ let ruleFunction = settings.rules[ruleName];
+ let invalidFields = [];
+ let isCheckbox = $field.is(selector.checkbox);
+ let isValid = function (field) {
+ let value = isCheckbox ? $(field).filter(':checked').val() : $(field).val();
+ // cast to string avoiding encoding special values
+ value = value === undefined || value === '' || value === null
+ ? ''
+ : ((settings.shouldTrim && rule.shouldTrim !== false) || rule.shouldTrim
+ ? String(value + '').trim()
+ : String(value + ''));
+
+ return ruleFunction.call(field, value, ancillary, module);
+ };
if (!isFunction(ruleFunction)) {
module.error(error.noRule, ruleName);
@@ -1974,11 +1869,9 @@
},
performance: {
log: function (message) {
- var
- currentTime,
- executionTime,
- previousTime
- ;
+ let currentTime;
+ let executionTime;
+ let previousTime;
if (settings.performance) {
currentTime = Date.now();
previousTime = time || currentTime;
@@ -1997,10 +1890,8 @@
}, 500);
},
display: function () {
- var
- title = settings.name + ':',
- totalTime = 0
- ;
+ let title = settings.name + ':';
+ let totalTime = 0;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function (index, data) {
@@ -2025,19 +1916,17 @@
},
},
invoke: function (query, passedArguments, context) {
- var
- object = instance,
- maxDepth,
- found,
- response
- ;
+ let object = instance;
+ let maxDepth;
+ let found;
+ let response;
passedArguments = passedArguments || queryArguments;
context = context || element;
if (typeof query === 'string' && object !== undefined) {
query = query.split(/[ .]/);
maxDepth = query.length - 1;
$.each(query, function (depth, value) {
- var camelCaseValue = depth !== maxDepth
+ let camelCaseValue = depth !== maxDepth
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
: query;
if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
@@ -2222,9 +2111,7 @@
// template that produces error message
error: function (errors) {
- var
- html = '
'
- ;
+ let html = '';
$.each(errors, function (index, value) {
html += '- ' + value + '
';
});
@@ -2238,9 +2125,7 @@
if (errors.length === 1) {
return errors[0];
}
- var
- html = ''
- ;
+ let html = '';
$.each(errors, function (index, value) {
html += '- ' + value + '
';
});
@@ -2311,10 +2196,8 @@
if (regExp instanceof RegExp) {
return value.match(regExp);
}
- var
- regExpParts = regExp.match($.fn.form.settings.regExp.flags),
- flags
- ;
+ let regExpParts = regExp.match($.fn.form.settings.regExp.flags);
+ let flags;
// regular expression specified as /baz/gi (flags)
if (regExpParts) {
regExp = regExpParts.length >= 2
@@ -2344,11 +2227,9 @@
if (!(regExp instanceof RegExp)) {
regExp = $.fn.form.settings.regExp.integer;
}
- var
- min,
- max,
- parts
- ;
+ let min;
+ let max;
+ let parts;
if (!range || ['', '..'].indexOf(range) !== -1) {
// do nothing
@@ -2474,7 +2355,7 @@
// matches another field
match: function (value, identifier, module) {
- var matchingValue = module.get.value(identifier, true);
+ let matchingValue = module.get.value(identifier, true);
return matchingValue !== undefined
? value.toString() === matchingValue.toString()
@@ -2483,7 +2364,7 @@
// different from another field
different: function (value, identifier, module) {
- var matchingValue = module.get.value(identifier, true);
+ let matchingValue = module.get.value(identifier, true);
return matchingValue !== undefined
? value.toString() !== matchingValue.toString()
@@ -2491,57 +2372,55 @@
},
creditCard: function (cardNumber, cardTypes) {
- var
- cards = {
- visa: {
- pattern: /^4/,
- length: [16],
- },
- amex: {
- pattern: /^3[47]/,
- length: [15],
- },
- mastercard: {
- pattern: /^5[1-5]/,
- length: [16],
- },
- discover: {
- pattern: /^(6011|622(12[6-9]|1[3-9]\d|[2-8]\d{2}|9[01]\d|92[0-5]|64[4-9])|65)/,
- length: [16],
- },
- unionPay: {
- pattern: /^(62|88)/,
- length: [16, 17, 18, 19],
- },
- jcb: {
- pattern: /^35(2[89]|[3-8]\d)/,
- length: [16],
- },
- maestro: {
- pattern: /^(5018|5020|5038|6304|6759|676[1-3])/,
- length: [12, 13, 14, 15, 16, 17, 18, 19],
- },
- dinersClub: {
- pattern: /^(30[0-5]|^36)/,
- length: [14],
- },
- laser: {
- pattern: /^(6304|670[69]|6771)/,
- length: [16, 17, 18, 19],
- },
- visaElectron: {
- pattern: /^(4026|417500|4508|4844|491(3|7))/,
- length: [16],
- },
+ let cards = {
+ visa: {
+ pattern: /^4/,
+ length: [16],
+ },
+ amex: {
+ pattern: /^3[47]/,
+ length: [15],
+ },
+ mastercard: {
+ pattern: /^5[1-5]/,
+ length: [16],
+ },
+ discover: {
+ pattern: /^(6011|622(12[6-9]|1[3-9]\d|[2-8]\d{2}|9[01]\d|92[0-5]|64[4-9])|65)/,
+ length: [16],
+ },
+ unionPay: {
+ pattern: /^(62|88)/,
+ length: [16, 17, 18, 19],
},
- valid = {},
- validCard = false,
- requiredTypes = typeof cardTypes === 'string'
- ? cardTypes.split(',')
- : false,
- unionPay,
- validation
- ;
+ jcb: {
+ pattern: /^35(2[89]|[3-8]\d)/,
+ length: [16],
+ },
+ maestro: {
+ pattern: /^(5018|5020|5038|6304|6759|676[1-3])/,
+ length: [12, 13, 14, 15, 16, 17, 18, 19],
+ },
+ dinersClub: {
+ pattern: /^(30[0-5]|^36)/,
+ length: [14],
+ },
+ laser: {
+ pattern: /^(6304|670[69]|6771)/,
+ length: [16, 17, 18, 19],
+ },
+ visaElectron: {
+ pattern: /^(4026|417500|4508|4844|491(3|7))/,
+ length: [16],
+ },
+ };
+ let valid = {};
+ let validCard = false;
+ let requiredTypes = typeof cardTypes === 'string'
+ ? cardTypes.split(',')
+ : false;
+ let unionPay;
+ let validation;
if (typeof cardNumber !== 'string' || cardNumber.length === 0) {
return;
@@ -2581,15 +2460,13 @@
}
// verify luhn, adapted from
- var
- length = cardNumber.length,
- multiple = 0,
- producedValue = [
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
- [0, 2, 4, 6, 8, 1, 3, 5, 7, 9],
- ],
- sum = 0
- ;
+ let length = cardNumber.length;
+ let multiple = 0;
+ let producedValue = [
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
+ [0, 2, 4, 6, 8, 1, 3, 5, 7, 9],
+ ];
+ let sum = 0;
while (length--) {
sum += producedValue[multiple][parseInt(cardNumber.charAt(length), 10)];
multiple ^= 1; // eslint-disable-line no-bitwise
@@ -2654,41 +2531,37 @@
: globalThis;
$.fn.accordion = function (parameters) {
- var
- $allModules = $(this),
+ let $allModules = $(this);
- time = Date.now(),
- performance = [],
+ let time = Date.now();
+ let performance = [];
- query = arguments[0],
- methodInvoked = typeof query === 'string',
- queryArguments = [].slice.call(arguments, 1),
+ let query = arguments[0];
+ let methodInvoked = typeof query === 'string';
+ let queryArguments = [].slice.call(arguments, 1);
- returnedValue
- ;
+ let returnedValue;
$allModules.each(function () {
- var
- settings = $.isPlainObject(parameters)
- ? $.extend(true, {}, $.fn.accordion.settings, parameters)
- : $.extend({}, $.fn.accordion.settings),
+ let settings = $.isPlainObject(parameters)
+ ? $.extend(true, {}, $.fn.accordion.settings, parameters)
+ : $.extend({}, $.fn.accordion.settings);
- className = settings.className,
- namespace = settings.namespace,
- selector = settings.selector,
- error = settings.error,
+ let className = settings.className;
+ let namespace = settings.namespace;
+ let selector = settings.selector;
+ let error = settings.error;
- eventNamespace = '.' + namespace,
- moduleNamespace = 'module-' + namespace,
+ let eventNamespace = '.' + namespace;
+ let moduleNamespace = 'module-' + namespace;
- $module = $(this),
- $title = $module.find(selector.title),
- $content = $module.find(selector.content),
+ let $module = $(this);
+ let $title = $module.find(selector.title);
+ let $content = $module.find(selector.content);
- element = this,
- instance = $module.data(moduleNamespace),
- observer,
- module
- ;
+ let element = this;
+ let instance = $module.data(moduleNamespace);
+ let observer;
+ let module;
module = {
@@ -2704,16 +2577,14 @@
instantiate: function () {
instance = module;
$module
- .data(moduleNamespace, module)
- ;
+ .data(moduleNamespace, module);
},
destroy: function () {
module.debug('Destroying previous instance', $module);
$module
.off(eventNamespace)
- .removeData(moduleNamespace)
- ;
+ .removeData(moduleNamespace);
},
refresh: function () {
@@ -2739,8 +2610,7 @@
events: function () {
module.debug('Binding delegated events');
$module
- .on(settings.on + eventNamespace, selector.trigger, module.event.click)
- ;
+ .on(settings.on + eventNamespace, selector.trigger, module.event.click);
},
},
@@ -2753,18 +2623,16 @@
},
toggle: function (query) {
- var
- $activeTitle = query !== undefined
- ? (typeof query === 'number'
- ? $title.eq(query)
- : $(query).closest(selector.title))
- : $(this).closest(selector.title),
- $activeContent = $activeTitle.next($content),
- isAnimating = $activeContent.hasClass(className.animating),
- isActive = $activeContent.hasClass(className.active),
- isOpen = isActive && !isAnimating,
- isOpening = !isActive && isAnimating
- ;
+ let $activeTitle = query !== undefined
+ ? (typeof query === 'number'
+ ? $title.eq(query)
+ : $(query).closest(selector.title))
+ : $(this).closest(selector.title);
+ let $activeContent = $activeTitle.next($content);
+ let isAnimating = $activeContent.hasClass(className.animating);
+ let isActive = $activeContent.hasClass(className.active);
+ let isOpen = isActive && !isAnimating;
+ let isOpening = !isActive && isAnimating;
module.debug('Toggling visibility of content', $activeTitle);
if (isOpen || isOpening) {
if (settings.collapsible) {
@@ -2778,17 +2646,15 @@
},
open: function (query) {
- var
- $activeTitle = query !== undefined
- ? (typeof query === 'number'
- ? $title.eq(query)
- : $(query).closest(selector.title))
- : $(this).closest(selector.title),
- $activeContent = $activeTitle.next($content),
- isAnimating = $activeContent.hasClass(className.animating),
- isActive = $activeContent.hasClass(className.active),
- isOpen = isActive || isAnimating
- ;
+ let $activeTitle = query !== undefined
+ ? (typeof query === 'number'
+ ? $title.eq(query)
+ : $(query).closest(selector.title))
+ : $(this).closest(selector.title);
+ let $activeContent = $activeTitle.next($content);
+ let isAnimating = $activeContent.hasClass(className.animating);
+ let isActive = $activeContent.hasClass(className.active);
+ let isOpen = isActive || isAnimating;
if (isOpen) {
module.debug('Accordion already open, skipping', $activeContent);
@@ -2801,12 +2667,10 @@
module.closeOthers.call($activeTitle);
}
$activeTitle
- .addClass(className.active)
- ;
+ .addClass(className.active);
$activeContent
.stop(true, true)
- .addClass(className.animating)
- ;
+ .addClass(className.animating);
if (settings.animateChildren) {
if ($.fn.transition !== undefined) {
$activeContent
@@ -2823,8 +2687,7 @@
onComplete: function () {
$activeContent.children().removeClass(className.transition);
},
- })
- ;
+ });
} else {
$activeContent
.children()
@@ -2838,39 +2701,33 @@
.slideDown(settings.duration, settings.easing, function () {
$activeContent
.removeClass(className.animating)
- .addClass(className.active)
- ;
+ .addClass(className.active);
module.reset.display.call(this);
settings.onOpen.call(this);
settings.onChange.call(this);
- })
- ;
+ });
},
close: function (query) {
- var
- $activeTitle = query !== undefined
- ? (typeof query === 'number'
- ? $title.eq(query)
- : $(query).closest(selector.title))
- : $(this).closest(selector.title),
- $activeContent = $activeTitle.next($content),
- isAnimating = $activeContent.hasClass(className.animating),
- isActive = $activeContent.hasClass(className.active),
- isOpening = !isActive && isAnimating,
- isClosing = isActive && isAnimating
- ;
+ let $activeTitle = query !== undefined
+ ? (typeof query === 'number'
+ ? $title.eq(query)
+ : $(query).closest(selector.title))
+ : $(this).closest(selector.title);
+ let $activeContent = $activeTitle.next($content);
+ let isAnimating = $activeContent.hasClass(className.animating);
+ let isActive = $activeContent.hasClass(className.active);
+ let isOpening = !isActive && isAnimating;
+ let isClosing = isActive && isAnimating;
if ((isActive || isOpening) && !isClosing) {
module.debug('Closing accordion content', $activeContent);
settings.onClosing.call($activeContent);
settings.onChanging.call($activeContent);
$activeTitle
- .removeClass(className.active)
- ;
+ .removeClass(className.active);
$activeContent
.stop(true, true)
- .addClass(className.animating)
- ;
+ .addClass(className.animating);
if (settings.animateChildren) {
if ($.fn.transition !== undefined) {
$activeContent
@@ -2884,8 +2741,7 @@
silent: settings.silent,
duration: settings.duration,
skipInlineHidden: true,
- })
- ;
+ });
} else {
$activeContent
.children()
@@ -2899,29 +2755,25 @@
.slideUp(settings.duration, settings.easing, function () {
$activeContent
.removeClass(className.animating)
- .removeClass(className.active)
- ;
+ .removeClass(className.active);
module.reset.display.call(this);
settings.onClose.call(this);
settings.onChange.call(this);
- })
- ;
+ });
}
},
closeOthers: function (index) {
- var
- $activeTitle = index !== undefined
- ? $title.eq(index)
- : $(this).closest(selector.title),
- $parentTitles = $activeTitle.parents(selector.content).prev(selector.title),
- $activeAccordion = $activeTitle.closest(selector.accordion),
- activeSelector = selector.title + '.' + className.active + ':visible',
- activeContent = selector.content + '.' + className.active + ':visible',
- $openTitles,
- $nestedTitles,
- $openContents
- ;
+ let $activeTitle = index !== undefined
+ ? $title.eq(index)
+ : $(this).closest(selector.title);
+ let $parentTitles = $activeTitle.parents(selector.content).prev(selector.title);
+ let $activeAccordion = $activeTitle.closest(selector.accordion);
+ let activeSelector = selector.title + '.' + className.active + ':visible';
+ let activeContent = selector.content + '.' + className.active + ':visible';
+ let $openTitles;
+ let $nestedTitles;
+ let $openContents;
if (settings.closeNested) {
$openTitles = $activeAccordion.find(activeSelector).not($parentTitles);
$openContents = $openTitles.next($content);
@@ -2934,12 +2786,10 @@
if ($openTitles.length > 0) {
module.debug('Exclusive enabled, closing other content', $openTitles);
$openTitles
- .removeClass(className.active)
- ;
+ .removeClass(className.active);
$openContents
.removeClass(className.animating)
- .stop(true, true)
- ;
+ .stop(true, true);
if (settings.animateChildren) {
if ($.fn.transition !== undefined) {
$openContents
@@ -2952,8 +2802,7 @@
silent: settings.silent,
duration: settings.duration,
skipInlineHidden: true,
- })
- ;
+ });
} else {
$openContents
.children()
@@ -2967,8 +2816,7 @@
.slideUp(settings.duration, settings.easing, function () {
$(this).removeClass(className.active);
module.reset.display.call(this);
- })
- ;
+ });
}
},
@@ -2976,25 +2824,23 @@
display: function () {
module.verbose('Removing inline display from element', this);
- var $element = $(this);
+ let $element = $(this);
$element.css('display', '');
if ($element.attr('style') === '') {
$element
.attr('style', '')
- .removeAttr('style')
- ;
+ .removeAttr('style');
}
},
opacity: function () {
module.verbose('Removing inline opacity from element', this);
- var $element = $(this);
+ let $element = $(this);
$element.css('opacity', '');
if ($element.attr('style') === '') {
$element
.attr('style', '')
- .removeAttr('style')
- ;
+ .removeAttr('style');
}
},
@@ -3054,11 +2900,9 @@
},
performance: {
log: function (message) {
- var
- currentTime,
- executionTime,
- previousTime
- ;
+ let currentTime;
+ let executionTime;
+ let previousTime;
if (settings.performance) {
currentTime = Date.now();
previousTime = time || currentTime;
@@ -3077,10 +2921,8 @@
}, 500);
},
display: function () {
- var
- title = settings.name + ':',
- totalTime = 0
- ;
+ let title = settings.name + ':';
+ let totalTime = 0;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function (index, data) {
@@ -3102,19 +2944,17 @@
},
},
invoke: function (query, passedArguments, context) {
- var
- object = instance,
- maxDepth,
- found,
- response
- ;
+ let object = instance;
+ let maxDepth;
+ let found;
+ let response;
passedArguments = passedArguments || queryArguments;
context = context || element;
if (typeof query === 'string' && object !== undefined) {
query = query.split(/[ .]/);
maxDepth = query.length - 1;
$.each(query, function (depth, value) {
- var camelCaseValue = depth !== maxDepth
+ let camelCaseValue = depth !== maxDepth
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
: query;
if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
@@ -3241,61 +3081,57 @@
: globalThis;
$.fn.calendar = function (parameters) {
- var
- $allModules = $(this),
- $document = $(document),
-
- time = Date.now(),
- performance = [],
-
- query = arguments[0],
- methodInvoked = typeof query === 'string',
- queryArguments = [].slice.call(arguments, 1),
- returnedValue,
- timeGapTable = {
- 5: { row: 4, column: 3 },
- 10: { row: 3, column: 2 },
- 15: { row: 2, column: 2 },
- 20: { row: 3, column: 1 },
- 30: { row: 2, column: 1 },
- },
- numberText = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight']
- ;
+ let $allModules = $(this);
+ let $document = $(document);
+
+ let time = Date.now();
+ let performance = [];
+
+ let query = arguments[0];
+ let methodInvoked = typeof query === 'string';
+ let queryArguments = [].slice.call(arguments, 1);
+ let returnedValue;
+ let timeGapTable = {
+ 5: { row: 4, column: 3 },
+ 10: { row: 3, column: 2 },
+ 15: { row: 2, column: 2 },
+ 20: { row: 3, column: 1 },
+ 30: { row: 2, column: 1 },
+ };
+ let numberText = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight'];
$allModules.each(function () {
- var
- settings = $.isPlainObject(parameters)
- ? $.extend(true, {}, $.fn.calendar.settings, parameters)
- : $.extend({}, $.fn.calendar.settings),
-
- className = settings.className,
- namespace = settings.namespace,
- selector = settings.selector,
- formatter = settings.formatter,
- parser = settings.parser,
- metadata = settings.metadata,
- timeGap = timeGapTable[settings.minTimeGap],
- error = settings.error,
-
- eventNamespace = '.' + namespace,
- moduleNamespace = 'module-' + namespace,
-
- $module = $(this),
- $input = $module.find(selector.input),
- $activator = $module.find(selector.activator),
-
- element = this,
- instance = $module.data(moduleNamespace),
- $container = instance && instance.popupId ? $document.find('#' + instance.popupId) : $module.find(selector.popup),
-
- isTouch,
- isTouchDown = false,
- isInverted = $module.hasClass(className.inverted),
- focusDateUsedForRange = false,
- selectionComplete = false,
- classObserver,
- module
- ;
+ let settings = $.isPlainObject(parameters)
+ ? $.extend(true, {}, $.fn.calendar.settings, parameters)
+ : $.extend({}, $.fn.calendar.settings);
+
+ let className = settings.className;
+ let namespace = settings.namespace;
+ let selector = settings.selector;
+ let formatter = settings.formatter;
+ let parser = settings.parser;
+ let metadata = settings.metadata;
+ let timeGap = timeGapTable[settings.minTimeGap];
+ let error = settings.error;
+
+ let eventNamespace = '.' + namespace;
+ let moduleNamespace = 'module-' + namespace;
+
+ let $module = $(this);
+ let $input = $module.find(selector.input);
+ let $activator = $module.find(selector.activator);
+
+ let element = this;
+ let instance = $module.data(moduleNamespace);
+ let $container = instance && instance.popupId ? $document.find('#' + instance.popupId) : $module.find(selector.popup);
+
+ let isTouch;
+ let isTouchDown = false;
+ let isInverted = $module.hasClass(className.inverted);
+ let focusDateUsedForRange = false;
+ let selectionComplete = false;
+ let classObserver;
+ let module;
module = {
@@ -3371,10 +3207,8 @@
} else {
// prepend the popup element to the activator's parent so that it has less chance of messing with
// the styling (e.g., input action button needs to be the last child to have the correct border radius)
- var
- $activatorParent = $activator.parent(),
- domPositionFunction = $activatorParent.closest(selector.append).length > 0 ? 'appendTo' : 'prependTo'
- ;
+ let $activatorParent = $activator.parent();
+ let domPositionFunction = $activatorParent.closest(selector.append).length > 0 ? 'appendTo' : 'prependTo';
$container = $('').addClass(className.popup)[domPositionFunction]($activatorParent);
}
}
@@ -3382,12 +3216,12 @@
if (isInverted) {
$container.addClass(className.inverted);
}
- var onVisible = function () {
+ let onVisible = function () {
module.refreshTooltips();
return settings.onVisible.apply($container, arguments);
};
- var onHidden = function () {
+ let onHidden = function () {
module.blur();
return settings.onHidden.apply($container, arguments);
@@ -3402,15 +3236,15 @@
return settings.onVisible.apply($container, arguments);
};
}
- var onShow = function () {
+ let onShow = function () {
// reset the focus date onShow
module.set.focusDate(module.get.date());
module.set.mode(module.get.validatedMode(settings.startMode));
return settings.onShow.apply($container, arguments);
};
- var on = module.setting('on');
- var options = $.extend({}, settings.popupOptions, {
+ let on = module.setting('on');
+ let options = $.extend({}, settings.popupOptions, {
popup: $container,
movePopup: !settings.context,
on: on,
@@ -3440,7 +3274,7 @@
module.check.disabled();
},
date: function () {
- var date;
+ let date;
if (settings.initialDate) {
date = parser.date(settings.initialDate, settings);
} else if ($module.data(metadata.date) !== undefined) {
@@ -3455,11 +3289,9 @@
trigger: {
change: function () {
- var
- inputElement = $input[0]
- ;
+ let inputElement = $input[0];
if (inputElement) {
- var events = document.createEvent('HTMLEvents');
+ let events = document.createEvent('HTMLEvents');
module.verbose('Triggering native change event');
events.initEvent('change', true, false);
inputElement.dispatchEvent(events);
@@ -3469,57 +3301,49 @@
create: {
calendar: function () {
- var
- i,
- r,
- c,
- p,
- row,
- cell,
- pageGrid
- ;
-
- var
- mode = module.get.mode(),
- today = new Date(),
- date = module.get.date(),
- focusDate = module.get.focusDate(),
- display = module.helper.dateInRange(focusDate || date || parser.date(settings.initialDate, settings) || today)
- ;
+ let i;
+ let r;
+ let c;
+ let p;
+ let row;
+ let cell;
+ let pageGrid;
+
+ let mode = module.get.mode();
+ let today = new Date();
+ let date = module.get.date();
+ let focusDate = module.get.focusDate();
+ let display = module.helper.dateInRange(focusDate || date || parser.date(settings.initialDate, settings) || today);
if (!focusDate) {
focusDate = display;
module.set.focusDate(focusDate, false, false);
}
- var
- isYear = mode === 'year',
- isMonth = mode === 'month',
- isDay = mode === 'day',
- isHour = mode === 'hour',
- isMinute = mode === 'minute',
- isTimeOnly = settings.type === 'time'
- ;
+ let isYear = mode === 'year';
+ let isMonth = mode === 'month';
+ let isDay = mode === 'day';
+ let isHour = mode === 'hour';
+ let isMinute = mode === 'minute';
+ let isTimeOnly = settings.type === 'time';
- var multiMonth = Math.max(settings.multiMonth, 1);
- var monthOffset = !isDay ? 0 : module.get.monthOffset();
+ let multiMonth = Math.max(settings.multiMonth, 1);
+ let monthOffset = !isDay ? 0 : module.get.monthOffset();
- var
- minute = display.getMinutes(),
- hour = display.getHours(),
- day = display.getDate(),
- startMonth = display.getMonth() + monthOffset,
- year = display.getFullYear()
- ;
+ let minute = display.getMinutes();
+ let hour = display.getHours();
+ let day = display.getDate();
+ let startMonth = display.getMonth() + monthOffset;
+ let year = display.getFullYear();
- var columns = isDay
+ let columns = isDay
? (settings.showWeekNumbers ? 8 : 7)
: (isHour ? 4 : timeGap.column);
- var rows = isDay || isHour ? 6 : timeGap.row;
- var pages = isDay ? multiMonth : 1;
+ let rows = isDay || isHour ? 6 : timeGap.row;
+ let pages = isDay ? multiMonth : 1;
- var container = $container;
- var tooltipPosition = container.hasClass('left') ? 'right center' : 'left center';
+ let container = $container;
+ let tooltipPosition = container.hasClass('left') ? 'right center' : 'left center';
container.empty();
if (pages > 1) {
pageGrid = $('').addClass(className.grid).appendTo(container);
@@ -3527,65 +3351,63 @@
for (p = 0; p < pages; p++) {
if (pages > 1) {
- var pageColumn = $('').addClass(className.column).appendTo(pageGrid);
+ let pageColumn = $('').addClass(className.column).appendTo(pageGrid);
container = pageColumn;
}
- var month = startMonth + p;
- var firstMonthDayColumn = (new Date(year, month, 1).getDay() - (settings.firstDayOfWeek % 7) + 7) % 7;
+ let month = startMonth + p;
+ let firstMonthDayColumn = (new Date(year, month, 1).getDay() - (settings.firstDayOfWeek % 7) + 7) % 7;
if (!settings.constantHeight && isDay) {
- var requiredCells = new Date(year, month + 1, 0).getDate() + firstMonthDayColumn;
+ let requiredCells = new Date(year, month + 1, 0).getDate() + firstMonthDayColumn;
rows = Math.ceil(requiredCells / 7);
}
- var
- yearChange = isYear ? 10 : (isMonth ? 1 : 0),
- monthChange = isDay ? 1 : 0,
- dayChange = isHour || isMinute ? 1 : 0,
- prevNextDay = isHour || isMinute ? day : 1,
- prevDate = new Date(year - yearChange, month - monthChange, prevNextDay - dayChange, hour),
- nextDate = new Date(year + yearChange, month + monthChange, prevNextDay + dayChange, hour),
- prevLast = isYear
- ? new Date(Math.ceil(year / 10) * 10 - 9, 0, 0)
- : (isMonth
- ? new Date(year, 0, 0)
- : (isDay // eslint-disable-line unicorn/no-nested-ternary
- ? new Date(year, month, 0)
- : new Date(year, month, day, -1))),
- nextFirst = isYear
- ? new Date(Math.ceil(year / 10) * 10 + 1, 0, 1)
- : (isMonth
- ? new Date(year + 1, 0, 1)
- : (isDay // eslint-disable-line unicorn/no-nested-ternary
- ? new Date(year, month + 1, 1)
- : new Date(year, month, day + 1)))
- ;
-
- var tempMode = mode;
+ let yearChange = isYear ? 10 : (isMonth ? 1 : 0);
+ let monthChange = isDay ? 1 : 0;
+ let dayChange = isHour || isMinute ? 1 : 0;
+ let prevNextDay = isHour || isMinute ? day : 1;
+ let prevDate = new Date(year - yearChange, month - monthChange, prevNextDay - dayChange, hour);
+ let nextDate = new Date(year + yearChange, month + monthChange, prevNextDay + dayChange, hour);
+ let prevLast = isYear
+ ? new Date(Math.ceil(year / 10) * 10 - 9, 0, 0)
+ : (isMonth
+ ? new Date(year, 0, 0)
+ : (isDay // eslint-disable-line unicorn/no-nested-ternary
+ ? new Date(year, month, 0)
+ : new Date(year, month, day, -1)));
+ let nextFirst = isYear
+ ? new Date(Math.ceil(year / 10) * 10 + 1, 0, 1)
+ : (isMonth
+ ? new Date(year + 1, 0, 1)
+ : (isDay // eslint-disable-line unicorn/no-nested-ternary
+ ? new Date(year, month + 1, 1)
+ : new Date(year, month, day + 1)));
+
+ let tempMode = mode;
if (isDay && settings.showWeekNumbers) {
tempMode += ' andweek';
}
- var table = $('').addClass(className.table).addClass(tempMode).addClass(numberText[columns] + ' column')
+ let table = $('').addClass(className.table).addClass(tempMode).addClass(numberText[columns] + ' column')
.appendTo(container);
if (isInverted) {
table.addClass(className.inverted);
}
- var textColumns = columns;
+ let textColumns = columns;
// no header for time-only mode
if (!isTimeOnly) {
- var thead = $('').appendTo(table);
+ let thead = $('').appendTo(table);
row = $('
').appendTo(thead);
cell = $(' | ').attr('colspan', '' + columns).appendTo(row);
- var headerDate = isYear || isMonth
+ let headerDate = isYear || isMonth
? new Date(year, 0, 1)
: (isDay
? new Date(year, month, 1)
: new Date(year, month, day, hour, minute));
- var headerText = $('').addClass(className.link).appendTo(cell);
+ let headerText = $('').addClass(className.link).appendTo(cell);
headerText.text(module.helper.dateFormat(formatter[mode + 'Header'], headerDate));
- var newMode = isMonth
+ let newMode = isMonth
? (settings.disableYear ? 'day' : 'year')
: (isDay
? (settings.disableMonth ? 'year' : 'month') // eslint-disable-line unicorn/no-nested-ternary
@@ -3593,14 +3415,14 @@
headerText.data(metadata.mode, newMode);
if (p === 0) {
- var prev = $('').addClass(className.prev).appendTo(cell);
+ let prev = $('').addClass(className.prev).appendTo(cell);
prev.data(metadata.focusDate, prevDate);
prev.toggleClass(className.disabledCell, !module.helper.isDateInRange(prevLast, mode));
$('').addClass(className.prevIcon).appendTo(prev);
}
if (p === pages - 1) {
- var next = $('').addClass(className.next).appendTo(cell);
+ let next = $('').addClass(className.next).appendTo(cell);
next.data(metadata.focusDate, nextDate);
next.toggleClass(className.disabledCell, !module.helper.isDateInRange(nextFirst, mode));
$('').addClass(className.nextIcon).appendTo(next);
@@ -3620,7 +3442,7 @@
}
}
- var tbody = $('').appendTo(table);
+ let tbody = $('').appendTo(table);
i = isYear
? Math.ceil(year / 10) * 10 - 9
: (isDay ? 1 - firstMonthDayColumn : 0);
@@ -3632,7 +3454,7 @@
cell.addClass(className.weekCell);
}
for (c = 0; c < textColumns; c++, i++) {
- var cellDate = isYear
+ let cellDate = isYear
? new Date(i, month, 1, hour, minute)
: (isMonth
? new Date(year, i, 1, hour, minute)
@@ -3641,7 +3463,7 @@
: (isHour
? new Date(year, month, day, i)
: new Date(year, month, day, hour, i * settings.minTimeGap))));
- var cellText = isYear
+ let cellText = isYear
? i
: (isMonth
? settings.text.monthsShort[i]
@@ -3651,11 +3473,11 @@
cell = $(' | ').addClass(className.cell).appendTo(row);
cell.text(cellText);
cell.data(metadata.date, cellDate);
- var adjacent = isDay && cellDate.getMonth() !== ((month + 12) % 12);
- var disabled = (!settings.selectAdjacentDays && adjacent) || !module.helper.isDateInRange(cellDate, mode) || settings.isDisabled(cellDate, mode) || module.helper.isDisabled(cellDate, mode) || !module.helper.isEnabled(cellDate, mode);
- var eventDate;
+ let adjacent = isDay && cellDate.getMonth() !== ((month + 12) % 12);
+ let disabled = (!settings.selectAdjacentDays && adjacent) || !module.helper.isDateInRange(cellDate, mode) || settings.isDisabled(cellDate, mode) || module.helper.isDisabled(cellDate, mode) || !module.helper.isEnabled(cellDate, mode);
+ let eventDate;
if (disabled) {
- var disabledDate = module.helper.findDayAsObject(cellDate, mode, settings.disabledDates);
+ let disabledDate = module.helper.findDayAsObject(cellDate, mode, settings.disabledDates);
if (disabledDate !== null && disabledDate[metadata.message]) {
cell.attr('data-tooltip', disabledDate[metadata.message]);
cell.attr('data-position', disabledDate[metadata.position] || tooltipPosition);
@@ -3667,7 +3489,7 @@
}
}
if (mode === 'hour') {
- var disabledHour = module.helper.findHourAsObject(cellDate, mode, settings.disabledHours);
+ let disabledHour = module.helper.findHourAsObject(cellDate, mode, settings.disabledHours);
if (disabledHour !== null && disabledHour[metadata.message]) {
cell.attr('data-tooltip', disabledHour[metadata.message]);
cell.attr('data-position', disabledHour[metadata.position] || tooltipPosition);
@@ -3695,8 +3517,8 @@
}
}
}
- var active = module.helper.dateEqual(cellDate, date, mode);
- var isToday = module.helper.dateEqual(cellDate, today, mode);
+ let active = module.helper.dateEqual(cellDate, date, mode);
+ let isToday = module.helper.dateEqual(cellDate, today, mode);
cell.toggleClass(className.adjacentCell, adjacent && !eventDate);
cell.toggleClass(className.disabledCell, disabled);
cell.toggleClass(className.activeCell, active && !(adjacent && disabled));
@@ -3705,7 +3527,7 @@
}
// Allow for external modifications of each cell
- var cellOptions = {
+ let cellOptions = {
mode: mode,
adjacent: adjacent,
disabled: disabled,
@@ -3723,8 +3545,8 @@
}
if (settings.today) {
- var todayRow = $('
').appendTo(tbody);
- var todayButton = $(' | ').attr('colspan', '' + columns).addClass(className.today).appendTo(todayRow);
+ let todayRow = $('
').appendTo(tbody);
+ let todayButton = $(' | ').attr('colspan', '' + columns).addClass(className.today).appendTo(todayRow);
todayButton.text(formatter.today(settings));
todayButton.data(metadata.date, today);
}
@@ -3741,24 +3563,24 @@
update: {
focus: function (updateRange, container) {
container = container || $container;
- var mode = module.get.mode();
- var date = module.get.date();
- var focusDate = module.get.focusDate();
- var startDate = module.get.startDate();
- var endDate = module.get.endDate();
- var rangeDate = (updateRange ? focusDate : null) || date || (!isTouch ? focusDate : null);
+ let mode = module.get.mode();
+ let date = module.get.date();
+ let focusDate = module.get.focusDate();
+ let startDate = module.get.startDate();
+ let endDate = module.get.endDate();
+ let rangeDate = (updateRange ? focusDate : null) || date || (!isTouch ? focusDate : null);
container.find('td').each(function () {
- var $cell = $(this);
- var cellDate = $cell.data(metadata.date);
+ let $cell = $(this);
+ let cellDate = $cell.data(metadata.date);
if (!cellDate) {
return;
}
- var disabled = $cell.hasClass(className.disabledCell);
- var active = $cell.hasClass(className.activeCell);
- var adjacent = $cell.hasClass(className.adjacentCell);
- var focused = module.helper.dateEqual(cellDate, focusDate, mode);
- var inRange = !rangeDate
+ let disabled = $cell.hasClass(className.disabledCell);
+ let active = $cell.hasClass(className.activeCell);
+ let adjacent = $cell.hasClass(className.adjacentCell);
+ let focused = module.helper.dateEqual(cellDate, focusDate, mode);
+ let inRange = !rangeDate
? false
: (!!startDate && module.helper.isDateInRange(cellDate, mode, startDate, rangeDate))
|| (!!endDate && module.helper.isDateInRange(cellDate, mode, rangeDate, endDate));
@@ -3777,13 +3599,13 @@
},
refreshTooltips: function () {
- var winWidth = $(window).width();
+ let winWidth = $(window).width();
$container.find('td[data-position]').each(function () {
- var $cell = $(this);
- var tooltipWidth = window.getComputedStyle($cell[0], '::after').width.replace(/[^\d.]/g, '');
- var tooltipPosition = $cell.attr('data-position');
+ let $cell = $(this);
+ let tooltipWidth = window.getComputedStyle($cell[0], '::after').width.replace(/[^\d.]/g, '');
+ let tooltipPosition = $cell.attr('data-position');
// use a fallback width of 250 (calendar width) for IE/Edge (which return "auto")
- var calcPosition = (winWidth - $cell.width() - (parseInt(tooltipWidth, 10) || 250)) > $cell.offset().left ? 'right' : 'left';
+ let calcPosition = (winWidth - $cell.width() - (parseInt(tooltipWidth, 10) || 250)) > $cell.offset().left ? 'right' : 'left';
if (tooltipPosition.indexOf(calcPosition) === -1) {
$cell.attr('data-position', tooltipPosition.replace(/(left|right)/, calcPosition));
}
@@ -3821,9 +3643,9 @@
event: {
mouseover: function (event) {
- var target = $(event.target);
- var date = target.data(metadata.date);
- var mousedown = event.buttons === 1;
+ let target = $(event.target);
+ let date = target.data(metadata.date);
+ let mousedown = event.buttons === 1;
if (date) {
module.set.focusDate(date, false, true, mousedown);
}
@@ -3834,8 +3656,8 @@
event.preventDefault();
}
isTouchDown = event.type.indexOf('touch') >= 0;
- var target = $(event.target);
- var date = target.data(metadata.date);
+ let target = $(event.target);
+ let date = target.data(metadata.date);
if (date) {
module.set.focusDate(date, false, true, true);
}
@@ -3846,20 +3668,20 @@
event.preventDefault();
event.stopPropagation();
isTouchDown = false;
- var target = $(event.target);
+ let target = $(event.target);
if (target.hasClass('disabled')) {
return;
}
- var parent = target.parent();
+ let parent = target.parent();
if (parent.data(metadata.date) || parent.data(metadata.focusDate) || parent.data(metadata.mode)) {
// clicked on a child element, switch to parent (used when clicking directly on the prev/next icon element)
target = parent;
}
- var date = target.data(metadata.date);
- var focusDate = target.data(metadata.focusDate);
- var mode = target.data(metadata.mode);
+ let date = target.data(metadata.date);
+ let focusDate = target.data(metadata.focusDate);
+ let mode = target.data(metadata.mode);
if (date && settings.onSelect.call(element, date, module.get.mode()) !== false) {
- var forceSet = target.hasClass(className.today);
+ let forceSet = target.hasClass(className.today);
module.selectDate(date, forceSet);
} else if (focusDate) {
module.set.focusDate(focusDate);
@@ -3868,38 +3690,38 @@
}
},
keydown: function (event) {
- var keyCode = event.which;
+ let keyCode = event.which;
if (keyCode === 9) {
// tab
module.popup('hide');
}
if (module.popup('is visible')) {
- var mode = module.get.mode();
+ let mode = module.get.mode();
switch (keyCode) {
// arrow keys
case 37:
case 38:
case 39:
case 40: {
- var bigIncrement = mode === 'day'
+ let bigIncrement = mode === 'day'
? 7
: (mode === 'hour'
? 4
: (mode === 'minute' ? timeGap.column : 3)); // eslint-disable-line unicorn/no-nested-ternary
- var increment = keyCode === 37
+ let increment = keyCode === 37
? -1
: (keyCode === 38
? -bigIncrement
: (keyCode === 39 ? 1 : bigIncrement)); // eslint-disable-line unicorn/no-nested-ternary
increment *= mode === 'minute' ? settings.minTimeGap : 1;
- var focusDate = module.get.focusDate() || module.get.date() || new Date();
- var year = focusDate.getFullYear() + (mode === 'year' ? increment : 0);
- var month = focusDate.getMonth() + (mode === 'month' ? increment : 0);
- var day = focusDate.getDate() + (mode === 'day' ? increment : 0);
- var hour = focusDate.getHours() + (mode === 'hour' ? increment : 0);
- var minute = focusDate.getMinutes() + (mode === 'minute' ? increment : 0);
- var newFocusDate = new Date(year, month, day, hour, minute);
+ let focusDate = module.get.focusDate() || module.get.date() || new Date();
+ let year = focusDate.getFullYear() + (mode === 'year' ? increment : 0);
+ let month = focusDate.getMonth() + (mode === 'month' ? increment : 0);
+ let day = focusDate.getDate() + (mode === 'day' ? increment : 0);
+ let hour = focusDate.getHours() + (mode === 'hour' ? increment : 0);
+ let minute = focusDate.getMinutes() + (mode === 'minute' ? increment : 0);
+ let newFocusDate = new Date(year, month, day, hour, minute);
if (settings.type === 'time') {
newFocusDate = module.helper.mergeDateTime(focusDate, newFocusDate);
}
@@ -3911,7 +3733,7 @@
}
// enter key
case 13: {
- var date = module.get.focusDate();
+ let date = module.get.focusDate();
if (date && !settings.isDisabled(date, mode) && !module.helper.isDisabled(date, mode) && module.helper.isEnabled(date, mode)) {
if (settings.onSelect.call(element, date, module.get.mode()) !== false) {
module.selectDate(date);
@@ -3940,8 +3762,8 @@
}
},
inputChange: function () {
- var val = $input.val();
- var date = parser.date(val, settings);
+ let val = $input.val();
+ let date = parser.date(val, settings);
module.set.date(date, false);
},
inputFocus: function () {
@@ -3950,8 +3772,8 @@
inputBlur: function () {
$container.removeClass(className.active);
if (settings.formatInput) {
- var date = module.get.date();
- var text = module.helper.dateFormat(formatter[settings.type], date);
+ let date = module.get.date();
+ let text = module.helper.dateFormat(formatter[settings.type], date);
$input.val(text);
}
if (selectionComplete) {
@@ -4011,12 +3833,11 @@
get: {
weekOfYear: function (weekYear, weekMonth, weekDay) {
// adapted from http://www.merlyn.demon.co.uk/weekcalc.htm
- var ms1d = 24 * 3600 * 1000,
- ms7d = 7 * ms1d,
- DC3 = Date.UTC(weekYear, weekMonth, weekDay + 3) / ms1d, // an absolute day number
- AWN = Math.floor(DC3 / 7), // an absolute week number
- Wyr = new Date(AWN * ms7d).getUTCFullYear()
- ;
+ let ms1d = 24 * 3600 * 1000;
+ let ms7d = 7 * ms1d;
+ let DC3 = Date.UTC(weekYear, weekMonth, weekDay + 3) / ms1d; // an absolute day number
+ let AWN = Math.floor(DC3 / 7); // an absolute week number
+ let Wyr = new Date(AWN * ms7d).getUTCFullYear();
return AWN - Math.floor(Date.UTC(Wyr, 0, 7) / ms7d) + 1;
},
@@ -4033,7 +3854,7 @@
return module.helper.dateObjectOrFormatted(format, $module.data(metadata.focusDate));
},
startDate: function (format) {
- var startModule = module.get.calendarModule(settings.startCalendar);
+ let startModule = module.get.calendarModule(settings.startCalendar);
if (startModule) {
return startModule.get.date(format);
@@ -4042,7 +3863,7 @@
return module.helper.dateObjectOrFormatted(format, $module.data(metadata.startDate));
},
endDate: function (format) {
- var endModule = module.get.calendarModule(settings.endCalendar);
+ let endModule = module.get.calendarModule(settings.endCalendar);
if (endModule) {
return endModule.get.date(format);
@@ -4061,12 +3882,12 @@
},
mode: function () {
// only returns valid modes for the current settings
- var mode = $module.data(metadata.mode) || settings.startMode;
+ let mode = $module.data(metadata.mode) || settings.startMode;
return module.get.validatedMode(mode);
},
validatedMode: function (mode) {
- var validModes = module.get.validModes();
+ let validModes = module.get.validModes();
if ($.inArray(mode, validModes) >= 0) {
return mode;
}
@@ -4081,7 +3902,7 @@
return $module.data(metadata.type) || settings.type;
},
validModes: function () {
- var validModes = [];
+ let validModes = [];
if (settings.type !== 'time') {
if (!settings.disableYear || settings.type === 'year') {
validModes.push('year');
@@ -4131,8 +3952,8 @@
date = module.helper.sanitiseDate(date);
date = module.helper.dateInRange(date);
- var mode = module.get.mode();
- var text = module.helper.dateFormat(formatter[settings.type], date);
+ let mode = module.get.mode();
+ let text = module.helper.dateFormat(formatter[settings.type], date);
if (fireChange && settings.onBeforeChange.call(element, date, text, mode) === false) {
return false;
@@ -4144,7 +3965,7 @@
return false;
}
- var endDate = module.get.endDate();
+ let endDate = module.get.endDate();
if (!!endDate && !!date && date > endDate) {
// selected date is greater than end date in range, so clear end date
module.set.endDate();
@@ -4161,7 +3982,7 @@
},
startDate: function (date, refreshCalendar) {
date = module.helper.sanitiseDate(date);
- var startModule = module.get.calendarModule(settings.startCalendar);
+ let startModule = module.get.calendarModule(settings.startCalendar);
if (startModule) {
startModule.set.date(date);
}
@@ -4169,7 +3990,7 @@
},
endDate: function (date, refreshCalendar) {
date = module.helper.sanitiseDate(date);
- var endModule = module.get.calendarModule(settings.endCalendar);
+ let endModule = module.get.calendarModule(settings.endCalendar);
if (endModule) {
endModule.set.date(date);
}
@@ -4178,17 +3999,17 @@
focusDate: function (date, refreshCalendar, updateFocus, updateRange) {
date = module.helper.sanitiseDate(date);
date = module.helper.dateInRange(date);
- var isDay = module.get.mode() === 'day';
- var oldFocusDate = module.get.focusDate();
+ let isDay = module.get.mode() === 'day';
+ let oldFocusDate = module.get.focusDate();
if (isDay && date && oldFocusDate) {
- var yearDelta = date.getFullYear() - oldFocusDate.getFullYear();
- var monthDelta = yearDelta * 12 + date.getMonth() - oldFocusDate.getMonth();
+ let yearDelta = date.getFullYear() - oldFocusDate.getFullYear();
+ let monthDelta = yearDelta * 12 + date.getMonth() - oldFocusDate.getMonth();
if (monthDelta) {
- var monthOffset = module.get.monthOffset() - monthDelta;
+ let monthOffset = module.get.monthOffset() - monthDelta;
module.set.monthOffset(monthOffset, false);
}
}
- var changed = module.set.dataKeyValue(metadata.focusDate, date, !!date && refreshCalendar);
+ let changed = module.set.dataKeyValue(metadata.focusDate, date, !!date && refreshCalendar);
updateFocus = (updateFocus !== false && changed && refreshCalendar === false) || focusDateUsedForRange != updateRange;
focusDateUsedForRange = updateRange;
if (updateFocus) {
@@ -4214,7 +4035,7 @@
}
},
monthOffset: function (monthOffset, refreshCalendar) {
- var multiMonth = Math.max(settings.multiMonth, 1);
+ let multiMonth = Math.max(settings.multiMonth, 1);
monthOffset = Math.max(1 - multiMonth, Math.min(0, monthOffset));
module.set.dataKeyValue(metadata.monthOffset, monthOffset, refreshCalendar);
},
@@ -4222,8 +4043,8 @@
module.set.dataKeyValue(metadata.mode, mode, refreshCalendar);
},
dataKeyValue: function (key, value, refreshCalendar) {
- var oldValue = $module.data(key);
- var equal = oldValue === value || (oldValue <= value && oldValue >= value); // equality test for dates and string objects
+ let oldValue = $module.data(key);
+ let equal = oldValue === value || (oldValue <= value && oldValue >= value); // equality test for dates and string objects
if (value) {
$module.data(key, value);
} else {
@@ -4240,20 +4061,20 @@
selectDate: function (date, forceSet) {
module.verbose('New date selection', date);
- var mode = module.get.mode();
- var complete = forceSet || mode === 'minute'
+ let mode = module.get.mode();
+ let complete = forceSet || mode === 'minute'
|| (settings.disableMinute && mode === 'hour')
|| (settings.type === 'date' && mode === 'day')
|| (settings.type === 'month' && mode === 'month')
|| (settings.type === 'year' && mode === 'year');
if (complete) {
- var canceled = module.set.date(date) === false;
+ let canceled = module.set.date(date) === false;
if (!canceled) {
selectionComplete = true;
if (settings.closable) {
module.popup('hide');
// if this is a range calendar, focus the container or input. This will open the popup from its event listeners.
- var endModule = module.get.calendarModule(settings.endCalendar);
+ let endModule = module.get.calendarModule(settings.endCalendar);
if (endModule) {
endModule.refresh();
if (endModule.setting('on') !== 'focus') {
@@ -4264,7 +4085,7 @@
}
}
} else {
- var newMode = mode === 'year'
+ let newMode = mode === 'year'
? (!settings.disableMonth ? 'month' : 'day')
: (mode === 'month'
? 'day'
@@ -4315,46 +4136,44 @@
return format.call(module, date, settings);
}
- var
- D = date.getDate(),
- M = date.getMonth(),
- Y = date.getFullYear(),
- d = date.getDay(),
- H = date.getHours(),
- m = date.getMinutes(),
- s = date.getSeconds(),
- w = module.get.weekOfYear(Y, M, D + 1 - settings.firstDayOfWeek),
- h = H % 12 || 12,
- a = H < 12 ? settings.text.am.toLowerCase() : settings.text.pm.toLowerCase(),
- tokens = {
- D: D,
- DD: ('0' + D).slice(-2),
- M: M + 1,
- MM: ('0' + (M + 1)).slice(-2),
- MMM: settings.text.monthsShort[M],
- MMMM: settings.text.months[M],
- Y: Y,
- YY: String(Y).slice(2),
- YYYY: Y,
- d: d,
- dd: settings.text.dayNamesShort[d].slice(0, 2),
- ddd: settings.text.dayNamesShort[d],
- dddd: settings.text.dayNames[d],
- h: h,
- hh: ('0' + h).slice(-2),
- H: H,
- HH: ('0' + H).slice(-2),
- m: m,
- mm: ('0' + m).slice(-2),
- s: s,
- ss: ('0' + s).slice(-2),
- a: a,
- A: a.toUpperCase(),
- S: ['th', 'st', 'nd', 'rd'][(D % 10) > 3 ? 0 : ((D % 100) - (D % 10) === 10 ? 0 : D % 10)],
- w: w,
- ww: ('0' + w).slice(-2),
- }
- ;
+ let D = date.getDate();
+ let M = date.getMonth();
+ let Y = date.getFullYear();
+ let d = date.getDay();
+ let H = date.getHours();
+ let m = date.getMinutes();
+ let s = date.getSeconds();
+ let w = module.get.weekOfYear(Y, M, D + 1 - settings.firstDayOfWeek);
+ let h = H % 12 || 12;
+ let a = H < 12 ? settings.text.am.toLowerCase() : settings.text.pm.toLowerCase();
+ let tokens = {
+ D: D,
+ DD: ('0' + D).slice(-2),
+ M: M + 1,
+ MM: ('0' + (M + 1)).slice(-2),
+ MMM: settings.text.monthsShort[M],
+ MMMM: settings.text.months[M],
+ Y: Y,
+ YY: String(Y).slice(2),
+ YYYY: Y,
+ d: d,
+ dd: settings.text.dayNamesShort[d].slice(0, 2),
+ ddd: settings.text.dayNamesShort[d],
+ dddd: settings.text.dayNames[d],
+ h: h,
+ hh: ('0' + h).slice(-2),
+ H: H,
+ HH: ('0' + H).slice(-2),
+ m: m,
+ mm: ('0' + m).slice(-2),
+ s: s,
+ ss: ('0' + s).slice(-2),
+ a: a,
+ A: a.toUpperCase(),
+ S: ['th', 'st', 'nd', 'rd'][(D % 10) > 3 ? 0 : ((D % 100) - (D % 10) === 10 ? 0 : D % 10)],
+ w: w,
+ ww: ('0' + w).slice(-2),
+ };
return format.replace(settings.regExp.token, function (match) {
if (match in tokens) {
@@ -4380,7 +4199,7 @@
},
isDisabled: function (date, mode) {
return (mode === 'day' || mode === 'month' || mode === 'year' || mode === 'hour') && (((mode === 'day' && settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function (d) {
- var blocked = false;
+ let blocked = false;
if (typeof d === 'string') {
d = module.helper.sanitiseDate(d);
@@ -4400,7 +4219,7 @@
} else if (Array.isArray(d[metadata.month])) {
blocked = d[metadata.month].indexOf(date.getMonth()) > -1;
} else if (d[metadata.month] instanceof Date) {
- var sdate = module.helper.sanitiseDate(d[metadata.month]);
+ let sdate = module.helper.sanitiseDate(d[metadata.month]);
blocked = (date.getMonth() === sdate.getMonth()) && (date.getFullYear() === sdate.getFullYear());
}
@@ -4417,7 +4236,7 @@
return blocked;
})) || (mode === 'hour' && settings.disabledHours.some(function (d) {
- var blocked = false;
+ let blocked = false;
if (typeof d === 'string') {
d = module.helper.sanitiseDate(d);
@@ -4460,7 +4279,7 @@
isEnabled: function (date, mode) {
if (mode === 'day') {
return settings.enabledDates.length === 0 || settings.enabledDates.some(function (d) {
- var enabled = false;
+ let enabled = false;
if (typeof d === 'string') {
d = module.helper.sanitiseDate(d);
@@ -4479,14 +4298,14 @@
},
findDayAsObject: function (date, mode, dates) {
if (mode === 'day' || mode === 'month' || mode === 'year') {
- var d;
- for (var i = 0; i < dates.length; i++) {
+ let d;
+ for (let i = 0; i < dates.length; i++) {
d = dates[i];
if (typeof d === 'string') {
d = module.helper.sanitiseDate(d);
}
if (d instanceof Date && module.helper.dateEqual(date, d, mode)) {
- var dateObject = {};
+ let dateObject = {};
dateObject[metadata.date] = d;
return dateObject;
@@ -4510,7 +4329,7 @@
return d;
}
} else if (d[metadata.month] instanceof Date) {
- var sdate = module.helper.sanitiseDate(d[metadata.month]);
+ let sdate = module.helper.sanitiseDate(d[metadata.month]);
if ((date.getMonth() === sdate.getMonth()) && (date.getFullYear() === sdate.getFullYear())) {
return d;
}
@@ -4535,8 +4354,8 @@
},
findHourAsObject: function (date, mode, hours) {
if (mode === 'hour') {
- var d;
- var hourCheck = function (date, d) {
+ let d;
+ let hourCheck = function (date, d) {
if (d[metadata.hours]) {
if (typeof d[metadata.hours] === 'number' && date.getHours() === d[metadata.hours]) {
return d;
@@ -4548,7 +4367,7 @@
}
}
};
- for (var i = 0; i < hours.length; i++) {
+ for (let i = 0; i < hours.length; i++) {
d = hours[i];
if (typeof d === 'number' && date.getHours() === d) {
return null;
@@ -4598,11 +4417,11 @@
mode = 'day';
}
- var isTimeOnly = settings.type === 'time';
- var isYear = mode === 'year';
- var isYearOrMonth = isYear || mode === 'month';
- var isMinute = mode === 'minute';
- var isHourOrMinute = isMinute || mode === 'hour';
+ let isTimeOnly = settings.type === 'time';
+ let isYear = mode === 'year';
+ let isYearOrMonth = isYear || mode === 'month';
+ let isMinute = mode === 'minute';
+ let isHourOrMinute = isMinute || mode === 'hour';
// only care about a minute accuracy of settings.minTimeGap
date1 = new Date(
isTimeOnly ? 2000 : date1.getFullYear(),
@@ -4626,7 +4445,7 @@
},
isDateInRange: function (date, mode, minDate, maxDate) {
if (!minDate && !maxDate) {
- var startDate = module.get.startDate();
+ let startDate = module.get.startDate();
minDate = startDate && settings.minDate ? new Date(Math.max(startDate, settings.minDate)) : startDate || settings.minDate;
maxDate = settings.maxDate;
}
@@ -4638,12 +4457,12 @@
},
dateInRange: function (date, minDate, maxDate) {
if (!minDate && !maxDate) {
- var startDate = module.get.startDate();
+ let startDate = module.get.startDate();
minDate = startDate && settings.minDate ? new Date(Math.max(startDate, settings.minDate)) : startDate || settings.minDate;
maxDate = settings.maxDate;
}
minDate = minDate && new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate(), minDate.getHours(), settings.minTimeGap * Math.ceil(minDate.getMinutes() / settings.minTimeGap));
- var isTimeOnly = settings.type === 'time';
+ let isTimeOnly = settings.type === 'time';
return !date
? date
@@ -4714,11 +4533,9 @@
},
performance: {
log: function (message) {
- var
- currentTime,
- executionTime,
- previousTime
- ;
+ let currentTime;
+ let executionTime;
+ let previousTime;
if (settings.performance) {
currentTime = Date.now();
previousTime = time || currentTime;
@@ -4737,10 +4554,8 @@
}, 500);
},
display: function () {
- var
- title = settings.name + ':',
- totalTime = 0
- ;
+ let title = settings.name + ':';
+ let totalTime = 0;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function (index, data) {
@@ -4762,22 +4577,19 @@
},
},
invoke: function (query, passedArguments, context) {
- var
- object = instance,
- maxDepth,
- found,
- response
- ;
+ let object = instance;
+ let maxDepth;
+ let found;
+ let response;
passedArguments = passedArguments || queryArguments;
context = context || element;
if (typeof query === 'string' && object !== undefined) {
query = query.split(/[ .]/);
maxDepth = query.length - 1;
$.each(query, function (depth, value) {
- var camelCaseValue = depth !== maxDepth
+ let camelCaseValue = depth !== maxDepth
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
- : query
- ;
+ : query;
if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
object = object[camelCaseValue];
} else if (object[camelCaseValue] !== undefined) {
@@ -4899,7 +4711,7 @@
formatter: {
yearHeader: function (date, settings) {
- var decadeYear = Math.ceil(date.getFullYear() / 10) * 10;
+ let decadeYear = Math.ceil(date.getFullYear() / 10) * 10;
return (decadeYear - 9) + ' - ' + (decadeYear + 2);
},
@@ -4940,42 +4752,34 @@
}
// Reverse date and month in some cases
text = settings.monthFirst || !/^\d{1,2}[./-]/.test(text) ? text : text.replace(/[./-]/g, '/').replace(/(\d+)\/(\d+)/, '$2/$1');
- var textDate = new Date(text);
- var numberOnly = text.match(/^\d+$/) !== null;
- var isShortYear = text.match(/^(?:\d{1,2}[./-]){2}\d{1,2}$/) !== null;
+ let textDate = new Date(text);
+ let numberOnly = text.match(/^\d+$/) !== null;
+ let isShortYear = text.match(/^(?:\d{1,2}[./-]){2}\d{1,2}$/) !== null;
if (!isShortYear && !numberOnly && !isNaN(textDate.getDate())) {
return textDate;
}
text = text.toLowerCase();
- var
- i,
- j,
- k
- ;
- var
- minute = -1,
- hour = -1,
- day = -1,
- month = -1,
- year = -1
- ;
- var isAm;
-
- var isTimeOnly = settings.type === 'time';
- var isDateOnly = settings.type.indexOf('time') < 0;
-
- var
- words = text.split(settings.regExp.dateWords),
- word
- ;
- var
- numbers = text.split(settings.regExp.dateNumbers),
- number
- ;
-
- var parts;
- var monthString;
+ let i;
+ let j;
+ let k;
+ let minute = -1;
+ let hour = -1;
+ let day = -1;
+ let month = -1;
+ let year = -1;
+ let isAm;
+
+ let isTimeOnly = settings.type === 'time';
+ let isDateOnly = settings.type.indexOf('time') < 0;
+
+ let words = text.split(settings.regExp.dateWords);
+ let word;
+ let numbers = text.split(settings.regExp.dateNumbers);
+ let number;
+
+ let parts;
+ let monthString;
if (!isDateOnly) {
// am/pm
@@ -5159,7 +4963,7 @@
}
}
- var date = new Date(year, month - 1, day, hour, minute);
+ let date = new Date(year, month - 1, day, hour, minute);
if (date.getMonth() !== month - 1 || date.getFullYear() !== year) {
// month or year don't match up, switch to the last day of the month
date = new Date(year, month, 0, hour, minute);
@@ -5278,43 +5082,39 @@
: globalThis;
$.fn.checkbox = function (parameters) {
- var
- $allModules = $(this),
+ let $allModules = $(this);
- time = Date.now(),
- performance = [],
+ let time = Date.now();
+ let performance = [];
- query = arguments[0],
- methodInvoked = typeof query === 'string',
- queryArguments = [].slice.call(arguments, 1),
- returnedValue
- ;
+ let query = arguments[0];
+ let methodInvoked = typeof query === 'string';
+ let queryArguments = [].slice.call(arguments, 1);
+ let returnedValue;
$allModules.each(function () {
- var
- settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
+ let settings = $.extend(true, {}, $.fn.checkbox.settings, parameters);
- className = settings.className,
- namespace = settings.namespace,
- selector = settings.selector,
- error = settings.error,
+ let className = settings.className;
+ let namespace = settings.namespace;
+ let selector = settings.selector;
+ let error = settings.error;
- eventNamespace = '.' + namespace,
- moduleNamespace = 'module-' + namespace,
+ let eventNamespace = '.' + namespace;
+ let moduleNamespace = 'module-' + namespace;
- $module = $(this),
- $label = $(this).children(selector.label),
- $input = $(this).children(selector.input),
- input = $input[0],
+ let $module = $(this);
+ let $label = $(this).children(selector.label);
+ let $input = $(this).children(selector.input);
+ let input = $input[0];
- initialLoad = false,
- shortcutPressed = false,
- instance = $module.data(moduleNamespace),
+ let initialLoad = false;
+ let shortcutPressed = false;
+ let instance = $module.data(moduleNamespace);
- observer,
- element = this,
- module
- ;
+ let observer;
+ let element = this;
+ let module;
module = {
@@ -5336,8 +5136,7 @@
module.verbose('Storing instance of module', module);
instance = module;
$module
- .data(moduleNamespace, module)
- ;
+ .data(moduleNamespace, module);
},
destroy: function () {
@@ -5406,17 +5205,14 @@
},
attachEvents: function (selector, event) {
- var
- $element = $(selector)
- ;
+ let $element = $(selector);
event = isFunction(module[event])
? module[event]
: module.toggle;
if ($element.length > 0) {
module.debug('Attaching checkbox events to element', selector, event);
$element
- .on('click' + eventNamespace, event)
- ;
+ .on('click' + eventNamespace, event);
} else {
module.error(error.notFound);
}
@@ -5436,9 +5232,7 @@
}
},
click: function (event) {
- var
- $target = $(event.target)
- ;
+ let $target = $(event.target);
if ($target.is(selector.input)) {
module.verbose('Using default check action on initialized checkbox');
@@ -5454,25 +5248,21 @@
event.preventDefault();
},
keydown: function (event) {
- var
- key = event.which,
- keyCode = {
- enter: 13,
- space: 32,
- escape: 27,
- left: 37,
- up: 38,
- right: 39,
- down: 40,
- }
- ;
+ let key = event.which;
+ let keyCode = {
+ enter: 13,
+ space: 32,
+ escape: 27,
+ left: 37,
+ up: 38,
+ right: 39,
+ down: 40,
+ };
- var
- r = module.get.radios().not(selector.disabled),
- rIndex = r.index($module),
- rLen = r.length,
- checkIndex = false
- ;
+ let r = module.get.radios().not(selector.disabled);
+ let rIndex = r.index($module);
+ let rLen = r.length;
+ let checkIndex = false;
if (key === keyCode.left || key === keyCode.up) {
checkIndex = (rIndex === 0 ? rLen : rIndex) - 1;
@@ -5486,9 +5276,9 @@
return false;
}
- var nextOption = $(r[checkIndex]),
- nextInput = nextOption.children(selector.input),
- disallowOption = nextOption.hasClass(className.readOnly) || nextInput.prop('readonly');
+ let nextOption = $(r[checkIndex]);
+ let nextInput = nextOption.children(selector.input);
+ let disallowOption = nextOption.hasClass(className.readOnly) || nextInput.prop('readonly');
if (disallowOption || settings.beforeChecked.apply(nextInput[0]) === false) {
module.verbose('Next option should not allow check, cancelling key navigation');
@@ -5609,11 +5399,9 @@
get: {
radios: function () {
- var
- name = module.get.name()
- ;
+ let name = module.get.name();
- return $('input[name="' + name + '"]').closest(selector.checkbox);
+ return $('input[name="' + CSS.escape(name) + '"]').closest(selector.checkbox);
},
otherRadios: function () {
return module.get.radios().not($module);
@@ -5731,8 +5519,7 @@
module.verbose('Setting class to checked');
$module
.removeClass(className.indeterminate)
- .addClass(className.checked)
- ;
+ .addClass(className.checked);
if (module.is.radio()) {
module.uncheckOthers();
}
@@ -5744,15 +5531,13 @@
module.verbose('Setting state to checked', input);
$input
.prop('indeterminate', false)
- .prop('checked', true)
- ;
+ .prop('checked', true);
},
unchecked: function () {
module.verbose('Removing checked class');
$module
.removeClass(className.indeterminate)
- .removeClass(className.checked)
- ;
+ .removeClass(className.checked);
if (!module.is.indeterminate() && module.is.unchecked()) {
module.debug('Input is already unchecked');
@@ -5761,14 +5546,12 @@
module.debug('Setting state to unchecked');
$input
.prop('indeterminate', false)
- .prop('checked', false)
- ;
+ .prop('checked', false);
},
indeterminate: function () {
module.verbose('Setting class to indeterminate');
$module
- .addClass(className.indeterminate)
- ;
+ .addClass(className.indeterminate);
if (module.is.indeterminate()) {
module.debug('Input is already indeterminate, skipping input property change');
@@ -5776,14 +5559,12 @@
}
module.debug('Setting state to indeterminate');
$input
- .prop('indeterminate', true)
- ;
+ .prop('indeterminate', true);
},
determinate: function () {
module.verbose('Removing indeterminate class');
$module
- .removeClass(className.indeterminate)
- ;
+ .removeClass(className.indeterminate);
if (module.is.determinate()) {
module.debug('Input is already determinate, skipping input property change');
@@ -5791,14 +5572,12 @@
}
module.debug('Setting state to determinate');
$input
- .prop('indeterminate', false)
- ;
+ .prop('indeterminate', false);
},
disabled: function () {
module.verbose('Setting class to disabled');
$module
- .addClass(className.disabled)
- ;
+ .addClass(className.disabled);
if (module.is.disabled()) {
module.debug('Input is already disabled, skipping input property change');
@@ -5806,8 +5585,7 @@
}
module.debug('Setting state to disabled');
$input
- .prop('disabled', 'disabled')
- ;
+ .prop('disabled', 'disabled');
},
enabled: function () {
module.verbose('Removing disabled class');
@@ -5819,8 +5597,7 @@
}
module.debug('Setting state to enabled');
$input
- .prop('disabled', false)
- ;
+ .prop('disabled', false);
},
tabbable: function () {
module.verbose('Adding tabindex to checkbox');
@@ -5838,11 +5615,9 @@
trigger: {
change: function () {
- var
- inputElement = $input[0]
- ;
+ let inputElement = $input[0];
if (inputElement) {
- var events = document.createEvent('HTMLEvents');
+ let events = document.createEvent('HTMLEvents');
module.verbose('Triggering native change event');
events.initEvent('change', true, false);
inputElement.dispatchEvent(events);
@@ -5875,8 +5650,7 @@
.on('click' + eventNamespace, module.event.click)
.on('change' + eventNamespace, module.event.change)
.on('keydown' + eventNamespace, selector.input, module.event.keydown)
- .on('keyup' + eventNamespace, selector.input, module.event.keyup)
- ;
+ .on('keyup' + eventNamespace, selector.input, module.event.keyup);
},
},
@@ -5884,15 +5658,12 @@
events: function () {
module.debug('Removing events');
$module
- .off(eventNamespace)
- ;
+ .off(eventNamespace);
},
},
uncheckOthers: function () {
- var
- $radios = module.get.otherRadios()
- ;
+ let $radios = module.get.otherRadios();
module.debug('Unchecking other radios', $radios);
$radios.removeClass(className.checked);
},
@@ -5964,11 +5735,9 @@
},
performance: {
log: function (message) {
- var
- currentTime,
- executionTime,
- previousTime
- ;
+ let currentTime;
+ let executionTime;
+ let previousTime;
if (settings.performance) {
currentTime = Date.now();
previousTime = time || currentTime;
@@ -5987,10 +5756,8 @@
}, 500);
},
display: function () {
- var
- title = settings.name + ':',
- totalTime = 0
- ;
+ let title = settings.name + ':';
+ let totalTime = 0;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function (index, data) {
@@ -6012,22 +5779,19 @@
},
},
invoke: function (query, passedArguments, context) {
- var
- object = instance,
- maxDepth,
- found,
- response
- ;
+ let object = instance;
+ let maxDepth;
+ let found;
+ let response;
passedArguments = passedArguments || queryArguments;
context = context || element;
if (typeof query === 'string' && object !== undefined) {
query = query.split(/[ .]/);
maxDepth = query.length - 1;
$.each(query, function (depth, value) {
- var camelCaseValue = depth !== maxDepth
+ let camelCaseValue = depth !== maxDepth
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
- : query
- ;
+ : query;
if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
object = object[camelCaseValue];
} else if (object[camelCaseValue] !== undefined) {
@@ -6150,45 +5914,41 @@
: globalThis;
$.fn.dimmer = function (parameters) {
- var
- $allModules = $(this),
+ let $allModules = $(this);
- time = Date.now(),
- performance = [],
+ let time = Date.now();
+ let performance = [];
- query = arguments[0],
- methodInvoked = typeof query === 'string',
- queryArguments = [].slice.call(arguments, 1),
+ let query = arguments[0];
+ let methodInvoked = typeof query === 'string';
+ let queryArguments = [].slice.call(arguments, 1);
- returnedValue
- ;
+ let returnedValue;
$allModules.each(function () {
- var
- settings = $.isPlainObject(parameters)
- ? $.extend(true, {}, $.fn.dimmer.settings, parameters)
- : $.extend({}, $.fn.dimmer.settings),
+ let settings = $.isPlainObject(parameters)
+ ? $.extend(true, {}, $.fn.dimmer.settings, parameters)
+ : $.extend({}, $.fn.dimmer.settings);
- selector = settings.selector,
- namespace = settings.namespace,
- className = settings.className,
- error = settings.error,
+ let selector = settings.selector;
+ let namespace = settings.namespace;
+ let className = settings.className;
+ let error = settings.error;
- eventNamespace = '.' + namespace,
- moduleNamespace = 'module-' + namespace,
+ let eventNamespace = '.' + namespace;
+ let moduleNamespace = 'module-' + namespace;
- clickEvent = 'ontouchstart' in document.documentElement
- ? 'touchstart'
- : 'click',
+ let clickEvent = 'ontouchstart' in document.documentElement
+ ? 'touchstart'
+ : 'click';
- $module = $(this),
- $dimmer,
- $dimmable,
+ let $module = $(this);
+ let $dimmer;
+ let $dimmable;
- element = this,
- instance = $module.data(moduleNamespace),
- module
- ;
+ let element = this;
+ let instance = $module.data(moduleNamespace);
+ let module;
module = {
@@ -6220,8 +5980,7 @@
module.verbose('Storing instance of module', module);
instance = module;
$module
- .data(moduleNamespace, instance)
- ;
+ .data(moduleNamespace, instance);
},
destroy: function () {
@@ -6229,8 +5988,7 @@
module.unbind.events();
module.remove.variation();
$dimmable
- .off(eventNamespace)
- ;
+ .off(eventNamespace);
},
bind: {
@@ -6238,12 +5996,10 @@
if (settings.on === 'hover') {
$dimmable
.on('mouseenter' + eventNamespace, module.show)
- .on('mouseleave' + eventNamespace, module.hide)
- ;
+ .on('mouseleave' + eventNamespace, module.hide);
} else if (settings.on === 'click') {
$dimmable
- .on(clickEvent + eventNamespace, module.toggle)
- ;
+ .on(clickEvent + eventNamespace, module.toggle);
}
if (module.is.page()) {
module.debug('Setting as a page dimmer', $dimmable);
@@ -6253,8 +6009,7 @@
if (module.is.closable()) {
module.verbose('Adding dimmer close event', $dimmer);
$dimmable
- .on(clickEvent + eventNamespace, selector.dimmer, module.event.click)
- ;
+ .on(clickEvent + eventNamespace, selector.dimmer, module.event.click);
}
},
},
@@ -6262,11 +6017,9 @@
unbind: {
events: function () {
$module
- .removeData(moduleNamespace)
- ;
+ .removeData(moduleNamespace);
$dimmable
- .off(eventNamespace)
- ;
+ .off(eventNamespace);
},
},
@@ -6281,9 +6034,7 @@
},
addContent: function (element) {
- var
- $content = $(element)
- ;
+ let $content = $(element);
module.debug('Add content to dimmer', $content);
if ($content.parent()[0] !== $dimmer[0]) {
$content.detach().appendTo($dimmer);
@@ -6291,16 +6042,13 @@
},
create: function () {
- var
- $element = $(settings.template.dimmer(settings))
- ;
+ let $element = $(settings.template.dimmer(settings));
if (settings.dimmerName) {
module.debug('Creating named dimmer', settings.dimmerName);
$element.addClass(settings.dimmerName);
}
$element
- .appendTo($dimmable)
- ;
+ .appendTo($dimmable);
return $element;
},
@@ -6389,8 +6137,7 @@
settings.onVisible.call($dimmer);
callback();
},
- })
- ;
+ });
} else {
module.verbose('Showing dimmer animation with javascript');
module.set.dimmed();
@@ -6409,8 +6156,7 @@
module.set.active();
settings.onVisible.call($dimmer);
callback();
- })
- ;
+ });
}
},
hide: function (callback) {
@@ -6438,8 +6184,7 @@
settings.onHidden.call($dimmer);
callback();
},
- })
- ;
+ });
} else {
module.verbose('Hiding dimmer with javascript');
$dimmer
@@ -6450,8 +6195,7 @@
$dimmer.removeAttr('style');
settings.onHidden.call($dimmer);
callback();
- })
- ;
+ });
}
},
},
@@ -6524,11 +6268,9 @@
set: {
opacity: function (opacity) {
- var
- color = $dimmer.css('background-color'),
- colorArray = color.split(','),
- isRGB = colorArray && colorArray.length >= 3
- ;
+ let color = $dimmer.css('background-color');
+ let colorArray = color.split(',');
+ let isRGB = colorArray && colorArray.length >= 3;
opacity = settings.opacity === 0 ? 0 : settings.opacity || opacity;
if (isRGB) {
colorArray[2] = colorArray[2].replace(')', '');
@@ -6569,8 +6311,7 @@
remove: {
active: function () {
$dimmer
- .removeClass(className.active)
- ;
+ .removeClass(className.active);
},
legacy: function () {
$dimmer.removeClass(className.legacy);
@@ -6640,11 +6381,9 @@
},
performance: {
log: function (message) {
- var
- currentTime,
- executionTime,
- previousTime
- ;
+ let currentTime;
+ let executionTime;
+ let previousTime;
if (settings.performance) {
currentTime = Date.now();
previousTime = time || currentTime;
@@ -6663,10 +6402,8 @@
}, 500);
},
display: function () {
- var
- title = settings.name + ':',
- totalTime = 0
- ;
+ let title = settings.name + ':';
+ let totalTime = 0;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function (index, data) {
@@ -6691,22 +6428,19 @@
},
},
invoke: function (query, passedArguments, context) {
- var
- object = instance,
- maxDepth,
- found,
- response
- ;
+ let object = instance;
+ let maxDepth;
+ let found;
+ let response;
passedArguments = passedArguments || queryArguments;
context = context || element;
if (typeof query === 'string' && object !== undefined) {
query = query.split(/[ .]/);
maxDepth = query.length - 1;
$.each(query, function (depth, value) {
- var camelCaseValue = depth !== maxDepth
+ let camelCaseValue = depth !== maxDepth
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
- : query
- ;
+ : query;
if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
object = object[camelCaseValue];
} else if (object[camelCaseValue] !== undefined) {
@@ -6838,15 +6572,12 @@
template: {
dimmer: function (settings) {
- var
- d = $('').addClass('ui dimmer'),
- l
- ;
+ let d = $('').addClass('ui dimmer');
+ let l;
if (settings.displayLoader) {
l = $('')
.addClass(settings.className.loader)
- .addClass(settings.loaderVariation)
- ;
+ .addClass(settings.loaderVariation);
if (settings.loaderText) {
l.text(settings.loaderText);
l.addClass('text');
@@ -6874,91 +6605,87 @@
: globalThis;
$.fn.dropdown = function (parameters) {
- var
- $allModules = $(this),
- $document = $(document),
-
- time = Date.now(),
- performance = [],
-
- query = arguments[0],
- methodInvoked = typeof query === 'string',
- queryArguments = [].slice.call(arguments, 1),
- contextCheck = function (context, win) {
- var $context;
- if ([window, document].indexOf(context) >= 0) {
- $context = $(context);
- } else {
- $context = $(win.document).find(context);
- if ($context.length === 0) {
- $context = win.frameElement ? contextCheck(context, win.parent) : window;
- }
+ let $allModules = $(this);
+ let $document = $(document);
+
+ let time = Date.now();
+ let performance = [];
+
+ let query = arguments[0];
+ let methodInvoked = typeof query === 'string';
+ let queryArguments = [].slice.call(arguments, 1);
+ let contextCheck = function (context, win) {
+ let $context;
+ if ([window, document].indexOf(context) >= 0) {
+ $context = $(context);
+ } else {
+ $context = $(win.document).find(context);
+ if ($context.length === 0) {
+ $context = win.frameElement ? contextCheck(context, win.parent) : window;
}
+ }
- return $context;
- },
- returnedValue
- ;
+ return $context;
+ };
+ let returnedValue;
$allModules.each(function (elementIndex) {
- var
- settings = $.isPlainObject(parameters)
- ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
- : $.extend({}, $.fn.dropdown.settings),
-
- className = settings.className,
- message = settings.message,
- fields = settings.fields,
- keys = settings.keys,
- metadata = settings.metadata,
- namespace = settings.namespace,
- regExp = settings.regExp,
- selector = settings.selector,
- error = settings.error,
- templates = settings.templates,
-
- eventNamespace = '.' + namespace,
- moduleNamespace = 'module-' + namespace,
-
- $module = $(this),
- $context = contextCheck(settings.context, window),
- $text = $module.find(selector.text),
- $search = $module.find(selector.search),
- $sizer = $module.find(selector.sizer),
- $input = $module.find(selector.input),
- $icon = $module.find(selector.icon),
- $clear = $module.find(selector.clearIcon),
-
- $combo = $module.prev().find(selector.text).length > 0
- ? $module.prev().find(selector.text)
- : $module.prev(),
-
- $menu = $module.children(selector.menu),
- $item = $menu.find(selector.item),
- $divider = settings.hideDividers
- ? $item.parent().children(selector.divider)
- : $(),
-
- activated = false,
- itemActivated = false,
- internalChange = false,
- iconClicked = false,
- element = this,
- focused = false,
- instance = $module.data(moduleNamespace),
-
- selectActionActive,
- initialLoad,
- pageLostFocus,
- willRefocus,
- elementNamespace,
- id,
- selectObserver,
- menuObserver,
- classObserver,
- module,
- tempDisableApiCache = false
- ;
+ let settings = $.isPlainObject(parameters)
+ ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
+ : $.extend({}, $.fn.dropdown.settings);
+
+ let className = settings.className;
+ let message = settings.message;
+ let fields = settings.fields;
+ let keys = settings.keys;
+ let metadata = settings.metadata;
+ let namespace = settings.namespace;
+ let regExp = settings.regExp;
+ let selector = settings.selector;
+ let error = settings.error;
+ let templates = settings.templates;
+
+ let eventNamespace = '.' + namespace;
+ let moduleNamespace = 'module-' + namespace;
+
+ let $module = $(this);
+ let $context = contextCheck(settings.context, window);
+ let $text = $module.find(selector.text);
+ let $search = $module.find(selector.search);
+ let $sizer = $module.find(selector.sizer);
+ let $input = $module.find(selector.input);
+ let $icon = $module.find(selector.icon);
+ let $clear = $module.find(selector.clearIcon);
+
+ let $combo = $module.prev().find(selector.text).length > 0
+ ? $module.prev().find(selector.text)
+ : $module.prev();
+
+ let $menu = $module.children(selector.menu);
+ let $item = $menu.find(selector.item);
+ let $divider = settings.hideDividers
+ ? $item.parent().children(selector.divider)
+ : $();
+
+ let activated = false;
+ let itemActivated = false;
+ let internalChange = false;
+ let iconClicked = false;
+ let element = this;
+ let focused = false;
+ let instance = $module.data(moduleNamespace);
+
+ let selectActionActive;
+ let initialLoad;
+ let pageLostFocus;
+ let willRefocus;
+ let elementNamespace;
+ let id;
+ let selectObserver;
+ let menuObserver;
+ let classObserver;
+ let module;
+ let tempDisableApiCache = false;
module = {
@@ -6968,11 +6695,6 @@
if (module.is.alreadySetup()) {
module.setup.reference();
} else {
- if (settings.ignoreDiacritics && !String.prototype.normalize) {
- settings.ignoreDiacritics = false;
- module.error(error.noNormalize, element);
- }
-
module.create.id();
module.setup.layout();
@@ -7001,8 +6723,7 @@
module.verbose('Storing instance of dropdown', module);
instance = module;
$module
- .data(moduleNamespace, module)
- ;
+ .data(moduleNamespace, module);
},
destroy: function () {
@@ -7013,14 +6734,11 @@
$menu.removeClass(className.visible).addClass(className.hidden);
$module
.off(eventNamespace)
- .removeData(moduleNamespace)
- ;
+ .removeData(moduleNamespace);
$menu
- .off(eventNamespace)
- ;
+ .off(eventNamespace);
$document
- .off(elementNamespace)
- ;
+ .off(elementNamespace);
module.disconnect.menuObserver();
module.disconnect.selectObserver();
module.disconnect.classObserver();
@@ -7089,11 +6807,9 @@
module.verbose('Creating unique id for element', id);
},
userChoice: function (values) {
- var
- $userChoices,
- $userChoice,
- html
- ;
+ let $userChoices;
+ let $userChoice;
+ let html;
values = values || module.get.userValues();
if (!values) {
return false;
@@ -7109,8 +6825,7 @@
.attr('data-' + metadata.value, value)
.attr('data-' + metadata.text, value)
.addClass(className.addition)
- .addClass(className.item)
- ;
+ .addClass(className.item);
if (settings.hideAdditions) {
$userChoice.addClass(className.hidden);
}
@@ -7124,9 +6839,7 @@
return $userChoices;
},
userLabels: function (value) {
- var
- userValues = module.get.userValues()
- ;
+ let userValues = module.get.userValues();
if (userValues) {
module.debug('Adding user labels', userValues);
$.each(userValues, function (index, value) {
@@ -7138,14 +6851,12 @@
menu: function () {
$menu = $('')
.addClass(className.menu)
- .appendTo($module)
- ;
+ .appendTo($module);
},
sizer: function () {
$sizer = $('')
.addClass(className.sizer)
- .insertAfter($search)
- ;
+ .insertAfter($search);
},
},
@@ -7171,16 +6882,13 @@
.not(selector.unselectable)
.not(selector.addition + selector.hidden)
.eq(0)
- .addClass(className.selected)
- ;
+ .addClass(className.selected);
},
nextAvailable: function ($selected) {
$selected = $selected.eq(0);
- var
- $nextAvailable = $selected.nextAll(selector.item).not(selector.unselectable).eq(0),
- $prevAvailable = $selected.prevAll(selector.item).not(selector.unselectable).eq(0),
- hasNext = $nextAvailable.length > 0
- ;
+ let $nextAvailable = $selected.nextAll(selector.item).not(selector.unselectable).eq(0);
+ let $prevAvailable = $selected.prevAll(selector.item).not(selector.unselectable).eq(0);
+ let hasNext = $nextAvailable.length > 0;
if (hasNext) {
module.verbose('Moving selection to', $nextAvailable);
$nextAvailable.addClass(className.selected);
@@ -7193,20 +6901,17 @@
setup: {
api: function () {
- var
- apiSettings = {
- debug: settings.debug,
- urlData: {
- value: module.get.value(),
- query: module.get.query(),
- },
- on: false,
- }
- ;
+ let apiSettings = {
+ debug: settings.debug,
+ urlData: {
+ value: module.get.value(),
+ query: module.get.query(),
+ },
+ on: false,
+ };
module.verbose('First request, initializing API');
$module
- .api(apiSettings)
- ;
+ .api(apiSettings);
},
layout: function () {
if ($module.is('select')) {
@@ -7220,18 +6925,14 @@
module.verbose('Adding clear icon');
$clear = $('')
.addClass('remove icon')
- .insertAfter($icon)
- ;
+ .insertAfter($icon);
}
if (module.is.search() && !module.has.search()) {
module.verbose('Adding search input');
- var
- labelNode = $module.prev('label')
- ;
+ let labelNode = $module.prev('label');
$search = $('')
.addClass(className.search)
- .prop('autocomplete', module.is.chrome() ? 'fomantic-search' : 'off')
- ;
+ .prop('autocomplete', module.is.chrome() ? 'fomantic-search' : 'off');
if (labelNode.length > 0) {
if (!labelNode.attr('id')) {
labelNode.attr('id', '_' + module.get.id() + '_formLabel');
@@ -7248,9 +6949,7 @@
}
},
select: function () {
- var
- selectValues = module.get.selectValues()
- ;
+ let selectValues = module.get.selectValues();
module.debug('Dropdown initialized on a select', selectValues);
if ($module.is('select')) {
$input = $module;
@@ -7270,9 +6969,8 @@
.attr('class', $input.attr('class'))
.addClass(className.selection)
.addClass(className.dropdown)
- .html(templates.dropdown(selectValues, fields, settings.preserveHTML, settings.className))
- .insertBefore($input)
- ;
+ .html(templates.dropdown(selectValues, settings))
+ .insertBefore($input);
if ($input.hasClass(className.multiple) && $input.prop('multiple') === false) {
module.error(error.missingMultiple);
$input.prop('multiple', true);
@@ -7294,13 +6992,12 @@
.prop('required', false)
.removeAttr('class')
.detach()
- .prependTo($module)
- ;
+ .prependTo($module);
}
module.refresh();
},
menu: function (values) {
- $menu.html(templates.menu(values, fields, settings.preserveHTML, settings.className));
+ $menu.html(templates.menu(values, settings));
$item = $menu.find(selector.item);
$divider = settings.hideDividers ? $item.parent().children(selector.divider) : $();
},
@@ -7314,10 +7011,8 @@
module.setup.returnedObject();
},
returnedObject: function () {
- var
- $firstModules = $allModules.slice(0, elementIndex),
- $lastModules = $allModules.slice(elementIndex + 1)
- ;
+ let $firstModules = $allModules.slice(0, elementIndex);
+ let $lastModules = $allModules.slice(elementIndex + 1);
// adjust all modules to use the correct reference
$allModules = $firstModules.add($module).add($lastModules);
},
@@ -7351,21 +7046,18 @@
module.verbose('Refreshing cached metadata');
$item
.removeData(metadata.text)
- .removeData(metadata.value)
- ;
+ .removeData(metadata.value);
},
clearData: function () {
module.verbose('Clearing metadata');
$item
.removeData(metadata.text)
- .removeData(metadata.value)
- ;
+ .removeData(metadata.value);
$module
.removeData(metadata.defaultText)
.removeData(metadata.defaultValue)
- .removeData(metadata.placeholderText)
- ;
+ .removeData(metadata.placeholderText);
},
clearItems: function () {
@@ -7432,11 +7124,11 @@
});
// Hide submenus explicitly. On some browsers (esp. mobile), they will not automatically receive a
// mouseleave event
- var $subMenu = $module.find(selector.menu);
+ let $subMenu = $module.find(selector.menu);
if ($subMenu.length > 0) {
module.verbose('Hiding sub-menu', $subMenu);
$subMenu.each(function () {
- var $sub = $(this);
+ let $sub = $(this);
if (!module.is.animating($sub)) {
module.animate.hide(false, $sub);
}
@@ -7455,8 +7147,7 @@
$allModules
.not($module)
.has(selector.menu + '.' + className.visible)
- .dropdown('hide')
- ;
+ .dropdown('hide');
},
hideMenu: function () {
@@ -7467,9 +7158,7 @@
},
hideSubMenus: function () {
- var
- $subMenus = $menu.children(selector.item).find(selector.menu)
- ;
+ let $subMenus = $menu.children(selector.item).find(selector.menu);
module.verbose('Hiding sub menus', $subMenus);
$subMenus.transition('hide');
},
@@ -7483,28 +7172,23 @@
keyboardEvents: function () {
module.verbose('Binding keyboard events');
$module
- .on('keydown' + eventNamespace, module.event.keydown)
- ;
+ .on('keydown' + eventNamespace, module.event.keydown);
if (module.has.search()) {
$module
- .on(module.get.inputEvent() + eventNamespace, selector.search, module.event.input)
- ;
+ .on(module.get.inputEvent() + eventNamespace, selector.search, module.event.input);
}
if (module.is.multiple()) {
$document
- .on('keydown' + elementNamespace, module.event.document.keydown)
- ;
+ .on('keydown' + elementNamespace, module.event.document.keydown);
}
},
inputEvents: function () {
module.verbose('Binding input change events');
$module
- .on('change' + eventNamespace, selector.input, module.event.change)
- ;
+ .on('change' + eventNamespace, selector.input, module.event.change);
if (module.is.multiple() && module.is.searchSelection()) {
$module
- .on('paste' + eventNamespace, selector.search, module.event.paste)
- ;
+ .on('paste' + eventNamespace, selector.search, module.event.paste);
}
},
mouseEvents: function () {
@@ -7512,8 +7196,7 @@
if (module.is.multiple()) {
$module
.on('click' + eventNamespace, selector.label, module.event.label.click)
- .on('click' + eventNamespace, selector.remove, module.event.remove.click)
- ;
+ .on('click' + eventNamespace, selector.remove, module.event.remove.click);
}
if (module.is.searchSelection()) {
$module
@@ -7526,60 +7209,50 @@
.on('focus' + eventNamespace, selector.search, module.event.search.focus)
.on('click' + eventNamespace, selector.search, module.event.search.focus)
.on('blur' + eventNamespace, selector.search, module.event.search.blur)
- .on('click' + eventNamespace, selector.text, module.event.text.focus)
- ;
+ .on('click' + eventNamespace, selector.text, module.event.text.focus);
if (module.is.multiple()) {
$module
.on('click' + eventNamespace, module.event.click)
- .on('click' + eventNamespace, module.event.search.focus)
- ;
+ .on('click' + eventNamespace, module.event.search.focus);
}
} else {
if (settings.on === 'click') {
$module
.on('click' + eventNamespace, selector.icon, module.event.icon.click)
- .on('click' + eventNamespace, module.event.test.toggle)
- ;
+ .on('click' + eventNamespace, module.event.test.toggle);
} else if (settings.on === 'hover') {
$module
.on('mouseenter' + eventNamespace, module.delay.show)
.on('mouseleave' + eventNamespace, module.delay.hide)
.on('touchstart' + eventNamespace, module.event.test.toggle)
- .on('touchstart' + eventNamespace, selector.icon, module.event.icon.click)
- ;
+ .on('touchstart' + eventNamespace, selector.icon, module.event.icon.click);
} else {
$module
- .on(settings.on + eventNamespace, module.toggle)
- ;
+ .on(settings.on + eventNamespace, module.toggle);
}
$module
.on('mousedown' + eventNamespace, module.event.mousedown)
.on('mouseup' + eventNamespace, module.event.mouseup)
.on('focus' + eventNamespace, module.event.focus)
- .on('click' + eventNamespace, selector.clearIcon, module.event.clearIcon.click)
- ;
+ .on('click' + eventNamespace, selector.clearIcon, module.event.clearIcon.click);
if (module.has.menuSearch()) {
$module
- .on('blur' + eventNamespace, selector.search, module.event.search.blur)
- ;
+ .on('blur' + eventNamespace, selector.search, module.event.search.blur);
} else {
$module
- .on('blur' + eventNamespace, module.event.blur)
- ;
+ .on('blur' + eventNamespace, module.event.blur);
}
}
$menu
.on('mouseenter' + eventNamespace, selector.item, module.event.item.mouseenter)
.on('touchstart' + eventNamespace, selector.item, module.event.item.mouseenter)
.on('mouseleave' + eventNamespace, selector.item, module.event.item.mouseleave)
- .on('click' + eventNamespace, selector.item, module.event.item.click)
- ;
+ .on('click' + eventNamespace, selector.item, module.event.item.click);
},
intent: function () {
module.verbose('Binding hide intent event to document');
$document
- .on('click' + elementNamespace, module.event.test.hide)
- ;
+ .on('click' + elementNamespace, module.event.test.hide);
},
},
@@ -7587,52 +7260,49 @@
intent: function () {
module.verbose('Removing hide intent event from document');
$document
- .off('click' + elementNamespace)
- ;
+ .off('click' + elementNamespace);
},
},
filter: function (query) {
- var
- searchTerm = query !== undefined
- ? query
- : module.get.query(),
- afterFiltered = function () {
- if (module.is.multiple()) {
- module.filterActive();
- }
- if (query || (!query && module.get.activeItem().length === 0)) {
- module.select.firstUnfiltered();
- }
- if (module.has.allResultsFiltered()) {
- if (settings.onNoResults.call(element, searchTerm)) {
- if (settings.allowAdditions) {
- if (settings.hideAdditions) {
- module.verbose('User addition with no menu, setting empty style');
- module.set.empty();
- module.hideMenu();
- }
- } else {
- module.verbose('All items filtered, showing message', searchTerm);
- module.add.message(message.noResults);
+ let searchTerm = query !== undefined
+ ? query
+ : module.get.query();
+ let afterFiltered = function () {
+ if (module.is.multiple()) {
+ module.filterActive();
+ }
+ if (query || (!query && module.get.activeItem().length === 0)) {
+ module.select.firstUnfiltered();
+ }
+ if (module.has.allResultsFiltered()) {
+ if (settings.onNoResults.call(element, searchTerm)) {
+ if (settings.allowAdditions) {
+ if (settings.hideAdditions) {
+ module.verbose('User addition with no menu, setting empty style');
+ module.set.empty();
+ module.hideMenu();
}
} else {
- module.verbose('All items filtered, hiding dropdown', searchTerm);
- module.set.empty();
- module.hideMenu();
+ module.verbose('All items filtered, showing message', searchTerm);
+ module.add.message(message.noResults);
}
} else {
- module.remove.empty();
- module.remove.message();
- }
- if (settings.allowAdditions) {
- module.add.userSuggestion(module.escape.htmlEntities(query));
- }
- if (module.is.searchSelection() && module.can.show() && module.is.focusedOnSearch() && !module.is.empty()) {
- module.show();
+ module.verbose('All items filtered, hiding dropdown', searchTerm);
+ module.set.empty();
+ module.hideMenu();
}
+ } else {
+ module.remove.empty();
+ module.remove.message();
+ }
+ if (settings.allowAdditions) {
+ module.add.userSuggestion(module.escape.htmlEntities(query));
+ }
+ if (module.is.searchSelection() && module.can.show() && module.is.focusedOnSearch() && !module.is.empty()) {
+ module.show();
}
- ;
+ };
if (settings.useLabels && module.has.maxSelections()) {
module.show();
@@ -7644,15 +7314,14 @@
if (settings.filterRemoteData) {
module.filterItems(searchTerm);
}
- var preSelected = $input.val();
+ let preSelected = $input.val();
if (!Array.isArray(preSelected)) {
preSelected = preSelected && preSelected !== '' ? preSelected.split(settings.delimiter) : [];
}
if (module.is.multiple()) {
$.each(preSelected, function (index, value) {
- $item.filter('[data-' + metadata.value + '="' + value + '"]')
- .addClass(className.filtered)
- ;
+ $item.filter('[data-' + metadata.value + '="' + CSS.escape(value) + '"]')
+ .addClass(className.filtered);
});
}
module.focusSearch(true);
@@ -7671,88 +7340,81 @@
if (!Array.isArray(callbackParameters)) {
callbackParameters = [callbackParameters];
}
- var
- apiSettings = {
- errorDuration: false,
- cache: 'local',
- throttle: settings.throttle,
- urlData: {
- query: query,
- },
+ let apiSettings = {
+ errorDuration: false,
+ cache: 'local',
+ throttle: settings.throttle,
+ urlData: {
+ query: query,
},
- apiCallbacks = {
- onError: function (errorMessage, $module, xhr) {
- module.add.message(message.serverError);
- iconClicked = false;
- focused = false;
- callback.apply(null, callbackParameters);
- if (typeof settings.apiSettings.onError === 'function') {
- settings.apiSettings.onError.call(this, errorMessage, $module, xhr);
- }
- },
- onFailure: function (response, $module, xhr) {
- module.add.message(message.serverError);
- iconClicked = false;
- focused = false;
- callback.apply(null, callbackParameters);
- if (typeof settings.apiSettings.onFailure === 'function') {
- settings.apiSettings.onFailure.call(this, response, $module, xhr);
- }
- },
- onSuccess: function (response, $module, xhr) {
- var
- values = response[fields.remoteValues]
- ;
- if (!Array.isArray(values)) {
- values = [];
- }
- module.remove.message();
- var menuConfig = {};
- menuConfig[fields.values] = values;
- module.setup.menu(menuConfig);
+ };
+ let apiCallbacks = {
+ onError: function (errorMessage, $module, xhr) {
+ module.add.message(message.serverError);
+ iconClicked = false;
+ focused = false;
+ callback.apply(null, callbackParameters);
+ if (typeof settings.apiSettings.onError === 'function') {
+ settings.apiSettings.onError.call(this, errorMessage, $module, xhr);
+ }
+ },
+ onFailure: function (response, $module, xhr) {
+ module.add.message(message.serverError);
+ iconClicked = false;
+ focused = false;
+ callback.apply(null, callbackParameters);
+ if (typeof settings.apiSettings.onFailure === 'function') {
+ settings.apiSettings.onFailure.call(this, response, $module, xhr);
+ }
+ },
+ onSuccess: function (response, $module, xhr) {
+ let values = response[fields.remoteValues];
+ if (!Array.isArray(values)) {
+ values = [];
+ }
+ module.remove.message();
+ let menuConfig = {};
+ menuConfig[fields.values] = values;
+ module.setup.menu(menuConfig);
- if (values.length === 0 && !settings.allowAdditions) {
- module.add.message(message.noResults);
- } else {
- var value = module.is.multiple() ? module.get.values() : module.get.value();
- if (value !== '') {
- module.verbose('Value(s) present after click icon, select value(s) in items');
- module.set.selected(value, null, true, true);
- }
- }
- iconClicked = false;
- focused = false;
- callback.apply(null, callbackParameters);
- if (typeof settings.apiSettings.onSuccess === 'function') {
- settings.apiSettings.onSuccess.call(this, response, $module, xhr);
+ if (values.length === 0 && !settings.allowAdditions) {
+ module.add.message(message.noResults);
+ } else {
+ let value = module.is.multiple() ? module.get.values() : module.get.value();
+ if (value !== '') {
+ module.verbose('Value(s) present after click icon, select value(s) in items');
+ module.set.selected(value, null, true, true);
}
- },
- }
- ;
+ }
+ iconClicked = false;
+ focused = false;
+ callback.apply(null, callbackParameters);
+ if (typeof settings.apiSettings.onSuccess === 'function') {
+ settings.apiSettings.onSuccess.call(this, response, $module, xhr);
+ }
+ },
+ };
if (!$module.api('get request')) {
module.setup.api();
}
apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings, apiCallbacks, tempDisableApiCache ? { cache: false } : {});
$module
.api('setting', apiSettings)
- .api('query')
- ;
+ .api('query');
tempDisableApiCache = false;
},
filterItems: function (query) {
- var
- searchTerm = module.remove.diacritics(
- query !== undefined
- ? query
- : module.get.query()
- ),
- results = null,
- escapedTerm = module.escape.string(searchTerm),
- regExpIgnore = settings.ignoreSearchCase ? 'i' : '',
- regExpFlags = regExpIgnore + 'gm',
- beginsWithRegExp = new RegExp('^' + escapedTerm, regExpFlags)
- ;
+ let searchTerm = module.remove.diacritics(
+ query !== undefined
+ ? query
+ : module.get.query()
+ );
+ let results = null;
+ let escapedTerm = module.escape.string(searchTerm);
+ let regExpIgnore = settings.ignoreSearchCase ? 'i' : '';
+ let regExpFlags = regExpIgnore + 'gm';
+ let beginsWithRegExp = new RegExp('^' + escapedTerm, regExpFlags);
module.remove.filteredItem();
// avoid loop if we're matching nothing
if (module.has.query()) {
@@ -7761,11 +7423,9 @@
module.verbose('Searching for matching values', searchTerm);
$item
.each(function () {
- var
- $choice = $(this),
- text,
- value
- ;
+ let $choice = $(this);
+ let text;
+ let value;
if ($choice.hasClass(className.unfilterable)) {
results.push(this);
@@ -7793,32 +7453,28 @@
return true;
}
}
- })
- ;
+ });
}
module.debug('Showing only matched items', searchTerm);
if (results) {
$item
.not(results)
- .addClass(className.filtered)
- ;
+ .addClass(className.filtered);
if (settings.highlightMatches && (settings.match === 'both' || settings.match === 'text')) {
- var querySplit = query.split(''),
- diacriticReg = settings.ignoreDiacritics ? '[\u0300-\u036F]?' : '',
- htmlReg = '(?![^<]*>)',
- markedRegExp = new RegExp(htmlReg + '(' + querySplit.join(diacriticReg + ')(.*?)' + htmlReg + '(') + diacriticReg + ')', regExpIgnore),
- markedReplacer = function () {
- var args = [].slice.call(arguments, 1, querySplit.length * 2).map(function (x, i) {
- return i & 1 ? x : '' + x + ''; // eslint-disable-line no-bitwise
- });
+ let querySplit = query.split('');
+ let diacriticReg = settings.ignoreDiacritics ? '[\u0300-\u036F]?' : '';
+ let htmlReg = '(?![^<]*>)';
+ let markedRegExp = new RegExp(htmlReg + '(' + querySplit.join(diacriticReg + ')(.*?)' + htmlReg + '(') + diacriticReg + ')', regExpIgnore);
+ let markedReplacer = function () {
+ let args = [].slice.call(arguments, 1, querySplit.length * 2).map(function (x, i) {
+ return i & 1 ? x : '' + x + ''; // eslint-disable-line no-bitwise
+ });
- return args.join('');
- }
- ;
+ return args.join('');
+ };
$.each(results, function (index, result) {
- var $result = $(result),
- markedHTML = module.get.choiceText($result, true)
- ;
+ let $result = $(result);
+ let markedHTML = module.get.choiceText($result, true);
if (settings.ignoreDiacritics) {
markedHTML = markedHTML.normalize('NFD');
}
@@ -7829,19 +7485,17 @@
if (!module.has.query()) {
$divider
- .removeClass(className.hidden)
- ;
+ .removeClass(className.hidden);
} else if (settings.hideDividers === true) {
$divider
- .addClass(className.hidden)
- ;
+ .addClass(className.hidden);
} else if (settings.hideDividers === 'empty') {
$divider
.removeClass(className.hidden)
.filter(function () {
// First find the last divider in this divider group
// Dividers which are direct siblings are considered a group
- var $lastDivider = $(this).nextUntil(selector.item);
+ let $lastDivider = $(this).nextUntil(selector.item);
return ($lastDivider.length > 0 ? $lastDivider : $(this))
// Count all non-filtered items until the next divider (or end of the dropdown)
@@ -7850,16 +7504,13 @@
// Hide divider if no items are found
.length === 0;
})
- .addClass(className.hidden)
- ;
+ .addClass(className.hidden);
}
},
fuzzySearch: function (query, term) {
- var
- termLength = term.length,
- queryLength = query.length
- ;
+ let termLength = term.length;
+ let queryLength = query.length;
if (settings.ignoreSearchCase) {
query = query.toLowerCase();
term = term.toLowerCase();
@@ -7870,11 +7521,9 @@
if (queryLength === termLength) {
return query === term;
}
- for (var characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) {
- var
- continueSearch = false,
- queryCharacter = query.charCodeAt(characterIndex)
- ;
+ for (let characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) {
+ let continueSearch = false;
+ let queryCharacter = query.charCodeAt(characterIndex);
while (nextCharacterIndex < termLength) {
if (term.charCodeAt(nextCharacterIndex++) === queryCharacter) {
continueSearch = true;
@@ -7899,8 +7548,7 @@
filterActive: function () {
if (settings.useLabels) {
$item.filter('.' + className.active)
- .addClass(className.filtered)
- ;
+ .addClass(className.filtered);
}
},
@@ -7923,14 +7571,12 @@
},
forceSelection: function () {
- var
- $currentlySelected = $item.not(className.filtered).filter('.' + className.selected).eq(0),
- $activeItem = $item.not(className.filtered).filter('.' + className.active).eq(0),
- $selectedItem = $currentlySelected.length > 0
- ? $currentlySelected
- : $activeItem,
- hasSelected = $selectedItem.length > 0
- ;
+ let $currentlySelected = $item.not(className.filtered).filter('.' + className.selected).eq(0);
+ let $activeItem = $item.not(className.filtered).filter('.' + className.active).eq(0);
+ let $selectedItem = $currentlySelected.length > 0
+ ? $currentlySelected
+ : $activeItem;
+ let hasSelected = $selectedItem.length > 0;
if (settings.allowAdditions || (hasSelected && !module.is.multiple())) {
module.debug('Forcing partial selection to selected item', $selectedItem);
module.event.item.click.call($selectedItem, {}, true);
@@ -7945,7 +7591,7 @@
module.clear();
}
module.debug('Creating dropdown with specified values', values);
- var menuConfig = {};
+ let menuConfig = {};
menuConfig[fields.values] = values;
module.setup.menu(menuConfig);
$.each(values, function (index, item) {
@@ -7963,13 +7609,11 @@
$input.html('');
$input.append('');
$.each(values, function (index, item) {
- var
- value = settings.templates.deQuote(item[fields.value]),
- name = settings.templates.escape(
- item[fields.name] || '',
- settings.preserveHTML
- )
- ;
+ let value = settings.templates.escape(item[fields.value]);
+ let name = settings.templates.escape(
+ item[fields.name] || '',
+ settings
+ );
$input.append('');
});
module.observe.select();
@@ -7979,11 +7623,9 @@
event: {
paste: function (event) {
- var
- pasteValue = (event.originalEvent.clipboardData || window.clipboardData).getData('text'),
- tokens = pasteValue.split(settings.delimiter),
- notFoundTokens = []
- ;
+ let pasteValue = (event.originalEvent.clipboardData || window.clipboardData).getData('text');
+ let tokens = pasteValue.split(settings.delimiter);
+ let notFoundTokens = [];
tokens.forEach(function (value) {
if (module.set.selected(module.escape.htmlEntities(value.trim()), null, false, true) === false) {
notFoundTokens.push(value.trim());
@@ -7991,13 +7633,12 @@
});
event.preventDefault();
if (notFoundTokens.length > 0) {
- var searchEl = $search[0],
- startPos = searchEl.selectionStart,
- endPos = searchEl.selectionEnd,
- orgText = searchEl.value,
- pasteText = notFoundTokens.join(settings.delimiter),
- newEndPos = startPos + pasteText.length
- ;
+ let searchEl = $search[0];
+ let startPos = searchEl.selectionStart;
+ let endPos = searchEl.selectionEnd;
+ let orgText = searchEl.value;
+ let pasteText = notFoundTokens.join(settings.delimiter);
+ let newEndPos = startPos + pasteText.length;
$search.val(orgText.slice(0, startPos) + pasteText + orgText.slice(endPos));
searchEl.selectionStart = newEndPos;
searchEl.selectionEnd = newEndPos;
@@ -8041,9 +7682,7 @@
}
},
click: function (event) {
- var
- $target = $(event.target)
- ;
+ let $target = $(event.target);
// focus search
if ($target.is($module)) {
if (!module.is.focusedOnSearch()) {
@@ -8127,16 +7766,14 @@
},
label: {
click: function (event) {
- var
- $label = $(this),
- $labels = $module.find(selector.label),
- $activeLabels = $labels.filter('.' + className.active),
- $nextActive = $label.nextAll('.' + className.active),
- $prevActive = $label.prevAll('.' + className.active),
- $range = $nextActive.length > 0
- ? $label.nextUntil($nextActive).add($activeLabels).add($label)
- : $label.prevUntil($prevActive).add($activeLabels).add($label)
- ;
+ let $label = $(this);
+ let $labels = $module.find(selector.label);
+ let $activeLabels = $labels.filter('.' + className.active);
+ let $nextActive = $label.nextAll('.' + className.active);
+ let $prevActive = $label.prevAll('.' + className.active);
+ let $range = $nextActive.length > 0
+ ? $label.nextUntil($nextActive).add($activeLabels).add($label)
+ : $label.prevUntil($prevActive).add($activeLabels).add($label);
if (event.shiftKey) {
$activeLabels.removeClass(className.active);
$range.addClass(className.active);
@@ -8152,9 +7789,7 @@
},
remove: {
click: function (event) {
- var
- $label = $(this).parent()
- ;
+ let $label = $(this).parent();
if ($label.hasClass(className.active)) {
// remove all selected labels
module.remove.activeLabels();
@@ -8167,11 +7802,9 @@
},
test: {
toggle: function (event) {
- var
- toggleBehavior = module.is.multiple()
- ? module.show
- : module.toggle
- ;
+ let toggleBehavior = module.is.multiple()
+ ? module.show
+ : module.toggle;
if (module.is.bubbledLabelClick(event) || module.is.bubbledIconClick(event)) {
return;
}
@@ -8215,18 +7848,16 @@
},
menu: {
mutation: function (mutations) {
- var
- mutation = mutations[0],
- $addedNode = mutation.addedNodes
- ? $(mutation.addedNodes[0])
- : $(false),
- $removedNode = mutation.removedNodes
- ? $(mutation.removedNodes[0])
- : $(false),
- $changedNodes = $addedNode.add($removedNode),
- isUserAddition = $changedNodes.is(selector.addition) || $changedNodes.closest(selector.addition).length > 0,
- isMessage = $changedNodes.is(selector.message) || $changedNodes.closest(selector.message).length > 0
- ;
+ let mutation = mutations[0];
+ let $addedNode = mutation.addedNodes
+ ? $(mutation.addedNodes[0])
+ : $(false);
+ let $removedNode = mutation.removedNodes
+ ? $(mutation.removedNodes[0])
+ : $(false);
+ let $changedNodes = $addedNode.add($removedNode);
+ let isUserAddition = $changedNodes.is(selector.addition) || $changedNodes.closest(selector.addition).length > 0;
+ let isMessage = $changedNodes.is(selector.message) || $changedNodes.closest(selector.message).length > 0;
if (isUserAddition || isMessage) {
module.debug('Updating item selector cache');
module.refreshItems();
@@ -8244,14 +7875,12 @@
},
item: {
mouseenter: function (event) {
- var
- $target = $(event.target),
- $item = $(this),
- $subMenu = $item.children(selector.menu),
- $otherMenus = $item.siblings(selector.item).children(selector.menu),
- hasSubMenu = $subMenu.length > 0,
- isBubbledEvent = $subMenu.find($target).length > 0
- ;
+ let $target = $(event.target);
+ let $item = $(this);
+ let $subMenu = $item.children(selector.menu);
+ let $otherMenus = $item.siblings(selector.item).children(selector.menu);
+ let hasSubMenu = $subMenu.length > 0;
+ let isBubbledEvent = $subMenu.find($target).length > 0;
if (!isBubbledEvent && hasSubMenu) {
clearTimeout(module.itemTimer);
module.itemTimer = setTimeout(function () {
@@ -8265,9 +7894,7 @@
}
},
mouseleave: function (event) {
- var
- $subMenu = $(this).find(selector.menu)
- ;
+ let $subMenu = $(this).find(selector.menu);
if ($subMenu.length > 0) {
clearTimeout(module.itemTimer);
module.itemTimer = setTimeout(function () {
@@ -8279,17 +7906,15 @@
}
},
click: function (event, skipRefocus) {
- var
- $choice = $(this),
- $target = event
- ? $(event.target || '')
- : $(''),
- $subMenu = $choice.find(selector.menu),
- text = module.get.choiceText($choice),
- value = module.get.choiceValue($choice, text),
- hasSubMenu = $subMenu.length > 0,
- isBubbledEvent = $subMenu.find($target).length > 0
- ;
+ let $choice = $(this);
+ let $target = event
+ ? $(event.target || '')
+ : $('');
+ let $subMenu = $choice.find(selector.menu);
+ let text = module.get.choiceText($choice);
+ let value = module.get.choiceValue($choice, text);
+ let hasSubMenu = $subMenu.length > 0;
+ let isBubbledEvent = $subMenu.find($target).length > 0;
if (document.activeElement.tagName.toLowerCase() !== 'input') {
$(document.activeElement).trigger('blur');
}
@@ -8323,27 +7948,23 @@
document: {
// label selection should occur even when the element has no focus
keydown: function (event) {
- var
- pressedKey = event.which,
- isShortcutKey = module.is.inObject(pressedKey, keys)
- ;
+ let pressedKey = event.which;
+ let isShortcutKey = module.is.inObject(pressedKey, keys);
if (isShortcutKey) {
- var
- $label = $module.find(selector.label),
- $activeLabel = $label.filter('.' + className.active),
- activeValue = $activeLabel.data(metadata.value),
- labelIndex = $label.index($activeLabel),
- labelCount = $label.length,
- hasActiveLabel = $activeLabel.length > 0,
- hasMultipleActive = $activeLabel.length > 1,
- isFirstLabel = labelIndex === 0,
- isLastLabel = labelIndex + 1 === labelCount,
- isSearch = module.is.searchSelection(),
- isFocusedOnSearch = module.is.focusedOnSearch(),
- isFocused = module.is.focused(),
- caretAtStart = isFocusedOnSearch && module.get.caretPosition(false) === 0,
- isSelectedSearch = caretAtStart && module.get.caretPosition(true) !== 0
- ;
+ let $label = $module.find(selector.label);
+ let $activeLabel = $label.filter('.' + className.active);
+ let activeValue = $activeLabel.data(metadata.value);
+ let labelIndex = $label.index($activeLabel);
+ let labelCount = $label.length;
+ let hasActiveLabel = $activeLabel.length > 0;
+ let hasMultipleActive = $activeLabel.length > 1;
+ let isFirstLabel = labelIndex === 0;
+ let isLastLabel = labelIndex + 1 === labelCount;
+ let isSearch = module.is.searchSelection();
+ let isFocusedOnSearch = module.is.focusedOnSearch();
+ let isFocused = module.is.focused();
+ let caretAtStart = isFocusedOnSearch && module.get.caretPosition(false) === 0;
+ let isSelectedSearch = caretAtStart && module.get.caretPosition(true) !== 0;
if (isSearch && !hasActiveLabel && !isFocusedOnSearch) {
return;
}
@@ -8366,8 +7987,7 @@
} else {
$activeLabel.prev(selector.siblingLabel)
.addClass(className.active)
- .end()
- ;
+ .end();
}
event.preventDefault();
}
@@ -8442,31 +8062,27 @@
},
keydown: function (event) {
- var
- pressedKey = event.which,
- isShortcutKey = module.is.inObject(pressedKey, keys) || event.key === settings.delimiter
- ;
+ let pressedKey = event.which;
+ let isShortcutKey = module.is.inObject(pressedKey, keys) || event.key === settings.delimiter;
if (isShortcutKey) {
- var
- $currentlySelected = $item.not(selector.unselectable).filter('.' + className.selected).eq(0),
- $activeItem = $menu.children('.' + className.active).eq(0),
- $selectedItem = $currentlySelected.length > 0
- ? $currentlySelected
- : $activeItem,
- $visibleItems = $selectedItem.length > 0
- ? $selectedItem.siblings(':not(.' + className.filtered + ')').addBack()
- : $menu.children(':not(.' + className.filtered + ')'),
- $subMenu = $selectedItem.children(selector.menu),
- $parentMenu = $selectedItem.closest(selector.menu),
- inVisibleMenu = $parentMenu.hasClass(className.visible) || $parentMenu.hasClass(className.animating) || $parentMenu.parent(selector.menu).length > 0,
- hasSubMenu = $subMenu.length > 0,
- hasSelectedItem = $selectedItem.length > 0,
- selectedIsSelectable = $selectedItem.not(selector.unselectable).length > 0,
- delimiterPressed = event.key === settings.delimiter && module.is.multiple(),
- isAdditionWithoutMenu = settings.allowAdditions && (pressedKey === keys.enter || delimiterPressed),
- $nextItem,
- isSubMenuItem
- ;
+ let $currentlySelected = $item.not(selector.unselectable).filter('.' + className.selected).eq(0);
+ let $activeItem = $menu.children('.' + className.active).eq(0);
+ let $selectedItem = $currentlySelected.length > 0
+ ? $currentlySelected
+ : $activeItem;
+ let $visibleItems = $selectedItem.length > 0
+ ? $selectedItem.siblings(':not(.' + className.filtered + ')').addBack()
+ : $menu.children(':not(.' + className.filtered + ')');
+ let $subMenu = $selectedItem.children(selector.menu);
+ let $parentMenu = $selectedItem.closest(selector.menu);
+ let inVisibleMenu = $parentMenu.hasClass(className.visible) || $parentMenu.hasClass(className.animating) || $parentMenu.parent(selector.menu).length > 0;
+ let hasSubMenu = $subMenu.length > 0;
+ let hasSelectedItem = $selectedItem.length > 0;
+ let selectedIsSelectable = $selectedItem.not(selector.unselectable).length > 0;
+ let delimiterPressed = event.key === settings.delimiter && module.is.multiple();
+ let isAdditionWithoutMenu = settings.allowAdditions && (pressedKey === keys.enter || delimiterPressed);
+ let $nextItem;
+ let isSubMenuItem;
// allow selection with the menu closed
if (isAdditionWithoutMenu) {
if (selectedIsSelectable && settings.hideAdditions) {
@@ -8512,12 +8128,10 @@
module.verbose('Left key pressed, closing sub-menu');
module.animate.hide(false, $parentMenu);
$selectedItem
- .removeClass(className.selected)
- ;
+ .removeClass(className.selected);
$parentMenu
.closest(selector.item)
- .addClass(className.selected)
- ;
+ .addClass(className.selected);
event.preventDefault();
}
}
@@ -8528,12 +8142,10 @@
module.verbose('Right key pressed, opening sub-menu');
module.animate.show(false, $subMenu);
$selectedItem
- .removeClass(className.selected)
- ;
+ .removeClass(className.selected);
$subMenu
.find(selector.item).eq(0)
- .addClass(className.selected)
- ;
+ .addClass(className.selected);
event.preventDefault();
}
}
@@ -8553,11 +8165,9 @@
module.verbose('Up key pressed, changing active item');
$selectedItem
- .removeClass(className.selected)
- ;
+ .removeClass(className.selected);
$nextItem
- .addClass(className.selected)
- ;
+ .addClass(className.selected);
module.set.scrollPosition($nextItem);
if (settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
module.set.selectedItem($nextItem);
@@ -8580,11 +8190,9 @@
module.verbose('Down key pressed, changing active item');
$item
- .removeClass(className.selected)
- ;
+ .removeClass(className.selected);
$nextItem
- .addClass(className.selected)
- ;
+ .addClass(className.selected);
module.set.scrollPosition($nextItem);
if (settings.selectOnKeydown && module.is.single() && !$nextItem.hasClass(className.actionable)) {
module.set.selectedItem($nextItem);
@@ -8616,6 +8224,7 @@
}
// down arrow (open menu)
if (pressedKey === keys.downArrow && !module.is.visible()) {
+ focused = true;
module.verbose('Down key pressed, showing dropdown');
module.show();
event.preventDefault();
@@ -8631,11 +8240,9 @@
trigger: {
change: function () {
- var
- inputElement = $input[0]
- ;
+ let inputElement = $input[0];
if (inputElement) {
- var events = document.createEvent('HTMLEvents');
+ let events = document.createEvent('HTMLEvents');
module.verbose('Triggering native change event');
events.initEvent('change', true, false);
inputElement.dispatchEvent(events);
@@ -8659,11 +8266,9 @@
selectActionActive = false;
},
eventInModule: function (event, callback) {
- var
- $target = $(event.target),
- inDocument = $target.closest(document.documentElement).length > 0,
- inModule = $target.closest($module).length > 0
- ;
+ let $target = $(event.target);
+ let inDocument = $target.closest(document.documentElement).length > 0;
+ let inModule = $target.closest($module).length > 0;
callback = isFunction(callback)
? callback
: function () {};
@@ -8679,13 +8284,11 @@
return false;
},
eventOnElement: function (event, callback) {
- var
- $target = $(event.target),
- $label = $target.closest(selector.siblingLabel),
- inVisibleDOM = document.body.contains(event.target),
- notOnLabel = $module.find($label).length === 0 || !(module.is.multiple() && settings.useLabels),
- notInMenu = $target.closest($menu).length === 0
- ;
+ let $target = $(event.target);
+ let $label = $target.closest(selector.siblingLabel);
+ let inVisibleDOM = document.body.contains(event.target);
+ let notOnLabel = $module.find($label).length === 0 || !(module.is.multiple() && settings.useLabels);
+ let notInMenu = $target.closest($menu).length === 0;
callback = isFunction(callback)
? callback
: function () {};
@@ -8778,10 +8381,8 @@
return Math.ceil($sizer.width() + 1);
},
selectionCount: function () {
- var
- values = module.get.values(),
- count
- ;
+ let values = module.get.values();
+ let count;
count = module.is.multiple()
? (Array.isArray(values) ? values.length : 0)
: (module.get.value() !== '' ? 1 : 0);
@@ -8794,9 +8395,7 @@
: settings.transition;
},
userValues: function () {
- var
- values = module.get.values(true)
- ;
+ let values = module.get.values(true);
if (!values) {
return false;
}
@@ -8814,11 +8413,9 @@
});
},
caretPosition: function (returnEndPos) {
- var
- input = $search[0],
- range,
- rangeLength
- ;
+ let input = $search[0];
+ let range;
+ let rangeLength;
if (returnEndPos && 'selectionEnd' in input) {
return input.selectionEnd;
}
@@ -8838,12 +8435,10 @@
}
},
value: function () {
- var
- value = $input.length > 0
- ? $input.val()
- : $module.data(metadata.value),
- isEmptyMultiselect = Array.isArray(value) && value.length === 1 && value[0] === ''
- ;
+ let value = $input.length > 0
+ ? $input.val()
+ : $module.data(metadata.value);
+ let isEmptyMultiselect = Array.isArray(value) && value.length === 1 && value[0] === '';
// prevents the placeholder element from being selected when multiple
return value === undefined || isEmptyMultiselect
@@ -8851,9 +8446,7 @@
: value;
},
values: function (raw) {
- var
- value = module.get.value()
- ;
+ let value = module.get.value();
if (value === '') {
return '';
}
@@ -8867,18 +8460,14 @@
: value;
},
remoteValues: function () {
- var
- values = module.get.values(),
- remoteValues = false
- ;
+ let values = module.get.values();
+ let remoteValues = false;
if (values) {
if (typeof values === 'string') {
values = [values];
}
$.each(values, function (index, value) {
- var
- name = module.read.remoteData(value)
- ;
+ let name = module.read.remoteData(value);
module.verbose('Restoring value from session data', name, value);
if (name) {
if (!remoteValues) {
@@ -8927,9 +8516,7 @@
: String(choiceText));
},
inputEvent: function () {
- var
- input = $search[0]
- ;
+ let input = $search[0];
if (input) {
return input.oninput !== undefined
? 'input'
@@ -8941,26 +8528,22 @@
return false;
},
selectValues: function () {
- var
- select = {},
- oldGroup = [],
- values = []
- ;
+ let select = {};
+ let oldGroup = [];
+ let values = [];
$module
.find('option')
.each(function () {
- var
- $option = $(this),
- name = $option.html(),
- disabled = $option.attr('disabled'),
- value = $option.attr('value') !== undefined
- ? $option.attr('value')
- : name,
- text = $option.data(metadata.text) !== undefined
- ? $option.data(metadata.text)
- : name,
- group = $option.parent('optgroup')
- ;
+ let $option = $(this);
+ let name = $option.html();
+ let disabled = $option.attr('disabled');
+ let value = $option.attr('value') !== undefined
+ ? $option.attr('value')
+ : name;
+ let text = $option.data(metadata.text) !== undefined
+ ? $option.data(metadata.text)
+ : name;
+ let group = $option.parent('optgroup');
if (settings.placeholder === 'auto' && value === '') {
select.placeholder = name;
} else {
@@ -8979,8 +8562,7 @@
disabled: disabled,
});
}
- })
- ;
+ });
if (settings.placeholder && settings.placeholder !== 'auto') {
module.debug('Setting placeholder value to', settings.placeholder);
select.placeholder = settings.placeholder;
@@ -9010,20 +8592,16 @@
return $item.filter('.' + className.active);
},
selectedItem: function () {
- var
- $selectedItem = $item.not(selector.unselectable).filter('.' + className.selected)
- ;
+ let $selectedItem = $item.not(selector.unselectable).filter('.' + className.selected);
return $selectedItem.length > 0
? $selectedItem
: $item.eq(0);
},
itemWithAdditions: function (value) {
- var
- $items = module.get.item(value),
- $userItems = module.create.userChoice(value),
- hasUserItems = $userItems && $userItems.length > 0
- ;
+ let $items = module.get.item(value);
+ let $userItems = module.create.userChoice(value);
+ let hasUserItems = $userItems && $userItems.length > 0;
if (hasUserItems) {
$items = $items.length > 0
? $items.add($userItems)
@@ -9033,11 +8611,9 @@
return $items;
},
item: function (value, strict) {
- var
- $selectedItem = false,
- shouldSearch,
- isMultiple
- ;
+ let $selectedItem = false;
+ let shouldSearch;
+ let isMultiple;
value = value !== undefined
? value
: (module.get.values() !== undefined
@@ -9053,11 +8629,9 @@
if (shouldSearch) {
$item
.each(function () {
- var
- $choice = $(this),
- optionText = module.get.choiceText($choice),
- optionValue = module.get.choiceValue($choice, optionText)
- ;
+ let $choice = $(this);
+ let optionText = module.get.choiceText($choice);
+ let optionValue = module.get.choiceValue($choice, optionText);
// safe early exit
if (optionValue === null || optionValue === undefined) {
return;
@@ -9087,8 +8661,7 @@
return true;
}
}
- })
- ;
+ });
}
return $selectedItem;
@@ -9138,10 +8711,8 @@
module.restore.defaultValue();
},
defaultText: function () {
- var
- defaultText = module.get.defaultText(),
- placeholderText = module.get.placeholderText
- ;
+ let defaultText = module.get.defaultText();
+ let placeholderText = module.get.placeholderText;
if (defaultText === placeholderText) {
module.debug('Restoring default placeholder text', defaultText);
module.set.placeholderText(defaultText);
@@ -9154,9 +8725,7 @@
module.set.placeholderText();
},
defaultValue: function () {
- var
- defaultValue = module.get.defaultValue()
- ;
+ let defaultValue = module.get.defaultValue();
if (defaultValue !== undefined) {
module.debug('Restoring default value', defaultValue);
if (defaultValue !== '') {
@@ -9196,7 +8765,7 @@
} else {
module.set.selected();
}
- var value = module.get.value();
+ let value = module.get.value();
if (value && value !== '' && !(Array.isArray(value) && value.length === 0)) {
$input.removeClass(className.noselection);
} else {
@@ -9205,9 +8774,7 @@
module.remove.initialLoad();
},
remoteValues: function () {
- var
- values = module.get.remoteValues()
- ;
+ let values = module.get.remoteValues();
module.debug('Recreating selected from session data', values);
if (values) {
if (module.is.single()) {
@@ -9225,9 +8792,7 @@
read: {
remoteData: function (value) {
- var
- name
- ;
+ let name;
if (window.Storage === undefined) {
module.error(error.noStorage);
@@ -9248,23 +8813,17 @@
module.save.defaultValue();
},
defaultValue: function () {
- var
- value = module.get.value()
- ;
+ let value = module.get.value();
module.verbose('Saving default value as', value);
$module.data(metadata.defaultValue, value);
},
defaultText: function () {
- var
- text = module.get.text()
- ;
+ let text = module.get.text();
module.verbose('Saving default text as', text);
$module.data(metadata.defaultText, text);
},
placeholderText: function () {
- var
- text
- ;
+ let text;
if (settings.placeholder !== false && $text.hasClass(className.placeholder)) {
text = module.get.text();
module.verbose('Saving placeholder text as', text);
@@ -9304,21 +8863,19 @@
},
scrollPage: function (direction, $selectedItem) {
- var
- $currentItem = $selectedItem || module.get.selectedItem(),
- $menu = $currentItem.closest(selector.menu),
- menuHeight = $menu.outerHeight(),
- currentScroll = $menu.scrollTop(),
- itemHeight = $item.eq(0).outerHeight(),
- itemsPerPage = Math.floor(menuHeight / itemHeight),
- newScroll = direction === 'up'
- ? currentScroll - (itemHeight * itemsPerPage)
- : currentScroll + (itemHeight * itemsPerPage),
- $selectableItem = $item.not(selector.unselectable),
- isWithinRange,
- $nextSelectedItem,
- elementIndex
- ;
+ let $currentItem = $selectedItem || module.get.selectedItem();
+ let $menu = $currentItem.closest(selector.menu);
+ let menuHeight = $menu.outerHeight();
+ let currentScroll = $menu.scrollTop();
+ let itemHeight = $item.eq(0).outerHeight();
+ let itemsPerPage = Math.floor(menuHeight / itemHeight);
+ let newScroll = direction === 'up'
+ ? currentScroll - (itemHeight * itemsPerPage)
+ : currentScroll + (itemHeight * itemsPerPage);
+ let $selectableItem = $item.not(selector.unselectable);
+ let isWithinRange;
+ let $nextSelectedItem;
+ let elementIndex;
elementIndex = direction === 'up'
? $selectableItem.index($currentItem) - itemsPerPage
: $selectableItem.index($currentItem) + itemsPerPage;
@@ -9333,33 +8890,28 @@
if ($nextSelectedItem.length > 0) {
module.debug('Scrolling page', direction, $nextSelectedItem);
$currentItem
- .removeClass(className.selected)
- ;
+ .removeClass(className.selected);
$nextSelectedItem
- .addClass(className.selected)
- ;
+ .addClass(className.selected);
if (settings.selectOnKeydown && module.is.single() && !$nextSelectedItem.hasClass(className.actionable)) {
module.set.selectedItem($nextSelectedItem);
}
$menu
- .scrollTop(newScroll)
- ;
+ .scrollTop(newScroll);
}
},
set: {
filtered: function () {
- var
- isMultiple = module.is.multiple(),
- isSearch = module.is.searchSelection(),
- isSearchMultiple = isMultiple && isSearch,
- searchValue = isSearch
- ? module.get.query()
- : '',
- hasSearchValue = typeof searchValue === 'string' && searchValue.length > 0,
- searchWidth = module.get.searchWidth(),
- valueIsSet = searchValue !== ''
- ;
+ let isMultiple = module.is.multiple();
+ let isSearch = module.is.searchSelection();
+ let isSearchMultiple = isMultiple && isSearch;
+ let searchValue = isSearch
+ ? module.get.query()
+ : '';
+ let hasSearchValue = typeof searchValue === 'string' && searchValue.length > 0;
+ let searchWidth = module.get.searchWidth();
+ let valueIsSet = searchValue !== '';
if (isMultiple && hasSearchValue) {
module.verbose('Adjusting input width', searchWidth);
$search.css('width', searchWidth + 'px');
@@ -9388,21 +8940,17 @@
if (module.is.searchSelection()) {
module.debug('Added tabindex to searchable dropdown');
$search
- .val('')
- ;
+ .val('');
module.check.disabled();
$menu
- .attr('tabindex', -1)
- ;
+ .attr('tabindex', -1);
} else {
module.debug('Added tabindex to dropdown');
if ($module.attr('tabindex') === undefined) {
$module
- .attr('tabindex', $input.attr('tabindex') || 0)
- ;
+ .attr('tabindex', $input.attr('tabindex') || 0);
$menu
- .attr('tabindex', -1)
- ;
+ .attr('tabindex', -1);
}
}
$input.removeAttr('tabindex');
@@ -9419,24 +8967,20 @@
}
},
partialSearch: function (text) {
- var
- length = module.get.query().length
- ;
+ let length = module.get.query().length;
$search.val(text.slice(0, length));
},
scrollPosition: function ($item, forceScroll) {
- var
- edgeTolerance = 5,
- $menu,
- hasActive,
- offset,
- itemOffset,
- menuOffset,
- menuScroll,
- menuHeight,
- abovePage,
- belowPage
- ;
+ let edgeTolerance = 5;
+ let $menu;
+ let hasActive;
+ let offset;
+ let itemOffset;
+ let menuOffset;
+ let menuScroll;
+ let menuHeight;
+ let abovePage;
+ let belowPage;
$item = $item || module.get.selectedItem();
$menu = $item.closest(selector.menu);
@@ -9481,8 +9025,7 @@
}
module.debug('Changing text', text, $text);
$text
- .removeClass(className.filtered)
- ;
+ .removeClass(className.filtered);
if (settings.preserveHTML) {
$text.html(text);
} else {
@@ -9491,11 +9034,9 @@
}
},
selectedItem: function ($item) {
- var
- value = module.get.choiceValue($item),
- searchText = module.get.choiceText($item, false),
- text = module.get.choiceText($item)
- ;
+ let value = module.get.choiceValue($item);
+ let searchText = module.get.choiceText($item, false);
+ let text = module.get.choiceText($item);
module.debug('Setting user selection to item', $item);
module.remove.activeItem();
module.set.partialSearch(searchText);
@@ -9504,12 +9045,10 @@
module.set.text(text);
},
selectedLetter: function (letter) {
- var
- $selectedItem = $item.filter('.' + className.selected),
- alreadySelectedLetter = $selectedItem.length > 0 && module.has.firstLetter($selectedItem, letter),
- $nextValue = false,
- $nextItem
- ;
+ let $selectedItem = $item.filter('.' + className.selected);
+ let alreadySelectedLetter = $selectedItem.length > 0 && module.has.firstLetter($selectedItem, letter);
+ let $nextValue = false;
+ let $nextItem;
// check next of the same letter
if (alreadySelectedLetter) {
$nextItem = $selectedItem.nextAll($item).eq(0);
@@ -9526,8 +9065,7 @@
return false;
}
- })
- ;
+ });
}
// set the next value
if ($nextValue) {
@@ -9563,11 +9101,11 @@
}
},
upward: function ($currentMenu) {
- var $element = $currentMenu || $module;
+ let $element = $currentMenu || $module;
$element.addClass(className.upward);
},
leftward: function ($currentMenu) {
- var $element = $currentMenu || $menu;
+ let $element = $currentMenu || $menu;
$element.addClass(className.leftward);
},
value: function (value, text, $selected, preventChangeTrigger) {
@@ -9581,14 +9119,12 @@
} else {
$input.addClass(className.noselection);
}
- var
- escapedValue = module.escape.value(value),
- hasInput = $input.length > 0,
- currentValue = module.get.values(),
- stringValue = value !== undefined
- ? String(value)
- : value
- ;
+ let escapedValue = module.escape.value(value);
+ let hasInput = $input.length > 0;
+ let currentValue = module.get.values();
+ let stringValue = value !== undefined
+ ? String(value)
+ : value;
if (hasInput) {
if (!settings.allowReselection && stringValue == currentValue) {
module.verbose('Skipping value update already same value', value, currentValue);
@@ -9604,8 +9140,7 @@
module.debug('Updating input value', escapedValue, currentValue);
internalChange = true;
$input
- .val(escapedValue)
- ;
+ .val(escapedValue);
if (settings.fireOnInit === false && module.is.initialLoad()) {
module.debug('Input native change event ignored on initial load');
} else if (preventChangeTrigger !== true) {
@@ -9626,8 +9161,7 @@
},
active: function () {
$module
- .addClass(className.active)
- ;
+ .addClass(className.active);
},
multiple: function () {
$module.addClass(className.multiple);
@@ -9650,9 +9184,7 @@
preventChangeTrigger = $selectedItem;
$selectedItem = undefined;
}
- var
- isMultiple = module.is.multiple()
- ;
+ let isMultiple = module.is.multiple();
$selectedItem = settings.allowAdditions
? $selectedItem || module.get.itemWithAdditions(value)
: $selectedItem || module.get.item(value);
@@ -9680,17 +9212,15 @@
// select each item
$selectedItem
.each(function () {
- var
- $selected = $(this),
- selectedText = module.get.choiceText($selected),
- selectedValue = module.get.choiceValue($selected, selectedText),
-
- isFiltered = $selected.hasClass(className.filtered),
- isActive = $selected.hasClass(className.active),
- isActionable = $selected.hasClass(className.actionable),
- isUserValue = $selected.hasClass(className.addition),
- shouldAnimate = isMultiple && $selectedItem && $selectedItem.length === 1
- ;
+ let $selected = $(this);
+ let selectedText = module.get.choiceText($selected);
+ let selectedValue = module.get.choiceValue($selected, selectedText);
+
+ let isFiltered = $selected.hasClass(className.filtered);
+ let isActive = $selected.hasClass(className.active);
+ let isActionable = $selected.hasClass(className.actionable);
+ let isUserValue = $selected.hasClass(className.addition);
+ let shouldAnimate = isMultiple && $selectedItem && $selectedItem.length === 1;
if (isActionable) {
if ((!isMultiple || (!isActive || isUserValue)) && settings.apiSettings && settings.saveRemoteData) {
module.save.remoteData(selectedText, selectedValue);
@@ -9726,11 +9256,9 @@
module.set.value(selectedValue, selectedText, $selected, preventChangeTrigger);
$selected
.addClass(className.active)
- .addClass(className.selected)
- ;
+ .addClass(className.selected);
}
- })
- ;
+ });
if (!keepSearchTerm) {
module.remove.searchTerm();
}
@@ -9743,21 +9271,18 @@
add: {
label: function (value, text, shouldAnimate) {
- var
- $next = module.is.searchSelection()
- ? $search
- : $text,
- escapedValue = module.escape.value(value),
- $label
- ;
+ let $next = module.is.searchSelection()
+ ? $search
+ : $text;
+ let escapedValue = module.escape.value(value);
+ let $label;
if (settings.ignoreCase) {
escapedValue = escapedValue.toLowerCase();
}
$label = $('')
.addClass(className.label)
.attr('data-' + metadata.value, escapedValue)
- .html(templates.label(escapedValue, text, settings.preserveHTML, settings.className))
- ;
+ .html(templates.label(escapedValue, text, settings));
$label = settings.onLabelCreate.call($label, escapedValue, text);
if (module.has.label(value)) {
@@ -9779,38 +9304,30 @@
verbose: settings.verbose,
silent: settings.silent,
duration: settings.label.duration,
- })
- ;
+ });
} else {
module.debug('Adding selection label', $label);
$label
- .insertBefore($next)
- ;
+ .insertBefore($next);
}
},
message: function (message) {
- var
- $message = $menu.children(selector.message),
- html = settings.templates.message(module.add.variables(message))
- ;
+ let $message = $menu.children(selector.message);
+ let html = settings.templates.message(module.add.variables(message));
if ($message.length > 0) {
$message
- .html(html)
- ;
+ .html(html);
} else {
$('')
.html(html)
.addClass(className.message)
- .appendTo($menu)
- ;
+ .appendTo($menu);
}
},
optionValue: function (value) {
- var
- escapedValue = module.escape.value(value),
- $option = $input.find('option[value="' + module.escape.string(escapedValue) + '"]'),
- hasOption = $option.length > 0
- ;
+ let escapedValue = module.escape.value(value);
+ let $option = $input.find('option[value="' + CSS.escape(escapedValue) + '"]');
+ let hasOption = $option.length > 0;
if (hasOption) {
return;
}
@@ -9824,19 +9341,16 @@
.prop('value', escapedValue)
.addClass(className.addition)
.text(value)
- .appendTo($input)
- ;
+ .appendTo($input);
module.verbose('Adding user addition as an