'use strict';varpostcss=require('postcss');module.exports=postcss.plugin('postcss-zindex',function(opts){opts=opts||{};returnfunction(css){varcache=require('./lib/layerCache')(opts);varnodes=[];varabort=false;// First pass; cache all z indexescss.walkDecls('z-index',function(decl){// Check that no negative values exist. Rebasing is only// safe if all indices are positive numbers.if(decl.value[0]==='-'){abort=true;// Stop PostCSS iterating through the rest of the declsreturnfalse;}nodes.push(decl);cache.addValue(decl.value);});// Abort if we found any negative values// or there are no z-index declarationsif(abort||!nodes.length){return;}cache.optimizeValues();// Second pass; optimizenodes.forEach(function(decl){// Need to coerce to string so that the// AST is updated correctlydecl.value=cache.getValue(decl.value).toString();});};});