mirror of
https://github.com/idanoo/GoScrobble
synced 2025-07-02 14:12:19 +00:00
0.2.0 - Mid migration
This commit is contained in:
parent
139e6a915e
commit
7e38fdbd7d
42393 changed files with 5358157 additions and 62 deletions
8
web/node_modules/jss-plugin-vendor-prefixer/LICENSE
generated
vendored
Normal file
8
web/node_modules/jss-plugin-vendor-prefixer/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
The MIT License (MIT)
|
||||
Copyright (c) 2014-present Oleg Isonen (Slobodskoi) & contributors
|
||||
|
||||
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.
|
2896
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.bundle.js
generated
vendored
Normal file
2896
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.bundle.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
63
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.cjs.js
generated
vendored
Normal file
63
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.cjs.js
generated
vendored
Normal file
|
@ -0,0 +1,63 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
var vendor = require('css-vendor');
|
||||
var jss = require('jss');
|
||||
|
||||
/**
|
||||
* Add vendor prefix to a property name when needed.
|
||||
*
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function jssVendorPrefixer() {
|
||||
function onProcessRule(rule) {
|
||||
if (rule.type === 'keyframes') {
|
||||
var atRule = rule;
|
||||
atRule.at = vendor.supportedKeyframes(atRule.at);
|
||||
}
|
||||
}
|
||||
|
||||
function prefixStyle(style) {
|
||||
for (var prop in style) {
|
||||
var value = style[prop];
|
||||
|
||||
if (prop === 'fallbacks' && Array.isArray(value)) {
|
||||
style[prop] = value.map(prefixStyle);
|
||||
continue;
|
||||
}
|
||||
|
||||
var changeProp = false;
|
||||
var supportedProp = vendor.supportedProperty(prop);
|
||||
if (supportedProp && supportedProp !== prop) changeProp = true;
|
||||
var changeValue = false;
|
||||
var supportedValue = vendor.supportedValue(supportedProp, jss.toCssValue(value));
|
||||
if (supportedValue && supportedValue !== value) changeValue = true;
|
||||
|
||||
if (changeProp || changeValue) {
|
||||
if (changeProp) delete style[prop];
|
||||
style[supportedProp || prop] = supportedValue || value;
|
||||
}
|
||||
}
|
||||
|
||||
return style;
|
||||
}
|
||||
|
||||
function onProcessStyle(style, rule) {
|
||||
if (rule.type !== 'style') return style;
|
||||
return prefixStyle(style);
|
||||
}
|
||||
|
||||
function onChangeValue(value, prop) {
|
||||
return vendor.supportedValue(prop, jss.toCssValue(value)) || value;
|
||||
}
|
||||
|
||||
return {
|
||||
onProcessRule: onProcessRule,
|
||||
onProcessStyle: onProcessStyle,
|
||||
onChangeValue: onChangeValue
|
||||
};
|
||||
}
|
||||
|
||||
exports.default = jssVendorPrefixer;
|
3
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.cjs.js.flow
generated
vendored
Normal file
3
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.cjs.js.flow
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
// @flow
|
||||
|
||||
export * from '../src';
|
59
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js
generated
vendored
Normal file
59
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js
generated
vendored
Normal file
|
@ -0,0 +1,59 @@
|
|||
import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';
|
||||
import { toCssValue } from 'jss';
|
||||
|
||||
/**
|
||||
* Add vendor prefix to a property name when needed.
|
||||
*
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function jssVendorPrefixer() {
|
||||
function onProcessRule(rule) {
|
||||
if (rule.type === 'keyframes') {
|
||||
var atRule = rule;
|
||||
atRule.at = supportedKeyframes(atRule.at);
|
||||
}
|
||||
}
|
||||
|
||||
function prefixStyle(style) {
|
||||
for (var prop in style) {
|
||||
var value = style[prop];
|
||||
|
||||
if (prop === 'fallbacks' && Array.isArray(value)) {
|
||||
style[prop] = value.map(prefixStyle);
|
||||
continue;
|
||||
}
|
||||
|
||||
var changeProp = false;
|
||||
var supportedProp = supportedProperty(prop);
|
||||
if (supportedProp && supportedProp !== prop) changeProp = true;
|
||||
var changeValue = false;
|
||||
var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));
|
||||
if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;
|
||||
|
||||
if (changeProp || changeValue) {
|
||||
if (changeProp) delete style[prop];
|
||||
style[supportedProp || prop] = supportedValue$1 || value;
|
||||
}
|
||||
}
|
||||
|
||||
return style;
|
||||
}
|
||||
|
||||
function onProcessStyle(style, rule) {
|
||||
if (rule.type !== 'style') return style;
|
||||
return prefixStyle(style);
|
||||
}
|
||||
|
||||
function onChangeValue(value, prop) {
|
||||
return supportedValue(prop, toCssValue(value)) || value;
|
||||
}
|
||||
|
||||
return {
|
||||
onProcessRule: onProcessRule,
|
||||
onProcessStyle: onProcessStyle,
|
||||
onChangeValue: onChangeValue
|
||||
};
|
||||
}
|
||||
|
||||
export default jssVendorPrefixer;
|
675
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.js
generated
vendored
Normal file
675
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.js
generated
vendored
Normal file
|
@ -0,0 +1,675 @@
|
|||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jss')) :
|
||||
typeof define === 'function' && define.amd ? define(['exports', 'jss'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jssPluginVendorPrefixer = {}, global.jss));
|
||||
}(this, (function (exports, jss) { '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;
|
||||
|
||||
function _arrayLikeToArray(arr, len) {
|
||||
if (len == null || len > arr.length) len = arr.length;
|
||||
|
||||
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
||||
arr2[i] = arr[i];
|
||||
}
|
||||
|
||||
return arr2;
|
||||
}
|
||||
|
||||
function _arrayWithoutHoles(arr) {
|
||||
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
||||
}
|
||||
|
||||
function _iterableToArray(iter) {
|
||||
if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
|
||||
}
|
||||
|
||||
function _unsupportedIterableToArray(o, minLen) {
|
||||
if (!o) return;
|
||||
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
||||
var n = Object.prototype.toString.call(o).slice(8, -1);
|
||||
if (n === "Object" && o.constructor) n = o.constructor.name;
|
||||
if (n === "Map" || n === "Set") return Array.from(n);
|
||||
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
||||
}
|
||||
|
||||
function _nonIterableSpread() {
|
||||
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||||
}
|
||||
|
||||
function _toConsumableArray(arr) {
|
||||
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
||||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
// 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];
|
||||
}
|
||||
|
||||
/**
|
||||
* Add vendor prefix to a property name when needed.
|
||||
*
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function jssVendorPrefixer() {
|
||||
function onProcessRule(rule) {
|
||||
if (rule.type === 'keyframes') {
|
||||
var atRule = rule;
|
||||
atRule.at = supportedKeyframes(atRule.at);
|
||||
}
|
||||
}
|
||||
|
||||
function prefixStyle(style) {
|
||||
for (var prop in style) {
|
||||
var value = style[prop];
|
||||
|
||||
if (prop === 'fallbacks' && Array.isArray(value)) {
|
||||
style[prop] = value.map(prefixStyle);
|
||||
continue;
|
||||
}
|
||||
|
||||
var changeProp = false;
|
||||
var supportedProp = supportedProperty(prop);
|
||||
if (supportedProp && supportedProp !== prop) changeProp = true;
|
||||
var changeValue = false;
|
||||
var supportedValue$1 = supportedValue(supportedProp, jss.toCssValue(value));
|
||||
if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;
|
||||
|
||||
if (changeProp || changeValue) {
|
||||
if (changeProp) delete style[prop];
|
||||
style[supportedProp || prop] = supportedValue$1 || value;
|
||||
}
|
||||
}
|
||||
|
||||
return style;
|
||||
}
|
||||
|
||||
function onProcessStyle(style, rule) {
|
||||
if (rule.type !== 'style') return style;
|
||||
return prefixStyle(style);
|
||||
}
|
||||
|
||||
function onChangeValue(value, prop) {
|
||||
return supportedValue(prop, jss.toCssValue(value)) || value;
|
||||
}
|
||||
|
||||
return {
|
||||
onProcessRule: onProcessRule,
|
||||
onProcessStyle: onProcessStyle,
|
||||
onChangeValue: onChangeValue
|
||||
};
|
||||
}
|
||||
|
||||
exports.default = jssVendorPrefixer;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
||||
//# sourceMappingURL=jss-plugin-vendor-prefixer.js.map
|
1
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.js.map
generated
vendored
Normal file
1
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.min.js
generated
vendored
Normal file
1
web/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
45
web/node_modules/jss-plugin-vendor-prefixer/package.json
generated
vendored
Normal file
45
web/node_modules/jss-plugin-vendor-prefixer/package.json
generated
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"name": "jss-plugin-vendor-prefixer",
|
||||
"description": "JSS plugin that handles vendor prefixes in the browser",
|
||||
"version": "10.7.1",
|
||||
"license": "MIT",
|
||||
"homepage": "https://cssinjs.org/jss-plugin-vendor-prefixer",
|
||||
"main": "dist/jss-plugin-vendor-prefixer.cjs.js",
|
||||
"module": "dist/jss-plugin-vendor-prefixer.esm.js",
|
||||
"unpkg": "dist/jss-plugin-vendor-prefixer.bundle.js",
|
||||
"sideEffects": false,
|
||||
"typings": "./src/index.d.ts",
|
||||
"author": "JSS Team",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/cssinjs/jss"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/cssinjs/jss/issues/new?title=[jss-plugin-vendor-prefixer]"
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
"src",
|
||||
"!*.test.*"
|
||||
],
|
||||
"keywords": [
|
||||
"cssinjs",
|
||||
"jss",
|
||||
"plugin",
|
||||
"vendor",
|
||||
"prefixer"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "node ../../scripts/build.js",
|
||||
"check-snapshot": "node ../../scripts/match-snapshot.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.3.1",
|
||||
"css-vendor": "^2.0.8",
|
||||
"jss": "10.7.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"jss-plugin-rule-value-function": "10.7.1"
|
||||
},
|
||||
"gitHead": "2b54776c03d97a3bccbbcb28b63508f74103ebbc"
|
||||
}
|
25
web/node_modules/jss-plugin-vendor-prefixer/readme.md
generated
vendored
Normal file
25
web/node_modules/jss-plugin-vendor-prefixer/readme.md
generated
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# jss-plugin-vendor-prefixer
|
||||
|
||||
[](https://npmjs.org/package/jss-plugin-vendor-prefixer)
|
||||
[](https://github.com/cssinjs/jss/blob/master/LICENSE)
|
||||
[](https://npmjs.org/package/jss-plugin-vendor-prefixer)
|
||||
[](https://npmjs.org/package/jss-plugin-vendor-prefixer)
|
||||
[](https://npmjs.org/package/jss-plugin-vendor-prefixer)
|
||||
|
||||
> JSS plugin that handles vendor prefixes in the browser
|
||||
|
||||
See our website [jss-plugin-vendor-prefixer](https://cssinjs.org/jss-plugin-vendor-prefixer?v=v10.7.1) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install jss-plugin-vendor-prefixer
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add jss-plugin-vendor-prefixer
|
||||
```
|
3
web/node_modules/jss-plugin-vendor-prefixer/src/index.d.ts
generated
vendored
Normal file
3
web/node_modules/jss-plugin-vendor-prefixer/src/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
import {Plugin} from 'jss'
|
||||
|
||||
export default function jssPluginVendorPrefixer(): Plugin
|
53
web/node_modules/jss-plugin-vendor-prefixer/src/index.js
generated
vendored
Normal file
53
web/node_modules/jss-plugin-vendor-prefixer/src/index.js
generated
vendored
Normal file
|
@ -0,0 +1,53 @@
|
|||
// @flow
|
||||
import * as vendor from 'css-vendor'
|
||||
import {toCssValue, type Plugin, type KeyframesRule} from 'jss'
|
||||
|
||||
/**
|
||||
* Add vendor prefix to a property name when needed.
|
||||
*
|
||||
* @api public
|
||||
*/
|
||||
export default function jssVendorPrefixer(): Plugin {
|
||||
function onProcessRule(rule) {
|
||||
if (rule.type === 'keyframes') {
|
||||
const atRule: KeyframesRule = (rule: any)
|
||||
atRule.at = vendor.supportedKeyframes(atRule.at)
|
||||
}
|
||||
}
|
||||
|
||||
function prefixStyle(style) {
|
||||
for (const prop in style) {
|
||||
const value = style[prop]
|
||||
if (prop === 'fallbacks' && Array.isArray(value)) {
|
||||
style[prop] = value.map(prefixStyle)
|
||||
continue
|
||||
}
|
||||
let changeProp = false
|
||||
const supportedProp = vendor.supportedProperty(prop)
|
||||
if (supportedProp && supportedProp !== prop) changeProp = true
|
||||
|
||||
let changeValue = false
|
||||
const supportedValue = vendor.supportedValue(supportedProp, toCssValue(value))
|
||||
if (supportedValue && supportedValue !== value) changeValue = true
|
||||
|
||||
if (changeProp || changeValue) {
|
||||
if (changeProp) delete style[prop]
|
||||
style[supportedProp || prop] = supportedValue || value
|
||||
}
|
||||
}
|
||||
|
||||
return style
|
||||
}
|
||||
|
||||
function onProcessStyle(style, rule) {
|
||||
if (rule.type !== 'style') return style
|
||||
|
||||
return prefixStyle(style)
|
||||
}
|
||||
|
||||
function onChangeValue(value, prop) {
|
||||
return vendor.supportedValue(prop, toCssValue(value)) || value
|
||||
}
|
||||
|
||||
return {onProcessRule, onProcessStyle, onChangeValue}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue