"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var selectorPropertyBase_1 = require("../selectorPropertyBase"); exports.SelectorValidator = { attribute: function (selector) { return selector.length !== 0; }, camelCase: function (selector) { return /^[a-zA-Z0-9\[\]]+$/.test(selector); }, element: function (selector) { return selector !== null; }, kebabCase: function (selector) { return /^[a-z0-9\-]+\-[a-z0-9\-]+$/.test(selector); }, prefix: function (prefix, selectorStyle) { var regex = new RegExp("^\\[?(" + prefix + ")"); return function (selector) { if (!prefix) return true; if (!regex.test(selector)) return false; var suffix = selector.replace(regex, ''); if (selectorStyle === selectorPropertyBase_1.OPTION_STYLE_CAMEL_CASE) { return !suffix || suffix[0] === suffix[0].toUpperCase(); } else if (selectorStyle === selectorPropertyBase_1.OPTION_STYLE_KEBAB_CASE) { return !suffix || suffix[0] === '-'; } throw Error('Invalid selector style!'); }; } };