�PNG  IHDR��;���IDATx��ܻn�0���K�� �)(�pA��� ���7�LeG{�� �§㻢|��ذaÆ 6lذaÆ 6lذaÆ 6lom��$^�y���ذag�5bÆ 6lذaÆ 6lذa{���� 6lذaÆ �`����}H�Fkm�,�m����Ӫ���ô�ô!� �x�|'ܢ˟;�E:���9�&ᶒ�}�{�v]�n&�6� �h��_��t�ڠ͵-ҫ���Z;��Z$�.�P���k�ž)�!��o���>}l�eQfJ�T��u і���چ��\��X=8��Rن4`Vw�l�>����n�G�^��i�s��"ms�$�u��i��?w�bs[m�6�K4���O���.�4��%����/����b�C%��t ��M�ז� �-l�G6�mrz2���s�%�9��s@���-�k�9�=���)������k�B5����\��+͂�Zsٲ ��Rn��~G���R���C����� �wIcI��n7jJ���hۛNCS|���j0��8y�iHKֶۛ�k�Ɉ+;Sz������L/��F�*\��Ԕ�#"5��m�2��[S��������=�g��n�a�P�e�ғ�L�� lذaÆ 6l�^k��̱aÆ 6lذaÆ 6lذa;���� �_��ذaÆ 6lذaÆ 6lذaÆ ���R���IEND�B` let Prefixer = require('./prefixer') let OldValue = require('./old-value') let vendor = require('./vendor') let utils = require('./utils') class Value extends Prefixer { /** * Clone decl for each prefixed values */ static save(prefixes, decl) { let prop = decl.prop let result = [] for (let prefix in decl._autoprefixerValues) { let value = decl._autoprefixerValues[prefix] if (value === decl.value) { continue } let item let propPrefix = vendor.prefix(prop) if (propPrefix === '-pie-') { continue } if (propPrefix === prefix) { item = decl.value = value result.push(item) continue } let prefixed = prefixes.prefixed(prop, prefix) let rule = decl.parent if (!rule.every(i => i.prop !== prefixed)) { result.push(item) continue } let trimmed = value.replace(/\s+/, ' ') let already = rule.some( i => i.prop === decl.prop && i.value.replace(/\s+/, ' ') === trimmed ) if (already) { result.push(item) continue } let cloned = this.clone(decl, { value }) item = decl.parent.insertBefore(decl, cloned) result.push(item) } return result } /** * Is declaration need to be prefixed */ check(decl) { let value = decl.value if (!value.includes(this.name)) { return false } return !!value.match(this.regexp()) } /** * Lazy regexp loading */ regexp() { return this.regexpCache || (this.regexpCache = utils.regexp(this.name)) } /** * Add prefix to values in string */ replace(string, prefix) { return string.replace(this.regexp(), `$1${prefix}$2`) } /** * Get value with comments if it was not changed */ value(decl) { if (decl.raws.value && decl.raws.value.value === decl.value) { return decl.raws.value.raw } else { return decl.value } } /** * Save values with next prefixed token */ add(decl, prefix) { if (!decl._autoprefixerValues) { decl._autoprefixerValues = {} } let value = decl._autoprefixerValues[prefix] || this.value(decl) let before do { before = value value = this.replace(value, prefix) if (value === false) return } while (value !== before) decl._autoprefixerValues[prefix] = value } /** * Return function to fast find prefixed value */ old(prefix) { return new OldValue(this.name, prefix + this.name) } } module.exports = Value