bootstrap-vue
Version:
With more than 85 components, over 45 available plugins, several directives, and 1000+ icons, BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4 component and grid system available for Vue.js v2.6, complete with extens
76 lines (62 loc) • 2.53 kB
JavaScript
// String utilities
import {
RX_HYPHENATE,
RX_LOWER_UPPER,
RX_REGEXP_REPLACE,
RX_START_SPACE_WORD,
RX_TRIM_LEFT,
RX_TRIM_RIGHT,
RX_UNDERSCORE,
RX_UN_KEBAB
} from '../constants/regex'
import { isArray, isPlainObject, isString, isUndefinedOrNull } from './inspect'
// --- Utilities ---
// Converts PascalCase or camelCase to kebab-case
export const kebabCase = str => {
return str.replace(RX_HYPHENATE, '-$1').toLowerCase()
}
// Converts a kebab-case or camelCase string to PascalCase
export const pascalCase = str => {
str = kebabCase(str).replace(RX_UN_KEBAB, (_, c) => (c ? c.toUpperCase() : ''))
return str.charAt(0).toUpperCase() + str.slice(1)
}
// Converts a string, including strings in camelCase or snake_case, into Start Case
// It keeps original single quote and hyphen in the word
// https://github.com/UrbanCompass/to-start-case
export const startCase = str =>
str
.replace(RX_UNDERSCORE, ' ')
.replace(RX_LOWER_UPPER, (str, $1, $2) => $1 + ' ' + $2)
.replace(RX_START_SPACE_WORD, (str, $1, $2) => $1 + $2.toUpperCase())
// Lowercases the first letter of a string and returns a new string
export const lowerFirst = str => {
str = isString(str) ? str.trim() : String(str)
return str.charAt(0).toLowerCase() + str.slice(1)
}
// Uppercases the first letter of a string and returns a new string
export const upperFirst = str => {
str = isString(str) ? str.trim() : String(str)
return str.charAt(0).toUpperCase() + str.slice(1)
}
// Escape characters to be used in building a regular expression
export const escapeRegExp = str => str.replace(RX_REGEXP_REPLACE, '\\$&')
// Convert a value to a string that can be rendered
// `undefined`/`null` will be converted to `''`
// Plain objects and arrays will be JSON stringified
export const toString = (val, spaces = 2) => {
return isUndefinedOrNull(val)
? ''
: isArray(val) || (isPlainObject(val) && val.toString === Object.prototype.toString)
? JSON.stringify(val, null, spaces)
: String(val)
}
// Remove leading white space from a string
export const trimLeft = str => toString(str).replace(RX_TRIM_LEFT, '')
// Remove Trailing white space from a string
export const trimRight = str => toString(str).replace(RX_TRIM_RIGHT, '')
// Remove leading and trailing white space from a string
export const trim = str => toString(str).trim()
// Lower case a string
export const lowerCase = str => toString(str).toLowerCase()
// Upper case a string
export const upperCase = str => toString(str).toUpperCase()