HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode/frontend/node_modules/tailwindcss/lib/util/generateVariantFunction.js
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = generateVariantFunction;

var _lodash = _interopRequireDefault(require("lodash"));

var _postcss = _interopRequireDefault(require("postcss"));

var _postcssSelectorParser = _interopRequireDefault(require("postcss-selector-parser"));

var _useMemo = require("./useMemo");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const classNameParser = (0, _postcssSelectorParser.default)(selectors => {
  return selectors.first.filter(({
    type
  }) => type === 'class').pop().value;
});
const getClassNameFromSelector = (0, _useMemo.useMemo)(selector => classNameParser.transformSync(selector), selector => selector);

function generateVariantFunction(generator, options = {}) {
  return {
    options,
    handler: (container, config) => {
      const cloned = _postcss.default.root({
        nodes: container.clone().nodes
      });

      container.before(_lodash.default.defaultTo(generator({
        container: cloned,
        separator: config.separator,
        modifySelectors: modifierFunction => {
          cloned.each(rule => {
            if (rule.type !== 'rule') {
              return;
            }

            rule.selectors = rule.selectors.map(selector => {
              return modifierFunction({
                get className() {
                  return getClassNameFromSelector(selector);
                },

                selector
              });
            });
          });
          return cloned;
        }
      }), cloned).nodes);
    }
  };
}