Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / view-container / styles / _unused / postcss.plugin.js
Size: Mime:
"use strict";

let postcss = require('postcss');

let set = require('lodash/set');

const _require = require('client/styles/theme'),
      desktopOrLarger = _require.desktopOrLarger,
      tabletOrLarger = _require.tabletOrLarger,
      desktopOrSmaller = _require.desktopOrSmaller,
      tabletOrSmaller = _require.tabletOrSmaller,
      phoneOrSmaller = _require.phoneOrSmaller,
      phoneOrLarger = _require.phoneOrLarger;

let obj = {}; // function phoneOrSmaller1(css) {
//   return `@media (max-width: 360px) {
//     ${css}
//   }`
// }
// function phoneOrSmaller(css) {
//   return `@media (max-width: 360px)`
// }
// function phoneOrLarger(css) {
//   return `@media (min-width: 360px)`
// }

module.exports = postcss.plugin('myplugin', function (options) {
  return function (css, result) {
    options = options || {};
    css.walkRules(function (rule, ruleIndex) {
      let selector = rule.selector; // '?'

      let dot = ''; // let dotSelector = selector.replace(/&/gim, '-and-')

      let dotSelector = selector // .split('.')
      // .map((line, index) => {
      // })
      // .replace(/(\.)(?:\S)/g, function(substring, ...args) {
      //   console.log({ args, substring })
      // })
      // .replace(/[a-bA-B0-9]\.[a-bA-B0-9]/, function(substring, ...args) {
      //   console.log({ args, substring })
      // })
      .replace(/\.\s/gim, dot).replace(/\./gim, ' ').replace(/\s+/gim, '.'); // .replace(/\.\./gim, '')
      // replace first dot if it exists

      dotSelector = dotSelector.charAt(0) === '.' ? dotSelector.replace('.', '') : dotSelector; // log.bold(dotSelector).echo()

      let ruleObj = {
        selector,
        rules: {} // rules: [],

      };
      rule.walkDecls(function (decl, declarationIndex) {
        decl.value = decl.value.replace('@phone-or-smaller()', phoneOrSmaller());
        decl.value = decl.value.replace('@phone-or-larger()', phoneOrLarger());
        decl.value = decl.value.replace('@tablet-or-smaller()', tabletOrSmaller());
        decl.value = decl.value.replace('@tablet-or-larger()', tabletOrLarger());
        decl.value = decl.value.replace('@desktop-or-smaller()', desktopOrSmaller());
        decl.value = decl.value.replace('@desktop-or-larger()', desktopOrLarger());
        decl.value = decl.value.replace('@supersize-or-larger()', desktopOrLarger());
        let value = decl.value,
            prop = decl.prop; // log.quick(decl)
        // ruleObj.rules.push({
        //   [prop]: value,
        // })

        ruleObj.rules[prop] = value;
      });
      set(obj, dotSelector, ruleObj.rules);
    }); // console.log(JSON.stringify(obj, null, 2))
    // log.quick(obj)
    // log.prettyobj(obj).echo()
    // log.json(obj).echo()
    // log.fmtobj(obj).echo()
  };
});