react-ui-basics 0.0.126 → 0.0.130

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.js","sources":["../src/react-ui-basics/Tools.js"],"sourcesContent":["var global = global || window;\nexport const WINDOW = global;\nexport const DOCUMENT = WINDOW.document;\n\nexport function classNames() {\n const filtered = [];\n const length = arguments.length;\n for (let i = 0; i < length; i++) {\n let it = arguments[i];\n !!it && filtered.push(it);\n }\n return filtered.join(' ');\n}\n\nexport const NOOP = () => {\n};\n\nexport const orNoop = f => f || NOOP;\n\nexport const getRandomId = (prefix) => prefix + Math.random();\n\nexport const ref = (name, component) => (it) => component[name] = it;\n\nexport const createRef = () => {\n const ref = function () {\n arguments.length > 0 && (ref.v = arguments[0]);\n return ref.v;\n };\n return ref;\n};\n\nexport const setOf = (list) => (list || []).reduce((map, key) => {\n map[key] = true;\n return map;\n}, {});\n\nexport const allPropsExcept = (obj, except) => {\n let result = {};\n for (let key in obj) {\n if (!except[key]) result[key] = obj[key];\n }\n return result;\n};\n\nexport const continuousIncludes = (value, inc) => {\n const length = inc.length;\n let from = 0;\n for (let i = 0; i < length; i++) {\n from = value.indexOf(inc[i], from);\n if (from === -1)\n return false\n }\n return true;\n};\n\nconst isArrayShallowEqual = (a, b) => {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (a.length !== b.length) {\n return false;\n }\n let i = a.length - 1;\n let result = true;\n while (i >= 0 && (result = (a[i] === b[i]))) {\n i--;\n }\n return result;\n}\n\nexport const debounce = (func, delay) => {\n let inDebounce;\n return function () {\n const context = this;\n const args = arguments;\n clearTimeout(inDebounce);\n inDebounce = setTimeout(() => {\n func.apply(context, args);\n }, delay)\n }\n};\n\nexport const memo = (func) => {\n let prevArgs\n let prevResult\n return function () {\n const context = this;\n const args = arguments;\n if (!isArrayShallowEqual(prevArgs, args)) {\n prevArgs = args\n prevResult = func.apply(context, args);\n }\n return prevResult\n }\n}\n\nexport const typeOf = (v) => typeof v;\nexport const isFunction = (v) => typeOf(v) === 'function';\nexport const isString = (v) => typeOf(v) === 'string';\nexport const isObject = (v) => typeOf(v) === 'object';\n\nexport const isDifferent = (a, b) => {\n if (a == null && b == null) return false;\n if (a == null || b == null) return true;\n if (a === b) return false;\n\n const typeA = typeOf(a);\n const typeB = typeOf(b);\n if (typeA !== typeB) {\n return true;\n }\n\n if (Array.isArray(a)) {\n if (a.length !== b.length) {\n return true;\n }\n let i = a.length - 1;\n let result = false;\n while (i >= 0 && !(result = isDifferent(a[i], b[i]))) {\n i--;\n }\n return result;\n }\n\n if (typeA === 'object') {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) {\n return true;\n }\n\n let j = keysA.length - 1;\n let r = false;\n while (j >= 0 && !(r = keysA[j] !== keysB[j]) && !(r = isDifferent(a[keysA[j]], b[keysB[j]]))) {\n j--;\n }\n return r\n }\n\n return true;\n};\n\nexport const preventDefault = e => {\n e && e.preventDefault();\n};\nexport const stopPropagation = e => {\n e && e.stopPropagation();\n};\n\nexport const setTimeout = function () {\n return WINDOW.setTimeout.apply(WINDOW, arguments);\n};\nexport const clearTimeout = (id) => {\n WINDOW.clearTimeout(id);\n};\nexport const setInterval = function () {\n return WINDOW.setInterval.apply(WINDOW, arguments);\n};\nexport const clearInterval = (id) => {\n WINDOW.clearInterval(id);\n};\nexport const requestAnimationFrame = (cb) => WINDOW.requestAnimationFrame(cb);\nexport const addEventListener = (el, type, listener, options) => {\n el && el.addEventListener(type, listener, options);\n};\nexport const removeEventListener = (el, type, listener, options) => {\n el && el.removeEventListener(type, listener, options);\n};\n\nexport const UNDEFINED = undefined;\nexport const isUndefined = a => a === UNDEFINED;\n\n\nexport class Comparators {\n static SORT_ASC = 'ASC';\n static SORT_DESC = 'DESC';\n\n static of = (field, order, data) => {\n let comparator;\n if (Array.isArray(field)) {\n const isOrderArray = Array.isArray(order);\n comparator = Comparators.chain(field.map((it, i) => Comparators.of(it, (isOrderArray && order[i]) || Comparators.SORT_ASC, data)));\n } else if (isFunction(field)) {\n if (data && data[0] && isString(field(data[0]))) {\n const collator = new Intl.Collator({sensitivity: 'base'});\n comparator = (a, b) => {\n return collator.compare(field(a), field(b));\n }\n } else\n comparator = (a, b) => {\n const A = field(a);\n const B = field(b);\n return (A < B ? -1 : (A > B ? 1 : 0));\n };\n } else if (isString(field))\n comparator = Comparators.of(it => it[field], Comparators.SORT_ASC, data);\n else\n comparator = Comparators.of(it => it, Comparators.SORT_ASC, data);\n\n if (order && order === Comparators.SORT_DESC) {\n return Comparators.inverse(comparator);\n }\n\n return addComparatorMethods(comparator);\n };\n static chain = (comparators) => addComparatorMethods((a, b) => {\n let result;\n for (let i = 0; i < comparators.length; i++) {\n result = comparators[i](a, b);\n if (result !== 0)\n return result;\n }\n return result;\n }\n );\n\n static inverse = (comparator) => addComparatorMethods((a, b) => -comparator(a, b));\n}\n\nconst addComparatorMethods = function (comparator) {\n comparator.inverse = () => Comparators.inverse(comparator);\n comparator.and = (another) => Comparators.chain([comparator, another]);\n return comparator;\n};\n\nif (window.isNotProductionEnvironment) {\n // will be removed in production build\n // needed only to prevent bundler to remove 'unused' functions\n window.tools = {\n memo\n }\n}"],"names":["global","window","WINDOW","DOCUMENT","document","classNames","filtered","length","arguments","i","it","push","join","NOOP","orNoop","f","getRandomId","prefix","Math","random","ref","name","component","createRef","v","setOf","list","reduce","map","key","allPropsExcept","obj","except","result","continuousIncludes","value","inc","from","indexOf","isArrayShallowEqual","a","b","debounce","func","delay","inDebounce","context","args","clearTimeout","setTimeout","apply","memo","prevArgs","prevResult","typeOf","isFunction","isString","isObject","isDifferent","typeA","typeB","Array","isArray","keysA","Object","keys","keysB","j","r","preventDefault","e","stopPropagation","id","setInterval","clearInterval","requestAnimationFrame","cb","addEventListener","el","type","listener","options","removeEventListener","UNDEFINED","undefined","isUndefined","Comparators","SORT_ASC","SORT_DESC","of","field","order","data","comparator","isOrderArray","chain","collator","Intl","Collator","sensitivity","compare","A","B","inverse","addComparatorMethods","comparators","and","another","isNotProductionEnvironment","tools"],"mappings":"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"}
1
+ {"version":3,"file":"Tools.js","sources":["../src/react-ui-basics/Tools.js"],"sourcesContent":["var global = global || window;\nexport const WINDOW = global;\nexport const DOCUMENT = WINDOW.document;\n\nexport function classNames() {\n const filtered = [];\n const length = arguments.length;\n for (let i = 0; i < length; i++) {\n let it = arguments[i];\n !!it && filtered.push(it);\n }\n return filtered.join(' ');\n}\n\nexport const NOOP = () => {\n};\n\nexport const orNoop = f => f || NOOP;\n\nexport const getRandomId = (prefix) => prefix + Math.random();\n\nexport const ref = (name, component) => (it) => component[name] = it;\n\nexport const createRef = () => {\n const ref = function () {\n arguments.length > 0 && (ref.v = arguments[0]);\n return ref.v;\n };\n return ref;\n};\n\nexport const setOf = (list) => (list || []).reduce((map, key) => {\n map[key] = true;\n return map;\n}, {});\n\nexport const allPropsExcept = (obj, except) => {\n let result = {};\n for (let key in obj) {\n if (!except[key]) result[key] = obj[key];\n }\n return result;\n};\n\nexport const continuousIncludes = (value, inc) => {\n const length = inc.length;\n let from = -1;\n for (let i = 0; i < length; i++) {\n from = value.indexOf(inc[i], from + 1);\n if (from === -1)\n return false\n }\n return true;\n};\n\nconst isArrayShallowEqual = (a, b) => {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (a.length !== b.length) {\n return false;\n }\n let i = a.length - 1;\n let result = true;\n while (i >= 0 && (result = (a[i] === b[i]))) {\n i--;\n }\n return result;\n}\n\nexport const debounce = (func, delay) => {\n let inDebounce;\n return function () {\n const context = this;\n const args = arguments;\n clearTimeout(inDebounce);\n inDebounce = setTimeout(() => {\n func.apply(context, args);\n }, delay)\n }\n};\n\nexport const memo = (func) => {\n let prevArgs\n let prevResult\n return function () {\n const context = this;\n const args = arguments;\n if (!isArrayShallowEqual(prevArgs, args)) {\n prevArgs = args\n prevResult = func.apply(context, args);\n }\n return prevResult\n }\n}\n\nexport const typeOf = (v) => typeof v;\nexport const isFunction = (v) => typeOf(v) === 'function';\nexport const isString = (v) => typeOf(v) === 'string';\nexport const isObject = (v) => typeOf(v) === 'object';\n\nexport const isDifferent = (a, b) => {\n if (a == null && b == null) return false;\n if (a == null || b == null) return true;\n if (a === b) return false;\n\n const typeA = typeOf(a);\n const typeB = typeOf(b);\n if (typeA !== typeB) {\n return true;\n }\n\n if (Array.isArray(a)) {\n if (a.length !== b.length) {\n return true;\n }\n let i = a.length - 1;\n let result = false;\n while (i >= 0 && !(result = isDifferent(a[i], b[i]))) {\n i--;\n }\n return result;\n }\n\n if (typeA === 'object') {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) {\n return true;\n }\n\n let j = keysA.length - 1;\n let r = false;\n while (j >= 0 && !(r = keysA[j] !== keysB[j]) && !(r = isDifferent(a[keysA[j]], b[keysB[j]]))) {\n j--;\n }\n return r\n }\n\n return true;\n};\n\nexport const preventDefault = e => {\n e && e.preventDefault();\n};\nexport const stopPropagation = e => {\n e && e.stopPropagation();\n};\n\nexport const setTimeout = function () {\n return WINDOW.setTimeout.apply(WINDOW, arguments);\n};\nexport const clearTimeout = (id) => {\n WINDOW.clearTimeout(id);\n};\nexport const setInterval = function () {\n return WINDOW.setInterval.apply(WINDOW, arguments);\n};\nexport const clearInterval = (id) => {\n WINDOW.clearInterval(id);\n};\nexport const requestAnimationFrame = (cb) => WINDOW.requestAnimationFrame(cb);\nexport const addEventListener = (el, type, listener, options) => {\n el && el.addEventListener(type, listener, options);\n};\nexport const removeEventListener = (el, type, listener, options) => {\n el && el.removeEventListener(type, listener, options);\n};\n\nexport const UNDEFINED = undefined;\nexport const isUndefined = a => a === UNDEFINED;\n\n\nexport class Comparators {\n static SORT_ASC = 'ASC';\n static SORT_DESC = 'DESC';\n\n static of = (field, order, data) => {\n let comparator;\n if (Array.isArray(field)) {\n const isOrderArray = Array.isArray(order);\n comparator = Comparators.chain(field.map((it, i) => Comparators.of(it, (isOrderArray && order[i]) || Comparators.SORT_ASC, data)));\n } else if (isFunction(field)) {\n if (data && data[0] && isString(field(data[0]))) {\n const collator = new Intl.Collator({sensitivity: 'base'});\n comparator = (a, b) => {\n return collator.compare(field(a), field(b));\n }\n } else\n comparator = (a, b) => {\n const A = field(a);\n const B = field(b);\n return (A < B ? -1 : (A > B ? 1 : 0));\n };\n } else if (isString(field))\n comparator = Comparators.of(it => it[field], Comparators.SORT_ASC, data);\n else\n comparator = Comparators.of(it => it, Comparators.SORT_ASC, data);\n\n if (order && order === Comparators.SORT_DESC) {\n return Comparators.inverse(comparator);\n }\n\n return addComparatorMethods(comparator);\n };\n static chain = (comparators) => addComparatorMethods((a, b) => {\n let result;\n for (let i = 0; i < comparators.length; i++) {\n result = comparators[i](a, b);\n if (result !== 0)\n return result;\n }\n return result;\n }\n );\n\n static inverse = (comparator) => addComparatorMethods((a, b) => -comparator(a, b));\n}\n\nconst addComparatorMethods = function (comparator) {\n comparator.inverse = () => Comparators.inverse(comparator);\n comparator.and = (another) => Comparators.chain([comparator, another]);\n return comparator;\n};\n\nif (window.isNotProductionEnvironment) {\n // will be removed in production build\n // needed only to prevent bundler to remove 'unused' functions\n window.tools = {\n memo\n }\n}"],"names":["global","window","WINDOW","DOCUMENT","document","classNames","filtered","length","arguments","i","it","push","join","NOOP","orNoop","f","getRandomId","prefix","Math","random","ref","name","component","createRef","v","setOf","list","reduce","map","key","allPropsExcept","obj","except","result","continuousIncludes","value","inc","from","indexOf","isArrayShallowEqual","a","b","debounce","func","delay","inDebounce","context","args","clearTimeout","setTimeout","apply","memo","prevArgs","prevResult","typeOf","isFunction","isString","isObject","isDifferent","typeA","typeB","Array","isArray","keysA","Object","keys","keysB","j","r","preventDefault","e","stopPropagation","id","setInterval","clearInterval","requestAnimationFrame","cb","addEventListener","el","type","listener","options","removeEventListener","UNDEFINED","undefined","isUndefined","Comparators","SORT_ASC","SORT_DESC","of","field","order","data","comparator","isOrderArray","chain","collator","Intl","Collator","sensitivity","compare","A","B","inverse","addComparatorMethods","comparators","and","another","isNotProductionEnvironment","tools"],"mappings":"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"}