Socket
Socket
Sign inDemoInstall

@zeecoder/postcss-container-query

Package Overview
Dependencies
12
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.5.0 to 2.6.0-alpha.97fec537

yarn-error.log

59

dist/bundle.cjs.js

@@ -1,12 +0,5 @@

'use strict';function _interopDefault(a){return a&&'object'==typeof a&&'default'in a?a['default']:a}var _trim=_interopDefault(require('lodash/trim')),fs=require('fs'),postcss=_interopDefault(require('postcss'));//
'use strict';function _interopDefault(a){return a&&'object'==typeof a&&'default'in a?a['default']:a}var fs=require('fs'),postcss=_interopDefault(require('postcss')),MetaBuilder=_interopDefault(require('@zeecoder/container-query-meta-builder'));//
/**
* Returns the container's selector, or null if no @define-container was found.
*/function detectContainerDefinition(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:!0,c=null,d=a.nodes.length,e=0;for(e;e<d;e++)if('atrule'===a.nodes[e].type&&'define-container'===a.nodes[e].name){c=a.selector;break}return b&&a.nodes.splice(e,1),c}/**
* Extracts conditions as arrays from a single "param" string PostCSS provides
* for at-rules.
*
* @param {string} params
*
* @returns {string[]}
*/function getConditionsFromQueryParams(a){return a.split(',').map(function(a){return a.match(/\(([^\)]*)\)/g).map(function(a){var b=_trim(a,'()');return b=b.match(/([a-z-]*)([ :><=]*)([a-z0-9\.]*)/i),b.shift(),b=b.map(_trim),-1===['landscape','portrait'].indexOf(b[2])&&(b[2]=parseFloat(b[2])),b})})}//
* Checks whether a `@define-container` declaration is present or not.
*/function hasContainerDefinition(a){var b=1<arguments.length&&arguments[1]!==void 0?arguments[1]:!0;if(!a.nodes)return!1;var c=a.nodes.length,d=0;for(d;d<c;d++)if('atrule'===a.nodes[d].type&&'define-container'===a.nodes[d].name)return b&&a.nodes.splice(d,1),!0;return!1}//
function isValueUsingContainerUnits(a){if('string'!=typeof a)return!1;// Matching numbers followed by characters from the r-units

@@ -30,15 +23,3 @@ var b=a.toLowerCase().match(/(\d+(\.\d+)?)([rwhminax]+)/i);if(!Array.isArray(b)||'string'!=typeof b[3])return!1;var c=b[3];return'rh'===c||'rw'===c||'rmin'===c||'rmax'===c}/**

function extractPropsFromNode(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{isContainer:!1,onlyContainerUnits:!1,stripContainerUnits:!1};if('rule'!==a.type)throw new Error('`ruleNode` must be of type "rule".');if(!1===Array.isArray(a.nodes))return{};for(var c={styles:{},values:{}},d=a.nodes.length,e=0;e<d;e++){var f=a.nodes[e],g=isValueUsingContainerUnits(f.value);if('decl'===f.type&&(!b.onlyContainerUnits||g)){if(b.isContainer&&g){if(('width'===f.prop||'height'===f.prop)&&(-1!==f.value.indexOf('rmin')||-1!==f.value.indexOf('rmax')))throw f.error('Width and height properties on containers cannot use rmin or rmax units.');if('width'===f.prop&&-1!==f.value.indexOf('rw'))throw f.error('Containers cannot use rw for the width property.');if('height'===f.prop&&-1!==f.value.indexOf('rh'))throw f.error('Containers cannot use rh for the height property.')}g?c.values[f.prop]=f.value:c.styles[f.prop]=f.value,b.stripContainerUnits&&g&&(a.nodes.splice(e,1),e--,d--)}}// Getting rid of empty objects
return 0===Object.keys(c.styles).length&&delete c.styles,0===Object.keys(c.values).length&&delete c.values,c}var saveJSON=function(a,b){return new Promise(function(c){var d=JSON.stringify(b),e=a+'.json',f=function(){return fs.writeFile(e,d,function(a){a&&console.error('Failed to save container query json file: '+a),c()})};fs.readFile(e,'utf8',function(a,b){a||b!==d?f():c()})})};/**
* Decides if a node should be processed or not.
* Only processing root-level rules and @container at-rules.
*
* @param {Node} node
* @returns {boolean}
*/function shouldProcessNode(a){return'rule'===a.type&&'root'===a.parent.type||'atrule'===a.type&&'container'===a.name}/**
* Extracts container units with their props from an object.
*
* @param {Node} node
* @param {boolean} isContainer
* @return {Object}
*/function extractContainerUnits(a){var b=1<arguments.length&&arguments[1]!==void 0&&arguments[1];return extractPropsFromNode(a,{isContainer:b,onlyContainerUnits:!0,stripContainerUnits:!0}).values||null}/**
return 0===Object.keys(c.styles).length&&delete c.styles,0===Object.keys(c.values).length&&delete c.values,c}var saveJSON=function(a,b){return new Promise(function(c){var d=JSON.stringify(b),e=a+'.json',f=function(){return fs.writeFile(e,d,function(a){a&&console.error('Failed to save container query json file: '+a),c()})};fs.readFile(e,'utf8',function(a,b){a||b!==d?f():c()})})},isContainerQuery=function(a){return'atrule'===a.type&&'container'===a.name},walkRules=function(a,b,c){var d=[],e=function(a){return-1!==d.indexOf(a)},f=function(a,f){var g=hasContainerDefinition(a)||e(a.selector)||':self'===a.selector||b.singleContainer&&0===d.length,h={rule:a,isContainer:g};g&&!e(a.selector)&&d.push(a.selector),f&&(h.parentCQAtRule=f),c(h)};a.walk(function(a){if('rule'===a.type)f(a);else if('atrule'===a.type){if(!isContainerQuery(a))return;a.nodes.forEach(function(b){'rule'!==b.type||f(b,a)}),a.remove()}})};/**
* @param {{

@@ -48,27 +29,7 @@ * getJSON: function,

* }} options
*/function containerQuery(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},b=a.getJSON||saveJSON,c=!1!==a.singleContainer;return function(a){var d={},e=null,f=function(a){if(null==e)throw a.error('Missing @define-container declaration before the processed node.')},g=function(a){var b=j(a),c=extractContainerUnits(a,b);// First check if container unites are used or not
if(null!==c){f(a),(!d[e].queries[0]||d[e].queries[0].conditions)&&d[e].queries.unshift({elements:[]});for(var g=null,h=d[e].queries[0].elements.length,k=0;k<h;k++)if(d[e].queries[0].elements[k].selector===a.selector){g=d[e].queries[0].elements[k];break}null===g&&(g={selector:a.selector,values:{}},d[e].queries[0].elements.push(g)),Object.assign(g.values,c)}// The query at the 0 index is the default query, without conditions
// Fetch a previously added element data based on the selector, or
// create a new one
},h=function(a){var b=j(a),c={selector:a.selector},d=extractPropsFromNode(a,{isContainer:b});return d.styles||d.values?(Object.assign(c,d),c):null},j=function(a){return e===a.selector},i=function(a){e=a,d[a]={selector:a,queries:[]}};/**
* Any node under "root" could potentially have container units in them.
* Add such nodes to the default query. (One without conditions which
* means it'll always apply)
*
* @return {Node}
*//**
* Processing a rule node under a container query.
*
* @param {Node} node
* @returns {null|Object}
*//**
* Returns true if the node's selector is the same as the currently
* processed container's.
*
* @param {Node} node
* @return {boolean}
*/a.walk(function(/** Node */a){if(shouldProcessNode(a))if('rule'===a.type){!e&&c&&i(a.selector);// Check if there's a new container declared in the rule node
var b=detectContainerDefinition(a);if(null!==b)// Throw if in singleContainer mode this container is
// defined with a different selector
if(!c)i(b);else if(e!==b)throw a.error('define-container declaration detected in singleContainer mode. Tried to override "'+e+'" with "'+b+'".');// Process potential container unit usages to the default query
g(a)}else{f(a);var j={conditions:getConditionsFromQueryParams(a.params),elements:[]};a.nodes.forEach(function(a){if('rule'===a.type){var b=h(a);null!==b&&j.elements.push(b)}}),0<j.elements.length&&d[e].queries.push(j),a.remove()}});var k=d;c&&(e?k=d[e]:k={}),b(a.source.input.file,k)}}var containerQuery$1=postcss.plugin('postcss-container-query',containerQuery);module.exports=containerQuery$1;
*/function containerQuery(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},b=a.getJSON||saveJSON,c=!1!==a.singleContainer;return function(a){var d={},e=null;// Map builders to metadata
for(var f in walkRules(a,{singleContainer:c},function(a){var b=a.rule,f=a.isContainer,g=a.parentCQAtRule;if(f&&':self'!==b.selector&&!d[b.selector]){var h=b.selector;if(c&&e)throw b.error('define-container declaration detected in singleContainer mode. Tried to override "'+e+'" with "'+h+'".');// Register new container's meta builder
e=h,d[h]=new MetaBuilder(h)}var i=extractPropsFromNode(b,{isContainer:f,stripContainerUnits:!0});// Only proceed if there are container units to be extracted, or if there
// are styles under a container query at-rule
if(i.values||g&&i.styles){if(!e)throw b.error('Missing @define-container declaration before the processed node.');var j=d[e];if(j.resetQuery().resetDescendant(),g&&j.setQuery(g.params),f||j.setDescendant(b.selector),i.values)// store values only
for(var k in i.values){var l=i.values[k];j.addStyle({prop:k,value:l})}if(g&&i.styles)for(var m in i.styles){var n=i.styles[m];j.addStyle({prop:m,value:n})}}}),d)d[f]=d[f].build();var g=c?e?d[e]:{}:d;b(a.source.input.file,g)}}var containerQuery$1=postcss.plugin('postcss-container-query',containerQuery);module.exports=containerQuery$1;

@@ -6,3 +6,3 @@ {

"license": "MIT",
"version": "2.5.0",
"version": "2.6.0-alpha.97fec537",
"author": "Viktor Hubert <rpgmorpheus@gmail.com>",

@@ -36,2 +36,3 @@ "engines": {

"dependencies": {
"@zeecoder/container-query-meta-builder": "^2.6.0-alpha.97fec537",
"lodash": "^4.17.4",

@@ -38,0 +39,0 @@ "postcss": "^6.0.1"

@@ -6,1 +6,5 @@ # postcss-container-query

Detailed documentation can be found there.
## License
MIT
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc