UNPKG

@rkosafo/cai.components

Version:

This package is under development and not ready for public use.

143 lines (142 loc) 4.2 kB
import { browser } from '$app/environment'; import clsx, {} from 'clsx'; import { quintOut } from 'svelte/easing'; import { crossfade } from 'svelte/transition'; import { twMerge } from 'tailwind-merge'; export { default as Popper } from './Popper.svelte'; export * from './closeButton/index.js'; export { trapFocus } from './action.js'; export * from './tableHeightUtils.js'; import dayjs from 'dayjs'; export function cn(...inputs) { return twMerge(clsx(inputs)); } export function saveToLocalStorage(key, data) { if (browser) { window.localStorage.setItem(key, JSON.stringify(data)); } } export function loadFromLocalStorage(key) { if (browser) { const data = window.localStorage.getItem(key); if (data) { try { return JSON.parse(data); } catch (e) { console.log(`Could not parse: ${data}`); } } else { return undefined; } } } export function extractQueryParam(queryString, index = 'q') { const urlParams = new URLSearchParams(queryString); const warehouse = urlParams.get(index); return warehouse ?? ''; } export const [send, receive] = crossfade({ duration: (d) => Math.sqrt(d * 200), fallback(node, params) { const style = getComputedStyle(node); const transform = style.transform === 'none' ? '' : style.transform; return { duration: 600, easing: quintOut, css: (t) => ` transform: ${transform} translateX(${(1 - t) * 100}%); opacity: ${t} ` }; } }); export function getInitials(val) { if (!val) return ''; return val .split(' ') .filter((x) => x.length > 1) .map((x) => x[0]) .join(''); } export function getInitials2(x) { if (!x) return ''; var xs = x.trim().split(' '); if (xs.length === 1) return x[0].toUpperCase(); if (xs.length === 0) return 'X'; return `${xs[0][0]}${xs[xs.length - 1][0]}`.toUpperCase(); } export function findTicketCategoryParents(selectedItem, data) { function findParentsRecursive(category, categories) { for (const item of categories) { if (item === category) { return [item.name]; } else if (item.items) { const parents = findParentsRecursive(category, item.items); if (parents) { return [item.name, ...parents]; } } } return null; } const parentStack = findParentsRecursive(selectedItem, data); return parentStack; } export function formatTicketDate(x) { let today = dayjs(); let date = dayjs(x); if (today.isSame(date, 'day')) { return date.format('hh:mm a'); } else if (date.add(7, 'day').isSame(today)) { return date.format('ddd'); } else { return date.format('ddd DD,MM,YYYY'); } } export function formatTicketHeader(x) { let today = dayjs(); let date = dayjs(x); // const yesterday = today.subtract(1, 'day'); const difference = today.diff(date, 'day'); const isDateInCurrentWeek = today.startOf('week').isSame(date.startOf('week'), 'day'); // console.log(difference); if (today.isSame(date, 'day')) { return 'Today'; } else if (difference === 0) { return 'Yesterday'; } else if (isDateInCurrentWeek) { return date.format('dddd'); } else { return date.format('ddd DD,MMM,YYYY'); } } export function isImage(path) { return (path?.toLowerCase().includes('jpeg') || path?.toLowerCase().includes('png') || path?.toLowerCase().includes('webq') || path?.toLowerCase().includes('jpg')); } export function isPdf(path) { return path.toLowerCase().endsWith('.pdf'); } export function isWord(path) { return path.toLowerCase().includes('docs'); } export function isPPT(path) { return path.toLowerCase().includes('pptx'); } export function isExcel(path) { return path?.toLowerCase().includes('csv') || path?.toLowerCase().includes('xlsx'); }