UNPKG

metro4

Version:

The front-end framework for Build responsive, mobile-first projects on the web with the first front-end component library in Metro Style

83 lines (73 loc) 2.54 kB
/* global Metro, Cake */ (function(Metro, $) { 'use strict'; var CookieDefaultConfig = { path: "/", expires: null, maxAge: null, domain: null, secure: false, samesite: null } Metro.cookieSetup = function (options) { CookieDefaultConfig = $.extend({}, CookieDefaultConfig, options); }; if (typeof window["metroCookieSetup"] !== undefined) { Metro.cookieSetup(window["metroCookieSetup"]); } Metro.cookie = { getCookies: function(){ var a = document.cookie.toArray(";"); var o = {}; $.each(a, function(){ var i = this.split('='); o[i[0]] = i[1]; }); return o; }, getCookie: function(name){ var cookieName = encodeURIComponent(name) + "="; var cookies = document.cookie.toArray(";"); var i, cookie; for(i = 0; i < cookies.length; i++) { cookie = cookies[i]; while (cookie.charAt(0) === ' ') { cookie = cookie.substring(1, cookie.length); } if (cookie.indexOf(cookieName) === 0) { return decodeURIComponent(cookie.substring(cookieName.length, cookie.length)); } } return null; }, setCookie: function(name, value, options){ var date; var cookieName = encodeURIComponent(name); var cookieValue = encodeURIComponent(value); var opt, a = []; if (options && typeof options !== "object") { date = new Date(); date.setTime(date.getTime()+(parseInt(options))); opt = $.extend({}, CookieDefaultConfig, { expires: date.toUTCString() }); } else { opt = $.extend({}, CookieDefaultConfig, options); } $.each(opt, function(key, val){ if (key !== 'secure' && val) { a.push(Str.dashedName(key) + "=" + val); } if (key === 'secure' && val === true) { a.push( "secure" ); } }); document.cookie = cookieName + '=' + cookieValue + "; " + a.join("; "); }, delCookie: function(name){ this.setCookie(name, false, { maxAge: -1 }); } }; }(Metro, m4q));