Security upgrades
This commit is contained in:
8
node_modules/css-vendor/LICENSE
generated
vendored
Normal file
8
node_modules/css-vendor/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
The MIT License (MIT)
|
||||
Copyright (c) 2014-present Oleg Slobodskoi
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
154
node_modules/css-vendor/changelog.md
generated
vendored
Normal file
154
node_modules/css-vendor/changelog.md
generated
vendored
Normal file
@@ -0,0 +1,154 @@
|
||||
## 2.0.7 / 2019-10-04
|
||||
|
||||
- Return parameters for transition/transition-property without prefix if they don't need to be prefixed
|
||||
- Update dependencies
|
||||
|
||||
## 2.0.6 / 2019-08-15
|
||||
|
||||
- Freed from prefixing values when content property used
|
||||
- Update dependencies
|
||||
|
||||
## 2.0.5 / 2019-06-20
|
||||
|
||||
- Freed from prefixing values with custom CSS variables for transition/transition-property properties
|
||||
|
||||
## 2.0.4 / 2019-06-15
|
||||
|
||||
- Fixed server compatibility
|
||||
|
||||
## 2.0.3 / 2019-06-15
|
||||
|
||||
- Added support for text-orientation property
|
||||
- Removed support for text-decoration-skip-ink property
|
||||
- Exempt properties which starts from '-' (already prefixed properties) or '--' (custom CSS variables) from prefixing
|
||||
- Update dependencies
|
||||
|
||||
## 2.0.2 / 2019-04-08
|
||||
|
||||
- Fix prefix for backdrop-filter on Edge 17/18
|
||||
|
||||
## 2.0.1 / 2019-03-21
|
||||
|
||||
- Fix prefixing values
|
||||
- Update dependencies
|
||||
|
||||
## 2.0.0 / 2019-02-11
|
||||
|
||||
- Remove default exports
|
||||
|
||||
## 1.2.1 / 2019-02-11
|
||||
|
||||
- Fix prefixing flex value for IE 10
|
||||
- Workaround esm with default export
|
||||
|
||||
## 1.2.0 / 2019-02-10
|
||||
|
||||
- Support for inline props syntax. e.g. border-inline-end, margin-inline-start
|
||||
- Support place-self
|
||||
- Support text-decoration-skip-ink
|
||||
- Bundle with rollup
|
||||
- Add prettier
|
||||
|
||||
## 1.1.0 / 2018-07-08
|
||||
|
||||
- Added supportedKeyframes function, to prefix @keyframes at-rule
|
||||
|
||||
## 1.0.4 / 2018-07-04
|
||||
|
||||
- Fix for dashed property values
|
||||
|
||||
## 1.0.3 / 2018-02-15
|
||||
|
||||
- Fixed functions in values
|
||||
|
||||
## 1.0.2 / 2018-01-22
|
||||
|
||||
- Catch errors when testing a property
|
||||
|
||||
## 1.0.1 / 2018-01-15
|
||||
|
||||
- Fix Number.isNaN
|
||||
|
||||
## 1.0.0 / 2018-01-02
|
||||
|
||||
- Added support for various properties for old browsers, undetectable with feature tests:
|
||||
- appearance
|
||||
- break-*
|
||||
- clip-path
|
||||
- filter
|
||||
- flex
|
||||
- (border|margin|padding)-inline
|
||||
- mask-*
|
||||
- scroll-snap
|
||||
- transform
|
||||
- transition
|
||||
- writing-mode
|
||||
- Use autoprefixer data to generate tests for full compatibility.
|
||||
|
||||
## 0.3.8 / 2016-11-17
|
||||
|
||||
- better cache prefill
|
||||
- fix supportedValue
|
||||
- migrate tests
|
||||
- introduce browserstack config and travis
|
||||
|
||||
## 0.3.7 / 2016-10-31
|
||||
|
||||
- use cross-env
|
||||
- use is-in-browser
|
||||
|
||||
## 0.3.6 / 2016-10-17
|
||||
|
||||
- cheeck webkit prefix as last, because other browsers use it as well
|
||||
- update deps
|
||||
|
||||
## 0.3.5 / 2016-08-23
|
||||
|
||||
- better browser env detection
|
||||
- update deps
|
||||
|
||||
## 0.3.4 / 2016-06-15
|
||||
|
||||
- catch IE exceptions when feature testing a value
|
||||
|
||||
## 0.3.3 / 2015-04-13
|
||||
|
||||
- do nothing server-side
|
||||
|
||||
## 0.3.2 / 2015-03-24
|
||||
|
||||
- update babel, lint
|
||||
|
||||
## 0.3.1 / 2015-10-21
|
||||
|
||||
- release package with lib dir
|
||||
|
||||
## 0.3.0 / 2015-10-21
|
||||
|
||||
- migrate to ES6 with babel
|
||||
- remove bower.json
|
||||
- simplify packaging
|
||||
|
||||
## 0.2.5 / 2014-22-09
|
||||
|
||||
- make it requirable serverside
|
||||
|
||||
## 0.2.4 / 2014-21-09
|
||||
|
||||
- make it requirable serverside
|
||||
|
||||
## 0.2.3 / 2014-02-08
|
||||
|
||||
- don't make feature tests for values like '10px'
|
||||
|
||||
## 0.2.2 / 2014-02-08
|
||||
|
||||
- slightly change the api - now always return the corrected value, even if prefix is not needed
|
||||
|
||||
## 0.2.0 / 2014-02-07
|
||||
|
||||
- add supported value feature test
|
||||
|
||||
## 0.1.0 / 2014-11-29
|
||||
|
||||
- first release in a separate repository for plugins
|
||||
582
node_modules/css-vendor/dist/css-vendor.cjs.js
generated
vendored
Normal file
582
node_modules/css-vendor/dist/css-vendor.cjs.js
generated
vendored
Normal file
@@ -0,0 +1,582 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
||||
|
||||
var isInBrowser = _interopDefault(require('is-in-browser'));
|
||||
var _toConsumableArray = _interopDefault(require('@babel/runtime/helpers/toConsumableArray'));
|
||||
|
||||
// Export javascript style and css style vendor prefixes.
|
||||
var js = '';
|
||||
var css = '';
|
||||
var vendor = '';
|
||||
var browser = '';
|
||||
var isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.
|
||||
|
||||
if (isInBrowser) {
|
||||
// Order matters. We need to check Webkit the last one because
|
||||
// other vendors use to add Webkit prefixes to some properties
|
||||
var jsCssMap = {
|
||||
Moz: '-moz-',
|
||||
ms: '-ms-',
|
||||
O: '-o-',
|
||||
Webkit: '-webkit-'
|
||||
};
|
||||
|
||||
var _document$createEleme = document.createElement('p'),
|
||||
style = _document$createEleme.style;
|
||||
|
||||
var testProp = 'Transform';
|
||||
|
||||
for (var key in jsCssMap) {
|
||||
if (key + testProp in style) {
|
||||
js = key;
|
||||
css = jsCssMap[key];
|
||||
break;
|
||||
}
|
||||
} // Correctly detect the Edge browser.
|
||||
|
||||
|
||||
if (js === 'Webkit' && 'msHyphens' in style) {
|
||||
js = 'ms';
|
||||
css = jsCssMap.ms;
|
||||
browser = 'edge';
|
||||
} // Correctly detect the Safari browser.
|
||||
|
||||
|
||||
if (js === 'Webkit' && '-apple-trailing-word' in style) {
|
||||
vendor = 'apple';
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Vendor prefix string for the current browser.
|
||||
*
|
||||
* @type {{js: String, css: String, vendor: String, browser: String}}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
|
||||
var prefix = {
|
||||
js: js,
|
||||
css: css,
|
||||
vendor: vendor,
|
||||
browser: browser,
|
||||
isTouch: isTouch
|
||||
};
|
||||
|
||||
/**
|
||||
* Test if a keyframe at-rule should be prefixed or not
|
||||
*
|
||||
* @param {String} vendor prefix string for the current browser.
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function supportedKeyframes(key) {
|
||||
// Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'
|
||||
if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.
|
||||
// https://caniuse.com/#search=keyframes
|
||||
|
||||
if (prefix.js === 'ms') return key;
|
||||
return "@" + prefix.css + "keyframes" + key.substr(10);
|
||||
}
|
||||
|
||||
// https://caniuse.com/#search=appearance
|
||||
|
||||
var appearence = {
|
||||
noPrefill: ['appearance'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'appearance') return false;
|
||||
if (prefix.js === 'ms') return "-webkit-" + prop;
|
||||
return prefix.css + prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=color-adjust
|
||||
|
||||
var colorAdjust = {
|
||||
noPrefill: ['color-adjust'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'color-adjust') return false;
|
||||
if (prefix.js === 'Webkit') return prefix.css + "print-" + prop;
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
var regExp = /[-\s]+(.)?/g;
|
||||
/**
|
||||
* Replaces the letter with the capital letter
|
||||
*
|
||||
* @param {String} match
|
||||
* @param {String} c
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function toUpper(match, c) {
|
||||
return c ? c.toUpperCase() : '';
|
||||
}
|
||||
/**
|
||||
* Convert dash separated strings to camel-cased.
|
||||
*
|
||||
* @param {String} str
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
|
||||
function camelize(str) {
|
||||
return str.replace(regExp, toUpper);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert dash separated strings to pascal cased.
|
||||
*
|
||||
* @param {String} str
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function pascalize(str) {
|
||||
return camelize("-" + str);
|
||||
}
|
||||
|
||||
// but we can use a longhand property instead.
|
||||
// https://caniuse.com/#search=mask
|
||||
|
||||
var mask = {
|
||||
noPrefill: ['mask'],
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
if (!/^mask/.test(prop)) return false;
|
||||
|
||||
if (prefix.js === 'Webkit') {
|
||||
var longhand = 'mask-image';
|
||||
|
||||
if (camelize(longhand) in style) {
|
||||
return prop;
|
||||
}
|
||||
|
||||
if (prefix.js + pascalize(longhand) in style) {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=text-orientation
|
||||
|
||||
var textOrientation = {
|
||||
noPrefill: ['text-orientation'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'text-orientation') return false;
|
||||
|
||||
if (prefix.vendor === 'apple' && !prefix.isTouch) {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=transform
|
||||
|
||||
var transform = {
|
||||
noPrefill: ['transform'],
|
||||
supportedProperty: function supportedProperty(prop, style, options) {
|
||||
if (prop !== 'transform') return false;
|
||||
|
||||
if (options.transform) {
|
||||
return prop;
|
||||
}
|
||||
|
||||
return prefix.css + prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=transition
|
||||
|
||||
var transition = {
|
||||
noPrefill: ['transition'],
|
||||
supportedProperty: function supportedProperty(prop, style, options) {
|
||||
if (prop !== 'transition') return false;
|
||||
|
||||
if (options.transition) {
|
||||
return prop;
|
||||
}
|
||||
|
||||
return prefix.css + prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=writing-mode
|
||||
|
||||
var writingMode = {
|
||||
noPrefill: ['writing-mode'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'writing-mode') return false;
|
||||
|
||||
if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=user-select
|
||||
|
||||
var userSelect = {
|
||||
noPrefill: ['user-select'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'user-select') return false;
|
||||
|
||||
if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=multicolumn
|
||||
// https://github.com/postcss/autoprefixer/issues/491
|
||||
// https://github.com/postcss/autoprefixer/issues/177
|
||||
|
||||
var breakPropsOld = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
if (!/^break-/.test(prop)) return false;
|
||||
|
||||
if (prefix.js === 'Webkit') {
|
||||
var jsProp = "WebkitColumn" + pascalize(prop);
|
||||
return jsProp in style ? prefix.css + "column-" + prop : false;
|
||||
}
|
||||
|
||||
if (prefix.js === 'Moz') {
|
||||
var _jsProp = "page" + pascalize(prop);
|
||||
|
||||
return _jsProp in style ? "page-" + prop : false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// See https://github.com/postcss/autoprefixer/issues/324.
|
||||
|
||||
var inlineLogicalOld = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
if (!/^(border|margin|padding)-inline/.test(prop)) return false;
|
||||
if (prefix.js === 'Moz') return prop;
|
||||
var newProp = prop.replace('-inline', '');
|
||||
return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
|
||||
}
|
||||
};
|
||||
|
||||
// Camelization is required because we can't test using.
|
||||
// CSS syntax for e.g. in FF.
|
||||
|
||||
var unprefixed = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
return camelize(prop) in style ? prop : false;
|
||||
}
|
||||
};
|
||||
|
||||
var prefixed = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.
|
||||
|
||||
if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.
|
||||
|
||||
if (prop[0] === '-' && prop[1] === '-') return prop;
|
||||
if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.
|
||||
|
||||
if (prefix.js !== 'Webkit' && "Webkit" + pascalized in style) return "-webkit-" + prop;
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=scroll-snap
|
||||
|
||||
var scrollSnap = {
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop.substring(0, 11) !== 'scroll-snap') return false;
|
||||
|
||||
if (prefix.js === 'ms') {
|
||||
return "" + prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=overscroll-behavior
|
||||
|
||||
var overscrollBehavior = {
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'overscroll-behavior') return false;
|
||||
|
||||
if (prefix.js === 'ms') {
|
||||
return prefix.css + "scroll-chaining";
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
var propMap = {
|
||||
'flex-grow': 'flex-positive',
|
||||
'flex-shrink': 'flex-negative',
|
||||
'flex-basis': 'flex-preferred-size',
|
||||
'justify-content': 'flex-pack',
|
||||
order: 'flex-order',
|
||||
'align-items': 'flex-align',
|
||||
'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.
|
||||
|
||||
}; // Support old flex spec from 2012.
|
||||
|
||||
var flex2012 = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
var newProp = propMap[prop];
|
||||
if (!newProp) return false;
|
||||
return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
|
||||
}
|
||||
};
|
||||
|
||||
var propMap$1 = {
|
||||
flex: 'box-flex',
|
||||
'flex-grow': 'box-flex',
|
||||
'flex-direction': ['box-orient', 'box-direction'],
|
||||
order: 'box-ordinal-group',
|
||||
'align-items': 'box-align',
|
||||
'flex-flow': ['box-orient', 'box-direction'],
|
||||
'justify-content': 'box-pack'
|
||||
};
|
||||
var propKeys = Object.keys(propMap$1);
|
||||
|
||||
var prefixCss = function prefixCss(p) {
|
||||
return prefix.css + p;
|
||||
}; // Support old flex spec from 2009.
|
||||
|
||||
|
||||
var flex2009 = {
|
||||
supportedProperty: function supportedProperty(prop, style, _ref) {
|
||||
var multiple = _ref.multiple;
|
||||
|
||||
if (propKeys.indexOf(prop) > -1) {
|
||||
var newProp = propMap$1[prop];
|
||||
|
||||
if (!Array.isArray(newProp)) {
|
||||
return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
|
||||
}
|
||||
|
||||
if (!multiple) return false;
|
||||
|
||||
for (var i = 0; i < newProp.length; i++) {
|
||||
if (!(prefix.js + pascalize(newProp[0]) in style)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return newProp.map(prefixCss);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// plugins = [
|
||||
// ...plugins,
|
||||
// breakPropsOld,
|
||||
// inlineLogicalOld,
|
||||
// unprefixed,
|
||||
// prefixed,
|
||||
// scrollSnap,
|
||||
// flex2012,
|
||||
// flex2009
|
||||
// ]
|
||||
// Plugins without 'noPrefill' value, going last.
|
||||
// 'flex-*' plugins should be at the bottom.
|
||||
// 'flex2009' going after 'flex2012'.
|
||||
// 'prefixed' going after 'unprefixed'
|
||||
|
||||
var plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];
|
||||
var propertyDetectors = plugins.filter(function (p) {
|
||||
return p.supportedProperty;
|
||||
}).map(function (p) {
|
||||
return p.supportedProperty;
|
||||
});
|
||||
var noPrefill = plugins.filter(function (p) {
|
||||
return p.noPrefill;
|
||||
}).reduce(function (a, p) {
|
||||
a.push.apply(a, _toConsumableArray(p.noPrefill));
|
||||
return a;
|
||||
}, []);
|
||||
|
||||
var el;
|
||||
var cache = {};
|
||||
|
||||
if (isInBrowser) {
|
||||
el = document.createElement('p'); // We test every property on vendor prefix requirement.
|
||||
// Once tested, result is cached. It gives us up to 70% perf boost.
|
||||
// http://jsperf.com/element-style-object-access-vs-plain-object
|
||||
//
|
||||
// Prefill cache with known css properties to reduce amount of
|
||||
// properties we need to feature test at runtime.
|
||||
// http://davidwalsh.name/vendor-prefix
|
||||
|
||||
var computed = window.getComputedStyle(document.documentElement, '');
|
||||
|
||||
for (var key$1 in computed) {
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];
|
||||
} // Properties that cannot be correctly detected using the
|
||||
// cache prefill method.
|
||||
|
||||
|
||||
noPrefill.forEach(function (x) {
|
||||
return delete cache[x];
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Test if a property is supported, returns supported property with vendor
|
||||
* prefix if required. Returns `false` if not supported.
|
||||
*
|
||||
* @param {String} prop dash separated
|
||||
* @param {Object} [options]
|
||||
* @return {String|Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
|
||||
function supportedProperty(prop, options) {
|
||||
if (options === void 0) {
|
||||
options = {};
|
||||
}
|
||||
|
||||
// For server-side rendering.
|
||||
if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.
|
||||
|
||||
if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {
|
||||
return cache[prop];
|
||||
} // Check if 'transition' or 'transform' natively supported in browser.
|
||||
|
||||
|
||||
if (prop === 'transition' || prop === 'transform') {
|
||||
options[prop] = prop in el.style;
|
||||
} // Find a plugin for current prefix property.
|
||||
|
||||
|
||||
for (var i = 0; i < propertyDetectors.length; i++) {
|
||||
cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.
|
||||
|
||||
if (cache[prop]) break;
|
||||
} // Reset styles for current property.
|
||||
// Firefox can even throw an error for invalid properties, e.g., "0".
|
||||
|
||||
|
||||
try {
|
||||
el.style[prop] = '';
|
||||
} catch (err) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return cache[prop];
|
||||
}
|
||||
|
||||
var cache$1 = {};
|
||||
var transitionProperties = {
|
||||
transition: 1,
|
||||
'transition-property': 1,
|
||||
'-webkit-transition': 1,
|
||||
'-webkit-transition-property': 1
|
||||
};
|
||||
var transPropsRegExp = /(^\s*[\w-]+)|, (\s*[\w-]+)(?![^()]*\))/g;
|
||||
var el$1;
|
||||
/**
|
||||
* Returns prefixed value transition/transform if needed.
|
||||
*
|
||||
* @param {String} match
|
||||
* @param {String} p1
|
||||
* @param {String} p2
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function prefixTransitionCallback(match, p1, p2) {
|
||||
if (p1 === 'var') return 'var';
|
||||
if (p1 === 'all') return 'all';
|
||||
if (p2 === 'all') return ', all';
|
||||
var prefixedValue = p1 ? supportedProperty(p1) : ", " + supportedProperty(p2);
|
||||
if (!prefixedValue) return p1 || p2;
|
||||
return prefixedValue;
|
||||
}
|
||||
|
||||
if (isInBrowser) el$1 = document.createElement('p');
|
||||
/**
|
||||
* Returns prefixed value if needed. Returns `false` if value is not supported.
|
||||
*
|
||||
* @param {String} property
|
||||
* @param {String} value
|
||||
* @return {String|Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function supportedValue(property, value) {
|
||||
// For server-side rendering.
|
||||
var prefixedValue = value;
|
||||
if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.
|
||||
// We want only prefixable values here.
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
|
||||
if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {
|
||||
return prefixedValue;
|
||||
} // Create cache key for current value.
|
||||
|
||||
|
||||
var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.
|
||||
|
||||
if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {
|
||||
return cache$1[cacheKey];
|
||||
} // IE can even throw an error in some cases, for e.g. style.content = 'bar'.
|
||||
|
||||
|
||||
try {
|
||||
// Test value as it is.
|
||||
el$1.style[property] = prefixedValue;
|
||||
} catch (err) {
|
||||
// Return false if value not supported.
|
||||
cache$1[cacheKey] = false;
|
||||
return false;
|
||||
} // If 'transition' or 'transition-property' property.
|
||||
|
||||
|
||||
if (transitionProperties[property]) {
|
||||
prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);
|
||||
} else if (el$1.style[property] === '') {
|
||||
// Value with a vendor prefix.
|
||||
prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert "flex" to "-ms-flexbox" for IE10.
|
||||
|
||||
if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.
|
||||
|
||||
el$1.style[property] = prefixedValue; // Return false if value not supported.
|
||||
|
||||
if (el$1.style[property] === '') {
|
||||
cache$1[cacheKey] = false;
|
||||
return false;
|
||||
}
|
||||
} // Reset styles for current property.
|
||||
|
||||
|
||||
el$1.style[property] = ''; // Write current value to cache.
|
||||
|
||||
cache$1[cacheKey] = prefixedValue;
|
||||
return cache$1[cacheKey];
|
||||
}
|
||||
|
||||
exports.prefix = prefix;
|
||||
exports.supportedKeyframes = supportedKeyframes;
|
||||
exports.supportedProperty = supportedProperty;
|
||||
exports.supportedValue = supportedValue;
|
||||
573
node_modules/css-vendor/dist/css-vendor.esm.js
generated
vendored
Normal file
573
node_modules/css-vendor/dist/css-vendor.esm.js
generated
vendored
Normal file
@@ -0,0 +1,573 @@
|
||||
import isInBrowser from 'is-in-browser';
|
||||
import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';
|
||||
|
||||
// Export javascript style and css style vendor prefixes.
|
||||
var js = '';
|
||||
var css = '';
|
||||
var vendor = '';
|
||||
var browser = '';
|
||||
var isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.
|
||||
|
||||
if (isInBrowser) {
|
||||
// Order matters. We need to check Webkit the last one because
|
||||
// other vendors use to add Webkit prefixes to some properties
|
||||
var jsCssMap = {
|
||||
Moz: '-moz-',
|
||||
ms: '-ms-',
|
||||
O: '-o-',
|
||||
Webkit: '-webkit-'
|
||||
};
|
||||
|
||||
var _document$createEleme = document.createElement('p'),
|
||||
style = _document$createEleme.style;
|
||||
|
||||
var testProp = 'Transform';
|
||||
|
||||
for (var key in jsCssMap) {
|
||||
if (key + testProp in style) {
|
||||
js = key;
|
||||
css = jsCssMap[key];
|
||||
break;
|
||||
}
|
||||
} // Correctly detect the Edge browser.
|
||||
|
||||
|
||||
if (js === 'Webkit' && 'msHyphens' in style) {
|
||||
js = 'ms';
|
||||
css = jsCssMap.ms;
|
||||
browser = 'edge';
|
||||
} // Correctly detect the Safari browser.
|
||||
|
||||
|
||||
if (js === 'Webkit' && '-apple-trailing-word' in style) {
|
||||
vendor = 'apple';
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Vendor prefix string for the current browser.
|
||||
*
|
||||
* @type {{js: String, css: String, vendor: String, browser: String}}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
|
||||
var prefix = {
|
||||
js: js,
|
||||
css: css,
|
||||
vendor: vendor,
|
||||
browser: browser,
|
||||
isTouch: isTouch
|
||||
};
|
||||
|
||||
/**
|
||||
* Test if a keyframe at-rule should be prefixed or not
|
||||
*
|
||||
* @param {String} vendor prefix string for the current browser.
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function supportedKeyframes(key) {
|
||||
// Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'
|
||||
if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.
|
||||
// https://caniuse.com/#search=keyframes
|
||||
|
||||
if (prefix.js === 'ms') return key;
|
||||
return "@" + prefix.css + "keyframes" + key.substr(10);
|
||||
}
|
||||
|
||||
// https://caniuse.com/#search=appearance
|
||||
|
||||
var appearence = {
|
||||
noPrefill: ['appearance'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'appearance') return false;
|
||||
if (prefix.js === 'ms') return "-webkit-" + prop;
|
||||
return prefix.css + prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=color-adjust
|
||||
|
||||
var colorAdjust = {
|
||||
noPrefill: ['color-adjust'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'color-adjust') return false;
|
||||
if (prefix.js === 'Webkit') return prefix.css + "print-" + prop;
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
var regExp = /[-\s]+(.)?/g;
|
||||
/**
|
||||
* Replaces the letter with the capital letter
|
||||
*
|
||||
* @param {String} match
|
||||
* @param {String} c
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function toUpper(match, c) {
|
||||
return c ? c.toUpperCase() : '';
|
||||
}
|
||||
/**
|
||||
* Convert dash separated strings to camel-cased.
|
||||
*
|
||||
* @param {String} str
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
|
||||
function camelize(str) {
|
||||
return str.replace(regExp, toUpper);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert dash separated strings to pascal cased.
|
||||
*
|
||||
* @param {String} str
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function pascalize(str) {
|
||||
return camelize("-" + str);
|
||||
}
|
||||
|
||||
// but we can use a longhand property instead.
|
||||
// https://caniuse.com/#search=mask
|
||||
|
||||
var mask = {
|
||||
noPrefill: ['mask'],
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
if (!/^mask/.test(prop)) return false;
|
||||
|
||||
if (prefix.js === 'Webkit') {
|
||||
var longhand = 'mask-image';
|
||||
|
||||
if (camelize(longhand) in style) {
|
||||
return prop;
|
||||
}
|
||||
|
||||
if (prefix.js + pascalize(longhand) in style) {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=text-orientation
|
||||
|
||||
var textOrientation = {
|
||||
noPrefill: ['text-orientation'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'text-orientation') return false;
|
||||
|
||||
if (prefix.vendor === 'apple' && !prefix.isTouch) {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=transform
|
||||
|
||||
var transform = {
|
||||
noPrefill: ['transform'],
|
||||
supportedProperty: function supportedProperty(prop, style, options) {
|
||||
if (prop !== 'transform') return false;
|
||||
|
||||
if (options.transform) {
|
||||
return prop;
|
||||
}
|
||||
|
||||
return prefix.css + prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=transition
|
||||
|
||||
var transition = {
|
||||
noPrefill: ['transition'],
|
||||
supportedProperty: function supportedProperty(prop, style, options) {
|
||||
if (prop !== 'transition') return false;
|
||||
|
||||
if (options.transition) {
|
||||
return prop;
|
||||
}
|
||||
|
||||
return prefix.css + prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=writing-mode
|
||||
|
||||
var writingMode = {
|
||||
noPrefill: ['writing-mode'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'writing-mode') return false;
|
||||
|
||||
if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=user-select
|
||||
|
||||
var userSelect = {
|
||||
noPrefill: ['user-select'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'user-select') return false;
|
||||
|
||||
if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=multicolumn
|
||||
// https://github.com/postcss/autoprefixer/issues/491
|
||||
// https://github.com/postcss/autoprefixer/issues/177
|
||||
|
||||
var breakPropsOld = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
if (!/^break-/.test(prop)) return false;
|
||||
|
||||
if (prefix.js === 'Webkit') {
|
||||
var jsProp = "WebkitColumn" + pascalize(prop);
|
||||
return jsProp in style ? prefix.css + "column-" + prop : false;
|
||||
}
|
||||
|
||||
if (prefix.js === 'Moz') {
|
||||
var _jsProp = "page" + pascalize(prop);
|
||||
|
||||
return _jsProp in style ? "page-" + prop : false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// See https://github.com/postcss/autoprefixer/issues/324.
|
||||
|
||||
var inlineLogicalOld = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
if (!/^(border|margin|padding)-inline/.test(prop)) return false;
|
||||
if (prefix.js === 'Moz') return prop;
|
||||
var newProp = prop.replace('-inline', '');
|
||||
return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
|
||||
}
|
||||
};
|
||||
|
||||
// Camelization is required because we can't test using.
|
||||
// CSS syntax for e.g. in FF.
|
||||
|
||||
var unprefixed = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
return camelize(prop) in style ? prop : false;
|
||||
}
|
||||
};
|
||||
|
||||
var prefixed = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.
|
||||
|
||||
if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.
|
||||
|
||||
if (prop[0] === '-' && prop[1] === '-') return prop;
|
||||
if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.
|
||||
|
||||
if (prefix.js !== 'Webkit' && "Webkit" + pascalized in style) return "-webkit-" + prop;
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=scroll-snap
|
||||
|
||||
var scrollSnap = {
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop.substring(0, 11) !== 'scroll-snap') return false;
|
||||
|
||||
if (prefix.js === 'ms') {
|
||||
return "" + prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=overscroll-behavior
|
||||
|
||||
var overscrollBehavior = {
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'overscroll-behavior') return false;
|
||||
|
||||
if (prefix.js === 'ms') {
|
||||
return prefix.css + "scroll-chaining";
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
var propMap = {
|
||||
'flex-grow': 'flex-positive',
|
||||
'flex-shrink': 'flex-negative',
|
||||
'flex-basis': 'flex-preferred-size',
|
||||
'justify-content': 'flex-pack',
|
||||
order: 'flex-order',
|
||||
'align-items': 'flex-align',
|
||||
'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.
|
||||
|
||||
}; // Support old flex spec from 2012.
|
||||
|
||||
var flex2012 = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
var newProp = propMap[prop];
|
||||
if (!newProp) return false;
|
||||
return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
|
||||
}
|
||||
};
|
||||
|
||||
var propMap$1 = {
|
||||
flex: 'box-flex',
|
||||
'flex-grow': 'box-flex',
|
||||
'flex-direction': ['box-orient', 'box-direction'],
|
||||
order: 'box-ordinal-group',
|
||||
'align-items': 'box-align',
|
||||
'flex-flow': ['box-orient', 'box-direction'],
|
||||
'justify-content': 'box-pack'
|
||||
};
|
||||
var propKeys = Object.keys(propMap$1);
|
||||
|
||||
var prefixCss = function prefixCss(p) {
|
||||
return prefix.css + p;
|
||||
}; // Support old flex spec from 2009.
|
||||
|
||||
|
||||
var flex2009 = {
|
||||
supportedProperty: function supportedProperty(prop, style, _ref) {
|
||||
var multiple = _ref.multiple;
|
||||
|
||||
if (propKeys.indexOf(prop) > -1) {
|
||||
var newProp = propMap$1[prop];
|
||||
|
||||
if (!Array.isArray(newProp)) {
|
||||
return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
|
||||
}
|
||||
|
||||
if (!multiple) return false;
|
||||
|
||||
for (var i = 0; i < newProp.length; i++) {
|
||||
if (!(prefix.js + pascalize(newProp[0]) in style)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return newProp.map(prefixCss);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// plugins = [
|
||||
// ...plugins,
|
||||
// breakPropsOld,
|
||||
// inlineLogicalOld,
|
||||
// unprefixed,
|
||||
// prefixed,
|
||||
// scrollSnap,
|
||||
// flex2012,
|
||||
// flex2009
|
||||
// ]
|
||||
// Plugins without 'noPrefill' value, going last.
|
||||
// 'flex-*' plugins should be at the bottom.
|
||||
// 'flex2009' going after 'flex2012'.
|
||||
// 'prefixed' going after 'unprefixed'
|
||||
|
||||
var plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];
|
||||
var propertyDetectors = plugins.filter(function (p) {
|
||||
return p.supportedProperty;
|
||||
}).map(function (p) {
|
||||
return p.supportedProperty;
|
||||
});
|
||||
var noPrefill = plugins.filter(function (p) {
|
||||
return p.noPrefill;
|
||||
}).reduce(function (a, p) {
|
||||
a.push.apply(a, _toConsumableArray(p.noPrefill));
|
||||
return a;
|
||||
}, []);
|
||||
|
||||
var el;
|
||||
var cache = {};
|
||||
|
||||
if (isInBrowser) {
|
||||
el = document.createElement('p'); // We test every property on vendor prefix requirement.
|
||||
// Once tested, result is cached. It gives us up to 70% perf boost.
|
||||
// http://jsperf.com/element-style-object-access-vs-plain-object
|
||||
//
|
||||
// Prefill cache with known css properties to reduce amount of
|
||||
// properties we need to feature test at runtime.
|
||||
// http://davidwalsh.name/vendor-prefix
|
||||
|
||||
var computed = window.getComputedStyle(document.documentElement, '');
|
||||
|
||||
for (var key$1 in computed) {
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];
|
||||
} // Properties that cannot be correctly detected using the
|
||||
// cache prefill method.
|
||||
|
||||
|
||||
noPrefill.forEach(function (x) {
|
||||
return delete cache[x];
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Test if a property is supported, returns supported property with vendor
|
||||
* prefix if required. Returns `false` if not supported.
|
||||
*
|
||||
* @param {String} prop dash separated
|
||||
* @param {Object} [options]
|
||||
* @return {String|Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
|
||||
function supportedProperty(prop, options) {
|
||||
if (options === void 0) {
|
||||
options = {};
|
||||
}
|
||||
|
||||
// For server-side rendering.
|
||||
if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.
|
||||
|
||||
if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {
|
||||
return cache[prop];
|
||||
} // Check if 'transition' or 'transform' natively supported in browser.
|
||||
|
||||
|
||||
if (prop === 'transition' || prop === 'transform') {
|
||||
options[prop] = prop in el.style;
|
||||
} // Find a plugin for current prefix property.
|
||||
|
||||
|
||||
for (var i = 0; i < propertyDetectors.length; i++) {
|
||||
cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.
|
||||
|
||||
if (cache[prop]) break;
|
||||
} // Reset styles for current property.
|
||||
// Firefox can even throw an error for invalid properties, e.g., "0".
|
||||
|
||||
|
||||
try {
|
||||
el.style[prop] = '';
|
||||
} catch (err) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return cache[prop];
|
||||
}
|
||||
|
||||
var cache$1 = {};
|
||||
var transitionProperties = {
|
||||
transition: 1,
|
||||
'transition-property': 1,
|
||||
'-webkit-transition': 1,
|
||||
'-webkit-transition-property': 1
|
||||
};
|
||||
var transPropsRegExp = /(^\s*[\w-]+)|, (\s*[\w-]+)(?![^()]*\))/g;
|
||||
var el$1;
|
||||
/**
|
||||
* Returns prefixed value transition/transform if needed.
|
||||
*
|
||||
* @param {String} match
|
||||
* @param {String} p1
|
||||
* @param {String} p2
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function prefixTransitionCallback(match, p1, p2) {
|
||||
if (p1 === 'var') return 'var';
|
||||
if (p1 === 'all') return 'all';
|
||||
if (p2 === 'all') return ', all';
|
||||
var prefixedValue = p1 ? supportedProperty(p1) : ", " + supportedProperty(p2);
|
||||
if (!prefixedValue) return p1 || p2;
|
||||
return prefixedValue;
|
||||
}
|
||||
|
||||
if (isInBrowser) el$1 = document.createElement('p');
|
||||
/**
|
||||
* Returns prefixed value if needed. Returns `false` if value is not supported.
|
||||
*
|
||||
* @param {String} property
|
||||
* @param {String} value
|
||||
* @return {String|Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function supportedValue(property, value) {
|
||||
// For server-side rendering.
|
||||
var prefixedValue = value;
|
||||
if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.
|
||||
// We want only prefixable values here.
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
|
||||
if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {
|
||||
return prefixedValue;
|
||||
} // Create cache key for current value.
|
||||
|
||||
|
||||
var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.
|
||||
|
||||
if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {
|
||||
return cache$1[cacheKey];
|
||||
} // IE can even throw an error in some cases, for e.g. style.content = 'bar'.
|
||||
|
||||
|
||||
try {
|
||||
// Test value as it is.
|
||||
el$1.style[property] = prefixedValue;
|
||||
} catch (err) {
|
||||
// Return false if value not supported.
|
||||
cache$1[cacheKey] = false;
|
||||
return false;
|
||||
} // If 'transition' or 'transition-property' property.
|
||||
|
||||
|
||||
if (transitionProperties[property]) {
|
||||
prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);
|
||||
} else if (el$1.style[property] === '') {
|
||||
// Value with a vendor prefix.
|
||||
prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert "flex" to "-ms-flexbox" for IE10.
|
||||
|
||||
if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.
|
||||
|
||||
el$1.style[property] = prefixedValue; // Return false if value not supported.
|
||||
|
||||
if (el$1.style[property] === '') {
|
||||
cache$1[cacheKey] = false;
|
||||
return false;
|
||||
}
|
||||
} // Reset styles for current property.
|
||||
|
||||
|
||||
el$1.style[property] = ''; // Write current value to cache.
|
||||
|
||||
cache$1[cacheKey] = prefixedValue;
|
||||
return cache$1[cacheKey];
|
||||
}
|
||||
|
||||
export { prefix, supportedKeyframes, supportedProperty, supportedValue };
|
||||
609
node_modules/css-vendor/dist/css-vendor.js
generated
vendored
Normal file
609
node_modules/css-vendor/dist/css-vendor.js
generated
vendored
Normal file
@@ -0,0 +1,609 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = global || self, factory(global.cssVendor = {}));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||||
|
||||
var isBrowser = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && document.nodeType === 9;
|
||||
|
||||
// Export javascript style and css style vendor prefixes.
|
||||
var js = '';
|
||||
var css = '';
|
||||
var vendor = '';
|
||||
var browser = '';
|
||||
var isTouch = isBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.
|
||||
|
||||
if (isBrowser) {
|
||||
// Order matters. We need to check Webkit the last one because
|
||||
// other vendors use to add Webkit prefixes to some properties
|
||||
var jsCssMap = {
|
||||
Moz: '-moz-',
|
||||
ms: '-ms-',
|
||||
O: '-o-',
|
||||
Webkit: '-webkit-'
|
||||
};
|
||||
|
||||
var _document$createEleme = document.createElement('p'),
|
||||
style = _document$createEleme.style;
|
||||
|
||||
var testProp = 'Transform';
|
||||
|
||||
for (var key in jsCssMap) {
|
||||
if (key + testProp in style) {
|
||||
js = key;
|
||||
css = jsCssMap[key];
|
||||
break;
|
||||
}
|
||||
} // Correctly detect the Edge browser.
|
||||
|
||||
|
||||
if (js === 'Webkit' && 'msHyphens' in style) {
|
||||
js = 'ms';
|
||||
css = jsCssMap.ms;
|
||||
browser = 'edge';
|
||||
} // Correctly detect the Safari browser.
|
||||
|
||||
|
||||
if (js === 'Webkit' && '-apple-trailing-word' in style) {
|
||||
vendor = 'apple';
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Vendor prefix string for the current browser.
|
||||
*
|
||||
* @type {{js: String, css: String, vendor: String, browser: String}}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
|
||||
var prefix = {
|
||||
js: js,
|
||||
css: css,
|
||||
vendor: vendor,
|
||||
browser: browser,
|
||||
isTouch: isTouch
|
||||
};
|
||||
|
||||
/**
|
||||
* Test if a keyframe at-rule should be prefixed or not
|
||||
*
|
||||
* @param {String} vendor prefix string for the current browser.
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function supportedKeyframes(key) {
|
||||
// Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'
|
||||
if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.
|
||||
// https://caniuse.com/#search=keyframes
|
||||
|
||||
if (prefix.js === 'ms') return key;
|
||||
return "@" + prefix.css + "keyframes" + key.substr(10);
|
||||
}
|
||||
|
||||
function _arrayWithoutHoles(arr) {
|
||||
if (Array.isArray(arr)) {
|
||||
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
|
||||
arr2[i] = arr[i];
|
||||
}
|
||||
|
||||
return arr2;
|
||||
}
|
||||
}
|
||||
|
||||
function _iterableToArray(iter) {
|
||||
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
|
||||
}
|
||||
|
||||
function _nonIterableSpread() {
|
||||
throw new TypeError("Invalid attempt to spread non-iterable instance");
|
||||
}
|
||||
|
||||
function _toConsumableArray(arr) {
|
||||
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
|
||||
}
|
||||
|
||||
// https://caniuse.com/#search=appearance
|
||||
|
||||
var appearence = {
|
||||
noPrefill: ['appearance'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'appearance') return false;
|
||||
if (prefix.js === 'ms') return "-webkit-" + prop;
|
||||
return prefix.css + prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=color-adjust
|
||||
|
||||
var colorAdjust = {
|
||||
noPrefill: ['color-adjust'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'color-adjust') return false;
|
||||
if (prefix.js === 'Webkit') return prefix.css + "print-" + prop;
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
var regExp = /[-\s]+(.)?/g;
|
||||
/**
|
||||
* Replaces the letter with the capital letter
|
||||
*
|
||||
* @param {String} match
|
||||
* @param {String} c
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function toUpper(match, c) {
|
||||
return c ? c.toUpperCase() : '';
|
||||
}
|
||||
/**
|
||||
* Convert dash separated strings to camel-cased.
|
||||
*
|
||||
* @param {String} str
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
|
||||
function camelize(str) {
|
||||
return str.replace(regExp, toUpper);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert dash separated strings to pascal cased.
|
||||
*
|
||||
* @param {String} str
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function pascalize(str) {
|
||||
return camelize("-" + str);
|
||||
}
|
||||
|
||||
// but we can use a longhand property instead.
|
||||
// https://caniuse.com/#search=mask
|
||||
|
||||
var mask = {
|
||||
noPrefill: ['mask'],
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
if (!/^mask/.test(prop)) return false;
|
||||
|
||||
if (prefix.js === 'Webkit') {
|
||||
var longhand = 'mask-image';
|
||||
|
||||
if (camelize(longhand) in style) {
|
||||
return prop;
|
||||
}
|
||||
|
||||
if (prefix.js + pascalize(longhand) in style) {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=text-orientation
|
||||
|
||||
var textOrientation = {
|
||||
noPrefill: ['text-orientation'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'text-orientation') return false;
|
||||
|
||||
if (prefix.vendor === 'apple' && !prefix.isTouch) {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=transform
|
||||
|
||||
var transform = {
|
||||
noPrefill: ['transform'],
|
||||
supportedProperty: function supportedProperty(prop, style, options) {
|
||||
if (prop !== 'transform') return false;
|
||||
|
||||
if (options.transform) {
|
||||
return prop;
|
||||
}
|
||||
|
||||
return prefix.css + prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=transition
|
||||
|
||||
var transition = {
|
||||
noPrefill: ['transition'],
|
||||
supportedProperty: function supportedProperty(prop, style, options) {
|
||||
if (prop !== 'transition') return false;
|
||||
|
||||
if (options.transition) {
|
||||
return prop;
|
||||
}
|
||||
|
||||
return prefix.css + prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=writing-mode
|
||||
|
||||
var writingMode = {
|
||||
noPrefill: ['writing-mode'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'writing-mode') return false;
|
||||
|
||||
if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=user-select
|
||||
|
||||
var userSelect = {
|
||||
noPrefill: ['user-select'],
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'user-select') return false;
|
||||
|
||||
if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {
|
||||
return prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=multicolumn
|
||||
// https://github.com/postcss/autoprefixer/issues/491
|
||||
// https://github.com/postcss/autoprefixer/issues/177
|
||||
|
||||
var breakPropsOld = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
if (!/^break-/.test(prop)) return false;
|
||||
|
||||
if (prefix.js === 'Webkit') {
|
||||
var jsProp = "WebkitColumn" + pascalize(prop);
|
||||
return jsProp in style ? prefix.css + "column-" + prop : false;
|
||||
}
|
||||
|
||||
if (prefix.js === 'Moz') {
|
||||
var _jsProp = "page" + pascalize(prop);
|
||||
|
||||
return _jsProp in style ? "page-" + prop : false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// See https://github.com/postcss/autoprefixer/issues/324.
|
||||
|
||||
var inlineLogicalOld = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
if (!/^(border|margin|padding)-inline/.test(prop)) return false;
|
||||
if (prefix.js === 'Moz') return prop;
|
||||
var newProp = prop.replace('-inline', '');
|
||||
return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
|
||||
}
|
||||
};
|
||||
|
||||
// Camelization is required because we can't test using.
|
||||
// CSS syntax for e.g. in FF.
|
||||
|
||||
var unprefixed = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
return camelize(prop) in style ? prop : false;
|
||||
}
|
||||
};
|
||||
|
||||
var prefixed = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.
|
||||
|
||||
if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.
|
||||
|
||||
if (prop[0] === '-' && prop[1] === '-') return prop;
|
||||
if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.
|
||||
|
||||
if (prefix.js !== 'Webkit' && "Webkit" + pascalized in style) return "-webkit-" + prop;
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=scroll-snap
|
||||
|
||||
var scrollSnap = {
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop.substring(0, 11) !== 'scroll-snap') return false;
|
||||
|
||||
if (prefix.js === 'ms') {
|
||||
return "" + prefix.css + prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
// https://caniuse.com/#search=overscroll-behavior
|
||||
|
||||
var overscrollBehavior = {
|
||||
supportedProperty: function supportedProperty(prop) {
|
||||
if (prop !== 'overscroll-behavior') return false;
|
||||
|
||||
if (prefix.js === 'ms') {
|
||||
return prefix.css + "scroll-chaining";
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
};
|
||||
|
||||
var propMap = {
|
||||
'flex-grow': 'flex-positive',
|
||||
'flex-shrink': 'flex-negative',
|
||||
'flex-basis': 'flex-preferred-size',
|
||||
'justify-content': 'flex-pack',
|
||||
order: 'flex-order',
|
||||
'align-items': 'flex-align',
|
||||
'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.
|
||||
|
||||
}; // Support old flex spec from 2012.
|
||||
|
||||
var flex2012 = {
|
||||
supportedProperty: function supportedProperty(prop, style) {
|
||||
var newProp = propMap[prop];
|
||||
if (!newProp) return false;
|
||||
return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
|
||||
}
|
||||
};
|
||||
|
||||
var propMap$1 = {
|
||||
flex: 'box-flex',
|
||||
'flex-grow': 'box-flex',
|
||||
'flex-direction': ['box-orient', 'box-direction'],
|
||||
order: 'box-ordinal-group',
|
||||
'align-items': 'box-align',
|
||||
'flex-flow': ['box-orient', 'box-direction'],
|
||||
'justify-content': 'box-pack'
|
||||
};
|
||||
var propKeys = Object.keys(propMap$1);
|
||||
|
||||
var prefixCss = function prefixCss(p) {
|
||||
return prefix.css + p;
|
||||
}; // Support old flex spec from 2009.
|
||||
|
||||
|
||||
var flex2009 = {
|
||||
supportedProperty: function supportedProperty(prop, style, _ref) {
|
||||
var multiple = _ref.multiple;
|
||||
|
||||
if (propKeys.indexOf(prop) > -1) {
|
||||
var newProp = propMap$1[prop];
|
||||
|
||||
if (!Array.isArray(newProp)) {
|
||||
return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
|
||||
}
|
||||
|
||||
if (!multiple) return false;
|
||||
|
||||
for (var i = 0; i < newProp.length; i++) {
|
||||
if (!(prefix.js + pascalize(newProp[0]) in style)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return newProp.map(prefixCss);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// plugins = [
|
||||
// ...plugins,
|
||||
// breakPropsOld,
|
||||
// inlineLogicalOld,
|
||||
// unprefixed,
|
||||
// prefixed,
|
||||
// scrollSnap,
|
||||
// flex2012,
|
||||
// flex2009
|
||||
// ]
|
||||
// Plugins without 'noPrefill' value, going last.
|
||||
// 'flex-*' plugins should be at the bottom.
|
||||
// 'flex2009' going after 'flex2012'.
|
||||
// 'prefixed' going after 'unprefixed'
|
||||
|
||||
var plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];
|
||||
var propertyDetectors = plugins.filter(function (p) {
|
||||
return p.supportedProperty;
|
||||
}).map(function (p) {
|
||||
return p.supportedProperty;
|
||||
});
|
||||
var noPrefill = plugins.filter(function (p) {
|
||||
return p.noPrefill;
|
||||
}).reduce(function (a, p) {
|
||||
a.push.apply(a, _toConsumableArray(p.noPrefill));
|
||||
return a;
|
||||
}, []);
|
||||
|
||||
var el;
|
||||
var cache = {};
|
||||
|
||||
if (isBrowser) {
|
||||
el = document.createElement('p'); // We test every property on vendor prefix requirement.
|
||||
// Once tested, result is cached. It gives us up to 70% perf boost.
|
||||
// http://jsperf.com/element-style-object-access-vs-plain-object
|
||||
//
|
||||
// Prefill cache with known css properties to reduce amount of
|
||||
// properties we need to feature test at runtime.
|
||||
// http://davidwalsh.name/vendor-prefix
|
||||
|
||||
var computed = window.getComputedStyle(document.documentElement, '');
|
||||
|
||||
for (var key$1 in computed) {
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];
|
||||
} // Properties that cannot be correctly detected using the
|
||||
// cache prefill method.
|
||||
|
||||
|
||||
noPrefill.forEach(function (x) {
|
||||
return delete cache[x];
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Test if a property is supported, returns supported property with vendor
|
||||
* prefix if required. Returns `false` if not supported.
|
||||
*
|
||||
* @param {String} prop dash separated
|
||||
* @param {Object} [options]
|
||||
* @return {String|Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
|
||||
function supportedProperty(prop, options) {
|
||||
if (options === void 0) {
|
||||
options = {};
|
||||
}
|
||||
|
||||
// For server-side rendering.
|
||||
if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.
|
||||
|
||||
if ( cache[prop] != null) {
|
||||
return cache[prop];
|
||||
} // Check if 'transition' or 'transform' natively supported in browser.
|
||||
|
||||
|
||||
if (prop === 'transition' || prop === 'transform') {
|
||||
options[prop] = prop in el.style;
|
||||
} // Find a plugin for current prefix property.
|
||||
|
||||
|
||||
for (var i = 0; i < propertyDetectors.length; i++) {
|
||||
cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.
|
||||
|
||||
if (cache[prop]) break;
|
||||
} // Reset styles for current property.
|
||||
// Firefox can even throw an error for invalid properties, e.g., "0".
|
||||
|
||||
|
||||
try {
|
||||
el.style[prop] = '';
|
||||
} catch (err) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return cache[prop];
|
||||
}
|
||||
|
||||
var cache$1 = {};
|
||||
var transitionProperties = {
|
||||
transition: 1,
|
||||
'transition-property': 1,
|
||||
'-webkit-transition': 1,
|
||||
'-webkit-transition-property': 1
|
||||
};
|
||||
var transPropsRegExp = /(^\s*[\w-]+)|, (\s*[\w-]+)(?![^()]*\))/g;
|
||||
var el$1;
|
||||
/**
|
||||
* Returns prefixed value transition/transform if needed.
|
||||
*
|
||||
* @param {String} match
|
||||
* @param {String} p1
|
||||
* @param {String} p2
|
||||
* @return {String}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function prefixTransitionCallback(match, p1, p2) {
|
||||
if (p1 === 'var') return 'var';
|
||||
if (p1 === 'all') return 'all';
|
||||
if (p2 === 'all') return ', all';
|
||||
var prefixedValue = p1 ? supportedProperty(p1) : ", " + supportedProperty(p2);
|
||||
if (!prefixedValue) return p1 || p2;
|
||||
return prefixedValue;
|
||||
}
|
||||
|
||||
if (isBrowser) el$1 = document.createElement('p');
|
||||
/**
|
||||
* Returns prefixed value if needed. Returns `false` if value is not supported.
|
||||
*
|
||||
* @param {String} property
|
||||
* @param {String} value
|
||||
* @return {String|Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function supportedValue(property, value) {
|
||||
// For server-side rendering.
|
||||
var prefixedValue = value;
|
||||
if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.
|
||||
// We want only prefixable values here.
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
|
||||
if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {
|
||||
return prefixedValue;
|
||||
} // Create cache key for current value.
|
||||
|
||||
|
||||
var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.
|
||||
|
||||
if ( cache$1[cacheKey] != null) {
|
||||
return cache$1[cacheKey];
|
||||
} // IE can even throw an error in some cases, for e.g. style.content = 'bar'.
|
||||
|
||||
|
||||
try {
|
||||
// Test value as it is.
|
||||
el$1.style[property] = prefixedValue;
|
||||
} catch (err) {
|
||||
// Return false if value not supported.
|
||||
cache$1[cacheKey] = false;
|
||||
return false;
|
||||
} // If 'transition' or 'transition-property' property.
|
||||
|
||||
|
||||
if (transitionProperties[property]) {
|
||||
prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);
|
||||
} else if (el$1.style[property] === '') {
|
||||
// Value with a vendor prefix.
|
||||
prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert "flex" to "-ms-flexbox" for IE10.
|
||||
|
||||
if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.
|
||||
|
||||
el$1.style[property] = prefixedValue; // Return false if value not supported.
|
||||
|
||||
if (el$1.style[property] === '') {
|
||||
cache$1[cacheKey] = false;
|
||||
return false;
|
||||
}
|
||||
} // Reset styles for current property.
|
||||
|
||||
|
||||
el$1.style[property] = ''; // Write current value to cache.
|
||||
|
||||
cache$1[cacheKey] = prefixedValue;
|
||||
return cache$1[cacheKey];
|
||||
}
|
||||
|
||||
exports.prefix = prefix;
|
||||
exports.supportedKeyframes = supportedKeyframes;
|
||||
exports.supportedProperty = supportedProperty;
|
||||
exports.supportedValue = supportedValue;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
||||
1
node_modules/css-vendor/dist/css-vendor.min.js
generated
vendored
Normal file
1
node_modules/css-vendor/dist/css-vendor.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
129
node_modules/css-vendor/package.json
generated
vendored
Normal file
129
node_modules/css-vendor/package.json
generated
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
{
|
||||
"_from": "css-vendor@^2.0.8",
|
||||
"_id": "css-vendor@2.0.8",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
|
||||
"_location": "/css-vendor",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "css-vendor@^2.0.8",
|
||||
"name": "css-vendor",
|
||||
"escapedName": "css-vendor",
|
||||
"rawSpec": "^2.0.8",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^2.0.8"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/jss-plugin-vendor-prefixer"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz",
|
||||
"_shasum": "e47f91d3bd3117d49180a3c935e62e3d9f7f449d",
|
||||
"_spec": "css-vendor@^2.0.8",
|
||||
"_where": "D:\\WORK\\Menui\\menui_backend\\node_modules\\jss-plugin-vendor-prefixer",
|
||||
"author": {
|
||||
"name": "Oleg Slobodskoi",
|
||||
"email": "oleg008@gmail.com"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/cssinjs/css-vendor/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.8.3",
|
||||
"is-in-browser": "^1.0.2"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "CSS vendor prefix detection and property feature testing.",
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.8.0",
|
||||
"@babel/plugin-transform-runtime": "^7.8.3",
|
||||
"@babel/preset-env": "^7.8.2",
|
||||
"autoprefixer": "^9.7.5",
|
||||
"babel-cli": "^6.5.1",
|
||||
"babel-eslint": "^10.0.3",
|
||||
"babel-loader": "^8.0.5",
|
||||
"babel-plugin-rewire": "^1.1.0",
|
||||
"babel-plugin-transform-es2015-spread": "^6.22.0",
|
||||
"babel-plugin-transform-es3-member-expression-literals": "^6.8.0",
|
||||
"babel-plugin-transform-es3-property-literals": "^6.8.0",
|
||||
"caniuse-support": "^1.0.4",
|
||||
"cross-env": "^7.0.0",
|
||||
"es5-shim": "^4.5.10",
|
||||
"eslint": "^6.4.0",
|
||||
"eslint-config-jss": "^5.0.1",
|
||||
"eslint-config-prettier": "^6.3.0",
|
||||
"expect.js": "^0.3.1",
|
||||
"karma": "^4.0.1",
|
||||
"karma-benchmark": "^1.0.4",
|
||||
"karma-benchmark-reporter": "^0.1.1",
|
||||
"karma-browserstack-launcher": "^1.4.0",
|
||||
"karma-chrome-launcher": "^3.0.0",
|
||||
"karma-firefox-launcher": "^1.1.0",
|
||||
"karma-mocha": "^1.0.1",
|
||||
"karma-mocha-reporter": "^2.2.5",
|
||||
"karma-opera-launcher": "^1.0.0",
|
||||
"karma-safari-launcher": "^1.0.0",
|
||||
"karma-sourcemap-loader": "^0.3.5",
|
||||
"karma-webpack": "^4.0.2",
|
||||
"lint-staged": "^10.0.3",
|
||||
"mocha": "^7.0.1",
|
||||
"postcss-js": "^2.0.3",
|
||||
"pre-commit": "^1.1.3",
|
||||
"prettier": "^2.0.2",
|
||||
"rimraf": "^3.0.0",
|
||||
"rollup": "^2.3.2",
|
||||
"rollup-plugin-babel": "^4.3.2",
|
||||
"rollup-plugin-node-resolve": "^5.2.0",
|
||||
"rollup-plugin-replace": "^2.1.0",
|
||||
"rollup-plugin-size-snapshot": "^0.11.0",
|
||||
"rollup-plugin-terser": "^5.1.2",
|
||||
"webpack": "^4.39.2",
|
||||
"webpack-cli": "^3.3.9"
|
||||
},
|
||||
"engines": {},
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"homepage": "https://github.com/cssinjs/css-vendor#readme",
|
||||
"keywords": [
|
||||
"css",
|
||||
"vendor",
|
||||
"feature",
|
||||
"test",
|
||||
"prefix",
|
||||
"cssinjs",
|
||||
"jss",
|
||||
"css-in-js"
|
||||
],
|
||||
"license": "MIT",
|
||||
"lint-staged": {
|
||||
"**/*.js": [
|
||||
"eslint --fix",
|
||||
"prettier --write",
|
||||
"git add"
|
||||
]
|
||||
},
|
||||
"main": "./dist/css-vendor.cjs.js",
|
||||
"module": "./dist/css-vendor.esm.js",
|
||||
"name": "css-vendor",
|
||||
"pre-commit": "lint:staged",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+ssh://git@github.com/cssinjs/css-vendor.git"
|
||||
},
|
||||
"scripts": {
|
||||
"all": "yarn lint && yarn test && yarn build",
|
||||
"bench": "cross-env NODE_ENV=benchmark karma start --single-run",
|
||||
"build": "yarn clean && yarn rollup -c",
|
||||
"clean": "rimraf {dist,tmp}/*",
|
||||
"format": "prettier \"*.js\" \"{tests,src,benchmark}/**/*.js\" --write",
|
||||
"lint": "eslint ./src ./tests --fix",
|
||||
"lint:staged": "lint-staged",
|
||||
"prepublishOnly": "yarn all",
|
||||
"test": "cross-env NODE_ENV=test karma start --single-run ",
|
||||
"test:watch": "cross-env NODE_ENV=test karma start"
|
||||
},
|
||||
"version": "2.0.8"
|
||||
}
|
||||
42
node_modules/css-vendor/readme.md
generated
vendored
Normal file
42
node_modules/css-vendor/readme.md
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
[](https://travis-ci.org/cssinjs/css-vendor) [](https://greenkeeper.io/)
|
||||
|
||||
## CSS vendor prefix detection and property feature testing.
|
||||
|
||||
### Vendor prefixes
|
||||
|
||||
```javascript
|
||||
console.log(cssVendor.prefix.js) // e.g. WebkitTransform
|
||||
|
||||
console.log(cssVendor.prefix.css) // e.g. -webkit-transform
|
||||
```
|
||||
|
||||
### Property support feature test
|
||||
|
||||
`cssVendor.supportedProperty(prop)`
|
||||
|
||||
Test if property is supported, returns false if not. Returns string if supported. May add a vendor prefix if needed.
|
||||
|
||||
```javascript
|
||||
console.log(cssVendor.supportedProperty('animation')) // e.g. -webkit-animation
|
||||
```
|
||||
|
||||
### Value support feature test
|
||||
|
||||
`cssVendor.supportedValue(prop, value)`
|
||||
|
||||
Test if value is supported, returns false if not. Returns string if supported. May add a vendor prefix if needed.
|
||||
|
||||
```javascript
|
||||
console.log(cssVendor.supportedValue('display', 'flex')) // e.g. -webkit-flex
|
||||
```
|
||||
|
||||
## Run tests
|
||||
|
||||
```bash
|
||||
yarn
|
||||
yarn test
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user