@hxui/angular
Version:
* * *
83 lines • 8.07 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import { latinMap } from './latin-map';
/**
* @param {?} str
* @return {?}
*/
export function latinize(str) {
if (!str) {
return '';
}
return str.replace(/[^A-Za-z0-9\[\] ]/g, function (a) {
return latinMap[a] || a;
});
}
/**
* @param {?} queryToEscape
* @return {?}
*/
export function escapeRegexp(queryToEscape) {
// Regex: capture the whole query string and replace it with the string
// that will be used to match the results, for example if the capture is
// 'a' the result will be \a
return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
}
/* tslint:disable */
/**
* @param {?} str
* @param {?=} wordRegexDelimiters
* @param {?=} phraseRegexDelimiters
* @return {?}
*/
export function tokenize(str, wordRegexDelimiters = ' ', phraseRegexDelimiters = '') {
/* tslint:enable */
/** @type {?} */
const regexStr = '(?:[' + phraseRegexDelimiters + '])([^' + phraseRegexDelimiters + ']+)(?:[' + phraseRegexDelimiters + '])|([^' + wordRegexDelimiters + ']+)';
/** @type {?} */
const preTokenized = str.split(new RegExp(regexStr, 'g'));
/** @type {?} */
const result = [];
/** @type {?} */
const preTokenizedLength = preTokenized.length;
/** @type {?} */
let token;
/** @type {?} */
const replacePhraseDelimiters = new RegExp('[' + phraseRegexDelimiters + ']+', 'g');
for (let i = 0; i < preTokenizedLength; i += 1) {
token = preTokenized[i];
if (token && token.length && token !== wordRegexDelimiters) {
result.push(token.replace(replacePhraseDelimiters, ''));
}
}
return result;
}
/**
* @param {?} object
* @param {?} option
* @return {?}
*/
export function getValueFromObject(object, option) {
if (!option || typeof object !== 'object') {
return object.toString();
}
if (option.endsWith('()')) {
/** @type {?} */
const functionName = option.slice(0, option.length - 2);
return object[functionName]().toString();
}
/** @type {?} */
const properties = option.replace(/\[(\w+)\]/g, '.$1')
.replace(/^\./, '');
/** @type {?} */
const propertiesArray = properties.split('.');
for (const property of propertiesArray) {
if (property in object) {
object = object[property];
}
}
return object.toString();
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLXV0aWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGh4dWkvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi90eXBlYWhlYWQvdHlwZWFoZWFkLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQUV2QyxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVc7SUFDbEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsVUFBVSxDQUFTO1FBQzFELE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxhQUFxQjtJQUNoRCx1RUFBdUU7SUFDdkUsd0VBQXdFO0lBQ3hFLDRCQUE0QjtJQUM1QixPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakUsQ0FBQzs7Ozs7Ozs7QUFHRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVcsRUFBRSxtQkFBbUIsR0FBRyxHQUFHLEVBQUUscUJBQXFCLEdBQUcsRUFBRTs7O1VBRW5GLFFBQVEsR0FBVyxNQUFNLEdBQUcscUJBQXFCLEdBQUcsT0FBTyxHQUFHLHFCQUFxQixHQUFHLFNBQVMsR0FBRyxxQkFBcUIsR0FBRyxRQUFRLEdBQUcsbUJBQW1CLEdBQUcsS0FBSzs7VUFDaEssWUFBWSxHQUFhLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDOztVQUM3RCxNQUFNLEdBQWEsRUFBRTs7VUFDckIsa0JBQWtCLEdBQVcsWUFBWSxDQUFDLE1BQU07O1FBQ2xELEtBQWE7O1VBQ1gsdUJBQXVCLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxHQUFHLHFCQUFxQixHQUFHLElBQUksRUFBRSxHQUFHLENBQUM7SUFFbkYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDOUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssS0FBSyxtQkFBbUIsRUFBRTtZQUMxRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN6RDtLQUNGO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQVcsRUFBRSxNQUFjO0lBQzVELElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQzFCO0lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFOztjQUNuQixZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDdkQsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUMxQzs7VUFFSyxVQUFVLEdBQVcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDO1NBQzNELE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDOztVQUNmLGVBQWUsR0FBYSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUV2RCxLQUFLLE1BQU0sUUFBUSxJQUFJLGVBQWUsRUFBRTtRQUN0QyxJQUFJLFFBQVEsSUFBSSxNQUFNLEVBQUU7WUFDdEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMzQjtLQUNGO0lBQ0QsT0FBTyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxhdGluTWFwIH0gZnJvbSAnLi9sYXRpbi1tYXAnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxhdGluaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICBpZiAoIXN0cikge1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICByZXR1cm4gc3RyLnJlcGxhY2UoL1teQS1aYS16MC05XFxbXFxdIF0vZywgZnVuY3Rpb24gKGE6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gbGF0aW5NYXBbYV0gfHwgYTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVJlZ2V4cChxdWVyeVRvRXNjYXBlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIC8vIFJlZ2V4OiBjYXB0dXJlIHRoZSB3aG9sZSBxdWVyeSBzdHJpbmcgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgc3RyaW5nXHJcbiAgLy8gdGhhdCB3aWxsIGJlIHVzZWQgdG8gbWF0Y2ggdGhlIHJlc3VsdHMsIGZvciBleGFtcGxlIGlmIHRoZSBjYXB0dXJlIGlzXHJcbiAgLy8gJ2EnIHRoZSByZXN1bHQgd2lsbCBiZSBcXGFcclxuICByZXR1cm4gcXVlcnlUb0VzY2FwZS5yZXBsYWNlKC8oWy4/KiteJFtcXF1cXFxcKCl7fXwtXSkvZywgJ1xcXFwkMScpO1xyXG59XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5pemUoc3RyOiBzdHJpbmcsIHdvcmRSZWdleERlbGltaXRlcnMgPSAnICcsIHBocmFzZVJlZ2V4RGVsaW1pdGVycyA9ICcnKTogQXJyYXk8c3RyaW5nPiB7XHJcbiAgLyogdHNsaW50OmVuYWJsZSAqL1xyXG4gIGNvbnN0IHJlZ2V4U3RyOiBzdHJpbmcgPSAnKD86WycgKyBwaHJhc2VSZWdleERlbGltaXRlcnMgKyAnXSkoW14nICsgcGhyYXNlUmVnZXhEZWxpbWl0ZXJzICsgJ10rKSg/OlsnICsgcGhyYXNlUmVnZXhEZWxpbWl0ZXJzICsgJ10pfChbXicgKyB3b3JkUmVnZXhEZWxpbWl0ZXJzICsgJ10rKSc7XHJcbiAgY29uc3QgcHJlVG9rZW5pemVkOiBzdHJpbmdbXSA9IHN0ci5zcGxpdChuZXcgUmVnRXhwKHJlZ2V4U3RyLCAnZycpKTtcclxuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XHJcbiAgY29uc3QgcHJlVG9rZW5pemVkTGVuZ3RoOiBudW1iZXIgPSBwcmVUb2tlbml6ZWQubGVuZ3RoO1xyXG4gIGxldCB0b2tlbjogc3RyaW5nO1xyXG4gIGNvbnN0IHJlcGxhY2VQaHJhc2VEZWxpbWl0ZXJzID0gbmV3IFJlZ0V4cCgnWycgKyBwaHJhc2VSZWdleERlbGltaXRlcnMgKyAnXSsnLCAnZycpO1xyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHByZVRva2VuaXplZExlbmd0aDsgaSArPSAxKSB7XHJcbiAgICB0b2tlbiA9IHByZVRva2VuaXplZFtpXTtcclxuICAgIGlmICh0b2tlbiAmJiB0b2tlbi5sZW5ndGggJiYgdG9rZW4gIT09IHdvcmRSZWdleERlbGltaXRlcnMpIHtcclxuICAgICAgcmVzdWx0LnB1c2godG9rZW4ucmVwbGFjZShyZXBsYWNlUGhyYXNlRGVsaW1pdGVycywgJycpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3Qob2JqZWN0OiBhbnksIG9wdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICBpZiAoIW9wdGlvbiB8fCB0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0Jykge1xyXG4gICAgcmV0dXJuIG9iamVjdC50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgaWYgKG9wdGlvbi5lbmRzV2l0aCgnKCknKSkge1xyXG4gICAgY29uc3QgZnVuY3Rpb25OYW1lID0gb3B0aW9uLnNsaWNlKDAsIG9wdGlvbi5sZW5ndGggLSAyKTtcclxuICAgIHJldHVybiBvYmplY3RbZnVuY3Rpb25OYW1lXSgpLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwcm9wZXJ0aWVzOiBzdHJpbmcgPSBvcHRpb24ucmVwbGFjZSgvXFxbKFxcdyspXFxdL2csICcuJDEnKVxyXG4gICAgLnJlcGxhY2UoL15cXC4vLCAnJyk7XHJcbiAgY29uc3QgcHJvcGVydGllc0FycmF5OiBzdHJpbmdbXSA9IHByb3BlcnRpZXMuc3BsaXQoJy4nKTtcclxuXHJcbiAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzQXJyYXkpIHtcclxuICAgIGlmIChwcm9wZXJ0eSBpbiBvYmplY3QpIHtcclxuICAgICAgb2JqZWN0ID0gb2JqZWN0W3Byb3BlcnR5XTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG9iamVjdC50b1N0cmluZygpO1xyXG59XHJcbiJdfQ==