145 lines · 4.5 KB · JavaScript
RawDownload
/*! * JavaScript Cookie v2.1.0 * https://github.com/js-cookie/js-cookie * * Copyright 2006, 2015 Klaus Hartl & Fagner Brack * Released under the MIT license */(function (factory) {    if (typeof define === 'function' && define.amd) {        define(factory);    } else if (typeof exports === 'object') {        module.exports = factory();    } else {        var _OldCookies = window.Cookies;        var api = window.Cookies = factory();        api.noConflict = function () {            window.Cookies = _OldCookies;            return api;        };    }}(function () {    function extend() {        var i = 0;        var result = {};        for (; i < arguments.length; i++) {            var attributes = arguments[i];            for (var key in attributes) {                result[key] = attributes[key];            }        }        return result;    }     function init(converter) {        function api(key, value, attributes) {            var result;             // Write             if (arguments.length > 1) {                attributes = extend({                    path: '/'                }, api.defaults, attributes);                 if (typeof attributes.expires === 'number') {                    var expires = new Date();                    expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);                    attributes.expires = expires;                }                 try {                    result = JSON.stringify(value);                    if (/^[\{\[]/.test(result)) {                        value = result;                    }                } catch (e) { }                 if (!converter.write) {                    value = encodeURIComponent(String(value))                        .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);                } else {                    value = converter.write(value, key);                }                 key = encodeURIComponent(String(key));                key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);                key = key.replace(/[\(\)]/g, escape);                 return (document.cookie = [                    key, '=', value,                    attributes.expires && '; expires=' + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE                    attributes.path && '; path=' + attributes.path,                    attributes.domain && '; domain=' + attributes.domain,                    attributes.secure ? '; secure' : ''                ].join(''));            }             // Read             if (!key) {                result = {};            }             // To prevent the for loop in the first place assign an empty array            // in case there are no cookies at all. Also prevents odd result when            // calling "get()"            var cookies = document.cookie ? document.cookie.split('; ') : [];            var rdecode = /(%[0-9A-Z]{2})+/g;            var i = 0;             for (; i < cookies.length; i++) {                var parts = cookies[i].split('=');                var name = parts[0].replace(rdecode, decodeURIComponent);                var cookie = parts.slice(1).join('=');                 if (cookie.charAt(0) === '"') {                    cookie = cookie.slice(1, -1);                }                 try {                    cookie = converter.read ?                        converter.read(cookie, name) : converter(cookie, name) ||                        cookie.replace(rdecode, decodeURIComponent);                     if (this.json) {                        try {                            cookie = JSON.parse(cookie);                        } catch (e) { }                    }                     if (key === name) {                        result = cookie;                        break;                    }                     if (!key) {                        result[name] = cookie;                    }                } catch (e) { }            }             return result;        }         api.get = api.set = api;        api.getJSON = function () {            return api.apply({                json: true            }, [].slice.call(arguments));        };        api.defaults = {};         api.remove = function (key, attributes) {            api(key, '', extend(attributes, {                expires: -1            }));        };         api.withConverter = init;         return api;    }     return init(function () { });}));

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t