UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 6.23 kB
{"version":3,"file":"helper.mjs","sources":["../../src/utils/helper.ts"],"sourcesContent":["import camelCase from 'lodash/camelCase';\nimport isUndefined from 'lodash/isUndefined';\nimport isNull from 'lodash/isNull';\nimport isArray from 'lodash/isArray';\nimport isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\n\nexport function omit(obj: object, fields: string[]): object {\n const shallowCopy = {\n ...obj,\n };\n for (let i = 0; i < fields.length; i++) {\n const key = fields[i];\n delete shallowCopy[key];\n }\n return shallowCopy;\n}\n\nexport function removeEmptyAttrs<T>(obj: T): Partial<T> {\n const newObj = {};\n\n Object.keys(obj).forEach((key) => {\n if (!isUndefined(obj[key]) || isNull(obj[key])) {\n newObj[key] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function getTabElementByValue(tabs: [] = [], value: string): object {\n const [result] = tabs.filter((item) => {\n const { id } = item;\n return `${id}` === `${value}`;\n });\n return result || null;\n}\n\nexport function firstUpperCase(str: string): string {\n return str.toLowerCase().replace(/( |^)[a-z]/g, (char: string) => char.toUpperCase());\n}\n\nexport type Gradients = { [percent: string]: string };\nexport type FromTo = { from: string; to: string };\nexport type LinearGradient = { direction?: string } & (Gradients | FromTo);\nexport function getBackgroundColor(color: string | string[] | LinearGradient): string {\n if (isString(color)) {\n return color;\n }\n if (isArray(color)) {\n if (color[0] && color[0][0] === '#') {\n color.unshift('90deg');\n }\n return `linear-gradient( ${color.join(',')} )`;\n }\n const { from, to, direction = 'to right', ...rest } = color;\n let keys = Object.keys(rest);\n if (keys.length) {\n keys = keys.sort((a, b) => parseFloat(a.substr(0, a.length - 1)) - parseFloat(b.substr(0, b.length - 1)));\n const tempArr = keys.map((key: any) => `${rest[key]} ${key}`);\n return `linear-gradient(${direction}, ${tempArr.join(',')})`;\n }\n return `linear-gradient(${direction}, ${from}, ${to})`;\n}\n\n// keyboard-event => onKeyboardEvent\nexport function getPropsApiByEvent(eventName: string) {\n return camelCase(`on-${eventName}`);\n}\n\n/**\n * @param str \n * @param maxCharacter \n * @returns \n */\nexport function getCharacterLength(str: string, maxCharacter?: number) {\n const hasMaxCharacter = isNumber(maxCharacter);\n if (!str || str.length === 0) {\n if (hasMaxCharacter) {\n return {\n length: 0,\n characters: str,\n };\n }\n return 0;\n }\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n let currentStringLength = 0;\n if (str.charCodeAt(i) > 127 || str.charCodeAt(i) === 94) {\n currentStringLength = 2;\n } else {\n currentStringLength = 1;\n }\n if (hasMaxCharacter && len + currentStringLength > maxCharacter) {\n return {\n length: len,\n characters: str.slice(0, i),\n };\n }\n len += currentStringLength;\n }\n if (hasMaxCharacter) {\n return {\n length: len,\n characters: str,\n };\n }\n return len;\n}\n\n/**\n * @param param \n * @returns \n */\nexport function pxCompat(param: string | number) {\n return isNumber(param) ? `${param}px` : param;\n}\n"],"names":["isUndefined","isNull","newObj","result","isString","isArray","color","direction","rest","camelCase","isNumber","length","characters","currentStringLength","len"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,SAAA,IAAA,CAAA,GAAA,EAAA,MAAA,EAAA;AACL,EAAA,IAAA,WAAA,GAAA,aAAA,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;AAGA,EAAA,KAAA,IAAA,CAAA,GAAA,CAAA,EAAA,CAAA,GAAA,MAAA,CAAA,MAAA,EAAA,CAAA,EAAA,EAAA;AACE,IAAA,IAAA,GAAA,GAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAEF,GAAA;AACO,EAAA,OAAA,WAAA,CAAA;AACT,CAAA;AAEO,SAAA,gBAAA,CAAA,GAAA,EAAA;;;AAIC,IAAA,IAAA,CAAAA,aAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,IAAAC,QAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,EAAA;AACFC,MAAAA,MAAAA,CAAAA,GAAAA,CAAAA,GAAAA,GAAAA,CAAAA,GAAAA,CAAAA,CAAAA;AACF,KAAA;AACF,GAAA,CAAA,CAAA;AAEO,EAAA,OAAA,MAAA,CAAA;AACT,CAAA;AAEO,SAAA,oBAAA,GAAA;AAAoE,EAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,GAAA,CAAA,IAAA,SAAA,CAAA,CAAA,CAAA,KAAA,SAAA,GAAA,SAAA,CAAA,CAAA,CAAA,GAAA,EAAA,CAAA;;;AAEjE,MAAA,IAAA,EAAA,GAAA,IAAA,CAAA,EAAA,CAAA;;AAER,KAAA,CAAA;;AAHOC,IAAAA,MAAAA,GAAAA,aAAAA,CAAAA,CAAAA,CAAAA,CAAAA;;AAKT,CAAA;AAEO,SAAA,cAAA,CAAA,GAAA,EAAA;;AAC4C,IAAA,OAAA,KAAA,CAAA,WAAA,EAAA,CAAA;;AACnD,CAAA;AAKO,SAAA,kBAAA,CAAA,KAAA,EAAA;AACD,EAAA,IAAAC,UAAA,CAAA,KAAA,CAAA,EAAA;AACK,IAAA,OAAA,KAAA,CAAA;AACT,GAAA;AACI,EAAA,IAAAC,SAAA,CAAA,KAAA,CAAA,EAAA;AACF,IAAA,IAAA,KAAA,CAAA,CAAA,CAAA,IAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,GAAA,EAAA;AACEC,MAAAA,KAAAA,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA,CAAAA;AACF,KAAA;AACO,IAAA,OAAA,mBAAA,CAAA,MAAA,CAAA,KAAA,CAAA,IAAA,CAAA,GAAA,CAAA,EAAA,IAAA,CAAA,CAAA;AACT,GAAA;AACA,EAAA,IAAA,IAAA,GAAA,KAAA,CAAA,IAAA;;;AAAkBC,IAAAA,SAAAA,GAAAA,gBAAAA,KAAAA,KAAAA,CAAAA,GAAAA,UAAAA,GAAAA,gBAAAA;AAA2BC,IAAAA,IAAAA,GAAAA,wBAAAA,CAAAA,KAAAA,EAAAA,SAAAA,CAAAA,CAAAA;AACzC,EAAA,IAAA,IAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;;;;;AAGI,IAAA,IAAA,OAAA,GAAA,IAAA,CAAA,GAAA,CAAA,UAAA,GAAA,EAAA;;AAAsD,KAAA,CAAA,CAAA;;AAE9D,GAAA;;AAEF,CAAA;AAGO,SAAA,kBAAA,CAAA,SAAA,EAAA;AACE,EAAA,OAAAC,WAAA,CAAA,KAAA,CAAA,MAAA,CAAA,SAAA,CAAA,CAAA,CAAA;AACT,CAAA;AAOO,SAAA,kBAAA,CAAA,GAAA,EAAA,YAAA,EAAA;AACC,EAAA,IAAA,eAAA,GAAAC,UAAA,CAAA,YAAA,CAAA,CAAA;;AAEJ,IAAA,IAAA,eAAA,EAAA;;AAEIC,QAAAA,MAAAA,EAAAA,CAAAA;AACAC,QAAAA,UAAAA,EAAAA,GAAAA;;AAEJ,KAAA;AACO,IAAA,OAAA,CAAA,CAAA;AACT,GAAA;;AAEA,EAAA,KAAA,IAAA,CAAA,GAAA,CAAA,EAAA,CAAA,GAAA,GAAA,CAAA,MAAA,EAAA,CAAA,EAAA,EAAA;;AAEM,IAAA,IAAA,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA,GAAA,GAAA,IAAA,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA;AACoBC,MAAAA,mBAAAA,GAAAA,CAAAA,CAAAA;AACxB,KAAA,MAAA;AACwBA,MAAAA,mBAAAA,GAAAA,CAAAA,CAAAA;AACxB,KAAA;AACI,IAAA,IAAA,eAAA,IAAA,GAAA,GAAA,mBAAA,GAAA,YAAA,EAAA;;AAEAF,QAAAA,MAAAA,EAAAA,GAAAA;AACAC,QAAAA,UAAAA,EAAAA,GAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA;;AAEJ,KAAA;AACOE,IAAAA,GAAAA,IAAAA,mBAAAA,CAAAA;AACT,GAAA;AACA,EAAA,IAAA,eAAA,EAAA;;AAEIH,MAAAA,MAAAA,EAAAA,GAAAA;AACAC,MAAAA,UAAAA,EAAAA,GAAAA;;AAEJ,GAAA;AACO,EAAA,OAAA,GAAA,CAAA;AACT,CAAA;AAMO,SAAA,QAAA,CAAA,KAAA,EAAA;;AAEP;;;;"}