UNPKG

react-sm-select

Version:
115 lines (101 loc) 3.39 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /** * Checks if target is of given type * @param type * @param target * @returns {boolean} */ var is = exports.is = function is(type, target) { return target.constructor === type; }; /** * Compose classes * @param args * @returns {*|string} */ var classes = exports.classes = function classes() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return args.reduce(function (acc, item) { var addOn = ''; if (is(String, item)) addOn = item; if (is(Object, item)) addOn = Object.keys(item).filter(function (key) { return !!item[key]; }).join(' '); if (is(Array, item)) addOn = item.join(' '); return (acc ? acc + ' ' + addOn : addOn).trim(); }, ''); }; /** * Filter array by containing text in elements * @param options * @param filter * @returns {*} */ var defaultFilterOptions = exports.defaultFilterOptions = function defaultFilterOptions(options, filter) { return options.filter(function (option) { return option.label.toLowerCase().includes(filter.toLowerCase()); }); }; /** * Checks if two arrays are identical * @param first * @param second * @returns {boolean} */ var areArraysEqual = exports.areArraysEqual = function areArraysEqual(first, second) { if (first.length !== second.length) return false; return !first.reduce(function (A, item, idx) { return item !== second[idx] ? [].concat(_toConsumableArray(A), [item]) : A; }, []).length; }; /** * Clear array from props doesn't exist in second array * @param origin * @param part * @param single * @returns {*} */ var omitDirtyValues = exports.omitDirtyValues = function omitDirtyValues(origin, part, single) { var flatOrigin = origin.map(function (item) { return item.value; }); var _part$reduce = part.reduce(function (A, item) { return flatOrigin.includes(item) ? [].concat(_toConsumableArray(A), [item]) : A; }, []), _part$reduce2 = _toArray(_part$reduce), first = _part$reduce2[0], rest = _part$reduce2.slice(1); return first ? single ? [first] : [first].concat(_toConsumableArray(rest)) : []; }; /** * Attaches listener callback to document touch ot mousedown * @param cb */ var attachDocumentClickListener = exports.attachDocumentClickListener = function attachDocumentClickListener(cb) { document.addEventListener('touchstart', cb, false); document.addEventListener('mousedown', cb, false); }; /** * Removes listener from document touch ot mousedown * @param cb */ var removeDocumentClickListener = exports.removeDocumentClickListener = function removeDocumentClickListener(cb) { document.removeEventListener('touchstart', cb, false); document.removeEventListener('mousedown', cb, false); }; /** * Stops event propagation * @param event.stopPropagation * @param event.preventDefault */ var stopPreventPropagation = exports.stopPreventPropagation = function stopPreventPropagation(event) { event.stopPropagation(); event.preventDefault(); };