|  | @ -1,32 +1,27 @@ | 
			
		
	
		
		
			
				
					|  |  | <template> |  |  | <template> | 
			
		
	
		
		
			
				
					
					|  |  |   <div class="row"> |  |  |   <div style="height: 100%"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |     <div class="col-sm-4 col-md-2 p-2 border-r border-solid border-neutral-300"> |  |  |     <q-tabs v-model="selectedTab" align="right" no-caps outside-arrows mobile-arrows> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |       <div style="height: 10px"></div> |  |  |       <q-tab v-for="iconSet in iconSets" :key="iconSet.name" :name="iconSet.name"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |       <q-tabs v-model="selectedTab" align="left" vertical dense no-caps outside-arrows mobile-arrows class=""> |  |  |         <span class="w-[180px] text-left"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |         <q-tab v-for="iconSet in iconSets" :key="iconSet.name" :name="iconSet.name"> |  |  |           {{ iconSet.label }} | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |           <span class="w-[180px] text-left"> |  |  |           <q-tooltip anchor="top middle" self="bottom middle" :offset="[10, 10]">{{ iconSet.label }}</q-tooltip> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |             {{ iconSet.label }} |  |  |         </span> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |             <q-tooltip anchor="top middle" self="bottom middle" :offset="[10, 10]">{{ iconSet.label }}</q-tooltip> |  |  |       </q-tab> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |           </span></q-tab |  |  |     </q-tabs> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |         > |  |  |     <q-tab-panels v-model="selectedTab" keep-alive vertical style="height: calc(100% - 48px)"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |       </q-tabs> |  |  |       <q-tab-panel v-for="iconSet in iconSets" :key="iconSet.name" :name="iconSet.name" style="height: 100%"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |     </div> |  |  |         <div class="row"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |     <div class="col-sm-8 col-md-10"> |  |  |           <div v-for="item in iconSet.icons" :key="item"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |       <q-tab-panels v-model="selectedTab" animated swipeable vertical transition-prev="jump-up" transition-next="jump-up"> |  |  |             <div class="grid justify-items-center py-2"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |         <q-tab-panel v-for="iconSet in iconSets" :key="iconSet.name" :name="iconSet.name"> |  |  |               <q-icon size="48px" :name="item" class="cursor-pointer" @click="iconItemClick(item)"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |           <div class="row"> |  |  |                 <q-tooltip anchor="top middle" self="bottom middle" :offset="[10, 10]">{{ item }}</q-tooltip> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |             <div v-for="item in iconSet.icons" :key="item"> |  |  |               </q-icon> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |               <div class="grid justify-items-center q-pa-sm"> |  |  |               <div class="truncate text-center" style="width: 72px">{{ item.replace(iconSet.prefix, '') }}</div> | 
			
				
				
			
		
	
		
		
			
				
					|  |  |                 <q-icon size="48px" :name="item" class="cursor-pointer" @click="iconItemClick(item)"> |  |  |  | 
			
		
	
		
		
			
				
					|  |  |                   <q-tooltip anchor="top middle" self="bottom middle" :offset="[10, 10]">{{ item }}</q-tooltip> |  |  |  | 
			
		
	
		
		
			
				
					|  |  |                 </q-icon> |  |  |  | 
			
		
	
		
		
			
				
					|  |  |                 <div class="truncate text-center" style="width: 60px">{{ item.replace(iconSet.prefix, '') }}</div> |  |  |  | 
			
		
	
		
		
			
				
					|  |  |               </div> |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					|  |  |             </div> |  |  |             </div> | 
			
		
	
		
		
			
				
					|  |  |           </div> |  |  |           </div> | 
			
		
	
		
		
			
				
					
					|  |  |         </q-tab-panel> |  |  |         </div> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |       </q-tab-panels> |  |  |       </q-tab-panel> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |     </div> |  |  |     </q-tab-panels> | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					|  |  |   </div> |  |  |   </div> | 
			
		
	
		
		
			
				
					|  |  | </template> |  |  | </template> | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  | @ -35,31 +30,13 @@ import { ref } from 'vue'; | 
			
		
	
		
		
			
				
					|  |  | import { Notify } from 'quasar'; |  |  | import { Notify } from 'quasar'; | 
			
		
	
		
		
			
				
					|  |  | import bootstrap from './icons/bootstrap.json'; |  |  | import bootstrap from './icons/bootstrap.json'; | 
			
		
	
		
		
			
				
					|  |  | import materialIcons from './icons/material-icons.json'; |  |  | import materialIcons from './icons/material-icons.json'; | 
			
		
	
		
		
			
				
					
					|  |  | import materialIconsOutlined from './icons/material-icons-outlined.json'; |  |  | //import materialSymbolsOutlined from './icons/material-symbols-outlined.json'; | 
			
				
				
			
		
	
		
		
			
				
					|  |  | import materialIconsRound from './icons/material-icons-rounded.json'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  | import materialIconsSharp from './icons/material-icons-sharp.json'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  | import materialSymbolsOutlined from './icons/material-symbols-outlined.json'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  | import materialSymbolsRounded from './icons/material-symbols-rounded.json'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  | import materialSymbolsSharp from './icons/material-symbols-sharp.json'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  | import eva from './icons/eva-icons.json'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  | import fontawesomeBrands from './icons/fontawesome-v6-icons-brands.json'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  | import fontawesomeRegular from './icons/fontawesome-v6-icons-regular.json'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  | import fontawesomeSolid from './icons/fontawesome-v6-icons-solid.json'; |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | const selectedTab = ref('bootstrap'); |  |  | const selectedTab = ref('bootstrap'); | 
			
		
	
		
		
			
				
					|  |  | const iconSets = [ |  |  | const iconSets = [ | 
			
		
	
		
		
			
				
					|  |  |   { name: 'bootstrap', label: 'Bootstrap', prefix: 'bi-', icons: bootstrap }, |  |  |   { name: 'bootstrap', label: 'Bootstrap', prefix: 'bi-', icons: bootstrap }, | 
			
		
	
		
		
			
				
					|  |  |   { name: 'materialIcons', label: 'Material', prefix: '', icons: materialIcons }, |  |  |   { name: 'materialIcons', label: 'Material', prefix: '', icons: materialIcons }, | 
			
		
	
		
		
			
				
					
					|  |  |   //{ name: 'materialIconsOutlined', label: 'Material (outlined)', prefix: 'o_', icons: materialIconsOutlined }, |  |  |   //{ name: 'materialSymbolsOutlined', label: 'Material Symbols (outlined)', prefix: 'sym_o_', icons: materialSymbolsOutlined }, | 
			
				
				
			
		
	
		
		
			
				
					|  |  |   //{ name: 'materialIconsRound', label: 'Material (round)', prefix: 'r_', icons: materialIconsRound }, |  |  |  | 
			
		
	
		
		
			
				
					|  |  |   //{ name: 'materialIconsSharp', label: 'Material (sharp)', prefix: 's_', icons: materialIconsSharp }, |  |  |  | 
			
		
	
		
		
			
				
					|  |  |   { name: 'materialSymbolsOutlined', label: 'Material Symbols (outlined)', prefix: 'sym_o_', icons: materialSymbolsOutlined }, |  |  |  | 
			
		
	
		
		
			
				
					|  |  |   //{ name: 'materialSymbolsRounded', label: 'Material Symbols (round)', prefix: 'sym_r_', icons: materialSymbolsRounded }, |  |  |  | 
			
		
	
		
		
			
				
					|  |  |   //{ name: 'materialSymbolsSharp', label: 'Material Symbols (sharp)', prefix: 'sym_s_', icons: materialSymbolsSharp }, |  |  |  | 
			
		
	
		
		
			
				
					|  |  |   { name: 'eva', label: 'Eva', prefix: 'eva-', icons: eva }, |  |  |  | 
			
		
	
		
		
			
				
					|  |  |   { name: 'fontawesomeBrands', label: 'fontawesome (brands)', prefix: 'fa-brands fa-', icons: fontawesomeBrands }, |  |  |  | 
			
		
	
		
		
			
				
					|  |  |   { name: 'fontawesomeRegular', label: 'fontawesome (regular)', prefix: 'fa-regular fa-', icons: fontawesomeRegular }, |  |  |  | 
			
		
	
		
		
			
				
					|  |  |   { name: 'fontawesomeSolid', label: 'fontawesome (solid)', prefix: 'fa-solid fa-', icons: fontawesomeSolid }, |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					|  |  | ]; |  |  | ]; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | const iconItemClick = (icon: string) => { |  |  | const iconItemClick = (icon: string) => { | 
			
		
	
	
		
		
			
				
					|  | 
 |