UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

84 lines (71 loc) 2.26 kB
"use strict"; var map = require("./iterator").map; var _normalize = function _normalize(text) { if (text === undefined || text === null) { return ""; } return String(text); }; var _upperCaseFirst = function _upperCaseFirst(text) { return _normalize(text).charAt(0).toUpperCase() + text.substr(1); }; var _chop = function _chop(text) { return _normalize(text).replace(/([a-z\d])([A-Z])/g, "$1 $2").split(/[\s_-]+/); }; var dasherize = function dasherize(text) { return map(_chop(text), function (p) { return p.toLowerCase(); }).join("-"); }; var underscore = function underscore(text) { return dasherize(text).replace(/-/g, "_"); }; var camelize = function camelize(text, upperFirst) { return map(_chop(text), function (p, i) { p = p.toLowerCase(); if (upperFirst || i > 0) { p = _upperCaseFirst(p); } return p; }).join(""); }; var humanize = function humanize(text) { return _upperCaseFirst(dasherize(text).replace(/-/g, " ")); }; var titleize = function titleize(text) { return map(_chop(text), function (p) { return _upperCaseFirst(p.toLowerCase()); }).join(" "); }; var DIGIT_CHARS = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]; var captionize = function captionize(name) { var captionList = [], i, char, isPrevCharNewWord = false, isNewWord = false; for (i = 0; i < name.length; i++) { char = name.charAt(i); isNewWord = char === char.toUpperCase() && char !== "-" && char !== ")" || char in DIGIT_CHARS; if (char === "_" || char === ".") { char = " "; isNewWord = true; } else if (i === 0) { char = char.toUpperCase(); isNewWord = true; } else if (!isPrevCharNewWord && isNewWord) { if (captionList.length > 0) { captionList.push(" "); } } captionList.push(char); isPrevCharNewWord = isNewWord; } return captionList.join(""); }; exports.dasherize = dasherize; exports.camelize = camelize; exports.humanize = humanize; exports.titleize = titleize; exports.underscore = underscore; exports.captionize = captionize;