12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*!
- Cookie helper functions
- Copyright (c) 2023 Dimitri van Heesch
- Released under MIT license.
- */
- let Cookie = {
- cookie_namespace: 'doxygen_',
- readSetting(cookie,defVal) {
- if (window.chrome) {
- const val = localStorage.getItem(this.cookie_namespace+cookie) ||
- sessionStorage.getItem(this.cookie_namespace+cookie);
- if (val) return val;
- } else {
- let myCookie = this.cookie_namespace+cookie+"=";
- if (document.cookie) {
- const index = document.cookie.indexOf(myCookie);
- if (index != -1) {
- const valStart = index + myCookie.length;
- let valEnd = document.cookie.indexOf(";", valStart);
- if (valEnd == -1) {
- valEnd = document.cookie.length;
- }
- return document.cookie.substring(valStart, valEnd);
- }
- }
- }
- return defVal;
- },
- writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete
- if (window.chrome) {
- if (days==0) {
- sessionStorage.setItem(this.cookie_namespace+cookie,val);
- } else {
- localStorage.setItem(this.cookie_namespace+cookie,val);
- }
- } else {
- let date = new Date();
- date.setTime(date.getTime()+(days*24*60*60*1000));
- const expiration = days!=0 ? "expires="+date.toGMTString()+";" : "";
- document.cookie = this.cookie_namespace + cookie + "=" +
- val + "; SameSite=Lax;" + expiration + "path=/";
- }
- },
- eraseSetting(cookie) {
- if (window.chrome) {
- if (localStorage.getItem(this.cookie_namespace+cookie)) {
- localStorage.removeItem(this.cookie_namespace+cookie);
- } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) {
- sessionStorage.removeItem(this.cookie_namespace+cookie);
- }
- } else {
- this.writeSetting(cookie,'',-1);
- }
- },
- }
|