You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
//region Import jQuery itself
|
|
import $ from 'jquery';
|
|
//endregion
|
|
import Utils from 'utils';
|
|
|
|
window.$ = $; // Ensure $ is available everywhere
|
|
window.jQuery = $; // Ensure global “jQuery” property available: necessary to use bootstrap event in jQuery.on ?
|
|
|
|
(function ($) {
|
|
//region .data
|
|
/**
|
|
* Get a DOM “data” value, with a default value
|
|
*
|
|
* @param {string} key The “data” key
|
|
* @param {any} defaultValue The default value
|
|
*
|
|
* @return {any} The “data” value
|
|
*/
|
|
$.fn.dataDefault = function (key, defaultValue = undefined) {
|
|
const value = this.data(key);
|
|
if (Utils.isUndefined(value)) {
|
|
return defaultValue;
|
|
}
|
|
return value;
|
|
};
|
|
//endregion
|
|
//region .matchTag
|
|
/**
|
|
* Check if a jQuery element is one of the tags
|
|
*
|
|
* @param {string} tag The tag to check
|
|
* @param {string} extraTags Extra tags to check
|
|
*
|
|
* @return {boolean} True if the element is one of the tags
|
|
*/
|
|
$.fn.matchTag = function (tag, ...extraTags) {
|
|
extraTags.push(tag);
|
|
extraTags = extraTags.map((tag) => tag.toUpperCase());
|
|
return $.inArray(this.prop('tagName').toUpperCase(), extraTags) !== -1;
|
|
};
|
|
//endregion
|
|
})($);
|