mirror of
https://github.com/zadam/trilium.git
synced 2025-10-27 16:26:31 +01:00
remove submodules
This commit is contained in:
342
packages/splitjs/test/ie8/polyfills.js
Normal file
342
packages/splitjs/test/ie8/polyfills.js
Normal file
@@ -0,0 +1,342 @@
|
||||
/* Polyfill service v3.18.1
|
||||
* For detailed credits and licence information see https://github.com/financial-times/polyfill-service.
|
||||
*
|
||||
* UA detected: firefox/53.0.0
|
||||
* Features requested: Array.isArray,Array.prototype.filter,Array.prototype.forEach,Array.prototype.map,Object.keys,getComputedStyle
|
||||
*
|
||||
* - Object.defineProperty, License: CC0 (required by "Array.isArray")
|
||||
* - Array.isArray, License: CC0
|
||||
* - Array.prototype.filter, License: CC0
|
||||
* - Array.prototype.forEach, License: CC0
|
||||
* - Array.prototype.map, License: CC0
|
||||
* - Object.keys, License: CC0
|
||||
* - Window, License: CC0 (required by "getComputedStyle")
|
||||
* - getComputedStyle, License: CC0 */
|
||||
|
||||
(function(undefined) {
|
||||
|
||||
// Object.defineProperty
|
||||
(function (nativeDefineProperty) {
|
||||
|
||||
var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
|
||||
var ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';
|
||||
var ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';
|
||||
|
||||
Object.defineProperty = function defineProperty(object, property, descriptor) {
|
||||
|
||||
// Where native support exists, assume it
|
||||
if (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {
|
||||
return nativeDefineProperty(object, property, descriptor);
|
||||
}
|
||||
|
||||
if (object === null || !(object instanceof Object || typeof object === 'object')) {
|
||||
throw new TypeError('Object.defineProperty called on non-object');
|
||||
}
|
||||
|
||||
if (!(descriptor instanceof Object)) {
|
||||
throw new TypeError('Property description must be an object');
|
||||
}
|
||||
|
||||
var propertyString = String(property);
|
||||
var hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;
|
||||
var getterType = 'get' in descriptor && typeof descriptor.get;
|
||||
var setterType = 'set' in descriptor && typeof descriptor.set;
|
||||
|
||||
// handle descriptor.get
|
||||
if (getterType) {
|
||||
if (getterType !== 'function') {
|
||||
throw new TypeError('Getter must be a function');
|
||||
}
|
||||
if (!supportsAccessors) {
|
||||
throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
|
||||
}
|
||||
if (hasValueOrWritable) {
|
||||
throw new TypeError(ERR_VALUE_ACCESSORS);
|
||||
}
|
||||
object.__defineGetter__(propertyString, descriptor.get);
|
||||
} else {
|
||||
object[propertyString] = descriptor.value;
|
||||
}
|
||||
|
||||
// handle descriptor.set
|
||||
if (setterType) {
|
||||
if (setterType !== 'function') {
|
||||
throw new TypeError('Setter must be a function');
|
||||
}
|
||||
if (!supportsAccessors) {
|
||||
throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
|
||||
}
|
||||
if (hasValueOrWritable) {
|
||||
throw new TypeError(ERR_VALUE_ACCESSORS);
|
||||
}
|
||||
object.__defineSetter__(propertyString, descriptor.set);
|
||||
}
|
||||
|
||||
// OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above
|
||||
if ('value' in descriptor) {
|
||||
object[propertyString] = descriptor.value;
|
||||
}
|
||||
|
||||
return object;
|
||||
};
|
||||
}(Object.defineProperty));
|
||||
|
||||
// Array.isArray
|
||||
(function (toString) {
|
||||
Object.defineProperty(Array, 'isArray', {
|
||||
configurable: true,
|
||||
value: function isArray(object) {
|
||||
return toString.call(object) === '[object Array]';
|
||||
},
|
||||
writable: true
|
||||
});
|
||||
}(Object.prototype.toString));
|
||||
|
||||
// Array.prototype.filter
|
||||
Array.prototype.filter = function filter(callback) {
|
||||
if (this === undefined || this === null) {
|
||||
throw new TypeError(this + ' is not an object');
|
||||
}
|
||||
|
||||
if (!(callback instanceof Function)) {
|
||||
throw new TypeError(callback + ' is not a function');
|
||||
}
|
||||
|
||||
var
|
||||
object = Object(this),
|
||||
scope = arguments[1],
|
||||
arraylike = object instanceof String ? object.split('') : object,
|
||||
length = Math.max(Math.min(arraylike.length, 9007199254740991), 0) || 0,
|
||||
index = -1,
|
||||
result = [],
|
||||
element;
|
||||
|
||||
while (++index < length) {
|
||||
element = arraylike[index];
|
||||
|
||||
if (index in arraylike && callback.call(scope, element, index, object)) {
|
||||
result.push(element);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
// Array.prototype.forEach
|
||||
Array.prototype.forEach = function forEach(callback) {
|
||||
if (this === undefined || this === null) {
|
||||
throw new TypeError(this + ' is not an object');
|
||||
}
|
||||
|
||||
if (!(callback instanceof Function)) {
|
||||
throw new TypeError(callback + ' is not a function');
|
||||
}
|
||||
|
||||
var
|
||||
object = Object(this),
|
||||
scope = arguments[1],
|
||||
arraylike = object instanceof String ? object.split('') : object,
|
||||
length = Math.max(Math.min(arraylike.length, 9007199254740991), 0) || 0,
|
||||
index = -1;
|
||||
|
||||
while (++index < length) {
|
||||
if (index in arraylike) {
|
||||
callback.call(scope, arraylike[index], index, object);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Array.prototype.map
|
||||
Array.prototype.map = function map(callback) {
|
||||
if (this === undefined || this === null) {
|
||||
throw new TypeError(this + ' is not an object');
|
||||
}
|
||||
|
||||
if (!(callback instanceof Function)) {
|
||||
throw new TypeError(callback + ' is not a function');
|
||||
}
|
||||
|
||||
var
|
||||
object = Object(this),
|
||||
scope = arguments[1],
|
||||
arraylike = object instanceof String ? object.split('') : object,
|
||||
length = Math.max(Math.min(arraylike.length, 9007199254740991), 0) || 0,
|
||||
index = -1,
|
||||
result = [];
|
||||
|
||||
while (++index < length) {
|
||||
if (index in arraylike) {
|
||||
result[index] = callback.call(scope, arraylike[index], index, object);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
// Object.keys
|
||||
Object.keys = (function() {
|
||||
'use strict';
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
||||
hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),
|
||||
dontEnums = [
|
||||
'toString',
|
||||
'toLocaleString',
|
||||
'valueOf',
|
||||
'hasOwnProperty',
|
||||
'isPrototypeOf',
|
||||
'propertyIsEnumerable',
|
||||
'constructor'
|
||||
],
|
||||
dontEnumsLength = dontEnums.length;
|
||||
|
||||
return function(obj) {
|
||||
if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
|
||||
throw new TypeError('Object.keys called on non-object');
|
||||
}
|
||||
|
||||
var result = [], prop, i;
|
||||
|
||||
for (prop in obj) {
|
||||
if (hasOwnProperty.call(obj, prop)) {
|
||||
result.push(prop);
|
||||
}
|
||||
}
|
||||
|
||||
if (hasDontEnumBug) {
|
||||
for (i = 0; i < dontEnumsLength; i++) {
|
||||
if (hasOwnProperty.call(obj, dontEnums[i])) {
|
||||
result.push(dontEnums[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
}());
|
||||
|
||||
// Window
|
||||
(function(global) {
|
||||
if (global.constructor) {
|
||||
global.Window = global.constructor;
|
||||
} else {
|
||||
(global.Window = global.constructor = new Function('return function Window() {}')()).prototype = this;
|
||||
}
|
||||
}(this));
|
||||
|
||||
// getComputedStyle
|
||||
(function (global) {
|
||||
function getComputedStylePixel(element, property, fontSize) {
|
||||
var
|
||||
// Internet Explorer sometimes struggles to read currentStyle until the element's document is accessed.
|
||||
value = element.document && element.currentStyle[property].match(/([\d\.]+)(%|cm|em|in|mm|pc|pt|)/) || [0, 0, ''],
|
||||
size = value[1],
|
||||
suffix = value[2],
|
||||
rootSize;
|
||||
|
||||
fontSize = !fontSize ? fontSize : /%|em/.test(suffix) && element.parentElement ? getComputedStylePixel(element.parentElement, 'fontSize', null) : 16;
|
||||
rootSize = property == 'fontSize' ? fontSize : /width/i.test(property) ? element.clientWidth : element.clientHeight;
|
||||
|
||||
return suffix == '%' ? size / 100 * rootSize :
|
||||
suffix == 'cm' ? size * 0.3937 * 96 :
|
||||
suffix == 'em' ? size * fontSize :
|
||||
suffix == 'in' ? size * 96 :
|
||||
suffix == 'mm' ? size * 0.3937 * 96 / 10 :
|
||||
suffix == 'pc' ? size * 12 * 96 / 72 :
|
||||
suffix == 'pt' ? size * 96 / 72 :
|
||||
size;
|
||||
}
|
||||
|
||||
function setShortStyleProperty(style, property) {
|
||||
var
|
||||
borderSuffix = property == 'border' ? 'Width' : '',
|
||||
t = property + 'Top' + borderSuffix,
|
||||
r = property + 'Right' + borderSuffix,
|
||||
b = property + 'Bottom' + borderSuffix,
|
||||
l = property + 'Left' + borderSuffix;
|
||||
|
||||
style[property] = (style[t] == style[r] && style[t] == style[b] && style[t] == style[l] ? [ style[t] ] :
|
||||
style[t] == style[b] && style[l] == style[r] ? [ style[t], style[r] ] :
|
||||
style[l] == style[r] ? [ style[t], style[r], style[b] ] :
|
||||
[ style[t], style[r], style[b], style[l] ]).join(' ');
|
||||
}
|
||||
|
||||
// <CSSStyleDeclaration>
|
||||
function CSSStyleDeclaration(element) {
|
||||
var
|
||||
style = this,
|
||||
currentStyle = element.currentStyle,
|
||||
fontSize = getComputedStylePixel(element, 'fontSize'),
|
||||
unCamelCase = function (match) {
|
||||
return '-' + match.toLowerCase();
|
||||
},
|
||||
property;
|
||||
|
||||
for (property in currentStyle) {
|
||||
Array.prototype.push.call(style, property == 'styleFloat' ? 'float' : property.replace(/[A-Z]/, unCamelCase));
|
||||
|
||||
if (property == 'width') {
|
||||
style[property] = element.offsetWidth + 'px';
|
||||
} else if (property == 'height') {
|
||||
style[property] = element.offsetHeight + 'px';
|
||||
} else if (property == 'styleFloat') {
|
||||
style.float = currentStyle[property];
|
||||
} else if (/margin.|padding.|border.+W/.test(property) && style[property] != 'auto') {
|
||||
style[property] = Math.round(getComputedStylePixel(element, property, fontSize)) + 'px';
|
||||
} else if (/^outline/.test(property)) {
|
||||
// errors on checking outline
|
||||
try {
|
||||
style[property] = currentStyle[property];
|
||||
} catch (error) {
|
||||
style.outlineColor = currentStyle.color;
|
||||
style.outlineStyle = style.outlineStyle || 'none';
|
||||
style.outlineWidth = style.outlineWidth || '0px';
|
||||
style.outline = [style.outlineColor, style.outlineWidth, style.outlineStyle].join(' ');
|
||||
}
|
||||
} else {
|
||||
style[property] = currentStyle[property];
|
||||
}
|
||||
}
|
||||
|
||||
setShortStyleProperty(style, 'margin');
|
||||
setShortStyleProperty(style, 'padding');
|
||||
setShortStyleProperty(style, 'border');
|
||||
|
||||
style.fontSize = Math.round(fontSize) + 'px';
|
||||
}
|
||||
|
||||
CSSStyleDeclaration.prototype = {
|
||||
constructor: CSSStyleDeclaration,
|
||||
// <CSSStyleDeclaration>.getPropertyPriority
|
||||
getPropertyPriority: function () {
|
||||
throw new Error('NotSupportedError: DOM Exception 9');
|
||||
},
|
||||
// <CSSStyleDeclaration>.getPropertyValue
|
||||
getPropertyValue: function (property) {
|
||||
return this[property.replace(/-\w/g, function (match) {
|
||||
return match[1].toUpperCase();
|
||||
})];
|
||||
},
|
||||
// <CSSStyleDeclaration>.item
|
||||
item: function (index) {
|
||||
return this[index];
|
||||
},
|
||||
// <CSSStyleDeclaration>.removeProperty
|
||||
removeProperty: function () {
|
||||
throw new Error('NoModificationAllowedError: DOM Exception 7');
|
||||
},
|
||||
// <CSSStyleDeclaration>.setProperty
|
||||
setProperty: function () {
|
||||
throw new Error('NoModificationAllowedError: DOM Exception 7');
|
||||
},
|
||||
// <CSSStyleDeclaration>.getPropertyCSSValue
|
||||
getPropertyCSSValue: function () {
|
||||
throw new Error('NotSupportedError: DOM Exception 9');
|
||||
}
|
||||
};
|
||||
|
||||
// <Global>.getComputedStyle
|
||||
global.getComputedStyle = function getComputedStyle(element) {
|
||||
return new CSSStyleDeclaration(element);
|
||||
};
|
||||
}(this));
|
||||
})
|
||||
.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
|
||||
Reference in New Issue
Block a user