| 1 | "use strict";
|
|---|
| 2 |
|
|---|
| 3 | exports.__esModule = true;
|
|---|
| 4 | exports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;
|
|---|
| 5 | exports.isContainer = isContainer;
|
|---|
| 6 | exports.isIdentifier = void 0;
|
|---|
| 7 | exports.isNamespace = isNamespace;
|
|---|
| 8 | exports.isNesting = void 0;
|
|---|
| 9 | exports.isNode = isNode;
|
|---|
| 10 | exports.isPseudo = void 0;
|
|---|
| 11 | exports.isPseudoClass = isPseudoClass;
|
|---|
| 12 | exports.isPseudoElement = isPseudoElement;
|
|---|
| 13 | exports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = void 0;
|
|---|
| 14 | var _types = require("./types");
|
|---|
| 15 | var _IS_TYPE;
|
|---|
| 16 | var IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE);
|
|---|
| 17 | function isNode(node) {
|
|---|
| 18 | return typeof node === "object" && IS_TYPE[node.type];
|
|---|
| 19 | }
|
|---|
| 20 | function isNodeType(type, node) {
|
|---|
| 21 | return isNode(node) && node.type === type;
|
|---|
| 22 | }
|
|---|
| 23 | var isAttribute = isNodeType.bind(null, _types.ATTRIBUTE);
|
|---|
| 24 | exports.isAttribute = isAttribute;
|
|---|
| 25 | var isClassName = isNodeType.bind(null, _types.CLASS);
|
|---|
| 26 | exports.isClassName = isClassName;
|
|---|
| 27 | var isCombinator = isNodeType.bind(null, _types.COMBINATOR);
|
|---|
| 28 | exports.isCombinator = isCombinator;
|
|---|
| 29 | var isComment = isNodeType.bind(null, _types.COMMENT);
|
|---|
| 30 | exports.isComment = isComment;
|
|---|
| 31 | var isIdentifier = isNodeType.bind(null, _types.ID);
|
|---|
| 32 | exports.isIdentifier = isIdentifier;
|
|---|
| 33 | var isNesting = isNodeType.bind(null, _types.NESTING);
|
|---|
| 34 | exports.isNesting = isNesting;
|
|---|
| 35 | var isPseudo = isNodeType.bind(null, _types.PSEUDO);
|
|---|
| 36 | exports.isPseudo = isPseudo;
|
|---|
| 37 | var isRoot = isNodeType.bind(null, _types.ROOT);
|
|---|
| 38 | exports.isRoot = isRoot;
|
|---|
| 39 | var isSelector = isNodeType.bind(null, _types.SELECTOR);
|
|---|
| 40 | exports.isSelector = isSelector;
|
|---|
| 41 | var isString = isNodeType.bind(null, _types.STRING);
|
|---|
| 42 | exports.isString = isString;
|
|---|
| 43 | var isTag = isNodeType.bind(null, _types.TAG);
|
|---|
| 44 | exports.isTag = isTag;
|
|---|
| 45 | var isUniversal = isNodeType.bind(null, _types.UNIVERSAL);
|
|---|
| 46 | exports.isUniversal = isUniversal;
|
|---|
| 47 | function isPseudoElement(node) {
|
|---|
| 48 | return isPseudo(node) && node.value && (node.value.startsWith("::") || node.value.toLowerCase() === ":before" || node.value.toLowerCase() === ":after" || node.value.toLowerCase() === ":first-letter" || node.value.toLowerCase() === ":first-line");
|
|---|
| 49 | }
|
|---|
| 50 | function isPseudoClass(node) {
|
|---|
| 51 | return isPseudo(node) && !isPseudoElement(node);
|
|---|
| 52 | }
|
|---|
| 53 | function isContainer(node) {
|
|---|
| 54 | return !!(isNode(node) && node.walk);
|
|---|
| 55 | }
|
|---|
| 56 | function isNamespace(node) {
|
|---|
| 57 | return isAttribute(node) || isTag(node);
|
|---|
| 58 | } |
|---|