import type { NavLink, NavLinkProps } from '@layouts/types' /** * Return nav link props to use * @param {Object, String} item navigation routeName or route Object provided in navigation data */ export const getComputedNavLinkToProp = computed(() => (link: NavLink) => { const props: NavLinkProps = { target: link.target, rel: link.rel, } // If route is string => it assumes string is route name => Create route object from route name // If route is not string => It assumes it's route object => returns passed route object if (link.to) props.to = typeof link.to === 'string' ? { name: link.to } : link.to else props.href = link.href return props }) /** * Convert Hex color to rgb * @param hex */ export const hexToRgb = (hex: string) => { // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i hex = hex.replace(shorthandRegex, (m: string, r: string, g: string, b: string) => { return r + r + g + g + b + b }) const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex) return result ? `${parseInt(result[1], 16)},${parseInt(result[2], 16)},${parseInt(result[3], 16)}` : null }