1234567891011121314151617181920212223242526272829303132 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports["default"] = _default;
- /**
- * Check whether a selector has an interpolating ampersand
- * An "interpolating ampersand" is an "&" used to interpolate within another
- * simple selector (e.g. `&-modifier`), rather than an "&" that stands
- * on its own as a simple selector (e.g. `& .child`)
- *
- * @param {string} selector
- * @return {boolean} If `true`, the selector has an interpolating ampersand
- */
- function _default(selector) {
- for (var i = 0; i < selector.length; i++) {
- if (selector[i] !== "&") {
- continue;
- }
- if (selector[i - 1] !== undefined && !isCombinator(selector[i - 1])) {
- return true;
- }
- if (selector[i + 1] !== undefined && !isCombinator(selector[i + 1])) {
- return true;
- }
- }
- return false;
- }
- function isCombinator(x) {
- return /[\s+>~]/.test(x);
- }
|