| /*! |
| 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); |
| } |
| }, |
| } |