mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-20 13:34:37 +01:00
fix bundles
This commit is contained in:
parent
890b3eaa00
commit
8a646d85c6
7 changed files with 92 additions and 5553 deletions
|
@ -125,7 +125,6 @@
|
|||
<ItemGroup>
|
||||
<Folder Include="Build\" />
|
||||
<Folder Include="Views\AppsPublic\Crowdfund\Templates" />
|
||||
<Folder Include="wwwroot\vendor\animejs" />
|
||||
<Folder Include="wwwroot\vendor\clipboard.js\" />
|
||||
<Folder Include="wwwroot\vendor\highlightjs\" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -63,20 +63,31 @@
|
|||
"wwwroot/cart/js/cart.jquery.js"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"outputFileName": "wwwroot/bundles/crowdfund-bundle.min.js",
|
||||
"outputFileName": "wwwroot/bundles/crowdfund.min.js",
|
||||
"inputFiles": [
|
||||
"wwwroot/vendor/vuejs/vue.min.js",
|
||||
"wwwroot/vendor/babel-polyfill/polyfill.min.js",
|
||||
"wwwroot/vendor/vue-toasted/vue-toasted.min.js",
|
||||
"wwwroot/vendor/bootstrap-vue/bootstrap-vue.js",
|
||||
"wwwroot/vendor/signalr/signalr.js",
|
||||
"wwwroot/vendor/moment/moment.js",
|
||||
"wwwroot/vendor/animejs/anime.js",
|
||||
"wwwroot/vendor/animejs/anime.min.js",
|
||||
"wwwroot/modal/btcpay.js",
|
||||
"wwwroot/crowdfund/**/*.js"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"outputFileName": "wwwroot/bundles/crowdfund-bundle.min.js",
|
||||
"inputFiles": [
|
||||
"wwwroot/bundles/crowdfund.min.js",
|
||||
"wwwroot/vendor/moment/moment.js"
|
||||
],
|
||||
"minify": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"outputFileName": "wwwroot/bundles/crowdfund-bundle.min.css",
|
||||
"inputFiles": [
|
||||
|
|
|
@ -16,6 +16,50 @@ function addLoadEvent(func) {
|
|||
}
|
||||
addLoadEvent(function (ev) {
|
||||
Vue.use(Toasted);
|
||||
|
||||
Vue.component('contribute', {
|
||||
props: ["targetCurrency", "active", "perks", "inModal"],
|
||||
template: "#contribute-template"
|
||||
});
|
||||
|
||||
Vue.component('perks', {
|
||||
props: ["perks", "targetCurrency", "active", "inModal"],
|
||||
template: "#perks-template"
|
||||
});
|
||||
|
||||
Vue.component('perk', {
|
||||
props: ["perk", "targetCurrency", "active", "inModal"],
|
||||
template: "#perk-template",
|
||||
data: function () {
|
||||
return {
|
||||
amount: null,
|
||||
expanded: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onContributeFormSubmit: function (e) {
|
||||
if (e) {
|
||||
e.preventDefault();
|
||||
}
|
||||
if(!this.active){
|
||||
return;
|
||||
}
|
||||
eventAggregator.$emit("contribute", {amount: this.amount, choiceKey: this.choiceKey});
|
||||
},
|
||||
expand: function(){
|
||||
if(this.active){
|
||||
this.expanded = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
mounted: function(){
|
||||
this.amount = this.perk.price.value;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
app = new Vue({
|
||||
el: '#app',
|
||||
data: function(){
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
Vue.component('contribute', {
|
||||
props: ["targetCurrency", "active", "perks", "inModal"],
|
||||
template: "#contribute-template"
|
||||
});
|
||||
|
||||
Vue.component('perks', {
|
||||
props: ["perks", "targetCurrency", "active", "inModal"],
|
||||
template: "#perks-template"
|
||||
});
|
||||
|
||||
Vue.component('perk', {
|
||||
props: ["perk", "targetCurrency", "active", "inModal"],
|
||||
template: "#perk-template",
|
||||
data: function () {
|
||||
return {
|
||||
amount: null,
|
||||
expanded: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onContributeFormSubmit: function (e) {
|
||||
if (e) {
|
||||
e.preventDefault();
|
||||
}
|
||||
if(!this.active){
|
||||
return;
|
||||
}
|
||||
eventAggregator.$emit("contribute", {amount: this.amount, choiceKey: this.choiceKey});
|
||||
},
|
||||
expand: function(){
|
||||
if(this.active){
|
||||
this.expanded = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
mounted: function(){
|
||||
this.amount = this.perk.price.value;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
993
BTCPayServer/wwwroot/vendor/animejs/anime.js
vendored
993
BTCPayServer/wwwroot/vendor/animejs/anime.js
vendored
|
@ -1,993 +0,0 @@
|
|||
/**
|
||||
* http://animejs.com
|
||||
* JavaScript animation engine
|
||||
* @version v2.2.0
|
||||
* @author Julian Garnier
|
||||
* @copyright ©2017 Julian Garnier
|
||||
* Released under the MIT license
|
||||
**/
|
||||
|
||||
(function(root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define([], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory();
|
||||
} else {
|
||||
// Browser globals (root is window)
|
||||
root.anime = factory();
|
||||
}
|
||||
}(this, () => {
|
||||
|
||||
// Defaults
|
||||
|
||||
const defaultInstanceSettings = {
|
||||
update: undefined,
|
||||
begin: undefined,
|
||||
run: undefined,
|
||||
complete: undefined,
|
||||
loop: 1,
|
||||
direction: 'normal',
|
||||
autoplay: true,
|
||||
offset: 0
|
||||
}
|
||||
|
||||
const defaultTweenSettings = {
|
||||
duration: 1000,
|
||||
delay: 0,
|
||||
easing: 'easeOutElastic',
|
||||
elasticity: 500,
|
||||
round: 0
|
||||
}
|
||||
|
||||
const validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skewX', 'skewY', 'perspective'];
|
||||
let transformString;
|
||||
|
||||
// Utils
|
||||
|
||||
function stringContains(str, text) {
|
||||
return str.indexOf(text) > -1;
|
||||
}
|
||||
|
||||
const is = {
|
||||
arr: a => Array.isArray(a),
|
||||
obj: a => stringContains(Object.prototype.toString.call(a), 'Object'),
|
||||
pth: a => is.obj(a) && a.hasOwnProperty('totalLength'),
|
||||
svg: a => a instanceof SVGElement,
|
||||
dom: a => a.nodeType || is.svg(a),
|
||||
str: a => typeof a === 'string',
|
||||
fnc: a => typeof a === 'function',
|
||||
und: a => typeof a === 'undefined',
|
||||
hex: a => /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a),
|
||||
rgb: a => /^rgb/.test(a),
|
||||
hsl: a => /^hsl/.test(a),
|
||||
col: a => (is.hex(a) || is.rgb(a) || is.hsl(a))
|
||||
}
|
||||
|
||||
// BezierEasing https://github.com/gre/bezier-easing
|
||||
|
||||
const bezier = (() => {
|
||||
|
||||
const kSplineTableSize = 11;
|
||||
const kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);
|
||||
|
||||
function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1 };
|
||||
function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1 };
|
||||
function C (aA1) { return 3.0 * aA1 };
|
||||
|
||||
function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT };
|
||||
function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1) };
|
||||
|
||||
function binarySubdivide (aX, aA, aB, mX1, mX2) {
|
||||
let currentX, currentT, i = 0;
|
||||
do {
|
||||
currentT = aA + (aB - aA) / 2.0;
|
||||
currentX = calcBezier(currentT, mX1, mX2) - aX;
|
||||
if (currentX > 0.0) { aB = currentT } else { aA = currentT };
|
||||
} while (Math.abs(currentX) > 0.0000001 && ++i < 10);
|
||||
return currentT;
|
||||
}
|
||||
|
||||
function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {
|
||||
for (let i = 0; i < 4; ++i) {
|
||||
const currentSlope = getSlope(aGuessT, mX1, mX2);
|
||||
if (currentSlope === 0.0) return aGuessT;
|
||||
const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
|
||||
aGuessT -= currentX / currentSlope;
|
||||
}
|
||||
return aGuessT;
|
||||
}
|
||||
|
||||
function bezier(mX1, mY1, mX2, mY2) {
|
||||
|
||||
if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) return;
|
||||
let sampleValues = new Float32Array(kSplineTableSize);
|
||||
|
||||
if (mX1 !== mY1 || mX2 !== mY2) {
|
||||
for (let i = 0; i < kSplineTableSize; ++i) {
|
||||
sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
|
||||
}
|
||||
}
|
||||
|
||||
function getTForX(aX) {
|
||||
|
||||
let intervalStart = 0.0;
|
||||
let currentSample = 1;
|
||||
const lastSample = kSplineTableSize - 1;
|
||||
|
||||
for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
|
||||
intervalStart += kSampleStepSize;
|
||||
}
|
||||
|
||||
--currentSample;
|
||||
|
||||
const dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
|
||||
const guessForT = intervalStart + dist * kSampleStepSize;
|
||||
const initialSlope = getSlope(guessForT, mX1, mX2);
|
||||
|
||||
if (initialSlope >= 0.001) {
|
||||
return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
|
||||
} else if (initialSlope === 0.0) {
|
||||
return guessForT;
|
||||
} else {
|
||||
return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return x => {
|
||||
if (mX1 === mY1 && mX2 === mY2) return x;
|
||||
if (x === 0) return 0;
|
||||
if (x === 1) return 1;
|
||||
return calcBezier(getTForX(x), mY1, mY2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return bezier;
|
||||
|
||||
})();
|
||||
|
||||
const easings = (() => {
|
||||
|
||||
const names = ['Quad', 'Cubic', 'Quart', 'Quint', 'Sine', 'Expo', 'Circ', 'Back', 'Elastic'];
|
||||
|
||||
// Elastic easing adapted from jQueryUI http://api.jqueryui.com/easings/
|
||||
|
||||
function elastic(t, p) {
|
||||
return t === 0 || t === 1 ? t :
|
||||
-Math.pow(2, 10 * (t - 1)) * Math.sin((((t - 1) - (p / (Math.PI * 2.0) * Math.asin(1))) * (Math.PI * 2)) / p );
|
||||
}
|
||||
|
||||
// Approximated Penner equations http://matthewlein.com/ceaser/
|
||||
|
||||
const equations = {
|
||||
In: [
|
||||
[0.550, 0.085, 0.680, 0.530], /* InQuad */
|
||||
[0.550, 0.055, 0.675, 0.190], /* InCubic */
|
||||
[0.895, 0.030, 0.685, 0.220], /* InQuart */
|
||||
[0.755, 0.050, 0.855, 0.060], /* InQuint */
|
||||
[0.470, 0.000, 0.745, 0.715], /* InSine */
|
||||
[0.950, 0.050, 0.795, 0.035], /* InExpo */
|
||||
[0.600, 0.040, 0.980, 0.335], /* InCirc */
|
||||
[0.600, -0.280, 0.735, 0.045], /* InBack */
|
||||
elastic /* InElastic */
|
||||
], Out: [
|
||||
[0.250, 0.460, 0.450, 0.940], /* OutQuad */
|
||||
[0.215, 0.610, 0.355, 1.000], /* OutCubic */
|
||||
[0.165, 0.840, 0.440, 1.000], /* OutQuart */
|
||||
[0.230, 1.000, 0.320, 1.000], /* OutQuint */
|
||||
[0.390, 0.575, 0.565, 1.000], /* OutSine */
|
||||
[0.190, 1.000, 0.220, 1.000], /* OutExpo */
|
||||
[0.075, 0.820, 0.165, 1.000], /* OutCirc */
|
||||
[0.175, 0.885, 0.320, 1.275], /* OutBack */
|
||||
(t, f) => 1 - elastic(1 - t, f) /* OutElastic */
|
||||
], InOut: [
|
||||
[0.455, 0.030, 0.515, 0.955], /* InOutQuad */
|
||||
[0.645, 0.045, 0.355, 1.000], /* InOutCubic */
|
||||
[0.770, 0.000, 0.175, 1.000], /* InOutQuart */
|
||||
[0.860, 0.000, 0.070, 1.000], /* InOutQuint */
|
||||
[0.445, 0.050, 0.550, 0.950], /* InOutSine */
|
||||
[1.000, 0.000, 0.000, 1.000], /* InOutExpo */
|
||||
[0.785, 0.135, 0.150, 0.860], /* InOutCirc */
|
||||
[0.680, -0.550, 0.265, 1.550], /* InOutBack */
|
||||
(t, f) => t < .5 ? elastic(t * 2, f) / 2 : 1 - elastic(t * -2 + 2, f) / 2 /* InOutElastic */
|
||||
]
|
||||
}
|
||||
|
||||
let functions = {
|
||||
linear: bezier(0.250, 0.250, 0.750, 0.750)
|
||||
}
|
||||
|
||||
for (let type in equations) {
|
||||
equations[type].forEach((f, i) => {
|
||||
functions['ease'+type+names[i]] = is.fnc(f) ? f : bezier.apply(this, f);
|
||||
});
|
||||
}
|
||||
|
||||
return functions;
|
||||
|
||||
})();
|
||||
|
||||
// Strings
|
||||
|
||||
function stringToHyphens(str) {
|
||||
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
||||
}
|
||||
|
||||
function selectString(str) {
|
||||
if (is.col(str)) return;
|
||||
try {
|
||||
let nodes = document.querySelectorAll(str);
|
||||
return nodes;
|
||||
} catch(e) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Arrays
|
||||
|
||||
function filterArray(arr, callback) {
|
||||
const len = arr.length;
|
||||
const thisArg = arguments.length >= 2 ? arguments[1] : void 0;
|
||||
let result = [];
|
||||
for (let i = 0; i < len; i++) {
|
||||
if (i in arr) {
|
||||
const val = arr[i];
|
||||
if (callback.call(thisArg, val, i, arr)) {
|
||||
result.push(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function flattenArray(arr) {
|
||||
return arr.reduce((a, b) => a.concat(is.arr(b) ? flattenArray(b) : b), []);
|
||||
}
|
||||
|
||||
function toArray(o) {
|
||||
if (is.arr(o)) return o;
|
||||
if (is.str(o)) o = selectString(o) || o;
|
||||
if (o instanceof NodeList || o instanceof HTMLCollection) return [].slice.call(o);
|
||||
return [o];
|
||||
}
|
||||
|
||||
function arrayContains(arr, val) {
|
||||
return arr.some(a => a === val);
|
||||
}
|
||||
|
||||
// Objects
|
||||
|
||||
function cloneObject(o) {
|
||||
let clone = {};
|
||||
for (let p in o) clone[p] = o[p];
|
||||
return clone;
|
||||
}
|
||||
|
||||
function replaceObjectProps(o1, o2) {
|
||||
let o = cloneObject(o1);
|
||||
for (let p in o1) o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p];
|
||||
return o;
|
||||
}
|
||||
|
||||
function mergeObjects(o1, o2) {
|
||||
let o = cloneObject(o1);
|
||||
for (let p in o2) o[p] = is.und(o1[p]) ? o2[p] : o1[p];
|
||||
return o;
|
||||
}
|
||||
|
||||
// Colors
|
||||
|
||||
function rgbToRgba(rgbValue) {
|
||||
const rgb = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(rgbValue);
|
||||
return rgb ? `rgba(${rgb[1]},1)` : rgbValue;
|
||||
}
|
||||
|
||||
function hexToRgba(hexValue) {
|
||||
const rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
|
||||
const hex = hexValue.replace(rgx, (m, r, g, b) => r + r + g + g + b + b );
|
||||
const rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
||||
const r = parseInt(rgb[1], 16);
|
||||
const g = parseInt(rgb[2], 16);
|
||||
const b = parseInt(rgb[3], 16);
|
||||
return `rgba(${r},${g},${b},1)`;
|
||||
}
|
||||
|
||||
function hslToRgba(hslValue) {
|
||||
const hsl = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(hslValue) || /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(hslValue);
|
||||
const h = parseInt(hsl[1]) / 360;
|
||||
const s = parseInt(hsl[2]) / 100;
|
||||
const l = parseInt(hsl[3]) / 100;
|
||||
const a = hsl[4] || 1;
|
||||
function hue2rgb(p, q, t) {
|
||||
if (t < 0) t += 1;
|
||||
if (t > 1) t -= 1;
|
||||
if (t < 1/6) return p + (q - p) * 6 * t;
|
||||
if (t < 1/2) return q;
|
||||
if (t < 2/3) return p + (q - p) * (2/3 - t) * 6;
|
||||
return p;
|
||||
}
|
||||
let r, g, b;
|
||||
if (s == 0) {
|
||||
r = g = b = l;
|
||||
} else {
|
||||
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
||||
const p = 2 * l - q;
|
||||
r = hue2rgb(p, q, h + 1/3);
|
||||
g = hue2rgb(p, q, h);
|
||||
b = hue2rgb(p, q, h - 1/3);
|
||||
}
|
||||
return `rgba(${r * 255},${g * 255},${b * 255},${a})`;
|
||||
}
|
||||
|
||||
function colorToRgb(val) {
|
||||
if (is.rgb(val)) return rgbToRgba(val);
|
||||
if (is.hex(val)) return hexToRgba(val);
|
||||
if (is.hsl(val)) return hslToRgba(val);
|
||||
}
|
||||
|
||||
// Units
|
||||
|
||||
function getUnit(val) {
|
||||
const split = /([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(val);
|
||||
if (split) return split[2];
|
||||
}
|
||||
|
||||
function getTransformUnit(propName) {
|
||||
if (stringContains(propName, 'translate') || propName === 'perspective') return 'px';
|
||||
if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) return 'deg';
|
||||
}
|
||||
|
||||
// Values
|
||||
|
||||
function minMaxValue(val, min, max) {
|
||||
return Math.min(Math.max(val, min), max);
|
||||
}
|
||||
|
||||
function getFunctionValue(val, animatable) {
|
||||
if (!is.fnc(val)) return val;
|
||||
return val(animatable.target, animatable.id, animatable.total);
|
||||
}
|
||||
|
||||
function getCSSValue(el, prop) {
|
||||
if (prop in el.style) {
|
||||
return getComputedStyle(el).getPropertyValue(stringToHyphens(prop)) || '0';
|
||||
}
|
||||
}
|
||||
|
||||
function getAnimationType(el, prop) {
|
||||
if (is.dom(el) && arrayContains(validTransforms, prop)) return 'transform';
|
||||
if (is.dom(el) && (el.getAttribute(prop) || (is.svg(el) && el[prop]))) return 'attribute';
|
||||
if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) return 'css';
|
||||
if (el[prop] != null) return 'object';
|
||||
}
|
||||
|
||||
function getTransformValue(el, propName) {
|
||||
const defaultUnit = getTransformUnit(propName);
|
||||
const defaultVal = stringContains(propName, 'scale') ? 1 : 0 + defaultUnit;
|
||||
const str = el.style.transform;
|
||||
if (!str) return defaultVal;
|
||||
let match = [];
|
||||
let props = [];
|
||||
let values = [];
|
||||
const rgx = /(\w+)\((.+?)\)/g;
|
||||
while (match = rgx.exec(str)) {
|
||||
props.push(match[1]);
|
||||
values.push(match[2]);
|
||||
}
|
||||
const value = filterArray(values, (val, i) => props[i] === propName);
|
||||
return value.length ? value[0] : defaultVal;
|
||||
}
|
||||
|
||||
function getOriginalTargetValue(target, propName) {
|
||||
switch (getAnimationType(target, propName)) {
|
||||
case 'transform': return getTransformValue(target, propName);
|
||||
case 'css': return getCSSValue(target, propName);
|
||||
case 'attribute': return target.getAttribute(propName);
|
||||
}
|
||||
return target[propName] || 0;
|
||||
}
|
||||
|
||||
function getRelativeValue(to, from) {
|
||||
const operator = /^(\*=|\+=|-=)/.exec(to);
|
||||
if (!operator) return to;
|
||||
const u = getUnit(to) || 0;
|
||||
const x = parseFloat(from);
|
||||
const y = parseFloat(to.replace(operator[0], ''));
|
||||
switch (operator[0][0]) {
|
||||
case '+': return x + y + u;
|
||||
case '-': return x - y + u;
|
||||
case '*': return x * y + u;
|
||||
}
|
||||
}
|
||||
|
||||
function validateValue(val, unit) {
|
||||
if (is.col(val)) return colorToRgb(val);
|
||||
const originalUnit = getUnit(val);
|
||||
const unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;
|
||||
return unit && !/\s/g.test(val) ? unitLess + unit : unitLess;
|
||||
}
|
||||
|
||||
// getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes.
|
||||
// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744
|
||||
|
||||
function getDistance(p1, p2) {
|
||||
return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
|
||||
}
|
||||
|
||||
function getCircleLength(el) {
|
||||
return 2 * Math.PI * el.getAttribute('r');
|
||||
}
|
||||
|
||||
function getRectLength(el) {
|
||||
return (el.getAttribute('width') * 2) + (el.getAttribute('height') * 2);
|
||||
}
|
||||
|
||||
function getLineLength(el) {
|
||||
return getDistance(
|
||||
{x: el.getAttribute('x1'), y: el.getAttribute('y1')},
|
||||
{x: el.getAttribute('x2'), y: el.getAttribute('y2')}
|
||||
);
|
||||
}
|
||||
|
||||
function getPolylineLength(el) {
|
||||
const points = el.points;
|
||||
let totalLength = 0;
|
||||
let previousPos;
|
||||
for (let i = 0 ; i < points.numberOfItems; i++) {
|
||||
const currentPos = points.getItem(i);
|
||||
if (i > 0) totalLength += getDistance(previousPos, currentPos);
|
||||
previousPos = currentPos;
|
||||
}
|
||||
return totalLength;
|
||||
}
|
||||
|
||||
function getPolygonLength(el) {
|
||||
const points = el.points;
|
||||
return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));
|
||||
}
|
||||
|
||||
// Path animation
|
||||
|
||||
function getTotalLength(el) {
|
||||
if (el.getTotalLength) return el.getTotalLength();
|
||||
switch(el.tagName.toLowerCase()) {
|
||||
case 'circle': return getCircleLength(el);
|
||||
case 'rect': return getRectLength(el);
|
||||
case 'line': return getLineLength(el);
|
||||
case 'polyline': return getPolylineLength(el);
|
||||
case 'polygon': return getPolygonLength(el);
|
||||
}
|
||||
}
|
||||
|
||||
function setDashoffset(el) {
|
||||
const pathLength = getTotalLength(el);
|
||||
el.setAttribute('stroke-dasharray', pathLength);
|
||||
return pathLength;
|
||||
}
|
||||
|
||||
// Motion path
|
||||
|
||||
function getPath(path, percent) {
|
||||
const el = is.str(path) ? selectString(path)[0] : path;
|
||||
const p = percent || 100;
|
||||
return function(prop) {
|
||||
return {
|
||||
el: el,
|
||||
property: prop,
|
||||
totalLength: getTotalLength(el) * (p / 100)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getPathProgress(path, progress) {
|
||||
function point(offset = 0) {
|
||||
const l = progress + offset >= 1 ? progress + offset : 0;
|
||||
return path.el.getPointAtLength(l);
|
||||
}
|
||||
const p = point();
|
||||
const p0 = point(-1);
|
||||
const p1 = point(+1);
|
||||
switch (path.property) {
|
||||
case 'x': return p.x;
|
||||
case 'y': return p.y;
|
||||
case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;
|
||||
}
|
||||
}
|
||||
|
||||
// Decompose value
|
||||
|
||||
function decomposeValue(val, unit) {
|
||||
const rgx = /-?\d*\.?\d+/g;
|
||||
const value = validateValue((is.pth(val) ? val.totalLength : val), unit) + '';
|
||||
return {
|
||||
original: value,
|
||||
numbers: value.match(rgx) ? value.match(rgx).map(Number) : [0],
|
||||
strings: (is.str(val) || unit) ? value.split(rgx) : []
|
||||
}
|
||||
}
|
||||
|
||||
// Animatables
|
||||
|
||||
function parseTargets(targets) {
|
||||
const targetsArray = targets ? (flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets))) : [];
|
||||
return filterArray(targetsArray, (item, pos, self) => self.indexOf(item) === pos);
|
||||
}
|
||||
|
||||
function getAnimatables(targets) {
|
||||
const parsed = parseTargets(targets);
|
||||
return parsed.map((t, i) => {
|
||||
return {target: t, id: i, total: parsed.length};
|
||||
});
|
||||
}
|
||||
|
||||
// Properties
|
||||
|
||||
function normalizePropertyTweens(prop, tweenSettings) {
|
||||
let settings = cloneObject(tweenSettings);
|
||||
if (is.arr(prop)) {
|
||||
const l = prop.length;
|
||||
const isFromTo = (l === 2 && !is.obj(prop[0]));
|
||||
if (!isFromTo) {
|
||||
// Duration divided by the number of tweens
|
||||
if (!is.fnc(tweenSettings.duration)) settings.duration = tweenSettings.duration / l;
|
||||
} else {
|
||||
// Transform [from, to] values shorthand to a valid tween value
|
||||
prop = {value: prop};
|
||||
}
|
||||
}
|
||||
return toArray(prop).map((v, i) => {
|
||||
// Default delay value should be applied only on the first tween
|
||||
const delay = !i ? tweenSettings.delay : 0;
|
||||
// Use path object as a tween value
|
||||
let obj = is.obj(v) && !is.pth(v) ? v : {value: v};
|
||||
// Set default delay value
|
||||
if (is.und(obj.delay)) obj.delay = delay;
|
||||
return obj;
|
||||
}).map(k => mergeObjects(k, settings));
|
||||
}
|
||||
|
||||
function getProperties(instanceSettings, tweenSettings, params) {
|
||||
let properties = [];
|
||||
const settings = mergeObjects(instanceSettings, tweenSettings);
|
||||
for (let p in params) {
|
||||
if (!settings.hasOwnProperty(p) && p !== 'targets') {
|
||||
properties.push({
|
||||
name: p,
|
||||
offset: settings['offset'],
|
||||
tweens: normalizePropertyTweens(params[p], tweenSettings)
|
||||
});
|
||||
}
|
||||
}
|
||||
return properties;
|
||||
}
|
||||
|
||||
// Tweens
|
||||
|
||||
function normalizeTweenValues(tween, animatable) {
|
||||
let t = {};
|
||||
for (let p in tween) {
|
||||
let value = getFunctionValue(tween[p], animatable);
|
||||
if (is.arr(value)) {
|
||||
value = value.map(v => getFunctionValue(v, animatable));
|
||||
if (value.length === 1) value = value[0];
|
||||
}
|
||||
t[p] = value;
|
||||
}
|
||||
t.duration = parseFloat(t.duration);
|
||||
t.delay = parseFloat(t.delay);
|
||||
return t;
|
||||
}
|
||||
|
||||
function normalizeEasing(val) {
|
||||
return is.arr(val) ? bezier.apply(this, val) : easings[val];
|
||||
}
|
||||
|
||||
function normalizeTweens(prop, animatable) {
|
||||
let previousTween;
|
||||
return prop.tweens.map(t => {
|
||||
let tween = normalizeTweenValues(t, animatable);
|
||||
const tweenValue = tween.value;
|
||||
const originalValue = getOriginalTargetValue(animatable.target, prop.name);
|
||||
const previousValue = previousTween ? previousTween.to.original : originalValue;
|
||||
const from = is.arr(tweenValue) ? tweenValue[0] : previousValue;
|
||||
const to = getRelativeValue(is.arr(tweenValue) ? tweenValue[1] : tweenValue, from);
|
||||
const unit = getUnit(to) || getUnit(from) || getUnit(originalValue);
|
||||
tween.from = decomposeValue(from, unit);
|
||||
tween.to = decomposeValue(to, unit);
|
||||
tween.start = previousTween ? previousTween.end : prop.offset;
|
||||
tween.end = tween.start + tween.delay + tween.duration;
|
||||
tween.easing = normalizeEasing(tween.easing);
|
||||
tween.elasticity = (1000 - minMaxValue(tween.elasticity, 1, 999)) / 1000;
|
||||
tween.isPath = is.pth(tweenValue);
|
||||
tween.isColor = is.col(tween.from.original);
|
||||
if (tween.isColor) tween.round = 1;
|
||||
previousTween = tween;
|
||||
return tween;
|
||||
});
|
||||
}
|
||||
|
||||
// Tween progress
|
||||
|
||||
const setTweenProgress = {
|
||||
css: (t, p, v) => t.style[p] = v,
|
||||
attribute: (t, p, v) => t.setAttribute(p, v),
|
||||
object: (t, p, v) => t[p] = v,
|
||||
transform: (t, p, v, transforms, id) => {
|
||||
if (!transforms[id]) transforms[id] = [];
|
||||
transforms[id].push(`${p}(${v})`);
|
||||
}
|
||||
}
|
||||
|
||||
// Animations
|
||||
|
||||
function createAnimation(animatable, prop) {
|
||||
const animType = getAnimationType(animatable.target, prop.name);
|
||||
if (animType) {
|
||||
const tweens = normalizeTweens(prop, animatable);
|
||||
return {
|
||||
type: animType,
|
||||
property: prop.name,
|
||||
animatable: animatable,
|
||||
tweens: tweens,
|
||||
duration: tweens[tweens.length - 1].end,
|
||||
delay: tweens[0].delay
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getAnimations(animatables, properties) {
|
||||
return filterArray(flattenArray(animatables.map(animatable => {
|
||||
return properties.map(prop => {
|
||||
return createAnimation(animatable, prop);
|
||||
});
|
||||
})), a => !is.und(a));
|
||||
}
|
||||
|
||||
// Create Instance
|
||||
|
||||
function getInstanceTimings(type, animations, instanceSettings, tweenSettings) {
|
||||
const isDelay = (type === 'delay');
|
||||
if (animations.length) {
|
||||
return (isDelay ? Math.min : Math.max).apply(Math, animations.map(anim => anim[type]));
|
||||
} else {
|
||||
return isDelay ? tweenSettings.delay : instanceSettings.offset + tweenSettings.delay + tweenSettings.duration;
|
||||
}
|
||||
}
|
||||
|
||||
function createNewInstance(params) {
|
||||
const instanceSettings = replaceObjectProps(defaultInstanceSettings, params);
|
||||
const tweenSettings = replaceObjectProps(defaultTweenSettings, params);
|
||||
const animatables = getAnimatables(params.targets);
|
||||
const properties = getProperties(instanceSettings, tweenSettings, params);
|
||||
const animations = getAnimations(animatables, properties);
|
||||
return mergeObjects(instanceSettings, {
|
||||
children: [],
|
||||
animatables: animatables,
|
||||
animations: animations,
|
||||
duration: getInstanceTimings('duration', animations, instanceSettings, tweenSettings),
|
||||
delay: getInstanceTimings('delay', animations, instanceSettings, tweenSettings)
|
||||
});
|
||||
}
|
||||
|
||||
// Core
|
||||
|
||||
let activeInstances = [];
|
||||
let raf = 0;
|
||||
|
||||
const engine = (() => {
|
||||
function play() { raf = requestAnimationFrame(step); };
|
||||
function step(t) {
|
||||
const activeLength = activeInstances.length;
|
||||
if (activeLength) {
|
||||
let i = 0;
|
||||
while (i < activeLength) {
|
||||
if (activeInstances[i]) activeInstances[i].tick(t);
|
||||
i++;
|
||||
}
|
||||
play();
|
||||
} else {
|
||||
cancelAnimationFrame(raf);
|
||||
raf = 0;
|
||||
}
|
||||
}
|
||||
return play;
|
||||
})();
|
||||
|
||||
|
||||
// Public Instance
|
||||
|
||||
function anime(params = {}) {
|
||||
|
||||
let now, startTime, lastTime = 0;
|
||||
|
||||
let resolve = null;
|
||||
|
||||
function makePromise() {
|
||||
return window.Promise && new Promise(_resolve => resolve = _resolve);
|
||||
}
|
||||
|
||||
let promise = makePromise();
|
||||
|
||||
let instance = createNewInstance(params);
|
||||
|
||||
function toggleInstanceDirection() {
|
||||
instance.reversed = !instance.reversed;
|
||||
}
|
||||
|
||||
function adjustTime(time) {
|
||||
return instance.reversed ? instance.duration - time : time;
|
||||
}
|
||||
|
||||
function syncInstanceChildren(time) {
|
||||
const children = instance.children;
|
||||
const childrenLength = children.length;
|
||||
if (time >= instance.currentTime) {
|
||||
for (let i = 0; i < childrenLength; i++) children[i].seek(time);
|
||||
} else {
|
||||
for (let i = childrenLength; i--;) children[i].seek(time);
|
||||
}
|
||||
}
|
||||
|
||||
function setAnimationsProgress(insTime) {
|
||||
let i = 0;
|
||||
let transforms = {};
|
||||
const animations = instance.animations;
|
||||
const animationsLength = animations.length;
|
||||
while (i < animationsLength) {
|
||||
const anim = animations[i];
|
||||
const animatable = anim.animatable;
|
||||
const tweens = anim.tweens;
|
||||
const tweenLength = tweens.length - 1;
|
||||
let tween = tweens[tweenLength];
|
||||
// Only check for keyframes if there is more than one tween
|
||||
if (tweenLength) tween = filterArray(tweens, t => (insTime < t.end))[0] || tween;
|
||||
const elapsed = minMaxValue(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;
|
||||
const eased = isNaN(elapsed) ? 1 : tween.easing(elapsed, tween.elasticity);
|
||||
const strings = tween.to.strings;
|
||||
const round = tween.round;
|
||||
let numbers = [];
|
||||
let progress;
|
||||
const toNumbersLength = tween.to.numbers.length;
|
||||
for (let n = 0; n < toNumbersLength; n++) {
|
||||
let value;
|
||||
const toNumber = tween.to.numbers[n];
|
||||
const fromNumber = tween.from.numbers[n];
|
||||
if (!tween.isPath) {
|
||||
value = fromNumber + (eased * (toNumber - fromNumber));
|
||||
} else {
|
||||
value = getPathProgress(tween.value, eased * toNumber);
|
||||
}
|
||||
if (round) {
|
||||
if (!(tween.isColor && n > 2)) {
|
||||
value = Math.round(value * round) / round;
|
||||
}
|
||||
}
|
||||
numbers.push(value);
|
||||
}
|
||||
// Manual Array.reduce for better performances
|
||||
const stringsLength = strings.length;
|
||||
if (!stringsLength) {
|
||||
progress = numbers[0];
|
||||
} else {
|
||||
progress = strings[0];
|
||||
for (let s = 0; s < stringsLength; s++) {
|
||||
const a = strings[s];
|
||||
const b = strings[s + 1];
|
||||
const n = numbers[s];
|
||||
if (!isNaN(n)) {
|
||||
if (!b) {
|
||||
progress += n + ' ';
|
||||
} else {
|
||||
progress += n + b;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
setTweenProgress[anim.type](animatable.target, anim.property, progress, transforms, animatable.id);
|
||||
anim.currentValue = progress;
|
||||
i++;
|
||||
}
|
||||
const transformsLength = Object.keys(transforms).length;
|
||||
if (transformsLength) {
|
||||
for (let id = 0; id < transformsLength; id++) {
|
||||
if (!transformString) {
|
||||
const t = 'transform';
|
||||
transformString = (getCSSValue(document.body, t) ? t : `-webkit-${t}`);
|
||||
}
|
||||
instance.animatables[id].target.style[transformString] = transforms[id].join(' ');
|
||||
}
|
||||
}
|
||||
instance.currentTime = insTime;
|
||||
instance.progress = (insTime / instance.duration) * 100;
|
||||
}
|
||||
|
||||
function setCallback(cb) {
|
||||
if (instance[cb]) instance[cb](instance);
|
||||
}
|
||||
|
||||
function countIteration() {
|
||||
if (instance.remaining && instance.remaining !== true) {
|
||||
instance.remaining--;
|
||||
}
|
||||
}
|
||||
|
||||
function setInstanceProgress(engineTime) {
|
||||
const insDuration = instance.duration;
|
||||
const insOffset = instance.offset;
|
||||
const insStart = insOffset + instance.delay;
|
||||
const insCurrentTime = instance.currentTime;
|
||||
const insReversed = instance.reversed;
|
||||
const insTime = adjustTime(engineTime);
|
||||
if (instance.children.length) syncInstanceChildren(insTime);
|
||||
if (insTime >= insStart || !insDuration) {
|
||||
if (!instance.began) {
|
||||
instance.began = true;
|
||||
setCallback('begin');
|
||||
}
|
||||
setCallback('run');
|
||||
}
|
||||
if (insTime > insOffset && insTime < insDuration) {
|
||||
setAnimationsProgress(insTime);
|
||||
} else {
|
||||
if (insTime <= insOffset && insCurrentTime !== 0) {
|
||||
setAnimationsProgress(0);
|
||||
if (insReversed) countIteration();
|
||||
}
|
||||
if ((insTime >= insDuration && insCurrentTime !== insDuration) || !insDuration) {
|
||||
setAnimationsProgress(insDuration);
|
||||
if (!insReversed) countIteration();
|
||||
}
|
||||
}
|
||||
setCallback('update');
|
||||
if (engineTime >= insDuration) {
|
||||
if (instance.remaining) {
|
||||
startTime = now;
|
||||
if (instance.direction === 'alternate') toggleInstanceDirection();
|
||||
} else {
|
||||
instance.pause();
|
||||
if (!instance.completed) {
|
||||
instance.completed = true;
|
||||
setCallback('complete');
|
||||
if ('Promise' in window) {
|
||||
resolve();
|
||||
promise = makePromise();
|
||||
}
|
||||
}
|
||||
}
|
||||
lastTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
instance.reset = function() {
|
||||
const direction = instance.direction;
|
||||
const loops = instance.loop;
|
||||
instance.currentTime = 0;
|
||||
instance.progress = 0;
|
||||
instance.paused = true;
|
||||
instance.began = false;
|
||||
instance.completed = false;
|
||||
instance.reversed = direction === 'reverse';
|
||||
instance.remaining = direction === 'alternate' && loops === 1 ? 2 : loops;
|
||||
setAnimationsProgress(0);
|
||||
for (let i = instance.children.length; i--; ){
|
||||
instance.children[i].reset();
|
||||
}
|
||||
}
|
||||
|
||||
instance.tick = function(t) {
|
||||
now = t;
|
||||
if (!startTime) startTime = now;
|
||||
const engineTime = (lastTime + now - startTime) * anime.speed;
|
||||
setInstanceProgress(engineTime);
|
||||
}
|
||||
|
||||
instance.seek = function(time) {
|
||||
setInstanceProgress(adjustTime(time));
|
||||
}
|
||||
|
||||
instance.pause = function() {
|
||||
const i = activeInstances.indexOf(instance);
|
||||
if (i > -1) activeInstances.splice(i, 1);
|
||||
instance.paused = true;
|
||||
}
|
||||
|
||||
instance.play = function() {
|
||||
if (!instance.paused) return;
|
||||
instance.paused = false;
|
||||
startTime = 0;
|
||||
lastTime = adjustTime(instance.currentTime);
|
||||
activeInstances.push(instance);
|
||||
if (!raf) engine();
|
||||
}
|
||||
|
||||
instance.reverse = function() {
|
||||
toggleInstanceDirection();
|
||||
startTime = 0;
|
||||
lastTime = adjustTime(instance.currentTime);
|
||||
}
|
||||
|
||||
instance.restart = function() {
|
||||
instance.pause();
|
||||
instance.reset();
|
||||
instance.play();
|
||||
}
|
||||
|
||||
instance.finished = promise;
|
||||
|
||||
instance.reset();
|
||||
|
||||
if (instance.autoplay) instance.play();
|
||||
|
||||
return instance;
|
||||
|
||||
}
|
||||
|
||||
// Remove targets from animation
|
||||
|
||||
function removeTargets(targets) {
|
||||
const targetsArray = parseTargets(targets);
|
||||
for (let i = activeInstances.length; i--;) {
|
||||
const instance = activeInstances[i];
|
||||
const animations = instance.animations;
|
||||
for (let a = animations.length; a--;) {
|
||||
if (arrayContains(targetsArray, animations[a].animatable.target)) {
|
||||
animations.splice(a, 1);
|
||||
if (!animations.length) instance.pause();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Timeline
|
||||
|
||||
function timeline(params) {
|
||||
let tl = anime(params);
|
||||
tl.pause();
|
||||
tl.duration = 0;
|
||||
tl.add = function(instancesParams) {
|
||||
tl.children.forEach(i => { i.began = true; i.completed = true; });
|
||||
toArray(instancesParams).forEach(instanceParams => {
|
||||
let insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params || {}));
|
||||
insParams.targets = insParams.targets || params.targets;
|
||||
const tlDuration = tl.duration;
|
||||
const insOffset = insParams.offset;
|
||||
insParams.autoplay = false;
|
||||
insParams.direction = tl.direction;
|
||||
insParams.offset = is.und(insOffset) ? tlDuration : getRelativeValue(insOffset, tlDuration);
|
||||
tl.began = true;
|
||||
tl.completed = true;
|
||||
tl.seek(insParams.offset);
|
||||
const ins = anime(insParams);
|
||||
ins.began = true;
|
||||
ins.completed = true;
|
||||
if (ins.duration > tlDuration) tl.duration = ins.duration;
|
||||
tl.children.push(ins);
|
||||
});
|
||||
tl.seek(0);
|
||||
tl.reset();
|
||||
if (tl.autoplay) tl.restart();
|
||||
return tl;
|
||||
}
|
||||
return tl;
|
||||
}
|
||||
|
||||
anime.version = '2.2.0';
|
||||
anime.speed = 1;
|
||||
anime.running = activeInstances;
|
||||
anime.remove = removeTargets;
|
||||
anime.getValue = getOriginalTargetValue;
|
||||
anime.path = getPath;
|
||||
anime.setDashoffset = setDashoffset;
|
||||
anime.bezier = bezier;
|
||||
anime.easings = easings;
|
||||
anime.timeline = timeline;
|
||||
anime.random = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
|
||||
|
||||
return anime;
|
||||
|
||||
}));
|
33
BTCPayServer/wwwroot/vendor/animejs/anime.min.js
vendored
Normal file
33
BTCPayServer/wwwroot/vendor/animejs/anime.min.js
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
2017 Julian Garnier
|
||||
Released under the MIT license
|
||||
*/
|
||||
var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(e,r,p){if(p.get||p.set)throw new TypeError("ES3 does not support getters and setters.");e!=Array.prototype&&e!=Object.prototype&&(e[r]=p.value)};$jscomp.getGlobal=function(e){return"undefined"!=typeof window&&window===e?e:"undefined"!=typeof global&&null!=global?global:e};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
|
||||
$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(e){return $jscomp.SYMBOL_PREFIX+(e||"")+$jscomp.symbolCounter_++};
|
||||
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var e=$jscomp.global.Symbol.iterator;e||(e=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[e]&&$jscomp.defineProperty(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(e){var r=0;return $jscomp.iteratorPrototype(function(){return r<e.length?{done:!1,value:e[r++]}:{done:!0}})};
|
||||
$jscomp.iteratorPrototype=function(e){$jscomp.initSymbolIterator();e={next:e};e[$jscomp.global.Symbol.iterator]=function(){return this};return e};$jscomp.array=$jscomp.array||{};$jscomp.iteratorFromArray=function(e,r){$jscomp.initSymbolIterator();e instanceof String&&(e+="");var p=0,m={next:function(){if(p<e.length){var u=p++;return{value:r(u,e[u]),done:!1}}m.next=function(){return{done:!0,value:void 0}};return m.next()}};m[Symbol.iterator]=function(){return m};return m};
|
||||
$jscomp.polyfill=function(e,r,p,m){if(r){p=$jscomp.global;e=e.split(".");for(m=0;m<e.length-1;m++){var u=e[m];u in p||(p[u]={});p=p[u]}e=e[e.length-1];m=p[e];r=r(m);r!=m&&null!=r&&$jscomp.defineProperty(p,e,{configurable:!0,writable:!0,value:r})}};$jscomp.polyfill("Array.prototype.keys",function(e){return e?e:function(){return $jscomp.iteratorFromArray(this,function(e){return e})}},"es6-impl","es3");var $jscomp$this=this;
|
||||
(function(e,r){"function"===typeof define&&define.amd?define([],r):"object"===typeof module&&module.exports?module.exports=r():e.anime=r()})(this,function(){function e(a){if(!h.col(a))try{return document.querySelectorAll(a)}catch(c){}}function r(a,c){for(var d=a.length,b=2<=arguments.length?arguments[1]:void 0,f=[],n=0;n<d;n++)if(n in a){var k=a[n];c.call(b,k,n,a)&&f.push(k)}return f}function p(a){return a.reduce(function(a,d){return a.concat(h.arr(d)?p(d):d)},[])}function m(a){if(h.arr(a))return a;
|
||||
h.str(a)&&(a=e(a)||a);return a instanceof NodeList||a instanceof HTMLCollection?[].slice.call(a):[a]}function u(a,c){return a.some(function(a){return a===c})}function C(a){var c={},d;for(d in a)c[d]=a[d];return c}function D(a,c){var d=C(a),b;for(b in a)d[b]=c.hasOwnProperty(b)?c[b]:a[b];return d}function z(a,c){var d=C(a),b;for(b in c)d[b]=h.und(a[b])?c[b]:a[b];return d}function T(a){a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,c,d,k){return c+c+d+d+k+k});var c=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);
|
||||
a=parseInt(c[1],16);var d=parseInt(c[2],16),c=parseInt(c[3],16);return"rgba("+a+","+d+","+c+",1)"}function U(a){function c(a,c,b){0>b&&(b+=1);1<b&&--b;return b<1/6?a+6*(c-a)*b:.5>b?c:b<2/3?a+(c-a)*(2/3-b)*6:a}var d=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(a)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(a);a=parseInt(d[1])/360;var b=parseInt(d[2])/100,f=parseInt(d[3])/100,d=d[4]||1;if(0==b)f=b=a=f;else{var n=.5>f?f*(1+b):f+b-f*b,k=2*f-n,f=c(k,n,a+1/3),b=c(k,n,a);a=c(k,n,a-1/3)}return"rgba("+
|
||||
255*f+","+255*b+","+255*a+","+d+")"}function y(a){if(a=/([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a))return a[2]}function V(a){if(-1<a.indexOf("translate")||"perspective"===a)return"px";if(-1<a.indexOf("rotate")||-1<a.indexOf("skew"))return"deg"}function I(a,c){return h.fnc(a)?a(c.target,c.id,c.total):a}function E(a,c){if(c in a.style)return getComputedStyle(a).getPropertyValue(c.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase())||"0"}function J(a,c){if(h.dom(a)&&
|
||||
u(W,c))return"transform";if(h.dom(a)&&(a.getAttribute(c)||h.svg(a)&&a[c]))return"attribute";if(h.dom(a)&&"transform"!==c&&E(a,c))return"css";if(null!=a[c])return"object"}function X(a,c){var d=V(c),d=-1<c.indexOf("scale")?1:0+d;a=a.style.transform;if(!a)return d;for(var b=[],f=[],n=[],k=/(\w+)\((.+?)\)/g;b=k.exec(a);)f.push(b[1]),n.push(b[2]);a=r(n,function(a,b){return f[b]===c});return a.length?a[0]:d}function K(a,c){switch(J(a,c)){case "transform":return X(a,c);case "css":return E(a,c);case "attribute":return a.getAttribute(c)}return a[c]||
|
||||
0}function L(a,c){var d=/^(\*=|\+=|-=)/.exec(a);if(!d)return a;var b=y(a)||0;c=parseFloat(c);a=parseFloat(a.replace(d[0],""));switch(d[0][0]){case "+":return c+a+b;case "-":return c-a+b;case "*":return c*a+b}}function F(a,c){return Math.sqrt(Math.pow(c.x-a.x,2)+Math.pow(c.y-a.y,2))}function M(a){a=a.points;for(var c=0,d,b=0;b<a.numberOfItems;b++){var f=a.getItem(b);0<b&&(c+=F(d,f));d=f}return c}function N(a){if(a.getTotalLength)return a.getTotalLength();switch(a.tagName.toLowerCase()){case "circle":return 2*
|
||||
Math.PI*a.getAttribute("r");case "rect":return 2*a.getAttribute("width")+2*a.getAttribute("height");case "line":return F({x:a.getAttribute("x1"),y:a.getAttribute("y1")},{x:a.getAttribute("x2"),y:a.getAttribute("y2")});case "polyline":return M(a);case "polygon":var c=a.points;return M(a)+F(c.getItem(c.numberOfItems-1),c.getItem(0))}}function Y(a,c){function d(b){b=void 0===b?0:b;return a.el.getPointAtLength(1<=c+b?c+b:0)}var b=d(),f=d(-1),n=d(1);switch(a.property){case "x":return b.x;case "y":return b.y;
|
||||
case "angle":return 180*Math.atan2(n.y-f.y,n.x-f.x)/Math.PI}}function O(a,c){var d=/-?\d*\.?\d+/g,b;b=h.pth(a)?a.totalLength:a;if(h.col(b))if(h.rgb(b)){var f=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(b);b=f?"rgba("+f[1]+",1)":b}else b=h.hex(b)?T(b):h.hsl(b)?U(b):void 0;else f=(f=y(b))?b.substr(0,b.length-f.length):b,b=c&&!/\s/g.test(b)?f+c:f;b+="";return{original:b,numbers:b.match(d)?b.match(d).map(Number):[0],strings:h.str(a)||c?b.split(d):[]}}function P(a){a=a?p(h.arr(a)?a.map(m):m(a)):[];return r(a,
|
||||
function(a,d,b){return b.indexOf(a)===d})}function Z(a){var c=P(a);return c.map(function(a,b){return{target:a,id:b,total:c.length}})}function aa(a,c){var d=C(c);if(h.arr(a)){var b=a.length;2!==b||h.obj(a[0])?h.fnc(c.duration)||(d.duration=c.duration/b):a={value:a}}return m(a).map(function(a,b){b=b?0:c.delay;a=h.obj(a)&&!h.pth(a)?a:{value:a};h.und(a.delay)&&(a.delay=b);return a}).map(function(a){return z(a,d)})}function ba(a,c){var d={},b;for(b in a){var f=I(a[b],c);h.arr(f)&&(f=f.map(function(a){return I(a,
|
||||
c)}),1===f.length&&(f=f[0]));d[b]=f}d.duration=parseFloat(d.duration);d.delay=parseFloat(d.delay);return d}function ca(a){return h.arr(a)?A.apply(this,a):Q[a]}function da(a,c){var d;return a.tweens.map(function(b){b=ba(b,c);var f=b.value,e=K(c.target,a.name),k=d?d.to.original:e,k=h.arr(f)?f[0]:k,w=L(h.arr(f)?f[1]:f,k),e=y(w)||y(k)||y(e);b.from=O(k,e);b.to=O(w,e);b.start=d?d.end:a.offset;b.end=b.start+b.delay+b.duration;b.easing=ca(b.easing);b.elasticity=(1E3-Math.min(Math.max(b.elasticity,1),999))/
|
||||
1E3;b.isPath=h.pth(f);b.isColor=h.col(b.from.original);b.isColor&&(b.round=1);return d=b})}function ea(a,c){return r(p(a.map(function(a){return c.map(function(b){var c=J(a.target,b.name);if(c){var d=da(b,a);b={type:c,property:b.name,animatable:a,tweens:d,duration:d[d.length-1].end,delay:d[0].delay}}else b=void 0;return b})})),function(a){return!h.und(a)})}function R(a,c,d,b){var f="delay"===a;return c.length?(f?Math.min:Math.max).apply(Math,c.map(function(b){return b[a]})):f?b.delay:d.offset+b.delay+
|
||||
b.duration}function fa(a){var c=D(ga,a),d=D(S,a),b=Z(a.targets),f=[],e=z(c,d),k;for(k in a)e.hasOwnProperty(k)||"targets"===k||f.push({name:k,offset:e.offset,tweens:aa(a[k],d)});a=ea(b,f);return z(c,{children:[],animatables:b,animations:a,duration:R("duration",a,c,d),delay:R("delay",a,c,d)})}function q(a){function c(){return window.Promise&&new Promise(function(a){return p=a})}function d(a){return g.reversed?g.duration-a:a}function b(a){for(var b=0,c={},d=g.animations,f=d.length;b<f;){var e=d[b],
|
||||
k=e.animatable,h=e.tweens,n=h.length-1,l=h[n];n&&(l=r(h,function(b){return a<b.end})[0]||l);for(var h=Math.min(Math.max(a-l.start-l.delay,0),l.duration)/l.duration,w=isNaN(h)?1:l.easing(h,l.elasticity),h=l.to.strings,p=l.round,n=[],m=void 0,m=l.to.numbers.length,t=0;t<m;t++){var x=void 0,x=l.to.numbers[t],q=l.from.numbers[t],x=l.isPath?Y(l.value,w*x):q+w*(x-q);p&&(l.isColor&&2<t||(x=Math.round(x*p)/p));n.push(x)}if(l=h.length)for(m=h[0],w=0;w<l;w++)p=h[w+1],t=n[w],isNaN(t)||(m=p?m+(t+p):m+(t+" "));
|
||||
else m=n[0];ha[e.type](k.target,e.property,m,c,k.id);e.currentValue=m;b++}if(b=Object.keys(c).length)for(d=0;d<b;d++)H||(H=E(document.body,"transform")?"transform":"-webkit-transform"),g.animatables[d].target.style[H]=c[d].join(" ");g.currentTime=a;g.progress=a/g.duration*100}function f(a){if(g[a])g[a](g)}function e(){g.remaining&&!0!==g.remaining&&g.remaining--}function k(a){var k=g.duration,n=g.offset,w=n+g.delay,r=g.currentTime,x=g.reversed,q=d(a);if(g.children.length){var u=g.children,v=u.length;
|
||||
if(q>=g.currentTime)for(var G=0;G<v;G++)u[G].seek(q);else for(;v--;)u[v].seek(q)}if(q>=w||!k)g.began||(g.began=!0,f("begin")),f("run");if(q>n&&q<k)b(q);else if(q<=n&&0!==r&&(b(0),x&&e()),q>=k&&r!==k||!k)b(k),x||e();f("update");a>=k&&(g.remaining?(t=h,"alternate"===g.direction&&(g.reversed=!g.reversed)):(g.pause(),g.completed||(g.completed=!0,f("complete"),"Promise"in window&&(p(),m=c()))),l=0)}a=void 0===a?{}:a;var h,t,l=0,p=null,m=c(),g=fa(a);g.reset=function(){var a=g.direction,c=g.loop;g.currentTime=
|
||||
0;g.progress=0;g.paused=!0;g.began=!1;g.completed=!1;g.reversed="reverse"===a;g.remaining="alternate"===a&&1===c?2:c;b(0);for(a=g.children.length;a--;)g.children[a].reset()};g.tick=function(a){h=a;t||(t=h);k((l+h-t)*q.speed)};g.seek=function(a){k(d(a))};g.pause=function(){var a=v.indexOf(g);-1<a&&v.splice(a,1);g.paused=!0};g.play=function(){g.paused&&(g.paused=!1,t=0,l=d(g.currentTime),v.push(g),B||ia())};g.reverse=function(){g.reversed=!g.reversed;t=0;l=d(g.currentTime)};g.restart=function(){g.pause();
|
||||
g.reset();g.play()};g.finished=m;g.reset();g.autoplay&&g.play();return g}var ga={update:void 0,begin:void 0,run:void 0,complete:void 0,loop:1,direction:"normal",autoplay:!0,offset:0},S={duration:1E3,delay:0,easing:"easeOutElastic",elasticity:500,round:0},W="translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective".split(" "),H,h={arr:function(a){return Array.isArray(a)},obj:function(a){return-1<Object.prototype.toString.call(a).indexOf("Object")},
|
||||
pth:function(a){return h.obj(a)&&a.hasOwnProperty("totalLength")},svg:function(a){return a instanceof SVGElement},dom:function(a){return a.nodeType||h.svg(a)},str:function(a){return"string"===typeof a},fnc:function(a){return"function"===typeof a},und:function(a){return"undefined"===typeof a},hex:function(a){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a)},rgb:function(a){return/^rgb/.test(a)},hsl:function(a){return/^hsl/.test(a)},col:function(a){return h.hex(a)||h.rgb(a)||h.hsl(a)}},A=function(){function a(a,
|
||||
d,b){return(((1-3*b+3*d)*a+(3*b-6*d))*a+3*d)*a}return function(c,d,b,f){if(0<=c&&1>=c&&0<=b&&1>=b){var e=new Float32Array(11);if(c!==d||b!==f)for(var k=0;11>k;++k)e[k]=a(.1*k,c,b);return function(k){if(c===d&&b===f)return k;if(0===k)return 0;if(1===k)return 1;for(var h=0,l=1;10!==l&&e[l]<=k;++l)h+=.1;--l;var l=h+(k-e[l])/(e[l+1]-e[l])*.1,n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(.001<=n){for(h=0;4>h;++h){n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(0===n)break;var m=a(l,c,b)-k,l=l-m/n}k=l}else if(0===
|
||||
n)k=l;else{var l=h,h=h+.1,g=0;do m=l+(h-l)/2,n=a(m,c,b)-k,0<n?h=m:l=m;while(1e-7<Math.abs(n)&&10>++g);k=m}return a(k,d,f)}}}}(),Q=function(){function a(a,b){return 0===a||1===a?a:-Math.pow(2,10*(a-1))*Math.sin(2*(a-1-b/(2*Math.PI)*Math.asin(1))*Math.PI/b)}var c="Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "),d={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],a],Out:[[.25,
|
||||
.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(b,c){return 1-a(1-b,c)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(b,c){return.5>b?a(2*b,c)/2:1-a(-2*b+2,c)/2}]},b={linear:A(.25,.25,.75,.75)},f={},e;for(e in d)f.type=e,d[f.type].forEach(function(a){return function(d,f){b["ease"+a.type+c[f]]=h.fnc(d)?
|
||||
d:A.apply($jscomp$this,d)}}(f)),f={type:f.type};return b}(),ha={css:function(a,c,d){return a.style[c]=d},attribute:function(a,c,d){return a.setAttribute(c,d)},object:function(a,c,d){return a[c]=d},transform:function(a,c,d,b,f){b[f]||(b[f]=[]);b[f].push(c+"("+d+")")}},v=[],B=0,ia=function(){function a(){B=requestAnimationFrame(c)}function c(c){var b=v.length;if(b){for(var d=0;d<b;)v[d]&&v[d].tick(c),d++;a()}else cancelAnimationFrame(B),B=0}return a}();q.version="2.2.0";q.speed=1;q.running=v;q.remove=
|
||||
function(a){a=P(a);for(var c=v.length;c--;)for(var d=v[c],b=d.animations,f=b.length;f--;)u(a,b[f].animatable.target)&&(b.splice(f,1),b.length||d.pause())};q.getValue=K;q.path=function(a,c){var d=h.str(a)?e(a)[0]:a,b=c||100;return function(a){return{el:d,property:a,totalLength:N(d)*(b/100)}}};q.setDashoffset=function(a){var c=N(a);a.setAttribute("stroke-dasharray",c);return c};q.bezier=A;q.easings=Q;q.timeline=function(a){var c=q(a);c.pause();c.duration=0;c.add=function(d){c.children.forEach(function(a){a.began=
|
||||
!0;a.completed=!0});m(d).forEach(function(b){var d=z(b,D(S,a||{}));d.targets=d.targets||a.targets;b=c.duration;var e=d.offset;d.autoplay=!1;d.direction=c.direction;d.offset=h.und(e)?b:L(e,b);c.began=!0;c.completed=!0;c.seek(d.offset);d=q(d);d.began=!0;d.completed=!0;d.duration>b&&(c.duration=d.duration);c.children.push(d)});c.seek(0);c.reset();c.autoplay&&c.restart();return c};return c};q.random=function(a,c){return Math.floor(Math.random()*(c-a+1))+a};return q});
|
4512
BTCPayServer/wwwroot/vendor/moment/moment.js
vendored
4512
BTCPayServer/wwwroot/vendor/moment/moment.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Add table
Reference in a new issue