@primeuix/utils
Version:
1 lines • 26.5 kB
Source Map (JSON)
{"version":3,"sources":["../../src/object/methods/isEmpty.ts","../../src/object/methods/compare.ts","../../src/object/methods/deepEquals.ts","../../src/object/methods/isFunction.ts","../../src/object/methods/isNotEmpty.ts","../../src/object/methods/resolveFieldData.ts","../../src/object/methods/equals.ts","../../src/object/methods/contains.ts","../../src/object/methods/filter.ts","../../src/object/methods/findIndexInList.ts","../../src/object/methods/findLast.ts","../../src/object/methods/findLastIndex.ts","../../src/object/methods/isObject.ts","../../src/object/methods/resolve.ts","../../src/object/methods/isString.ts","../../src/object/methods/toFlatCase.ts","../../src/object/methods/getKeyValue.ts","../../src/object/methods/insertIntoOrderedArray.ts","../../src/object/methods/isArray.ts","../../src/object/methods/isDate.ts","../../src/object/methods/isLetter.ts","../../src/object/methods/isNumber.ts","../../src/object/methods/isPrintableCharacter.ts","../../src/object/methods/isScalar.ts","../../src/object/methods/localeComparator.ts","../../src/object/methods/matchRegex.ts","../../src/object/methods/mergeKeys.ts","../../src/object/methods/minifyCSS.ts","../../src/object/methods/nestedKeys.ts","../../src/object/methods/removeAccents.ts","../../src/object/methods/reorderArray.ts","../../src/object/methods/sort.ts","../../src/object/methods/stringify.ts","../../src/object/methods/toCapitalCase.ts","../../src/object/methods/toKebabCase.ts","../../src/object/methods/toTokenKey.ts"],"sourcesContent":["export default function isEmpty(value: any): boolean {\n return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!(value instanceof Date) && typeof value === 'object' && Object.keys(value).length === 0);\n}\n","import isEmpty from './isEmpty';\n\nexport default function compare<T = any>(value1: T, value2: T, comparator: (val1: T, val2: T) => number, order: number = 1): number {\n let result = -1;\n const emptyValue1 = isEmpty(value1);\n const emptyValue2 = isEmpty(value2);\n\n if (emptyValue1 && emptyValue2) result = 0;\n else if (emptyValue1) result = order;\n else if (emptyValue2) result = -order;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = comparator(value1, value2);\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return result;\n}\n","export default function deepEquals(obj1: any, obj2: any): boolean {\n if (obj1 === obj2) return true;\n\n if (obj1 && obj2 && typeof obj1 == 'object' && typeof obj2 == 'object') {\n var arrObj1 = Array.isArray(obj1),\n arrObj2 = Array.isArray(obj2),\n i,\n length,\n key;\n\n if (arrObj1 && arrObj2) {\n length = obj1.length;\n if (length != obj2.length) return false;\n for (i = length; i-- !== 0; ) if (!deepEquals(obj1[i], obj2[i])) return false;\n\n return true;\n }\n\n if (arrObj1 != arrObj2) return false;\n\n var dateObj1 = obj1 instanceof Date,\n dateObj2 = obj2 instanceof Date;\n\n if (dateObj1 != dateObj2) return false;\n if (dateObj1 && dateObj2) return obj1.getTime() == obj2.getTime();\n\n var regexpObj1 = obj1 instanceof RegExp,\n regexpObj2 = obj2 instanceof RegExp;\n\n if (regexpObj1 != regexpObj2) return false;\n if (regexpObj1 && regexpObj2) return obj1.toString() == obj2.toString();\n\n var keys = Object.keys(obj1);\n\n length = keys.length;\n\n if (length !== Object.keys(obj2).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(obj2, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!deepEquals(obj1[key], obj2[key])) return false;\n }\n\n return true;\n }\n\n return obj1 !== obj1 && obj2 !== obj2;\n}\n","export default function isFunction(value: any): value is Function {\n return !!(value && value.constructor && value.call && value.apply);\n}\n","import isEmpty from './isEmpty';\n\nexport default function isNotEmpty(value: any): boolean {\n return !isEmpty(value);\n}\n","import isFunction from './isFunction';\nimport isNotEmpty from './isNotEmpty';\n\nexport default function resolveFieldData(data: any, field: string): any {\n if (!data || !field) {\n // short circuit if there is nothing to resolve\n return null;\n }\n\n try {\n const value = data[field];\n\n if (isNotEmpty(value)) return value;\n } catch {\n // Performance optimization: https://github.com/primefaces/primereact/issues/4797\n // do nothing and continue to other methods to resolve field data\n }\n\n if (Object.keys(data).length) {\n if (isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n let fields = field.split('.');\n let value = data;\n\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n }\n\n return null;\n}\n","import deepEquals from './deepEquals';\nimport resolveFieldData from './resolveFieldData';\n\nexport default function equals(obj1: any, obj2: any, field?: string): boolean {\n if (field) return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);\n else return deepEquals(obj1, obj2);\n}\n","import equals from './equals';\n\nexport default function contains<T = any>(value: T, list: T[]): boolean {\n if (value != null && list && list.length) {\n for (let val of list) {\n if (equals(value, val)) return true;\n }\n }\n\n return false;\n}\n","import resolveFieldData from './resolveFieldData';\n\nexport default function filter<T = any>(value: T[], fields: string[], filterValue: string): T[] {\n let filteredItems = [];\n\n if (value) {\n for (let item of value) {\n for (let field of fields) {\n if (String(resolveFieldData(item, field)).toLowerCase().indexOf(filterValue.toLowerCase()) > -1) {\n filteredItems.push(item);\n break;\n }\n }\n }\n }\n\n return filteredItems;\n}\n","export default function findIndexInList<T = any>(value: T, list: T[]): number {\n let index = -1;\n\n if (list) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] === value) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n}\n","import isNotEmpty from './isNotEmpty';\n\n/**\n * Firefox-v103 does not currently support the \"findLast\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlast\n */\nexport default function findLast<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): T | undefined {\n let item;\n\n if (isNotEmpty(arr)) {\n try {\n item = (arr as any).findLast(callback);\n } catch {\n item = [...arr].reverse().find(callback);\n }\n }\n\n return item;\n}\n","import isNotEmpty from './isNotEmpty';\n\n/**\n * Firefox-v103 does not currently support the \"findLastIndex\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlastindex\n */\nexport default function findLastIndex<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): number {\n let index = -1;\n\n if (isNotEmpty(arr)) {\n try {\n index = (arr as any).findLastIndex(callback);\n } catch {\n index = arr.lastIndexOf([...arr].reverse().find(callback) as T);\n }\n }\n\n return index;\n}\n","export default function isObject(value: any, empty: boolean = true): boolean {\n return value instanceof Object && value.constructor === Object && (empty || Object.keys(value).length !== 0);\n}\n","import isFunction from './isFunction';\n\nexport default function resolve<T>(obj: T | ((...params: any[]) => T), ...params: any[]): T {\n return isFunction(obj) ? obj(...params) : obj;\n}\n","export default function isString(value: any, empty: boolean = true): boolean {\n return typeof value === 'string' && (empty || value !== '');\n}\n","import isString from './isString';\n\nexport default function toFlatCase(str: string): string {\n // convert snake, kebab, camel and pascal cases to flat case\n return isString(str) ? str.replace(/(-|_)/g, '').toLowerCase() : str;\n}\n","import isObject from './isObject';\nimport resolve from './resolve';\nimport toFlatCase from './toFlatCase';\n\nexport default function getKeyValue(obj: any, key: string = '', params: any = {}): any {\n const fKeys = toFlatCase(key).split('.');\n const fKey = fKeys.shift();\n\n return fKey ? (isObject(obj) ? getKeyValue(resolve(obj[Object.keys(obj).find((k) => toFlatCase(k) === fKey) || ''], params), fKeys.join('.'), params) : undefined) : resolve(obj, params);\n}\n","import findIndexInList from './findIndexInList';\n\nexport default function insertIntoOrderedArray<T>(item: T, index: number, arr: T[], sourceArr: any[]): void {\n if (arr.length > 0) {\n let injected = false;\n\n for (let i = 0; i < arr.length; i++) {\n let currentItemIndex = findIndexInList(arr[i], sourceArr);\n\n if (currentItemIndex > index) {\n arr.splice(i, 0, item);\n injected = true;\n break;\n }\n }\n\n if (!injected) {\n arr.push(item);\n }\n } else {\n arr.push(item);\n }\n}\n","export default function isArray(value: any, empty: boolean = true): boolean {\n return Array.isArray(value) && (empty || value.length !== 0);\n}\n","export default function isDate(value: any): boolean {\n return value instanceof Date && value.constructor === Date;\n}\n","export default function isLetter(char: string): boolean {\n return /^[a-zA-Z\\u00C0-\\u017F]$/.test(char);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isNumber(value: any): boolean {\n return isNotEmpty(value) && !isNaN(value);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isPrintableCharacter(char: string = ''): boolean {\n return isNotEmpty(char) && char.length === 1 && !!char.match(/\\S| /);\n}\n","export default function isScalar(value: any): boolean {\n return value != null && (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint' || typeof value === 'boolean');\n}\n","export default function localeComparator(): (val1: string, val2: string) => number {\n //performance gain using Int.Collator. It is not recommended to use localeCompare against large arrays.\n return new Intl.Collator(undefined, { numeric: true }).compare;\n}\n","export default function matchRegex(str: string, regex?: RegExp): boolean {\n if (regex) {\n const match = regex.test(str);\n\n regex.lastIndex = 0;\n\n return match;\n }\n\n return false;\n}\n","import isObject from './isObject';\n\nexport default function mergeKeys(...args: Record<string, any>[]): Record<string, any> {\n const _mergeKeys = (target: Record<string, any> = {}, source: Record<string, any> = {}) => {\n const mergedObj: Record<string, any> = { ...target };\n\n Object.keys(source).forEach((key) => {\n if (isObject(source[key]) && key in target && isObject(target[key])) {\n mergedObj[key] = _mergeKeys(target[key], source[key]);\n } else {\n mergedObj[key] = source[key];\n }\n });\n\n return mergedObj;\n };\n\n return args.reduce((acc, obj, i) => (i === 0 ? obj : _mergeKeys(acc, obj)), {});\n}\n","export default function minifyCSS(css?: string): string | undefined {\n return css\n ? css\n .replace(/\\/\\*(?:(?!\\*\\/)[\\s\\S])*\\*\\/|[\\r\\n\\t]+/g, '')\n .replace(/ {2,}/g, ' ')\n .replace(/ ([{:}]) /g, '$1')\n .replace(/([;,]) /g, '$1')\n .replace(/ !/g, '!')\n .replace(/: /g, ':')\n : css;\n}\n","import isObject from './isObject';\n\nexport default function nestedKeys(obj: Record<string, any> = {}, parentKey: string = ''): string[] {\n return Object.entries(obj).reduce<string[]>((o, [key, value]) => {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n\n isObject(value) ? (o = o.concat(nestedKeys(value, currentKey))) : o.push(currentKey);\n\n return o;\n }, []);\n}\n","export default function removeAccents(str: string): string {\n // Regular expression to check for any accented characters 'Latin-1 Supplement' and 'Latin Extended-A'\n const accentCheckRegex = /[\\xC0-\\xFF\\u0100-\\u017E]/;\n\n if (str && accentCheckRegex.test(str)) {\n const accentsMap: { [key: string]: RegExp } = {\n A: /[\\xC0-\\xC5\\u0100\\u0102\\u0104]/g,\n AE: /[\\xC6]/g,\n C: /[\\xC7\\u0106\\u0108\\u010A\\u010C]/g,\n D: /[\\xD0\\u010E\\u0110]/g,\n E: /[\\xC8-\\xCB\\u0112\\u0114\\u0116\\u0118\\u011A]/g,\n G: /[\\u011C\\u011E\\u0120\\u0122]/g,\n H: /[\\u0124\\u0126]/g,\n I: /[\\xCC-\\xCF\\u0128\\u012A\\u012C\\u012E\\u0130]/g,\n IJ: /[\\u0132]/g,\n J: /[\\u0134]/g,\n K: /[\\u0136]/g,\n L: /[\\u0139\\u013B\\u013D\\u013F\\u0141]/g,\n N: /[\\xD1\\u0143\\u0145\\u0147\\u014A]/g,\n O: /[\\xD2-\\xD6\\xD8\\u014C\\u014E\\u0150]/g,\n OE: /[\\u0152]/g,\n R: /[\\u0154\\u0156\\u0158]/g,\n S: /[\\u015A\\u015C\\u015E\\u0160]/g,\n T: /[\\u0162\\u0164\\u0166]/g,\n U: /[\\xD9-\\xDC\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172]/g,\n W: /[\\u0174]/g,\n Y: /[\\xDD\\u0176\\u0178]/g,\n Z: /[\\u0179\\u017B\\u017D]/g,\n\n a: /[\\xE0-\\xE5\\u0101\\u0103\\u0105]/g,\n ae: /[\\xE6]/g,\n c: /[\\xE7\\u0107\\u0109\\u010B\\u010D]/g,\n d: /[\\u010F\\u0111]/g,\n e: /[\\xE8-\\xEB\\u0113\\u0115\\u0117\\u0119\\u011B]/g,\n g: /[\\u011D\\u011F\\u0121\\u0123]/g,\n i: /[\\xEC-\\xEF\\u0129\\u012B\\u012D\\u012F\\u0131]/g,\n ij: /[\\u0133]/g,\n j: /[\\u0135]/g,\n k: /[\\u0137,\\u0138]/g,\n l: /[\\u013A\\u013C\\u013E\\u0140\\u0142]/g,\n n: /[\\xF1\\u0144\\u0146\\u0148\\u014B]/g,\n p: /[\\xFE]/g,\n o: /[\\xF2-\\xF6\\xF8\\u014D\\u014F\\u0151]/g,\n oe: /[\\u0153]/g,\n r: /[\\u0155\\u0157\\u0159]/g,\n s: /[\\u015B\\u015D\\u015F\\u0161]/g,\n t: /[\\u0163\\u0165\\u0167]/g,\n u: /[\\xF9-\\xFC\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173]/g,\n w: /[\\u0175]/g,\n y: /[\\xFD\\xFF\\u0177]/g,\n z: /[\\u017A\\u017C\\u017E]/g\n };\n\n for (let key in accentsMap) {\n str = str.replace(accentsMap[key], key);\n }\n }\n\n return str;\n}\n","export default function reorderArray<T>(value: T[], from: number, to: number): void {\n if (value && from !== to) {\n if (to >= value.length) {\n to %= value.length;\n from %= value.length;\n }\n\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n}\n","import compare from './compare';\nimport isEmpty from './isEmpty';\n\nexport default function sort<T>(value1: T, value2: T, order: number = 1, comparator: (val1: T, val2: T) => number, nullSortOrder: number = 1): number {\n const result = compare(value1, value2, comparator, order);\n let finalSortOrder = order;\n\n // nullSortOrder == 1 means Excel like sort nulls at bottom\n if (isEmpty(value1) || isEmpty(value2)) {\n finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n }\n\n return finalSortOrder * result;\n}\n","import isArray from './isArray';\nimport isDate from './isDate';\nimport isFunction from './isFunction';\nimport isObject from './isObject';\n\nexport default function stringify(value: any, indent: number = 2, currentIndent: number = 0): string {\n const currentIndentStr = ' '.repeat(currentIndent);\n const nextIndentStr = ' '.repeat(currentIndent + indent);\n\n if (isArray(value)) {\n return '[' + value.map((v: any) => stringify(v, indent, currentIndent + indent)).join(', ') + ']';\n } else if (isDate(value)) {\n return value.toISOString();\n } else if (isFunction(value)) {\n return value.toString();\n } else if (isObject(value)) {\n return (\n '{\\n' +\n Object.entries(value)\n .map(([k, v]) => `${nextIndentStr}${k}: ${stringify(v, indent, currentIndent + indent)}`)\n .join(',\\n') +\n `\\n${currentIndentStr}` +\n '}'\n );\n } else {\n return JSON.stringify(value);\n }\n}\n","import isString from './isString';\n\nexport default function toCapitalCase(str: string): string {\n return isString(str, false) ? str[0].toUpperCase() + str.slice(1) : str;\n}\n","import isString from './isString';\n\nexport default function toKebabCase(str: string): string {\n // convert snake, camel and pascal cases to kebab case\n return isString(str)\n ? str\n .replace(/(_)/g, '-')\n .replace(/[A-Z]/g, (c, i) => (i === 0 ? c : '-' + c.toLowerCase()))\n .toLowerCase()\n : str;\n}\n","import isString from './isString';\n\nexport default function toTokenKey(str: string): string {\n return isString(str) ? str.replace(/[A-Z]/g, (c, i) => (i === 0 ? c : '.' + c.toLowerCase())).toLowerCase() : str;\n}\n"],"mappings":"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","names":[]}