31 lines
		
	
	
		
			914 B
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			914 B
		
	
	
	
		
			JavaScript
		
	
	
	
| // retrieve a HTML string for given SVG icon name and size in pixels
 | |
| export function svg(name, size) {
 | |
|   return `<svg class="svg ${name}" width="${size}" height="${size}" aria-hidden="true"><use xlink:href="#${name}"/></svg>`;
 | |
| }
 | |
| 
 | |
| // transform /path/to/file.ext to file.ext
 | |
| export function basename(path = '') {
 | |
|   return path ? path.replace(/^.*\//, '') : '';
 | |
| }
 | |
| 
 | |
| // transform /path/to/file.ext to .ext
 | |
| export function extname(path = '') {
 | |
|   const [_, ext] = /.+(\.[^.]+)$/.exec(path) || [];
 | |
|   return ext || '';
 | |
| }
 | |
| 
 | |
| // test whether a variable is an object
 | |
| export function isObject(obj) {
 | |
|   return Object.prototype.toString.call(obj) === '[object Object]';
 | |
| }
 | |
| 
 | |
| // returns whether a dark theme is enabled
 | |
| export function isDarkTheme() {
 | |
|   return document.documentElement.classList.contains('theme-arc-green');
 | |
| }
 | |
| 
 | |
| // removes duplicate elements in an array
 | |
| export function uniq(arr) {
 | |
|   return Array.from(new Set(arr));
 | |
| }
 |