File: //proc/1526/cwd/tana/frontend/node_modules/csso/lib/utils/names.js
var hasOwnProperty = Object.prototype.hasOwnProperty;
var knownKeywords = Object.create(null);
var knownProperties = Object.create(null);
function getVendorPrefix(string) {
    if (string[0] === '-') {
        // skip 2 chars to avoid wrong match with variables names
        var secondDashIndex = string.indexOf('-', 2);
        if (secondDashIndex !== -1) {
            return string.substr(0, secondDashIndex + 1);
        }
    }
    return '';
}
function getKeywordInfo(keyword) {
    if (hasOwnProperty.call(knownKeywords, keyword)) {
        return knownKeywords[keyword];
    }
    var lowerCaseKeyword = keyword.toLowerCase();
    var vendor = getVendorPrefix(lowerCaseKeyword);
    var name = lowerCaseKeyword;
    if (vendor) {
        name = name.substr(vendor.length);
    }
    return knownKeywords[keyword] = Object.freeze({
        vendor: vendor,
        prefix: vendor,
        name: name
    });
}
function getPropertyInfo(property) {
    if (hasOwnProperty.call(knownProperties, property)) {
        return knownProperties[property];
    }
    var lowerCaseProperty = property.toLowerCase();
    var hack = lowerCaseProperty[0];
    if (hack === '*' || hack === '_' || hack === '$') {
        lowerCaseProperty = lowerCaseProperty.substr(1);
    } else if (hack === '/' && property[1] === '/') {
        hack = '//';
        lowerCaseProperty = lowerCaseProperty.substr(2);
    } else {
        hack = '';
    }
    var vendor = getVendorPrefix(lowerCaseProperty);
    var name = lowerCaseProperty;
    if (vendor) {
        name = name.substr(vendor.length);
    }
    return knownProperties[property] = Object.freeze({
        hack: hack,
        vendor: vendor,
        prefix: hack + vendor,
        name: name
    });
}
module.exports = {
    keyword: getKeywordInfo,
    property: getPropertyInfo
};