mirror of
				https://github.com/ml-explore/mlx.git
				synced 2025-11-04 18:48:15 +08:00 
			
		
		
		
	
		
			
	
	
		
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/*!
							 | 
						||
| 
								 | 
							
								 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);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								}
							 |