]> _ Git - fluidbook-html5.git/commitdiff
Update modernizr and tests | done #551 @2
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 13 Jul 2016 13:41:54 +0000 (13:41 +0000)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 13 Jul 2016 13:41:54 +0000 (13:41 +0000)
js/libs/fluidbook/fluidbook.support.js
js/libs/modernizr/modernizr.js
js/libs/modernizr/tests.js
js/libs/storage.js
style/fluidbook.css
style/fluidbook.less

index 4c8f62e5993e8eb898c63d87a55f03a2b6ad1d16..be3b9905d983f1aa221fdb4abad2ecf20cdde057 100644 (file)
@@ -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;
 
index 0a74120585b09150cf0899cb4b184d558b5264ac..cc85e674631530fb0c6288ce1ec4c66beb84080e 100644 (file)
@@ -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 = ['&#173;', '<style id="s', mod, '">', rule, '</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 = '<svg/>';
-        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 = '<xyz></xyz>';
-                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<style>' + cssText + '</style>';
-            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;t<n.options.aliases.length;t++)e.push(n.options.aliases[t].toLowerCase());for(o=r(n.fn,"function")?n.fn():n.fn,i=0;i<e.length;i++)a=e[i],s=a.split("."),1===s.length?Modernizr[s[0]]=o:(!Modernizr[s[0]]||Modernizr[s[0]]instanceof Boolean||(Modernizr[s[0]]=new Boolean(Modernizr[s[0]])),Modernizr[s[0]][s[1]]=o),w.push((o?"":"no-")+s.join("-"))}}function i(e){var n=_.className,t=Modernizr._config.classPrefix||"";if(b&&(n=n.baseVal),Modernizr._config.enableJSClass){var r=new RegExp("(^|\\s)"+t+"no-js(\\s|$)");n=n.replace(r,"$1"+t+"js$2")}Modernizr._config.enableClasses&&(n+=" "+t+e.join(" "+t),b?_.className.baseVal=n:_.className=n)}function a(e,n){if("object"==typeof e)for(var t in e)x(e,t)&&a(t,e[t]);else{e=e.toLowerCase();var r=e.split("."),o=Modernizr[r[0]];if(2==r.length&&(o=o[r[1]]),"undefined"!=typeof o)return Modernizr;n="function"==typeof n?n():n,1==r.length?Modernizr[r[0]]=n:(!Modernizr[r[0]]||Modernizr[r[0]]instanceof Boolean||(Modernizr[r[0]]=new Boolean(Modernizr[r[0]])),Modernizr[r[0]][r[1]]=n),i([(n&&0!=n?"":"no-")+r.join("-")]),Modernizr._trigger(e,n)}return Modernizr}function s(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):b?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}function c(e){return e.replace(/([a-z])-([a-z])/g,function(e,n,t){return n+t.toUpperCase()}).replace(/^-/,"")}function u(e){return e.replace(/([A-Z])/g,function(e,n){return"-"+n.toLowerCase()}).replace(/^ms-/,"-ms-")}function l(e,n){return!!~(""+e).indexOf(n)}function f(){var e=n.body;return e||(e=s(b?"svg":"body"),e.fake=!0),e}function d(e,t,r,o){var i,a,c,u,l="modernizr",d=s("div"),p=f();if(parseInt(r,10))for(;r--;)c=s("div"),c.id=o?o[r]:l+(r+1),d.appendChild(c);return i=s("style"),i.type="text/css",i.id="s"+l,(p.fake?p:d).appendChild(i),p.appendChild(d),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(n.createTextNode(e)),d.id=l,p.fake&&(p.style.background="",p.style.overflow="hidden",u=_.style.overflow,_.style.overflow="hidden",_.appendChild(p)),a=t(d,e),p.fake?(p.parentNode.removeChild(p),_.style.overflow=u,_.offsetHeight):d.parentNode.removeChild(d),!!a}function p(n,r){var o=n.length;if("CSS"in e&&"supports"in e.CSS){for(;o--;)if(e.CSS.supports(u(n[o]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var i=[];o--;)i.push("("+u(n[o])+":"+r+")");return i=i.join(" or "),d("@supports ("+i+") { #modernizr { position: absolute; } }",function(e){return"absolute"==getComputedStyle(e,null).position})}return t}function v(e,n,o,i){function a(){f&&(delete q.style,delete q.modElem)}if(i=r(i,"undefined")?!1:i,!r(o,"undefined")){var u=p(e,o);if(!r(u,"undefined"))return u}for(var f,d,v,m,h,g=["modernizr","tspan","samp"];!q.style&&g.length;)f=!0,q.modElem=s(g.shift()),q.style=q.modElem.style;for(v=e.length,d=0;v>d;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;e<t.length;e++)(r=t[e])(n)},0),delete this._l[e]}},Modernizr._q.push(function(){C.addTest=a});var P="Moz O ms Webkit",E=C._config.usePrefixes?P.toLowerCase().split(" "):[];C._domPrefixes=E;var z=C._config.usePrefixes?P.split(" "):[];C._cssomPrefixes=z;var $=function(n){var r,o=S.length,i=e.CSSRule;if("undefined"==typeof i)return t;if(!n)return!1;if(n=n.replace(/^@/,""),r=n.replace(/-/g,"_").toUpperCase()+"_RULE",r in i)return"@"+n;for(var a=0;o>a;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<Modernizr._q.length;I++)Modernizr._q[I]();e.Modernizr=Modernizr}(window,document);
\ No newline at end of file
index 0aed7b5ba591dba37c5dbc1ddee32a664f657d90..1c47e0a3bc6810e4e5ae2b1950da3fe46525a43c 100644 (file)
@@ -1,23 +1,5 @@
-Modernizr.addTest('csstransformspreserve3d', function () {
-    var prop,
-        val,
-        cssText,
-        ret;
-
-    prop = 'transform-style';
-    if ('webkitTransformStyle' in document.documentElement.style) {
-        prop = '-webkit-' + prop;
-    }
-    val = 'preserve-3d';
-    cssText = '#modernizr { ' + prop + ': ' + val + '; }';
-    Modernizr.testStyles(cssText, function (el, rule) {
-        ret = window.getComputedStyle ? getComputedStyle(el, null).getPropertyValue(prop) : '';
-    });
-    return (ret === val);
-});
-
 Modernizr.addTest('ftouch', function () {
-    if (!Modernizr.touch) {
+    if (!Modernizr.touchevents) {
         return false;
     }
     var bool;
@@ -35,14 +17,6 @@ Modernizr.addTest('ftouch', function () {
     return bool;
 });
 
-Modernizr.addTest('fullscreen', function () {
-    for (var i = 0; i < Modernizr._domPrefixes.length; i++) {
-        if (document[Modernizr._domPrefixes[i].toLowerCase() + 'CancelFullScreen'] || document[Modernizr._domPrefixes[i].toLowerCase() + 'ExitFullscreen'])
-            return true;
-    }
-    return !!document['cancelFullScreen'] || false;
-});
-
 Modernizr.addTest('ipad', function () {
     return !!navigator.userAgent.match(/iPad/i);
 });
index 7959bc898d5363cbda86d8a1df65ebb23f52ad84..49ac72a0a81ffa5bb3586d66ab78572671e89ffb 100644 (file)
@@ -1,6 +1,3 @@
-/**\r
- * Created by Vincent on 03/06/2015.\r
- */\r
 try {\r
     // Test webstorage existence.\r
     if (!window.localStorage || !window.sessionStorage) throw "exception";\r
index 0a056397415fcb556868850dc45a5d93666eb467..67fad2cbf7578cf1d255a311637fa70929c78162 100644 (file)
@@ -1252,6 +1252,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;
 }
 ._3d .page {
index 386834f06153a3abd05da8a3b9d3fd07ef907aef..39b50a98d0b460c92b9508470ecbc4db501c0c3e 100644 (file)
@@ -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;
 }