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