You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
861 lines
22 KiB
861 lines
22 KiB
1 year ago
|
/**
|
||
|
* jQuery asGradient v0.3.3
|
||
|
* https://github.com/amazingSurge/jquery-asGradient
|
||
|
*
|
||
|
* Copyright (c) amazingSurge
|
||
|
* Released under the LGPL-3.0 license
|
||
|
*/
|
||
|
(function (global, factory) {
|
||
|
if (typeof define === "function" && define.amd) {
|
||
|
define("AsGradient", ["exports", "jquery", "jquery-asColor"], factory);
|
||
|
} else if (typeof exports !== "undefined") {
|
||
|
factory(exports, require("jquery"), require("jquery-asColor"));
|
||
|
} else {
|
||
|
var mod = {
|
||
|
exports: {},
|
||
|
};
|
||
|
factory(mod.exports, global.jQuery, global.AsColor);
|
||
|
global.AsGradient = mod.exports;
|
||
|
}
|
||
|
})(this, function (exports, _jquery, _jqueryAsColor) {
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true,
|
||
|
});
|
||
|
|
||
|
var _jquery2 = _interopRequireDefault(_jquery);
|
||
|
|
||
|
var _jqueryAsColor2 = _interopRequireDefault(_jqueryAsColor);
|
||
|
|
||
|
function _interopRequireDefault(obj) {
|
||
|
return obj && obj.__esModule
|
||
|
? obj
|
||
|
: {
|
||
|
default: obj,
|
||
|
};
|
||
|
}
|
||
|
|
||
|
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;
|
||
|
};
|
||
|
|
||
|
function _classCallCheck(instance, Constructor) {
|
||
|
if (!(instance instanceof Constructor)) {
|
||
|
throw new TypeError("Cannot call a class as a function");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var _createClass = (function () {
|
||
|
function defineProperties(target, props) {
|
||
|
for (var i = 0; i < props.length; i++) {
|
||
|
var descriptor = props[i];
|
||
|
descriptor.enumerable = descriptor.enumerable || false;
|
||
|
descriptor.configurable = true;
|
||
|
if ("value" in descriptor) descriptor.writable = true;
|
||
|
Object.defineProperty(target, descriptor.key, descriptor);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return function (Constructor, protoProps, staticProps) {
|
||
|
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||
|
if (staticProps) defineProperties(Constructor, staticProps);
|
||
|
return Constructor;
|
||
|
};
|
||
|
})();
|
||
|
|
||
|
var DEFAULTS = {
|
||
|
prefixes: ["-webkit-", "-moz-", "-ms-", "-o-"],
|
||
|
forceStandard: true,
|
||
|
angleUseKeyword: true,
|
||
|
emptyString: "",
|
||
|
degradationFormat: false,
|
||
|
cleanPosition: true,
|
||
|
color: {
|
||
|
format: false, // rgb, rgba, hsl, hsla, hex
|
||
|
hexUseName: false,
|
||
|
reduceAlpha: true,
|
||
|
shortenHex: true,
|
||
|
zeroAlphaAsTransparent: false,
|
||
|
invalidValue: {
|
||
|
r: 0,
|
||
|
g: 0,
|
||
|
b: 0,
|
||
|
a: 1,
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
/* eslint no-extend-native: "off" */
|
||
|
if (!String.prototype.includes) {
|
||
|
String.prototype.includes = function (search, start) {
|
||
|
"use strict";
|
||
|
|
||
|
if (typeof start !== "number") {
|
||
|
start = 0;
|
||
|
}
|
||
|
|
||
|
if (start + search.length > this.length) {
|
||
|
return false;
|
||
|
}
|
||
|
return this.indexOf(search, start) !== -1;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function getPrefix() {
|
||
|
var ua = window.navigator.userAgent;
|
||
|
var prefix = "";
|
||
|
if (/MSIE/g.test(ua)) {
|
||
|
prefix = "-ms-";
|
||
|
} else if (/Firefox/g.test(ua)) {
|
||
|
prefix = "-moz-";
|
||
|
} else if (/(WebKit)/i.test(ua)) {
|
||
|
prefix = "-webkit-";
|
||
|
} else if (/Opera/g.test(ua)) {
|
||
|
prefix = "-o-";
|
||
|
}
|
||
|
return prefix;
|
||
|
}
|
||
|
|
||
|
function flip(o) {
|
||
|
var flipped = {};
|
||
|
for (var i in o) {
|
||
|
if (o.hasOwnProperty(i)) {
|
||
|
flipped[o[i]] = i;
|
||
|
}
|
||
|
}
|
||
|
return flipped;
|
||
|
}
|
||
|
|
||
|
function reverseDirection(direction) {
|
||
|
var mapping = {
|
||
|
top: "bottom",
|
||
|
right: "left",
|
||
|
bottom: "top",
|
||
|
left: "right",
|
||
|
"right top": "left bottom",
|
||
|
"top right": "bottom left",
|
||
|
"bottom right": "top left",
|
||
|
"right bottom": "left top",
|
||
|
"left bottom": "right top",
|
||
|
"bottom left": "top right",
|
||
|
"top left": "bottom right",
|
||
|
"left top": "right bottom",
|
||
|
};
|
||
|
return mapping.hasOwnProperty(direction) ? mapping[direction] : direction;
|
||
|
}
|
||
|
|
||
|
function isDirection(n) {
|
||
|
var reg = /^(top|left|right|bottom)$/i;
|
||
|
return reg.test(n);
|
||
|
}
|
||
|
|
||
|
var keywordAngleMap = {
|
||
|
"to top": 0,
|
||
|
"to right": 90,
|
||
|
"to bottom": 180,
|
||
|
"to left": 270,
|
||
|
"to right top": 45,
|
||
|
"to top right": 45,
|
||
|
"to bottom right": 135,
|
||
|
"to right bottom": 135,
|
||
|
"to left bottom": 225,
|
||
|
"to bottom left": 225,
|
||
|
"to top left": 315,
|
||
|
"to left top": 315,
|
||
|
};
|
||
|
|
||
|
var angleKeywordMap = flip(keywordAngleMap);
|
||
|
|
||
|
var RegExpStrings = (function () {
|
||
|
var color =
|
||
|
/(?:rgba|rgb|hsla|hsl)\s*\([\s\d\.,%]+\)|#[a-z0-9]{3,6}|[a-z]+/i;
|
||
|
var position = /\d{1,3}%/i;
|
||
|
var angle = /(?:to ){0,1}(?:(?:top|left|right|bottom)\s*){1,2}|\d+deg/i;
|
||
|
var stop = new RegExp(
|
||
|
"(" + color.source + ")\\s*(" + position.source + "){0,1}",
|
||
|
"i"
|
||
|
);
|
||
|
var stops = new RegExp(stop.source, "gi");
|
||
|
var parameters = new RegExp(
|
||
|
"(?:(" + angle.source + ")){0,1}\\s*,{0,1}\\s*(.*?)\\s*",
|
||
|
"i"
|
||
|
);
|
||
|
var full = new RegExp(
|
||
|
"^(-webkit-|-moz-|-ms-|-o-){0,1}(linear|radial|repeating-linear)-gradient\\s*\\(\\s*(" +
|
||
|
parameters.source +
|
||
|
")\\s*\\)$",
|
||
|
"i"
|
||
|
);
|
||
|
|
||
|
return {
|
||
|
FULL: full,
|
||
|
ANGLE: angle,
|
||
|
COLOR: color,
|
||
|
POSITION: position,
|
||
|
STOP: stop,
|
||
|
STOPS: stops,
|
||
|
PARAMETERS: new RegExp("^" + parameters.source + "$", "i"),
|
||
|
};
|
||
|
})();
|
||
|
|
||
|
var GradientString = {
|
||
|
matchString: function matchString(string) {
|
||
|
var matched = this.parseString(string);
|
||
|
if (
|
||
|
matched &&
|
||
|
matched.value &&
|
||
|
matched.value.stops &&
|
||
|
matched.value.stops.length > 1
|
||
|
) {
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
},
|
||
|
|
||
|
parseString: function parseString(string) {
|
||
|
string = _jquery2.default.trim(string);
|
||
|
var matched = void 0;
|
||
|
if ((matched = RegExpStrings.FULL.exec(string)) !== null) {
|
||
|
var value = this.parseParameters(matched[3]);
|
||
|
|
||
|
return {
|
||
|
prefix: typeof matched[1] === "undefined" ? null : matched[1],
|
||
|
type: matched[2],
|
||
|
value: value,
|
||
|
};
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
parseParameters: function parseParameters(string) {
|
||
|
var matched = void 0;
|
||
|
if ((matched = RegExpStrings.PARAMETERS.exec(string)) !== null) {
|
||
|
var stops = this.parseStops(matched[2]);
|
||
|
return {
|
||
|
angle: typeof matched[1] === "undefined" ? 0 : matched[1],
|
||
|
stops: stops,
|
||
|
};
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
parseStops: function parseStops(string) {
|
||
|
var _this = this;
|
||
|
|
||
|
var matched = void 0;
|
||
|
var result = [];
|
||
|
if ((matched = string.match(RegExpStrings.STOPS)) !== null) {
|
||
|
_jquery2.default.each(matched, function (i, item) {
|
||
|
var stop = _this.parseStop(item);
|
||
|
if (stop) {
|
||
|
result.push(stop);
|
||
|
}
|
||
|
});
|
||
|
return result;
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
formatStops: function formatStops(stops, cleanPosition) {
|
||
|
var stop = void 0;
|
||
|
var output = [];
|
||
|
var positions = [];
|
||
|
var colors = [];
|
||
|
var position = void 0;
|
||
|
|
||
|
for (var i = 0; i < stops.length; i++) {
|
||
|
stop = stops[i];
|
||
|
if (typeof stop.position === "undefined" || stop.position === null) {
|
||
|
if (i === 0) {
|
||
|
position = 0;
|
||
|
} else if (i === stops.length - 1) {
|
||
|
position = 1;
|
||
|
} else {
|
||
|
position = undefined;
|
||
|
}
|
||
|
} else {
|
||
|
position = stop.position;
|
||
|
}
|
||
|
positions.push(position);
|
||
|
colors.push(stop.color.toString());
|
||
|
}
|
||
|
|
||
|
positions = (function (data) {
|
||
|
var start = null;
|
||
|
var average = void 0;
|
||
|
for (var _i = 0; _i < data.length; _i++) {
|
||
|
if (isNaN(data[_i])) {
|
||
|
if (start === null) {
|
||
|
start = _i;
|
||
|
continue;
|
||
|
}
|
||
|
} else if (start) {
|
||
|
average = (data[_i] - data[start - 1]) / (_i - start + 1);
|
||
|
for (var j = start; j < _i; j++) {
|
||
|
data[j] = data[start - 1] + (j - start + 1) * average;
|
||
|
}
|
||
|
start = null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return data;
|
||
|
})(positions);
|
||
|
|
||
|
for (var x = 0; x < stops.length; x++) {
|
||
|
if (
|
||
|
cleanPosition &&
|
||
|
((x === 0 && positions[x] === 0) ||
|
||
|
(x === stops.length - 1 && positions[x] === 1))
|
||
|
) {
|
||
|
position = "";
|
||
|
} else {
|
||
|
position = " " + this.formatPosition(positions[x]);
|
||
|
}
|
||
|
|
||
|
output.push(colors[x] + position);
|
||
|
}
|
||
|
return output.join(", ");
|
||
|
},
|
||
|
|
||
|
parseStop: function parseStop(string) {
|
||
|
var matched = void 0;
|
||
|
if ((matched = RegExpStrings.STOP.exec(string)) !== null) {
|
||
|
var position = this.parsePosition(matched[2]);
|
||
|
|
||
|
return {
|
||
|
color: matched[1],
|
||
|
position: position,
|
||
|
};
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
parsePosition: function parsePosition(string) {
|
||
|
if (typeof string === "string" && string.substr(-1) === "%") {
|
||
|
string = parseFloat(string.slice(0, -1) / 100);
|
||
|
}
|
||
|
|
||
|
if (typeof string !== "undefined" && string !== null) {
|
||
|
return parseFloat(string, 10);
|
||
|
} else {
|
||
|
return null;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
formatPosition: function formatPosition(value) {
|
||
|
return parseInt(value * 100, 10) + "%";
|
||
|
},
|
||
|
|
||
|
parseAngle: function parseAngle(string, notStandard) {
|
||
|
if (typeof string === "string" && string.includes("deg")) {
|
||
|
string = string.replace("deg", "");
|
||
|
}
|
||
|
if (!isNaN(string)) {
|
||
|
if (notStandard) {
|
||
|
string = this.fixOldAngle(string);
|
||
|
}
|
||
|
}
|
||
|
if (typeof string === "string") {
|
||
|
var directions = string.split(" ");
|
||
|
|
||
|
var filtered = [];
|
||
|
for (var i in directions) {
|
||
|
if (isDirection(directions[i])) {
|
||
|
filtered.push(directions[i].toLowerCase());
|
||
|
}
|
||
|
}
|
||
|
var keyword = filtered.join(" ");
|
||
|
|
||
|
if (!string.includes("to ")) {
|
||
|
keyword = reverseDirection(keyword);
|
||
|
}
|
||
|
keyword = "to " + keyword;
|
||
|
if (keywordAngleMap.hasOwnProperty(keyword)) {
|
||
|
string = keywordAngleMap[keyword];
|
||
|
}
|
||
|
}
|
||
|
var value = parseFloat(string, 10);
|
||
|
|
||
|
if (value > 360) {
|
||
|
value %= 360;
|
||
|
} else if (value < 0) {
|
||
|
value %= -360;
|
||
|
|
||
|
if (value !== 0) {
|
||
|
value += 360;
|
||
|
}
|
||
|
}
|
||
|
return value;
|
||
|
},
|
||
|
|
||
|
fixOldAngle: function fixOldAngle(value) {
|
||
|
value = parseFloat(value);
|
||
|
value = Math.abs(450 - value) % 360;
|
||
|
value = parseFloat(value.toFixed(3));
|
||
|
return value;
|
||
|
},
|
||
|
|
||
|
formatAngle: function formatAngle(value, notStandard, useKeyword) {
|
||
|
value = parseInt(value, 10);
|
||
|
if (useKeyword && angleKeywordMap.hasOwnProperty(value)) {
|
||
|
value = angleKeywordMap[value];
|
||
|
if (notStandard) {
|
||
|
value = reverseDirection(value.substr(3));
|
||
|
}
|
||
|
} else {
|
||
|
if (notStandard) {
|
||
|
value = this.fixOldAngle(value);
|
||
|
}
|
||
|
value = value + "deg";
|
||
|
}
|
||
|
|
||
|
return value;
|
||
|
},
|
||
|
};
|
||
|
|
||
|
var ColorStop = (function () {
|
||
|
function ColorStop(color, position, gradient) {
|
||
|
_classCallCheck(this, ColorStop);
|
||
|
|
||
|
this.color = (0, _jqueryAsColor2.default)(color, gradient.options.color);
|
||
|
this.position = GradientString.parsePosition(position);
|
||
|
this.id = ++gradient._stopIdCount;
|
||
|
this.gradient = gradient;
|
||
|
}
|
||
|
|
||
|
_createClass(ColorStop, [
|
||
|
{
|
||
|
key: "setPosition",
|
||
|
value: function setPosition(string) {
|
||
|
var position = GradientString.parsePosition(string);
|
||
|
if (this.position !== position) {
|
||
|
this.position = position;
|
||
|
this.gradient.reorder();
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "setColor",
|
||
|
value: function setColor(string) {
|
||
|
this.color.fromString(string);
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "remove",
|
||
|
value: function remove() {
|
||
|
this.gradient.removeById(this.id);
|
||
|
},
|
||
|
},
|
||
|
]);
|
||
|
|
||
|
return ColorStop;
|
||
|
})();
|
||
|
|
||
|
var GradientTypes = {
|
||
|
LINEAR: {
|
||
|
parse: function parse(result) {
|
||
|
return {
|
||
|
r:
|
||
|
result[1].substr(-1) === "%"
|
||
|
? parseInt(result[1].slice(0, -1) * 2.55, 10)
|
||
|
: parseInt(result[1], 10),
|
||
|
g:
|
||
|
result[2].substr(-1) === "%"
|
||
|
? parseInt(result[2].slice(0, -1) * 2.55, 10)
|
||
|
: parseInt(result[2], 10),
|
||
|
b:
|
||
|
result[3].substr(-1) === "%"
|
||
|
? parseInt(result[3].slice(0, -1) * 2.55, 10)
|
||
|
: parseInt(result[3], 10),
|
||
|
a: 1,
|
||
|
};
|
||
|
},
|
||
|
to: function to(gradient, instance, prefix) {
|
||
|
if (gradient.stops.length === 0) {
|
||
|
return instance.options.emptyString;
|
||
|
}
|
||
|
if (gradient.stops.length === 1) {
|
||
|
return gradient.stops[0].color.to(instance.options.degradationFormat);
|
||
|
}
|
||
|
|
||
|
var standard = instance.options.forceStandard;
|
||
|
var _prefix = instance._prefix;
|
||
|
|
||
|
if (!_prefix) {
|
||
|
standard = true;
|
||
|
}
|
||
|
if (
|
||
|
prefix &&
|
||
|
-1 !== _jquery2.default.inArray(prefix, instance.options.prefixes)
|
||
|
) {
|
||
|
standard = false;
|
||
|
_prefix = prefix;
|
||
|
}
|
||
|
|
||
|
var angle = GradientString.formatAngle(
|
||
|
gradient.angle,
|
||
|
!standard,
|
||
|
instance.options.angleUseKeyword
|
||
|
);
|
||
|
var stops = GradientString.formatStops(
|
||
|
gradient.stops,
|
||
|
instance.options.cleanPosition
|
||
|
);
|
||
|
|
||
|
var output = "linear-gradient(" + angle + ", " + stops + ")";
|
||
|
if (standard) {
|
||
|
return output;
|
||
|
} else {
|
||
|
return _prefix + output;
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
var AsGradient = (function () {
|
||
|
function AsGradient(string, options) {
|
||
|
_classCallCheck(this, AsGradient);
|
||
|
|
||
|
if (
|
||
|
(typeof string === "undefined" ? "undefined" : _typeof(string)) ===
|
||
|
"object" &&
|
||
|
typeof options === "undefined"
|
||
|
) {
|
||
|
options = string;
|
||
|
string = undefined;
|
||
|
}
|
||
|
this.value = {
|
||
|
angle: 0,
|
||
|
stops: [],
|
||
|
};
|
||
|
this.options = _jquery2.default.extend(true, {}, DEFAULTS, options);
|
||
|
|
||
|
this._type = "LINEAR";
|
||
|
this._prefix = null;
|
||
|
this.length = this.value.stops.length;
|
||
|
this.current = 0;
|
||
|
this._stopIdCount = 0;
|
||
|
|
||
|
this.init(string);
|
||
|
}
|
||
|
|
||
|
_createClass(
|
||
|
AsGradient,
|
||
|
[
|
||
|
{
|
||
|
key: "init",
|
||
|
value: function init(string) {
|
||
|
if (string) {
|
||
|
this.fromString(string);
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "val",
|
||
|
value: function val(value) {
|
||
|
if (typeof value === "undefined") {
|
||
|
return this.toString();
|
||
|
} else {
|
||
|
this.fromString(value);
|
||
|
return this;
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "angle",
|
||
|
value: function angle(value) {
|
||
|
if (typeof value === "undefined") {
|
||
|
return this.value.angle;
|
||
|
} else {
|
||
|
this.value.angle = GradientString.parseAngle(value);
|
||
|
return this;
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "append",
|
||
|
value: function append(color, position) {
|
||
|
return this.insert(color, position, this.length);
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "reorder",
|
||
|
value: function reorder() {
|
||
|
if (this.length < 2) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
this.value.stops = this.value.stops.sort(function (a, b) {
|
||
|
return a.position - b.position;
|
||
|
});
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "insert",
|
||
|
value: function insert(color, position, index) {
|
||
|
if (typeof index === "undefined") {
|
||
|
index = this.current;
|
||
|
}
|
||
|
|
||
|
var stop = new ColorStop(color, position, this);
|
||
|
|
||
|
this.value.stops.splice(index, 0, stop);
|
||
|
|
||
|
this.length = this.length + 1;
|
||
|
this.current = index;
|
||
|
return stop;
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "getById",
|
||
|
value: function getById(id) {
|
||
|
if (this.length > 0) {
|
||
|
for (var i in this.value.stops) {
|
||
|
if (id === this.value.stops[i].id) {
|
||
|
return this.value.stops[i];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "removeById",
|
||
|
value: function removeById(id) {
|
||
|
var index = this.getIndexById(id);
|
||
|
if (index) {
|
||
|
this.remove(index);
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "getIndexById",
|
||
|
value: function getIndexById(id) {
|
||
|
var index = 0;
|
||
|
for (var i in this.value.stops) {
|
||
|
if (id === this.value.stops[i].id) {
|
||
|
return index;
|
||
|
}
|
||
|
index++;
|
||
|
}
|
||
|
return false;
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "getCurrent",
|
||
|
value: function getCurrent() {
|
||
|
return this.value.stops[this.current];
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "setCurrentById",
|
||
|
value: function setCurrentById(id) {
|
||
|
var index = 0;
|
||
|
for (var i in this.value.stops) {
|
||
|
if (this.value.stops[i].id !== id) {
|
||
|
index++;
|
||
|
} else {
|
||
|
this.current = index;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "get",
|
||
|
value: function get(index) {
|
||
|
if (typeof index === "undefined") {
|
||
|
index = this.current;
|
||
|
}
|
||
|
if (index >= 0 && index < this.length) {
|
||
|
this.current = index;
|
||
|
return this.value.stops[index];
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "remove",
|
||
|
value: function remove(index) {
|
||
|
if (typeof index === "undefined") {
|
||
|
index = this.current;
|
||
|
}
|
||
|
if (index >= 0 && index < this.length) {
|
||
|
this.value.stops.splice(index, 1);
|
||
|
this.length = this.length - 1;
|
||
|
this.current = index - 1;
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "empty",
|
||
|
value: function empty() {
|
||
|
this.value.stops = [];
|
||
|
this.length = 0;
|
||
|
this.current = 0;
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "reset",
|
||
|
value: function reset() {
|
||
|
this.value._angle = 0;
|
||
|
this.empty();
|
||
|
this._prefix = null;
|
||
|
this._type = "LINEAR";
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "type",
|
||
|
value: function type(_type) {
|
||
|
if (
|
||
|
typeof _type === "string" &&
|
||
|
(_type = _type.toUpperCase()) &&
|
||
|
typeof GradientTypes[_type] !== "undefined"
|
||
|
) {
|
||
|
this._type = _type;
|
||
|
return this;
|
||
|
} else {
|
||
|
return this._type;
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "fromString",
|
||
|
value: function fromString(string) {
|
||
|
var _this2 = this;
|
||
|
|
||
|
this.reset();
|
||
|
|
||
|
var result = GradientString.parseString(string);
|
||
|
|
||
|
if (result) {
|
||
|
this._prefix = result.prefix;
|
||
|
this.type(result.type);
|
||
|
if (result.value) {
|
||
|
this.value.angle = GradientString.parseAngle(
|
||
|
result.value.angle,
|
||
|
this._prefix !== null
|
||
|
);
|
||
|
|
||
|
_jquery2.default.each(result.value.stops, function (i, stop) {
|
||
|
_this2.append(stop.color, stop.position);
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "toString",
|
||
|
value: function toString(prefix) {
|
||
|
if (prefix === true) {
|
||
|
prefix = getPrefix();
|
||
|
}
|
||
|
return GradientTypes[this.type()].to(this.value, this, prefix);
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "matchString",
|
||
|
value: function matchString(string) {
|
||
|
return GradientString.matchString(string);
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "toStringWithAngle",
|
||
|
value: function toStringWithAngle(angle, prefix) {
|
||
|
var value = _jquery2.default.extend(true, {}, this.value);
|
||
|
value.angle = GradientString.parseAngle(angle);
|
||
|
|
||
|
if (prefix === true) {
|
||
|
prefix = getPrefix();
|
||
|
}
|
||
|
|
||
|
return GradientTypes[this.type()].to(value, this, prefix);
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key: "getPrefixedStrings",
|
||
|
value: function getPrefixedStrings() {
|
||
|
var strings = [];
|
||
|
for (var i in this.options.prefixes) {
|
||
|
if (Object.hasOwnProperty.call(this.options.prefixes, i)) {
|
||
|
strings.push(this.toString(this.options.prefixes[i]));
|
||
|
}
|
||
|
}
|
||
|
return strings;
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
[
|
||
|
{
|
||
|
key: "setDefaults",
|
||
|
value: function setDefaults(options) {
|
||
|
_jquery2.default.extend(
|
||
|
true,
|
||
|
DEFAULTS,
|
||
|
_jquery2.default.isPlainObject(options) && options
|
||
|
);
|
||
|
},
|
||
|
},
|
||
|
]
|
||
|
);
|
||
|
|
||
|
return AsGradient;
|
||
|
})();
|
||
|
|
||
|
var info = {
|
||
|
version: "0.3.3",
|
||
|
};
|
||
|
|
||
|
var OtherAsGradient = _jquery2.default.asGradient;
|
||
|
|
||
|
var jQueryAsGradient = function jQueryAsGradient() {
|
||
|
for (
|
||
|
var _len = arguments.length, args = Array(_len), _key = 0;
|
||
|
_key < _len;
|
||
|
_key++
|
||
|
) {
|
||
|
args[_key] = arguments[_key];
|
||
|
}
|
||
|
|
||
|
return new (Function.prototype.bind.apply(
|
||
|
AsGradient,
|
||
|
[null].concat(args)
|
||
|
))();
|
||
|
};
|
||
|
|
||
|
_jquery2.default.asGradient = jQueryAsGradient;
|
||
|
_jquery2.default.asGradient.Constructor = AsGradient;
|
||
|
|
||
|
_jquery2.default.extend(
|
||
|
_jquery2.default.asGradient,
|
||
|
{
|
||
|
setDefaults: AsGradient.setDefaults,
|
||
|
noConflict: function noConflict() {
|
||
|
_jquery2.default.asGradient = OtherAsGradient;
|
||
|
return jQueryAsGradient;
|
||
|
},
|
||
|
},
|
||
|
GradientString,
|
||
|
info
|
||
|
);
|
||
|
|
||
|
var main = _jquery2.default.asGradient;
|
||
|
|
||
|
exports.default = main;
|
||
|
});
|