From 55d75baeec225a0938193e96780148af9ce43465 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Wed, 13 Jul 2016 13:41:54 +0000 Subject: [PATCH] Update modernizr and tests | done #551 @2 --- js/libs/fluidbook/fluidbook.support.js | 2 +- js/libs/modernizr/modernizr.js | 979 +------------------------ js/libs/modernizr/tests.js | 28 +- js/libs/storage.js | 3 - style/fluidbook.css | 1 + style/fluidbook.less | 1 + 6 files changed, 7 insertions(+), 1007 deletions(-) diff --git a/js/libs/fluidbook/fluidbook.support.js b/js/libs/fluidbook/fluidbook.support.js index 4c8f62e5..be3b9905 100644 --- a/js/libs/fluidbook/fluidbook.support.js +++ b/js/libs/fluidbook/fluidbook.support.js @@ -6,7 +6,7 @@ function FluidbookSupport(fluidbook) { this.iOS = this.userAgent.search(/ipad/i) > -1 || this.userAgent.search(/iphone/i) > -1 || this.userAgent.search(/ipod/i) > -1; this.transitions2d = Modernizr.csstransforms && Modernizr.csstransitions; - this.transitions3d = Modernizr.csstransforms3d && Modernizr.csstransformspreserve3d && this.transitions2d; + this.transitions3d = Modernizr.csstransforms3d && Modernizr.preserve3d && this.transitions2d; this.transitionendevent = null; diff --git a/js/libs/modernizr/modernizr.js b/js/libs/modernizr/modernizr.js index 0a741205..cc85e674 100644 --- a/js/libs/modernizr/modernizr.js +++ b/js/libs/modernizr/modernizr.js @@ -1,976 +1,3 @@ -/* Modernizr 2.6.2 (Custom Build) | MIT & BSD - * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load - */ -; - - -window.Modernizr = (function (window, document, undefined) { - - var version = '2.6.2', - - Modernizr = {}, - - enableClasses = true, - - docElement = document.documentElement, - - mod = 'modernizr', - modElem = document.createElement(mod), - mStyle = modElem.style, - - inputElem = document.createElement('input'), - - smile = ':)', - - toString = {}.toString, - - prefixes = ' -webkit- -moz- -o- -ms- '.split(' '), - - - omPrefixes = 'Webkit Moz O ms', - - cssomPrefixes = omPrefixes.split(' '), - - domPrefixes = omPrefixes.toLowerCase().split(' '), - - ns = {'svg': 'http://www.w3.org/2000/svg'}, - - tests = {}, - inputs = {}, - attrs = {}, - - classes = [], - - slice = classes.slice, - - featureName, - - - injectElementWithStyles = function (rule, callback, nodes, testnames) { - - var style, ret, node, docOverflow, - div = document.createElement('div'), - body = document.body, - fakeBody = body || document.createElement('body'); - - if (parseInt(nodes, 10)) { - while (nodes--) { - node = document.createElement('div'); - node.id = testnames ? testnames[nodes] : mod + (nodes + 1); - div.appendChild(node); - } - } - - style = ['­', ''].join(''); - div.id = mod; - (body ? div : fakeBody).innerHTML += style; - fakeBody.appendChild(div); - if (!body) { - fakeBody.style.background = ''; - fakeBody.style.overflow = 'hidden'; - docOverflow = docElement.style.overflow; - docElement.style.overflow = 'hidden'; - docElement.appendChild(fakeBody); - } - - ret = callback(div, rule); - if (!body) { - fakeBody.parentNode.removeChild(fakeBody); - docElement.style.overflow = docOverflow; - } else { - div.parentNode.removeChild(div); - } - - return !!ret; - - }, - - testMediaQuery = function (mq) { - - var matchMedia = window.matchMedia || window.msMatchMedia; - if (matchMedia) { - return matchMedia(mq).matches; - } - - var bool; - - injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function (node) { - bool = (window.getComputedStyle ? - getComputedStyle(node, null) : - node.currentStyle)['position'] == 'absolute'; - }); - - return bool; - - }, - - - isEventSupported = (function () { - - var TAGNAMES = { - 'select': 'input', 'change': 'input', - 'submit': 'form', 'reset': 'form', - 'error': 'img', 'load': 'img', 'abort': 'img' - }; - - function isEventSupported(eventName, element) { - - element = element || document.createElement(TAGNAMES[eventName] || 'div'); - eventName = 'on' + eventName; - - var isSupported = eventName in element; - - if (!isSupported) { - if (!element.setAttribute) { - element = document.createElement('div'); - } - if (element.setAttribute && element.removeAttribute) { - element.setAttribute(eventName, ''); - isSupported = is(element[eventName], 'function'); - - if (!is(element[eventName], 'undefined')) { - element[eventName] = undefined; - } - element.removeAttribute(eventName); - } - } - - element = null; - return isSupported; - } - - return isEventSupported; - })(), - - - _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp; - - if (!is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined')) { - hasOwnProp = function (object, property) { - return _hasOwnProperty.call(object, property); - }; - } - else { - hasOwnProp = function (object, property) { - return ((property in object) && is(object.constructor.prototype[property], 'undefined')); - }; - } - - - if (!Function.prototype.bind) { - Function.prototype.bind = function bind(that) { - - var target = this; - - if (typeof target != "function") { - throw new TypeError(); - } - - var args = slice.call(arguments, 1), - bound = function () { - - if (this instanceof bound) { - - var F = function () { - }; - F.prototype = target.prototype; - var self = new F(); - - var result = target.apply( - self, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return self; - - } else { - - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - - } - - }; - - return bound; - }; - } - - function setCss(str) { - mStyle.cssText = str; - } - - function setCssAll(str1, str2) { - return setCss(prefixes.join(str1 + ';') + ( str2 || '' )); - } - - function is(obj, type) { - return typeof obj === type; - } - - function contains(str, substr) { - return !!~('' + str).indexOf(substr); - } - - function testProps(props, prefixed) { - for (var i in props) { - var prop = props[i]; - if (!contains(prop, "-") && mStyle[prop] !== undefined) { - return prefixed == 'pfx' ? prop : true; - } - } - return false; - } - - function testDOMProps(props, obj, elem) { - for (var i in props) { - var item = obj[props[i]]; - if (item !== undefined) { - - if (elem === false) return props[i]; - - if (is(item, 'function')) { - return item.bind(elem || obj); - } - - return item; - } - } - return false; - } - - function testPropsAll(prop, prefixed, elem) { - - var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), - props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); - - if (is(prefixed, "string") || is(prefixed, "undefined")) { - return testProps(props, prefixed); - - } else { - props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' '); - return testDOMProps(props, prefixed, elem); - } - } - - tests['flexbox'] = function () { - return testPropsAll('flexWrap'); - }; - - - tests['flexboxlegacy'] = function () { - return testPropsAll('boxDirection'); - }; - - - tests['canvas'] = function () { - var elem = document.createElement('canvas'); - return !!(elem.getContext && elem.getContext('2d')); - }; - - tests['canvastext'] = function () { - return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function')); - }; - - - tests['webgl'] = function () { - return !!window.WebGLRenderingContext; - }; - - - tests['touch'] = function () { - var bool; - - if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) { - bool = true; - } else { - injectElementWithStyles(['@media (', prefixes.join('touch-enabled),('), mod, ')', '{#modernizr{top:9px;position:absolute}}'].join(''), function (node) { - bool = node.offsetTop === 9; - }); - } - - return bool; - }; - - - tests['geolocation'] = function () { - return 'geolocation' in navigator; - }; - - - tests['postmessage'] = function () { - return !!window.postMessage; - }; - - - tests['websqldatabase'] = function () { - return !!window.openDatabase; - }; - - tests['indexedDB'] = function () { - return !!testPropsAll("indexedDB", window); - }; - - tests['hashchange'] = function () { - return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7); - }; - - tests['history'] = function () { - return !!(window.history && history.pushState); - }; - - tests['draganddrop'] = function () { - var div = document.createElement('div'); - return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); - }; - - tests['websockets'] = function () { - return 'WebSocket' in window || 'MozWebSocket' in window; - }; - - - tests['rgba'] = function () { - setCss('background-color:rgba(150,255,150,.5)'); - - return contains(mStyle.backgroundColor, 'rgba'); - }; - - tests['hsla'] = function () { - setCss('background-color:hsla(120,40%,100%,.5)'); - - return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla'); - }; - - tests['multiplebgs'] = function () { - setCss('background:url(https://),url(https://),red url(https://)'); - - return (/(url\s*\(.*?){3}/).test(mStyle.background); - }; - tests['backgroundsize'] = function () { - return testPropsAll('backgroundSize'); - }; - - tests['borderimage'] = function () { - return testPropsAll('borderImage'); - }; - - - tests['borderradius'] = function () { - return testPropsAll('borderRadius'); - }; - - tests['boxshadow'] = function () { - return testPropsAll('boxShadow'); - }; - - tests['textshadow'] = function () { - return document.createElement('div').style.textShadow === ''; - }; - - - tests['opacity'] = function () { - setCssAll('opacity:.55'); - - return (/^0.55$/).test(mStyle.opacity); - }; - - - tests['cssanimations'] = function () { - return testPropsAll('animationName'); - }; - - - tests['csscolumns'] = function () { - return testPropsAll('columnCount'); - }; - - - tests['cssgradients'] = function () { - var str1 = 'background-image:', - str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', - str3 = 'linear-gradient(left top,#9f9, white);'; - - setCss( - (str1 + '-webkit- '.split(' ').join(str2 + str1) + - prefixes.join(str3 + str1)).slice(0, -str1.length) - ); - - return contains(mStyle.backgroundImage, 'gradient'); - }; - - - tests['cssreflections'] = function () { - return testPropsAll('boxReflect'); - }; - - - tests['csstransforms'] = function () { - return !!testPropsAll('transform'); - }; - - - tests['csstransforms3d'] = function () { - - var ret = !!testPropsAll('perspective'); - - if (ret && 'webkitPerspective' in docElement.style) { - - injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function (node, rule) { - ret = node.offsetLeft === 9 && node.offsetHeight === 3; - }); - } - return ret; - }; - - - tests['csstransitions'] = function () { - return testPropsAll('transition'); - }; - - - tests['fontface'] = function () { - var bool; - - injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function (node, rule) { - var style = document.getElementById('smodernizr'), - sheet = style.sheet || style.styleSheet, - cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : ''; - - bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; - }); - - return bool; - }; - - tests['generatedcontent'] = function () { - var bool; - - injectElementWithStyles(['#', mod, '{font:0/0 a}#', mod, ':after{content:"', smile, '";visibility:hidden;font:3px/1 a}'].join(''), function (node) { - bool = node.offsetHeight >= 3; - }); - - return bool; - }; - tests['video'] = function () { - var elem = document.createElement('video'), - bool = false; - - try { - if (bool = !!elem.canPlayType) { - bool = new Boolean(bool); - bool.ogg = elem.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ''); - - bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ''); - - bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, ''); - } - - } catch (e) { - } - - return bool; - }; - - tests['audio'] = function () { - var elem = document.createElement('audio'), - bool = false; - - try { - if (bool = !!elem.canPlayType) { - bool = new Boolean(bool); - bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ''); - bool.mp3 = elem.canPlayType('audio/mpeg;').replace(/^no$/, ''); - - bool.wav = elem.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ''); - bool.m4a = ( elem.canPlayType('audio/x-m4a;') || - elem.canPlayType('audio/aac;')).replace(/^no$/, ''); - } - } catch (e) { - } - - return bool; - }; - - - tests['localstorage'] = function () { - try { - localStorage.setItem(mod, mod); - localStorage.removeItem(mod); - return true; - } catch (e) { - return false; - } - }; - - tests['sessionstorage'] = function () { - try { - sessionStorage.setItem(mod, mod); - sessionStorage.removeItem(mod); - return true; - } catch (e) { - return false; - } - }; - - - tests['webworkers'] = function () { - return !!window.Worker; - }; - - - tests['applicationcache'] = function () { - return !!window.applicationCache; - }; - - - tests['svg'] = function () { - return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect; - }; - - tests['inlinesvg'] = function () { - var div = document.createElement('div'); - div.innerHTML = ''; - return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; - }; - - tests['smil'] = function () { - return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate'))); - }; - - - tests['svgclippaths'] = function () { - return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath'))); - }; - - function webforms() { - Modernizr['input'] = (function (props) { - for (var i = 0, len = props.length; i < len; i++) { - attrs[props[i]] = !!(props[i] in inputElem); - } - if (attrs.list) { - attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement); - } - return attrs; - })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' ')); - Modernizr['inputtypes'] = (function (props) { - - for (var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++) { - - inputElem.setAttribute('type', inputElemType = props[i]); - bool = inputElem.type !== 'text'; - - if (bool) { - - inputElem.value = smile; - inputElem.style.cssText = 'position:absolute;visibility:hidden;'; - - if (/^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined) { - - docElement.appendChild(inputElem); - defaultView = document.defaultView; - - bool = defaultView.getComputedStyle && - defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' && - (inputElem.offsetHeight !== 0); - - docElement.removeChild(inputElem); - - } else if (/^(search|tel)$/.test(inputElemType)) { - } else if (/^(url|email)$/.test(inputElemType)) { - bool = inputElem.checkValidity && inputElem.checkValidity() === false; - - } else { - bool = inputElem.value != smile; - } - } - - inputs[props[i]] = !!bool; - } - return inputs; - })('search tel url email datetime date month week time datetime-local number range color'.split(' ')); - } - - for (var feature in tests) { - if (hasOwnProp(tests, feature)) { - featureName = feature.toLowerCase(); - Modernizr[featureName] = tests[feature](); - - classes.push((Modernizr[featureName] ? '' : 'no-') + featureName); - } - } - - Modernizr.input || webforms(); - - - Modernizr.addTest = function (feature, test) { - if (typeof feature == 'object') { - for (var key in feature) { - if (hasOwnProp(feature, key)) { - Modernizr.addTest(key, feature[key]); - } - } - } else { - - feature = feature.toLowerCase(); - - if (Modernizr[feature] !== undefined) { - return Modernizr; - } - - test = typeof test == 'function' ? test() : test; - - if (typeof enableClasses !== "undefined" && enableClasses) { - docElement.className += ' ' + (test ? '' : 'no-') + feature; - } - Modernizr[feature] = test; - - } - - return Modernizr; - }; - - - setCss(''); - modElem = inputElem = null; - - ; - (function (window, document) { - var options = window.html5 || {}; - - var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; - - var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; - - var supportsHtml5Styles; - - var expando = '_html5shiv'; - - var expanID = 0; - - var expandoData = {}; - - var supportsUnknownElements; - - (function () { - try { - var a = document.createElement('a'); - a.innerHTML = ''; - supportsHtml5Styles = ('hidden' in a); - - supportsUnknownElements = a.childNodes.length == 1 || (function () { - (document.createElement)('a'); - var frag = document.createDocumentFragment(); - return ( - typeof frag.cloneNode == 'undefined' || - typeof frag.createDocumentFragment == 'undefined' || - typeof frag.createElement == 'undefined' - ); - }()); - } catch (e) { - supportsHtml5Styles = true; - supportsUnknownElements = true; - } - - }()); - function addStyleSheet(ownerDocument, cssText) { - var p = ownerDocument.createElement('p'), - parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; - - p.innerHTML = 'x'; - return parent.insertBefore(p.lastChild, parent.firstChild); - } - - function getElements() { - var elements = html5.elements; - return typeof elements == 'string' ? elements.split(' ') : elements; - } - - function getExpandoData(ownerDocument) { - var data = expandoData[ownerDocument[expando]]; - if (!data) { - data = {}; - expanID++; - ownerDocument[expando] = expanID; - expandoData[expanID] = data; - } - return data; - } - - function createElement(nodeName, ownerDocument, data) { - if (!ownerDocument) { - ownerDocument = document; - } - if (supportsUnknownElements) { - return ownerDocument.createElement(nodeName); - } - if (!data) { - data = getExpandoData(ownerDocument); - } - var node; - - if (data.cache[nodeName]) { - node = data.cache[nodeName].cloneNode(); - } else if (saveClones.test(nodeName)) { - node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); - } else { - node = data.createElem(nodeName); - } - - return node.canHaveChildren && !reSkip.test(nodeName) ? data.frag.appendChild(node) : node; - } - - function createDocumentFragment(ownerDocument, data) { - if (!ownerDocument) { - ownerDocument = document; - } - if (supportsUnknownElements) { - return ownerDocument.createDocumentFragment(); - } - data = data || getExpandoData(ownerDocument); - var clone = data.frag.cloneNode(), - i = 0, - elems = getElements(), - l = elems.length; - for (; i < l; i++) { - clone.createElement(elems[i]); - } - return clone; - } - - function shivMethods(ownerDocument, data) { - if (!data.cache) { - data.cache = {}; - data.createElem = ownerDocument.createElement; - data.createFrag = ownerDocument.createDocumentFragment; - data.frag = data.createFrag(); - } - - - ownerDocument.createElement = function (nodeName) { - if (!html5.shivMethods) { - return data.createElem(nodeName); - } - return createElement(nodeName, ownerDocument, data); - }; - - ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' + - 'var n=f.cloneNode(),c=n.createElement;' + - 'h.shivMethods&&(' + - getElements().join().replace(/\w+/g, function (nodeName) { - data.createElem(nodeName); - data.frag.createElement(nodeName); - return 'c("' + nodeName + '")'; - }) + - ');return n}' - )(html5, data.frag); - } - - function shivDocument(ownerDocument) { - if (!ownerDocument) { - ownerDocument = document; - } - var data = getExpandoData(ownerDocument); - - if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) { - data.hasCSS = !!addStyleSheet(ownerDocument, - 'article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}' + - 'mark{background:#FF0;color:#000}' - ); - } - if (!supportsUnknownElements) { - shivMethods(ownerDocument, data); - } - return ownerDocument; - } - - var html5 = { - - 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video', - - 'shivCSS': (options.shivCSS !== false), - - 'supportsUnknownElements': supportsUnknownElements, - - 'shivMethods': (options.shivMethods !== false), - - 'type': 'default', - - 'shivDocument': shivDocument, - - createElement: createElement, - - createDocumentFragment: createDocumentFragment - }; - window.html5 = html5; - - shivDocument(document); - - }(this, document)); - - Modernizr._version = version; - - Modernizr._prefixes = prefixes; - Modernizr._domPrefixes = domPrefixes; - Modernizr._cssomPrefixes = cssomPrefixes; - - Modernizr.mq = testMediaQuery; - - Modernizr.hasEvent = isEventSupported; - - Modernizr.testProp = function (prop) { - return testProps([prop]); - }; - - Modernizr.testAllProps = testPropsAll; - - - Modernizr.testStyles = injectElementWithStyles; - Modernizr.prefixed = function (prop, obj, elem) { - if (!obj) { - return testPropsAll(prop, 'pfx'); - } else { - return testPropsAll(prop, obj, elem); - } - }; - - - docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + - - (enableClasses ? ' js ' + classes.join(' ') : ''); - - return Modernizr; - -})(this, this.document); -/*yepnope1.5.4|WTFPL*/ -(function (a, b, c) { - function d(a) { - return "[object Function]" == o.call(a) - } - - function e(a) { - return "string" == typeof a - } - - function f() { - } - - function g(a) { - return !a || "loaded" == a || "complete" == a || "uninitialized" == a - } - - function h() { - var a = p.shift(); - q = 1, a ? a.t ? m(function () { - ("c" == a.t ? B.injectCss : B.injectJs)(a.s, 0, a.a, a.x, a.e, 1) - }, 0) : (a(), h()) : q = 0 - } - - function i(a, c, d, e, f, i, j) { - function k(b) { - if (!o && g(l.readyState) && (u.r = o = 1, !q && h(), l.onload = l.onreadystatechange = null, b)) { - "img" != a && m(function () { - t.removeChild(l) - }, 50); - for (var d in y[c])y[c].hasOwnProperty(d) && y[c][d].onload() - } - } - - var j = j || B.errorTimeout, l = b.createElement(a), o = 0, r = 0, u = {t: d, s: c, e: f, a: i, x: j}; - 1 === y[c] && (r = 1, y[c] = []), "object" == a ? l.data = c : (l.src = c, l.type = a), l.width = l.height = "0", l.onerror = l.onload = l.onreadystatechange = function () { - k.call(this, r) - }, p.splice(e, 0, u), "img" != a && (r || 2 === y[c] ? (t.insertBefore(l, s ? null : n), m(k, j)) : y[c].push(l)) - } - - function j(a, b, c, d, f) { - return q = 0, b = b || "j", e(a) ? i("c" == b ? v : u, a, b, this.i++, c, d, f) : (p.splice(this.i++, 0, a), 1 == p.length && h()), this - } - - function k() { - var a = B; - return a.loader = {load: j, i: 0}, a - } - - var l = b.documentElement, m = a.setTimeout, n = b.getElementsByTagName("script")[0], o = {}.toString, p = [], q = 0, r = "MozAppearance"in l.style, s = r && !!b.createRange().compareNode, t = s ? l : n.parentNode, l = a.opera && "[object Opera]" == o.call(a.opera), l = !!b.attachEvent && !l, u = r ? "object" : l ? "script" : "img", v = l ? "script" : u, w = Array.isArray || function (a) { - return "[object Array]" == o.call(a) - }, x = [], y = {}, z = { - timeout: function (a, b) { - return b.length && (a.timeout = b[0]), a - } - }, A, B; - B = function (a) { - function b(a) { - var a = a.split("!"), b = x.length, c = a.pop(), d = a.length, c = { - url: c, - origUrl: c, - prefixes: a - }, e, f, g; - for (f = 0; f < d; f++)g = a[f].split("="), (e = z[g.shift()]) && (c = e(c, g)); - for (f = 0; f < b; f++)c = x[f](c); - return c - } - - function g(a, e, f, g, h) { - var i = b(a), j = i.autoCallback; - i.url.split(".").pop().split("?").shift(), i.bypass || (e && (e = d(e) ? e : e[a] || e[g] || e[a.split("/").pop().split("?")[0]]), i.instead ? i.instead(a, e, f, g, h) : (y[i.url] ? i.noexec = !0 : y[i.url] = 1, f.load(i.url, i.forceCSS || !i.forceJS && "css" == i.url.split(".").pop().split("?").shift() ? "c" : c, i.noexec, i.attrs, i.timeout), (d(e) || d(j)) && f.load(function () { - k(), e && e(i.origUrl, h, g), j && j(i.origUrl, h, g), y[i.url] = 2 - }))) - } - - function h(a, b) { - function c(a, c) { - if (a) { - if (e(a))c || (j = function () { - var a = [].slice.call(arguments); - k.apply(this, a), l() - }), g(a, j, b, 0, h); else if (Object(a) === a)for (n in m = function () { - var b = 0, c; - for (c in a)a.hasOwnProperty(c) && b++; - return b - }(), a)a.hasOwnProperty(n) && (!c && !--m && (d(j) ? j = function () { - var a = [].slice.call(arguments); - k.apply(this, a), l() - } : j[n] = function (a) { - return function () { - var b = [].slice.call(arguments); - a && a.apply(this, b), l() - } - }(k[n])), g(a[n], j, b, n, h)) - } else!c && l() - } - - var h = !!a.test, i = a.load || a.both, j = a.callback || f, k = j, l = a.complete || f, m, n; - c(h ? a.yep : a.nope, !!i), i && c(i) - } - - var i, j, l = this.yepnope.loader; - if (e(a))g(a, 0, l, 0); else if (w(a))for (i = 0; i < a.length; i++)j = a[i], e(j) ? g(j, 0, l, 0) : w(j) ? B(j) : Object(j) === j && h(j, l); else Object(a) === a && h(a, l) - }, B.addPrefix = function (a, b) { - z[a] = b - }, B.addFilter = function (a) { - x.push(a) - }, B.errorTimeout = 1e4, null == b.readyState && b.addEventListener && (b.readyState = "loading", b.addEventListener("DOMContentLoaded", A = function () { - b.removeEventListener("DOMContentLoaded", A, 0), b.readyState = "complete" - }, 0)), a.yepnope = k(), a.yepnope.executeStack = h, a.yepnope.injectJs = function (a, c, d, e, i, j) { - var k = b.createElement("script"), l, o, e = e || B.errorTimeout; - k.src = a; - for (o in d)k.setAttribute(o, d[o]); - c = j ? h : c || f, k.onreadystatechange = k.onload = function () { - !l && g(k.readyState) && (l = 1, c(), k.onload = k.onreadystatechange = null) - }, m(function () { - l || (l = 1, c(1)) - }, e), i ? k.onload() : n.parentNode.insertBefore(k, n) - }, a.yepnope.injectCss = function (a, c, d, e, g, i) { - var e = b.createElement("link"), j, c = i ? h : c || f; - e.href = a, e.rel = "stylesheet", e.type = "text/css"; - for (j in d)e.setAttribute(j, d[j]); - g || (n.parentNode.insertBefore(e, n), m(c, 0)) - } -})(this, document); -Modernizr.load = function () { - yepnope.apply(window, [].slice.call(arguments, 0)); -}; -; \ No newline at end of file +/*! modernizr 3.3.1 (Custom Build) | MIT * + * https://modernizr.com/download/?-applicationcache-audio-csstransforms-csstransforms3d-csstransitions-fullscreen-localstorage-preserve3d-sessionstorage-svg-touchevents-video-addtest-atrule-domprefixes-hasevent-mq-prefixed-prefixedcss-prefixedcssvalue-prefixes-setclasses-testallprops-testprop-teststyles !*/ +!function(e,n,t){function r(e,n){return typeof e===n}function o(){var e,n,t,o,i,a,s;for(var c in T)if(T.hasOwnProperty(c)){if(e=[],n=T[c],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;td;d++)if(m=e[d],h=q.style[m],l(m,"-")&&(m=c(m)),q.style[m]!==t){if(i||r(o,"undefined"))return a(),"pfx"==n?m:!0;try{q.style[m]=o}catch(y){}if(q.style[m]!=h)return a(),"pfx"==n?m:!0}return a(),!1}function m(e,n){return function(){return e.apply(n,arguments)}}function h(e,n,t){var o;for(var i in e)if(e[i]in n)return t===!1?e[i]:(o=n[e[i]],r(o,"function")?m(o,t||n):o);return!1}function g(e,n,t,o,i){var a=e.charAt(0).toUpperCase()+e.slice(1),s=(e+" "+z.join(a+" ")+a).split(" ");return r(n,"string")||r(n,"undefined")?v(s,n,o,i):(s=(e+" "+E.join(a+" ")+a).split(" "),h(s,n,t))}function y(e,n,r){return g(e,t,t,n,r)}var w=[],T=[],C={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){T.push({name:e,fn:n,options:t})},addAsyncTest:function(e){T.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=C,Modernizr=new Modernizr,Modernizr.addTest("applicationcache","applicationCache"in e),Modernizr.addTest("svg",!!n.createElementNS&&!!n.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect),Modernizr.addTest("localstorage",function(){var e="modernizr";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(n){return!1}}),Modernizr.addTest("sessionstorage",function(){var e="modernizr";try{return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch(n){return!1}});var S=C._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):["",""];C._prefixes=S;var x;!function(){var e={}.hasOwnProperty;x=r(e,"undefined")||r(e.call,"undefined")?function(e,n){return n in e&&r(e.constructor.prototype[n],"undefined")}:function(n,t){return e.call(n,t)}}();var _=n.documentElement,b="svg"===_.nodeName.toLowerCase();C._l={},C.on=function(e,n){this._l[e]||(this._l[e]=[]),this._l[e].push(n),Modernizr.hasOwnProperty(e)&&setTimeout(function(){Modernizr._trigger(e,Modernizr[e])},0)},C._trigger=function(e,n){if(this._l[e]){var t=this._l[e];setTimeout(function(){var e,r;for(e=0;ea;a++){var s=S[a],c=s.toUpperCase()+"_"+r;if(c in i)return"@-"+s.toLowerCase()+"-"+n}return!1};C.atRule=$;var k=function(){function e(e,n){var o;return e?(n&&"string"!=typeof n||(n=s(n||"div")),e="on"+e,o=e in n,!o&&r&&(n.setAttribute||(n=s("div")),n.setAttribute(e,""),o="function"==typeof n[e],n[e]!==t&&(n[e]=t),n.removeAttribute(e)),o):!1}var r=!("onblur"in n.documentElement);return e}();C.hasEvent=k;var j=function(e,n){var t=!1,r=s("div"),o=r.style;if(e in o){var i=E.length;for(o[e]=n,t=o[e];i--&&!t;)o[e]="-"+E[i]+"-"+n,t=o[e]}return""===t&&(t=!1),t};C.prefixedCSSValue=j,Modernizr.addTest("audio",function(){var e=s("audio"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),n.mp3=e.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/,""),n.opus=e.canPlayType('audio/ogg; codecs="opus"')||e.canPlayType('audio/webm; codecs="opus"').replace(/^no$/,""),n.wav=e.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),n.m4a=(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(t){}return n}),Modernizr.addTest("video",function(){var e=s("video"),n=!1;try{(n=!!e.canPlayType)&&(n=new Boolean(n),n.ogg=e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),n.h264=e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),n.webm=e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""),n.vp9=e.canPlayType('video/webm; codecs="vp9"').replace(/^no$/,""),n.hls=e.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/,""))}catch(t){}return n}),Modernizr.addTest("preserve3d",function(){var e=s("a"),n=s("a");e.style.cssText="display: block; transform-style: preserve-3d; transform-origin: right; transform: rotateY(40deg);",n.style.cssText="display: block; width: 9px; height: 1px; background: #000; transform-origin: right; transform: rotateY(40deg);",e.appendChild(n),_.appendChild(e);var t=n.getBoundingClientRect();return _.removeChild(e),t.width&&t.width<4});var A="CSS"in e&&"supports"in e.CSS,N="supportsCSS"in e;Modernizr.addTest("supports",A||N);var L=function(){var n=e.matchMedia||e.msMatchMedia;return n?function(e){var t=n(e);return t&&t.matches||!1}:function(n){var t=!1;return d("@media "+n+" { #modernizr { position: absolute; } }",function(n){t="absolute"==(e.getComputedStyle?e.getComputedStyle(n,null):n.currentStyle).position}),t}}();C.mq=L;var O=C.testStyles=d;Modernizr.addTest("touchevents",function(){var t;if("ontouchstart"in e||e.DocumentTouch&&n instanceof DocumentTouch)t=!0;else{var r=["@media (",S.join("touch-enabled),("),"heartz",")","{#modernizr{top:9px;position:absolute}}"].join("");O(r,function(e){t=9===e.offsetTop})}return t});var R={elem:s("modernizr")};Modernizr._q.push(function(){delete R.elem});var q={style:R.elem.style};Modernizr._q.unshift(function(){delete q.style});C.testProp=function(e,n,r){return v([e],t,n,r)};C.testAllProps=g;var B=C.prefixed=function(e,n,t){return 0===e.indexOf("@")?$(e):(-1!=e.indexOf("-")&&(e=c(e)),n?g(e,n,t):g(e,"pfx"))};C.prefixedCSS=function(e){var n=B(e);return n&&u(n)};Modernizr.addTest("fullscreen",!(!B("exitFullscreen",n,!1)&&!B("cancelFullScreen",n,!1))),C.testAllProps=y,Modernizr.addTest("csstransforms",function(){return-1===navigator.userAgent.indexOf("Android 2.")&&y("transform","scale(1)",!0)}),Modernizr.addTest("csstransforms3d",function(){var e=!!y("perspective","1px",!0),n=Modernizr._config.usePrefixes;if(e&&(!n||"webkitPerspective"in _.style)){var t,r="#modernizr{width:0;height:0}";Modernizr.supports?t="@supports (perspective: 1px)":(t="@media (transform-3d)",n&&(t+=",(-webkit-transform-3d)")),t+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}",O(r+t,function(n){e=7===n.offsetWidth&&18===n.offsetHeight})}return e}),Modernizr.addTest("csstransitions",y("transition","all",!0)),o(),i(w),delete C.addTest,delete C.addAsyncTest;for(var I=0;I nav { -moz-transform-style: preserve-3d; -webkit-transform-style: preserve-3d; -o-transform-style: preserve-3d; + -ms-transform-style: preserve-3d; transform-style: preserve-3d; } ._3d .page { diff --git a/style/fluidbook.less b/style/fluidbook.less index 386834f0..39b50a98 100644 --- a/style/fluidbook.less +++ b/style/fluidbook.less @@ -1465,6 +1465,7 @@ ul.chapters a > nav { -moz-transform-style: preserve-3d; -webkit-transform-style: preserve-3d; -o-transform-style: preserve-3d; + -ms-transform-style: preserve-3d; transform-style: preserve-3d; } -- 2.39.5