@ballistix.digital/react-components 8.5.6 → 8.6.1-rc-141.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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,MAAM;gBACJ,WAAW;gBACX,KAAK;gBACL,UACE;gBACF,QAAQ;oBACN,QAAQ;wBACN,MAAM;oBACP;gBACF;gBAED,MAAM;oBACJ,WAAW;oBACX,SAAS;oBACT,MAAM;oBACN,eAAe;wBACb,WAAW;wBACX,UAAU;wBACV,aAAa;wBACb,MAAM;4BACJ,WAAW;wBACZ;oBACF;gBACF;YACF;YACD,MAAM;gBACJ,WAAW;gBACX,KAAK;gBACL,SAAS;gBACT,QAAQ;oBACN,QAAQ;wBACN,MAAM;oBACP;gBACF;gBACD,MAAM;gBACN,QAAQ;gBACR,aAAa;gBACb,gBAAgB;oBACd,QAAQ;oBACR,UAAU;gBACX;gBACD,UACE;gBACF,WAAW;YACZ;QACF;IACF;IACD,MAAM;IACN,UAAU;AACX;AAED,IAAM,+BAAS;IACb,MAAI;IAEJ,SAAS;QACP,WAAW;QACX,KAAK;YACH,WAAW;YACX,OAAO;YACP,MAAM;QACP;IACF;IAED,OAAO;AACR;IAGD,2CAAe;;;A,I,iC,a,U,Q,I;I,iC,O,M,I,S,C;Q,I,I,G,I,G,I,U,M,E,I,G,I;Y,I,S,C,E;Y,I,I,K,E,I,O,S,C,c,C,I,C,G,I,C,C,E,G,C,C,E;Q;Q,O;I;I,O,+B,K,C,I,E;A;A,I,sC,a,U,a,I,S,E,E,I,E,I;I,I,Q,U,M,K,G;Q,I,I,I,G,I,K,M,E,I,I,G,I,I,M,C,C,K,I,G;Y,I,C,I,K,M,S,C,K,C,I,C,M,G;Y,E,C,E,G,I,C,E;Q;I;I,O,G,M,C,M,M,S,C,K,C,I,C;A;AFgEf,IAAM,mCAAyC,SAAC,KAAK;I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I;IAEjD,IAAA,KAUE,MAAK,EAVL,EACK,SASL,MAAK,KATM,EACb,OAQE,MAAK,IARH,EACJ,OAOE,MAAK,IAPH,EACJ,WAME,MAAK,QANC,EACR,YAKE,MAAK,SALE,EACT,aAIE,MAAK,UAJG,EACV,WAGE,MAAK,QAHC,EACA,kBAEN,MAAK,MAFgB,EACvB,aACE,MAAK,UADG;IAGN,IAAA,KAA0C,CAAA,GAAA,qBAAA,EAA0B,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","sources":["src/index.tsx","src/components/Element/Avatar/AvatarElement.tsx","src/helpers/calculate.ts","src/helpers/format.ts","src/helpers/object.ts","src/components/Element/Avatar/AvatarElement.styles.ts","src/components/Element/Alert/AlertElement.tsx","src/components/Element/Icon/index.ts","src/components/Element/Icon/IconElement.tsx","src/components/Element/Alert/AlertElement.styles.ts","src/components/Element/Badge/BadgeElement.tsx","src/components/Element/Badge/BadgeElement.styles.ts","src/components/Element/Tooltip/TooltipElement.tsx","src/components/Element/Tooltip/TooltipElement.styles.ts","src/components/Element/Button/ButtonElement.tsx","src/components/Element/Button/ButtonElement.styles.ts","src/components/Element/ButtonGroup/ButtonGroupElement.tsx","src/components/Element/ButtonGroup/ButtonGroupElement.styles.ts","src/components/Element/Dropdown/DropdownElement.tsx","src/components/Element/Dropdown/DropdownElement.styles.ts","src/components/Element/Collapsible/CollapsibleElement.tsx","src/components/Element/Collapsible/CollapsibleElement.styles.ts","src/components/Element/ProgressTrack/ProgressTrack.tsx","src/components/Element/Tooltip/index.ts","src/components/Element/ProgressTrack/ProgressTrack.styles.ts","src/components/Form/InputGroup/InputGroupForm.tsx","src/components/Custom/InputFooter/index.ts","src/components/Custom/InputFooter/InputFooter.tsx","src/components/Custom/InputFooter/InputFooter.styles.ts","src/components/Custom/InputHeader/index.ts","src/components/Custom/InputHeader/InputHeader.tsx","src/components/Custom/InputHeader/InputHeader.styles.ts","src/components/Form/InputGroup/InputGroupForm.styles.ts","src/components/Layout/Container/ContainerLayout.tsx","src/components/Layout/Container/ContainerLayout.styles.ts","src/components/Layout/Divider/DividerLayout.tsx","src/components/Layout/Divider/DividerLayout.styles.ts","src/components/Layout/ListContainer/ListContainerLayout.tsx","src/components/Layout/ListContainer/ListContainerLayout.styles.ts","src/components/Layout/MediaObject/MediaObjectLayout.tsx","src/components/Layout/MediaObject/MediaObjectLayout.styles.ts","src/components/Layout/Panel/PanelLayout.tsx","src/components/Layout/Panel/PanelLayout.styles.ts","src/components/List/Table/TableList.tsx","src/components/Navigation/PanelPagination/index.ts","src/components/Navigation/PanelPagination/PanelPaginationNavigation.tsx","src/components/Form/SelectMenu/index.ts","src/components/Form/SelectMenu/SelectMenuForm.tsx","src/components/Form/SelectMenu/SelectMenuForm.styles.ts","src/components/Navigation/PanelPagination/PanelPaginationNavigation.styles.ts","src/hooks/useExcel.ts","src/components/List/Table/TableList.styles.ts","src/components/List/Table2/TableList2.tsx","src/helpers/localStorage.ts","src/components/List/Table2/TableList2.styles.ts","src/helpers/table.ts","src/components/Navigation/Breadcrumbs/BreadcrumbsNavigation.tsx","src/components/Navigation/Breadcrumbs/BreadcrumbsNavigation.styles.ts","src/components/Navigation/PagePagination/PagePaginationNavigation.tsx","src/components/Navigation/PagePagination/PagePaginationNavigation.styles.ts","src/components/Navigation/Tab/TabNavigation.tsx","src/components/Navigation/Tab/TabNavigation.styles.ts","src/components/Navigation/Vertical/VerticalNavigation.tsx","src/components/Navigation/Vertical/VerticalNavigation.styles.ts","src/components/Overlay/Modal/ModalOverlay.tsx","src/components/Overlay/Modal/ModalOverlay.styles.ts","src/components/Overlay/Notification/NotificationOverlay.tsx","src/components/Overlay/Notification/NotificationOverlay.styles.ts","src/components/Overlay/SlideOver/SlideOverOverlay.tsx","src/components/Overlay/SlideOver/SlideOverOverlay.styles.ts","src/components/Custom/TableColumnOptionsCustom/TableColumnOptionsCustom.tsx","src/components/Custom/TableColumnOptionsCustom/TableColumnOptionsCustom.styles.ts","src/components/Custom/TableExportCustom/index.ts","src/components/Custom/TableExportCustom/TableExportCustom.tsx","src/helpers/date.ts","src/hooks/useExcelMapper.ts","src/components/Form/DateMenu/DateMenuForm.tsx","src/components/Form/DateRangeMenu/index.ts","src/components/Form/DateRangeMenu/DateRangeMenuForm.styles.ts","src/components/Form/DateRangeMenu/DateRangeMenuForm.tsx","src/components/Form/CheckboxInputGroup/CheckboxInputGroupForm.tsx","src/components/Form/CheckboxInputGroup/CheckboxInputGroupForm.styles.ts","src/components/Form/CheckboxInput/CheckboxInputForm.tsx","src/components/Form/CheckboxInput/CheckboxInputForm.styles.ts","src/components/Form/Switch/Switch.tsx","src/components/Form/Switch/Switch.styles.ts","src/components/Form/RichTextArea/RichTextArea.tsx","src/components/Form/RichTextArea/RichTextArea.styles.ts","src/components/Form/FileInputGroup/FileInputGroupForm.tsx","src/components/Form/FileInputGroup/FileInputGroupForm.styles.ts","src/components/Form/OpeningsHourInputGroup/OpeningsHourInputGroupForm.tsx","src/components/Form/OpeningsHourInputGroup/OpeningsHourInputGroupForm.styles.ts","src/components/Form/OpeningsHourInputGroup/partials/index.ts","src/components/Form/OpeningsHourInputGroup/partials/OpeningHoursItem/index.ts","src/components/Form/OpeningsHourInputGroup/partials/OpeningHoursItem/OpeningHourItemCustom.tsx","src/components/Form/OpeningsHourInputGroup/partials/OpeningHoursItem/OpeningHourItemCustom.styles.ts","src/components/Form/AddressInputGroup/AddressInputGroupForm.tsx","src/components/Form/AddressInputGroup/AddressInputGroupForm.styles.ts","src/hooks/useColumnHelper.tsx","src/helpers/query.ts"],"sourcesContent":["export { default as AvatarElement } from './components/Element/Avatar/AvatarElement';\nexport { default as AlertElement } from './components/Element/Alert/AlertElement';\nexport { default as BadgeElement } from './components/Element/Badge/BadgeElement';\nexport { default as TooltipElement } from './components/Element/Tooltip/TooltipElement';\nexport { default as ButtonElement } from './components/Element/Button/ButtonElement';\nexport type { TButtonElementProps } from './components/Element/Button';\nexport { default as ButtonGroupElement } from './components/Element/ButtonGroup/ButtonGroupElement';\nexport { default as DropdownElement } from './components/Element/Dropdown/DropdownElement';\nexport { default as IconElement } from './components/Element/Icon/IconElement';\nexport { default as CollapsibleElement } from './components/Element/Collapsible/CollapsibleElement';\nexport { default as ProgressTrackElement } from './components/Element/ProgressTrack/ProgressTrack';\nexport type { TProgressTrackStep } from './components/Element/ProgressTrack';\n\nexport { default as InputGroupForm } from './components/Form/InputGroup/InputGroupForm';\nexport type { TInputGroupFormProps, TInputGroupStyles } from './components/Form/InputGroup';\n\nexport { default as ContainerLayout } from './components/Layout/Container/ContainerLayout';\nexport { default as DividerLayout } from './components/Layout/Divider/DividerLayout';\nexport { default as ListContainerLayout } from './components/Layout/ListContainer/ListContainerLayout';\nexport { default as MediaObjectLayout } from './components/Layout/MediaObject/MediaObjectLayout';\nexport { default as PanelLayout } from './components/Layout/Panel/PanelLayout';\n\nexport { default as TableList } from './components/List/Table/TableList';\nexport type { TTableListProps, TTableListStyles } from './components/List/Table';\nexport { default as TableList2 } from './components/List/Table2/TableList2';\nexport type { TTableListProps as TTableList2Props } from './components/List/Table2';\nexport { createColumnHelper } from './helpers/table';\n\nexport { default as BreadcrumbsNavigation } from './components/Navigation/Breadcrumbs/BreadcrumbsNavigation';\nexport { default as PanelPaginationNavigation } from './components/Navigation/PanelPagination/PanelPaginationNavigation';\nexport { default as PagePaginationNavigation } from './components/Navigation/PagePagination/PagePaginationNavigation';\nexport { default as TabNavigation } from './components/Navigation/Tab/TabNavigation';\nexport { default as VerticalNavigation } from './components/Navigation/Vertical/VerticalNavigation';\n\nexport { default as ModalOverlay } from './components/Overlay/Modal/ModalOverlay';\nexport type { TModalOverlayProps } from './components/Overlay/Modal';\n\nexport { default as NotificationOverlay } from './components/Overlay/Notification/NotificationOverlay';\nexport { default as SlideOverOverlay } from './components/Overlay/SlideOver/SlideOverOverlay';\n\nexport { default as TableColumnOptionsCustom } from './components/Custom/TableColumnOptionsCustom/TableColumnOptionsCustom';\nexport { default as TableExportCustom } from './components/Custom/TableExportCustom';\n\nexport { default as SelectMenuForm } from './components/Form/SelectMenu/SelectMenuForm';\nexport type { TSelectMenuFormProps, TSelectMenuFormStyles } from './components/Form/SelectMenu';\n\nexport {\n fromSelectMenuOptionToStringValue,\n toClassName,\n toAddressString,\n toAddressUrl,\n toNationalRegistryNumberString,\n toPriceString,\n toReadableFileSize,\n toUserName,\n toUserInitials,\n} from './helpers/format';\nexport {\n toDateString,\n toTimeString,\n isValidDate,\n toDateTimeString,\n toDaysDifference,\n latestDateString,\n toDateValue,\n toTimeValue,\n toUTCDate,\n} from './helpers/date';\n\nexport { default as DateMenuForm } from './components/Form/DateMenu/DateMenuForm';\nexport { default as DateRangeMenuForm } from './components/Form/DateRangeMenu/DateRangeMenuForm';\nexport type { TDateMenuFormProps } from './components/Form/DateMenu';\n\nexport type {\n TDateRangeMenuFormProps,\n TDateRangeMenuFormStyles,\n TDateMenuFormStyles,\n} from './components/Form/DateRangeMenu';\n\nexport { default as __DEPRECATED__CheckboxInputGroupForm } from './components/Form/CheckboxInputGroup/CheckboxInputGroupForm';\nexport type { TCheckboxInputGroupFormProps, TCheckboxInputGroupFormStyles } from './components/Form/CheckboxInputGroup';\n\nexport { default as CheckboxInput } from './components/Form/CheckboxInput/CheckboxInputForm';\nexport type { TCheckboxInputFormProps, TCheckboxInputFormStyles } from './components/Form/CheckboxInput';\n\nexport { default as SwitchForm } from './components/Form/Switch/Switch';\nexport type { TSwitchFormProps, TSwitchStylesForm } from './components/Form/Switch';\n\nexport { default as RichTextArea } from './components/Form/RichTextArea/RichTextArea';\nexport type { TRichTextAreaProps, TRichTextAreaStylesForm } from './components/Form/RichTextArea';\n\nexport { default as FileInputGroupForm } from './components/Form/FileInputGroup/FileInputGroupForm';\nexport type { TFileInputGroupFormProps, TFileInputGroupFormStyles } from './components/Form/FileInputGroup';\n\nexport { default as OpeningsHourInputGroupForm } from './components/Form/OpeningsHourInputGroup/OpeningsHourInputGroupForm';\nexport type {\n TOpeningsHourInputGroupFormProps,\n TOpeningsHourInputGroupFormStyles,\n} from './components/Form/OpeningsHourInputGroup';\n\nexport { default as AddressInputGroupForm } from './components/Form/AddressInputGroup/AddressInputGroupForm';\nexport type {\n TAddressInputGroupFormProps,\n TAddressInputGroupFormValue,\n TAddressInputGroupFormStyles,\n} from './components/Form/AddressInputGroup';\n\nexport { useExcel } from './hooks/useExcel';\nexport { default as useExcelMapper } from './hooks/useExcelMapper';\nexport { default as useColumnHelper } from './hooks/useColumnHelper';\nexport type {\n StringColumn,\n BooleanColumn,\n ButtonColumn,\n DateColumn,\n LinkColumn,\n BadgeColumn,\n} from './hooks/useColumnHelper';\nexport type { TExcelCell, TExcelRow, TExcelSheet } from './hooks/useExcel';\n\nexport { escapeSpecialCharacters } from './helpers/query';\n","import { ArrowPathIcon } from '@heroicons/react/20/solid';\nimport { get, set } from 'lodash';\nimport React, { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TAvatarElementStyles } from './index';\nimport { default as defaultStyles } from './AvatarElement.styles';\n\nexport type TAvatarElementProps = {\n src?: string | undefined;\n placeholder?: string | undefined;\n children?: ReactNode | ReactNode[] | string;\n url?: string;\n\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n figure?: 'block' | 'rounded';\n status?: 'offline' | 'online' | 'blocked';\n\n isDisabled?: boolean;\n isLoading?: boolean;\n\n styles?: TAvatarElementStyles;\n};\n\nconst AvatarElement: FC<TAvatarElementProps> = (props) => {\n const {\n src,\n placeholder,\n children,\n url,\n\n size = 'md',\n figure = 'block',\n status,\n\n isDisabled,\n isLoading,\n\n styles: stylesOverrides,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n size && get(defaultStyles[size], key),\n figure && get(defaultStyles[figure], key),\n status && get(defaultStyles[status], key),\n\n isDisabled && get(defaultStyles.disabled, key),\n isLoading && get(defaultStyles.loading, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n if (isLoading) {\n return (\n <span className={styles.loading}>\n <ArrowPathIcon className={styles.spinner} />\n </span>\n );\n }\n\n if (!placeholder && !src) {\n const userIcon = (\n <svg className=\"h-full w-full text-gray-300\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M24 20.993V24H0v-2.996A14.977 14.977 0 0112.004 15c4.904 0 9.26 2.354 11.996 5.993zM16.002 8.999a4 4 0 11-8 0 4 4 0 018 0z\" />\n </svg>\n );\n\n return (\n <span className={styles.empty}>\n {userIcon}\n {status && <span className={styles.indicator} />}\n </span>\n );\n }\n\n if (!src) {\n return (\n <span className={styles.placeholder}>\n <span className={`text-${size} font-medium leading-none text-white`}>{placeholder}</span>\n {status && <span className={styles.indicator} />}\n </span>\n );\n }\n\n return (\n <a href={url}>\n <div className=\"flex items-center\">\n <span className=\"flex items-center justify-center\">\n <div className={styles.container} style={{ backgroundImage: `url(${src})` }} />\n {status && <span className={styles.indicator} />}\n </span>\n {children && <div className=\"ml-3\">{children}</div>}\n </div>\n </a>\n );\n};\n\nexport default AvatarElement;\n","export type NestedKeyOf<TObject extends object> = {\n [Key in keyof TObject & string]: TObject[Key] extends object ? `${Key}.${NestedKeyOf<TObject[Key]>}` : Key;\n}[keyof TObject & string];\n\nexport const calculateNestedKeys = <T extends Record<string, any>>(obj: T): NestedKeyOf<T>[] => {\n function flattenHelper(obj: T, prefix: string): NestedKeyOf<T>[] {\n return (Object.keys(obj) as NestedKeyOf<T>[]).reduce((acc, key): NestedKeyOf<T>[] => {\n const fullPath = prefix ? (`${prefix}.${key}` as NestedKeyOf<T>) : key;\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n return [...acc, ...flattenHelper(obj[key], fullPath)];\n } else {\n return [...acc, fullPath];\n }\n }, [] as NestedKeyOf<T>[]);\n }\n\n return flattenHelper(obj, '');\n};\n","import { isArray, map, padStart } from 'lodash';\nimport get from 'lodash/get';\n\n/**\n * Joins valid (truthy) items into a single string, separated by spaces.\n *\n * @param values - An array of values that can be strings, booleans, or undefined.\n * @returns A space-separated string of truthy values.\n *\n * @example\n * toClassName(\"btn\", false, \"btn-primary\"); // => \"btn btn-primary\"\n */\nexport const toClassName = (...values: Array<boolean | string | undefined>): string => {\n return values.filter(Boolean).join(' ');\n};\n\n/**\n * Converts a file size in bytes to a human-readable string (e.g. \"1.23 MB\").\n *\n * @param size - The file size in bytes.\n * @returns A human-friendly size (e.g. \"1.23 MB\") or an empty string if size < 0.\n *\n * @example\n * toReadableFileSize(1500000); // => \"1.43 MB\"\n */\nexport const toReadableFileSize = (size: number): string => {\n if (size < 0) return '';\n if (size === 0) return '0 B';\n const i = Math.floor(Math.log(size) / Math.log(1024));\n const value = (size / Math.pow(1024, i)).toFixed(2);\n const unit = ['B', 'kB', 'MB', 'GB', 'TB'][i] ?? 'B';\n return `${value} ${unit}`;\n};\n\nexport const toMergedClasses = <T, K>({\n styles,\n stylesOverrides,\n customStyles,\n identifier,\n\n type,\n}: {\n styles: T;\n stylesOverrides: K;\n identifier: string;\n\n customStyles?: string | undefined;\n type?: string;\n}) =>\n toClassName(\n get(type ? get(styles, type) : styles, identifier),\n get(type ? get(stylesOverrides, type) : stylesOverrides, identifier),\n customStyles,\n );\n\ntype TSelectMenuOption = {\n label: string;\n value: string;\n required?: boolean;\n};\n\nexport const fromSelectMenuOptionToStringValue = (value: TSelectMenuOption | TSelectMenuOption[]) => {\n if (value === null) return null;\n\n if (isArray(value)) {\n return map(value, 'value');\n }\n\n return (value as TSelectMenuOption)?.value;\n};\n\n\n/**\n * Converts a price in cents to an EUR currency string, using the nl-BE locale.\n *\n * @param price - The price in cents (e.g. 123 for €1,23).\n * @returns A formatted price string (e.g. \"€1,23\") or `'€ -,-'` if invalid.\n *\n * @example\n * toPriceString(123); // => \"€1,23\"\n */\nexport const toPriceString = (price?: number): string => {\n if (price == null || isNaN(price)) {\n return '€ -,-';\n }\n\n return (price / 100).toLocaleString('nl-BE', {\n style: 'currency',\n currency: 'EUR',\n });\n};\n\n/**\n * Formats a Belgian national registry number (NRN) to a standard notation: `xx.xx.xx-xxx.xx`.\n *\n * @param nrn - The NRN string, which may be up to 11 digits.\n * @returns Formatted NRN (e.g. \"93.05.18-223.61\") or empty string if invalid.\n *\n * @example\n * toNationalRegistryNumberString(\"93051822361\"); \n * // => \"93.05.18-223.61\"\n */\nexport const toNationalRegistryNumberString = (nrn?: string): string => {\n if (!nrn || nrn.length > 11) {\n return '';\n }\n\n let formatted = nrn;\n if (nrn.length < 11) {\n formatted = padStart(nrn, 11, '0');\n }\n\n return `${formatted.slice(0, 2)}.${formatted.slice(2, 4)}.${formatted.slice(\n 4,\n 6\n )}-${formatted.slice(6, 9)}.${formatted.slice(9, 11)}`;\n};\n\n\n/* --------------------------------------------------------------------------\n * USER UTILITIES\n * -------------------------------------------------------------------------- */\n\nexport type TUser = {\n firstName?: string;\n lastName?: string;\n email?: string;\n};\n\n/**\n * Constructs a display name for a user, using first/last name, or falls back to email.\n *\n * @param user - A user object that may contain `firstName`, `lastName`, and `email`.\n * @returns The user's full name, first name only, email, or an empty string if nothing is provided.\n *\n * @example\n * toUserName({ firstName: 'Alice', lastName: 'Smith' }); // => \"Alice Smith\"\n * toUserName({ email: 'test@example.com' }); // => \"test@example.com\"\n */\nexport const toUserName = (user?: TUser): string => {\n if (!user) return '';\n\n const { firstName, lastName, email } = user;\n if (firstName && lastName) return `${firstName} ${lastName}`;\n if (firstName) return firstName;\n if (email) return email;\n return '';\n};\n\n/**\n * Builds an initials string from a user's name or email. \n * If both `firstName` and `lastName` are present, returns the first letters of each.\n * Otherwise, returns the first character of the email or '?' if all else fails.\n *\n * @param user - A user object that may contain `firstName`, `lastName`, or `email`.\n * @returns A 1 or 2-letter string from the user's details.\n *\n * @example\n * toUserInitials({ firstName: 'Alice', lastName: 'Smith' }); // => \"AS\"\n * toUserInitials({ email: 'test@example.com' }); // => \"t\"\n */\nexport const toUserInitials = (user?: TUser): string => {\n if (!user) return '';\n\n const { firstName, lastName, email } = user;\n if (firstName && lastName) return `${firstName[0]}${lastName[0]}`;\n if (email) return email[0];\n return '?';\n};\n\n/* --------------------------------------------------------------------------\n * ADDRESS UTILITIES\n * -------------------------------------------------------------------------- */\n\nexport type TAddressInputGroupFormValue = {\n street?: string;\n houseNumber?: string;\n busNumber?: string;\n zipCode?: string;\n city?: string;\n country?: string;\n lat?: number;\n lng?: number;\n};\n\n/**\n * Converts an address object to a display-friendly string.\n *\n * @param value - The address object containing street, number, bus, city, country, etc.\n * @returns A formatted address string or an empty string if not provided.\n *\n * @example\n * toAddressString({ street: 'Main', houseNumber: '10', zipCode: '1000', city: 'Brussels', country: 'BE' })\n * // => \"Main 10, 1000 Brussels, BE\"\n */\nexport const toAddressString = (\n value?: Partial<TAddressInputGroupFormValue> | null\n): string => {\n if (!value) return '';\n const { street, houseNumber, busNumber, zipCode, city, country } = value;\n\n const parts = [\n street && houseNumber ? `${street} ${houseNumber}` : street || '',\n busNumber ? `Bus ${busNumber}` : '',\n zipCode && city ? `${zipCode} ${city}` : '',\n country || '',\n ].filter(Boolean);\n\n return parts.join(', ');\n};\n\n\n/**\n * Generates a Google Maps search URL from an address object, using lat/lng if provided.\n * Otherwise falls back to a text query of the address fields.\n *\n * @param value - An address object with optional lat/lng or text fields.\n * @returns A Google Maps URL if `value` is provided, otherwise `undefined`.\n *\n * @example\n * toAddressUrl({ lat: 50.8503, lng: 4.3517 }); \n * // => \"https://www.google.com/maps/search/?api=1&query=50.8503%2C4.3517\"\n *\n * toAddressUrl({ street: 'Main', houseNumber: '10', zipCode: '1000', city: 'Brussels', country: 'BE' });\n * // => \"https://www.google.com/maps/search/?api=1&query=Main%2010%201000%20Brussels%20BE\"\n */\nexport const toAddressUrl = (\n value?: Partial<TAddressInputGroupFormValue> | null\n): string | undefined => {\n if (!value) return undefined;\n const { street, houseNumber, busNumber, zipCode, city, country, lat, lng } = value;\n\n if (lat != null && lng != null) {\n return `https://www.google.com/maps/search/?api=1&query=${lat}%2C${lng}`;\n }\n\n const parts = [\n street,\n houseNumber,\n busNumber ? `Bus ${busNumber}` : '',\n zipCode,\n city,\n country,\n ]\n .filter(Boolean)\n .join(' ');\n const query = encodeURIComponent(parts);\n return `https://www.google.com/maps/search/?api=1&query=${query}`;\n};","export const deepCopyObject = (object: any) => JSON.parse(JSON.stringify(object));\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n loading: 'relative overflow-hidden bg-gray-50 flex items-center justify-center',\n spinner: 'animate-spin text-gray-400',\n empty: 'inline-block relative overflow-hidden bg-gray-50 text-red-400',\n placeholder: 'relative inline-flex items-center justify-center bg-gray-500',\n container: 'inline-block bg-gray-100 bg-cover bg-center',\n indicator: 'absolute top-0 right-0 block h-2.5 w-2.5 rounded-full ring-2 ring-white',\n};\n\nconst xs: TAvatarElementStyles = {\n loading: 'h-6 w-6',\n spinner: 'h-3 w-3 ',\n empty: 'h-6 w-6',\n placeholder: 'h-6 w-6',\n container: 'h-6 w-6',\n indicator: 'h-1.5 w-1.5',\n};\n\nconst sm: TAvatarElementStyles = {\n loading: 'h-8 w-8',\n spinner: 'h-5 w-5',\n empty: 'h-8 w-8',\n placeholder: 'h-8 w-8',\n container: 'h-8 w-8',\n indicator: 'h-2 w-2',\n};\n\nconst md: TAvatarElementStyles = {\n loading: 'h-10 w-10',\n spinner: 'h-7 w-7',\n empty: 'h-10 w-10',\n placeholder: 'h-10 w-10',\n container: 'h-10 w-10',\n indicator: 'h-2.5 w-2.5',\n};\n\nconst lg: TAvatarElementStyles = {\n loading: 'h-12 w-12',\n spinner: 'h-8 w-8',\n empty: 'h-12 w-12',\n placeholder: 'h-12 w-12',\n container: 'h-12 w-12',\n indicator: 'h-3 w-3',\n};\n\nconst xl: TAvatarElementStyles = {\n loading: 'h-14 w-14',\n spinner: 'h-10 w-10',\n empty: 'h-14 w-14',\n placeholder: 'h-14 w-14',\n container: 'h-14 w-14',\n indicator: 'h-3.5 w-3.5',\n};\n\nconst block: TAvatarElementStyles = {\n loading: 'rounded-md',\n spinner: 'rounded-md',\n empty: 'rounded-md',\n placeholder: 'rounded-md',\n container: 'rounded-md',\n indicator: 'transform -translate-y-1/2 translate-x-1/2',\n};\n\nconst rounded: TAvatarElementStyles = {\n loading: 'rounded-full',\n spinner: 'rounded-full',\n empty: 'rounded-full',\n placeholder: 'rounded-full',\n container: 'rounded-full',\n};\n\nconst disabled: TAvatarElementStyles = {\n container: 'opacity-20 cursor-not-allowed',\n};\n\nconst loading: TAvatarElementStyles = {\n container: 'cursor-progress',\n};\n\nconst offline: TAvatarElementStyles = {\n indicator: 'bg-gray-300',\n};\n\nconst online: TAvatarElementStyles = {\n indicator: 'bg-green-400',\n};\n\nconst blocked: TAvatarElementStyles = {\n indicator: 'bg-red-400',\n};\n\nconst styles = {\n base,\n\n xs,\n sm,\n md,\n lg,\n xl,\n\n block,\n rounded,\n\n offline,\n online,\n blocked,\n\n disabled,\n loading,\n};\n\nexport type TAvatarElementStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { get, set } from 'lodash';\nimport React, { FC, ReactNode, useMemo, useState } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../Icon';\n\nimport { default as defaultStyles } from './AlertElement.styles';\n\nimport { TAlertElementStyles } from '.';\n\nexport type TAlertElementProps = {\n title?: ReactNode;\n message?: ReactNode;\n\n iconAccessor?: IconName;\n type?: 'error' | 'warn' | 'info' | 'success' | 'generic';\n\n isCollapsible?: boolean;\n\n onClose?: () => void;\n onCollapse?: () => void;\n\n styles?: TAlertElementStyles;\n};\n\nconst AlertElement: FC<TAlertElementProps> = (props) => {\n const {\n title,\n message,\n\n type = 'generic',\n\n onClose,\n onCollapse,\n\n isCollapsible = false,\n\n styles: stylesOverrides,\n iconAccessor: iconAccessorOverride,\n } = props;\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const iconAccessor = useMemo(() => {\n if (iconAccessorOverride) return iconAccessorOverride;\n\n switch (type) {\n case 'info':\n return 'question-circle';\n case 'error':\n return 'exclamation-triangle';\n case 'warn':\n return 'exclamation-circle';\n case 'success':\n return 'sparkles';\n case 'generic':\n default:\n return undefined;\n }\n }, [iconAccessorOverride, type]);\n\n return (\n <div className={toClassName(styles.container)}>\n {iconAccessor && (\n <div className={styles.iconContainer}>\n <IconElement accessor={iconAccessor} className={toClassName(styles.icon)} aria-hidden=\"true\" />\n </div>\n )}\n <div className={styles.content.container}>\n <div>\n {title && <h3 className={toClassName(styles.content.title)}>{title}</h3>}\n {message && !isCollapsed && <p className={toClassName(styles.content.message)}>{message}</p>}\n </div>\n <div className={styles.content.actions}>\n {isCollapsible && (\n <div\n onClick={() => {\n setIsCollapsed(!isCollapsed);\n if (onCollapse) onCollapse();\n }}\n >\n <IconElement\n className={toClassName(styles.content.action, isCollapsed && styles.content.inverted)}\n accessor=\"chevron-up\"\n />\n </div>\n )}\n {onClose && (\n <div onClick={onClose}>\n <IconElement className={styles.content.action} accessor=\"times\" />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default AlertElement;\n","/*\n\n https://fontawesome.com/docs/web/use-with/react/\n\n */\n\nexport { default } from './IconElement';\n","import { IconName, library } from '@fortawesome/fontawesome-svg-core';\nimport { fab } from '@fortawesome/free-brands-svg-icons';\nimport { fal } from '@fortawesome/pro-light-svg-icons';\nimport { far } from '@fortawesome/pro-regular-svg-icons';\nimport { fas } from '@fortawesome/pro-solid-svg-icons';\nimport { fat } from '@fortawesome/pro-thin-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { FC } from 'react';\n\ntype TProps = {\n accessor: IconName;\n type?: 'brands' | 'light' | 'regular' | 'solid' | 'thin';\n className?: string;\n};\n\nconst IconElement: FC<TProps> = (props) => {\n const { accessor, type = 'regular', className } = props;\n\n let component = <div></div>;\n\n switch (type) {\n case 'brands':\n if (!(library as any)?.definitions.fab) {\n library.add(fab as any);\n }\n component = <FontAwesomeIcon icon={['fab', 'facebook']} className={className} />;\n break;\n case 'light':\n if (!(library as any)?.definitions.fal) {\n library.add(fal);\n }\n\n component = <FontAwesomeIcon icon={['fal', accessor]} className={className} />;\n break;\n case 'regular':\n if (!(library as any)?.definitions.far) {\n library.add(far);\n }\n\n component = <FontAwesomeIcon icon={['far', accessor]} className={className} />;\n break;\n case 'solid':\n if (!(library as any)?.definitions.fas) {\n library.add(fas);\n }\n\n component = <FontAwesomeIcon icon={['fas', accessor]} className={className} />;\n break;\n case 'thin':\n if (!(library as any)?.definitions.fat) {\n library.add(fat);\n }\n\n component = <FontAwesomeIcon icon={['fat', accessor]} className={className} />;\n break;\n }\n\n return component;\n};\n\nexport default IconElement;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'flex rounded-xs p-4 border-l-4',\n\n icon: 'h-5 w-5',\n\n content: {\n container: 'ml-3 flex-1 md:flex md:justify-between ease-in-out transition-transform h-full',\n iconContainer: 'shrink-0',\n title: 'text-md font-semibold',\n message: 'text-sm',\n actions: 'flex gap-2',\n action: 'h-5 w-5 p-0! hover:opacity-60 cursor-pointer',\n inverted: 'rotate-180',\n },\n};\n\nconst generic: TAlertElementStyles = {\n container: 'bg-gray-50 border-gray-400',\n icon: 'text-gray-400',\n content: {\n actions: 'text-gray-500',\n message: 'text-gray-500',\n title: 'text-gray-500 rotate',\n },\n};\n\nconst error: TAlertElementStyles = {\n container: 'bg-red-50 border-red-400',\n icon: 'text-red-400',\n content: {\n actions: 'text-red-500',\n message: 'text-red-500',\n title: 'text-red-500',\n },\n};\n\nconst warn: TAlertElementStyles = {\n container: 'bg-yellow-50 border-orange-400',\n icon: 'text-orange-400',\n content: {\n actions: 'text-orange-500',\n message: 'text-orange-500',\n title: 'text-orange-500',\n },\n};\n\nconst success: TAlertElementStyles = {\n container: 'bg-green-50 border-green-400',\n icon: 'text-green-400',\n content: {\n actions: 'text-green-500',\n message: 'text-green-500',\n title: 'text-green-500',\n },\n};\n\nconst info: TAlertElementStyles = {\n container: 'bg-blue-50 border-blue-400',\n icon: 'text-blue-400',\n content: {\n actions: 'text-blue-500',\n message: 'text-blue-500',\n title: 'text-blue-500',\n },\n};\n\nconst styles = {\n base,\n\n generic,\n error,\n warn,\n success,\n info,\n};\n\nexport type TAlertElementStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { ReactNode, FC, useMemo } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../Icon';\n\nimport { default as defaultStyles } from './BadgeElement.styles';\n\nimport { TBadgeElementStyles } from '.';\n\nexport type TBadgeElementColor = 'gray' | 'red' | 'yellow' | 'green' | 'blue' | 'indigo' | 'purple' | 'pink';\n\nexport type TBadgeElementProps = {\n children: ReactNode;\n\n color?: TBadgeElementColor;\n type?: 'normal' | 'indicator' | 'close';\n size?: 'sm' | 'lg';\n figure?: 'block' | 'rounded';\n\n isDisabled?: boolean;\n isLoading?: boolean;\n\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n onClose?: (e: React.MouseEvent<HTMLDivElement>) => void;\n\n styles?: TBadgeElementStyles;\n\n dataCy?: string;\n};\n\nconst BadgeElement: FC<TBadgeElementProps> = (props) => {\n const {\n children,\n\n color = 'gray',\n type = 'normal',\n size = 'sm',\n figure = 'block',\n\n isDisabled,\n isLoading,\n\n onClick,\n onClose,\n\n styles: stylesOverrides,\n\n dataCy,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n color && get(defaultStyles[color], key),\n size && get(defaultStyles[size], key),\n figure && get(defaultStyles[figure], key),\n\n isDisabled && get(defaultStyles.disabled, key),\n isLoading && get(defaultStyles.loading, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const closeButton = useMemo(() => {\n if (type !== 'close' || !onClose) return null;\n\n const handleClose = (e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n onClose(e);\n };\n\n return (\n <div className={styles.button} onClick={handleClose}>\n <span className=\"sr-only\">Remove large option</span>\n <IconElement className={styles.closeIcon} type=\"regular\" accessor=\"times\" />\n </div>\n );\n }, [type, onClose, styles.button, styles.closeIcon]);\n\n if (isLoading) {\n return (\n <span className={toClassName(styles.container, 'h-4 w-12 animate-pulse')}>\n {type === 'indicator' && (\n <svg className={styles.indicator} fill=\"currentColor\" viewBox=\"0 0 8 8\">\n <circle cx={4} cy={4} r={3} />\n </svg>\n )}\n </span>\n );\n }\n\n return (\n <span className={toClassName(styles.container, !!onClick && 'cursor-pointer')} data-cy={dataCy} onClick={onClick}>\n {type === 'indicator' && (\n <svg className={styles.indicator} fill=\"currentColor\" viewBox=\"0 0 8 8\">\n <circle cx={4} cy={4} r={3} />\n </svg>\n )}\n {children}\n {closeButton}\n </span>\n );\n};\n\nexport default BadgeElement;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'inline-flex items-center font-medium py-0.5',\n indicator: '',\n button:\n 'shrink-0 ml-0.5 h-4 w-4 rounded-full inline-flex items-center justify-center focus:text-white focus:outline-hidden cursor-pointer',\n closeIcon: '',\n};\n\nconst normal: TBadgeElementStyles = {\n container: 'px-2.5',\n};\n\nconst indicator: TBadgeElementStyles = {\n container: 'px-2.5',\n};\n\nconst close: TBadgeElementStyles = {\n container: 'pl-2.5 pr-1',\n};\n\nconst primary: TBadgeElementStyles = {\n container: `shadow-xs text-white bg-primary-600 hover:bg-primary-700`,\n};\n\nconst secondary: TBadgeElementStyles = {\n container: `shadow-none text-primary-700 bg-primary-100 hover:bg-primary-200`,\n};\n\nconst outline: TBadgeElementStyles = {\n container: `border-gray-300 text-gray-700 bg-white hover:bg-gray-50`,\n};\n\nconst sm: TBadgeElementStyles = {\n container: 'text-xs',\n indicator: 'mr-1.5 h-2 w-2 ',\n};\n\nconst lg: TBadgeElementStyles = {\n container: 'text-sm',\n indicator: '-ml-0.5 mr-1.5 h-2 w-2',\n};\n\nconst block: TBadgeElementStyles = {\n container: 'rounded-md',\n};\n\nconst rounded: TBadgeElementStyles = {\n container: 'rounded-full',\n};\n\nconst gray: TBadgeElementStyles = {\n container: 'bg-gray-100 text-gray-800',\n indicator: 'text-gray-400',\n button: 'text-gray-400 hover:bg-gray-200 hover:text-gray-500 focus:bg-gray-500',\n};\n\nconst red: TBadgeElementStyles = {\n container: 'bg-red-100 text-red-800',\n indicator: 'text-red-400',\n button: 'text-red-400 hover:bg-red-200 hover:text-red-500 focus:bg-red-500',\n};\n\nconst yellow: TBadgeElementStyles = {\n container: 'bg-yellow-100 text-yellow-800',\n indicator: 'text-yellow-400',\n button: 'text-yellow-400 hover:bg-yellow-200 hover:text-yellow-500 focus:bg-yellow-500',\n};\n\nconst green: TBadgeElementStyles = {\n container: 'bg-green-100 text-green-800',\n indicator: 'text-green-400',\n button: 'text-green-400 hover:bg-green-200 hover:text-green-500 focus:bg-green-500',\n};\n\nconst blue: TBadgeElementStyles = {\n container: 'bg-blue-100 text-blue-800',\n indicator: 'text-blue-400',\n button: 'text-blue-400 hover:bg-blue-200 hover:text-blue-500 focus:bg-blue-500',\n};\n\nconst indigo: TBadgeElementStyles = {\n container: 'bg-primary-100 text-primary-800',\n indicator: 'text-primary-400',\n button: 'text-primary-400 hover:bg-primary-200 hover:text-primary-500 focus:outline-hidden focus:bg-primary-500',\n};\n\nconst purple: TBadgeElementStyles = {\n container: 'bg-purple-100 text-purple-800',\n indicator: 'text-purple-400',\n button: 'text-purple-400 hover:bg-purple-200 hover:text-purple-500 focus:bg-purple-500',\n};\n\nconst pink: TBadgeElementStyles = {\n container: 'bg-pink-100 text-pink-800',\n indicator: 'text-pink-400',\n button: 'text-pink-400 hover:bg-pink-200 hover:text-pink-500 focus:bg-purple-500',\n};\n\nconst disabled: TBadgeElementStyles = {\n container: 'opacity-20 cursor-not-allowed',\n};\n\nconst loading: TBadgeElementStyles = {\n container: 'cursor-progress',\n};\n\nconst styles = {\n base,\n\n normal,\n indicator,\n close,\n\n primary,\n secondary,\n outline,\n\n sm,\n lg,\n\n block,\n rounded,\n\n gray,\n red,\n yellow,\n green,\n blue,\n indigo,\n purple,\n pink,\n\n disabled,\n loading,\n};\n\nexport type TBadgeElementStyles = DeepPartial<typeof base>;\nexport default styles;\n","import {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useHover,\n useFocus,\n useDismiss,\n useRole,\n useInteractions,\n FloatingArrow,\n arrow,\n Placement,\n} from '@floating-ui/react';\nimport { get, set } from 'lodash';\nimport React, { ReactNode, FC, useState, useRef } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './TooltipElement.styles';\n\nimport { TTooltipElementStyles } from '.';\n\nexport type TProps = {\n children: ReactNode;\n content: ReactNode;\n placement?: Placement;\n isPointing?: boolean;\n isHidden?: boolean;\n\n styles?: TTooltipElementStyles;\n\n dataCy?: string;\n};\n\nconst TooltipElement: FC<TProps> = (props) => {\n const {\n children,\n //\n content,\n //\n placement,\n isHidden,\n isPointing,\n //\n styles: stylesOverrides,\n dataCy,\n } = props;\n\n const arrowRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement,\n middleware: [\n offset(10),\n flip(),\n shift(),\n arrow({\n element: arrowRef,\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const hover = useHover(context, { move: false });\n const focus = useFocus(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, {\n // If your reference element has its own label (text).\n role: 'tooltip',\n });\n\n // Merge all the interactions into prop getters\n const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss, role]);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key))));\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const childrenWithProps = React.Children.map(children, (child) => {\n const props = { ref: refs.setReference, ...getReferenceProps() };\n if (React.isValidElement(child)) {\n return React.cloneElement(child, props);\n }\n return child;\n });\n\n if (isHidden) return children;\n\n return (\n <>\n {childrenWithProps}\n {isOpen && (\n <div\n data-cy={dataCy}\n ref={refs.setFloating}\n style={floatingStyles}\n className={toClassName(styles.content, stylesOverrides?.content)}\n {...getFloatingProps()}\n >\n {isPointing && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n fill={styles.arrow.fill}\n stroke={styles.arrow.stroke}\n strokeWidth={Number(styles.arrow.strokeWidth)}\n />\n )}\n {content}\n </div>\n )}\n </>\n );\n};\n\nexport default TooltipElement;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'w-fit h-fit relative group/tooltip',\n content:\n 'absolute flex justify-center items-center z-200 tooltip-animate px-4 py-2 border whitespace-nowrap border-palette-grayDarker bg-white font-light text-xs rounded-xs',\n arrow: {\n stroke: '#e5e7eb',\n fill: 'white',\n strokeWidth: '1',\n },\n};\n\nconst styles = {\n base,\n};\n\nexport type TTooltipElementStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { ReactNode, FC, RefObject, MouseEvent } from 'react';\n\nimport IconElement from '../../../components/Element/Icon/IconElement';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './ButtonElement.styles';\n\nimport { TButtonElementStyles } from '.';\n\nexport type TButtonElementProps = {\n children: ReactNode;\n innerRef?: RefObject<HTMLButtonElement | null>;\n htmlType?: 'button' | 'submit';\n\n type?: 'primary' | 'secondary' | 'outline';\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n figure?: 'block' | 'rounded';\n status?: 'idle' | 'loading' | 'success' | 'error';\n\n isDisabled?: boolean;\n\n dataCy?: string;\n\n styles?: TButtonElementStyles;\n\n onClick?: (e?: MouseEvent<HTMLButtonElement>) => void;\n};\n\nconst ButtonElement: FC<TButtonElementProps> = (props) => {\n const {\n children,\n innerRef,\n htmlType = 'button',\n dataCy,\n type = 'primary',\n size = 'md',\n figure = 'block',\n status = 'idle',\n\n isDisabled,\n\n styles: stylesOverrides,\n\n onClick,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n size && get(defaultStyles[size], key),\n figure && get(defaultStyles[figure], key),\n status && get(defaultStyles[status], key),\n\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <button\n type={htmlType}\n className={styles.container}\n disabled={isDisabled || status !== 'idle'}\n onClick={(e) => {\n onClick && onClick(e);\n }}\n ref={innerRef}\n data-cy={dataCy}\n >\n {status === 'idle' && children}\n {status === 'loading' && (\n <div className={styles.content}>\n <IconElement type=\"regular\" accessor=\"spinner\" className={styles.spinner} />\n <div>{children}</div>\n </div>\n )}\n {status === 'error' && (\n <div className={styles.content}>\n <IconElement type=\"regular\" accessor=\"circle-exclamation\" className={styles.icon} />\n <div>{children}</div>\n </div>\n )}\n {status === 'success' && (\n <div className={styles.content}>\n <IconElement type=\"regular\" accessor=\"circle-check\" className={styles.icon} />\n <div>{children}</div>\n </div>\n )}\n </button>\n );\n};\n\nexport default ButtonElement;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container:\n 'inline-flex items-center border border-transparent font-medium focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 duration-300',\n content: 'flex gap-2',\n icon: '',\n spinner: 'animate-spin',\n};\n\nconst primary: TButtonElementStyles = {\n container: `shadow-xs text-white bg-primary-600 hover:bg-primary-700`,\n};\n\nconst secondary: TButtonElementStyles = {\n container: `shadow-none text-primary-700 bg-primary-100 hover:bg-primary-200`,\n};\n\nconst outline: TButtonElementStyles = {\n container: `border-gray-300 text-gray-700 bg-white hover:bg-gray-50`,\n};\n\nconst xs: TButtonElementStyles = {\n container: 'px-3 py-1.5 text-xs',\n};\n\nconst sm: TButtonElementStyles = {\n container: 'px-3.5 py-2 text-sm',\n};\n\nconst md: TButtonElementStyles = {\n container: 'px-4 py-2.5 text-sm',\n};\n\nconst lg: TButtonElementStyles = {\n container: 'px-5 py-2.5 text-base',\n};\n\nconst xl: TButtonElementStyles = {\n container: 'px-6 py-3 text-base',\n};\n\nconst block: TButtonElementStyles = {\n container: 'rounded-md',\n};\n\nconst rounded: TButtonElementStyles = {\n container: 'rounded-full',\n};\n\nconst idle: TButtonElementStyles = {};\n\nconst loading: TButtonElementStyles = {\n container: 'cursor-progress',\n content: 'flex items-center',\n};\n\nconst success: TButtonElementStyles = {\n container: 'bg-emerald-500! hover:bg-emerald-600 text-white! duration-300',\n content: 'flex items-center',\n};\n\nconst error: TButtonElementStyles = {\n container: 'bg-rose-400 hover:bg-rose-500 text-white! duration-300',\n content: 'flex items-center',\n};\n\nconst disabled: TButtonElementStyles = {\n container: 'opacity-20! cursor-not-allowed!',\n};\n\nconst styles = {\n base,\n\n primary,\n secondary,\n outline,\n\n xs,\n sm,\n md,\n lg,\n xl,\n\n block,\n rounded,\n\n idle,\n loading,\n success,\n error,\n\n disabled,\n};\n\nexport type TButtonElementStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactElement, Children } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TButtonGroupElementStyles } from '.';\nimport { default as defaultStyles } from './ButtonGroupElement.styles';\n\nexport type TProps = {\n children: ReactElement[];\n styles?: TButtonGroupElementStyles;\n};\n\nconst ButtonGroupElement: FC<TProps> = (props) => {\n const { children, styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <span className={styles.container}>\n {Children.map(children, (child, index) => {\n let className: string | undefined = styles.button;\n\n if (index === 0) {\n className = styles.firstButton;\n }\n\n if (index === children.length - 1) {\n className = styles.lastButton;\n }\n\n return (\n <button key={child.key ?? index} className={className}>\n {child}\n </button>\n );\n })}\n </span>\n );\n};\n\nexport default ButtonGroupElement;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative z-0 inline-flex shadow-xs rounded-md',\n firstButton:\n 'relative inline-flex items-center px-4 py-2 rounded-l-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-hidden focus:ring-1 focus:ring-primary-500 focus:border-primary-500',\n button:\n '-ml-px relative inline-flex items-center px-4 py-2 border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-hidden focus:ring-1 focus:ring-primary-500 focus:border-primary-500',\n lastButton:\n '-ml-px relative inline-flex items-center px-4 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-hidden focus:ring-1 focus:ring-primary-500 focus:border-primary-500',\n};\n\nconst styles = {\n base,\n};\n\nexport type TButtonGroupElementStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Menu, MenuButton, MenuItems, Transition } from '@headlessui/react';\nimport { AnchorProps } from '@headlessui/react/dist/internal/floating';\nimport { ChevronDownIcon, EllipsisVerticalIcon } from '@heroicons/react/20/solid';\nimport { get, set } from 'lodash';\nimport React, { FC, Fragment, ReactElement, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles, TDropdownElementStyles } from './DropdownElement.styles';\n\nexport type TProps = {\n children: ReactElement | ReactElement[];\n label?: ReactNode;\n trigger?: ReactNode;\n dataCy?: string;\n\n type?: 'button' | 'compact';\n direction?: AnchorProps;\n\n isDisabled?: boolean;\n /* Can escape overflow when a parent component is set with a 'relative' class at the level the overflow should break and isEscapingOverflow is set to true. */\n isEscapingOverflow?: boolean;\n\n styles?: TDropdownElementStyles;\n};\n\nconst Container: FC<TProps> = (props) => {\n const {\n children,\n label,\n trigger,\n dataCy,\n\n type = 'button',\n direction = 'bottom end',\n\n isDisabled = false,\n isEscapingOverflow = false,\n\n styles: stylesOverrides,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <Menu as=\"div\" className={toClassName(styles.container, !isEscapingOverflow && 'relative')}>\n <div>\n {type === 'button' &&\n (!trigger ? (\n <MenuButton disabled={isDisabled} className={styles.button} data-cy={dataCy}>\n {label}\n <ChevronDownIcon className=\"-mr-1 ml-2 h-5 w-5\" aria-hidden=\"true\" />\n </MenuButton>\n ) : (\n <MenuButton disabled={isDisabled} data-cy={dataCy}>\n {trigger}\n </MenuButton>\n ))}\n {type === 'compact' && (\n <MenuButton disabled={isDisabled} className={styles.compact} data-cy={dataCy}>\n <span className=\"sr-only\">{label}</span>\n <EllipsisVerticalIcon className={styles.dots} aria-hidden=\"true\" />\n </MenuButton>\n )}\n </div>\n <Transition\n as={Fragment}\n enter=\"transition ease-out duration-100\"\n enterFrom=\"transform opacity-0 scale-95\"\n enterTo=\"transform opacity-100 scale-100\"\n leave=\"transition ease-in duration-75\"\n leaveFrom=\"transform opacity-100 scale-100\"\n leaveTo=\"transform opacity-0 scale-95\"\n >\n <MenuItems anchor={direction} className={styles.items}>\n {children}\n </MenuItems>\n </Transition>\n </Menu>\n );\n};\n\nconst DropdownElement: {\n Container: FC<TProps>;\n Item: typeof Menu.Item;\n} = {\n Container,\n Item: Menu.Item,\n};\n\nexport default DropdownElement;\n","import { DeepPartialType } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'inline-block text-left',\n button:\n 'cursor-pointer inline-flex justify-center w-full rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-primary-500',\n compact:\n 'cursor-pointer bg-gray-100 rounded-full flex items-center text-gray-400 hover:text-gray-600 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-primary-500',\n dots: 'h-7 w-7 p-1',\n items:\n 'z-10 absolute mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black/5 divide-y divide-gray-100 focus:outline-hidden',\n};\n\nconst button: TDropdownElementStyles = {};\n\nconst compact: TDropdownElementStyles = {};\n\nconst bottomLeft: TDropdownElementStyles = {\n items: 'origin-top-right right-0',\n};\n\nconst bottomRight: TDropdownElementStyles = {\n items: 'origin-top-left left-0',\n};\n\nconst topLeft: TDropdownElementStyles = {\n items: 'origin-bottom-right right-0 bottom-0',\n};\n\nconst topRight: TDropdownElementStyles = {\n items: 'origin-bottom-left left-0 bottom-0',\n};\n\nconst disabled: TDropdownElementStyles = {\n button: 'opacity-50 cursor-not-allowed!',\n compact: 'opacity-50 cursor-not-allowed!',\n};\n\nconst styles = {\n base,\n\n button,\n compact,\n\n 'bottom-left': bottomLeft,\n 'bottom-right': bottomRight,\n 'top-left': topLeft,\n 'top-right': topRight,\n\n disabled,\n};\n\nexport type TDropdownElementStyles = DeepPartialType<typeof base>;\nexport default styles;\n","import { FC, ReactNode, useCallback, useState } from 'react';\nimport { get, set } from 'lodash';\n\nimport { default as defaultStyles } from './CollapsibleElement.styles';\nimport IconElement from '../Icon';\nimport { TDropdownElementStyles } from '.';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { deepCopyObject } from '../../../helpers/object';\nimport { toClassName } from '../../../helpers/format';\n\ntype TProps = {\n children: ReactNode;\n isDefaultOpen?: boolean;\n styles?: TDropdownElementStyles;\n trigger: (props: { handleToggle: () => void; rotatingIcon: ReactNode; isVisible: boolean }) => ReactNode;\n}\n\nconst RotatingIcon: FC<{ isVisible: boolean; styles: any }> = ({ isVisible, styles }) => (\n <div className={styles.icon.container}>\n <IconElement className={styles.icon.svg} accessor=\"chevron-right\" />\n </div>\n);\n\nconst Collapsible: FC<TProps> = (props) => {\n const { children, isDefaultOpen = false, trigger, styles: stylesOverrides } = props;\n\n const [isVisible, setIsVisible] = useState(isDefaultOpen);\n\n const handleToggle = useCallback(() => setIsVisible((visibility) => !visibility), []);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles);\n const keys = calculateNestedKeys(defaultStyles);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles, key),\n isVisible && key.includes('icon.container') && defaultStyles.icon.rotate,\n get(stylesOverrides, key)\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div className={styles.container}>\n {trigger({ handleToggle, rotatingIcon: <RotatingIcon isVisible={isVisible} styles={styles} />, isVisible })}\n {isVisible && <div>{children}</div>}\n </div>\n );\n};\n\nexport default Collapsible;\n","import { DeepPartialType } from '../../../types/DeepPartialType';\n\nconst styles = {\n container: '',\n icon: {\n container: 'w-4 h-4 flex ease-in-out duration-300',\n rotate: 'transform rotate-90',\n svg: 'w-4 h-4 flex',\n },\n};\n\nexport type TDropdownElementStyles = DeepPartialType<typeof styles>;\nexport default styles;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { get, map } from 'lodash';\nimport { set } from 'lodash';\nimport { FC, useCallback } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../Icon';\nimport TooltipElement from '../Tooltip';\n\nimport { TProgressTrackStyles } from './ProgressTrack.styles';\nimport { default as defaultStyles } from './ProgressTrack.styles';\n\nexport type TProgressTrackStep = {\n icon: IconName;\n colorCls?: string;\n tooltip?: string;\n};\n\nexport type TProgressTrackProps = {\n steps: TProgressTrackStep[];\n styles?: TProgressTrackStyles;\n dataCy?: string;\n};\n\nconst ProgressTrack: FC<TProgressTrackProps> = (props) => {\n const { styles: stylesOverrides } = props;\n\n const handleGenerateStyle = useCallback(() => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key))));\n\n return result;\n }, [stylesOverrides]);\n\n const styles = handleGenerateStyle();\n\n const renderStep = useCallback(\n (step: TProgressTrackStep) => {\n const icon = <IconElement accessor={step.icon} className={toClassName(styles.icon, step.colorCls)} />;\n\n return step.tooltip ? (\n <TooltipElement placement=\"top\" content={step.tooltip} isPointing>\n <div className={toClassName(styles.tooltipContainer)}>{icon}</div>\n </TooltipElement>\n ) : (\n icon\n );\n },\n [styles],\n );\n\n return (\n <div className={styles.stepsWrapper}>\n {map(props.steps, (step, index) => (\n <div key={`progress-track-step-${index}`} className={styles.stepContainer}>\n {renderStep(step)}\n </div>\n ))}\n </div>\n );\n};\n\nexport default ProgressTrack;\n","export type { TTooltipElementStyles } from './TooltipElement.styles';\n\nexport { default } from './TooltipElement';\nexport { default as styles } from './TooltipElement.styles';\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'w-fit h-fit relative group/tooltip',\n icon: 'w-4! h-4! border-2 border-black rounded-full p-0.5 text-sm',\n\n defaultIcon: 'text-gray-500 border-gray-500',\n successIcon: 'text-green-500 border-green-500',\n errorIcon: 'text-red-500 border-red-500',\n pendingIcon: 'text-blue-500 border-blue-500 animate-spin',\n\n stepContainer: `flex items-center after:content-[''] after:w-2 after:h-[2px] after:bg-gray-300 after:ml-0.5 after:mr-0.5 last:after:content-none`,\n stepLine: 'flex-1 h-px bg-gray-200',\n stepsWrapper: 'flex items-center',\n tooltipContainer: 'flex',\n};\n\nconst styles = {\n base,\n};\n\nexport type TProgressTrackStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { ExclamationCircleIcon } from '@heroicons/react/20/solid';\nimport { useMask } from '@react-input/mask';\nimport { concat, get, set } from 'lodash';\nimport React, {\n ChangeEventHandler,\n FC,\n FocusEventHandler,\n HTMLInputTypeAttribute,\n KeyboardEventHandler,\n MouseEventHandler,\n RefObject,\n ReactNode,\n useEffect,\n useRef,\n} from 'react';\n\nimport InputFooter, { TInputFooterSharedProps, footerStyles } from '../../../components/Custom/InputFooter';\nimport InputHeader, { TInputHeaderSharedProps, headerStyles } from '../../../components/Custom/InputHeader';\nimport IconElement from '../../../components/Element/Icon/IconElement';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './InputGroupForm.styles';\n\nimport { TInputGroupStyles } from '.';\n\nexport type TInputGroupFormProps = TInputHeaderSharedProps &\n TInputFooterSharedProps & {\n name: string;\n\n placeholder?: string;\n\n leading?: ReactNode;\n trailing?: ReactNode;\n\n value: string;\n mask?: { mask: string; replacementCharacter?: string };\n min?: number | string;\n max?: number | string;\n maxLength?: number;\n rows?: number;\n\n type: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n\n isDisabled?: boolean;\n isSolo?: boolean;\n setRefOnLoad?: (ref: RefObject<HTMLInputElement | null>) => void;\n\n styles?: TInputGroupStyles;\n } & (\n | {\n htmlType: 'area';\n onChange: ChangeEventHandler<HTMLTextAreaElement>;\n onBlur: FocusEventHandler<HTMLTextAreaElement>;\n onClick?: MouseEventHandler<HTMLTextAreaElement>;\n onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;\n onClear?: never;\n trailing?: ReactNode;\n }\n | {\n htmlType: 'text' | 'date';\n onChange: ChangeEventHandler<HTMLInputElement>;\n onBlur: FocusEventHandler<HTMLInputElement>;\n onClick?: MouseEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onClear?: () => void;\n trailing?: never;\n }\n | {\n htmlType: Exclude<HTMLInputTypeAttribute, 'text' | 'date'>;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onBlur: FocusEventHandler<HTMLInputElement>;\n onClick?: MouseEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onClear?: never;\n trailing?: ReactNode;\n }\n );\n\nconst InputGroupForm: FC<TInputGroupFormProps> = (props) => {\n const {\n name,\n htmlType = 'text',\n\n label,\n hint,\n description,\n placeholder,\n\n leading,\n trailing,\n required,\n\n value,\n mask,\n min,\n max,\n maxLength,\n rows,\n error,\n\n type = 'normal',\n\n isDisabled,\n isRequired = false,\n isTouched = false,\n isSolo = false,\n isOptionalLabelHidden = false,\n\n onChange,\n onClear,\n onBlur,\n onClick,\n onKeyDown,\n setRefOnLoad,\n\n styles: stylesOverrides,\n } = props;\n\n const isValid = error === undefined;\n\n const maskRef = useMask({\n mask: mask?.mask,\n replacement: { [mask?.replacementCharacter ?? 'X']: /\\d|\\D/ },\n });\n\n const defaultRef = useRef<HTMLInputElement | null>(null);\n\n const ref = mask ? maskRef : defaultRef;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = concat(\n calculateNestedKeys(defaultStyles.base),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n leading !== undefined && get(defaultStyles.leading, key),\n trailing !== undefined && get(defaultStyles.trailing, key),\n\n type && get(defaultStyles[type], key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const invalidIcon = <ExclamationCircleIcon className=\"h-5 w-5 text-red-500\" aria-hidden=\"true\" />;\n\n const isClearable = !trailing && isValid && onClear && value !== '' && value;\n\n const inputDataCy = `form-input-${name}`;\n\n useEffect(() => {\n if (ref.current && ref.current !== null && setRefOnLoad) setRefOnLoad(ref);\n }, [ref, setRefOnLoad]);\n\n return (\n <div className={styles.container}>\n <InputHeader\n name={name}\n label={label}\n required={required}\n isRequired={isRequired}\n isOptionalLabelHidden={isOptionalLabelHidden}\n styles={styles}\n type={type}\n description={description}\n />\n <div className={styles.body}>\n {leading && <div className={styles.leading}>{leading}</div>}\n {!htmlType ||\n (htmlType !== 'area' && (\n <div className=\"flex items-center\">\n <input\n type={mask !== undefined ? 'text' : htmlType}\n ref={ref}\n name={name}\n id={name}\n data-cy={inputDataCy}\n className={toClassName(styles.input, htmlType === 'color' && 'h-10!')}\n placeholder={placeholder}\n defaultValue={isSolo ? value : undefined}\n value={isSolo ? undefined : value}\n min={min}\n max={max}\n maxLength={maxLength}\n disabled={isDisabled}\n onChange={onChange as ChangeEventHandler<HTMLInputElement>}\n onBlur={onBlur as FocusEventHandler<HTMLInputElement>}\n onClick={onClick as MouseEventHandler<HTMLInputElement>}\n onKeyDown={onKeyDown as KeyboardEventHandler<HTMLInputElement>}\n />\n {htmlType === 'text' && isClearable && (\n <div className=\"right-5 px-2 absolute cursor-pointer hover:opacity-60\" onClick={onClear}>\n <IconElement accessor=\"times\" className=\"text-gray-500\" />\n </div>\n )}\n {htmlType === 'date' && isClearable && (\n <div className=\"right-10 px-2 absolute cursor-pointer hover:opacity-60\" onClick={onClear}>\n <IconElement accessor=\"times\" className=\"text-gray-500\" />\n </div>\n )}\n </div>\n ))}\n {htmlType === 'area' && (\n <textarea\n rows={rows}\n name={name}\n id={name}\n data-cy={inputDataCy}\n className={styles.input}\n placeholder={placeholder}\n defaultValue={isSolo ? value : undefined}\n value={isSolo ? undefined : value}\n maxLength={maxLength}\n disabled={isDisabled}\n onChange={onChange as ChangeEventHandler<HTMLTextAreaElement>}\n onBlur={onBlur as FocusEventHandler<HTMLTextAreaElement>}\n onClick={onClick as MouseEventHandler<HTMLTextAreaElement>}\n onKeyDown={onKeyDown as KeyboardEventHandler<HTMLTextAreaElement>}\n />\n )}\n {type === 'floored' && (\n <div\n className=\"absolute inset-x-0 bottom-0 border-t border-gray-300 peer-focus:border-t-2 peer-focus:border-primary-600\"\n aria-hidden=\"true\"\n />\n )}\n {trailing && isValid && <div className={styles.trailing}>{trailing}</div>}\n {isTouched && !isValid && <div className={styles.trailing}>{invalidIcon}</div>}\n </div>\n <InputFooter name={name} hint={hint} error={error} isTouched={isTouched} styles={styles} type={type} />\n </div>\n );\n};\n\nexport default InputGroupForm;\n","export { default } from './InputFooter';\nexport { default as footerStyles } from './InputFooter.styles';\nexport type { TInputFooterStyles } from './InputFooter.styles';\nexport type { TInputFooterSharedProps } from './InputFooter';\n","import { get, isNil, set } from 'lodash';\nimport { FC, ReactNode, useMemo } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles, TInputFooterStyles } from './InputFooter.styles';\n\nexport type TInputFooterSharedProps = {\n hint?: ReactNode;\n error?: ReactNode;\n isTouched?: boolean;\n};\n\ntype TInputFooterProps = TInputFooterSharedProps & {\n name: string;\n isHidden?: boolean;\n type?: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n styles?: TInputFooterStyles;\n};\n\nconst InputFooter: FC<TInputFooterProps> = (props) => {\n const { name, hint, error, isTouched, isHidden = false, styles: stylesOverrides, type = 'normal' } = props;\n\n const errorDataCy = `form-input-error-${name}`;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const hintElement = useMemo(() => {\n if (!hint || (error && isTouched)) return null;\n return <p className={styles.hint}>{hint}</p>;\n }, [hint, styles.hint, error, isTouched]);\n\n const errorElement = useMemo(() => {\n if (!error || !isTouched) return null;\n return (\n <p className={styles.error} data-cy={errorDataCy}>\n {error}\n </p>\n );\n }, [error, styles.error, errorDataCy, isTouched]);\n\n if (isHidden || (isNil(errorElement) && isNil(hintElement))) return null;\n\n return (\n <div className={styles.foot}>\n {hintElement}\n {errorElement}\n </div>\n );\n};\n\nexport default InputFooter;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n foot: '',\n hint: 'text-gray-400 text-xs mt-1',\n error: 'text-red-500 text-xs ml-5 mt-1',\n};\n\nconst leading: TInputFooterStyles = {};\n\nconst trailing: TInputFooterStyles = {};\n\nconst normal: TInputFooterStyles = {\n hint: 'mt-2 text-sm',\n};\n\nconst inset: TInputFooterStyles = {\n hint: 'hidden',\n};\n\nconst overlapping: TInputFooterStyles = {\n hint: 'hidden',\n};\n\nconst pill: TInputFooterStyles = {\n hint: 'text-xs',\n foot: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mt-1 pr-6',\n};\n\nconst floored: TInputFooterStyles = {\n hint: 'text-xs mt-2',\n};\n\nconst invalid: TInputFooterStyles = {\n hint: 'text-sm text-red-600',\n};\n\nconst disabled: TInputFooterStyles = {\n hint: 'text-gray-500',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TInputFooterStyles = DeepPartial<typeof base>;\nexport default styles;\n","export { default } from './InputHeader';\nexport { default as headerStyles } from './InputHeader.styles';\nexport type { TInputHeaderStyles } from './InputHeader.styles';\nexport type { TInputHeaderSharedProps } from './InputHeader';\n","import { get, isNil, set } from 'lodash';\nimport { FC, ReactNode, useMemo } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles, TInputHeaderStyles } from './InputHeader.styles';\n\nexport type TInputHeaderSharedProps = {\n label?: ReactNode;\n description?: ReactNode;\n required?: ({ isRequired }: { isRequired: boolean }) => ReactNode;\n isRequired?: boolean;\n isOptionalLabelHidden?: boolean;\n};\n\ntype TInputHeaderProps = TInputHeaderSharedProps & {\n name: string;\n type?: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n styles?: TInputHeaderStyles;\n};\n\nconst InputHeader: FC<TInputHeaderProps> = (props) => {\n const {\n name,\n label,\n description,\n required,\n isRequired = false,\n isOptionalLabelHidden,\n styles: stylesOverrides,\n type = 'normal',\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const requiredLabel = useMemo(() => {\n if (required) return required({ isRequired });\n else if (!isRequired && typeof label === 'string' && !isOptionalLabelHidden)\n return <span className={styles.header.optional}>Optional</span>;\n return null;\n }, [isOptionalLabelHidden, isRequired, label, required, styles.header.optional]);\n\n const labelElement = useMemo(() => {\n if (!label && isNil(requiredLabel)) return null;\n return (\n <div className={styles.header.labelWrapper}>\n <label htmlFor={name} className={styles.header.label}>\n {label}\n </label>\n {requiredLabel}\n </div>\n );\n }, [label, name, requiredLabel, styles.header.labelWrapper, styles.header.label]);\n\n const descriptionElement = useMemo(() => {\n if (!description) return null;\n return <p className={styles.header.description}>{description}</p>;\n }, [description, styles.header.description]);\n\n if (isNil(labelElement) && isNil(descriptionElement)) return null;\n\n return (\n <div className={styles.header.container}>\n {labelElement}\n {descriptionElement}\n </div>\n );\n};\n\nexport default InputHeader;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n header: {\n container: 'flex flex-col justify-end',\n labelWrapper: 'flex',\n label: '',\n required: '',\n optional: 'ml-auto text-xs text-gray-500',\n description: 'text-xs font-light',\n },\n};\n\nconst normal: TInputHeaderStyles = {\n header: {\n container: 'mb-2',\n label: 'leading-6 text-sm',\n optional: 'leading-6',\n },\n};\n\nconst inset: TInputHeaderStyles = {\n header: {\n label: 'text-xs',\n optional: 'text-xs',\n },\n};\n\nconst overlapping: TInputHeaderStyles = {\n header: {\n container: 'flex flex-col justify-end',\n labelWrapper: 'absolute flex justify-between items-center left-0 -top-2 right-0 mx-2 z-10 w-full',\n label: 'inline-block bg-white px-1 text-xs font-medium text-gray-900',\n required: '',\n optional: 'text-xs mr-4 bg-white px-1',\n description: 'hidden',\n },\n};\n\nconst pill: TInputHeaderStyles = {\n header: {\n labelWrapper: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mb-1 pr-6',\n description: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mb-1 pr-6',\n },\n};\n\nconst floored: TInputHeaderStyles = {\n header: {\n label: 'block text-sm font-medium leading-6 text-gray-900',\n },\n};\n\nconst styles = {\n base,\n normal,\n inset,\n overlapping,\n pill,\n floored,\n};\n\nexport type TInputHeaderStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { TInputFooterStyles } from '../../../components/Custom/InputFooter';\nimport { TInputHeaderStyles } from '../../../components/Custom/InputHeader';\nimport { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n body: 'relative rounded-md',\n leading: 'pointer-events-none absolute inset-y-0 left-0 flex items-center',\n input: 'block w-full',\n trailing: 'pointer-events-none absolute inset-y-0 right-0 flex items-center',\n error: 'ml-5',\n};\n\nconst leading: TInputGroupStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TInputGroupStyles = {};\n\nconst normal: TInputGroupStyles = {\n leading: 'pl-3',\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n trailing: 'pr-3',\n};\n\nconst inset: TInputGroupStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n};\n\nconst overlapping: TInputGroupStyles = {\n container: 'relative',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n};\n\nconst pill: TInputGroupStyles = {\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n trailing: 'pr-2',\n};\n\nconst floored: TInputGroupStyles = {\n body: 'relative mt-2',\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n};\n\nconst invalid: TInputGroupStyles = {\n container: 'ring-red-500',\n input:\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 pr-10',\n};\n\nconst disabled: TInputGroupStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TInputGroupStyles = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TContainerLayoutStyles } from '.';\nimport { default as defaultStyles } from './ContainerLayout.styles';\n\nexport type TProps = {\n children: ReactNode;\n\n type?: 'break' | 'center' | 'fill';\n styles?: TContainerLayoutStyles;\n};\n\nconst ContainerLayout: FC<TProps> = (props) => {\n const { children, type = 'break', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const handleGenerateComponent = () => {\n let result;\n\n const styles = handleGenerateStyle();\n\n switch (type) {\n case 'break':\n result = <div className={styles.container}>{children}</div>;\n break;\n case 'center':\n result = (\n <div className={styles.container}>\n <div className={styles.content}>{children}</div>\n </div>\n );\n break;\n case 'fill':\n result = <div className={styles.container}>{children}</div>;\n break;\n }\n\n return result;\n };\n\n return handleGenerateComponent();\n};\n\nexport default ContainerLayout;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n content: '',\n};\n\nconst breakStyles: TContainerLayoutStyles = {\n container: 'container mx-auto sm:px-6 lg:px-8',\n};\n\nconst center: TContainerLayoutStyles = {\n container: 'max-w-7xl mx-auto px-4 sm:px-6 lg:px-8',\n content: 'max-w-4xl 3xl:max-w-6xl mx-auto',\n};\n\nconst fill: TContainerLayoutStyles = {\n container: 'max-w-7xl mx-auto sm:px-6 lg:px-8',\n};\n\nconst styles = {\n base,\n\n break: breakStyles,\n center,\n fill,\n};\n\nexport type TContainerLayoutStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TDividerLayoutStyles } from '.';\nimport { default as defaultStyles } from './DividerLayout.styles';\n\nexport type TProps = {\n children?: ReactNode;\n\n type?: 'left' | 'center' | 'right';\n\n styles?: TDividerLayoutStyles;\n};\n\nconst DividerLayout: FC<TProps> = (props) => {\n const { children, type = 'left', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div className={styles.container}>\n <div className={styles.head} aria-hidden=\"true\">\n <div className={styles.line} />\n </div>\n <div className={styles.body}>\n <div className={styles.content}>{children}</div>\n </div>\n </div>\n );\n};\n\nexport default DividerLayout;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative',\n head: 'absolute inset-0 flex items-center',\n line: 'w-full border-t border-gray-300',\n body: 'relative flex',\n content: 'bg-white text-sm text-gray-500',\n};\n\nconst left: TDividerLayoutStyles = {\n body: 'justify-start',\n};\n\nconst center: TDividerLayoutStyles = {\n body: 'justify-center',\n};\n\nconst right: TDividerLayoutStyles = {\n body: 'justify-end',\n};\n\nconst styles = {\n base,\n\n left,\n center,\n right,\n};\n\nexport type TDividerLayoutStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactElement, Children } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TListContainerLayoutStyles } from '.';\nimport { default as defaultStyles } from './ListContainerLayout.styles';\n\nexport type TProps = {\n children: ReactElement | ReactElement[];\n\n type?: 'fill' | 'fill-sticky' | 'center' | 'center-sticky' | 'card' | 'card-sticky';\n\n styles?: TListContainerLayoutStyles;\n};\n\nconst ListContainerLayout: FC<TProps> = (props) => {\n const { children, type = 'fill', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div className={styles.container}>\n <ul className={styles.list}>\n {Children.map(children, (child, index) => (\n <li key={child.key ?? index} className={styles.item}>\n {child}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport default ListContainerLayout;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n list: '',\n item: '',\n};\n\nconst fill: TListContainerLayoutStyles = {\n list: 'divide-y divide-gray-200',\n item: 'py-4',\n};\n\nconst fillSticky: TListContainerLayoutStyles = {\n list: 'divide-y divide-gray-200',\n item: 'px-4 py-4 sm:px-0',\n};\n\nconst center: TListContainerLayoutStyles = {\n container: 'bg-white shadow-sm overflow-hidden rounded-md',\n list: 'divide-y divide-gray-200',\n item: 'px-6 py-4',\n};\n\nconst centerSticky: TListContainerLayoutStyles = {\n container: 'bg-white shadow-sm overflow-hidden sm:rounded-md',\n list: 'divide-y divide-gray-200',\n item: 'px-4 py-4 sm:px-6',\n};\n\nconst card: TListContainerLayoutStyles = {\n list: 'space-y-3',\n item: 'bg-white shadow-sm overflow-hidden rounded-md px-6 py-4',\n};\n\nconst cardSticky: TListContainerLayoutStyles = {\n list: 'space-y-3',\n item: 'bg-white shadow-sm overflow-hidden px-4 py-4 sm:px-6 sm:rounded-md',\n};\n\nconst styles = {\n base,\n\n fill,\n 'fill-sticky': fillSticky,\n center,\n 'center-sticky': centerSticky,\n card,\n 'card-sticky': cardSticky,\n};\n\nexport type TListContainerLayoutStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode, DetailedReactHTMLElement, HTMLAttributes } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TMediaObjectLayoutStyles } from '.';\nimport { default as defaultStyles } from './MediaObjectLayout.styles';\n\nexport type Element = DetailedReactHTMLElement<HTMLAttributes<HTMLElement>, HTMLElement>;\n\nexport type TProps = {\n title: string;\n paragraph: string;\n figure?: ReactNode;\n\n type?:\n | 'top'\n | 'top-reversed'\n | 'center'\n | 'center-reversed'\n | 'bottom'\n | 'bottom-reversed'\n | 'stretch'\n | 'stretch-reversed'\n | 'responsive'\n | 'responsive-reversed'\n | 'wide'\n | 'wide-reversed';\n\n styles?: TMediaObjectLayoutStyles;\n};\n\nconst MediaObjectLayout: FC<TProps> = (props) => {\n const { title, paragraph, figure: customFigure, type = 'top', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const handleGenerateComponent = () => {\n let result: ReactNode = (\n <svg\n className={styles.svg}\n preserveAspectRatio=\"none\"\n stroke=\"currentColor\"\n fill=\"none\"\n viewBox=\"0 0 200 200\"\n aria-hidden=\"true\"\n >\n <path vectorEffect=\"non-scaling-stroke\" strokeWidth={1} d=\"M0 0l200 200M0 200L200 0\" />\n </svg>\n );\n\n if (customFigure) {\n result = React.cloneElement(customFigure as Element, {\n className: styles.svg,\n });\n }\n\n return result;\n };\n\n const $svg = handleGenerateComponent();\n\n return (\n <div className={styles.container}>\n <div className={styles.figure}>{$svg}</div>\n <div>\n <h4 className={styles.title}>{title}</h4>\n <p className={styles.paragraph}>{paragraph}</p>\n </div>\n </div>\n );\n};\n\nexport default MediaObjectLayout;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n figure: 'mr-4 shrink-0',\n svg: 'h-16 w-16 border border-gray-300 bg-white text-gray-300',\n title: 'text-lg font-bold',\n paragraph: 'mt-1',\n};\n\nconst top: TMediaObjectLayoutStyles = {\n container: 'flex flex-row',\n};\n\nconst topReversed: TMediaObjectLayoutStyles = {\n container: 'flex flex-row-reverse',\n};\n\nconst center: TMediaObjectLayoutStyles = {\n container: 'flex flex-row',\n figure: 'self-center',\n};\n\nconst centerReversed: TMediaObjectLayoutStyles = {\n container: 'flex flex-row-reverse',\n figure: 'self-center',\n};\n\nconst bottom: TMediaObjectLayoutStyles = {\n container: 'flex flex-row',\n figure: 'self-end',\n};\n\nconst bottomReversed: TMediaObjectLayoutStyles = {\n container: 'flex flex-row-reverse',\n figure: 'self-end',\n};\n\nconst stretch: TMediaObjectLayoutStyles = {\n container: 'flex flex-row',\n svg: 'h-full',\n};\n\nconst stretchReversed: TMediaObjectLayoutStyles = {\n container: 'flex flex-row-reverse',\n svg: 'h-full',\n};\n\nconst responsive: TMediaObjectLayoutStyles = {\n container: 'sm:flex flex-row',\n figure: 'sm:mb-0 sm:mr-4',\n};\n\nconst responsiveReversed: TMediaObjectLayoutStyles = {\n container: 'sm:flex flex-row-reverse',\n figure: 'sm:mb-0 sm:mr-4',\n};\n\nconst wide: TMediaObjectLayoutStyles = {\n container: 'sm:flex flex-row',\n figure: 'mb-4 md:mb-0 sm:mr-4 sm:mb-4',\n svg: 'h-32 w-full sm:w-32',\n};\n\nconst wideReversed: TMediaObjectLayoutStyles = {\n container: 'sm:flex flex-row-reverse',\n figure: 'mb-4 md:mb-0 sm:mr-4 sm:mb-4',\n svg: 'h-32 w-full sm:w-32',\n};\n\nconst styles = {\n base,\n\n top,\n 'top-reversed': topReversed,\n center,\n 'center-reversed': centerReversed,\n bottom,\n 'bottom-reversed': bottomReversed,\n stretch,\n 'stretch-reversed': stretchReversed,\n responsive,\n 'responsive-reversed': responsiveReversed,\n wide,\n 'wide-reversed': wideReversed,\n};\n\nexport type TMediaObjectLayoutStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TPanelLayoutStyles } from '.';\nimport { default as defaultStyles } from './PanelLayout.styles';\n\nexport type TContainerProps = {\n children: ReactNode;\n\n type?: 'normal' | 'sticky';\n styles?: TPanelLayoutStyles;\n};\n\nexport type TSectionProps = {\n children: ReactNode;\n styles?: {\n section: string;\n };\n};\n\nconst Container: FC<TContainerProps> = (props) => {\n const { children, type = 'normal', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return <div className={styles.container}>{children}</div>;\n};\n\nconst Section: FC<TSectionProps> = (props) => {\n const { children, styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return <div className={styles.section}>{children}</div>;\n};\n\nconst LayoutPanel = {\n Container,\n Section,\n};\n\nexport default LayoutPanel;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'bg-white overflow-hidden shadow-sm',\n section: 'px-4 py-5 sm:px-6',\n};\n\nconst normal: TPanelLayoutStyles = {\n container: 'rounded-lg',\n};\n\nconst sticky: TPanelLayoutStyles = {\n container: 'sm:rounded-lg',\n};\n\nconst styles = {\n base,\n\n normal,\n sticky,\n};\n\nexport type TPanelLayoutStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { ChevronDownIcon, TableCellsIcon, ViewColumnsIcon } from '@heroicons/react/24/outline';\nimport { getCoreRowModel, useReactTable } from '@tanstack/react-table';\nimport { ColumnDef, ColumnOrderState, flexRender, SortingState } from '@tanstack/react-table';\nimport { get, set } from 'lodash';\nimport React, { FC, ReactNode, useCallback, useEffect, useState } from 'react';\n\nimport { TButtonElementStyles } from '../../../components/Element/Button';\nimport ButtonElement from '../../../components/Element/Button/ButtonElement';\nimport { TDropdownElementStyles } from '../../../components/Element/Dropdown';\nimport DropdownElement from '../../../components/Element/Dropdown/DropdownElement';\nimport { TPagePaginationNavigationStyles } from '../../../components/Navigation/PagePagination';\nimport PanelPagination from '../../../components/Navigation/PanelPagination';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { useExcel } from '../../../hooks/useExcel';\n\nimport { TTableListStyles } from '.';\nimport { default as defaultStyles } from './TableList.styles';\n\ntype TData = any;\n\ntype VisibilityState = Record<string, boolean>;\n\nexport type TTableListProps<TData> = {\n id: string;\n\n columns: ColumnDef<TData>[];\n data: TData[];\n page: {\n current?: number;\n total: number;\n };\n\n defaultOrder?: string[];\n defaultVisibility?: string[];\n\n customControls?: ReactNode | ReactNode[];\n\n children: ({ min, max, current }: { min: number; max: number; current: number }) => ReactNode;\n\n type?: 'normal' | 'panel' | 'full';\n\n exportFileName?: string;\n\n isLoading?: boolean;\n\n isStriped?: boolean;\n hasStickyHeader?: boolean;\n hasVerticalSeparators?: boolean;\n areControlsVisible?: boolean;\n\n styles?: TTableListStyles & {\n components: {\n buttonElement: TButtonElementStyles;\n dropdownElement: TDropdownElementStyles;\n panelPaginationNavigation: TPagePaginationNavigationStyles;\n };\n };\n\n onChange?: ({\n sorting,\n visibility,\n order,\n }: {\n sorting: SortingState;\n visibility: VisibilityState;\n order: ColumnOrderState;\n }) => void;\n onPaginate?: (current: number) => void;\n};\n\nconst TableList: FC<TTableListProps<TData>> = (props) => {\n const {\n id,\n\n columns,\n data,\n page,\n children,\n\n defaultOrder,\n defaultVisibility,\n\n type = 'normal',\n\n isLoading,\n\n isStriped = false,\n hasStickyHeader = false,\n hasVerticalSeparators = false,\n areControlsVisible = true,\n\n customControls,\n exportFileName = 'table-export',\n\n styles: stylesOverrides,\n\n onChange,\n onPaginate,\n } = props;\n\n const { generate, write } = useExcel();\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n hasStickyHeader && get(defaultStyles.sticky, key),\n hasVerticalSeparators && get(defaultStyles.separated, key),\n areControlsVisible && get(defaultStyles.controlled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const [visibility, setVisibility] = useState<VisibilityState>({});\n const [order, setOrder] = useState<ColumnOrderState>([]);\n\n const table = useReactTable<TData>({\n getCoreRowModel: getCoreRowModel(),\n\n columns,\n data,\n\n state: {\n sorting,\n columnVisibility: visibility,\n columnOrder: order,\n },\n\n manualPagination: true,\n manualSorting: true,\n\n onSortingChange: setSorting,\n onColumnVisibilityChange: setVisibility,\n onColumnOrderChange: setOrder,\n });\n\n useEffect(() => {\n if (sorting || visibility || order) {\n onChange && onChange({ sorting, visibility, order });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sorting, visibility, order]);\n\n const handleUpdateColumnOrder = useCallback(\n (column: { id: string }, location: number) => {\n const ids: string[] = table\n .getAllLeafColumns()\n // .filter((column) => column?.getCanSort())\n ?.map((column) => column.id);\n\n const currentIndexOfId = ids.findIndex((id) => id === column.id);\n\n // Remove id from array.\n ids.splice(currentIndexOfId, 1);\n // Re-insert id at correct location in array.\n ids.splice(location, 0, column.id);\n\n setOrder(ids);\n },\n [table],\n );\n\n // Load state from local storage at mount.\n useEffect(() => {\n const state: string | null = window?.localStorage.getItem(`TableList.${id}.state`);\n\n if (!state) {\n if (defaultOrder && defaultOrder?.length > 0) {\n return setOrder(defaultOrder);\n }\n return setOrder(columns.map((column) => column?.id ?? ''));\n }\n\n if (!state) {\n if (defaultVisibility && defaultVisibility?.length > 0) {\n const base = columns\n ?.map((column: any) => (column?.id ? column?.id : column?.accessorKey))\n .map((key) => ({ [key]: false }))\n .reduce((a, b) => ({ ...a, ...b }));\n\n const current = defaultVisibility.map((key) => ({ [key]: true })).reduce((a, b) => ({ ...a, ...b }));\n\n return setVisibility({ ...base, ...current });\n }\n }\n\n const savedColumnOrder = state?.split(',').map((id) => id.replace('-', '')) ?? [];\n const savedColumnVisibility: Record<string, boolean> = {};\n state?.split(',').forEach((id) => (savedColumnVisibility[id?.replace('-', '')] = !id.includes('-')));\n\n setOrder(savedColumnOrder);\n setVisibility(savedColumnVisibility);\n }, [columns, defaultOrder, defaultVisibility, id]);\n\n // Save state to local storage when column visibility or order updates.\n useEffect(() => {\n // Prevent resetting storage to default when rendering a stateless component at mount.\n const isMounted = order.length > 0;\n\n if (isMounted && (order || visibility)) {\n const ids: string[] = table\n .getAllLeafColumns()\n // .filter((column) => column?.getCanSort())\n ?.map((column) => column.id);\n\n const idsWithVisibilityIndicator = ids.map((id) => {\n // Hardcoding `false` here since `undefined` is allowed.\n if (visibility[id] === false) {\n return `-${id}`;\n }\n return id;\n });\n\n return window?.localStorage.setItem(`TableList.${id}.state`, idsWithVisibilityIndicator.join(','));\n }\n }, [id, table, order, visibility]);\n\n return (\n <>\n <div className={styles.container}>\n <div className={styles.controls.container}>\n <div>{customControls}</div>\n\n <div className={styles.controls.body}>\n <DropdownElement.Container\n styles={stylesOverrides?.components?.dropdownElement}\n label={<ViewColumnsIcon className=\"w-6 h-6\" />}\n >\n <div className={styles.controls.content}>\n {table\n .getAllLeafColumns()\n // .filter((column) => column?.getCanSort())\n .map((column, index) => {\n const canSort = column?.getCanSort();\n\n return (\n <DropdownElement.Item key={column.id}>\n {() => (\n <div className={toClassName(styles.controls.dropdown.container, !canSort && 'hidden')}>\n <input\n className={styles.controls.dropdown.input}\n type=\"checkbox\"\n checked={column.getIsVisible()}\n onChange={column.getToggleVisibilityHandler()}\n />\n <label className={styles.controls.dropdown.label}>\n {column.columnDef.header as string}\n </label>\n <div className={styles.controls.dropdown.actions}>\n <ChevronDownIcon\n className={styles.controls.dropdown.upIcon}\n onClick={() => handleUpdateColumnOrder(column, index - 1)}\n />\n <ChevronDownIcon\n className={styles.controls.dropdown.downIcon}\n onClick={() => handleUpdateColumnOrder(column, index + 1)}\n />\n </div>\n </div>\n )}\n </DropdownElement.Item>\n );\n })}\n </div>\n </DropdownElement.Container>\n <ButtonElement\n styles={\n stylesOverrides?.components?.buttonElement\n ? stylesOverrides?.components?.buttonElement\n : { container: 'py-1.5! px-3!' }\n }\n onClick={() => {\n const sheets = generate(table);\n write(sheets, { fileName: exportFileName });\n }}\n >\n <TableCellsIcon className=\"w-6 h-6\" />\n </ButtonElement>\n </div>\n </div>\n <div className={styles.body.container}>\n <div className={styles.body.wrapper}>\n <div className={styles.body.content}>\n <div className={styles.body.styleWrapper}>\n <table className={styles.body.table.container} style={hasStickyHeader ? { borderSpacing: 0 } : {}}>\n <thead className={styles.body.table.head.container}>\n {table?.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <th\n key={header.id}\n colSpan={header.colSpan}\n className={toClassName(\n styles.body.table.head.cell,\n header.column.getCanSort() && 'cursor-pointer',\n )}\n onClick={header.column.getToggleSortingHandler()}\n >\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n {header.column.getCanSort() && (\n <span\n className={toClassName(\n styles.sortIndicator.container,\n header.column.getIsSorted()\n ? styles.sortIndicator.isSorted\n : styles.sortIndicator.isNotSorted,\n )}\n >\n <ChevronDownIcon\n className={toClassName(\n styles.sortIndicator.icon.container,\n header.column.getIsSorted() === 'asc' && '-scale-100',\n )}\n aria-hidden=\"true\"\n />\n </span>\n )}\n </th>\n ))}\n </tr>\n ))}\n </thead>\n {!isLoading && (\n <tbody className={styles.body.table.body.container}>\n {table?.getRowModel().rows.map((row, index) => (\n <tr\n key={row.id}\n className={toClassName(\n styles.body.table.body.row,\n isStriped && index % 2 === 0 && 'bg-gray-50',\n )}\n >\n {row.getVisibleCells().map((cell) => (\n <td\n key={cell.id}\n className={toClassName(\n styles.body.table.body.cell,\n hasStickyHeader &&\n index !== table?.getState()?.pagination?.pageSize - 1 &&\n 'border-b border-gray-200',\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n )}\n </table>\n {isLoading && (\n <div className=\"flex flex-col gap-y-2 w-full pt-5\">\n {new Array(8).fill(undefined).map((index) => (\n <div key={index} className=\"flex gap-2\">\n <div className=\"w-20 h-14 rounded-md bg-gray-100 animate-pulse\" />\n {/* <div className=\"w-56 h-14 rounded-md bg-gray-100 animate-pulse\" /> */}\n <div className=\"w-full h-14 rounded-md bg-gray-100 animate-pulse\" />\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n {\n <PanelPagination\n current={page.current}\n max={page.total}\n styles={\n stylesOverrides?.components?.panelPaginationNavigation\n ? stylesOverrides?.components?.panelPaginationNavigation\n : { container: 'mt-4' }\n }\n onChange={onPaginate}\n >\n {children}\n </PanelPagination>\n }\n </div>\n </>\n );\n};\n\nexport default TableList;\n","/*\n\nhttps://tailwindui.com/components/application-ui/navigation/pagination\n\n*/\n\nexport type { TPanelPaginationNavigationStyles } from './PanelPaginationNavigation.styles';\n\nexport { default } from './PanelPaginationNavigation';\nexport { default as styles } from './PanelPaginationNavigation.styles';\n","import {\n ChevronDoubleLeftIcon,\n ChevronDoubleRightIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from '@heroicons/react/20/solid';\nimport { get, map, noop, set, toSafeInteger } from 'lodash';\nimport React, { ReactNode, useCallback, useEffect, useMemo, useState } from 'react';\nimport { SelectValue } from 'react-tailwindcss-select/dist/components/type';\n\nimport SelectMenuForm from '../../../components/Form/SelectMenu';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TPanelPaginationNavigationStyles } from '.';\nimport { default as defaultStyles } from './PanelPaginationNavigation.styles';\n\nexport type TProps = {\n current?: number;\n\n min?: number;\n max: number;\n\n children: ({ min, max, current }: { min: number; max: number; current: number }) => ReactNode;\n\n pageSizeOptions?: number[];\n defaultPageSize?: number;\n onChangePageSize?: (pageSize: number) => void;\n\n styles?: TPanelPaginationNavigationStyles;\n\n onChange?: (current: number) => void;\n};\n\nconst PanelPaginationNavigation: React.FC<TProps> = (props) => {\n const {\n current: defaultValue,\n min = 1,\n max = 20,\n styles: stylesOverrides,\n pageSizeOptions,\n defaultPageSize,\n onChangePageSize = noop,\n children,\n onChange,\n } = props;\n\n const [current, setCurrent] = useState(1);\n const [pageSize, setPageSize] = useState({\n value: `${defaultPageSize}`,\n label: `${defaultPageSize}`,\n });\n\n useEffect(() => {\n if (defaultValue) {\n setCurrent(defaultValue);\n }\n }, [defaultValue]);\n\n const hasCustomizablePageSize = useMemo(() => !!pageSizeOptions, [pageSizeOptions]);\n\n const pageSizeMenuOptions = useMemo(() => {\n const options = map(pageSizeOptions, (option) => ({\n value: `${option}`,\n label: `${option}`,\n }));\n\n !pageSize && setPageSize(options[0]);\n\n return options;\n }, [pageSize, pageSizeOptions]);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const handleChangeCurrent = useCallback(\n (current: number) => {\n setCurrent(current);\n onChange && onChange(current);\n },\n [onChange],\n );\n\n const pageType = useMemo(() => {\n let result: 'first' | 'center' | 'last' | 'simple' = 'center';\n\n if (current < min + 2) {\n result = 'first';\n }\n\n if (current > max - 2) {\n result = 'last';\n }\n\n if (max <= 4) {\n result = 'simple';\n }\n\n return result;\n }, [current, min, max]);\n\n let component;\n\n switch (pageType) {\n case 'first':\n component = (\n <>\n <button\n className={toClassName(styles.button.default, current === min && styles.button.active)}\n onClick={() => handleChangeCurrent(min)}\n >\n {min}\n </button>\n <button\n className={toClassName(styles.button.default, current === min + 1 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 1)}\n >\n {min + 1}\n </button>\n <button\n className={toClassName(styles.button.default, current === min + 2 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 2)}\n >\n {min + 2}\n </button>\n <span className={styles.divider}>...</span>\n <button className={styles.button.default} onClick={() => handleChangeCurrent(max)}>\n {max}\n </button>\n </>\n );\n break;\n case 'center':\n component = (\n <>\n <button className={styles.button.default} onClick={() => handleChangeCurrent(min)}>\n {min}\n </button>\n {current - 2 !== min && <span className={styles.divider}>...</span>}\n <button className={styles.button.default} onClick={() => handleChangeCurrent(current - 1)}>\n {current - 1}\n </button>\n <button\n className={toClassName(styles.button.default, styles.button.active)}\n onClick={() => handleChangeCurrent(current)}\n >\n {current}\n </button>\n <button className={styles.button.default} onClick={() => handleChangeCurrent(current + 1)}>\n {current + 1}\n </button>\n {current + 2 !== max && <span className={styles.divider}>...</span>}\n <button className={styles.button.default} onClick={() => handleChangeCurrent(max)}>\n {max}\n </button>\n </>\n );\n break;\n case 'last':\n component = (\n <>\n <button className={styles.button.default} onClick={() => handleChangeCurrent(min)}>\n {min}\n </button>\n <span className={styles.divider}>...</span>\n <button\n className={toClassName(styles.button.default, current === max - 2 && styles.button.active)}\n onClick={() => handleChangeCurrent(max - 2)}\n >\n {max - 2}\n </button>\n <button\n className={toClassName(styles.button.default, current === max - 1 && styles.button.active)}\n onClick={() => handleChangeCurrent(max - 1)}\n >\n {max - 1}\n </button>\n <button\n className={toClassName(styles.button.default, current === max && styles.button.active)}\n onClick={() => handleChangeCurrent(max)}\n >\n {max}\n </button>\n </>\n );\n break;\n case 'simple':\n component = (\n <>\n <button\n className={toClassName(styles.button.default, current === min && styles.button.active)}\n onClick={() => handleChangeCurrent(min)}\n >\n {min}\n </button>\n {max >= min + 1 && (\n <button\n className={toClassName(styles.button.default, current === min + 1 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 1)}\n >\n {min + 1}\n </button>\n )}\n {max >= min + 2 && (\n <button\n className={toClassName(styles.button.default, current === min + 2 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 2)}\n >\n {min + 2}\n </button>\n )}\n {max >= min + 3 && (\n <button\n className={toClassName(styles.button.default, current === min + 3 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 3)}\n >\n {min + 3}\n </button>\n )}\n </>\n );\n break;\n }\n\n return (\n <div className={styles.container}>\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <button\n className={toClassName(styles.mobile.button, current === min && styles.button.disabled)}\n disabled={current === min}\n onClick={() => handleChangeCurrent(current - 1)}\n >\n Previous\n </button>\n {hasCustomizablePageSize && (\n <SelectMenuForm\n name=\"pageSize\"\n isClearable={false}\n isSearchable={false}\n isMultiple={false}\n isSolo\n options={pageSizeMenuOptions}\n value={pageSize}\n styles={{ list: styles.pageSizeList }}\n onClear={noop}\n onChange={(value: SelectValue) => {\n if (onChangePageSize) {\n onChangePageSize(toSafeInteger((value as { value: string })?.value));\n }\n }}\n />\n )}\n <button\n className={toClassName(styles.mobile.button, current === max && styles.button.disabled)}\n disabled={current === max}\n onClick={() => handleChangeCurrent(current + 1)}\n >\n Next\n </button>\n </div>\n\n <div className={styles.desktop.container}>\n <div>\n <div className=\"text-sm text-gray-700\">\n {/** \"Showing X to Y of Z results.\" */}\n {children && children({ min, max, current })}\n </div>\n </div>\n {hasCustomizablePageSize && (\n <SelectMenuForm\n name=\"pageSize\"\n isClearable={false}\n isSearchable={false}\n isMultiple={false}\n isSolo\n options={pageSizeMenuOptions}\n value={pageSize}\n styles={{ list: styles.pageSizeList }}\n onClear={noop}\n onChange={(value: SelectValue) => {\n if (onChangePageSize) {\n onChangePageSize(toSafeInteger((value as { value: string })?.value));\n }\n }}\n />\n )}\n <div>\n <nav className={styles.desktop.navigation} aria-label=\"Pagination\">\n <button\n className={toClassName(styles.desktop.outerLeftButton, current === min && styles.button.disabled)}\n disabled={current === min}\n onClick={() => handleChangeCurrent(1)}\n >\n <span className={styles.label}>First</span>\n <ChevronDoubleLeftIcon className={styles.icon} aria-hidden=\"true\" />\n </button>\n <button\n className={toClassName(styles.desktop.innerButton, current === min && styles.button.disabled)}\n disabled={current === min}\n onClick={() => handleChangeCurrent(current - 1)}\n >\n <span className={styles.label}>Previous</span>\n <ChevronLeftIcon className={styles.icon} aria-hidden=\"true\" />\n </button>\n {component}\n <button\n className={toClassName(styles.desktop.innerButton, current === max && styles.button.disabled)}\n disabled={current === max}\n onClick={() => handleChangeCurrent(current + 1)}\n >\n <span className={styles.label}>Next</span>\n <ChevronRightIcon className={styles.icon} aria-hidden=\"true\" />\n </button>\n <button\n className={toClassName(styles.desktop.outerRightButton, current === max && styles.button.disabled)}\n disabled={current === max}\n onClick={() => handleChangeCurrent(max)}\n >\n <span className={styles.label}>Last</span>\n <ChevronDoubleRightIcon className={styles.icon} aria-hidden=\"true\" />\n </button>\n </nav>\n </div>\n </div>\n </div>\n );\n};\n\nexport default PanelPaginationNavigation;\n","/*\n\nhttps://www.npmjs.com/package/react-tailwindcss-select\n\n*/\n\nexport type { TSelectMenuFormProps } from './SelectMenuForm';\nexport type { TSelectMenuFormStyles } from './SelectMenuForm.styles';\n\nexport { default } from './SelectMenuForm';\nexport { default as styles } from './SelectMenuForm.styles';\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { concat, get, set } from 'lodash';\nimport React, { ChangeEvent, FC, useEffect, useMemo, useState } from 'react';\nimport Select from 'react-tailwindcss-select';\nimport { Option, SelectValue } from 'react-tailwindcss-select/dist/components/type';\n\nimport InputFooter, { footerStyles, TInputFooterSharedProps } from '../../../components/Custom/InputFooter';\nimport InputHeader, { headerStyles, TInputHeaderSharedProps } from '../../../components/Custom/InputHeader';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './SelectMenuForm.styles';\n\nimport { TSelectMenuFormStyles } from '.';\n\nexport type TSelectMenuFormProps = TInputHeaderSharedProps &\n TInputFooterSharedProps & {\n name: string;\n\n iconAccessor?: IconName;\n\n description?: string;\n placeholder?: {\n select?: string;\n searchInput?: string;\n emptyState?: string;\n };\n options: { value: string; label: string }[];\n\n value: { label: string; value: string; disabled?: boolean };\n //override error type\n error?: string | Option | Option[];\n\n isLoading?: boolean;\n isDisabled?: boolean;\n isClearable?: boolean;\n isSearchable?: boolean;\n isMultiple?: boolean;\n isDarkMode?: boolean;\n isSolo?: boolean;\n\n onChange?: (value: SelectValue) => void;\n onSearchInputChange?: ((e: ChangeEvent<HTMLInputElement>) => void) | undefined;\n onClear: (name: string) => void;\n\n onBlur?: any;\n\n styles?: TSelectMenuFormStyles;\n };\n\nconst SelectMenuForm: FC<TSelectMenuFormProps> = (props) => {\n const {\n name = 'select-menu-form',\n\n label,\n\n description,\n hint,\n placeholder,\n options,\n required,\n\n value,\n error,\n\n isRequired = false,\n isLoading,\n isTouched = false,\n isDisabled,\n isClearable = true,\n isMultiple = false,\n isSearchable = true,\n isSolo = false,\n isOptionalLabelHidden = false,\n\n onChange,\n onSearchInputChange,\n onClear,\n onBlur,\n\n styles: stylesOverrides,\n } = props;\n\n const [isFocus, setIsFocus] = useState(true);\n const [state, setState] = useState<SelectValue>(value ?? null);\n\n const isValid = error === undefined;\n\n const selectDataCy = `form-select-${name}`;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = concat(\n calculateNestedKeys(defaultStyles.base),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n get(defaultStyles['normal'], key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const handleChange = (selectValue: SelectValue) => {\n setState(selectValue);\n onChange && onChange(selectValue);\n setIsFocus(false);\n };\n\n const styles = handleGenerateStyle();\n\n // Simulate onClear event.\n useEffect(() => {\n if (state === null && !isFocus) {\n onClear && onClear(name);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state]);\n\n // Simulate onBlur event.\n useEffect(() => {\n if (!isFocus) {\n onBlur && onBlur();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isFocus]);\n\n // listen to value changes.\n useEffect(() => {\n setState(value);\n }, [value]);\n\n const formattedError = useMemo(() => {\n if (error) return JSON.stringify(error).replaceAll('\"', '');\n\n return null;\n }, [error]);\n\n return (\n <div className={styles.container}>\n <InputHeader\n name={name}\n label={label}\n required={required}\n isRequired={isRequired}\n isOptionalLabelHidden={isOptionalLabelHidden}\n styles={styles}\n description={description}\n />\n <div className={toClassName(styles.container, styles.wrapperContainer)}>\n <div data-cy={selectDataCy}>\n <Select\n primaryColor=\"primary\"\n //\n placeholder={placeholder?.select}\n noOptionsMessage={\n (<p className={styles.emptyState}>{placeholder?.emptyState ?? 'No results found'}</p>) as any\n }\n searchInputPlaceholder={placeholder?.searchInput}\n //\n loading={isLoading}\n isDisabled={isDisabled}\n isClearable={isClearable}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n //\n options={options}\n //\n value={state}\n onChange={handleChange}\n onSearchInputChange={onSearchInputChange}\n //\n classNames={{\n menuButton: () =>\n toClassName(\n styles.input,\n state === null && '*:text-gray-300! ',\n state === null && !isValid && isTouched && '*:text-red-300!',\n ),\n menu: styles.menu,\n tagItem: () => styles.tagItem,\n tagItemText: styles.tagItemText,\n tagItemIconContainer: styles.tagItemIconContainer,\n tagItemIcon: styles.tagItemIcon,\n list: styles.list,\n listItem: () => styles.listItem,\n listDisabledItem: styles.listDisabledItem,\n listGroupLabel: styles.listGroupLabel,\n searchContainer: styles.searchContainer,\n searchBox: styles.searchBox,\n searchIcon: styles.searchIcon,\n closeIcon: styles.closeIcon,\n }}\n />\n </div>\n <InputFooter\n isHidden={isSolo}\n name={name}\n error={formattedError}\n isTouched={isTouched}\n hint={hint}\n styles={styles}\n />\n </div>\n </div>\n );\n};\n\nexport default SelectMenuForm;\n","import { TInputFooterStyles } from '../../../components/Custom/InputFooter';\nimport { TInputHeaderStyles } from '../../../components/Custom/InputHeader';\nimport { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\nconst base = {\n container: '',\n wrapperContainer: '',\n body: 'relative rounded-md',\n leading: 'pointer-events-none absolute inset-y-0 left-0 flex items-center',\n input: 'block w-full flex border',\n menuButton: '',\n menu: 'z-10 px-0! py-0! w-full! rounded-md overflow-hidden border mt-1! absolute bg-white',\n tagItem: 'bg-gray-200 px-2 py-1 flex flex-row gap-x-1 items-center justify-between rounded-xs',\n tagItemText: 'text-xs',\n tagItemIconContainer:\n 'p-0! rounded-full hover:bg-gray-400 text-sm hover:text-white aspect-square w-4 flex items-center justify-center cursor-pointer',\n tagItemIcon: '',\n list: 'px-0! w-full! *:px-0 max-h-56 overflow-scroll py-1!',\n listGroupLabel: '',\n listItem: 'w-full! list-none! hover:bg-primary-500 hover:text-white py-2! px-2!',\n listDisabledItem: '',\n searchContainer: 'w-full! px-2! py-2! border-b',\n searchBox: '',\n searchIcon: '',\n closeIcon: '',\n emptyState: 'w-full inline-flex items-start justify-start px-4',\n trailing: 'pointer-events-none absolute inset-y-0 right-0 flex items-center',\n};\n\nconst leading: TSelectMenuFormStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TSelectMenuFormStyles = {};\n\nconst normal: TSelectMenuFormStyles = {\n leading: 'pl-3',\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n trailing: '',\n};\n\nconst inset: TSelectMenuFormStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n};\n\nconst overlapping: TSelectMenuFormStyles = {\n container: 'relative',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n};\n\nconst pill: TSelectMenuFormStyles = {\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n trailing: 'pr-2',\n};\n\nconst floored: TSelectMenuFormStyles = {\n body: 'relative mt-2',\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n};\n\nconst invalid: TSelectMenuFormStyles = {\n container: 'ring-red-500',\n input:\n // 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 sm:leading-6 pr-10',\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500',\n};\n\nconst disabled: TSelectMenuFormStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 cursor-not-allowed bg-gray-50 text-gray-500 ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TSelectMenuFormStyles = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'flex items-center justify-between border-t border-gray-200 bg-white py-3',\n\n mobile: {\n container: '',\n button:\n 'relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50',\n },\n\n desktop: {\n container: 'hidden sm:flex sm:flex-1 sm:items-center sm:justify-between',\n\n outerRightButton:\n 'relative inline-flex items-center rounded-r-md border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50 focus:z-20',\n outerLeftButton:\n 'relative inline-flex items-center rounded-l-md border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50 focus:z-20',\n innerButton:\n 'relative inline-flex items-center border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50 focus:z-20',\n navigation: 'isolate inline-flex -space-x-px rounded-md shadow-xs',\n },\n\n button: {\n default:\n 'relative inline-flex items-center border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50',\n active: 'border-primary-500 bg-primary-50 text-primary-600 z-20',\n disabled: 'opacity-20 cursor-not-allowed',\n },\n divider:\n 'relative inline-flex items-center border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-500',\n label: 'sr-only',\n icon: 'w-5 h-5',\n pageSizeList: 'overflow-hidden!',\n};\n\nconst styles = {\n base,\n};\n\nexport type TPanelPaginationNavigationStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Table } from '@tanstack/react-table';\nimport { get, indexOf } from 'lodash';\nimport * as XLSX from 'xlsx';\n\n/*\n\nFor column definition check: https://docs.sheetjs.com/docs/csf/cell.\n\n*/\n\nexport type TExcelCell = {\n value: number | string;\n type?: 'boolean' | 'number' | 'error' | 'string' | 'date';\n formula?: string;\n comments?: string;\n format?: string;\n link?: string;\n style?: string;\n};\n\nexport type TExcelRow = TExcelCell[];\n\nexport type TExcelSheet = {\n title: string;\n rows: TExcelRow[];\n};\n\ntype TOptions = {\n fileName: string;\n};\n\ntype TReturn<TData> = {\n generate: (table: Table<TData>, exportData?: TData[]) => TExcelSheet[];\n write: (sheets: TExcelSheet[], options: TOptions) => void;\n};\n\nexport const useExcel = <TData extends object>(): TReturn<TData> => {\n const handleFormatRow = (row: TExcelRow) =>\n row.map((cell) => ({\n v: cell?.value,\n t: cell?.type\n ?.replace('boolean', 'b')\n .replace('number', 'n')\n .replace('error', 'e')\n .replace('string', 's')\n .replace('date', 'd'),\n f: cell?.formula,\n c: cell?.comments,\n z: cell?.format,\n l: cell?.link,\n s: cell?.style,\n }));\n\n const generate = <TData extends object>(table: Table<TData>, exportData?: TData[]) => {\n const sheets: TExcelSheet[] = [];\n\n const columns: any[] = table.getAllColumns();\n const rows = exportData ?? table.getRowModel()?.flatRows?.map((row) => row.original);\n const order = table.getState().columnOrder;\n\n const headerNames = columns\n ?.sort((a, b) => indexOf(order, a.id ?? get(a, 'accessorKey')) - indexOf(order, b.id ?? get(b, 'accessorKey')))\n ?.filter((column) => typeof column?.columnDef?.header === 'string' && column?.getIsVisible())\n ?.map((column) => ({\n id: column?.id,\n value: column?.columnDef?.header,\n }));\n\n const headerRow: Record<string, TExcelCell> = {};\n headerNames.forEach((name) => {\n headerRow[name.id] = {\n value: name.value,\n type: 'string',\n };\n });\n\n const excelRows = rows.map((row) => {\n const result: Record<string, TExcelCell> = {};\n\n Object.keys(row)\n // sort keys according to the current table order\n .sort((a, b) => indexOf(order, a) - indexOf(order, b))\n // Filter out items with non-string values.\n .filter((key) => {\n const column = columns?.find((column) => column.id === key);\n\n if (!column) {\n return false;\n }\n\n return typeof column.columnDef?.header === 'string';\n })\n // Filter out hidden columns.\n .filter((key) => {\n const column = columns?.find((column) => column.id === key);\n\n if (!column) {\n return false;\n }\n\n return column.getIsVisible();\n })\n .forEach((key) => {\n const cell = columns?.find((column) => column.id === key)?.columnDef.meta?.excel(get(row, key));\n\n result[key] = cell;\n });\n\n return result;\n });\n\n sheets.push({\n title: `Sheet 1`,\n rows: [headerRow, ...excelRows].map((row) => Object.keys(row).map((key) => row[key])),\n });\n\n return sheets;\n };\n\n const write = (sheets: TExcelSheet[], options: TOptions) => {\n const { fileName } = options;\n\n const book = XLSX.utils.book_new();\n\n if (sheets?.length > 0) {\n sheets?.forEach((sheet) => {\n const result = XLSX.utils.aoa_to_sheet(sheet?.rows?.map((row) => handleFormatRow(row)));\n\n XLSX.utils.book_append_sheet(book, result, sheet.title);\n });\n }\n\n XLSX.writeFile(book, `${fileName}.xlsx`);\n };\n\n return {\n generate,\n write,\n };\n};\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'px-4 sm:px-6 lg:px-8',\n head: {\n container: 'sm:flex sm:items-center',\n head: 'sm:flex-auto',\n body: 'mt-4 sm:mt-0 sm:ml-16 sm:flex-none',\n heading: 'text-xl font-semibold text-gray-900',\n paragraph: 'mt-2 text-sm text-gray-700',\n },\n body: {\n container: 'flex flex-col',\n wrapper: '-my-2 -mx-4 sm:-mx-6 lg:-mx-8',\n content: '',\n styleWrapper: 'overflow-scroll w-screen md:w-auto md:overflow-auto pr-12 md:pr-0',\n table: {\n container: 'min-w-full divide-y divide-gray-300 ',\n head: {\n container: '',\n row: '',\n cell: 'py-3.5 px-3 text-left text-sm font-semibold text-gray-900 group',\n checkbox:\n 'absolute left-4 top-1/2 -mt-2 h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-500 sm:left-6',\n },\n body: {\n container: 'divide-y divide-gray-200',\n row: '',\n cell: 'whitespace-nowrap py-4 px-3 text-sm text-gray-500',\n checkbox:\n 'absolute left-4 top-1/2 -mt-2 h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-500 sm:left-6',\n indicator: 'absolute inset-y-0 left-0 w-0.5 bg-primary-600',\n },\n },\n },\n\n sortIndicator: {\n container: 'ml-2 translate-y-1 inline-flex items-center flex-none rounded-sm',\n isSorted: 'bg-gray-100 text-gray-900 group-hover:bg-gray-200',\n isNotSorted: 'invisible text-gray-400 group-hover:visible group-focus:visible',\n icon: {\n container: 'h-5 w-5',\n },\n },\n\n controls: {\n container: 'flex-row justify-between z-10 relative mb-4 gap-2 hidden',\n content: 'my-2 flex flex-col',\n head: '',\n body: 'flex flex-row justify-end gap-2',\n dropdown: {\n container: 'px-4 py-2 text-sm flex flex-row items-center font-medium group',\n input: 'mr-3 cursor-pointer',\n label: 'mr-3',\n actions: 'hidden grid-cols-2 gap-2 group-hover:grid text-gray-400',\n upIcon: 'w-5 h-5 -scale-y-100 hover:text-black hover:bg-gray-200 rounded-md cursor-pointer',\n downIcon: 'w-5 h-5 hover:text-black hover:bg-gray-200 rounded-md cursor-pointer',\n },\n },\n};\n\nconst normal: TTableListStyles = {\n body: {\n content: 'inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8',\n styleWrapper: 'relative',\n },\n};\n\nconst panel: TTableListStyles = {\n body: {\n content: 'inline-block min-w-full py-2 align-middle md:px-6 lg:px-8',\n styleWrapper: 'relative overflow-hidden shadow-sm ring-1 ring-black/5 md:rounded-lg',\n table: {\n head: {\n container: 'bg-gray-50',\n },\n body: {\n container: 'bg-white',\n },\n },\n },\n};\n\nconst full: TTableListStyles = {\n body: {\n content: 'inline-block min-w-full py-2 align-middle',\n styleWrapper: 'relative overflow-hidden shadow-xs ring-1 ring-black/5',\n table: {\n head: {\n container: 'bg-gray-50',\n },\n },\n },\n};\n\nconst sticky: TTableListStyles = {\n body: {\n table: {\n container: 'min-w-full border-separate',\n head: {\n cell: 'sticky top-0 z-10 border-b border-gray-300 bg-gray-50/75 backdrop-blur-sm backdrop-filter sm:table-cell',\n },\n },\n },\n};\n\nconst separated: TTableListStyles = {\n body: {\n table: {\n head: {\n row: 'divide-x divide-gray-200',\n },\n body: {\n row: 'divide-x divide-gray-200',\n },\n },\n },\n};\n\nconst controlled: TTableListStyles = {\n controls: {\n container: 'flex!',\n },\n};\n\nconst styles = {\n base,\n\n normal,\n panel,\n full,\n\n sticky,\n separated,\n controlled,\n};\n\nexport type TTableListStyles = DeepPartial<typeof base>;\nexport default styles;\n","import {\n DndContext,\n DragEndEvent,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n UniqueIdentifier,\n closestCenter,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { ChevronDownIcon, ChevronUpDownIcon, ChevronUpIcon } from '@heroicons/react/20/solid';\nimport {\n ColumnDef,\n ColumnOrderState,\n flexRender,\n getCoreRowModel,\n useReactTable as useTable,\n SortingState,\n Table,\n Row,\n Column,\n GroupingState,\n getGroupedRowModel,\n ExpandedState,\n getExpandedRowModel,\n Cell,\n} from '@tanstack/react-table';\nimport {\n assign,\n compact,\n concat,\n find,\n findIndex,\n first,\n forEach,\n get,\n includes,\n isEmpty,\n last,\n map,\n set,\n some,\n times,\n} from 'lodash';\nimport React, {\n CSSProperties,\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\n\nimport Icon from '../../../components/Element/Icon';\nimport IconElement from '../../../components/Element/Icon';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { getTableState, setTableState } from '../../../helpers/localStorage';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './TableList2.styles';\n\nimport { TTableListStyles } from '.';\n\ntype TData = any;\n\ntype VisibilityState = Record<string, boolean>;\n\ntype Params = {\n table: Table<any>;\n //\n sorting: SortingState;\n columnVisibility: VisibilityState;\n columnOrder: ColumnOrderState;\n grouping: GroupingState;\n //\n setSorting: Dispatch<SetStateAction<SortingState>>;\n setColumnVisibility: Dispatch<SetStateAction<VisibilityState>>;\n setColumnOrder: Dispatch<SetStateAction<ColumnOrderState>>;\n setGrouping: Dispatch<SetStateAction<GroupingState>>;\n};\n\nexport type TTableListProps<TData> = {\n id: string;\n //\n table: {\n columns: ColumnDef<TData>[];\n data: TData[];\n options?: {\n defaultOrder?: string[];\n defaultVisibility?: string[];\n defaultSorting?: SortingState;\n emptyComponent?: ReactNode;\n //\n isStriped?: boolean;\n hasStickyHeader?: boolean;\n hasVerticalSeparators?: boolean;\n //\n columnPinning?: {\n disableShadow?: boolean;\n customShadow?: string;\n left?: { name: string; size: number }[];\n right?: { name: string; size: number }[];\n };\n //\n grouping?: {\n defaultGrouping?: GroupingState;\n defaultExpanded?: ExpandedState;\n expandIconAccessor?: IconName;\n collapseIconAccessor?: IconName;\n };\n getSubRows?: (originalRow: TData) => TData[];\n };\n };\n //\n isLoading?: boolean;\n //\n head?: (params: Params) => ReactNode;\n foot?: (params: Params) => ReactNode;\n leftSide?: (params: Params) => ReactNode;\n //\n onRowClick?: (context: Row<TData>) => void;\n onChange?: (params: Params) => void;\n //\n styles?: TTableListStyles;\n //\n dragConfig?: {\n rowIdentifierKey: string;\n iconAccessor?: IconName;\n label?: ReactNode;\n header?: string;\n //\n handleDragEnd?: ({\n oldIndex,\n newIndex,\n dragEndEvent,\n }: {\n oldIndex?: number;\n newIndex?: number;\n dragEndEvent?: DragEndEvent;\n }) => void;\n };\n};\n\nconst TableList2: FC<TTableListProps<TData>> = (props) => {\n const {\n id,\n table: config,\n head,\n foot,\n leftSide,\n isLoading,\n onRowClick,\n onChange,\n styles: stylesOverrides,\n dragConfig,\n } = props;\n\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [columnOrder, setColumnOrder] = useState<ColumnOrderState>([]);\n const [sorting, setSorting] = useState<SortingState>(config.options?.defaultSorting ?? []);\n const [grouping, setGrouping] = useState<GroupingState>(config.options?.grouping?.defaultGrouping ?? []);\n const [expanded, setExpanded] = useState<ExpandedState>({});\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n // type && get(defaultStyles[type], key),\n\n // hasStickyHeader && get(defaultStyles.sticky, key),\n // hasVerticalSeparators && get(defaultStyles.separated, key),\n // areControlsVisible && get(defaultStyles.controlled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const isDraggable = !!dragConfig;\n\n const dataIds = useMemo<UniqueIdentifier[]>(\n () => map(config?.data, (entity) => get(entity, dragConfig?.rowIdentifierKey as string)),\n [config?.data, dragConfig?.rowIdentifierKey],\n );\n\n const onDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (active && over && active.id !== over.id) {\n const oldIndex = dataIds.indexOf(active.id);\n const newIndex = dataIds.indexOf(over.id);\n\n dragConfig?.handleDragEnd && dragConfig?.handleDragEnd({ oldIndex, newIndex, dragEndEvent: event });\n }\n };\n\n const initialVisibilityState = useMemo<VisibilityState>(() => {\n const columnAccessorKeys = compact(map(config.columns, 'accessorKey'));\n const columnIds = compact(map(config.columns, 'id'));\n let visibilityState = {};\n\n if (config.options?.defaultVisibility) {\n forEach(columnAccessorKeys, (key) => {\n visibilityState = assign(visibilityState, {\n [key]: includes(config.options?.defaultVisibility, key),\n });\n });\n } else {\n forEach(columnAccessorKeys, (key) => {\n visibilityState = assign(visibilityState, { [key]: true });\n });\n }\n forEach(columnIds, (key) => {\n visibilityState = assign(visibilityState, { [key]: true });\n });\n\n return visibilityState;\n }, [config.columns, config.options?.defaultVisibility]);\n\n const table = useTable<TData>({\n getExpandedRowModel: getExpandedRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getCoreRowModel: getCoreRowModel(),\n getSubRows: config.options?.getSubRows,\n\n autoResetExpanded: false,\n\n columns: isDraggable\n ? [\n {\n id: 'drag-handle',\n header: dragConfig?.header,\n cell: ({ row }) => <RowDragHandleCell rowId={row.id} />,\n },\n ...config.columns,\n ]\n : config.columns,\n data: config.data,\n\n enableColumnPinning: true,\n\n state: {\n sorting,\n columnVisibility,\n columnOrder,\n grouping,\n expanded,\n },\n\n initialState: {\n columnVisibility: isDraggable ? { 'drag-handle': true, ...initialVisibilityState } : initialVisibilityState,\n columnOrder: isDraggable\n ? ['drag-handle', ...(config.options?.defaultOrder ?? [])]\n : config.options?.defaultOrder,\n columnPinning: {\n left: map(config.options?.columnPinning?.left, 'name') ?? [],\n right: map(config.options?.columnPinning?.right, 'name') ?? [],\n },\n grouping: config.options?.grouping?.defaultGrouping,\n expanded: config.options?.grouping?.defaultExpanded,\n },\n\n manualPagination: true,\n manualSorting: true,\n\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnOrderChange: setColumnOrder,\n onGroupingChange: setGrouping,\n onExpandedChange: setExpanded,\n\n getRowId: (row) => get(row, dragConfig?.rowIdentifierKey as string),\n });\n\n const state = useMemo(\n () => ({\n table,\n //\n sorting,\n columnVisibility,\n columnOrder,\n grouping,\n //\n setSorting,\n setColumnVisibility,\n setColumnOrder,\n setGrouping,\n }),\n [columnOrder, columnVisibility, sorting, grouping, table],\n );\n\n // Trigger onChange handler when state changes.\n useEffect(() => {\n if (state) {\n onChange && onChange(state);\n }\n }, [onChange, state]);\n\n // Set column visibility state on mount.\n useEffect(() => {\n const savedVisibility = getTableState(id)?.columnVisibility;\n\n if (savedVisibility && !isEmpty(Object.keys(savedVisibility))) {\n setColumnVisibility(savedVisibility);\n } else {\n const columnKeys = map(table?.getAllColumns(), (column) => column.id ?? get(column, 'accessorKey'));\n\n const visibility = {};\n\n forEach(columnKeys, (key) => {\n assign(visibility, { [key]: !config?.options?.defaultVisibility });\n });\n\n if (config.options?.defaultVisibility) {\n forEach(config.options?.defaultVisibility, (value) => {\n if (!columnKeys.includes(value)) return;\n assign(visibility, { [value]: true });\n });\n }\n\n setColumnVisibility(visibility);\n }\n }, [config?.options?.defaultVisibility, id, table]);\n\n useEffect(() => {\n const savedOrder = getTableState(id)?.columnOrder;\n const defaultOrder = config?.options?.defaultOrder;\n\n if (savedOrder) {\n setColumnOrder(savedOrder);\n } else if (defaultOrder) {\n setColumnOrder(isDraggable ? ['drag-handle', ...defaultOrder] : defaultOrder);\n } else if (some(config.columns, (column) => column?.id || get(column, 'accessorKey'))) {\n const mappedColumns = map(config.columns, (column) => (column?.id ?? get(column, 'accessorKey')) as string);\n\n setColumnOrder(isDraggable ? ['drag-handle', ...mappedColumns] : mappedColumns);\n }\n }, [config.columns, config?.options?.defaultOrder, id, isDraggable]);\n\n const handleFlexRender = (cell: Cell<TData, any>) => flexRender(cell.column.columnDef.cell, cell.getContext());\n\n // Write state to local storage when it changes\n useEffect(() => {\n if (state) {\n setTableState(id, state);\n }\n }, [id, state]);\n\n const RowDragHandleCell = ({ rowId }: { rowId: string }) => {\n const { attributes, listeners } = useSortable({\n id: rowId,\n });\n\n return (\n <button {...attributes} {...listeners}>\n {dragConfig?.iconAccessor && <Icon accessor={dragConfig?.iconAccessor} />}\n {dragConfig?.label}\n </button>\n );\n };\n\n const DraggableRow = ({ row, index }: { row: Row<TData>; index: number }) => {\n const { transform, transition, setNodeRef, isDragging } = useSortable({\n id: get(row.original, dragConfig?.rowIdentifierKey as string),\n });\n\n const style: CSSProperties = {\n transform: CSS.Transform.toString(transform),\n transition: transition,\n opacity: isDragging ? 0.8 : 1,\n zIndex: isDragging ? 1 : 0,\n position: 'relative',\n };\n\n return (\n <tr\n ref={setNodeRef}\n style={style}\n key={row.id}\n onClick={() => onRowClick && onRowClick(row)}\n className={toClassName(\n styles.body.table.body.row,\n config.options?.isStriped && index % 2 === 0 && styles.body.table.body.striped,\n )}\n >\n {row.getIsGrouped() ? (\n <td colSpan={row.getVisibleCells().length}>\n <div className={styles.body.table.body.groupedRow}>\n {map(row.getVisibleCells(), (cell) => (\n <div key={cell.id} className={styles.body.table.body.groupedRowCell}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </div>\n ))}\n </div>\n </td>\n ) : (\n map(row.getVisibleCells(), (cell) => (\n <td\n key={cell.id}\n className={toClassName(\n styles.body.table.body.cell,\n config?.options?.hasStickyHeader &&\n index !== table?.getState()?.pagination?.pageSize - 1 &&\n styles.body.table.body.sticky,\n )}\n style={{ width: cell.column.getSize() }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n ))\n )}\n </tr>\n );\n };\n\n const sensors = useSensors(useSensor(MouseSensor, {}), useSensor(TouchSensor, {}), useSensor(KeyboardSensor, {}));\n\n const getPinnedColumnsWidth = useCallback(\n (side: 'left' | 'right', id: string) => {\n const pinnedColumns = map(config.options?.columnPinning?.[side], 'size');\n const pinnedColumnIndex = findIndex(config.options?.columnPinning?.[side], { name: id });\n\n if (pinnedColumnIndex === -1) return null;\n\n const startIndex = side === 'left' ? 0 : pinnedColumnIndex + 1;\n const endIndex = side === 'left' ? pinnedColumnIndex : pinnedColumns.length - pinnedColumnIndex + 1;\n\n return pinnedColumns.slice(startIndex, endIndex).reduce((acc, size) => acc + size, 0);\n },\n [config.options?.columnPinning],\n );\n\n const getCommonPinningStyles = useCallback(\n (column: Column<any>): CSSProperties => {\n const isPinned = column.getIsPinned();\n const isLastLeftPinnedColumn = column.id == last(config.options?.columnPinning?.left)?.name;\n const isFirstRightPinnedColumn = column.id == first(config.options?.columnPinning?.right)?.name;\n const width = find(concat(config.options?.columnPinning?.left, config.options?.columnPinning?.right), {\n name: column.id,\n })?.size;\n\n const customBoxShadow = config?.options?.columnPinning?.customShadow;\n\n const boxShadow = isLastLeftPinnedColumn\n ? (customBoxShadow ?? styles.body.table.pinnedColumns.left)\n : isFirstRightPinnedColumn\n ? (customBoxShadow ?? styles.body.table.pinnedColumns.right)\n : undefined;\n\n return {\n width: width,\n maxWidth: width,\n minWidth: width,\n boxShadow: config.options?.columnPinning?.disableShadow ? undefined : boxShadow,\n left: isPinned === 'left' ? `${getPinnedColumnsWidth('left', column.id)}px` : undefined,\n right: isPinned === 'right' ? `${getPinnedColumnsWidth('right', column.id)}px` : undefined,\n };\n },\n [\n config.options?.columnPinning?.customShadow,\n config.options?.columnPinning?.disableShadow,\n config.options?.columnPinning?.left,\n config.options?.columnPinning?.right,\n styles.body.table.pinnedColumns.left,\n styles.body.table.pinnedColumns.right,\n getPinnedColumnsWidth,\n ],\n );\n\n const Content = (\n <div className={styles.container} data-cy={`table-list-${id}`}>\n {head && <div className={styles.head}>{head(state)}</div>}\n <div className={styles.body.content}>\n <div className={styles.body.wrapper}>\n <div className={leftSide ? styles.body.styleWrapperWithLeftSide : styles.body.styleWrapper}>\n {leftSide && <div className={styles.leftSide}>{leftSide(state)}</div>}\n <div className={toClassName(leftSide ? styles.body.tableWrapperWithLeftSide : styles.body.tableWrapper)}>\n <table className={toClassName(leftSide ? styles.body.table.container : styles.body.table.container)}>\n <thead className={styles.body.table.head.container}>\n {map(table?.getHeaderGroups(), (headerGroup) => (\n <tr key={headerGroup.id} className={styles.body.table.head.row}>\n {map(headerGroup.headers, (header) => {\n // Default sort icon to show a user that the column is sortable\n let SortIconElement = ChevronUpDownIcon;\n\n if (header.column.getIsSorted()) {\n SortIconElement = header.column.getIsSorted() === 'asc' ? ChevronUpIcon : ChevronDownIcon;\n }\n return (\n <th\n key={header.id}\n colSpan={header.colSpan}\n className={toClassName(\n styles.body.table.head.cell.container,\n header.column.getCanSort() && 'cursor-pointer',\n header.column.getIsPinned() && styles.body.table.head.column.pinned.cell,\n )}\n onClick={header.column.getToggleSortingHandler()}\n style={{\n minWidth:\n !!header.column.columnDef.size && header.column.columnDef.size !== 150\n ? `${header.column.columnDef.size}px`\n : 'auto',\n ...getCommonPinningStyles(header.column),\n }}\n >\n <div\n className={styles.body.table.head.cell.wrapper}\n style={{\n gridTemplateColumns: '1fr auto',\n }}\n >\n {header.isPlaceholder ? null : (\n <div className={styles.body.table.head.cell.text}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </div>\n )}\n {header.column.getCanSort() && (\n <span\n className={toClassName(\n styles.body.table.head.cell.sortIndicator.container,\n header.column.getIsSorted()\n ? styles.body.table.head.cell.sortIndicator.isSorted\n : styles.body.table.head.cell.sortIndicator.isNotSorted,\n )}\n >\n <SortIconElement\n className={toClassName(styles.body.table.head.cell.sortIndicator.icon.container)}\n aria-hidden=\"true\"\n />\n </span>\n )}\n </div>\n </th>\n );\n })}\n </tr>\n ))}\n </thead>\n {!isLoading && (\n <tbody className={styles.body.table.body.container}>\n {isDraggable ? (\n <SortableContext\n items={map(config.data, (entity) => get(entity, dragConfig?.rowIdentifierKey as string))}\n strategy={verticalListSortingStrategy}\n >\n {map(table?.getRowModel().rows, (row, index) => (\n <DraggableRow\n key={get(row.original, dragConfig?.rowIdentifierKey as string)}\n row={row}\n index={index}\n />\n ))}\n </SortableContext>\n ) : (\n map(table?.getRowModel().rows, (row, index) => (\n <tr\n key={row.id}\n onClick={() => onRowClick && onRowClick(row)}\n data-row-id={row.id}\n className={toClassName(\n styles.body.table.body.row,\n config.options?.isStriped && index % 2 === 0 && styles.body.table.body.striped,\n )}\n >\n {map(row.getVisibleCells(), (cell) => (\n <td\n key={cell.id}\n data-column-id={cell.column.id}\n data-row-id={row.id}\n className={toClassName(\n styles.body.table.body.cell,\n config?.options?.hasStickyHeader &&\n index !== table?.getState()?.pagination?.pageSize - 1 &&\n styles.body.table.body.sticky,\n cell.column.getIsPinned() && styles.body.table.body.column.pinned.cell,\n )}\n style={{\n width: cell.column.getSize(),\n ...getCommonPinningStyles(cell.column),\n }}\n >\n {cell.getIsGrouped() ? (\n // If it's a grouped cell, add an expander and row count\n <button\n onClick={row.getToggleExpandedHandler()}\n className={styles.body.table.body.groupedCell}\n style={{\n cursor: row.getCanExpand() ? 'pointer' : 'normal',\n }}\n >\n <IconElement\n className={\n row.getIsExpanded()\n ? styles.body.table.body.groupedRowIcon.collapse\n : styles.body.table.body.groupedRowIcon.expand\n }\n accessor={\n row.getIsExpanded()\n ? (config?.options?.grouping?.collapseIconAccessor ?? 'chevron-down')\n : (config?.options?.grouping?.expandIconAccessor ?? 'chevron-right')\n }\n />\n {handleFlexRender(cell)} ({row.subRows.length})\n </button>\n ) : cell.getIsAggregated() ? (\n // If the cell is aggregated, use the Aggregated\n // renderer for cell\n flexRender(\n cell.column.columnDef.aggregatedCell ?? cell.column.columnDef.cell,\n cell.getContext(),\n )\n ) : cell.getIsPlaceholder() ? null : ( // For cells with repeated values, render null\n // Otherwise, just render the regular cell\n flexRender(cell.column.columnDef.cell, cell.getContext())\n )}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n )}\n </table>\n {isEmpty(table?.getRowModel().rows) && !isLoading && (\n <>\n {config?.options?.emptyComponent ? (\n config?.options?.emptyComponent\n ) : (\n <div className={defaultStyles.empty}>There is no data to show...</div>\n )}\n </>\n )}\n {isLoading && (\n <div className={defaultStyles.loading.container}>\n {times(8, (index) => (\n <div key={index} className={defaultStyles.loading.row.container}>\n <div className={defaultStyles.loading.row.first} />\n <div className={defaultStyles.loading.row.last} />\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n {foot && <div className={styles.foot}>{foot(state)}</div>}\n </div>\n );\n\n return isDraggable ? (\n <DndContext\n collisionDetection={closestCenter}\n modifiers={[restrictToVerticalAxis]}\n onDragEnd={onDragEnd}\n sensors={sensors}\n >\n {Content}\n </DndContext>\n ) : (\n Content\n );\n};\n\nexport default TableList2;\n","import { get, isEmpty, pick, some } from 'lodash';\n\ntype TTableState = {\n columnVisibility: Record<string, boolean>;\n columnOrder: string[];\n};\n\nexport const getTableState = (tableName: string): TTableState | undefined => {\n const savedState = localStorage.getItem(`TableList.${tableName}.state`);\n\n try {\n if (savedState && isValidState(JSON.parse(savedState))) {\n return JSON.parse(savedState);\n }\n } catch (e) {\n // Something went wrong with parsing the saved state; remove it and let the table use the default state\n console.error(e);\n localStorage.removeItem(`TableList.${tableName}.state`);\n return undefined;\n }\n};\n\nexport const setTableState = (tableName: string, state: any) => {\n // we only care about the order and visibility of columns\n const cherryPickedState = pick(state, ['columnOrder', 'columnVisibility']);\n\n if (isValidState(cherryPickedState)) {\n localStorage.setItem(`TableList.${tableName}.state`, JSON.stringify(cherryPickedState));\n }\n};\n\nexport const removeTableState = (tableName: string) => {\n localStorage.removeItem(`TableList.${tableName}.state`);\n};\n\nconst isValidState = (state: TTableState | undefined) => {\n if (\n !state?.columnOrder ||\n !state?.columnVisibility ||\n isEmpty(state?.columnOrder) ||\n Object.keys(state?.columnVisibility).length === 0\n ) {\n return false;\n }\n\n if (some(state.columnOrder, (item) => typeof item !== 'string')) {\n return false;\n }\n\n if (some(Object.keys(state.columnVisibility), (key) => typeof get(state.columnVisibility, key) !== 'boolean')) {\n return false;\n }\n\n return true;\n};\n","import { DeepPartialType } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n\n head: '',\n body: {\n container: 'flex flex-col',\n wrapper: 'flow-root relative',\n content: '',\n styleWrapper: 'flex overflow-x-scroll overflow-y-visible',\n styleWrapperWithLeftSide: 'flex',\n tableWrapper: 'inline-block min-w-full align-middle',\n tableWrapperWithLeftSide: 'w-full overflow-x-scroll',\n table: {\n container: 'min-w-full border-separate border-spacing-0',\n containerWithLeftSide: 'border-separate border-spacing-0',\n pinnedColumns: {\n left: '-4px 0 4px -4px gray inset',\n right: '4px 0 4px -4px gray inset',\n },\n head: {\n container: '',\n row: '',\n checkbox:\n 'absolute left-4 top-1/2 -mt-2 h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-500 sm:left-6',\n column: {\n pinned: {\n cell: 'bg-white sticky z-10 overflow-hidden text-ellipsis',\n },\n },\n\n cell: {\n container: 'py-3.5 px-3 text-left text-sm font-semibold text-gray-900 group border-b',\n wrapper: 'grid gap-x-1 items-center',\n text: 'whitespace-normal break-words',\n sortIndicator: {\n container: 'ml-2 inline-flex items-center rounded-sm',\n isSorted: 'bg-gray-100 text-gray-900 group-hover:bg-gray-200',\n isNotSorted: 'text-gray-400 group-hover:text-gray-900 group-hover:bg-gray-200',\n icon: {\n container: 'w-5',\n },\n },\n },\n },\n body: {\n container: 'border',\n row: '',\n striped: 'bg-gray-50',\n column: {\n pinned: {\n cell: 'bg-white sticky z-10 overflow-hidden text-ellipsis',\n },\n },\n cell: 'whitespace-nowrap py-2.5 px-3 text-sm text-gray-500',\n sticky: 'border-b border-gray-200',\n groupedCell: 'flex gap-2 items-center',\n groupedRowIcon: {\n expand: '',\n collapse: '',\n },\n checkbox:\n 'absolute left-4 top-1/2 -mt-2 h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-500 sm:left-6',\n indicator: 'absolute inset-y-0 left-0 w-0.5 bg-primary-600',\n },\n },\n },\n foot: '',\n leftSide: 'text-sm text-gray-500',\n};\n\nconst styles = {\n base,\n\n loading: {\n container: 'flex flex-col gap-y-2 w-full pt-5',\n row: {\n container: 'flex gap-2',\n first: 'w-20 h-12 rounded-md bg-gray-100 animate-pulse',\n last: 'w-full h-12 rounded-md bg-gray-100 animate-pulse',\n },\n },\n\n empty: 'w-full flex justify-center my-2',\n};\n\nexport type TTableListStyles = DeepPartialType<typeof base>;\nexport default styles;\n","import { createColumnHelper as createNativeColumnHelper } from '@tanstack/react-table';\n\nexport const createColumnHelper = <TData>() => createNativeColumnHelper<TData>();\n","import { ChevronRightIcon, HomeIcon } from '@heroicons/react/20/solid';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport React, { FC, ReactNode, useMemo } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TBreadcrumbsNavigationStyles } from './BreadcrumbsNavigation.styles';\n\nimport { default as defaultStyles } from './BreadcrumbsNavigation.styles';\n\nexport type TProps = {\n href: string;\n pages: { name: string; href: string; isCurrent: boolean }[];\n\n type?: 'slashes' | 'chevrons' | 'panel' | 'bar';\n separator?: ReactNode;\n\n styles?: TBreadcrumbsNavigationStyles;\n};\n\nconst BreadcrumbsNavigation: FC<TProps> = (props) => {\n const { href = '/', pages, type = 'slashes', separator: customSeparator, styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(get(defaultStyles.base, key), type && get(defaultStyles[type], key), get(stylesOverrides, key)),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const separator = useMemo(() => {\n let component;\n\n switch (type) {\n case 'slashes':\n component = (\n <svg className={styles.separator} fill=\"currentColor\" viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <path d=\"M5.555 17.776l8-16 .894.448-8 16-.894-.448z\" />\n </svg>\n );\n break;\n case 'chevrons':\n component = <ChevronRightIcon className={styles.separator} aria-hidden=\"true\" />;\n break;\n case 'panel':\n component = (\n <svg\n className={styles.separator}\n viewBox=\"0 0 24 44\"\n preserveAspectRatio=\"none\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\n </svg>\n );\n break;\n case 'bar':\n component = (\n <svg\n className={styles.separator}\n viewBox=\"0 0 24 44\"\n preserveAspectRatio=\"none\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\n </svg>\n );\n break;\n }\n\n if (customSeparator) {\n component = customSeparator;\n }\n\n return component;\n }, [customSeparator, styles.separator, type]);\n\n const HomeLink = () => (\n <li className={styles.home.container}>\n <div className={styles.home.content}>\n <a href={href} className={styles.home.link}>\n <HomeIcon className={styles.home.icon} aria-hidden=\"true\" />\n <span className={styles.home.span}>Home</span>\n </a>\n </div>\n </li>\n );\n\n const PageLink = (props: { page: { name: string; href: string; isCurrent: boolean } }) => {\n const { page } = props;\n\n return (\n <li key={page.name} className={styles.page.container}>\n <div className={styles.page.content}>\n {separator}\n <a href={page.href} className={styles.page.link} aria-current={page.isCurrent ? 'page' : undefined}>\n {page.name}\n </a>\n </div>\n </li>\n );\n };\n\n return (\n <nav className={styles.container} aria-label=\"Breadcrumb\">\n <ol className={styles.list}>\n <HomeLink />\n {pages?.map((page) => <PageLink key={page.name} page={page} />)}\n </ol>\n </nav>\n );\n};\n\nexport default BreadcrumbsNavigation;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'flex',\n list: 'flex',\n separator: '',\n home: {\n container: 'flex',\n content: 'flex items-center',\n link: 'text-gray-400 hover:text-gray-500',\n icon: 'h-5 w-5 shrink-0',\n span: 'sr-only',\n },\n page: {\n container: 'flex',\n content: 'flex items-center',\n link: 'ml-4 text-sm font-medium text-gray-500 hover:text-gray-700',\n },\n};\n\nconst slashes: TBreadcrumbsNavigationStyles = {\n container: '',\n list: 'items-center space-x-4',\n separator: 'h-5 w-5 shrink-0 text-gray-400',\n home: {\n container: '',\n content: '',\n link: '',\n icon: '',\n span: '',\n },\n page: {\n container: '',\n content: '',\n link: '',\n },\n};\n\nconst chevrons: TBreadcrumbsNavigationStyles = {\n container: '',\n list: 'items-center space-x-4',\n separator: 'h-5 w-5 shrink-0 text-gray-400',\n home: {\n container: '',\n content: '',\n link: '',\n icon: '',\n span: '',\n },\n page: {\n container: '',\n content: '',\n link: '',\n },\n};\n\nconst panel: TBreadcrumbsNavigationStyles = {\n container: '',\n list: 'space-x-4 rounded-md bg-white px-6 shadow-sm',\n separator: 'h-full w-6 shrink-0 text-gray-200',\n home: {\n container: '',\n content: '',\n link: '',\n icon: '',\n span: '',\n },\n page: {\n container: '',\n content: '',\n link: '',\n },\n};\n\nconst bar: TBreadcrumbsNavigationStyles = {\n container: 'border-b border-gray-200 bg-white',\n list: 'mx-auto w-full max-w-(--breakpoint-xl) space-x-4 px-4 sm:px-6 lg:px-8',\n separator: 'h-full w-6 shrink-0 text-gray-200',\n home: {\n container: '',\n content: '',\n link: '',\n icon: '',\n span: '',\n },\n page: {\n container: '',\n content: '',\n link: '',\n },\n};\n\nconst styles = {\n base,\n\n slashes,\n chevrons,\n panel,\n bar,\n};\n\nexport type TBreadcrumbsNavigationStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { ArrowLongLeftIcon, ArrowLongRightIcon } from '@heroicons/react/20/solid';\nimport { set, get } from 'lodash';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TPagePaginationNavigationStyles } from '.';\nimport { default as defaultStyles } from './PagePaginationNavigation.styles';\n\nexport type TProps = {\n min?: number;\n max: number;\n\n styles?: TPagePaginationNavigationStyles;\n\n onChange?: (current: number) => void;\n};\n\nconst PagePaginationNavigation: React.FC<TProps> = (props) => {\n const { min = 1, max = 20, styles: stylesOverrides, onChange } = props;\n\n const [current, setCurrent] = useState(2);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const pageType = useMemo(() => {\n let result: 'first' | 'center' | 'last' | 'simple' = 'center';\n\n if (current < min + 2) {\n result = 'first';\n }\n\n if (current > max - 2) {\n result = 'last';\n }\n\n if (max <= 4) {\n result = 'simple';\n }\n\n return result;\n }, [current, min, max]);\n\n let component;\n\n switch (pageType) {\n case 'first':\n component = (\n <>\n <button\n className={toClassName(styles.button.default, current === min && styles.button.active)}\n onClick={() => setCurrent(min)}\n >\n {min}\n </button>\n <button\n className={toClassName(styles.button.default, current === min + 1 && styles.button.active)}\n onClick={() => setCurrent(min + 1)}\n >\n {min + 1}\n </button>\n <button\n className={toClassName(styles.button.default, current === min + 2 && styles.button.active)}\n onClick={() => setCurrent(min + 2)}\n >\n {min + 2}\n </button>\n <span className={styles.divider}>...</span>\n <button className={styles.button.default} onClick={() => setCurrent(max)}>\n {max}\n </button>\n </>\n );\n break;\n case 'center':\n component = (\n <>\n <button className={styles.button.default} onClick={() => setCurrent(min)}>\n {min}\n </button>\n {current - 2 !== min && <span className={styles.divider}>...</span>}\n <button className={styles.button.default} onClick={() => setCurrent(current - 1)}>\n {current - 1}\n </button>\n <button\n className={toClassName(styles.button.default, styles.button.active)}\n onClick={() => setCurrent(current)}\n >\n {current}\n </button>\n <button className={styles.button.default} onClick={() => setCurrent(current + 1)}>\n {current + 1}\n </button>\n {current + 2 !== max && <span className={styles.divider}>...</span>}\n <button className={styles.button.default} onClick={() => setCurrent(max)}>\n {max}\n </button>\n </>\n );\n break;\n case 'last':\n component = (\n <>\n <button className={styles.button.default} onClick={() => setCurrent(min)}>\n {min}\n </button>\n <span className={styles.divider}>...</span>\n <button\n className={toClassName(styles.button.default, current === max - 2 && styles.button.active)}\n onClick={() => setCurrent(max - 2)}\n >\n {max - 2}\n </button>\n <button\n className={toClassName(styles.button.default, current === max - 1 && styles.button.active)}\n onClick={() => setCurrent(max - 1)}\n >\n {max - 1}\n </button>\n <button\n className={toClassName(styles.button.default, current === max && styles.button.active)}\n onClick={() => setCurrent(max)}\n >\n {max}\n </button>\n </>\n );\n break;\n case 'simple':\n component = (\n <>\n <button\n className={toClassName(styles.button.default, current === min && styles.button.active)}\n onClick={() => setCurrent(min)}\n >\n {min}\n </button>\n {max >= min + 1 && (\n <button\n className={toClassName(styles.button.default, current === min + 1 && styles.button.active)}\n onClick={() => setCurrent(min + 1)}\n >\n {min + 1}\n </button>\n )}\n {max >= min + 2 && (\n <button\n className={toClassName(styles.button.default, current === min + 2 && styles.button.active)}\n onClick={() => setCurrent(min + 2)}\n >\n {min + 2}\n </button>\n )}\n {max >= min + 3 && (\n <button\n className={toClassName(styles.button.default, current === min + 3 && styles.button.active)}\n onClick={() => setCurrent(min + 3)}\n >\n {min + 3}\n </button>\n )}\n </>\n );\n break;\n }\n\n useEffect(() => {\n if (current) {\n onChange && onChange(current);\n }\n }, [onChange, current]);\n\n return (\n <nav className={styles.container}>\n <div className={styles.left.container}>\n <button\n className={toClassName(styles.left.button, current === min && styles.button.disabled)}\n disabled={current === min}\n onClick={() => setCurrent(current - 1)}\n >\n <ArrowLongLeftIcon className={styles.left.icon} />\n Previous\n </button>\n </div>\n <div className={styles.center.container}>{component}</div>\n <div className={styles.right.container}>\n <button\n className={toClassName(styles.right.button, current === max && styles.button.disabled)}\n disabled={current === max}\n onClick={() => setCurrent(current + 1)}\n >\n Next\n <ArrowLongRightIcon className={styles.right.icon} />\n </button>\n </div>\n </nav>\n );\n};\n\nexport default PagePaginationNavigation;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nexport type StylesType = {\n container?: string;\n left?: {\n container?: string;\n button?: string;\n icon?: string;\n };\n center?: {\n container?: string;\n };\n right?: {\n container?: string;\n button?: string;\n icon?: string;\n };\n button?: {\n default?: string;\n active?: string;\n disabled?: string;\n };\n divider?: string;\n};\n\nconst base = {\n container: 'flex items-center justify-between border-t border-gray-200 px-4 sm:px-0',\n\n left: {\n container: '-mt-px flex w-0 flex-1',\n button:\n 'inline-flex items-center border-t-2 border-transparent pt-4 pr-1 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700',\n icon: 'mr-3 h-5 w-5 text-gray-400',\n },\n center: {\n container: 'hidden md:-mt-px md:flex',\n },\n right: {\n container: '-mt-px flex w-0 flex-1 justify-end',\n button:\n 'inline-flex items-center border-t-2 border-transparent pt-4 pr-1 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700',\n icon: 'ml-3 h-5 w-5 text-gray-400',\n },\n\n button: {\n default:\n 'inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700',\n active: 'border-primary-500 text-primary-600',\n disabled: 'opacity-20 cursor-not-allowed',\n },\n divider: 'inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500',\n};\n\nconst styles = {\n base,\n};\n\nexport type TPagePaginationNavigationStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { find, get, set } from 'lodash';\nimport {\n FC,\n ReactNode,\n useState,\n Children,\n useCallback,\n ElementType,\n ChangeEventHandler,\n useEffect,\n ReactElement,\n} from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TTabNavigationStyles } from '.';\nimport { default as defaultStyles } from './TabNavigation.styles';\n\nexport type TContainerProps = {\n children: ({ active, setActive }: { active: string; setActive: any }) => ReactNode | ReactNode[];\n styles?: Pick<TTabNavigationStyles, 'container'>;\n};\n\nexport type TListProps = {\n name: string;\n children: ReactNode | ReactNode[];\n active: string;\n setActive: any;\n styles?: Pick<TTabNavigationStyles, 'list'>;\n};\n\nexport type TNavigationItemProps = {\n label: string;\n icon?: ReactNode;\n\n accessor: string;\n href?: string;\n type?: 'underline' | 'pills' | 'buttons';\n as?: ElementType;\n\n isCurrent?: boolean;\n isInitial?: boolean;\n\n onClick?: ((accessor: MouseEvent) => void) | any;\n\n styles?: Pick<TTabNavigationStyles, 'tab'>;\n\n isLoading?: boolean;\n isHidden?: boolean;\n};\n\nexport type TViewProps = {\n children: ReactNode;\n};\n\nconst Container: FC<TContainerProps> = (props) => {\n const { children, styles: stylesOverrides } = props;\n\n const [active, setActive] = useState('');\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return <div className={styles.container}>{children({ active, setActive })}</div>;\n};\n\nconst List: FC<TListProps> = (props) => {\n const { name, children, active, setActive, styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const handleChangeSelect: ChangeEventHandler<{ value: string }> = useCallback(\n (e) => {\n const key = e?.currentTarget?.value;\n\n const tab: any = Children.map(children, (child: any) => child)?.find(\n (child: any) => child.props.accessor === key,\n );\n\n if (tab?.props.href) {\n window.location.href = tab.props.href;\n } else if (tab?.props.onClick) {\n setActive && setActive(tab?.props.accessor);\n }\n },\n [children, setActive],\n );\n\n useEffect(() => {\n let tab: ReactElement<TNavigationItemProps>;\n const tabs: ReactElement<TNavigationItemProps>[] = Children.map(children, (child: any) => child);\n\n const initialTab: ReactElement<TNavigationItemProps> | undefined = find(tabs, ['props.isInitial', true]);\n\n if (initialTab !== undefined) {\n tab = initialTab;\n } else {\n tab = tabs[0];\n }\n\n setActive && setActive(tab?.props?.accessor);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleCalculateActiveAccessor = () => {\n let result = active;\n\n const currentItem = Children.map(children, (child: any) => ({\n ...child.props,\n }))?.find((tab: any) => tab?.isCurrent);\n\n if (currentItem?.href) {\n result = currentItem?.accessor;\n }\n\n return result;\n };\n\n return (\n <div className={styles.list.container}>\n <div className={styles.list.head}>\n <label htmlFor={name} className={styles.list.label}>\n Select a tab\n </label>\n <select\n id={name}\n name={name}\n value={handleCalculateActiveAccessor()}\n className={styles.list.select}\n onChange={handleChangeSelect}\n >\n {Children.map(children, (child: any) => {\n if (child.props.isHidden) return null;\n\n return (\n <option key={child?.props?.accessor} value={child.props.accessor}>\n {child.props.label}\n </option>\n )\n })}\n </select>\n </div>\n <div className={styles.list.body}>\n <nav className={styles.list.navigation}>{children}</nav>\n </div>\n </div>\n );\n};\n\nconst Item: FC<TNavigationItemProps> = (props) => {\n const {\n label,\n icon,\n as: LinkComponent = 'a',\n type = 'underline',\n href,\n isCurrent,\n onClick,\n styles: stylesOverrides,\n isLoading,\n isHidden,\n } = props;\n\n if (isHidden) return null;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n if (href && LinkComponent) {\n return (\n <LinkComponent\n href={href}\n className={toClassName(\n styles.tab.base,\n isCurrent ? styles.tab.active : styles.tab.inactive,\n isLoading && 'opacity-30 text-gray-300! cursor-default!',\n isLoading && styles.tab.inactive,\n )}\n onClick={onClick}\n >\n {icon}\n {label}\n </LinkComponent>\n );\n }\n\n return (\n <div\n className={toClassName(\n styles.tab.base,\n isCurrent ? styles.tab.active : styles.tab.inactive,\n isLoading && 'opacity-30 text-gray-300! cursor-default!',\n isLoading && styles.tab.inactive,\n )}\n onClick={!isLoading ? onClick : () => null}\n >\n {icon}\n {label}\n </div>\n );\n};\n\nconst View: FC<TViewProps> = (props) => {\n const { children } = props;\n return <>{children}</>;\n};\n\nconst TabNavigation = {\n Container,\n List,\n Item,\n View,\n};\n\nexport default TabNavigation;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst defaultStyles = {\n container: '',\n\n list: {\n container: '',\n head: 'sm:hidden',\n body: 'hidden sm:block',\n label: 'sr-only',\n select:\n 'block w-full rounded-md border border-gray-300 py-2 px-3 text-base focus:border-primary-500 focus:outline-hidden focus:ring-primary-500 sm:text-sm',\n navigation: 'border-b border-gray-200 -mb-px flex space-x-8',\n },\n\n tab: {\n base: 'cursor-pointer',\n active: '',\n inactive: '',\n },\n};\n\nconst underline = {\n tab: {\n base: 'whitespace-nowrap flex gap-2 py-4 px-1 border-b-2 font-medium text-sm cursor-pointer',\n active: 'border-primary-500 text-primary-600',\n inactive: 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300',\n },\n};\n\nconst pills = {\n tab: {\n base: 'px-3 py-2 font-medium text-sm rounded-md cursor-pointer',\n active: 'bg-gray-100 text-gray-700',\n inactive: 'text-gray-500 hover:text-gray-700',\n },\n};\n\nconst buttons = {\n tab: {\n base: 'whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm cursor-pointer',\n active: 'border-primary-500 text-primary-600',\n inactive: 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300',\n },\n};\n\nconst styles = {\n base: defaultStyles,\n\n underline,\n pills,\n buttons,\n};\n\nexport type TTabNavigationStyles = DeepPartial<typeof defaultStyles>;\nexport default styles;\n","import React, { FC, ReactNode, useState, Children, useEffect, ElementType, Dispatch, SetStateAction } from 'react';\n\nimport { toClassName } from '../../../helpers/format';\n\nimport { ContainerStylesType, NavigationStylesType } from '.';\nimport styles from './VerticalNavigation.styles';\n\nexport type TContainerProps = {\n children: ({\n active,\n setActive,\n }: {\n active: string;\n setActive: Dispatch<SetStateAction<string>>;\n }) => ReactNode | ReactNode[];\n styles?: ContainerStylesType;\n};\n\nexport type TNavigationProps = {\n children: ReactNode | ReactNode[];\n active: string;\n setActive: Dispatch<SetStateAction<string>>;\n styles?: NavigationStylesType;\n};\n\nexport type TNavigationItemProps = {\n accessor: string;\n href?: string;\n type?: string;\n children: ReactNode | ReactNode[];\n linkComponent?: ElementType;\n\n isCurrent?: boolean;\n isInitial?: boolean;\n\n onClick?: (accessor: MouseEvent) => void;\n};\n\nexport type TViewProps = {\n children: ReactNode;\n};\n\nconst Container: FC<TContainerProps> = (props) => {\n const { children, styles: stylesOverrides } = props;\n\n const [active, setActive] = useState<string>('');\n\n return <div className={stylesOverrides?.container}>{children({ active, setActive })}</div>;\n};\n\nconst List: FC<TNavigationProps> = (props) => {\n const { children, setActive, styles: stylesOverrides } = props;\n\n useEffect(() => {\n let tab;\n\n const tabs: any[] = Children.map(children, (child) => child) ?? [];\n const initialTab = tabs.find((tab) => tab?.props.isInitial);\n\n if (initialTab !== undefined) {\n tab = initialTab;\n } else {\n tab = tabs[0];\n }\n\n setActive && setActive(tab?.props.accessor);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return <nav className={toClassName(styles.list, stylesOverrides?.list)}>{children}</nav>;\n};\n\nconst Item: FC<TNavigationItemProps> = (props) => {\n const { children, href, isCurrent, linkComponent: LinkComponent = 'a', onClick } = props;\n\n return (\n <LinkComponent\n href={href}\n className={toClassName(styles.item[isCurrent ? 'active' : 'notActive'], styles.item.base)}\n onClick={onClick}\n >\n {children}\n </LinkComponent>\n );\n};\n\nconst View: FC<TViewProps> = (props) => {\n const { children } = props;\n return <>{children}</>;\n};\n\nconst VerticalNavigation = {\n Container,\n List,\n Item,\n View,\n};\n\nexport default VerticalNavigation;\n","export type StylesType = {\n items?: {\n base?: string;\n active?: string;\n notActive?: string;\n };\n};\n\nexport type ContainerStylesType = {\n container: string;\n};\n\nexport type NavigationStylesType = {\n list?: string;\n};\n\nconst styles = {\n container: '',\n list: 'space-y-1',\n item: {\n base: 'flex items-center px-3 py-2 text-sm font-medium rounded-md cursor-pointer',\n active: 'bg-gray-100 text-gray-900',\n notActive: 'text-gray-600 hover:bg-gray-50 hover:text-gray-900',\n },\n};\n\nexport default styles;\n","import { Dialog, Transition, TransitionChild } from '@headlessui/react';\nimport { set, get } from 'lodash';\nimport React, { Fragment, useState, FC, useMemo, ReactNode, useEffect, useCallback } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './ModalOverlay.styles';\n\nimport { TModalOverlayStyles } from '.';\n\nexport type TModalOverlayProps = {\n trigger?: ({ handleOpen, handleClose }: { handleOpen: () => void; handleClose: () => void }) => ReactNode;\n children: ({ handleOpen, handleClose }: { handleOpen: () => void; handleClose: () => void }) => ReactNode;\n\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n styles?: TModalOverlayStyles;\n\n dataCy?: string;\n\n onOpen?: () => void;\n onClose?: () => void;\n};\n\nconst ModalOverlay: FC<TModalOverlayProps> = (props) => {\n const { children, trigger, size = 'md', styles: stylesOverrides, dataCy, onOpen, onClose } = props;\n\n const [isOpen, setIsOpen] = useState(trigger ? false : true);\n\n const handleClose = useCallback(() => {\n setIsOpen(false);\n if (onClose) setTimeout(onClose, 180);\n }, [onClose]);\n\n const options = useMemo(\n () => ({\n handleOpen: () => setIsOpen(true),\n handleClose: handleClose,\n }),\n [handleClose],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n size && get(defaultStyles[size], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n useEffect(() => {\n if (isOpen) {\n onOpen && onOpen();\n }\n }, [isOpen, onOpen]);\n\n return (\n <>\n <Transition show={isOpen} as={Fragment}>\n <Dialog as=\"div\" className={styles.container} onClose={handleClose}>\n <TransitionChild\n as={Fragment}\n enter={styles.background.transition.enter}\n enterFrom={styles.background.transition.enterFrom}\n enterTo={styles.background.transition.enterTo}\n leave={styles.background.transition.leave}\n leaveFrom={styles.background.transition.leaveFrom}\n leaveTo={styles.background.transition.leaveTo}\n >\n <div className={styles.background.container} />\n </TransitionChild>\n <div className={styles.layout.container}>\n <div className={styles.layout.content} data-cy={dataCy}>\n <TransitionChild\n as={Fragment}\n enter={styles.panel.transition.enter}\n enterFrom={styles.panel.transition.enterFrom}\n enterTo={styles.panel.transition.enterTo}\n leave={styles.panel.transition.leave}\n leaveFrom={styles.panel.transition.leaveFrom}\n leaveTo={styles.panel.transition.leaveTo}\n >\n <Dialog.Panel className={styles.panel.container}>{children(options)}</Dialog.Panel>\n </TransitionChild>\n </div>\n </div>\n </Dialog>\n </Transition>\n {trigger && trigger(options)}\n </>\n );\n};\n\nexport default ModalOverlay;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative z-20',\n\n background: {\n container: 'fixed inset-0 bg-gray-500/75 transition-opacity',\n transition: {\n enter: 'ease-out duration-300',\n enterFrom: 'opacity-0',\n enterTo: 'opacity-100',\n leave: 'ease-in duration-200',\n leaveFrom: 'opacity-100',\n leaveTo: 'opacity-0',\n },\n },\n\n layout: {\n container: 'fixed inset-0 z-40 overflow-y-auto',\n content: 'flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0',\n },\n\n panel: {\n container: 'relative transform rounded-lg bg-white w-full shadow-xl transition-all sm:w-full text-left',\n transition: {\n enter: 'ease-out duration-300',\n enterFrom: 'opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95',\n enterTo: 'opacity-100 translate-y-0 sm:scale-100',\n leave: 'ease-in duration-200',\n leaveFrom: 'opacity-100 translate-y-0 sm:scale-100',\n leaveTo: 'opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95',\n },\n },\n};\n\nconst xs: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-xs',\n },\n};\n\nconst sm: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-sm',\n },\n};\n\nconst md: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-md',\n },\n};\n\nconst lg: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-2xl',\n },\n};\n\nconst xl: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-4xl',\n },\n};\n\nconst styles = {\n base,\n\n xs,\n sm,\n md,\n lg,\n xl,\n};\n\nexport type TModalOverlayStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Transition } from '@headlessui/react';\nimport { set, get } from 'lodash';\nimport React, { Fragment, useState, FC, useMemo, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TNotificationOverlayStyles } from '.';\nimport { default as defaultStyles } from './NotificationOverlay.styles';\n\nexport type TProps = {\n trigger?: ({ onOpen, onClose }: { onOpen: () => void; onClose: () => void }) => ReactNode;\n children: ({ onOpen, onClose }: { onOpen: () => void; onClose: () => void }) => ReactNode;\n\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n styles?: TNotificationOverlayStyles;\n};\n\nconst NotificationOverlayContainer = ({\n children,\n styles: stylesOverrides,\n}: {\n children: ReactNode;\n styles?: TNotificationOverlayStyles;\n}) => {\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div aria-live=\"assertive\" className={styles.container.outer}>\n <div className={styles.container.inner}>{children}</div>\n </div>\n );\n};\n\nconst NotificationOverlayItem: FC<TProps> = (props) => {\n const { children, trigger, size = 'md', styles: stylesOverrides } = props;\n\n const [isOpen, setIsOpen] = useState(trigger ? false : true);\n\n const options = useMemo(\n () => ({\n onOpen: () => setIsOpen(true),\n onClose: () => setIsOpen(false),\n }),\n [],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(get(defaultStyles.base, key), size && get(defaultStyles[size], key), get(stylesOverrides, key)),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <>\n <Transition\n show={isOpen}\n as={Fragment}\n enter={styles.item.panel.transition.enter}\n enterFrom={styles.item.panel.transition.enterFrom}\n enterTo={styles.item.panel.transition.enterTo}\n leave={styles.item.panel.transition.leave}\n leaveFrom={styles.item.panel.transition.leaveFrom}\n leaveTo={styles.item.panel.transition.leaveTo}\n >\n <div className={styles.item.panel.container}>{children(options)}</div>\n </Transition>\n {trigger && trigger(options)}\n </>\n );\n};\n\nconst NotificationOverlay = {\n Container: NotificationOverlayContainer,\n Item: NotificationOverlayItem,\n};\n\nexport default NotificationOverlay;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: {\n outer: 'pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6 z-30',\n inner: 'flex w-full flex-col items-center space-y-4 sm:items-end',\n },\n item: {\n container: 'relative',\n\n layout: {\n container: 'fixed inset-0 overflow-hidden',\n content: 'absolute inset-0 overflow-hidden',\n inner: 'pointer-events-none fixed inset-y-0 right-0 flex max-w-full pl-10',\n },\n\n panel: {\n container:\n 'pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black/5',\n transition: {\n enter: 'transform ease-out duration-300 transition',\n enterFrom: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-x-2',\n enterTo: 'translate-y-0 opacity-100 sm:translate-x-0',\n leave: 'transition ease-in duration-100',\n leaveFrom: 'opacity-100',\n leaveTo: 'opacity-0',\n },\n },\n },\n};\n\nconst xs: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-xs',\n },\n },\n};\n\nconst sm: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-sm',\n },\n },\n};\n\nconst md: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-md',\n },\n },\n};\n\nconst lg: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-2xl',\n },\n },\n};\n\nconst xl: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-4xl',\n },\n },\n};\n\nconst styles = {\n base,\n\n xs,\n sm,\n md,\n lg,\n xl,\n};\n\nexport type TNotificationOverlayStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Dialog, Transition } from '@headlessui/react';\nimport { get, set } from 'lodash';\nimport React, { Fragment, useState, FC, useMemo, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TSlideOverOverlayStyles } from '.';\nimport { default as defaultStyles } from './SlideOverOverlay.styles';\n\nexport type TProps = {\n trigger?: ({ handleOpen, handleClose }: { handleOpen: () => void; handleClose: () => void }) => ReactNode;\n children: ({ handleOpen, handleClose }: { handleOpen: () => void; handleClose: () => void }) => ReactNode;\n\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n styles?: TSlideOverOverlayStyles;\n};\n\nconst SlideOverOverlay: FC<TProps> = (props) => {\n const { children, trigger, size = 'md', styles: stylesOverrides } = props;\n\n const [isOpen, setIsOpen] = useState(trigger ? false : true);\n\n const options = useMemo(\n () => ({\n handleOpen: () => setIsOpen(true),\n handleClose: () => setIsOpen(false),\n }),\n [],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(get(defaultStyles.base, key), size && get(defaultStyles[size], key), get(stylesOverrides, key)),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <>\n <Transition.Root show={isOpen} as={Fragment}>\n <Dialog as=\"div\" className={styles.container} onClose={setIsOpen}>\n <Transition.Child\n as={Fragment}\n enter={styles.background.transition.enter}\n enterFrom={styles.background.transition.enterFrom}\n enterTo={styles.background.transition.enterTo}\n leave={styles.background.transition.leave}\n leaveFrom={styles.background.transition.leaveFrom}\n leaveTo={styles.background.transition.leaveTo}\n >\n <div className={styles.background.container} />\n </Transition.Child>\n\n <div className={styles.layout.container}>\n <div className={styles.layout.content}>\n <div className={styles.layout.inner}>\n <Transition.Child\n as={Fragment}\n enter={styles.panel.transition.enter}\n enterFrom={styles.panel.transition.enterFrom}\n enterTo={styles.panel.transition.enterTo}\n leave={styles.panel.transition.leave}\n leaveFrom={styles.panel.transition.leaveFrom}\n leaveTo={styles.panel.transition.leaveTo}\n >\n <Dialog.Panel className={styles.panel.container}>{children(options)}</Dialog.Panel>\n </Transition.Child>\n </div>\n </div>\n </div>\n </Dialog>\n </Transition.Root>\n {trigger && trigger(options)}\n </>\n );\n};\n\nexport default SlideOverOverlay;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative z-20',\n\n background: {\n container: 'fixed inset-0 bg-gray-500/75 transition-opacity',\n transition: {\n enter: 'ease-in-out duration-500',\n enterFrom: 'opacity-0',\n enterTo: 'opacity-100',\n leave: 'ease-in-out duration-500',\n leaveFrom: 'opacity-100',\n leaveTo: 'opacity-0',\n },\n },\n\n layout: {\n container: 'fixed inset-0 overflow-hidden',\n content: 'absolute inset-0 overflow-hidden',\n inner: 'pointer-events-none fixed inset-y-0 right-0 flex max-w-full pl-10',\n },\n\n panel: {\n container: 'pointer-events-auto w-screen bg-white',\n transition: {\n enter: 'transform transition ease-in-out duration-500 sm:duration-700',\n enterFrom: 'translate-x-full',\n enterTo: 'translate-x-0',\n leave: 'transform transition ease-in-out duration-500 sm:duration-700',\n leaveFrom: 'translate-x-0',\n leaveTo: 'translate-x-full',\n },\n },\n};\n\nconst xs: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-xs',\n },\n};\n\nconst sm: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-sm',\n },\n};\n\nconst md: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-md',\n },\n};\n\nconst lg: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-2xl',\n },\n};\n\nconst xl: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-4xl',\n },\n};\n\nconst styles = {\n base,\n\n xs,\n sm,\n md,\n lg,\n xl,\n};\n\nexport type TSlideOverOverlayStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Popover, PopoverButton, PopoverPanel } from '@headlessui/react';\nimport { ChevronDownIcon } from '@heroicons/react/24/outline';\nimport { Column, ColumnOrderState, Table } from '@tanstack/react-table';\nimport { set, get } from 'lodash';\nimport React, { Dispatch, FC, ReactNode, SetStateAction, useCallback } from 'react';\n\nimport IconElement from '../../../components/Element/Icon/IconElement';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { removeTableState } from '../../../helpers/localStorage';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles, TTableColumnOptionsStyles } from './TableColumnOptionsCustom.styles';\n\ntype TProps = {\n table: Table<any>;\n setColumnOrder: Dispatch<SetStateAction<ColumnOrderState>>;\n trigger: ReactNode;\n styles?: TTableColumnOptionsStyles;\n resetConfig?: {\n tableId: string;\n label?: string;\n onReset?: () => void;\n };\n};\n\nconst TableColumnOptionsCustom: FC<TProps> = (props) => {\n const { table, trigger, setColumnOrder, styles: stylesOverrides, resetConfig } = props;\n\n const handleUpdateColumnOrder = useCallback(\n (table: any, column: { id: string }, location: number, setColumnOrder: any) => {\n const ids: string[] = table.getAllLeafColumns()?.map((column: any) => column.id);\n\n const currentIndexOfId = ids.findIndex((id) => id === column.id);\n\n // Remove id from array.\n ids.splice(currentIndexOfId, 1);\n // Re-insert id at correct location in array.\n ids.splice(location, 0, column.id);\n\n setColumnOrder(ids);\n },\n [],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles);\n const keys = calculateNestedKeys(defaultStyles);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <Popover>\n <PopoverButton as=\"div\">{trigger}</PopoverButton>\n <PopoverPanel className={styles.controls.content}>\n {resetConfig && (\n <div\n className={styles.controls.dropdown.reset}\n onClick={() => {\n removeTableState(resetConfig.tableId);\n table.resetColumnVisibility();\n table.resetColumnOrder();\n resetConfig.onReset && resetConfig.onReset();\n }}\n >\n <IconElement accessor=\"rotate-left\" />\n <p>{resetConfig.label ?? 'Reset'}</p>\n </div>\n )}\n {table.getAllLeafColumns().map((column: Column<any, any>, index: number) => {\n const isAccessorColumn = !!column?.accessorFn;\n\n return (\n <div\n key={column.id}\n className={toClassName(styles.controls.dropdown.container, !isAccessorColumn && 'hidden')}\n >\n <input\n className={styles.controls.dropdown.input}\n type=\"checkbox\"\n checked={column.getIsVisible()}\n onChange={column.getToggleVisibilityHandler()}\n />\n <label className={styles.controls.dropdown.label}>{column.columnDef.header as string}</label>\n <div className={styles.controls.dropdown.actions}>\n <ChevronDownIcon\n className={styles.controls.dropdown.upIcon}\n onClick={() => handleUpdateColumnOrder(table, column, index - 1, setColumnOrder)}\n />\n <ChevronDownIcon\n className={styles.controls.dropdown.downIcon}\n onClick={() => handleUpdateColumnOrder(table, column, index + 1, setColumnOrder)}\n />\n </div>\n </div>\n );\n })}\n </PopoverPanel>\n </Popover>\n );\n};\n\nexport default TableColumnOptionsCustom;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst styles = {\n controls: {\n container: 'flex-row justify-between z-10 relative mb-4 gap-2 hidden',\n content: 'absolute rounded-md z-20 bg-white w-fit -translate-x-1/2 my-2 flex flex-col border-[1px]',\n head: '',\n body: 'flex flex-row justify-end gap-2',\n dropdown: {\n reset: 'flex px-4 py-2 text-sm cursor-pointer hover:bg-red-100 bg-red-50 items-center flex-row gap-3',\n container: 'px-4 py-2 text-sm flex flex-row items-center font-medium group',\n input: 'mr-3 cursor-pointer',\n label: 'mr-3',\n actions: 'w-10 grid text-white grid-cols-2 gap-2 group-hover:grid group-hover:text-gray-400',\n upIcon: 'w-5 h-5 -scale-y-100 hover:text-black hover:bg-gray-200 rounded-md cursor-pointer',\n downIcon: 'w-5 h-5 hover:text-black hover:bg-gray-200 rounded-md cursor-pointer',\n },\n },\n\n label: 'hidden md:block',\n icon: 'md:mr-3 inline-flex items-center',\n};\n\nexport default styles;\n\nexport type TTableColumnOptionsStyles = DeepPartial<typeof styles>;\n","export { default } from './TableExportCustom';\n","import { Table } from '@tanstack/react-table';\nimport React, { ReactNode } from 'react';\n\nimport { useExcel } from '../../../hooks/useExcel';\n\ntype TProps<TData> = {\n table: Table<TData>;\n fileName: string;\n children: ({ handleExport }: { handleExport: (exportData?: TData[]) => void }) => ReactNode;\n};\n\nconst TableExcelExportCustom = <TData extends object>(props: TProps<TData>) => {\n const { table, fileName, children } = props;\n\n const { generate, write } = useExcel<TData>();\n\n const handleExport = (exportData?: TData[]) => {\n const sheets = generate(table, exportData);\n write(sheets, { fileName });\n };\n\n return <div>{children({ handleExport })}</div>;\n};\n\nexport default TableExcelExportCustom;\n","import { DateTime } from 'luxon';\nimport { isNil } from 'lodash';\nimport { defaultLocale } from '../hooks/useExcelMapper';\n\nexport type TDefaultDateFormatOptions = {\n /**\n * Luxon-compatible format string.\n * \n * @default \"dd LLL yyyy\"\n * @example \"yyyy-LL-dd\" // => 2025-01-06\n */\n format?: string;\n /**\n * BCP-47 or ISO language code.\n *\n * @default \"nl\"\n * @example \"en\" // => English\n * @example \"fr\" // => French\n */\n locale?: string;\n};\n\nexport type TDateFormatFunction = (\n date: string | undefined,\n options?: TDefaultDateFormatOptions\n) => string;\n\nexport type TTimeFormatFunction = (\n date: string | undefined,\n options?: TDefaultDateFormatOptions\n) => string;\n\n/**\n * Checks whether a string is a valid ISO date/time string using Luxon.\n *\n * @param date - The date string to validate, e.g. \"2025-01-06T13:20:00\".\n * @returns `true` if `date` is a valid ISO string, otherwise `false`.\n */\nexport const isValidDate = (date?: string): boolean => {\n if (isNil(date)) return false;\n const dt = DateTime.fromISO(date);\n return dt.isValid;\n};\n\n/**\n * Formats an ISO date string according to the specified format and locale.\n *\n * @param date - A string containing a date in ISO 8601 format (e.g. \"2025-01-06\").\n * @param options - An optional object specifying date format and locale.\n * @returns A formatted date string or an empty string if invalid.\n *\n * @example\n * toDateString(\"2025-01-06\"); // => \"06 Jan 2025\" (default: 'dd LLL yyyy', locale 'nl')\n */\nexport const toDateString: TDateFormatFunction = (date, options) => {\n const format = options?.format ?? 'dd LLL yyyy';\n const locale = options?.locale ?? defaultLocale;\n\n if (!isValidDate(date)) return '';\n return DateTime.fromISO(date!).setLocale(locale).toFormat(format);\n};\n\n/**\n * Formats an ISO date/time string as a time, e.g. \"HH.mm'u'\".\n *\n * @param date - A string containing a date/time in ISO 8601 format (e.g. \"2025-01-06T13:20:00\").\n * @param options - An optional object specifying time format and locale.\n * @returns A formatted time string or an empty string if invalid.\n *\n * @example\n * toTimeString(\"2025-01-06T13:20:00\"); // => \"13.20'u'\"\n */\nexport const toTimeString: TTimeFormatFunction = (date, options) => {\n const format = options?.format ?? \"HH.mm'u'\";\n const locale = options?.locale ?? defaultLocale;\n\n if (!isValidDate(date)) return '';\n return DateTime.fromISO(date!).setLocale(locale).toFormat(format);\n};\n\n/**\n * Formats an ISO date string according to the specified format and locale.\n *\n * @param date - A string containing a date in ISO 8601 format (e.g. \"2025-01-06\").\n * @param options - An optional object specifying date format and locale.\n * @returns A formatted date string or an empty string if invalid.\n *\n * @example\n * toDateTimeString(\"2025-01-06T13:20:00\");\n */\nexport const toDateTimeString: TTimeFormatFunction = (date, options) => toDateString(date, { ...options, format: 'dd LLL yyyy, HH:mm' });\n\n/**\n * Calculates the absolute difference, in whole days, between the given date and the current date/time.\n *\n * @param date - A string containing a date/time in ISO 8601 format.\n * @returns The number of days difference if valid, otherwise `undefined`.\n *\n * @example\n * toDaysDifference(\"2025-01-06\"); // => 365 (example)\n */\nexport const toDaysDifference = (date?: string): number | undefined => {\n if (!isValidDate(date)) return undefined;\n const diff = Math.abs(DateTime.fromISO(date!).diffNow('days').as('days'));\n return Math.round(diff);\n};\n\n/**\n * Formats a date string to \"yyyy-MM-dd\", often used for `<input type=\"date\" />` values.\n *\n * @param date - A string containing a date in ISO 8601 format.\n * @returns A string in \"yyyy-MM-dd\" format or an empty string if invalid.\n *\n * @example\n * toDateValue(\"2025-01-06\"); // => \"2025-01-06\"\n */\nexport const toDateValue = (date?: string): string => {\n if (!isValidDate(date)) return '';\n return DateTime.fromISO(date!).toFormat('yyyy-LL-dd');\n};\n\n/**\n * Creates a new `Date` object in UTC, based on a \"yyyy-MM-dd\" date and \"HH:mm\" time.\n *\n * @param date - A date string in \"yyyy-MM-dd\" format.\n * @param time - A time string in \"HH:mm\" format.\n * @returns A `Date` object in UTC, or the current date if inputs are missing.\n *\n * @example\n * toUTCDate(\"2025-01-06\", \"13:20\"); \n * // => new Date(Date.UTC(2025, 0, 6, 13, 20))\n */\nexport const toUTCDate = (date?: string, time?: string): Date => {\n if (!date || !time) return new Date();\n const [year, month, day] = date.split('-').map(Number);\n const [hours, minutes] = time.split(':').map(Number);\n return new Date(Date.UTC(year, month - 1, day, hours, minutes));\n};\n\nexport const toTimeValue = toTimeString;\n\n/**\n * Returns the \"latest\" date (lexicographically) from an array of date strings or undefined.\n *\n * @param dates - An array of ISO date strings or undefined (e.g. [\"2025-01-06\", undefined, \"2024-12-31\"]).\n * @returns The largest date string or an empty string if none provided or none valid.\n *\n * @example\n * latestDateString([\"2025-01-06\", undefined, \"2025-01-07\"]); // => \"2025-01-07\"\n */\nexport const latestDateString = (dates: Array<string | undefined> = []): string => {\n // Filter out any undefined or falsy values\n const validDates = dates.filter(Boolean) as string[];\n\n if (!validDates.length) return '';\n\n return validDates.reduce((latest, date) => (latest > date ? latest : date));\n};\n","import { isEmpty, map } from 'lodash';\nimport { ReactNode, useMemo } from 'react';\n\nimport { toDateString } from '../helpers/date';\n\nexport const defaultLocale = 'nl';\n\nexport type TStringCell = {\n value: string;\n type: string;\n};\n\ntype TNumberCell = {\n value: number;\n type: string;\n};\n\n/**\n * A function that accepts a translation key and optional parameters, returning the translated string.\n *\n * @param key - The translation key.\n * @param options - Optional parameters for the translation function.\n * @returns The translated string.\n */\ntype TranslationFunction = (key: string, options?: Record<string, any>) => string;\n\ntype TReturn = {\n /**\n * Creates a cell of type \"string\" with the given value or the placeholder if the value is null or undefined.\n *\n * @param cell - The string to place in the cell.\n * @returns The cell object containing a string value.\n */\n toStringCell: (cell: string) => TStringCell;\n\n /**\n * Creates a cell of type \"string\" by converting a date string into a localized date format.\n *\n * @param cell - The date string to convert.\n * @returns The cell object containing the formatted date string.\n */\n toDateStringCell: (cell: string) => TStringCell;\n\n /**\n * Creates a function that maps an enum value (string) to its translated label.\n *\n * @param enumName - The name of the enum set in the translation files.\n * @returns A function that takes an enum value and returns a cell object containing the translated string.\n */\n toEnumCell: (enumName: string) => (cell: string) => TStringCell;\n\n /**\n * Creates a cell of type \"string\" by joining an array of strings with commas.\n *\n * @param cell - The array of strings to join.\n * @returns The cell object containing the joined string.\n */\n toStringArrayCell: (cell: string[]) => TStringCell;\n\n /**\n * Creates a cell of type \"string\" from an option object, using either the \"export\" property or the \"label\" as a fallback.\n *\n * @param cell - The option object to process.\n * @returns The cell object containing the string representation of the option.\n */\n toOptionCell: (cell: { label: ReactNode; value: string; export?: string }) => TStringCell;\n\n /**\n * Creates a cell of type \"string\" by joining the labels of an array of option objects with commas.\n *\n * @param cell - The array of option objects.\n * @returns The cell object containing the joined labels string.\n */\n toOptionsCell: (\n cell: {\n label: string;\n value: string;\n }[],\n ) => TStringCell;\n\n /**\n * Creates a cell of type \"number\" from a numeric value or a placeholder if the value is null or undefined.\n *\n * @param cell - The numeric value for the cell.\n * @returns The cell object containing the numeric value.\n */\n toNumberCell: (cell: number) => TNumberCell;\n\n /**\n * Creates a cell of type \"string\" from a boolean value using translated labels for true/false.\n *\n * @param cell - The boolean value for the cell.\n * @returns The cell object containing the translated string for true or false.\n */\n toBooleanCell: (cell: boolean) => TStringCell;\n};\n\n/**\n * Custom hook that returns an object of mapper functions for converting various data types into Excel cell objects.\n *\n * @param t - The translation function.\n * @param placeholder - An optional placeholder string used when a value is null or undefined.\n * @returns An object containing mapper functions for various data types.\n */\nconst useExcelMapper: (t: TranslationFunction, placeholder?: string) => TReturn = (t, placeholder = ''): TReturn =>\n useMemo(() => {\n const toStringCell = (cell: string) => ({\n value: cell ?? placeholder,\n type: 'string',\n });\n\n const toDateStringCell = (cell: string, lang?: string) => ({\n value: toDateString(cell, { locale: lang ?? defaultLocale }) ?? '',\n type: 'string',\n });\n\n const toEnumCell = (enumName: string) => (cell: string) => ({\n value: cell ? t(`enum.${enumName}.${cell}`) : placeholder,\n type: 'string',\n });\n\n const toStringArrayCell = (cell: string[]) => ({\n value: !isEmpty(cell) ? cell.join(', ') : placeholder,\n type: 'string',\n });\n\n const toOptionCell = (cell: { label: ReactNode; value: string; export?: string }) => ({\n value: cell.export ?? (cell.label as string) ?? placeholder,\n type: 'string',\n });\n\n const toOptionsCell = (cell: { label: string; value: string }[]) => ({\n value: !isEmpty(cell) ? map(cell, 'label').join(', ') : placeholder,\n type: 'string',\n });\n\n const toNumberCell = (cell: number) => ({\n value: cell ?? placeholder,\n type: 'number',\n });\n\n const toBooleanCell = (cell: boolean) => ({\n value: cell ? t('label.boolean.true') : t('label.boolean.false'),\n type: 'string',\n });\n\n return {\n toStringCell,\n toDateStringCell,\n toEnumCell,\n toStringArrayCell,\n toOptionCell,\n toOptionsCell,\n toNumberCell,\n toBooleanCell,\n };\n }, []);\n\nexport default useExcelMapper;\n","import { DateType } from '@ballistix.digital/react-tailwindcss-datepicker';\nimport React, { FC, useCallback, useMemo } from 'react';\n\nimport DateRangeMenuForm, { TDateRangeMenuFormProps } from '../DateRangeMenu';\n\nexport type TDateMenuFormProps = Omit<TDateRangeMenuFormProps, 'value' | 'isRanged' | 'onChange'> & {\n value: DateType;\n onChange?: (value: DateType) => void;\n};\n\nconst DateMenuForm: FC<TDateMenuFormProps> = (props) => {\n const { onChange, value: defaultValue } = props;\n\n const handleChange = useCallback(\n (value: { startDate: DateType; endDate: DateType }) => {\n onChange && onChange(value.startDate);\n },\n [onChange],\n );\n\n const value = useMemo(\n () => (defaultValue ? { startDate: defaultValue, endDate: defaultValue } : { startDate: null, endDate: null }),\n [defaultValue],\n );\n\n return <DateRangeMenuForm {...props} onChange={handleChange} isRanged={false} value={value} />;\n};\n\nexport default DateMenuForm;\n","/*\nhttps://github.com/onesine/react-tailwindcss-datepicker\n*/\n\nexport type { TDateRangeMenuFormStyles as TDateMenuFormStyles } from './DateRangeMenuForm.styles';\n\nexport type { TDateRangeMenuFormProps } from './DateRangeMenuForm';\nexport type { TDateRangeMenuFormStyles } from './DateRangeMenuForm.styles';\n\nexport { default as styles } from './DateRangeMenuForm.styles';\nexport { default } from './DateRangeMenuForm';\n","import { TInputFooterStyles } from '../../../components/Custom/InputFooter';\nimport { TInputHeaderStyles } from '../../../components/Custom/InputHeader';\nimport { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n inputWrapper: '',\n input: 'w-full inline-flex',\n};\n\nconst leading: TDateRangeMenuFormStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TDateRangeMenuFormStyles = {};\n\nconst normal: TDateRangeMenuFormStyles = {\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n};\n\nconst inset: TDateRangeMenuFormStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n};\n\nconst overlapping: TDateRangeMenuFormStyles = {\n container: 'relative',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n};\n\nconst pill: TDateRangeMenuFormStyles = {\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n};\n\nconst floored: TDateRangeMenuFormStyles = {\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n};\n\nconst invalid: TDateRangeMenuFormStyles = {\n container: 'ring-red-500!',\n input:\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 pr-10',\n};\n\nconst disabled: TDateRangeMenuFormStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TDateRangeMenuFormStyles = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import Datepicker, { DateType } from '@ballistix.digital/react-tailwindcss-datepicker';\nimport { concat, get, intersection, set } from 'lodash';\nimport React, { FC, MouseEventHandler, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\n\nimport InputFooter, { TInputFooterSharedProps, footerStyles } from '../../../components/Custom/InputFooter';\nimport InputHeader, { TInputHeaderSharedProps, headerStyles } from '../../../components/Custom/InputHeader';\nimport IconElement from '../../../components/Element/Icon/IconElement';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './DateRangeMenuForm.styles';\n\nimport { TDateRangeMenuFormStyles } from '.';\n\nexport type TDateRangeMenuFormProps = TInputHeaderSharedProps &\n TInputFooterSharedProps & {\n name: string;\n type?: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n size?: 'compact' | 'expanded';\n\n label?: ReactNode;\n i18n?: string;\n description?: ReactNode;\n hint?: ReactNode;\n placeholder?: string;\n separator?: string;\n startFrom?: DateType;\n displayFormat?: string;\n direction?: 'up' | 'down';\n minDate?: DateType;\n maxDate?: DateType;\n startWeekOn?: 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat';\n icon?: (isOpen: boolean) => ReactNode;\n\n required?: ({ isRequired }: { isRequired: boolean }) => ReactNode;\n\n value: { startDate: DateType; endDate: DateType };\n error?: string;\n\n isRequired?: boolean;\n isTouched?: boolean;\n isDisabled?: boolean;\n isSolo?: boolean;\n\n isRanged?: boolean;\n\n //onChange is triggered though user input, except the clear action button.\n onChange?: (value: { startDate: DateType; endDate: DateType }) => void;\n //onClear is a function that is triggered when component value is changed to null though a clear action button.\n //this does not trigger onChange so further form actions are necessary.\n onClear?: (name: string) => void;\n\n onBlur?: () => void;\n\n onClick?: MouseEventHandler<HTMLDivElement>;\n\n styles?: TDateRangeMenuFormStyles;\n };\n\nconst DateRangeMenu: FC<TDateRangeMenuFormProps> = (props) => {\n const {\n name = 'date-menu-form',\n\n size = 'compact',\n\n label,\n i18n = 'en',\n description,\n hint,\n placeholder,\n separator,\n startFrom,\n displayFormat = 'DD.MM.YYYY',\n direction = 'down',\n minDate,\n maxDate,\n startWeekOn = 'mon',\n icon = (isEmpty) =>\n isEmpty ? <IconElement accessor=\"calendar\" /> : <IconElement accessor=\"xmark\" className=\"text-black\" />,\n\n required,\n\n value: defaultValue,\n error,\n\n type = 'normal',\n\n isRequired = false,\n isTouched = false,\n isDisabled,\n isSolo = false,\n\n isRanged = true,\n\n onChange,\n onClear,\n onBlur,\n onClick,\n\n styles: stylesOverrides,\n } = props;\n\n const isValid = error === undefined;\n\n const [state, setState] = useState<any>(\n defaultValue ?? {\n startDate: null,\n endDate: null,\n },\n );\n\n const $datepickerInputRef = useRef<HTMLDivElement>(null);\n\n const handleValueChange = useCallback(\n (newValue: any) => {\n setState(newValue);\n if (newValue.startDate === null && newValue.endDate === null) {\n onClear && onClear(name);\n } else {\n onChange && onChange(newValue);\n }\n setTimeout(() => {\n onBlur && onBlur();\n }, 50);\n },\n [name, onBlur, onChange, onClear],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = concat(\n calculateNestedKeys(defaultStyles.base),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const inputDataCy = `form-input-${name}`;\n\n // listen to value changes.\n useEffect(() => {\n setState(defaultValue ?? { startDate: null, endDate: null });\n }, [defaultValue]);\n\n useEffect(() => {\n const input = $datepickerInputRef.current?.querySelector('input');\n const allowedCharacters = '0123456789';\n const separators = `./-${separator}`;\n\n const callback = (event: KeyboardEvent) => {\n if (\n input?.value === null ||\n input?.value === undefined ||\n intersection(input.value.split(''), separators.split('')).length > 0 ||\n isRanged\n ) {\n return;\n }\n\n if (allowedCharacters.includes(event.key) && input?.value.length >= 7) {\n const newValue = input.value + event.key;\n\n const day = newValue.substring(0, 2);\n const month = newValue.substring(2, 4);\n const year = newValue.substring(4, 8);\n\n const newDate = new Date(`${year}-${month}-${day}`);\n\n if (isNaN(newDate.getTime())) return;\n\n input.blur();\n handleValueChange({\n startDate: `${year}-${month}-${day}`,\n endDate: `${year}-${month}-${day}`,\n });\n setTimeout(() => input.focus(), 100);\n }\n };\n\n if (input) {\n input.addEventListener('keydown', callback);\n }\n\n return () => removeEventListener('keydown', callback);\n }, [handleValueChange, isRanged, separator]);\n\n return (\n <div className={styles.container}>\n <InputHeader\n name={name}\n type={type}\n label={label}\n description={description}\n required={required}\n isRequired={isRequired}\n styles={styles}\n />\n <div\n className={styles.inputWrapper}\n data-cy={inputDataCy}\n ref={$datepickerInputRef}\n onClick={onClick as MouseEventHandler<HTMLDivElement>}\n >\n <Datepicker\n inputName={name}\n inputId={name}\n i18n={i18n}\n useRange={size === 'expanded'}\n placeholder={placeholder}\n asSingle={!isRanged}\n separator={separator}\n startFrom={startFrom}\n displayFormat={displayFormat}\n disabled={isDisabled}\n popoverDirection={direction}\n minDate={minDate}\n maxDate={maxDate}\n toggleIcon={icon}\n //\n value={state}\n //\n onChange={handleValueChange}\n //\n inputClassName={styles.input}\n startWeekOn={startWeekOn}\n />\n <InputFooter isHidden={isSolo} name={name} error={error} isTouched={isTouched} hint={hint} styles={styles} />\n </div>\n </div>\n );\n};\n\nexport default DateRangeMenu;\n","import { FieldArray, FormikProps, FormikProvider, FormikValues } from 'formik';\nimport { get, set } from 'lodash';\nimport React, { FC } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TCheckboxInputGroupFormStyles } from '.';\nimport { default as defaultStyles } from './CheckboxInputGroupForm.styles';\n\nexport type TCheckboxInputGroupFormProps = {\n name: string;\n form: FormikProps<FormikValues>;\n\n options: {\n title: string;\n description?: string;\n value: string;\n }[];\n\n values: string[];\n\n isDisabled?: boolean;\n\n onChange?: (value: string) => void;\n\n styles?: TCheckboxInputGroupFormStyles;\n};\n\nconst CheckboxInputGroupForm: FC<TCheckboxInputGroupFormProps> = (props) => {\n const {\n name,\n form,\n\n options,\n\n values,\n\n isDisabled,\n\n styles: stylesOverrides,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n // isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <FormikProvider value={form}>\n <div>\n <legend className={styles.sr}>{name}</legend>\n <div className={styles.list}>\n <FieldArray\n name={name}\n render={({ remove, push }: any) => (\n <>\n {options?.map((option) => (\n <div key={option.value} className={styles.item.container}>\n <div className={styles.item.head}>\n <input\n id={option.value}\n name={option.value}\n data-cy={`form-${name}-checkbox-${option.value}`}\n aria-describedby={`${option.value}-description`}\n type=\"checkbox\"\n checked={values?.includes(option.value)}\n className={styles.item.input}\n disabled={isDisabled}\n onChange={(value) => {\n const isChecked = value.currentTarget.checked;\n\n if (isChecked) {\n push(option.value);\n return;\n }\n\n const findIndex = values.findIndex((value) => value === option.value);\n remove(findIndex);\n }}\n />\n </div>\n <div className={styles.item.body}>\n <label htmlFor=\"comments\" className={styles.item.label}>\n {option.title}\n </label>\n {option.description && (\n <p id=\"comments-description\" className={styles.item.description}>\n {option.description}\n </p>\n )}\n </div>\n </div>\n ))}\n </>\n )}\n />\n </div>\n </div>\n </FormikProvider>\n );\n};\n\nexport default CheckboxInputGroupForm;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n\n sr: 'sr-only',\n\n list: 'space-y-5',\n item: {\n container: 'relative flex items-start',\n\n head: 'flex h-6 items-center',\n body: 'ml-3 text-sm leading-6',\n\n input: 'h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-600',\n label: 'font-medium text-gray-900',\n description: 'text-gray-500',\n },\n};\n\nconst disabled: TCheckboxInputGroupFormStyles = {\n item: {\n input:\n 'block rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n },\n};\n\nconst styles = {\n base,\n\n disabled,\n};\n\nexport type TCheckboxInputGroupFormStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TCheckboxInputFormStyles } from '.';\nimport { default as defaultStyles } from './CheckboxInputForm.styles';\n\nexport type TCheckboxInputFormProps = {\n name: string;\n\n title?: string;\n description?: string;\n\n isDisabled?: boolean;\n\n styles?: TCheckboxInputFormStyles;\n} & (\n | {\n value: boolean;\n onChange: (value: boolean) => void;\n checkedElement?: ReactNode;\n uncheckedElement?: ReactNode;\n indeterminableElement?: never;\n isIndeterminable?: false;\n }\n | {\n value: boolean | null;\n onChange: (value: boolean | null) => void;\n checkedElement?: ReactNode;\n uncheckedElement?: ReactNode;\n indeterminableElement?: ReactNode;\n isIndeterminable?: true;\n }\n );\n\nconst CheckboxInputForm: FC<TCheckboxInputFormProps> = (props) => {\n const {\n name,\n\n value,\n\n title,\n description,\n\n isIndeterminable,\n isDisabled,\n\n checkedElement,\n uncheckedElement,\n indeterminableElement,\n\n onChange,\n\n styles: stylesOverrides,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n isDisabled && get(defaultStyles.disabled, key),\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n const $inputRef = useRef<HTMLInputElement>(null);\n\n const handleToggle = useCallback(() => {\n if (!isIndeterminable) {\n onChange(!value);\n } else {\n switch (value) {\n case false:\n onChange(null);\n break;\n case true:\n onChange(false);\n break;\n case null:\n onChange(true);\n break;\n }\n }\n }, [isIndeterminable, value, onChange]);\n\n useEffect(() => {\n if (isIndeterminable && $inputRef.current) {\n $inputRef.current.indeterminate = value === null;\n }\n }, [isIndeterminable, value]);\n\n const isInputReplaced = useMemo(\n () => checkedElement && uncheckedElement && (!isIndeterminable || indeterminableElement),\n [checkedElement, uncheckedElement, isIndeterminable, indeterminableElement],\n );\n\n const handleClick = useCallback(() => {\n $inputRef.current?.click();\n }, [$inputRef]);\n\n return (\n <div className={styles.container}>\n <div className={styles.head}>\n <input\n ref={$inputRef}\n name={name}\n data-cy={`form-${name}-checkbox`}\n aria-describedby={`${name}-description`}\n type=\"checkbox\"\n checked={!!value}\n className={toClassName(styles.input, isInputReplaced ? styles.inputHidden : '')}\n disabled={isDisabled}\n onChange={handleToggle}\n />\n <div className={styles.replacement} onClick={handleClick}>\n {isInputReplaced && value === true && checkedElement}\n {isInputReplaced && value === false && uncheckedElement}\n {isInputReplaced && value === null && indeterminableElement}\n </div>\n </div>\n <div className={styles.body}>\n <label htmlFor={name} className={styles.label}>\n {title}\n </label>\n {description && (\n <p id={`${name}-description`} className={styles.description}>\n {description}\n </p>\n )}\n </div>\n </div>\n );\n};\n\nexport default CheckboxInputForm;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative flex items-start',\n\n head: 'flex h-6 items-center select-none',\n body: 'ml-3 text-sm leading-6',\n\n input: 'h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-600',\n inputHidden: 'hidden',\n replacement: 'flex',\n label: 'font-medium text-gray-900',\n description: 'text-gray-500',\n};\n\nconst disabled: TCheckboxInputFormStyles = {\n input:\n 'block rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-500 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n disabled,\n};\n\nexport type TCheckboxInputFormStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { Switch as Component } from '@headlessui/react';\nimport { concat, forEach, get, set } from 'lodash';\n\nimport InputFooter, { TInputFooterSharedProps, footerStyles } from '../../../components/Custom/InputFooter';\nimport InputHeader, { TInputHeaderSharedProps, headerStyles } from '../../../components/Custom/InputHeader';\nimport IconElement from '../../../components/Element/Icon';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './Switch.styles';\n\nimport { TSwitchStylesForm } from '.';\n\nexport type TSwitchFormProps = TInputHeaderSharedProps &\n TInputFooterSharedProps & {\n name: string;\n isDisabled?: boolean;\n value: boolean;\n onChange: (value: boolean) => void;\n styles?: TSwitchStylesForm;\n //\n size?: 'sm' | 'md';\n iconAccessorChecked?: IconName;\n iconAccessorUnchecked?: IconName;\n };\n\nconst Switch = (props: TSwitchFormProps) => {\n const {\n name,\n label,\n description,\n hint,\n isDisabled,\n isRequired = false,\n required,\n isTouched = false,\n error,\n value,\n styles: stylesOverrides,\n size = 'md',\n isOptionalLabelHidden = false,\n onChange,\n iconAccessorChecked,\n iconAccessorUnchecked,\n } = props;\n\n const inputDataCy = `form-input-${name}`;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = concat(\n calculateNestedKeys(defaultStyles.base),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n\n forEach(keys, (key) => {\n set(\n result,\n key,\n toClassName(get(defaultStyles.base, key), get(defaultStyles[size], key), get(stylesOverrides, key)),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div className={styles.container}>\n <InputHeader\n name={name}\n label={label}\n description={description}\n required={required}\n isRequired={isRequired}\n isOptionalLabelHidden={isOptionalLabelHidden}\n styles={styles}\n />\n <div className={styles.switch.container} data-cy={inputDataCy}>\n <Component\n checked={value}\n disabled={isDisabled}\n onChange={onChange}\n className={toClassName(\n styles.switch.content,\n value ? styles.switch.checked : styles.switch.unchecked,\n isDisabled && styles.switch.disabled,\n )}\n >\n <span className={styles.switch.screenreader}>Switch setting for {name}</span>\n <span className={toClassName(styles.toggle.content, value ? styles.toggle.checked : styles.toggle.unchecked)}>\n {iconAccessorUnchecked && (\n <span\n className={toClassName(value ? styles.icon.hidden : styles.icon.shown, styles.icon.content)}\n aria-hidden=\"true\"\n >\n <IconElement accessor={iconAccessorUnchecked} className={styles.icon.icon} />\n </span>\n )}\n {iconAccessorChecked && (\n <span\n className={toClassName(value ? styles.icon.shown : styles.icon.hidden, styles.icon.content)}\n aria-hidden=\"true\"\n >\n <IconElement accessor={iconAccessorChecked} className={styles.icon.icon} />\n </span>\n )}\n </span>\n </Component>\n </div>\n <InputFooter name={name} error={error} isTouched={isTouched} hint={hint} styles={styles} />\n </div>\n );\n};\n\nexport default Switch;\n","import { TInputFooterStyles } from '../../../components/Custom/InputFooter';\nimport { TInputHeaderStyles } from '../../../components/Custom/InputHeader';\nimport { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'flex flex-col',\n //foot override\n foot: 'flex flex-col',\n switch: {\n container: 'flex flex-col',\n content:\n 'relative inline-flex w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out',\n screenreader: 'sr-only',\n checked: 'bg-primary-600 focus:outline-hidden focus:ring-0 focus:ring-primary-600 focus:ring-offset-2',\n unchecked: 'bg-gray-200 focus:outline-hidden focus:ring-0 focus:ring-primary-600 focus:ring-offset-2',\n disabled: 'opacity-50 cursor-not-allowed!',\n },\n toggle: {\n content:\n 'pointer-events-none relative inline-block my-auto transform rounded-full bg-white shadow-sm ring-0 transition duration-200 ease-in-out',\n checked: 'translate-x-5',\n unchecked: 'translate-x-0',\n },\n icon: {\n content: 'absolute inset-0 flex h-full w-full items-center justify-center transition-opacity',\n hidden: 'opacity-0 ease-out duration-100',\n shown: 'opacity-100 ease-in duration-200',\n icon: 'h-3 w-3',\n },\n};\n\nconst md = {\n switch: { content: 'h-6' },\n toggle: { content: 'h-5 w-5' },\n};\n\nconst sm = {\n switch: { content: 'h-5' },\n\n toggle: { content: 'h-4 w-4', checked: 'translate-x-6' },\n};\n\nconst styles = {\n base,\n\n md,\n sm,\n};\n\nexport type TSwitchStylesForm = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import isHotkey from 'is-hotkey';\nimport { forEach, get, isArray, set, map, uniq, includes, compact, isEmpty, concat, every } from 'lodash';\nimport React, { createElement, FC, Fragment, JSX, Key, KeyboardEvent, ReactNode, useCallback, useMemo } from 'react';\nimport { Descendant, Editor, Element as SlateElement, Text, Transforms, createEditor } from 'slate';\nimport { withHistory } from 'slate-history';\nimport { Editable, RenderElementProps, RenderLeafProps, Slate, useSlate, withReact } from 'slate-react';\n\nimport InputFooter, { footerStyles } from '../../../components/Custom/InputFooter';\nimport InputHeader, { headerStyles } from '../../../components/Custom/InputHeader';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../../Element/Icon';\n\nimport { default as defaultStyles } from './RichTextArea.styles';\n\nimport type {\n AlignType,\n ListType,\n CustomEditor,\n CustomElement,\n CustomElementType,\n CustomElementWithAlign,\n CustomText,\n CustomTextKey,\n TRichTextAreaProps,\n TRichTextToolbarItem,\n CustomElementFormat,\n RenderOptions,\n ButtonProps,\n BlockButtonProps,\n} from './RichTextArea.types';\nimport type { IconName } from '@fortawesome/fontawesome-svg-core';\n\nconst HOTKEYS: Record<string, CustomTextKey> = {\n 'mod+b': 'bold',\n 'mod+i': 'italic',\n 'mod+u': 'underline',\n 'mod+`': 'code',\n};\n\nconst LIST_TYPES = ['numbered-list', 'bulleted-list'];\nconst TEXT_ALIGN_TYPES = ['left', 'center', 'right', 'justify'];\n\nconst TAG_BY_TYPE: Record<string, keyof JSX.IntrinsicElements> = {\n 'block-quote': 'blockquote',\n 'bulleted-list': 'ul',\n 'numbered-list': 'ol',\n 'heading-one': 'h1',\n 'heading-two': 'h2',\n 'list-item': 'li',\n paragraph: 'p',\n};\n\nconst CLASS_BY_TYPE: Record<string, string> = {\n 'block-quote': defaultStyles.elements.blockquote,\n 'bulleted-list': defaultStyles.elements.list.bulleted,\n 'numbered-list': defaultStyles.elements.list.numbered,\n 'heading-one': defaultStyles.elements.heading.h1,\n 'heading-two': defaultStyles.elements.heading.h2,\n 'list-item': defaultStyles.elements.list.item,\n paragraph: defaultStyles.elements.paragraph,\n};\n\nconst isAlignType = (format: CustomElementFormat): format is AlignType =>\n (TEXT_ALIGN_TYPES as readonly string[]).includes(format as string);\n\nconst isListType = (format: CustomElementFormat): format is ListType =>\n (LIST_TYPES as readonly string[]).includes(format as string);\n\nconst isAlignElement = (element: CustomElement): element is CustomElementWithAlign => 'align' in element;\n\nconst createTagElement = (\n tag: keyof JSX.IntrinsicElements,\n options: { attributes?: any; key?: Key; className?: string; children?: ReactNode },\n) => {\n const { attributes, key, className, children } = options;\n const props = attributes ? { ...attributes, className } : { key, className };\n return createElement(tag, props, children);\n};\n\nconst applyMarks = (content: ReactNode, marks: Partial<CustomText>) => {\n if (marks.bold) content = <strong>{content}</strong>;\n if (marks.code) content = <code className={defaultStyles.elements.code}>{content}</code>;\n if (marks.italic) content = <em>{content}</em>;\n if (marks.underline) content = <u>{content}</u>;\n return content;\n};\n\nconst isNodeTextEmpty = (node: any): boolean => {\n if (Text.isText(node)) return (node.text ?? '').trim() === '';\n\n if (Editor.isEditor(node) || SlateElement.isElement(node)) {\n const children = node.children ?? [];\n if (isEmpty(children)) return true;\n\n return every(children, (child) => isNodeTextEmpty(child));\n }\n\n return true;\n};\n\nconst isDocumentAllTextEmpty = (value: Descendant[]): boolean => {\n if (!isArray(value) || isEmpty(value)) return true;\n\n return every(value, (node) => isNodeTextEmpty(node));\n};\n\nconst renderRichNode = (node: any, options: RenderOptions = {}): ReactNode => {\n const { attributes, children: providedChildren, key } = options;\n\n if (Text.isText(node)) {\n if (String(providedChildren ?? node.text).trim() === '') {\n return <div key={key} className={defaultStyles.editor.area.emptyLine} aria-hidden=\"true\" />;\n }\n const content = applyMarks(providedChildren ?? node.text, node as Partial<CustomText>);\n return attributes ? <span {...attributes}>{content}</span> : <Fragment key={key}>{content}</Fragment>;\n }\n\n const element = node as CustomElement;\n const type = get(element, 'type', 'paragraph');\n const tag = get(TAG_BY_TYPE, type, 'p') as keyof JSX.IntrinsicElements;\n const baseClass = get(CLASS_BY_TYPE, type, CLASS_BY_TYPE.paragraph);\n\n const alignClass = isAlignElement(element) ? get(defaultStyles.align, (element as any).align, '') : '';\n const renderChildNode = (childNode: any, index: number) => renderRichNode(childNode, { key: index });\n const renderedChildren = providedChildren ?? map(element.children, renderChildNode);\n\n // Merge any className Slate might pass in attributes (rare) with ours\n const mergedClassName = toClassName(baseClass, alignClass, attributes?.className);\n\n return createTagElement(tag, { attributes, key, className: mergedClassName, children: renderedChildren });\n};\n\nconst RichTextArea: FC<TRichTextAreaProps> = ({\n name = 'rich-text-area',\n\n initialValue = '[{\"type\":\"paragraph\",\"children\":[{\"text\":\"Hello from initial value. Edit me!\"}]}]',\n onChange,\n placeholder = 'Type something…',\n styles: stylesOverrides,\n isReadOnly = false,\n toolbarConfig,\n\n //Header\n label,\n description,\n required,\n isRequired,\n isOptionalLabelHidden,\n\n //Footer\n hint,\n error,\n isTouched,\n}) => {\n const styles = useMemo(() => {\n const result = deepCopyObject(defaultStyles);\n const keys = concat(\n calculateNestedKeys(defaultStyles),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n\n forEach(keys, (key) => {\n set(result, key, toClassName(get(defaultStyles, key), get(stylesOverrides, key)));\n });\n\n return result;\n }, [stylesOverrides]);\n\n const defaultToolbarItems: TRichTextToolbarItem[] = useMemo(\n () => [\n 'bold',\n 'italic',\n 'underline',\n 'code',\n 'heading-one',\n 'heading-two',\n 'block-quote',\n 'numbered-list',\n 'bulleted-list',\n 'left',\n 'center',\n 'right',\n 'justify',\n ],\n [],\n );\n\n const enabledToolbarItems = useMemo(\n () => uniq(toolbarConfig ?? defaultToolbarItems),\n [toolbarConfig, defaultToolbarItems],\n );\n\n const editor = useMemo(() => withHistory(withReact(createEditor())), []);\n\n const renderElement = useCallback(\n ({ element, attributes, children }: RenderElementProps): JSX.Element =>\n renderRichNode(element, { attributes, children }) as JSX.Element,\n [],\n );\n\n const renderLeaf = useCallback(\n ({ leaf, attributes, children }: RenderLeafProps): JSX.Element =>\n renderRichNode(leaf, { attributes, children }) as JSX.Element,\n [],\n );\n\n const handleChange = useCallback(\n (newValue: any[]) => {\n if (!onChange) return;\n onChange(JSON.stringify(newValue));\n },\n [onChange],\n );\n\n const parsedInitialValue = useMemo<Descendant[]>(() => {\n try {\n return JSON.parse(initialValue) as Descendant[];\n } catch {\n return [];\n }\n }, [initialValue]);\n\n const generateMarkButton = useCallback(\n (format: CustomTextKey, icon: IconName) =>\n includes(enabledToolbarItems, format) && (\n <Button active={isMarkActive(editor, format)} onMouseDown={() => toggleMark(editor, format)} icon={icon} />\n ),\n [enabledToolbarItems, editor],\n );\n\n const generateBlockButton = useCallback(\n (format: CustomElementFormat, icon: IconName) =>\n includes(enabledToolbarItems, format) && <BlockButton format={format} icon={icon} />,\n [enabledToolbarItems],\n );\n\n const renderToolbarGroups = useCallback(() => {\n const sections: JSX.Element[][] = [];\n\n const marks = compact([\n generateMarkButton('bold', 'bold'),\n generateMarkButton('italic', 'italic'),\n generateMarkButton('underline', 'underline'),\n generateMarkButton('code', 'code'),\n ]);\n if (!isEmpty(marks)) sections.push(marks);\n\n const headings = compact([\n generateBlockButton('heading-one', 'h1'),\n generateBlockButton('heading-two', 'h2'),\n generateBlockButton('block-quote', 'quote-left'),\n ]);\n if (!isEmpty(headings)) sections.push(headings);\n\n const lists = compact([\n generateBlockButton('numbered-list', 'list-ol'),\n generateBlockButton('bulleted-list', 'list-ul'),\n ]);\n if (!isEmpty(lists)) sections.push(lists);\n\n const align = compact([\n generateBlockButton('left', 'align-left'),\n generateBlockButton('center', 'align-center'),\n generateBlockButton('right', 'align-right'),\n generateBlockButton('justify', 'align-justify'),\n ]);\n if (!isEmpty(align)) sections.push(align);\n\n return map(sections, (group, index) => (\n <Fragment key={index}>\n {index > 0 && <div className={styles.editor.toolbar.divider} />}\n {group}\n </Fragment>\n ));\n }, [generateMarkButton, generateBlockButton, styles.editor.toolbar.divider]);\n\n if (isReadOnly && (isEmpty(parsedInitialValue) || isDocumentAllTextEmpty(parsedInitialValue))) return null;\n\n return isReadOnly ? (\n <div className={styles.readOnlyWrapper}>\n {isArray(parsedInitialValue) ? map(parsedInitialValue, (n, i) => renderRichNode(n, { key: i })) : null}\n </div>\n ) : (\n <>\n <InputHeader\n name={name}\n label={label}\n required={required}\n isRequired={isRequired}\n isOptionalLabelHidden={isOptionalLabelHidden}\n styles={styles}\n description={description}\n />\n <Slate editor={editor} initialValue={parsedInitialValue} onChange={handleChange}>\n <div className={styles.textAreaWrapper}>\n <div className={styles.editor.toolbar.container}>{renderToolbarGroups()}</div>\n\n <div className={styles.editor.area.container}>\n <Editable\n renderElement={renderElement}\n renderLeaf={renderLeaf}\n className={styles.editor.area.editable}\n placeholder={placeholder}\n spellCheck\n autoFocus\n onKeyDown={(event: KeyboardEvent<HTMLDivElement>) => {\n forEach(HOTKEYS, (mark, hotkey) => {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n toggleMark(editor, mark);\n }\n });\n }}\n />\n </div>\n </div>\n </Slate>\n <InputFooter name={name} error={error} isTouched={isTouched} hint={hint} styles={styles} />\n </>\n );\n};\n\nexport const toggleBlock = (editor: CustomEditor, format: CustomElementFormat) => {\n const isActive = isBlockActive(editor, format, isAlignType(format) ? 'align' : 'type');\n const isList = isListType(format);\n\n Transforms.unwrapNodes(editor, {\n match: (n) =>\n !Editor.isEditor(n) && SlateElement.isElement(n) && isListType((n as CustomElement).type) && !isAlignType(format),\n split: true,\n });\n\n const newProperties: Partial<CustomElement> = isAlignType(format)\n ? { align: isActive ? undefined : (format as AlignType) }\n : { type: isActive ? 'paragraph' : isList ? 'list-item' : (format as CustomElementType) };\n\n Transforms.setNodes<CustomElement>(editor, newProperties);\n\n if (!isActive && isList) {\n const block = { type: format, children: [] } as SlateElement;\n Transforms.wrapNodes(editor, block);\n }\n};\n\nexport const toggleMark = (editor: CustomEditor, format: CustomTextKey) => {\n const isActive = isMarkActive(editor, format);\n if (isActive) Editor.removeMark(editor, format);\n else Editor.addMark(editor, format, true);\n};\n\nexport const isBlockActive = (\n editor: CustomEditor,\n format: CustomElementFormat,\n blockType: 'type' | 'align' = 'type',\n) => {\n const { selection } = editor;\n if (!selection) return false;\n\n const [match] = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, selection),\n match: (n) => {\n if (!Editor.isEditor(n) && SlateElement.isElement(n)) {\n const element = n as CustomElement;\n if (blockType === 'align' && isAlignElement(element)) return element.align === format;\n return element.type === format;\n }\n return false;\n },\n }),\n );\n\n return !!match;\n};\n\nexport const isMarkActive = (editor: CustomEditor, format: CustomTextKey) => {\n const marks = Editor.marks(editor);\n return marks ? (marks as Record<string, unknown>)[format] === true : false;\n};\n\nconst Button: FC<ButtonProps> = ({ active, onMouseDown, icon }) => (\n <button\n type=\"button\"\n aria-pressed={active}\n className={toClassName(defaultStyles.editor.toolbar.button, active && defaultStyles.editor.toolbar.buttonActive)}\n onMouseDown={(e) => {\n e.preventDefault();\n onMouseDown();\n }}\n >\n <IconElement accessor={icon} type=\"solid\" className={defaultStyles.editor.toolbar.icon} />\n </button>\n);\n\nconst BlockButton: FC<BlockButtonProps> = ({ format, icon }) => {\n const editor = useSlate();\n const active = isBlockActive(editor as CustomEditor, format, isAlignType(format) ? 'align' : 'type');\n const handleMouseDown = useCallback(() => toggleBlock(editor as CustomEditor, format), [editor, format]);\n\n return <Button active={active} onMouseDown={handleMouseDown} icon={icon} />;\n};\n\nexport default RichTextArea;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nimport type { TInputFooterStyles } from '../../Custom/InputFooter';\nimport type { TInputHeaderStyles } from '../../Custom/InputHeader';\n\nconst base = {\n container: '',\n textAreaWrapper: 'border border-input rounded-lg overflow-hidden border-palette-lightGray',\n readOnlyWrapper: 'prose prose-sm max-w-none',\n editor: {\n toolbar: {\n container: 'flex items-center gap-1 p-2 border-b border-border',\n button: 'h-6 w-6 text-[18px] hover:bg-gray-50 active:bg-gray-100 cursor-pointer rounded-sm',\n buttonActive: 'ring-2 ring-gray-900/10 bg-gray-100',\n icon: 'h-4! w-4!',\n divider: 'w-px h-6 bg-gray-200 mx-1',\n },\n area: {\n container: 'overflow-hidden p-4',\n emptyLine: 'min-h-[1em] leading-none',\n editable:\n 'leading-7 focus:outline-none prose prose-sm max-w-none prose-headings:font-semibold prose-h1:text-2xl prose-h2:text-xl prose-p:my-3 prose-blockquote:my-3',\n },\n },\n\n elements: {\n blockquote: 'border-l-4 border-gray-300 pl-4 italic text-gray-600 bg-gray-50 rounded-r-md py-2 my-2',\n list: {\n bulleted: 'list-disc ml-6 space-y-1',\n numbered: 'list-decimal ml-6 space-y-1',\n item: '',\n },\n heading: {\n h1: 'text-2xl font-semibold tracking-tight',\n h2: 'text-xl font-semibold tracking-tight',\n },\n paragraph: '',\n code: 'px-1.5 py-0.5 rounded-md bg-gray-100 text-gray-800 font-mono text-[0.85em]',\n },\n\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n },\n\n readOnly: {\n container: '',\n },\n};\n\nconst styles = base;\n\nexport type TRichTextAreaStylesForm = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, FocusEventHandler, ReactNode, useCallback, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './FileInputGroupForm.styles';\n\nimport { TFileInputGroupFormStyles } from '.';\n\nexport type TFileType = {\n name: string;\n size: number;\n type: string;\n blob: string | ArrayBuffer | null;\n file: File;\n};\n\nexport type TFileInputGroupFormProps = {\n name: string;\n\n label?: ReactNode;\n description?: string;\n hint?: string;\n\n required?: ({ isRequired }: { isRequired: boolean }) => ReactNode;\n\n value?: TFileType;\n // In MB.\n max?: number;\n error?: string;\n\n isValid?: boolean;\n isDisabled?: boolean;\n isRequired?: boolean;\n isTouched?: boolean;\n isMulti?: boolean;\n\n children?: (props: { value?: TFileType; isDragging: boolean }) => ReactNode;\n\n onChange: (files: TFileType[]) => void;\n onBlur: FocusEventHandler<HTMLInputElement>;\n\n styles?: TFileInputGroupFormStyles;\n};\n\nconst FileInputGroupForm: FC<TFileInputGroupFormProps> = (props) => {\n const {\n name = 'multiple-file-input',\n\n label,\n description,\n hint,\n\n required,\n\n value,\n max,\n error,\n\n isDisabled,\n isRequired = false,\n isTouched = false,\n isMulti = false,\n\n children,\n\n onChange,\n onBlur,\n\n styles: stylesOverrides,\n } = props;\n\n const isValid = error === undefined;\n\n const [isDragging, setIsDragging] = useState<boolean>(false);\n\n const handleChangeInput = useCallback(\n (files: File[]) => {\n const reader = new FileReader();\n const results: TFileType[] = [];\n\n const readFile = (index: number) => {\n if (index >= files.length) {\n return onChange(results);\n }\n\n const file = files[index];\n\n reader.onload = () => {\n const result: TFileType = {\n name: file.name,\n size: file.size,\n type: file.type,\n blob: reader?.result,\n file,\n };\n\n // eg. 10 * 1024 * 1024\n if (!max || max * 1024 * 1024 > result.size) {\n results.push(result);\n }\n\n readFile(index + 1);\n };\n\n reader.readAsDataURL(file);\n };\n\n readFile(0);\n },\n [max, onChange],\n );\n\n const onDrop = useCallback(\n (files: File[]) => {\n setIsDragging(false);\n handleChangeInput(files);\n },\n [handleChangeInput],\n );\n\n const { getRootProps, getInputProps } = useDropzone({\n onDrop,\n multiple: isMulti,\n disabled: isDisabled,\n onError: () => {\n // console.log('error');\n // setFieldError('file', t('component.form.error.multipleFiles') as string);\n },\n onDragEnter: () => {\n setIsDragging(true);\n },\n onDragLeave: () => {\n setIsDragging(false);\n },\n });\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const input = getInputProps();\n\n return (\n <div className={styles.container}>\n <div className={styles.head}>\n {label && (\n <div className={styles.labelContainer}>\n <label htmlFor={name} className={styles.label}>\n {label}\n </label>\n {description && !(error && isTouched) && <p className={styles.description}>{description}</p>}\n </div>\n )}\n {!required && !isRequired && typeof label === 'string' && <span className={styles.hint}>Optional</span>}\n {required && required({ isRequired })}\n </div>\n <div className={styles.body} {...getRootProps()}>\n {children && children({ value, isDragging })}\n <input\n name={name}\n accept={input.accept}\n multiple={input.multiple}\n onChange={input.onChange}\n ref={(input as any)?.ref}\n style={input.style}\n tabIndex={input.tabIndex}\n disabled={isDisabled}\n type={input.type}\n onBlur={onBlur}\n />\n </div>\n <div className={styles.foot}>\n {hint && !(error && isTouched) && <p className={styles.hint}>{hint}</p>}\n {error && isTouched && <p className={styles.error}>{error}</p>}\n </div>\n </div>\n );\n};\n\nexport default FileInputGroupForm;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n head: 'flex justify-between',\n body: 'relative rounded-md my-2 cursor-pointer',\n foot: '',\n labelContainer: 'flex flex-col',\n label: 'block font-medium text-gray-900',\n hint: 'text-xs text-gray-500',\n leading: 'pointer-events-none absolute inset-y-0 left-0 flex items-center',\n input: 'block w-full',\n trailing: 'pointer-events-none absolute inset-y-0 right-0 flex items-center',\n description: 'text-gray-400 text-xs mt-1',\n error: 'text-red-500 text-xs mt-1',\n};\n\nconst leading: TFileInputGroupFormStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TFileInputGroupFormStyles = {};\n\nconst normal: TFileInputGroupFormStyles = {\n label: 'leading-6 text-sm mb-2',\n hint: 'leading-6',\n leading: 'pl-3',\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n trailing: 'pr-3',\n description: 'mt-2 text-sm',\n};\n\nconst inset: TFileInputGroupFormStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n label: 'text-xs',\n hint: 'text-xs',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n description: 'hidden',\n};\n\nconst overlapping: TFileInputGroupFormStyles = {\n container: 'relative',\n head: ' absolute flex justify-between items-center left-0 -top-2 right-0 mx-2 z-10 w-full',\n label: 'inline-block bg-white px-1 text-xs font-medium text-gray-900 ',\n hint: 'text-xs mr-4 bg-white px-1',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n description: 'hidden',\n};\n\nconst pill: TFileInputGroupFormStyles = {\n head: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mb-1 pr-6',\n foot: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mt-1 pr-6',\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n trailing: 'pr-2',\n description: 'text-xs',\n};\n\nconst floored: TFileInputGroupFormStyles = {\n body: 'relative mt-2',\n label: 'block text-sm font-medium leading-6 text-gray-900',\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n description: 'text-xs mt-2',\n};\n\nconst invalid: TFileInputGroupFormStyles = {\n container: 'ring-red-500',\n input:\n // 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 sm:leading-6 pr-10',\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 pr-10',\n description: 'text-sm text-red-600',\n};\n\nconst disabled: TFileInputGroupFormStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TFileInputGroupFormStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { FieldArray, FormikProvider, FormikContextType } from 'formik';\nimport { get, set } from 'lodash';\nimport React, { FC, ReactNode, useEffect } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './OpeningsHourInputGroupForm.styles';\nimport { OpeningHoursItem } from './partials';\n\nimport { TOpeningsHourInputGroupFormStyles } from '.';\n\nexport type TOpeningsHourInputGroupFormProps = {\n form: FormikContextType<any>;\n\n name: string;\n\n label?: ReactNode;\n description?: string;\n\n required?: ({ isRequired }: { isRequired: boolean }) => ReactNode;\n\n value?: any[];\n error?: string;\n lang?: 'en' | 'nl';\n\n isValid?: boolean;\n isDisabled?: boolean;\n isRequired?: boolean;\n isTouched?: boolean;\n\n onChange: any;\n onBlur: any;\n\n styles?: TOpeningsHourInputGroupFormStyles;\n\n handleDelete?: (id: string) => void;\n};\n\nconst OpeningsHourInputGroupForm: FC<TOpeningsHourInputGroupFormProps> = (props) => {\n const {\n form,\n name = 'opening-hours-input',\n\n label,\n description,\n\n required,\n\n value,\n error,\n lang,\n\n isDisabled,\n isRequired = false,\n isTouched = false,\n\n onChange,\n\n styles: stylesOverrides,\n\n handleDelete,\n } = props;\n\n const isValid = error === undefined;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n useEffect(() => {\n if (form.values[name]) {\n onChange && onChange(form.values[name]);\n }\n }, [form.values, name, onChange]);\n\n return (\n <div className={styles.container}>\n <div className={styles.head}>\n {label && (\n <label htmlFor={name} className={styles.label}>\n {label}\n </label>\n )}\n {!required && !isRequired && typeof label === 'string' && <span className={styles.hint}>Optional</span>}\n {required && required({ isRequired })}\n </div>\n <div className={styles.body}>\n <FormikProvider value={form}>\n <FieldArray\n name={name}\n render={({ remove, push, replace }: any) => (\n <>\n {(form.values?.[name] as any[])\n ?.map((value, index) => ({ index, value }))\n ?.sort((a, b) => (a.value.day < b.value.day ? -1 : 1))\n ?.map(({ value: openingHour, index }) => (\n <OpeningHoursItem\n id={index}\n key={`${openingHour.id}-${index}`}\n openingHour={openingHour}\n lang={lang}\n onCreate={push}\n onUpdate={(value) => replace(index, value)}\n onDelete={(id) => {\n if (id) {\n handleDelete && handleDelete(id);\n remove(index);\n }\n }}\n />\n ))}\n <OpeningHoursItem\n id=\"-\"\n key=\"-\"\n // Prefill picker with a day later than the day of the last saved opening hour.\n lang={lang}\n dayPlaceholder={value && value?.[value?.length - 1]?.day + 1}\n onCreate={push}\n />\n </>\n )}\n />\n </FormikProvider>\n </div>\n <div className={styles.foot}>\n {description && !(error && isTouched) && <p className={styles.description}>{description}</p>}\n {error && isTouched && <p className={styles.error}>{error}</p>}\n </div>\n </div>\n );\n};\n\nexport default OpeningsHourInputGroupForm;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n head: 'flex justify-between',\n body: 'relative rounded-md py-2',\n foot: '',\n label: 'block font-medium text-gray-900',\n hint: 'text-xs text-gray-500',\n leading: 'pointer-events-none absolute inset-y-0 left-0 flex items-center',\n input: 'block w-full',\n trailing: 'pointer-events-none absolute inset-y-0 right-0 flex items-center',\n description: 'text-gray-400 text-xs mt-1',\n error: 'text-red-500 text-xs mt-1',\n};\n\nconst leading: TOpeningsHourInputGroupFormStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TOpeningsHourInputGroupFormStyles = {};\n\nconst normal: TOpeningsHourInputGroupFormStyles = {\n label: 'leading-6 text-sm mb-2',\n hint: 'leading-6',\n leading: 'pl-3',\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n trailing: 'pr-3',\n description: 'mt-2 text-sm',\n};\n\nconst inset: TOpeningsHourInputGroupFormStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n label: 'text-xs',\n hint: 'text-xs',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n description: 'hidden',\n};\n\nconst overlapping: TOpeningsHourInputGroupFormStyles = {\n container: 'relative',\n head: ' absolute flex justify-between items-center left-0 -top-2 right-0 mx-2 z-10 w-full',\n label: 'inline-block bg-white px-1 text-xs font-medium text-gray-900 ',\n hint: 'text-xs mr-4 bg-white px-1',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n description: 'hidden',\n};\n\nconst pill: TOpeningsHourInputGroupFormStyles = {\n head: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mb-1 pr-6',\n foot: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mt-1 pr-6',\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n trailing: 'pr-2',\n description: 'text-xs',\n};\n\nconst floored: TOpeningsHourInputGroupFormStyles = {\n body: 'relative mt-2',\n label: 'block text-sm font-medium leading-6 text-gray-900',\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n description: 'text-xs mt-2',\n};\n\nconst invalid: TOpeningsHourInputGroupFormStyles = {\n container: 'ring-red-500',\n input:\n // 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 sm:leading-6 pr-10',\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 pr-10',\n description: 'text-sm text-red-600',\n};\n\nconst disabled: TOpeningsHourInputGroupFormStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TOpeningsHourInputGroupFormStyles = DeepPartial<typeof base>;\nexport default styles;\n","import OpeningHoursItem from './OpeningHoursItem';\n\nexport { OpeningHoursItem };\n","export { default } from './OpeningHourItemCustom';\nexport { default as styles } from './OpeningHourItemCustom.styles';\n","import { Switch } from '@headlessui/react';\nimport { PlusIcon, XMarkIcon } from '@heroicons/react/24/outline';\nimport { FormikValues, useFormik } from 'formik';\nimport { DateTime } from 'luxon';\nimport React, { FC, useCallback, useMemo } from 'react';\n\nimport ButtonElement from '../../../../../components/Element/Button/ButtonElement';\nimport InputGroupForm from '../../../../../components/Form/InputGroup/InputGroupForm';\nimport SelectMenuForm from '../../../../../components/Form/SelectMenu/SelectMenuForm';\nimport { toClassName } from '../../../../../helpers/format';\n\nimport { styles } from '.';\n\ntype Props = {\n id: string | number;\n lang?: 'en' | 'nl';\n\n dayPlaceholder?: number;\n openingHour?: any;\n\n onCreate: (value: any) => void;\n onUpdate?: (value: any & { id: string }) => void;\n onDelete?: (id: string) => any;\n};\n\nconst OpeningHourItem: FC<Props> = (props) => {\n const { id, lang = 'en', openingHour: defaultValue, dayPlaceholder, onCreate, onUpdate, onDelete } = props;\n\n const options = useMemo(() => {\n const values = ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'];\n let translations: string[] = [];\n\n switch (lang) {\n case 'en':\n translations = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n break;\n case 'nl':\n translations = ['Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag', 'Zondag'];\n break;\n }\n\n return translations.map((translation, index) => ({\n label: translation,\n value: values[index],\n }));\n }, [lang]);\n\n const isCreating = defaultValue === undefined;\n\n const initialValues = useMemo(\n () => ({\n id: defaultValue?.id ?? id,\n day: {\n label: options[defaultValue?.day ?? dayPlaceholder ?? 0]?.label,\n value: options[defaultValue?.day ?? dayPlaceholder ?? 0]?.value,\n },\n closed: defaultValue?.closed ?? false,\n openingTime: defaultValue?.openingTime\n ? DateTime.fromISO(defaultValue?.openingTime).minus({ hours: 2 }).toFormat('HH:mm')\n : '',\n closingTime: defaultValue?.closingTime\n ? DateTime.fromISO(defaultValue?.closingTime).minus({ hours: 2 }).toFormat('HH:mm')\n : '',\n }),\n [\n dayPlaceholder,\n defaultValue?.closed,\n defaultValue?.closingTime,\n defaultValue?.day,\n defaultValue?.id,\n defaultValue?.openingTime,\n id,\n options,\n ],\n );\n\n const toTimeStamp = useCallback((value: string | undefined) => {\n if (value === undefined) return undefined;\n const [hours, minutes] = value.split(':');\n return DateTime.utc()\n .set({ hour: Number(hours), minute: Number(minutes), second: 0, millisecond: 0 })\n .toISO();\n }, []);\n\n const onSubmit = useCallback(\n (values: FormikValues) => {\n const openingTime = toTimeStamp(values?.openingTime);\n const closingTime = toTimeStamp(values?.closingTime);\n\n const params = {\n id: defaultValue?.id ?? id,\n day: options.findIndex((option) => option.value === values?.day?.value),\n closed: values?.closed,\n openingTime,\n closingTime,\n };\n\n onCreate(params);\n },\n [defaultValue?.id, id, onCreate, options, toTimeStamp],\n );\n\n const form = useFormik({\n initialValues,\n onSubmit,\n });\n\n return (\n <div className={toClassName('-mt-2 flex gap-4 items-end', !isCreating && 'opacity-100')}>\n <div className={styles.selectMenu.container}>\n <SelectMenuForm\n name=\"day\"\n //\n isRequired\n isMultiple={false}\n isSearchable={false}\n //\n options={options}\n //\n value={form?.values?.day}\n onChange={(value) => form.setFieldValue('day', value)}\n onBlur={() => {\n form?.setFieldTouched('day');\n\n if (!isCreating) {\n const openingTime = toTimeStamp(form.values?.openingTime);\n const closingTime = toTimeStamp(form.values?.closingTime);\n const params: any & { id: string } = {\n id: defaultValue?.id,\n day: options.findIndex((option) => option.value === form.values?.day?.value),\n closed: form.values?.closed,\n openingTime,\n closingTime,\n };\n onUpdate && onUpdate(params);\n }\n }}\n onClear={() => form.setFieldValue('day', null)}\n />\n </div>\n <InputGroupForm\n name=\"openingTime\"\n htmlType=\"time\"\n type=\"normal\"\n //\n isRequired\n isDisabled={form.values.closed}\n //\n value={form?.values?.openingTime}\n onChange={form?.handleChange}\n onBlur={(values: any) => {\n form?.handleBlur(values);\n\n if (!isCreating) {\n const openingTime = toTimeStamp(form.values?.openingTime);\n const closingTime = toTimeStamp(form.values?.closingTime);\n\n const params: any & { id: string } = {\n id: values?.id,\n day: options.findIndex((option) => option.value === form.values?.day?.value),\n closed: form.values?.closed,\n openingTime,\n closingTime,\n };\n\n onUpdate && onUpdate(params);\n }\n }}\n />\n <InputGroupForm\n name=\"closingTime\"\n htmlType=\"time\"\n type=\"normal\"\n //\n isRequired\n isDisabled={form.values.closed}\n //\n value={form.values?.closingTime}\n onChange={form?.handleChange}\n onBlur={(values: any) => {\n form?.handleBlur(values);\n\n if (!isCreating) {\n const openingTime = toTimeStamp(form.values?.openingTime);\n const closingTime = toTimeStamp(form.values?.closingTime);\n\n const params: any & { id: string } = {\n id: values?.id,\n day: options.findIndex((option) => option.value === form.values?.day?.value),\n closed: form.values?.closed,\n openingTime,\n closingTime,\n };\n\n onUpdate && onUpdate(params);\n }\n }}\n />\n <div className=\"flex flex-col\">\n <p className=\"text-xs font-medium pb-1 mt-4\">Closed</p>\n <Switch\n checked={form.values.closed}\n onChange={() => {\n form.setFieldValue('closed', !form.values.closed);\n\n if (!isCreating) {\n const openingTime = toTimeStamp(form.values?.openingTime);\n const closingTime = toTimeStamp(form.values?.closingTime);\n\n const params: any & { id: string } = {\n id: form.values?.id,\n day: options.findIndex((option) => option.value === form.values?.day?.value),\n closed: !form.values?.closed,\n openingTime,\n closingTime,\n };\n\n onUpdate && onUpdate(params);\n }\n }}\n className={toClassName(styles.control.action, form.values.closed ? 'bg-primary-500' : 'bg-gray-200')}\n >\n <span className={styles.control.sr}>Toggle closed</span>\n <span\n aria-hidden=\"true\"\n className={toClassName(styles.control.span, form.values.closed ? 'translate-x-5' : 'translate-x-0')}\n />\n </Switch>\n </div>\n {!isCreating ? (\n <ButtonElement size=\"sm\" type=\"outline\" onClick={() => onDelete && onDelete(form.values.id)}>\n <XMarkIcon className=\"w-4 h-4\" />\n </ButtonElement>\n ) : (\n <ButtonElement size=\"sm\" type=\"secondary\" onClick={() => form.handleSubmit()}>\n <PlusIcon className=\"w-4 h-4\" />\n </ButtonElement>\n )}\n </div>\n );\n};\n\nexport default OpeningHourItem;\n","const styles = {\n container: '',\n\n selectMenu: {\n container: \"grow\",\n },\n \n control: {\n container: 'flex items-center',\n label: 'text-sm mr-2 font-medium w-36',\n action:\n 'relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-hidden focus:ring-2 focus:ring-primary-500 focus:ring-offset-2',\n span: 'pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow-sm ring-0 transition duration-200 ease-in-out',\n sr: 'sr-only',\n },\n};\n\nexport default styles;\n","import Geosuggest from '@ubilabs/react-geosuggest';\nimport { get, lastIndexOf, set, trim } from 'lodash';\nimport { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './AddressInputGroupForm.styles';\n\nimport { TAddressInputGroupFormStyles } from '.';\n\nexport type TAddressInputGroupFormValue = {\n country: string;\n city: string;\n street: string;\n houseNumber: string;\n zipCode: string;\n busNumber?: string;\n lat: number;\n lng: number;\n info?: string;\n} | null;\n\nexport type TAddressInputGroupFormProps = {\n name: string;\n\n label?: ReactNode;\n description?: string;\n placeholder?: string;\n\n required?: ({ isRequired }: { isRequired: boolean }) => ReactNode;\n\n value?: any;\n error?: string;\n\n type?: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n\n isValid?: boolean;\n isDisabled?: boolean;\n isRequired?: boolean;\n isTouched?: boolean;\n\n onChange: any;\n onBlur: any;\n onFocus: any;\n\n styles?: TAddressInputGroupFormStyles;\n};\n\nconst AddressInputGroupForm: FC<TAddressInputGroupFormProps> = (props) => {\n const {\n name = 'address-input',\n\n label,\n description,\n placeholder,\n\n required,\n\n value,\n error,\n\n type = 'normal',\n\n isDisabled,\n isRequired = false,\n isTouched = false,\n\n onChange,\n onFocus,\n onBlur,\n\n styles: stylesOverrides,\n } = props;\n\n const isValid = error === undefined;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const mapValueToAddress = (value: TAddressInputGroupFormValue | undefined) => {\n if (!value) {\n return undefined;\n }\n\n const { country, city, street, houseNumber } = value;\n\n return `${street ?? ''}${houseNumber ? ' ' + houseNumber : ''}${\n city ? ', ' + city : ''\n }${country ? ', ' + country : ''}`;\n };\n\n // useEffect(() => {\n // if (form.values[name]) {\n // onChange && onChange(form.values[name]);\n // }\n // }, [form.values, name, onChange]);\n\n return (\n <div className={styles.container}>\n <div className={styles.head}>\n {label && (\n <label htmlFor={name} className={styles.label}>\n {label}\n </label>\n )}\n {!required && !isRequired && typeof label === 'string' && <span className={styles.hint}>Optional</span>}\n {required && required({ isRequired })}\n </div>\n <div className={styles.body}>\n <Geosuggest\n types={['address']}\n queryDelay={100}\n placeholder={placeholder}\n initialValue={mapValueToAddress(value)}\n inputClassName={styles?.input}\n suggestsClassName={styles.geosuggest?.suggestsClassName}\n suggestItemClassName={styles.geosuggest?.suggestItemClassName}\n suggestsHiddenClassName={styles.geosuggest?.suggestsHiddenClassName}\n onChange={(value) => {\n if (value === '') {\n onChange(null);\n }\n }}\n onFocus={onFocus}\n // suggestItemActiveClassName={\n // styles.geosuggest?.suggestItemActiveClassName\n // }\n autoComplete=\"off\"\n placeDetailFields={['address_components']}\n onSuggestSelect={(e: any) => {\n const components = e?.gmaps?.address_components;\n\n const handleExtractValueWithKey = (key: string) =>\n components?.find((component: { types: string[] }) => component.types.includes(key))?.long_name;\n\n const street = handleExtractValueWithKey('route');\n const city = handleExtractValueWithKey('sublocality') || handleExtractValueWithKey('locality');\n const country = handleExtractValueWithKey('country');\n const zipCode = handleExtractValueWithKey('postal_code');\n const houseNumber = handleExtractValueWithKey('street_number');\n let busNumber = handleExtractValueWithKey('post_box');\n\n if (\n // if busNumber is not found with the method above, try to find it in the user inputted label\n !busNumber &&\n // if the label contains the houseNumber and city somewhere after the houseNumber\n e?.label.includes(houseNumber) &&\n e?.label.split(houseNumber)[1].includes(city)\n ) {\n // split the label at the houseNumber and city\n const splitLabel = e?.label.split(houseNumber)[1].split(city)[0];\n\n // replace the zipCode from the label if it came before the city\n const replaceZipcode = splitLabel.replace(zipCode, '');\n\n // trim the label\n const trimmedLabel = trim(replaceZipcode);\n\n // if the trimmed label is shorter than 3 characters, it's probably the busNumber. Otherwise, something probably went wrong.\n if (trimmedLabel.length <= 3) {\n busNumber = trimmedLabel.includes(',')\n ? trimmedLabel.substring(0, lastIndexOf(trimmedLabel, ','))\n : trimmedLabel;\n }\n }\n\n const location: TAddressInputGroupFormValue = {\n street,\n city,\n country,\n zipCode,\n houseNumber,\n busNumber,\n lat: e?.location?.lat ?? 0,\n lng: e?.location?.lng ?? 0,\n };\n onChange && onChange(location);\n }}\n onBlur={(e: any) => {\n const components = e?.gmaps?.address_components;\n\n const handleExtractValueWithKey = (key: string) =>\n components?.find((component: { types: string[] }) => component.types.includes(key))?.long_name;\n\n const street = handleExtractValueWithKey('route');\n const city = handleExtractValueWithKey('locality');\n const country = handleExtractValueWithKey('country');\n const zipCode = handleExtractValueWithKey('postal_code');\n const houseNumber = handleExtractValueWithKey('street_number');\n const busNumber = handleExtractValueWithKey('post_box');\n\n const location: TAddressInputGroupFormValue = {\n street,\n city,\n country,\n zipCode,\n houseNumber,\n busNumber,\n lat: e?.location?.lat ?? 0,\n lng: e?.location?.lng ?? 0,\n info: (value as { info: string })?.info as any,\n };\n\n onBlur && onBlur(location);\n }}\n />\n </div>\n <div className={styles.foot}>\n {description && !(error && isTouched) && <p className={styles.description}>{description}</p>}\n {error && isTouched && <p className={styles.error}>{error}</p>}\n </div>\n </div>\n );\n};\n\nexport default AddressInputGroupForm;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n head: 'flex justify-between',\n body: 'relative rounded-md',\n foot: '',\n label: 'block font-medium text-gray-900',\n hint: 'text-xs text-gray-500',\n leading: 'pointer-events-none absolute inset-y-0 left-0 flex items-center',\n input: 'block w-full',\n trailing: 'pointer-events-none absolute inset-y-0 right-0 flex items-center',\n description: 'text-gray-400 text-xs mt-1',\n error: 'text-red-500 text-xs mt-1',\n geosuggest: {\n suggestsClassName: 'absolute w-full z-10 bg-white border border-gray-200 shadow-xs text-sm',\n suggestItemClassName: 'px-4 py-2 hover:bg-gray-50 cursor-pointer',\n suggestsHiddenClassName: 'hidden',\n // suggestItemActiveClassName:\n // 'bg-more-yellow first:rounded-t-lg last:rounded-b-lg',\n },\n};\n\nconst leading: TAddressInputGroupFormStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TAddressInputGroupFormStyles = {};\n\nconst normal: TAddressInputGroupFormStyles = {\n label: 'leading-6 text-sm mb-2',\n hint: 'leading-6',\n leading: 'pl-3',\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n trailing: 'pr-3',\n description: 'mt-2 text-sm',\n};\n\nconst inset: TAddressInputGroupFormStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n label: 'text-xs',\n hint: 'text-xs',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n description: 'hidden',\n};\n\nconst overlapping: TAddressInputGroupFormStyles = {\n container: 'relative',\n head: ' absolute flex justify-between items-center left-0 -top-2 right-0 mx-2 z-10 w-full',\n label: 'inline-block bg-white px-1 text-xs font-medium text-gray-900 ',\n hint: 'text-xs mr-4 bg-white px-1',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n description: 'hidden',\n};\n\nconst pill: TAddressInputGroupFormStyles = {\n head: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mb-1 pr-6',\n foot: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mt-1 pr-6',\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n trailing: 'pr-2',\n description: 'text-xs',\n};\n\nconst floored: TAddressInputGroupFormStyles = {\n body: 'relative mt-2',\n label: 'block text-sm font-medium leading-6 text-gray-900',\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n description: 'text-xs mt-2',\n};\n\nconst invalid: TAddressInputGroupFormStyles = {\n container: 'ring-red-500',\n input:\n // 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 sm:leading-6 pr-10',\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 pr-10',\n description: 'text-sm text-red-600',\n};\n\nconst disabled: TAddressInputGroupFormStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TAddressInputGroupFormStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Placement } from '@floating-ui/react';\nimport {\n AggregationFn,\n CellContext,\n ColumnDef,\n ColumnDefTemplate,\n createColumnHelper,\n DisplayColumnDef,\n RowData,\n} from '@tanstack/react-table';\nimport { compact, get, set } from 'lodash';\nimport { ReactNode, useCallback, useMemo } from 'react';\n\nimport BadgeElement, { TBadgeElementColor } from '../components/Element/Badge/BadgeElement';\nimport IconElement from '../components/Element/Icon';\nimport TooltipElement from '../components/Element/Tooltip';\nimport { toDateString, toDateTimeString, toTimeString } from '../helpers/date';\nimport { toClassName } from '../helpers/format';\n\nimport useExcelMapper, { TStringCell } from './useExcelMapper';\n\nexport type StringColumn = string | undefined | null;\n\nexport type BadgeColumn =\n | {\n value: string;\n label: ReactNode;\n color?: TBadgeElementColor;\n }\n | undefined\n | null;\n\nexport type LinkColumn =\n | {\n label: ReactNode;\n href?: string;\n }\n | undefined\n | null;\n\nexport type ButtonColumn =\n | {\n label: ReactNode;\n onClick: () => void;\n }\n | undefined\n | null;\n\nexport type DateColumn =\n | {\n value: string;\n options?: {\n locale?: string;\n type?: 'date' | 'time' | 'dateTime';\n format?: string;\n };\n }\n | undefined\n | null;\n\nexport type BooleanColumn =\n | {\n value: boolean;\n options?: { trueClassName?: string; falseClassName?: string };\n }\n | undefined\n | null;\n\ntype ColumnOptions<TData> = {\n header?: string;\n cell?: ColumnDefTemplate<CellContext<TData, unknown>>;\n enableSorting?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'xl';\n className?: string;\n hasTooltip?: boolean;\n tooltipPlacement?: Placement;\n aggregateCell?: (cell: CellContext<TData, any>) => ReactNode;\n aggregationFn?: AggregationFn<TData>;\n};\n\ntype ColumnHelpers<TData> = {\n stringAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n linkAccessor: (key: string, options?: ColumnOptions<TData> & { prefetch?: boolean }) => ColumnDef<TData, unknown>;\n buttonAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n badgeAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n dateAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n booleanAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n displayAccessor: (\n key: string,\n cell: ColumnDefTemplate<CellContext<TData, unknown>>,\n options?: ColumnOptions<TData>,\n ) => ColumnDef<TData, unknown>;\n};\n\ntype ColumnHelperFunction = (key: string, options?: Record<string, any>) => string;\n\nconst getDateString = (date: DateColumn) => {\n if (!date) return '';\n\n if (date.options?.format) {\n return toDateString(date.value, { format: date.options.format });\n }\n\n if (date.options?.type === 'time') {\n return toTimeString(date.value);\n }\n\n if (date.options?.type === 'dateTime') {\n return toDateTimeString(date.value);\n }\n\n return toDateString(date.value);\n};\n\nconst useColumnHelpers = <TData extends RowData>(t: ColumnHelperFunction): ColumnHelpers<TData> => {\n const { accessor, display } = useMemo(() => createColumnHelper<TData>(), []);\n const { toStringCell, toOptionCell } = useExcelMapper(t);\n\n const getClassName = useCallback((size: 'sm' | 'md' | 'lg' | 'xl') => {\n const sizes = {\n sm: 'max-w-20',\n md: 'max-w-40',\n lg: 'max-w-60',\n xl: 'max-w-80',\n };\n return `overflow-hidden text-ellipsis ${get(sizes, size, '')} block`;\n }, []);\n\n const createAccessor = useCallback(\n (\n key: any,\n getCellContent: (cell: CellContext<TData, any>, options?: ColumnOptions<TData>) => ReactNode,\n excelMapper: (cell: any) => TStringCell,\n options?: ColumnOptions<TData>,\n ) => {\n const column: ColumnDef<TData, unknown> = {\n header: options?.header ?? t(`component.form.label.${key}`),\n enableSorting: get(options, 'enableSorting', true),\n cell: options?.cell ?? ((cell) => getCellContent(cell, options)),\n aggregatedCell: options?.aggregateCell,\n meta: { excel: excelMapper },\n };\n\n if (options?.aggregationFn) set(column, 'aggregationFn', options.aggregationFn);\n\n return accessor(key, column) as ColumnDef<TData, unknown>;\n },\n [accessor, t],\n );\n\n const createDisplay = useCallback((column: DisplayColumnDef<TData>) => display(column), [display]);\n\n const baseCellRenderer = (value: ReactNode, options?: ColumnOptions<TData>) => {\n const content = (\n <p className={toClassName(options?.size && getClassName(options.size), options?.className)}>{value}</p>\n );\n\n return options?.hasTooltip ? (\n <TooltipElement placement={options?.tooltipPlacement ?? 'bottom-end'} content={value}>\n {content}\n </TooltipElement>\n ) : (\n content\n );\n };\n\n const stringAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(key, (cell) => baseCellRenderer(cell.getValue(), options), toStringCell, options);\n\n const linkAccessor = (key: string, options?: ColumnOptions<TData> & { openInNewTab?: boolean }) =>\n createAccessor(\n key,\n (cell) => {\n const value = cell.getValue();\n if (!value) return null;\n\n const content = value.href ? (\n <a\n href={value.href}\n className={toClassName(options?.size && getClassName(options.size), options?.className)}\n target={options?.openInNewTab ? '_blank' : undefined}\n >\n {value.label}\n </a>\n ) : (\n value.label\n );\n\n return options?.hasTooltip ? (\n <TooltipElement placement={options?.tooltipPlacement ?? 'bottom-end'} content={value.label}>\n {content}\n </TooltipElement>\n ) : (\n content\n );\n },\n toOptionCell,\n options,\n );\n\n const buttonAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(\n key,\n (cell) => {\n const value = cell.getValue();\n if (!value) return null;\n\n const content = (\n <button\n onClick={value.onClick}\n className={toClassName(options?.size && getClassName(options.size), options?.className)}\n >\n {value.label}\n </button>\n );\n\n return options?.hasTooltip ? (\n <TooltipElement placement={options?.tooltipPlacement ?? 'bottom-end'} content={value.label}>\n {content}\n </TooltipElement>\n ) : (\n content\n );\n },\n toOptionCell,\n options,\n );\n\n const badgeAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(\n key,\n (cell) => {\n const value = cell.getValue();\n if (!value) return null;\n\n const content = (\n <BadgeElement\n styles={{\n container: toClassName(options?.size && getClassName(options.size), options?.className),\n }}\n color={value.color || 'gray'}\n >\n {value.label}\n </BadgeElement>\n );\n\n return options?.hasTooltip ? (\n <TooltipElement placement={options?.tooltipPlacement ?? 'bottom-end'} content={value.label}>\n {content}\n </TooltipElement>\n ) : (\n content\n );\n },\n (cell) => (cell ? toStringCell(cell.label) : toStringCell('')),\n options,\n );\n\n const dateAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(\n key,\n (cell) => getDateString(cell.getValue()),\n (cell) => (cell ? toStringCell(getDateString(cell) ?? '') : toStringCell('')),\n options,\n );\n\n const booleanAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(\n key,\n (cell) => {\n const value = cell.getValue();\n const iconClass = value?.value\n ? compact(['text-palette-midnightBlue', value?.options?.trueClassName]).join(' ')\n : compact(['text-palette-lightGray', value?.options?.falseClassName]).join(' ');\n\n return <IconElement className={iconClass} accessor={value?.value ? 'check' : 'xmark'} />;\n },\n (cell) => toStringCell(cell?.value !== undefined ? t(`label.boolean.${cell.value}`) : t('label.boolean.unclear')),\n options,\n );\n\n const displayAccessor = (\n key: string,\n cell: ColumnDefTemplate<CellContext<TData, unknown>>,\n options?: {\n header?: string;\n aggregatedCell?: ColumnDefTemplate<CellContext<TData, unknown>>;\n },\n ) =>\n createDisplay({\n id: key,\n header: options?.header ?? t(`component.form.label.${key}`),\n cell,\n aggregatedCell: options?.aggregatedCell,\n });\n\n return {\n stringAccessor,\n linkAccessor,\n buttonAccessor,\n badgeAccessor,\n dateAccessor,\n booleanAccessor,\n displayAccessor,\n };\n};\n\nexport default useColumnHelpers;\n","export const escapeSpecialCharacters = (str: string) => {\n return str\n .replace(/#/g, \"__HASH__\")\n .replace(/\\?/g, \"__QUESTIONMARK__\")\n .replace(/\\|/g, \"__PIPE__\")\n .replace(/\\\\/g, \"__BACKSLASH__\")\n .replace(/%/g, \"__PROCENT__\")\n .replace(/'/g, \"__QUOTE__\");\n};"],"names":[],"version":3,"file":"index.js.map"}
1
+ {"mappings":"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D,OAAO;AACR;IAGD,2CAAe;;;A,I,iC,a,U,Q,I;I,iC,O,M,I,S,C;Q,I,I,G,I,G,I,U,M,E,I,G,I;Y,I,S,C,E;Y,I,I,K,E,I,O,S,C,c,C,I,C,G,I,C,C,E,G,C,C,E;Q;Q,O;I;I,O,+B,K,C,I,E;A;A,I,sC,a,U,a,I,S,E,E,I,E,I;I,I,Q,U,M,K,G;Q,I,I,I,G,I,K,M,E,I,I,G,I,I,M,C,C,K,I,G;Y,I,C,I,K,M,S,C,K,C,I,C,M,G;Y,E,C,E,G,I,C,E;Q;I;I,O,G,M,C,M,M,S,C,K,C,I,C;A;AF8Df,IAAM,mCAAyC,SAAC,KAAK;I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I;IAEjD,IAAA,KAUE,MAAK,EAVL,EACK,SASL,MAAK,KATM,EACb,OAQE,MAAK,IARH,EACJ,OAOE,MAAK,IAPH,EACJ,WAME,MAAK,QANC,EACR,YAKE,MAAK,SALE,EACT,aAIE,MAAK,UAJG,EACV,WAGE,MAAK,QAHC,EACA,kBAEN,MAAK,MAFgB,EACvB,aACE,MAAK,UADG;IAGN,IAAA,KAA0C,CAAA,GAAA,qBAAA,EAA0B,CAAA,IAAnE,mBAAgB,EAAA,CAAA,EAAA,EAAE,sBAAmB,EAAA,CAAA,EAAiC;IACvE,IAAA,MAAgC,CAAA,GAAA,qBAAA,EAA2B,EAAE,GAA5D,cAAW,GAAA,CAAA,EAAA,EAAE,iBAAc,GAAA,CAAA,EAAkC;IAC9D,IAAA,MAAwB,CAAA,GAAA,qBAAA,EAAuB,AAAA,CAAA,KAAA,AAAA,CAAA,KAAA,OAAO,OAAO,AAAP,MAAO,QAAA,OAAA,KAAA,IAAA,KAAA,IAAA,GAAE,cAAc,AAAd,MAAc,QAAA,OAAA,KAAA,IAAA,KAAI,EAAE,GAAlF,UAAO,GAAA,CAAA,EAAA,EAAE,aAAU,GAAA,CAAA,EAAgE;IACpF,IAAA,MAA0B,CAAA,GAAA,qBAAA,EAAwB,AAAA,CAAA,KAAA,AAAA,CAAA,KAAA,AAAA,CAAA,KAAA,OAAO,OAAO,AAAP,MAAO,QAAA,OAAA,KAAA,IAAA,KAAA,IAAA,GAAE,QAAQ,AAAR,MAAQ,QAAA,OA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","sources":["src/index.tsx","src/components/Element/Avatar/Avatar.tsx","src/helpers/calculate.ts","src/helpers/format.ts","src/helpers/object.ts","src/components/Element/Icon/index.ts","src/components/Element/Icon/Icon.tsx","src/components/Element/Avatar/Avatar.styles.ts","src/components/Element/Alert/Alert.tsx","src/components/Element/Alert/Alert.styles.ts","src/components/Element/Badge/Badge.tsx","src/components/Element/Badge/Badge.styles.ts","src/components/Element/Tooltip/Tooltip.tsx","src/components/Element/Tooltip/Tooltip.styles.ts","src/components/Element/Button/Button.tsx","src/components/Element/Button/Button.styles.ts","src/components/Element/ButtonGroup/ButtonGroup.tsx","src/components/Element/ButtonGroup/ButtonGroup.styles.ts","src/components/Element/Dropdown/Dropdown.tsx","src/components/Element/Dropdown/Dropdown.styles.ts","src/components/Element/Collapsible/Collapsible.tsx","src/components/Element/Collapsible/Collapsible.styles.ts","src/components/Element/ProgressTrack/ProgressTrack.tsx","src/components/Element/Tooltip/index.ts","src/components/Element/ProgressTrack/ProgressTrack.styles.ts","src/components/Input/InputGroup/InputGroup.tsx","src/components/Custom/InputFooter/index.ts","src/components/Custom/InputFooter/InputFooter.tsx","src/components/Custom/InputFooter/InputFooter.styles.ts","src/components/Custom/InputHeader/index.ts","src/components/Custom/InputHeader/InputHeader.tsx","src/components/Custom/InputHeader/InputHeader.styles.ts","src/components/Input/InputGroup/InputGroup.styles.ts","src/components/Layout/Container/Container.tsx","src/components/Layout/Container/Container.styles.ts","src/components/Layout/Divider/Divider.tsx","src/components/Layout/Divider/Divider.styles.ts","src/components/Layout/ListContainer/ListContainer.tsx","src/components/Layout/ListContainer/ListContainer.styles.ts","src/components/Layout/MediaObject/MediaObject.tsx","src/components/Layout/MediaObject/MediaObject.styles.ts","src/components/Layout/Panel/Panel.tsx","src/components/Layout/Panel/Panel.styles.ts","src/components/List/Table/TableList.tsx","src/components/Navigation/PanelPagination/index.ts","src/components/Navigation/PanelPagination/PanelPaginationNavigation.tsx","src/components/Input/SelectMenu/index.ts","src/components/Input/SelectMenu/SelectMenu.tsx","src/components/Input/SelectMenu/SelectMenu.styles.ts","src/components/Navigation/PanelPagination/PanelPaginationNavigation.styles.ts","src/hooks/useExcel.ts","src/components/List/Table/TableList.styles.ts","src/components/List/Table2/TableList2.tsx","src/helpers/localStorage.ts","src/components/List/Table2/TableList2.styles.ts","src/helpers/table.ts","src/components/Navigation/Breadcrumbs/BreadcrumbsNavigation.tsx","src/components/Navigation/Breadcrumbs/BreadcrumbsNavigation.styles.ts","src/components/Navigation/PagePagination/PagePaginationNavigation.tsx","src/components/Navigation/PagePagination/PagePaginationNavigation.styles.ts","src/components/Navigation/Tab/TabNavigation.tsx","src/components/Navigation/Tab/TabNavigation.styles.ts","src/components/Navigation/Vertical/VerticalNavigation.tsx","src/components/Navigation/Vertical/VerticalNavigation.styles.ts","src/components/Overlay/Modal/ModalOverlay.tsx","src/components/Overlay/Modal/ModalOverlay.styles.ts","src/components/Overlay/Notification/NotificationOverlay.tsx","src/components/Overlay/Notification/NotificationOverlay.styles.ts","src/components/Overlay/SlideOver/SlideOverOverlay.tsx","src/components/Overlay/SlideOver/SlideOverOverlay.styles.ts","src/components/Custom/TableColumnOptionsCustom/TableColumnOptionsCustom.tsx","src/components/Custom/TableColumnOptionsCustom/TableColumnOptionsCustom.styles.ts","src/components/Custom/TableExportCustom/index.ts","src/components/Custom/TableExportCustom/TableExportCustom.tsx","src/helpers/date.ts","src/hooks/useExcelMapper.ts","src/components/Input/DateMenu/DateMenu.tsx","src/components/Input/DateRangeMenu/index.ts","src/components/Input/DateRangeMenu/DateRangeMenu.styles.ts","src/components/Input/DateRangeMenu/DateRangeMenu.tsx","src/components/Input/CheckboxInput/CheckboxInput.tsx","src/components/Input/CheckboxInput/CheckboxInput.styles.ts","src/components/Input/Switch/Switch.tsx","src/components/Input/Switch/Switch.styles.ts","src/components/Input/RichTextArea/RichTextArea.tsx","src/components/Input/RichTextArea/RichTextArea.styles.ts","src/components/Input/FileInputGroup/FileInputGroup.tsx","src/components/Input/FileInputGroup/FileInputGroup.styles.ts","src/components/Input/AddressInputGroup/AddressInputGroup.tsx","src/components/Input/AddressInputGroup/AddressInputGroup.styles.ts","src/hooks/useColumnHelper.tsx","src/helpers/query.ts"],"sourcesContent":["export { default as Avatar } from './components/Element/Avatar/Avatar';\nexport { default as Alert } from './components/Element/Alert/Alert';\nexport { default as Badge } from './components/Element/Badge/Badge';\nexport { default as Tooltip } from './components/Element/Tooltip/Tooltip';\nexport { default as Button } from './components/Element/Button/Button';\nexport type { TButtonProps } from './components/Element/Button';\nexport { default as ButtonGroup } from './components/Element/ButtonGroup/ButtonGroup';\nexport { default as Dropdown } from './components/Element/Dropdown/Dropdown';\nexport { default as Icon } from './components/Element/Icon/Icon';\nexport { default as Collapsible } from './components/Element/Collapsible/Collapsible';\nexport { default as ProgressTrackElement } from './components/Element/ProgressTrack/ProgressTrack';\nexport type { TProgressTrackStep } from './components/Element/ProgressTrack';\n\nexport { default as InputGroup } from './components/Input/InputGroup/InputGroup';\nexport type { TInputGroupProps, TInputGroupStyles } from './components/Input/InputGroup';\n\nexport { default as Container } from './components/Layout/Container/Container';\nexport { default as Divider } from './components/Layout/Divider/Divider';\nexport { default as ListContainer } from './components/Layout/ListContainer/ListContainer';\nexport { default as MediaObject } from './components/Layout/MediaObject/MediaObject';\nexport { default as Panel } from './components/Layout/Panel/Panel';\n\nexport { default as TableList } from './components/List/Table/TableList';\nexport type { TTableListProps, TTableListStyles } from './components/List/Table';\nexport { default as TableList2 } from './components/List/Table2/TableList2';\nexport type { TTableListProps as TTableList2Props } from './components/List/Table2';\nexport { createColumnHelper } from './helpers/table';\n\nexport { default as BreadcrumbsNavigation } from './components/Navigation/Breadcrumbs/BreadcrumbsNavigation';\nexport { default as PanelPaginationNavigation } from './components/Navigation/PanelPagination/PanelPaginationNavigation';\nexport { default as PagePaginationNavigation } from './components/Navigation/PagePagination/PagePaginationNavigation';\nexport { default as TabNavigation } from './components/Navigation/Tab/TabNavigation';\nexport { default as VerticalNavigation } from './components/Navigation/Vertical/VerticalNavigation';\n\nexport { default as ModalOverlay } from './components/Overlay/Modal/ModalOverlay';\nexport type { TModalOverlayProps } from './components/Overlay/Modal';\n\nexport { default as NotificationOverlay } from './components/Overlay/Notification/NotificationOverlay';\nexport { default as SlideOverOverlay } from './components/Overlay/SlideOver/SlideOverOverlay';\n\nexport { default as TableColumnOptionsCustom } from './components/Custom/TableColumnOptionsCustom/TableColumnOptionsCustom';\nexport { default as TableExportCustom } from './components/Custom/TableExportCustom';\n\nexport { default as SelectMenu } from './components/Input/SelectMenu/SelectMenu';\nexport type { TSelectMenuProps, TSelectMenuStyles } from './components/Input/SelectMenu';\n\nexport {\n fromSelectMenuOptionToStringValue,\n toClassName,\n toAddressString,\n toAddressUrl,\n toNationalRegistryNumberString,\n toPriceString,\n toReadableFileSize,\n toUserName,\n toUserInitials,\n} from './helpers/format';\nexport {\n toDateString,\n toTimeString,\n isValidDate,\n toDateTimeString,\n toDaysDifference,\n latestDateString,\n toDateValue,\n toTimeValue,\n toUTCDate,\n} from './helpers/date';\n\nexport { default as DateMenu } from './components/Input/DateMenu/DateMenu';\nexport { default as DateRangeMenu } from './components/Input/DateRangeMenu/DateRangeMenu';\nexport type { TDateMenuProps } from './components/Input/DateMenu';\n\nexport type { TDateRangeMenuProps, TDateRangeMenuStyles, TDateMenuStyles } from './components/Input/DateRangeMenu';\n\nexport { default as CheckboxInput } from './components/Input/CheckboxInput/CheckboxInput';\nexport type { TCheckboxInputProps, TCheckboxInputStyles } from './components/Input/CheckboxInput';\n\nexport { default as Switch } from './components/Input/Switch/Switch';\nexport type { TSwitchProps, TSwitchStyles } from './components/Input/Switch';\n\nexport { default as RichTextArea } from './components/Input/RichTextArea/RichTextArea';\nexport type { TRichTextAreaProps, TRichTextAreaStyles } from './components/Input/RichTextArea';\n\nexport { default as FileInputGroup } from './components/Input/FileInputGroup/FileInputGroup';\nexport type { TFileInputGroupProps, TFileInputGroupStyles } from './components/Input/FileInputGroup';\n\nexport { default as AddressInputGroup } from './components/Input/AddressInputGroup/AddressInputGroup';\nexport type {\n TAddressInputGroupProps,\n TAddressInputGroupValue,\n TAddressInputGroupStyles,\n} from './components/Input/AddressInputGroup';\n\nexport { useExcel } from './hooks/useExcel';\nexport { default as useExcelMapper } from './hooks/useExcelMapper';\nexport { default as useColumnHelper } from './hooks/useColumnHelper';\nexport type {\n StringColumn,\n BooleanColumn,\n ButtonColumn,\n DateColumn,\n LinkColumn,\n BadgeColumn,\n} from './hooks/useColumnHelper';\nexport type { TExcelCell, TExcelRow, TExcelSheet } from './hooks/useExcel';\n\nexport { escapeSpecialCharacters } from './helpers/query';\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../Icon';\n\nimport { default as defaultStyles } from './Avatar.styles';\n\nimport { TAvatarStyles } from './index';\nexport type TAvatarProps = {\n src?: string | undefined;\n placeholder?: string | undefined;\n children?: ReactNode | ReactNode[] | string;\n url?: string;\n\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n figure?: 'block' | 'rounded';\n status?: 'offline' | 'online' | 'blocked';\n\n isDisabled?: boolean;\n isLoading?: boolean;\n\n styles?: TAvatarStyles;\n};\n\nconst Avatar: FC<TAvatarProps> = (props) => {\n const {\n src,\n placeholder,\n children,\n url,\n\n size = 'md',\n figure = 'block',\n status,\n\n isDisabled,\n isLoading,\n\n styles: stylesOverrides,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n size && get(defaultStyles[size], key),\n figure && get(defaultStyles[figure], key),\n status && get(defaultStyles[status], key),\n\n isDisabled && get(defaultStyles.disabled, key),\n isLoading && get(defaultStyles.loading, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n if (isLoading) {\n return (\n <span className={styles.loading}>\n <IconElement accessor=\"arrows-rotate\" className={styles.spinner} />\n </span>\n );\n }\n\n if (!placeholder && !src) {\n const userIcon = (\n <svg className=\"h-full w-full text-gray-300\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M24 20.993V24H0v-2.996A14.977 14.977 0 0112.004 15c4.904 0 9.26 2.354 11.996 5.993zM16.002 8.999a4 4 0 11-8 0 4 4 0 018 0z\" />\n </svg>\n );\n\n return (\n <span className={styles.empty}>\n {userIcon}\n {status && <span className={styles.indicator} />}\n </span>\n );\n }\n\n if (!src) {\n return (\n <span className={styles.placeholder}>\n <span className={`text-${size} font-medium leading-none text-white`}>{placeholder}</span>\n {status && <span className={styles.indicator} />}\n </span>\n );\n }\n\n return (\n <a href={url}>\n <div className=\"flex items-center\">\n <span className=\"flex items-center justify-center\">\n <div className={styles.container} style={{ backgroundImage: `url(${src})` }} />\n {status && <span className={styles.indicator} />}\n </span>\n {children && <div className=\"ml-3\">{children}</div>}\n </div>\n </a>\n );\n};\n\nexport default Avatar;\n","export type NestedKeyOf<TObject extends object> = {\n [Key in keyof TObject & string]: TObject[Key] extends object ? `${Key}.${NestedKeyOf<TObject[Key]>}` : Key;\n}[keyof TObject & string];\n\nexport const calculateNestedKeys = <T extends Record<string, any>>(obj: T): NestedKeyOf<T>[] => {\n function flattenHelper(obj: T, prefix: string): NestedKeyOf<T>[] {\n return (Object.keys(obj) as NestedKeyOf<T>[]).reduce((acc, key): NestedKeyOf<T>[] => {\n const fullPath = prefix ? (`${prefix}.${key}` as NestedKeyOf<T>) : key;\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n return [...acc, ...flattenHelper(obj[key], fullPath)];\n } else {\n return [...acc, fullPath];\n }\n }, [] as NestedKeyOf<T>[]);\n }\n\n return flattenHelper(obj, '');\n};\n","import { isArray, map, padStart } from 'lodash';\nimport get from 'lodash/get';\n\n/**\n * Joins valid (truthy) items into a single string, separated by spaces.\n *\n * @param values - An array of values that can be strings, booleans, or undefined.\n * @returns A space-separated string of truthy values.\n *\n * @example\n * toClassName(\"btn\", false, \"btn-primary\"); // => \"btn btn-primary\"\n */\nexport const toClassName = (...values: (boolean | string | undefined)[]): string => values.filter(Boolean).join(' ');\n\n/**\n * Converts a file size in bytes to a human-readable string (e.g. \"1.23 MB\").\n *\n * @param size - The file size in bytes.\n * @returns A human-friendly size (e.g. \"1.23 MB\") or an empty string if size < 0.\n *\n * @example\n * toReadableFileSize(1500000); // => \"1.43 MB\"\n */\nexport const toReadableFileSize = (size: number): string => {\n if (size < 0) return '';\n if (size === 0) return '0 B';\n const i = Math.floor(Math.log(size) / Math.log(1024));\n const value = (size / Math.pow(1024, i)).toFixed(2);\n const unit = ['B', 'kB', 'MB', 'GB', 'TB'][i] ?? 'B';\n return `${value} ${unit}`;\n};\n\nexport const toMergedClasses = <T, K>({\n styles,\n stylesOverrides,\n customStyles,\n identifier,\n\n type,\n}: {\n styles: T;\n stylesOverrides: K;\n identifier: string;\n\n customStyles?: string | undefined;\n type?: string;\n}) =>\n toClassName(\n get(type ? get(styles, type) : styles, identifier),\n get(type ? get(stylesOverrides, type) : stylesOverrides, identifier),\n customStyles,\n );\n\ntype TSelectMenuOption = {\n label: string;\n value: string;\n required?: boolean;\n};\n\nexport const fromSelectMenuOptionToStringValue = (value: TSelectMenuOption | TSelectMenuOption[]) => {\n if (value === null) return null;\n\n if (isArray(value)) {\n return map(value, 'value');\n }\n\n return (value as TSelectMenuOption)?.value;\n};\n\n/**\n * Converts a price in cents to an EUR currency string, using the nl-BE locale.\n *\n * @param price - The price in cents (e.g. 123 for €1,23).\n * @returns A formatted price string (e.g. \"€1,23\") or `'€ -,-'` if invalid.\n *\n * @example\n * toPriceString(123); // => \"€1,23\"\n */\nexport const toPriceString = (price?: number): string => {\n if (price == null || isNaN(price)) {\n return '€ -,-';\n }\n\n return (price / 100).toLocaleString('nl-BE', {\n style: 'currency',\n currency: 'EUR',\n });\n};\n\n/**\n * Formats a Belgian national registry number (NRN) to a standard notation: `xx.xx.xx-xxx.xx`.\n *\n * @param nrn - The NRN string, which may be up to 11 digits.\n * @returns Formatted NRN (e.g. \"93.05.18-223.61\") or empty string if invalid.\n *\n * @example\n * toNationalRegistryNumberString(\"93051822361\");\n * // => \"93.05.18-223.61\"\n */\nexport const toNationalRegistryNumberString = (nrn?: string): string => {\n if (!nrn || nrn.length > 11) {\n return '';\n }\n\n let formatted = nrn;\n if (nrn.length < 11) {\n formatted = padStart(nrn, 11, '0');\n }\n\n return `${formatted.slice(0, 2)}.${formatted.slice(2, 4)}.${formatted.slice(\n 4,\n 6,\n )}-${formatted.slice(6, 9)}.${formatted.slice(9, 11)}`;\n};\n\n/* --------------------------------------------------------------------------\n * USER UTILITIES\n * -------------------------------------------------------------------------- */\n\nexport type TUser = {\n firstName?: string;\n lastName?: string;\n email?: string;\n};\n\n/**\n * Constructs a display name for a user, using first/last name, or falls back to email.\n *\n * @param user - A user object that may contain `firstName`, `lastName`, and `email`.\n * @returns The user's full name, first name only, email, or an empty string if nothing is provided.\n *\n * @example\n * toUserName({ firstName: 'Alice', lastName: 'Smith' }); // => \"Alice Smith\"\n * toUserName({ email: 'test@example.com' }); // => \"test@example.com\"\n */\nexport const toUserName = (user?: TUser): string => {\n if (!user) return '';\n\n const { firstName, lastName, email } = user;\n if (firstName && lastName) return `${firstName} ${lastName}`;\n if (firstName) return firstName;\n if (email) return email;\n return '';\n};\n\n/**\n * Builds an initials string from a user's name or email.\n * If both `firstName` and `lastName` are present, returns the first letters of each.\n * Otherwise, returns the first character of the email or '?' if all else fails.\n *\n * @param user - A user object that may contain `firstName`, `lastName`, or `email`.\n * @returns A 1 or 2-letter string from the user's details.\n *\n * @example\n * toUserInitials({ firstName: 'Alice', lastName: 'Smith' }); // => \"AS\"\n * toUserInitials({ email: 'test@example.com' }); // => \"t\"\n */\nexport const toUserInitials = (user?: TUser): string => {\n if (!user) return '';\n\n const { firstName, lastName, email } = user;\n if (firstName && lastName) return `${firstName[0]}${lastName[0]}`;\n if (email) return email[0];\n return '?';\n};\n\n/* --------------------------------------------------------------------------\n * ADDRESS UTILITIES\n * -------------------------------------------------------------------------- */\n\nexport type TAddressInputGroupFormValue = {\n street?: string;\n houseNumber?: string;\n busNumber?: string;\n zipCode?: string;\n city?: string;\n country?: string;\n lat?: number;\n lng?: number;\n};\n\n/**\n * Converts an address object to a display-friendly string.\n *\n * @param value - The address object containing street, number, bus, city, country, etc.\n * @returns A formatted address string or an empty string if not provided.\n *\n * @example\n * toAddressString({ street: 'Main', houseNumber: '10', zipCode: '1000', city: 'Brussels', country: 'BE' })\n * // => \"Main 10, 1000 Brussels, BE\"\n */\nexport const toAddressString = (value?: Partial<TAddressInputGroupFormValue> | null): string => {\n if (!value) return '';\n const { street, houseNumber, busNumber, zipCode, city, country } = value;\n\n const parts = [\n street && houseNumber ? `${street} ${houseNumber}` : street || '',\n busNumber ? `Bus ${busNumber}` : '',\n zipCode && city ? `${zipCode} ${city}` : '',\n country || '',\n ].filter(Boolean);\n\n return parts.join(', ');\n};\n\n/**\n * Generates a Google Maps search URL from an address object, using lat/lng if provided.\n * Otherwise falls back to a text query of the address fields.\n *\n * @param value - An address object with optional lat/lng or text fields.\n * @returns A Google Maps URL if `value` is provided, otherwise `undefined`.\n *\n * @example\n * toAddressUrl({ lat: 50.8503, lng: 4.3517 });\n * // => \"https://www.google.com/maps/search/?api=1&query=50.8503%2C4.3517\"\n *\n * toAddressUrl({ street: 'Main', houseNumber: '10', zipCode: '1000', city: 'Brussels', country: 'BE' });\n * // => \"https://www.google.com/maps/search/?api=1&query=Main%2010%201000%20Brussels%20BE\"\n */\nexport const toAddressUrl = (value?: Partial<TAddressInputGroupFormValue> | null): string | undefined => {\n if (!value) return undefined;\n const { street, houseNumber, busNumber, zipCode, city, country, lat, lng } = value;\n\n if (lat != null && lng != null) {\n return `https://www.google.com/maps/search/?api=1&query=${lat}%2C${lng}`;\n }\n\n const parts = [street, houseNumber, busNumber ? `Bus ${busNumber}` : '', zipCode, city, country]\n .filter(Boolean)\n .join(' ');\n const query = encodeURIComponent(parts);\n return `https://www.google.com/maps/search/?api=1&query=${query}`;\n};\n","export const deepCopyObject = (object: any) => JSON.parse(JSON.stringify(object));\n","/*\n\n https://fontawesome.com/docs/web/use-with/react/\n\n */\n\nexport { default } from './Icon';\n","import { IconName, library } from '@fortawesome/fontawesome-svg-core';\nimport { fab } from '@fortawesome/free-brands-svg-icons';\nimport { fal } from '@fortawesome/pro-light-svg-icons';\nimport { far } from '@fortawesome/pro-regular-svg-icons';\nimport { fas } from '@fortawesome/pro-solid-svg-icons';\nimport { fat } from '@fortawesome/pro-thin-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { FC } from 'react';\n\ntype TProps = {\n accessor: IconName;\n type?: 'brands' | 'light' | 'regular' | 'solid' | 'thin';\n className?: string;\n};\n\nconst Icon: FC<TProps> = (props) => {\n const { accessor, type = 'regular', className } = props;\n\n let component = <div></div>;\n\n switch (type) {\n case 'brands':\n if (!(library as any)?.definitions.fab) {\n library.add(fab as any);\n }\n component = <FontAwesomeIcon icon={['fab', 'facebook']} className={className} />;\n break;\n case 'light':\n if (!(library as any)?.definitions.fal) {\n library.add(fal);\n }\n\n component = <FontAwesomeIcon icon={['fal', accessor]} className={className} />;\n break;\n case 'regular':\n if (!(library as any)?.definitions.far) {\n library.add(far);\n }\n\n component = <FontAwesomeIcon icon={['far', accessor]} className={className} />;\n break;\n case 'solid':\n if (!(library as any)?.definitions.fas) {\n library.add(fas);\n }\n\n component = <FontAwesomeIcon icon={['fas', accessor]} className={className} />;\n break;\n case 'thin':\n if (!(library as any)?.definitions.fat) {\n library.add(fat);\n }\n\n component = <FontAwesomeIcon icon={['fat', accessor]} className={className} />;\n break;\n }\n\n return component;\n};\n\nexport default Icon;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n loading: 'relative overflow-hidden bg-gray-50 flex items-center justify-center',\n spinner: 'animate-spin text-gray-400',\n empty: 'inline-block relative overflow-hidden bg-gray-50 text-red-400',\n placeholder: 'relative inline-flex items-center justify-center bg-gray-500',\n container: 'inline-block bg-gray-100 bg-cover bg-center',\n indicator: 'absolute top-0 right-0 block h-2.5 w-2.5 rounded-full ring-2 ring-white',\n};\n\nconst xs: TAvatarStyles = {\n loading: 'h-6 w-6',\n spinner: 'h-3 w-3 ',\n empty: 'h-6 w-6',\n placeholder: 'h-6 w-6',\n container: 'h-6 w-6',\n indicator: 'h-1.5 w-1.5',\n};\n\nconst sm: TAvatarStyles = {\n loading: 'h-8 w-8',\n spinner: 'h-5 w-5',\n empty: 'h-8 w-8',\n placeholder: 'h-8 w-8',\n container: 'h-8 w-8',\n indicator: 'h-2 w-2',\n};\n\nconst md: TAvatarStyles = {\n loading: 'h-10 w-10',\n spinner: 'h-7 w-7',\n empty: 'h-10 w-10',\n placeholder: 'h-10 w-10',\n container: 'h-10 w-10',\n indicator: 'h-2.5 w-2.5',\n};\n\nconst lg: TAvatarStyles = {\n loading: 'h-12 w-12',\n spinner: 'h-8 w-8',\n empty: 'h-12 w-12',\n placeholder: 'h-12 w-12',\n container: 'h-12 w-12',\n indicator: 'h-3 w-3',\n};\n\nconst xl: TAvatarStyles = {\n loading: 'h-14 w-14',\n spinner: 'h-10 w-10',\n empty: 'h-14 w-14',\n placeholder: 'h-14 w-14',\n container: 'h-14 w-14',\n indicator: 'h-3.5 w-3.5',\n};\n\nconst block: TAvatarStyles = {\n loading: 'rounded-md',\n spinner: 'rounded-md',\n empty: 'rounded-md',\n placeholder: 'rounded-md',\n container: 'rounded-md',\n indicator: 'transform -translate-y-1/2 translate-x-1/2',\n};\n\nconst rounded: TAvatarStyles = {\n loading: 'rounded-full',\n spinner: 'rounded-full',\n empty: 'rounded-full',\n placeholder: 'rounded-full',\n container: 'rounded-full',\n};\n\nconst disabled: TAvatarStyles = {\n container: 'opacity-20 cursor-not-allowed',\n};\n\nconst loading: TAvatarStyles = {\n container: 'cursor-progress',\n};\n\nconst offline: TAvatarStyles = {\n indicator: 'bg-gray-300',\n};\n\nconst online: TAvatarStyles = {\n indicator: 'bg-green-400',\n};\n\nconst blocked: TAvatarStyles = {\n indicator: 'bg-red-400',\n};\n\nconst styles = {\n base,\n\n xs,\n sm,\n md,\n lg,\n xl,\n\n block,\n rounded,\n\n offline,\n online,\n blocked,\n\n disabled,\n loading,\n};\n\nexport type TAvatarStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { get, set } from 'lodash';\nimport React, { FC, ReactNode, useMemo, useState } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport Icon from '../Icon';\n\nimport { default as defaultStyles } from './Alert.styles';\n\nimport { TAlertStyles } from '.';\n\nexport type TAlertProps = {\n title?: ReactNode;\n message?: ReactNode;\n\n iconAccessor?: IconName;\n type?: 'error' | 'warn' | 'info' | 'success' | 'generic';\n\n isCollapsible?: boolean;\n\n onClose?: () => void;\n onCollapse?: () => void;\n\n styles?: TAlertStyles;\n};\n\nconst Alert: FC<TAlertProps> = (props) => {\n const {\n title,\n message,\n\n type = 'generic',\n\n onClose,\n onCollapse,\n\n isCollapsible = false,\n\n styles: stylesOverrides,\n iconAccessor: iconAccessorOverride,\n } = props;\n\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const iconAccessor = useMemo(() => {\n if (iconAccessorOverride) return iconAccessorOverride;\n\n switch (type) {\n case 'info':\n return 'question-circle';\n case 'error':\n return 'exclamation-triangle';\n case 'warn':\n return 'exclamation-circle';\n case 'success':\n return 'sparkles';\n case 'generic':\n default:\n return undefined;\n }\n }, [iconAccessorOverride, type]);\n\n return (\n <div className={toClassName(styles.container)}>\n {iconAccessor && (\n <div className={styles.iconContainer}>\n <Icon accessor={iconAccessor} className={toClassName(styles.icon)} aria-hidden=\"true\" />\n </div>\n )}\n <div className={styles.content.container}>\n <div>\n {title && <h3 className={toClassName(styles.content.title)}>{title}</h3>}\n {message && !isCollapsed && <p className={toClassName(styles.content.message)}>{message}</p>}\n </div>\n <div className={styles.content.actions}>\n {isCollapsible && (\n <div\n onClick={() => {\n setIsCollapsed(!isCollapsed);\n if (onCollapse) onCollapse();\n }}\n >\n <Icon\n className={toClassName(styles.content.action, isCollapsed && styles.content.inverted)}\n accessor=\"chevron-up\"\n />\n </div>\n )}\n {onClose && (\n <div onClick={onClose}>\n <Icon className={styles.content.action} accessor=\"times\" />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Alert;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'flex rounded-xs p-4 border-l-4',\n\n icon: 'h-5 w-5',\n\n content: {\n container: 'ml-3 flex-1 md:flex md:justify-between ease-in-out transition-transform h-full',\n iconContainer: 'shrink-0',\n title: 'text-md font-semibold',\n message: 'text-sm',\n actions: 'flex gap-2',\n action: 'h-5 w-5 p-0! hover:opacity-60 cursor-pointer',\n inverted: 'rotate-180',\n },\n};\n\nconst generic: TAlertStyles = {\n container: 'bg-gray-50 border-gray-400',\n icon: 'text-gray-400',\n content: {\n actions: 'text-gray-500',\n message: 'text-gray-500',\n title: 'text-gray-500 rotate',\n },\n};\n\nconst error: TAlertStyles = {\n container: 'bg-red-50 border-red-400',\n icon: 'text-red-400',\n content: {\n actions: 'text-red-500',\n message: 'text-red-500',\n title: 'text-red-500',\n },\n};\n\nconst warn: TAlertStyles = {\n container: 'bg-yellow-50 border-orange-400',\n icon: 'text-orange-400',\n content: {\n actions: 'text-orange-500',\n message: 'text-orange-500',\n title: 'text-orange-500',\n },\n};\n\nconst success: TAlertStyles = {\n container: 'bg-green-50 border-green-400',\n icon: 'text-green-400',\n content: {\n actions: 'text-green-500',\n message: 'text-green-500',\n title: 'text-green-500',\n },\n};\n\nconst info: TAlertStyles = {\n container: 'bg-blue-50 border-blue-400',\n icon: 'text-blue-400',\n content: {\n actions: 'text-blue-500',\n message: 'text-blue-500',\n title: 'text-blue-500',\n },\n};\n\nconst styles = {\n base,\n\n generic,\n error,\n warn,\n success,\n info,\n};\n\nexport type TAlertStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { ReactNode, FC, useMemo } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport Icon from '../Icon';\n\nimport { default as defaultStyles } from './Badge.styles';\n\nimport { TBadgeStyles } from '.';\n\nexport type TBadgeColor = 'gray' | 'red' | 'yellow' | 'green' | 'blue' | 'indigo' | 'purple' | 'pink';\n\nexport type TBadgeProps = {\n children: ReactNode;\n\n color?: TBadgeColor;\n type?: 'normal' | 'indicator' | 'close';\n size?: 'sm' | 'lg';\n figure?: 'block' | 'rounded';\n\n isDisabled?: boolean;\n isLoading?: boolean;\n\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n onClose?: (e: React.MouseEvent<HTMLDivElement>) => void;\n\n styles?: TBadgeStyles;\n\n dataCy?: string;\n};\n\nconst Badge: FC<TBadgeProps> = (props) => {\n const {\n children,\n\n color = 'gray',\n type = 'normal',\n size = 'sm',\n figure = 'block',\n\n isDisabled,\n isLoading,\n\n onClick,\n onClose,\n\n styles: stylesOverrides,\n\n dataCy,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n color && get(defaultStyles[color], key),\n size && get(defaultStyles[size], key),\n figure && get(defaultStyles[figure], key),\n\n isDisabled && get(defaultStyles.disabled, key),\n isLoading && get(defaultStyles.loading, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const closeButton = useMemo(() => {\n if (type !== 'close' || !onClose) return null;\n\n const handleClose = (e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n onClose(e);\n };\n\n return (\n <div className={styles.button} onClick={handleClose}>\n <span className=\"sr-only\">Remove large option</span>\n <Icon className={styles.closeIcon} type=\"regular\" accessor=\"times\" />\n </div>\n );\n }, [type, onClose, styles.button, styles.closeIcon]);\n\n if (isLoading) {\n return (\n <span className={toClassName(styles.container, 'h-4 w-12 animate-pulse')}>\n {type === 'indicator' && (\n <svg className={styles.indicator} fill=\"currentColor\" viewBox=\"0 0 8 8\">\n <circle cx={4} cy={4} r={3} />\n </svg>\n )}\n </span>\n );\n }\n\n return (\n <span className={toClassName(styles.container, !!onClick && 'cursor-pointer')} data-cy={dataCy} onClick={onClick}>\n {type === 'indicator' && (\n <svg className={styles.indicator} fill=\"currentColor\" viewBox=\"0 0 8 8\">\n <circle cx={4} cy={4} r={3} />\n </svg>\n )}\n {children}\n {closeButton}\n </span>\n );\n};\n\nexport default Badge;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'inline-flex items-center font-medium py-0.5',\n indicator: '',\n button:\n 'shrink-0 ml-0.5 h-4 w-4 rounded-full inline-flex items-center justify-center focus:text-white focus:outline-hidden cursor-pointer',\n closeIcon: '',\n};\n\nconst normal: TBadgeStyles = {\n container: 'px-2.5',\n};\n\nconst indicator: TBadgeStyles = {\n container: 'px-2.5',\n};\n\nconst close: TBadgeStyles = {\n container: 'pl-2.5 pr-1',\n};\n\nconst primary: TBadgeStyles = {\n container: `shadow-xs text-white bg-primary-600 hover:bg-primary-700`,\n};\n\nconst secondary: TBadgeStyles = {\n container: `shadow-none text-primary-700 bg-primary-100 hover:bg-primary-200`,\n};\n\nconst outline: TBadgeStyles = {\n container: `border-gray-300 text-gray-700 bg-white hover:bg-gray-50`,\n};\n\nconst sm: TBadgeStyles = {\n container: 'text-xs',\n indicator: 'mr-1.5 h-2 w-2 ',\n};\n\nconst lg: TBadgeStyles = {\n container: 'text-sm',\n indicator: '-ml-0.5 mr-1.5 h-2 w-2',\n};\n\nconst block: TBadgeStyles = {\n container: 'rounded-md',\n};\n\nconst rounded: TBadgeStyles = {\n container: 'rounded-full',\n};\n\nconst gray: TBadgeStyles = {\n container: 'bg-gray-100 text-gray-800',\n indicator: 'text-gray-400',\n button: 'text-gray-400 hover:bg-gray-200 hover:text-gray-500 focus:bg-gray-500',\n};\n\nconst red: TBadgeStyles = {\n container: 'bg-red-100 text-red-800',\n indicator: 'text-red-400',\n button: 'text-red-400 hover:bg-red-200 hover:text-red-500 focus:bg-red-500',\n};\n\nconst yellow: TBadgeStyles = {\n container: 'bg-yellow-100 text-yellow-800',\n indicator: 'text-yellow-400',\n button: 'text-yellow-400 hover:bg-yellow-200 hover:text-yellow-500 focus:bg-yellow-500',\n};\n\nconst green: TBadgeStyles = {\n container: 'bg-green-100 text-green-800',\n indicator: 'text-green-400',\n button: 'text-green-400 hover:bg-green-200 hover:text-green-500 focus:bg-green-500',\n};\n\nconst blue: TBadgeStyles = {\n container: 'bg-blue-100 text-blue-800',\n indicator: 'text-blue-400',\n button: 'text-blue-400 hover:bg-blue-200 hover:text-blue-500 focus:bg-blue-500',\n};\n\nconst indigo: TBadgeStyles = {\n container: 'bg-primary-100 text-primary-800',\n indicator: 'text-primary-400',\n button: 'text-primary-400 hover:bg-primary-200 hover:text-primary-500 focus:outline-hidden focus:bg-primary-500',\n};\n\nconst purple: TBadgeStyles = {\n container: 'bg-purple-100 text-purple-800',\n indicator: 'text-purple-400',\n button: 'text-purple-400 hover:bg-purple-200 hover:text-purple-500 focus:bg-purple-500',\n};\n\nconst pink: TBadgeStyles = {\n container: 'bg-pink-100 text-pink-800',\n indicator: 'text-pink-400',\n button: 'text-pink-400 hover:bg-pink-200 hover:text-pink-500 focus:bg-purple-500',\n};\n\nconst disabled: TBadgeStyles = {\n container: 'opacity-20 cursor-not-allowed',\n};\n\nconst loading: TBadgeStyles = {\n container: 'cursor-progress',\n};\n\nconst styles = {\n base,\n\n normal,\n indicator,\n close,\n\n primary,\n secondary,\n outline,\n\n sm,\n lg,\n\n block,\n rounded,\n\n gray,\n red,\n yellow,\n green,\n blue,\n indigo,\n purple,\n pink,\n\n disabled,\n loading,\n};\n\nexport type TBadgeStyles = DeepPartial<typeof base>;\nexport default styles;\n","import {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useHover,\n useFocus,\n useDismiss,\n useRole,\n useInteractions,\n FloatingArrow,\n arrow,\n Placement,\n} from '@floating-ui/react';\nimport { get, set } from 'lodash';\nimport React, { ReactNode, FC, useState, useRef } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './Tooltip.styles';\n\nimport { TTooltipStyles } from '.';\n\nexport type TProps = {\n children: ReactNode;\n content: ReactNode;\n placement?: Placement;\n isPointing?: boolean;\n isHidden?: boolean;\n\n styles?: TTooltipStyles;\n\n dataCy?: string;\n};\n\nconst Tooltip: FC<TProps> = (props) => {\n const {\n children,\n //\n content,\n //\n placement,\n isHidden,\n isPointing,\n //\n styles: stylesOverrides,\n dataCy,\n } = props;\n\n const arrowRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement,\n middleware: [\n offset(10),\n flip(),\n shift(),\n arrow({\n element: arrowRef,\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const hover = useHover(context, { move: false });\n const focus = useFocus(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, {\n // If your reference element has its own label (text).\n role: 'tooltip',\n });\n\n // Merge all the interactions into prop getters\n const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss, role]);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key))));\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const childrenWithProps = React.Children.map(children, (child) => {\n const props = { ref: refs.setReference, ...getReferenceProps() };\n if (React.isValidElement(child)) {\n return React.cloneElement(child, props);\n }\n return child;\n });\n\n if (isHidden) return children;\n\n return (\n <>\n {childrenWithProps}\n {isOpen && (\n <div\n data-cy={dataCy}\n ref={refs.setFloating}\n style={floatingStyles}\n className={toClassName(styles.content, stylesOverrides?.content)}\n {...getFloatingProps()}\n >\n {isPointing && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n fill={styles.arrow.fill}\n stroke={styles.arrow.stroke}\n strokeWidth={Number(styles.arrow.strokeWidth)}\n />\n )}\n {content}\n </div>\n )}\n </>\n );\n};\n\nexport default Tooltip;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'w-fit h-fit relative group/tooltip',\n content:\n 'absolute flex justify-center items-center z-200 tooltip-animate px-4 py-2 border whitespace-nowrap border-palette-grayDarker bg-white font-light text-xs rounded-xs',\n arrow: {\n stroke: '#e5e7eb',\n fill: 'white',\n strokeWidth: '1',\n },\n};\n\nconst styles = {\n base,\n};\n\nexport type TTooltipStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { ReactNode, FC, RefObject, MouseEvent } from 'react';\n\nimport Icon from '../../../components/Element/Icon/Icon';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './Button.styles';\n\nimport { TButtonStyles } from '.';\n\nexport type TButtonProps = {\n children: ReactNode;\n innerRef?: RefObject<HTMLButtonElement | null>;\n htmlType?: 'button' | 'submit';\n\n type?: 'primary' | 'secondary' | 'outline';\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n figure?: 'block' | 'rounded';\n status?: 'idle' | 'loading' | 'success' | 'error';\n\n isDisabled?: boolean;\n\n dataCy?: string;\n\n styles?: TButtonStyles;\n\n onClick?: (e?: MouseEvent<HTMLButtonElement>) => void;\n};\n\nconst Button: FC<TButtonProps> = (props) => {\n const {\n children,\n innerRef,\n htmlType = 'button',\n dataCy,\n type = 'primary',\n size = 'md',\n figure = 'block',\n status = 'idle',\n\n isDisabled,\n\n styles: stylesOverrides,\n\n onClick,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n size && get(defaultStyles[size], key),\n figure && get(defaultStyles[figure], key),\n status && get(defaultStyles[status], key),\n\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <button\n type={htmlType}\n className={styles.container}\n disabled={isDisabled || status !== 'idle'}\n onClick={(e) => {\n onClick && onClick(e);\n }}\n ref={innerRef}\n data-cy={dataCy}\n >\n {status === 'idle' && children}\n {status === 'loading' && (\n <div className={styles.content}>\n <Icon type=\"regular\" accessor=\"spinner\" className={styles.spinner} />\n <div>{children}</div>\n </div>\n )}\n {status === 'error' && (\n <div className={styles.content}>\n <Icon type=\"regular\" accessor=\"circle-exclamation\" className={styles.icon} />\n <div>{children}</div>\n </div>\n )}\n {status === 'success' && (\n <div className={styles.content}>\n <Icon type=\"regular\" accessor=\"circle-check\" className={styles.icon} />\n <div>{children}</div>\n </div>\n )}\n </button>\n );\n};\n\nexport default Button;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container:\n 'inline-flex items-center border border-transparent font-medium focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 duration-300',\n content: 'flex gap-2',\n icon: '',\n spinner: 'animate-spin',\n};\n\nconst primary: TButtonStyles = {\n container: `shadow-xs text-white bg-primary-600 hover:bg-primary-700`,\n};\n\nconst secondary: TButtonStyles = {\n container: `shadow-none text-primary-700 bg-primary-100 hover:bg-primary-200`,\n};\n\nconst outline: TButtonStyles = {\n container: `border-gray-300 text-gray-700 bg-white hover:bg-gray-50`,\n};\n\nconst xs: TButtonStyles = {\n container: 'px-3 py-1.5 text-xs',\n};\n\nconst sm: TButtonStyles = {\n container: 'px-3.5 py-2 text-sm',\n};\n\nconst md: TButtonStyles = {\n container: 'px-4 py-2.5 text-sm',\n};\n\nconst lg: TButtonStyles = {\n container: 'px-5 py-2.5 text-base',\n};\n\nconst xl: TButtonStyles = {\n container: 'px-6 py-3 text-base',\n};\n\nconst block: TButtonStyles = {\n container: 'rounded-md',\n};\n\nconst rounded: TButtonStyles = {\n container: 'rounded-full',\n};\n\nconst idle: TButtonStyles = {};\n\nconst loading: TButtonStyles = {\n container: 'cursor-progress',\n content: 'flex items-center',\n};\n\nconst success: TButtonStyles = {\n container: 'bg-emerald-500! hover:bg-emerald-600 text-white! duration-300',\n content: 'flex items-center',\n};\n\nconst error: TButtonStyles = {\n container: 'bg-rose-400 hover:bg-rose-500 text-white! duration-300',\n content: 'flex items-center',\n};\n\nconst disabled: TButtonStyles = {\n container: 'opacity-20! cursor-not-allowed!',\n};\n\nconst styles = {\n base,\n\n primary,\n secondary,\n outline,\n\n xs,\n sm,\n md,\n lg,\n xl,\n\n block,\n rounded,\n\n idle,\n loading,\n success,\n error,\n\n disabled,\n};\n\nexport type TButtonStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactElement, Children } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './ButtonGroup.styles';\n\nimport { TButtonGroupStyles } from '.';\n\nexport type TProps = {\n children: ReactElement[];\n styles?: TButtonGroupStyles;\n};\n\nconst ButtonGroup: FC<TProps> = (props) => {\n const { children, styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <span className={styles.container}>\n {Children.map(children, (child, index) => {\n let className: string | undefined = styles.button;\n\n if (index === 0) {\n className = styles.firstButton;\n }\n\n if (index === children.length - 1) {\n className = styles.lastButton;\n }\n\n return (\n <button key={child.key ?? index} className={className}>\n {child}\n </button>\n );\n })}\n </span>\n );\n};\n\nexport default ButtonGroup;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative z-0 inline-flex shadow-xs rounded-md',\n firstButton:\n 'relative inline-flex items-center px-4 py-2 rounded-l-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-hidden focus:ring-1 focus:ring-primary-500 focus:border-primary-500',\n button:\n '-ml-px relative inline-flex items-center px-4 py-2 border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-hidden focus:ring-1 focus:ring-primary-500 focus:border-primary-500',\n lastButton:\n '-ml-px relative inline-flex items-center px-4 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-hidden focus:ring-1 focus:ring-primary-500 focus:border-primary-500',\n};\n\nconst styles = {\n base,\n};\n\nexport type TButtonGroupStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Menu, MenuButton, MenuItems, MenuItemsProps, Transition } from '@headlessui/react';\nimport { get, set } from 'lodash';\nimport React, { FC, Fragment, ReactElement, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../Icon';\n\nimport { default as defaultStyles, TDropdownStyles } from './Dropdown.styles';\n\nexport type TProps = {\n children: ReactElement | ReactElement[];\n label?: ReactNode;\n trigger?: ReactNode;\n dataCy?: string;\n\n type?: 'button' | 'compact';\n direction?: MenuItemsProps['anchor'];\n\n isDisabled?: boolean;\n /* Can escape overflow when a parent component is set with a 'relative' class at the level the overflow should break and isEscapingOverflow is set to true. */\n isEscapingOverflow?: boolean;\n\n styles?: TDropdownStyles;\n};\n\nconst Container: FC<TProps> = (props) => {\n const {\n children,\n label,\n trigger,\n dataCy,\n\n type = 'button',\n direction = 'bottom end',\n\n isDisabled = false,\n isEscapingOverflow = false,\n\n styles: stylesOverrides,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <Menu as=\"div\" className={toClassName(styles.container, !isEscapingOverflow && 'relative')}>\n <div>\n {type === 'button' &&\n (!trigger ? (\n <MenuButton disabled={isDisabled} className={styles.button} data-cy={dataCy}>\n {label}\n <div className=\"ml-2\">\n <IconElement accessor=\"chevron-down\" type=\"solid\" />\n </div>\n </MenuButton>\n ) : (\n <MenuButton disabled={isDisabled} data-cy={dataCy}>\n {trigger}\n </MenuButton>\n ))}\n {type === 'compact' && (\n <MenuButton disabled={isDisabled} className={styles.compact} data-cy={dataCy}>\n <span className=\"sr-only\">{label}</span>\n <div className={styles.dots}>\n <IconElement accessor=\"ellipsis-vertical\" type=\"solid\" />\n </div>\n </MenuButton>\n )}\n </div>\n <Transition\n as={Fragment}\n enter=\"transition ease-out duration-100\"\n enterFrom=\"transform opacity-0 scale-95\"\n enterTo=\"transform opacity-100 scale-100\"\n leave=\"transition ease-in duration-75\"\n leaveFrom=\"transform opacity-100 scale-100\"\n leaveTo=\"transform opacity-0 scale-95\"\n >\n <MenuItems anchor={direction} className={styles.items}>\n {children}\n </MenuItems>\n </Transition>\n </Menu>\n );\n};\n\nconst Dropdown: {\n Container: FC<TProps>;\n Item: typeof Menu.Item;\n} = {\n Container,\n Item: Menu.Item,\n};\n\nexport default Dropdown;\n","import { DeepPartialType } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'inline-block text-left',\n button:\n 'cursor-pointer inline-flex justify-center w-full rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-primary-500',\n compact:\n 'cursor-pointer bg-gray-100 rounded-full flex items-center text-gray-400 hover:text-gray-600 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-primary-500',\n dots: 'h-7 w-7 p-1 flex items-center justify-center',\n items:\n 'z-10 absolute mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black/5 divide-y divide-gray-100 focus:outline-hidden',\n};\n\nconst button: TDropdownStyles = {};\n\nconst compact: TDropdownStyles = {};\n\nconst bottomLeft: TDropdownStyles = {\n items: 'origin-top-right right-0',\n};\n\nconst bottomRight: TDropdownStyles = {\n items: 'origin-top-left left-0',\n};\n\nconst topLeft: TDropdownStyles = {\n items: 'origin-bottom-right right-0 bottom-0',\n};\n\nconst topRight: TDropdownStyles = {\n items: 'origin-bottom-left left-0 bottom-0',\n};\n\nconst disabled: TDropdownStyles = {\n button: 'opacity-50 cursor-not-allowed!',\n compact: 'opacity-50 cursor-not-allowed!',\n};\n\nconst styles = {\n base,\n\n button,\n compact,\n\n 'bottom-left': bottomLeft,\n 'bottom-right': bottomRight,\n 'top-left': topLeft,\n 'top-right': topRight,\n\n disabled,\n};\n\nexport type TDropdownStyles = DeepPartialType<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport { FC, ReactNode, useCallback, useState } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../Icon';\n\nimport { default as defaultStyles } from './Collapsible.styles';\n\nimport { TCollapsibleStyles } from '.';\n\ntype TProps = {\n children: ReactNode;\n isDefaultOpen?: boolean;\n styles?: TCollapsibleStyles;\n trigger: (props: { handleToggle: () => void; rotatingIcon: ReactNode; isVisible: boolean }) => ReactNode;\n};\n\nconst RotatingIcon: FC<{ isVisible: boolean; styles: any }> = ({ isVisible, styles }) => (\n <div className={styles.icon.container}>\n <IconElement className={styles.icon.svg} accessor=\"chevron-right\" />\n </div>\n);\n\nconst Collapsible: FC<TProps> = (props) => {\n const { children, isDefaultOpen = false, trigger, styles: stylesOverrides } = props;\n\n const [isVisible, setIsVisible] = useState(isDefaultOpen);\n\n const handleToggle = useCallback(() => setIsVisible((visibility) => !visibility), []);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles);\n const keys = calculateNestedKeys(defaultStyles);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles, key),\n isVisible && key.includes('icon.container') && defaultStyles.icon.rotate,\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div className={styles.container}>\n {trigger({ handleToggle, rotatingIcon: <RotatingIcon isVisible={isVisible} styles={styles} />, isVisible })}\n {isVisible && <div>{children}</div>}\n </div>\n );\n};\n\nexport default Collapsible;\n","import { DeepPartialType } from '../../../types/DeepPartialType';\n\nconst styles = {\n container: '',\n icon: {\n container: 'w-4 h-4 flex ease-in-out duration-300',\n rotate: 'transform rotate-90',\n svg: 'w-4 h-4 flex',\n },\n};\n\nexport type TCollapsibleStyles = DeepPartialType<typeof styles>;\nexport default styles;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { get, map } from 'lodash';\nimport { set } from 'lodash';\nimport { FC, useCallback } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../Icon';\nimport TooltipElement from '../Tooltip';\n\nimport { TProgressTrackStyles } from './ProgressTrack.styles';\nimport { default as defaultStyles } from './ProgressTrack.styles';\n\nexport type TProgressTrackStep = {\n icon: IconName;\n colorCls?: string;\n tooltip?: string;\n};\n\nexport type TProgressTrackProps = {\n steps: TProgressTrackStep[];\n styles?: TProgressTrackStyles;\n dataCy?: string;\n};\n\nconst ProgressTrack: FC<TProgressTrackProps> = (props) => {\n const { styles: stylesOverrides } = props;\n\n const handleGenerateStyle = useCallback(() => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key))));\n\n return result;\n }, [stylesOverrides]);\n\n const styles = handleGenerateStyle();\n\n const renderStep = useCallback(\n (step: TProgressTrackStep) => {\n const icon = <IconElement accessor={step.icon} className={toClassName(styles.icon, step.colorCls)} />;\n\n return step.tooltip ? (\n <TooltipElement placement=\"top\" content={step.tooltip} isPointing>\n <div className={toClassName(styles.tooltipContainer)}>{icon}</div>\n </TooltipElement>\n ) : (\n icon\n );\n },\n [styles],\n );\n\n return (\n <div className={styles.stepsWrapper}>\n {map(props.steps, (step, index) => (\n <div key={`progress-track-step-${index}`} className={styles.stepContainer}>\n {renderStep(step)}\n </div>\n ))}\n </div>\n );\n};\n\nexport default ProgressTrack;\n","export type { TTooltipStyles } from './Tooltip.styles';\n\nexport { default } from './Tooltip';\nexport { default as styles } from './Tooltip.styles';\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'w-fit h-fit relative group/tooltip',\n icon: 'w-4! h-4! border-2 border-black rounded-full p-0.5 text-sm',\n\n defaultIcon: 'text-gray-500 border-gray-500',\n successIcon: 'text-green-500 border-green-500',\n errorIcon: 'text-red-500 border-red-500',\n pendingIcon: 'text-blue-500 border-blue-500 animate-spin',\n\n stepContainer: `flex items-center after:content-[''] after:w-2 after:h-[2px] after:bg-gray-300 after:ml-0.5 after:mr-0.5 last:after:content-none`,\n stepLine: 'flex-1 h-px bg-gray-200',\n stepsWrapper: 'flex items-center',\n tooltipContainer: 'flex',\n};\n\nconst styles = {\n base,\n};\n\nexport type TProgressTrackStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { useMask } from '@react-input/mask';\nimport { concat, get, set } from 'lodash';\nimport React, {\n ChangeEventHandler,\n FC,\n FocusEventHandler,\n HTMLInputTypeAttribute,\n KeyboardEventHandler,\n MouseEventHandler,\n RefObject,\n ReactNode,\n useEffect,\n useRef,\n} from 'react';\n\nimport InputFooter, { TInputFooterSharedProps, footerStyles } from '../../../components/Custom/InputFooter';\nimport InputHeader, { TInputHeaderSharedProps, headerStyles } from '../../../components/Custom/InputHeader';\nimport IconElement from '../../../components/Element/Icon/Icon';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './InputGroup.styles';\n\nimport { TInputGroupStyles } from '.';\n\nexport type TInputGroupProps = TInputHeaderSharedProps &\n TInputFooterSharedProps & {\n name: string;\n\n placeholder?: string;\n\n leading?: ReactNode;\n trailing?: ReactNode;\n\n value: string;\n mask?: { mask: string; replacementCharacter?: string };\n min?: number | string;\n max?: number | string;\n step?: number | string;\n maxLength?: number;\n rows?: number;\n\n type: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n\n isDisabled?: boolean;\n isSolo?: boolean;\n setRefOnLoad?: (ref: RefObject<HTMLInputElement | null>) => void;\n\n styles?: TInputGroupStyles;\n } & (\n | {\n htmlType: 'area';\n onChange: ChangeEventHandler<HTMLTextAreaElement>;\n onBlur: FocusEventHandler<HTMLTextAreaElement>;\n onClick?: MouseEventHandler<HTMLTextAreaElement>;\n onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;\n onClear?: never;\n trailing?: ReactNode;\n }\n | {\n htmlType: 'text' | 'date';\n onChange: ChangeEventHandler<HTMLInputElement>;\n onBlur: FocusEventHandler<HTMLInputElement>;\n onClick?: MouseEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onClear?: () => void;\n trailing?: never;\n }\n | {\n htmlType: Exclude<HTMLInputTypeAttribute, 'text' | 'date'>;\n onChange: ChangeEventHandler<HTMLInputElement>;\n onBlur: FocusEventHandler<HTMLInputElement>;\n onClick?: MouseEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onClear?: never;\n trailing?: ReactNode;\n }\n );\n\nconst InputGroup: FC<TInputGroupProps> = (props) => {\n const {\n name,\n htmlType = 'text',\n\n label,\n hint,\n description,\n placeholder,\n\n leading,\n trailing,\n required,\n\n value,\n mask,\n min,\n max,\n step,\n maxLength,\n rows,\n error,\n\n type = 'normal',\n\n isDisabled,\n isRequired = false,\n isTouched = false,\n isSolo = false,\n isOptionalLabelHidden = false,\n\n onChange,\n onClear,\n onBlur,\n onClick,\n onKeyDown,\n setRefOnLoad,\n\n styles: stylesOverrides,\n } = props;\n\n const isValid = error === undefined;\n\n const maskRef = useMask({\n mask: mask?.mask,\n replacement: { [mask?.replacementCharacter ?? 'X']: /\\d|\\D/ },\n });\n\n const defaultRef = useRef<HTMLInputElement | null>(null);\n\n const ref = mask ? maskRef : defaultRef;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = concat(\n calculateNestedKeys(defaultStyles.base),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n leading !== undefined && get(defaultStyles.leading, key),\n trailing !== undefined && get(defaultStyles.trailing, key),\n\n type && get(defaultStyles[type], key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const invalidIcon = (\n <div className=\"h-5 w-5 text-red-500 flex items-center justify-center\">\n <IconElement accessor=\"exclamation-circle\" type=\"solid\" />\n </div>\n );\n\n const isClearable = !trailing && isValid && onClear && value !== '' && value;\n\n const inputDataCy = `form-input-${name}`;\n\n useEffect(() => {\n if (ref.current && ref.current !== null && setRefOnLoad) setRefOnLoad(ref);\n }, [ref, setRefOnLoad]);\n\n return (\n <div className={styles.container}>\n <InputHeader\n name={name}\n label={label}\n required={required}\n isRequired={isRequired}\n isOptionalLabelHidden={isOptionalLabelHidden}\n styles={styles}\n type={type}\n description={description}\n />\n <div className={styles.body}>\n {leading && <div className={styles.leading}>{leading}</div>}\n {!htmlType ||\n (htmlType !== 'area' && (\n <div className=\"flex items-center\">\n <input\n type={mask !== undefined ? 'text' : htmlType}\n ref={ref}\n name={name}\n id={name}\n data-cy={inputDataCy}\n className={toClassName(styles.input, htmlType === 'color' && 'h-10!')}\n placeholder={placeholder}\n defaultValue={isSolo ? value : undefined}\n value={isSolo ? undefined : value}\n min={min}\n max={max}\n step={step}\n maxLength={maxLength}\n disabled={isDisabled}\n onChange={onChange as ChangeEventHandler<HTMLInputElement>}\n onBlur={onBlur as FocusEventHandler<HTMLInputElement>}\n onClick={onClick as MouseEventHandler<HTMLInputElement>}\n onKeyDown={onKeyDown as KeyboardEventHandler<HTMLInputElement>}\n />\n {htmlType === 'text' && isClearable && (\n <div className=\"right-5 px-2 absolute cursor-pointer hover:opacity-60\" onClick={onClear}>\n <IconElement accessor=\"times\" className=\"text-gray-500\" />\n </div>\n )}\n {htmlType === 'date' && isClearable && (\n <div className=\"right-10 px-2 absolute cursor-pointer hover:opacity-60\" onClick={onClear}>\n <IconElement accessor=\"times\" className=\"text-gray-500\" />\n </div>\n )}\n </div>\n ))}\n {htmlType === 'area' && (\n <textarea\n rows={rows}\n name={name}\n id={name}\n data-cy={inputDataCy}\n className={styles.input}\n placeholder={placeholder}\n defaultValue={isSolo ? value : undefined}\n value={isSolo ? undefined : value}\n maxLength={maxLength}\n disabled={isDisabled}\n onChange={onChange as ChangeEventHandler<HTMLTextAreaElement>}\n onBlur={onBlur as FocusEventHandler<HTMLTextAreaElement>}\n onClick={onClick as MouseEventHandler<HTMLTextAreaElement>}\n onKeyDown={onKeyDown as KeyboardEventHandler<HTMLTextAreaElement>}\n />\n )}\n {type === 'floored' && (\n <div\n className=\"absolute inset-x-0 bottom-0 border-t border-gray-300 peer-focus:border-t-2 peer-focus:border-primary-600\"\n aria-hidden=\"true\"\n />\n )}\n {trailing && isValid && <div className={styles.trailing}>{trailing}</div>}\n {isTouched && !isValid && <div className={styles.trailing}>{invalidIcon}</div>}\n </div>\n <InputFooter name={name} hint={hint} error={error} isTouched={isTouched} styles={styles} type={type} />\n </div>\n );\n};\n\nexport default InputGroup;\n","export { default } from './InputFooter';\nexport { default as footerStyles } from './InputFooter.styles';\nexport type { TInputFooterStyles } from './InputFooter.styles';\nexport type { TInputFooterSharedProps } from './InputFooter';\n","import { get, isNil, set } from 'lodash';\nimport { FC, ReactNode, useMemo } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles, TInputFooterStyles } from './InputFooter.styles';\n\nexport type TInputFooterSharedProps = {\n hint?: ReactNode;\n error?: ReactNode;\n isTouched?: boolean;\n};\n\ntype TInputFooterProps = TInputFooterSharedProps & {\n name?: string;\n isHidden?: boolean;\n type?: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n styles?: TInputFooterStyles;\n};\n\nconst InputFooter: FC<TInputFooterProps> = (props) => {\n const { name, hint, error, isTouched, isHidden = false, styles: stylesOverrides, type = 'normal' } = props;\n\n const errorDataCy = name ? `form-input-error-${name}` : undefined;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const hintElement = useMemo(() => {\n if (!hint || (error && isTouched)) return null;\n return <p className={styles.hint}>{hint}</p>;\n }, [hint, styles.hint, error, isTouched]);\n\n const errorElement = useMemo(() => {\n if (!error || !isTouched) return null;\n return (\n <p className={styles.error} data-cy={errorDataCy}>\n {error}\n </p>\n );\n }, [error, styles.error, errorDataCy, isTouched]);\n\n if (isHidden || (isNil(errorElement) && isNil(hintElement))) return null;\n\n return (\n <div className={styles.foot}>\n {hintElement}\n {errorElement}\n </div>\n );\n};\n\nexport default InputFooter;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n foot: '',\n hint: 'text-gray-400 text-xs mt-1',\n error: 'text-red-500 text-xs ml-5 mt-1',\n};\n\nconst leading: TInputFooterStyles = {};\n\nconst trailing: TInputFooterStyles = {};\n\nconst normal: TInputFooterStyles = {\n hint: 'mt-2 text-sm',\n};\n\nconst inset: TInputFooterStyles = {\n hint: 'hidden',\n};\n\nconst overlapping: TInputFooterStyles = {\n hint: 'hidden',\n};\n\nconst pill: TInputFooterStyles = {\n hint: 'text-xs',\n foot: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mt-1 pr-6',\n};\n\nconst floored: TInputFooterStyles = {\n hint: 'text-xs mt-2',\n};\n\nconst invalid: TInputFooterStyles = {\n hint: 'text-sm text-red-600',\n};\n\nconst disabled: TInputFooterStyles = {\n hint: 'text-gray-500',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TInputFooterStyles = DeepPartial<typeof base>;\nexport default styles;\n","export { default } from './InputHeader';\nexport { default as headerStyles } from './InputHeader.styles';\nexport type { TInputHeaderStyles } from './InputHeader.styles';\nexport type { TInputHeaderSharedProps } from './InputHeader';\n","import { get, isNil, set } from 'lodash';\nimport { FC, ReactNode, useMemo } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles, TInputHeaderStyles } from './InputHeader.styles';\n\nexport type TInputHeaderSharedProps = {\n label?: ReactNode;\n description?: ReactNode;\n required?: ({ isRequired }: { isRequired: boolean }) => ReactNode;\n isRequired?: boolean;\n isOptionalLabelHidden?: boolean;\n};\n\ntype TInputHeaderProps = TInputHeaderSharedProps & {\n name?: string;\n type?: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n styles?: TInputHeaderStyles;\n};\n\nconst InputHeader: FC<TInputHeaderProps> = (props) => {\n const {\n name,\n label,\n description,\n required,\n isRequired = false,\n isOptionalLabelHidden,\n styles: stylesOverrides,\n type = 'normal',\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const requiredLabel = useMemo(() => {\n if (required) return required({ isRequired });\n else if (!isRequired && typeof label === 'string' && !isOptionalLabelHidden)\n return <span className={styles.header.optional}>Optional</span>;\n return null;\n }, [isOptionalLabelHidden, isRequired, label, required, styles.header.optional]);\n\n const labelElement = useMemo(() => {\n if (!label && isNil(requiredLabel)) return null;\n return (\n <div className={styles.header.labelWrapper}>\n <label htmlFor={name} className={styles.header.label}>\n {label}\n </label>\n {requiredLabel}\n </div>\n );\n }, [label, name, requiredLabel, styles.header.labelWrapper, styles.header.label]);\n\n const descriptionElement = useMemo(() => {\n if (!description) return null;\n return <p className={styles.header.description}>{description}</p>;\n }, [description, styles.header.description]);\n\n if (isNil(labelElement) && isNil(descriptionElement)) return null;\n\n return (\n <div className={styles.header.container}>\n {labelElement}\n {descriptionElement}\n </div>\n );\n};\n\nexport default InputHeader;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n header: {\n container: 'flex flex-col justify-end',\n labelWrapper: 'flex',\n label: '',\n required: '',\n optional: 'ml-auto text-xs text-gray-500',\n description: 'text-xs font-light',\n },\n};\n\nconst normal: TInputHeaderStyles = {\n header: {\n container: 'mb-2',\n label: 'leading-6 text-sm',\n optional: 'leading-6',\n },\n};\n\nconst inset: TInputHeaderStyles = {\n header: {\n label: 'text-xs',\n optional: 'text-xs',\n },\n};\n\nconst overlapping: TInputHeaderStyles = {\n header: {\n container: 'flex flex-col justify-end',\n labelWrapper: 'absolute flex justify-between items-center left-0 -top-2 right-0 mx-2 z-10 w-full',\n label: 'inline-block bg-white px-1 text-xs font-medium text-gray-900',\n required: '',\n optional: 'text-xs mr-4 bg-white px-1',\n description: 'hidden',\n },\n};\n\nconst pill: TInputHeaderStyles = {\n header: {\n labelWrapper: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mb-1 pr-6',\n description: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mb-1 pr-6',\n },\n};\n\nconst floored: TInputHeaderStyles = {\n header: {\n label: 'block text-sm font-medium leading-6 text-gray-900',\n },\n};\n\nconst styles = {\n base,\n normal,\n inset,\n overlapping,\n pill,\n floored,\n};\n\nexport type TInputHeaderStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { TInputFooterStyles } from '../../../components/Custom/InputFooter';\nimport { TInputHeaderStyles } from '../../../components/Custom/InputHeader';\nimport { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n body: 'relative rounded-md',\n leading: 'pointer-events-none absolute inset-y-0 left-0 flex items-center',\n input: 'block w-full',\n trailing: 'pointer-events-none absolute inset-y-0 right-0 flex items-center',\n error: 'ml-5',\n};\n\nconst leading: TInputGroupStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TInputGroupStyles = {};\n\nconst normal: TInputGroupStyles = {\n leading: 'pl-3',\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n trailing: 'pr-3',\n};\n\nconst inset: TInputGroupStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n};\n\nconst overlapping: TInputGroupStyles = {\n container: 'relative',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n};\n\nconst pill: TInputGroupStyles = {\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n trailing: 'pr-2',\n};\n\nconst floored: TInputGroupStyles = {\n body: 'relative mt-2',\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n};\n\nconst invalid: TInputGroupStyles = {\n container: 'ring-red-500',\n input:\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 pr-10',\n};\n\nconst disabled: TInputGroupStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TInputGroupStyles = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './Container.styles';\n\nimport { TContainerStyles } from '.';\n\nexport type TProps = {\n children: ReactNode;\n\n type?: 'break' | 'center' | 'fill';\n styles?: TContainerStyles;\n};\n\nconst Container: FC<TProps> = (props) => {\n const { children, type = 'break', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const handleGenerateComponent = () => {\n let result;\n\n const styles = handleGenerateStyle();\n\n switch (type) {\n case 'break':\n result = <div className={styles.container}>{children}</div>;\n break;\n case 'center':\n result = (\n <div className={styles.container}>\n <div className={styles.content}>{children}</div>\n </div>\n );\n break;\n case 'fill':\n result = <div className={styles.container}>{children}</div>;\n break;\n }\n\n return result;\n };\n\n return handleGenerateComponent();\n};\n\nexport default Container;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n content: '',\n};\n\nconst breakStyles: TContainerStyles = {\n container: 'container mx-auto sm:px-6 lg:px-8',\n};\n\nconst center: TContainerStyles = {\n container: 'max-w-7xl mx-auto px-4 sm:px-6 lg:px-8',\n content: 'max-w-4xl 3xl:max-w-6xl mx-auto',\n};\n\nconst fill: TContainerStyles = {\n container: 'max-w-7xl mx-auto sm:px-6 lg:px-8',\n};\n\nconst styles = {\n base,\n\n break: breakStyles,\n center,\n fill,\n};\n\nexport type TContainerStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TDividerStyles } from '.';\nimport { default as defaultStyles } from './Divider.styles';\n\nexport type TProps = {\n children?: ReactNode;\n\n type?: 'left' | 'center' | 'right';\n\n styles?: TDividerStyles;\n};\n\nconst Divider: FC<TProps> = (props) => {\n const { children, type = 'left', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div className={styles.container}>\n <div className={styles.head} aria-hidden=\"true\">\n <div className={styles.line} />\n </div>\n <div className={styles.body}>\n <div className={styles.content}>{children}</div>\n </div>\n </div>\n );\n};\n\nexport default Divider;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative',\n head: 'absolute inset-0 flex items-center',\n line: 'w-full border-t border-gray-300',\n body: 'relative flex',\n content: 'bg-white text-sm text-gray-500',\n};\n\nconst left: TDividerStyles = {\n body: 'justify-start',\n};\n\nconst center: TDividerStyles = {\n body: 'justify-center',\n};\n\nconst right: TDividerStyles = {\n body: 'justify-end',\n};\n\nconst styles = {\n base,\n\n left,\n center,\n right,\n};\n\nexport type TDividerStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactElement, Children } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TListContainerStyles } from '.';\nimport { default as defaultStyles } from './ListContainer.styles';\n\nexport type TProps = {\n children: ReactElement | ReactElement[];\n\n type?: 'fill' | 'fill-sticky' | 'center' | 'center-sticky' | 'card' | 'card-sticky';\n\n styles?: TListContainerStyles;\n};\n\nconst ListContainer: FC<TProps> = (props) => {\n const { children, type = 'fill', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div className={styles.container}>\n <ul className={styles.list}>\n {Children.map(children, (child, index) => (\n <li key={child.key ?? index} className={styles.item}>\n {child}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport default ListContainer;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n list: '',\n item: '',\n};\n\nconst fill: TListContainerStyles = {\n list: 'divide-y divide-gray-200',\n item: 'py-4',\n};\n\nconst fillSticky: TListContainerStyles = {\n list: 'divide-y divide-gray-200',\n item: 'px-4 py-4 sm:px-0',\n};\n\nconst center: TListContainerStyles = {\n container: 'bg-white shadow-sm overflow-hidden rounded-md',\n list: 'divide-y divide-gray-200',\n item: 'px-6 py-4',\n};\n\nconst centerSticky: TListContainerStyles = {\n container: 'bg-white shadow-sm overflow-hidden sm:rounded-md',\n list: 'divide-y divide-gray-200',\n item: 'px-4 py-4 sm:px-6',\n};\n\nconst card: TListContainerStyles = {\n list: 'space-y-3',\n item: 'bg-white shadow-sm overflow-hidden rounded-md px-6 py-4',\n};\n\nconst cardSticky: TListContainerStyles = {\n list: 'space-y-3',\n item: 'bg-white shadow-sm overflow-hidden px-4 py-4 sm:px-6 sm:rounded-md',\n};\n\nconst styles = {\n base,\n\n fill,\n 'fill-sticky': fillSticky,\n center,\n 'center-sticky': centerSticky,\n card,\n 'card-sticky': cardSticky,\n};\n\nexport type TListContainerStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode, DetailedReactHTMLElement, HTMLAttributes } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TMediaObjectStyles } from '.';\nimport { default as defaultStyles } from './MediaObject.styles';\n\nexport type Element = DetailedReactHTMLElement<HTMLAttributes<HTMLElement>, HTMLElement>;\n\nexport type TProps = {\n title: string;\n paragraph: string;\n figure?: ReactNode;\n\n type?:\n | 'top'\n | 'top-reversed'\n | 'center'\n | 'center-reversed'\n | 'bottom'\n | 'bottom-reversed'\n | 'stretch'\n | 'stretch-reversed'\n | 'responsive'\n | 'responsive-reversed'\n | 'wide'\n | 'wide-reversed';\n\n styles?: TMediaObjectStyles;\n};\n\nconst MediaObject: FC<TProps> = (props) => {\n const { title, paragraph, figure: customFigure, type = 'top', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const handleGenerateComponent = () => {\n let result: ReactNode = (\n <svg\n className={styles.svg}\n preserveAspectRatio=\"none\"\n stroke=\"currentColor\"\n fill=\"none\"\n viewBox=\"0 0 200 200\"\n aria-hidden=\"true\"\n >\n <path vectorEffect=\"non-scaling-stroke\" strokeWidth={1} d=\"M0 0l200 200M0 200L200 0\" />\n </svg>\n );\n\n if (customFigure) {\n result = React.cloneElement(customFigure as Element, {\n className: styles.svg,\n });\n }\n\n return result;\n };\n\n const $svg = handleGenerateComponent();\n\n return (\n <div className={styles.container}>\n <div className={styles.figure}>{$svg}</div>\n <div>\n <h4 className={styles.title}>{title}</h4>\n <p className={styles.paragraph}>{paragraph}</p>\n </div>\n </div>\n );\n};\n\nexport default MediaObject;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n figure: 'mr-4 shrink-0',\n svg: 'h-16 w-16 border border-gray-300 bg-white text-gray-300',\n title: 'text-lg font-bold',\n paragraph: 'mt-1',\n};\n\nconst top: TMediaObjectStyles = {\n container: 'flex flex-row',\n};\n\nconst topReversed: TMediaObjectStyles = {\n container: 'flex flex-row-reverse',\n};\n\nconst center: TMediaObjectStyles = {\n container: 'flex flex-row',\n figure: 'self-center',\n};\n\nconst centerReversed: TMediaObjectStyles = {\n container: 'flex flex-row-reverse',\n figure: 'self-center',\n};\n\nconst bottom: TMediaObjectStyles = {\n container: 'flex flex-row',\n figure: 'self-end',\n};\n\nconst bottomReversed: TMediaObjectStyles = {\n container: 'flex flex-row-reverse',\n figure: 'self-end',\n};\n\nconst stretch: TMediaObjectStyles = {\n container: 'flex flex-row',\n svg: 'h-full',\n};\n\nconst stretchReversed: TMediaObjectStyles = {\n container: 'flex flex-row-reverse',\n svg: 'h-full',\n};\n\nconst responsive: TMediaObjectStyles = {\n container: 'sm:flex flex-row',\n figure: 'sm:mb-0 sm:mr-4',\n};\n\nconst responsiveReversed: TMediaObjectStyles = {\n container: 'sm:flex flex-row-reverse',\n figure: 'sm:mb-0 sm:mr-4',\n};\n\nconst wide: TMediaObjectStyles = {\n container: 'sm:flex flex-row',\n figure: 'mb-4 md:mb-0 sm:mr-4 sm:mb-4',\n svg: 'h-32 w-full sm:w-32',\n};\n\nconst wideReversed: TMediaObjectStyles = {\n container: 'sm:flex flex-row-reverse',\n figure: 'mb-4 md:mb-0 sm:mr-4 sm:mb-4',\n svg: 'h-32 w-full sm:w-32',\n};\n\nconst styles = {\n base,\n\n top,\n 'top-reversed': topReversed,\n center,\n 'center-reversed': centerReversed,\n bottom,\n 'bottom-reversed': bottomReversed,\n stretch,\n 'stretch-reversed': stretchReversed,\n responsive,\n 'responsive-reversed': responsiveReversed,\n wide,\n 'wide-reversed': wideReversed,\n};\n\nexport type TMediaObjectStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { TPanelStyles } from '.';\nimport { default as defaultStyles } from './Panel.styles';\n\nexport type TContainerProps = {\n children: ReactNode;\n\n type?: 'normal' | 'sticky';\n styles?: TPanelStyles;\n};\n\nexport type TSectionProps = {\n children: ReactNode;\n styles?: {\n section: string;\n };\n};\n\nconst Container: FC<TContainerProps> = (props) => {\n const { children, type = 'normal', styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return <div className={styles.container}>{children}</div>;\n};\n\nconst Section: FC<TSectionProps> = (props) => {\n const { children, styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return <div className={styles.section}>{children}</div>;\n};\n\nconst LayoutPanel = {\n Container,\n Section,\n};\n\nexport default LayoutPanel;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'bg-white overflow-hidden shadow-sm',\n section: 'px-4 py-5 sm:px-6',\n};\n\nconst normal: TPanelStyles = {\n container: 'rounded-lg',\n};\n\nconst sticky: TPanelStyles = {\n container: 'sm:rounded-lg',\n};\n\nconst styles = {\n base,\n\n normal,\n sticky,\n};\n\nexport type TPanelStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { getCoreRowModel, useReactTable } from '@tanstack/react-table';\nimport { ColumnDef, ColumnOrderState, flexRender, SortingState } from '@tanstack/react-table';\nimport { get, set } from 'lodash';\nimport React, { FC, ReactNode, useCallback, useEffect, useState } from 'react';\n\nimport { TButtonStyles } from '../../../components/Element/Button';\nimport ButtonElement from '../../../components/Element/Button/Button';\nimport { TDropdownStyles } from '../../../components/Element/Dropdown';\nimport DropdownElement from '../../../components/Element/Dropdown/Dropdown';\nimport { TPagePaginationNavigationStyles } from '../../../components/Navigation/PagePagination';\nimport PanelPagination from '../../../components/Navigation/PanelPagination';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport { useExcel } from '../../../hooks/useExcel';\nimport IconElement from '../../Element/Icon';\n\nimport { default as defaultStyles } from './TableList.styles';\n\nimport { TTableListStyles } from '.';\n\ntype TData = any;\n\ntype VisibilityState = Record<string, boolean>;\n\nexport type TTableListProps<TData> = {\n id: string;\n\n columns: ColumnDef<TData>[];\n data: TData[];\n page: {\n current?: number;\n total: number;\n };\n\n defaultOrder?: string[];\n defaultVisibility?: string[];\n\n customControls?: ReactNode | ReactNode[];\n\n children: ({ min, max, current }: { min: number; max: number; current: number }) => ReactNode;\n\n type?: 'normal' | 'panel' | 'full';\n\n exportFileName?: string;\n\n isLoading?: boolean;\n\n isStriped?: boolean;\n hasStickyHeader?: boolean;\n hasVerticalSeparators?: boolean;\n areControlsVisible?: boolean;\n\n styles?: TTableListStyles & {\n components: {\n buttonElement: TButtonStyles;\n dropdownElement: TDropdownStyles;\n panelPaginationNavigation: TPagePaginationNavigationStyles;\n };\n };\n\n onChange?: ({\n sorting,\n visibility,\n order,\n }: {\n sorting: SortingState;\n visibility: VisibilityState;\n order: ColumnOrderState;\n }) => void;\n onPaginate?: (current: number) => void;\n};\n\nconst TableList: FC<TTableListProps<TData>> = (props) => {\n const {\n id,\n\n columns,\n data,\n page,\n children,\n\n defaultOrder,\n defaultVisibility,\n\n type = 'normal',\n\n isLoading,\n\n isStriped = false,\n hasStickyHeader = false,\n hasVerticalSeparators = false,\n areControlsVisible = true,\n\n customControls,\n exportFileName = 'table-export',\n\n styles: stylesOverrides,\n\n onChange,\n onPaginate,\n } = props;\n\n const { generate, write } = useExcel();\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n hasStickyHeader && get(defaultStyles.sticky, key),\n hasVerticalSeparators && get(defaultStyles.separated, key),\n areControlsVisible && get(defaultStyles.controlled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const [visibility, setVisibility] = useState<VisibilityState>({});\n const [order, setOrder] = useState<ColumnOrderState>([]);\n\n const table = useReactTable<TData>({\n getCoreRowModel: getCoreRowModel(),\n\n columns,\n data,\n\n state: {\n sorting,\n columnVisibility: visibility,\n columnOrder: order,\n },\n\n manualPagination: true,\n manualSorting: true,\n\n onSortingChange: setSorting,\n onColumnVisibilityChange: setVisibility,\n onColumnOrderChange: setOrder,\n });\n\n useEffect(() => {\n if (sorting || visibility || order) {\n onChange && onChange({ sorting, visibility, order });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sorting, visibility, order]);\n\n const handleUpdateColumnOrder = useCallback(\n (column: { id: string }, location: number) => {\n const ids: string[] = table\n .getAllLeafColumns()\n // .filter((column) => column?.getCanSort())\n ?.map((column) => column.id);\n\n const currentIndexOfId = ids.findIndex((id) => id === column.id);\n\n // Remove id from array.\n ids.splice(currentIndexOfId, 1);\n // Re-insert id at correct location in array.\n ids.splice(location, 0, column.id);\n\n setOrder(ids);\n },\n [table],\n );\n\n // Load state from local storage at mount.\n useEffect(() => {\n const state: string | null = window?.localStorage.getItem(`TableList.${id}.state`);\n\n if (!state) {\n if (defaultOrder && defaultOrder?.length > 0) {\n return setOrder(defaultOrder);\n }\n return setOrder(columns.map((column) => column?.id ?? ''));\n }\n\n if (!state) {\n if (defaultVisibility && defaultVisibility?.length > 0) {\n const base = columns\n ?.map((column: any) => (column?.id ? column?.id : column?.accessorKey))\n .map((key) => ({ [key]: false }))\n .reduce((a, b) => ({ ...a, ...b }));\n\n const current = defaultVisibility.map((key) => ({ [key]: true })).reduce((a, b) => ({ ...a, ...b }));\n\n return setVisibility({ ...base, ...current });\n }\n }\n\n const savedColumnOrder = state?.split(',').map((id) => id.replace('-', '')) ?? [];\n const savedColumnVisibility: Record<string, boolean> = {};\n state?.split(',').forEach((id) => (savedColumnVisibility[id?.replace('-', '')] = !id.includes('-')));\n\n setOrder(savedColumnOrder);\n setVisibility(savedColumnVisibility);\n }, [columns, defaultOrder, defaultVisibility, id]);\n\n // Save state to local storage when column visibility or order updates.\n useEffect(() => {\n // Prevent resetting storage to default when rendering a stateless component at mount.\n const isMounted = order.length > 0;\n\n if (isMounted && (order || visibility)) {\n const ids: string[] = table\n .getAllLeafColumns()\n // .filter((column) => column?.getCanSort())\n ?.map((column) => column.id);\n\n const idsWithVisibilityIndicator = ids.map((id) => {\n // Hardcoding `false` here since `undefined` is allowed.\n if (visibility[id] === false) {\n return `-${id}`;\n }\n return id;\n });\n\n return window?.localStorage.setItem(`TableList.${id}.state`, idsWithVisibilityIndicator.join(','));\n }\n }, [id, table, order, visibility]);\n\n return (\n <>\n <div className={styles.container}>\n <div className={styles.controls.container}>\n <div>{customControls}</div>\n\n <div className={styles.controls.body}>\n <DropdownElement.Container\n styles={stylesOverrides?.components?.dropdownElement}\n label={\n <div className=\"h-5 w-5 flex items-center justify-center\">\n <IconElement accessor=\"columns-3\" />\n </div>\n }\n >\n <div className={styles.controls.content}>\n {table\n .getAllLeafColumns()\n // .filter((column) => column?.getCanSort())\n .map((column, index) => {\n const canSort = column?.getCanSort();\n\n return (\n <DropdownElement.Item key={column.id}>\n {() => (\n <div className={toClassName(styles.controls.dropdown.container, !canSort && 'hidden')}>\n <input\n className={styles.controls.dropdown.input}\n type=\"checkbox\"\n checked={column.getIsVisible()}\n onChange={column.getToggleVisibilityHandler()}\n />\n <label className={styles.controls.dropdown.label}>\n {column.columnDef.header as string}\n </label>\n <div className={styles.controls.dropdown.actions}>\n <div\n className=\"h-5 w-5 flex flex-col items-center justify-center cursor-pointer\"\n onClick={() => handleUpdateColumnOrder(column, index - 1)}\n >\n <IconElement accessor=\"chevron-up\" type=\"solid\" />\n </div>\n <div\n className=\"h-5 w-5 flex flex-col items-center justify-center cursor-pointer\"\n onClick={() => handleUpdateColumnOrder(column, index + 1)}\n >\n <IconElement accessor=\"chevron-down\" type=\"solid\" />\n </div>\n </div>\n </div>\n )}\n </DropdownElement.Item>\n );\n })}\n </div>\n </DropdownElement.Container>\n <ButtonElement\n styles={\n stylesOverrides?.components?.buttonElement\n ? stylesOverrides?.components?.buttonElement\n : { container: 'py-1.5! px-3!' }\n }\n onClick={() => {\n const sheets = generate(table);\n write(sheets, { fileName: exportFileName });\n }}\n >\n <div className=\"h-5 w-5 flex items-center justify-center\">\n <IconElement accessor=\"table-cells\" />\n </div>\n </ButtonElement>\n </div>\n </div>\n <div className={styles.body.container}>\n <div className={styles.body.wrapper}>\n <div className={styles.body.content}>\n <div className={styles.body.styleWrapper}>\n <table className={styles.body.table.container} style={hasStickyHeader ? { borderSpacing: 0 } : {}}>\n <thead className={styles.body.table.head.container}>\n {table?.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <th\n key={header.id}\n colSpan={header.colSpan}\n className={toClassName(\n styles.body.table.head.cell,\n header.column.getCanSort() && 'cursor-pointer',\n )}\n onClick={header.column.getToggleSortingHandler()}\n >\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n {header.column.getCanSort() && (\n <span\n className={toClassName(\n styles.sortIndicator.container,\n header.column.getIsSorted()\n ? styles.sortIndicator.isSorted\n : styles.sortIndicator.isNotSorted,\n )}\n >\n <div\n className={toClassName(\n styles.sortIndicator.icon.container,\n header.column.getIsSorted() === 'asc' && '-scale-100',\n )}\n >\n <IconElement accessor=\"chevron-up\" type=\"solid\" />\n </div>\n </span>\n )}\n </th>\n ))}\n </tr>\n ))}\n </thead>\n {!isLoading && (\n <tbody className={styles.body.table.body.container}>\n {table?.getRowModel().rows.map((row, index) => (\n <tr\n key={row.id}\n className={toClassName(\n styles.body.table.body.row,\n isStriped && index % 2 === 0 && 'bg-gray-50',\n )}\n >\n {row.getVisibleCells().map((cell) => (\n <td\n key={cell.id}\n className={toClassName(\n styles.body.table.body.cell,\n hasStickyHeader &&\n index !== table?.getState()?.pagination?.pageSize - 1 &&\n 'border-b border-gray-200',\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n )}\n </table>\n {isLoading && (\n <div className=\"flex flex-col gap-y-2 w-full pt-5\">\n {new Array(8).fill(undefined).map((index) => (\n <div key={index} className=\"flex gap-2\">\n <div className=\"w-20 h-14 rounded-md bg-gray-100 animate-pulse\" />\n {/* <div className=\"w-56 h-14 rounded-md bg-gray-100 animate-pulse\" /> */}\n <div className=\"w-full h-14 rounded-md bg-gray-100 animate-pulse\" />\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n {\n <PanelPagination\n current={page.current}\n max={page.total}\n styles={\n stylesOverrides?.components?.panelPaginationNavigation\n ? stylesOverrides?.components?.panelPaginationNavigation\n : { container: 'mt-4' }\n }\n onChange={onPaginate}\n >\n {children}\n </PanelPagination>\n }\n </div>\n </>\n );\n};\n\nexport default TableList;\n","/*\n\nhttps://tailwindui.com/components/application-ui/navigation/pagination\n\n*/\n\nexport type { TPanelPaginationNavigationStyles } from './PanelPaginationNavigation.styles';\n\nexport { default } from './PanelPaginationNavigation';\nexport { default as styles } from './PanelPaginationNavigation.styles';\n","import { get, map, noop, set, toSafeInteger } from 'lodash';\nimport React, { ReactNode, useCallback, useEffect, useMemo, useState } from 'react';\nimport { SelectValue } from 'react-tailwindcss-select/dist/components/type';\n\nimport IconElement from '../../../components/Element/Icon';\nimport SelectMenu from '../../../components/Input/SelectMenu';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './PanelPaginationNavigation.styles';\n\nimport { TPanelPaginationNavigationStyles } from '.';\n\nexport type TProps = {\n current?: number;\n\n min?: number;\n max: number;\n\n children: ({ min, max, current }: { min: number; max: number; current: number }) => ReactNode;\n\n pageSizeOptions?: number[];\n defaultPageSize?: number;\n onChangePageSize?: (pageSize: number) => void;\n\n styles?: TPanelPaginationNavigationStyles;\n\n onChange?: (current: number) => void;\n};\n\nconst PanelPaginationNavigation: React.FC<TProps> = (props) => {\n const {\n current: defaultValue,\n min = 1,\n max = 20,\n styles: stylesOverrides,\n pageSizeOptions,\n defaultPageSize,\n onChangePageSize = noop,\n children,\n onChange,\n } = props;\n\n const [current, setCurrent] = useState(1);\n const [pageSize, setPageSize] = useState({\n value: `${defaultPageSize}`,\n label: `${defaultPageSize}`,\n });\n\n useEffect(() => {\n if (defaultValue) {\n setCurrent(defaultValue);\n }\n }, [defaultValue]);\n\n const hasCustomizablePageSize = useMemo(() => !!pageSizeOptions, [pageSizeOptions]);\n\n const pageSizeMenuOptions = useMemo(() => {\n const options = map(pageSizeOptions, (option) => ({\n value: `${option}`,\n label: `${option}`,\n }));\n\n !pageSize && setPageSize(options[0]);\n\n return options;\n }, [pageSize, pageSizeOptions]);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const handleChangeCurrent = useCallback(\n (current: number) => {\n setCurrent(current);\n onChange && onChange(current);\n },\n [onChange],\n );\n\n const pageType = useMemo(() => {\n let result: 'first' | 'center' | 'last' | 'simple' = 'center';\n\n if (current < min + 2) {\n result = 'first';\n }\n\n if (current > max - 2) {\n result = 'last';\n }\n\n if (max <= 4) {\n result = 'simple';\n }\n\n return result;\n }, [current, min, max]);\n\n let component;\n\n switch (pageType) {\n case 'first':\n component = (\n <>\n <button\n className={toClassName(styles.button.default, current === min && styles.button.active)}\n onClick={() => handleChangeCurrent(min)}\n >\n {min}\n </button>\n <button\n className={toClassName(styles.button.default, current === min + 1 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 1)}\n >\n {min + 1}\n </button>\n <button\n className={toClassName(styles.button.default, current === min + 2 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 2)}\n >\n {min + 2}\n </button>\n <span className={styles.divider}>...</span>\n <button className={styles.button.default} onClick={() => handleChangeCurrent(max)}>\n {max}\n </button>\n </>\n );\n break;\n case 'center':\n component = (\n <>\n <button className={styles.button.default} onClick={() => handleChangeCurrent(min)}>\n {min}\n </button>\n {current - 2 !== min && <span className={styles.divider}>...</span>}\n <button className={styles.button.default} onClick={() => handleChangeCurrent(current - 1)}>\n {current - 1}\n </button>\n <button\n className={toClassName(styles.button.default, styles.button.active)}\n onClick={() => handleChangeCurrent(current)}\n >\n {current}\n </button>\n <button className={styles.button.default} onClick={() => handleChangeCurrent(current + 1)}>\n {current + 1}\n </button>\n {current + 2 !== max && <span className={styles.divider}>...</span>}\n <button className={styles.button.default} onClick={() => handleChangeCurrent(max)}>\n {max}\n </button>\n </>\n );\n break;\n case 'last':\n component = (\n <>\n <button className={styles.button.default} onClick={() => handleChangeCurrent(min)}>\n {min}\n </button>\n <span className={styles.divider}>...</span>\n <button\n className={toClassName(styles.button.default, current === max - 2 && styles.button.active)}\n onClick={() => handleChangeCurrent(max - 2)}\n >\n {max - 2}\n </button>\n <button\n className={toClassName(styles.button.default, current === max - 1 && styles.button.active)}\n onClick={() => handleChangeCurrent(max - 1)}\n >\n {max - 1}\n </button>\n <button\n className={toClassName(styles.button.default, current === max && styles.button.active)}\n onClick={() => handleChangeCurrent(max)}\n >\n {max}\n </button>\n </>\n );\n break;\n case 'simple':\n component = (\n <>\n <button\n className={toClassName(styles.button.default, current === min && styles.button.active)}\n onClick={() => handleChangeCurrent(min)}\n >\n {min}\n </button>\n {max >= min + 1 && (\n <button\n className={toClassName(styles.button.default, current === min + 1 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 1)}\n >\n {min + 1}\n </button>\n )}\n {max >= min + 2 && (\n <button\n className={toClassName(styles.button.default, current === min + 2 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 2)}\n >\n {min + 2}\n </button>\n )}\n {max >= min + 3 && (\n <button\n className={toClassName(styles.button.default, current === min + 3 && styles.button.active)}\n onClick={() => handleChangeCurrent(min + 3)}\n >\n {min + 3}\n </button>\n )}\n </>\n );\n break;\n }\n\n return (\n <div className={styles.container}>\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <button\n className={toClassName(styles.mobile.button, current === min && styles.button.disabled)}\n disabled={current === min}\n onClick={() => handleChangeCurrent(current - 1)}\n >\n Previous\n </button>\n {hasCustomizablePageSize && (\n <SelectMenu\n name=\"pageSize\"\n isClearable={false}\n isSearchable={false}\n isMultiple={false}\n isSolo\n options={pageSizeMenuOptions}\n value={pageSize}\n styles={{ list: styles.pageSizeList }}\n onClear={noop}\n onChange={(value: SelectValue) => {\n if (onChangePageSize) {\n onChangePageSize(toSafeInteger((value as { value: string })?.value));\n }\n }}\n />\n )}\n <button\n className={toClassName(styles.mobile.button, current === max && styles.button.disabled)}\n disabled={current === max}\n onClick={() => handleChangeCurrent(current + 1)}\n >\n Next\n </button>\n </div>\n\n <div className={styles.desktop.container}>\n <div>\n <div className=\"text-sm text-gray-700\">\n {/** \"Showing X to Y of Z results.\" */}\n {children && children({ min, max, current })}\n </div>\n </div>\n {hasCustomizablePageSize && (\n <SelectMenu\n name=\"pageSize\"\n isClearable={false}\n isSearchable={false}\n isMultiple={false}\n isSolo\n options={pageSizeMenuOptions}\n value={pageSize}\n styles={{ list: styles.pageSizeList }}\n onClear={noop}\n onChange={(value: SelectValue) => {\n if (onChangePageSize) {\n onChangePageSize(toSafeInteger((value as { value: string })?.value));\n }\n }}\n />\n )}\n <div>\n <nav className={styles.desktop.navigation} aria-label=\"Pagination\">\n <button\n className={toClassName(styles.desktop.outerLeftButton, current === min && styles.button.disabled)}\n disabled={current === min}\n onClick={() => handleChangeCurrent(1)}\n >\n <span className={styles.label}>First</span>\n <div className={styles.icon}>\n <IconElement accessor=\"chevron-double-left\" />\n </div>\n </button>\n <button\n className={toClassName(styles.desktop.innerButton, current === min && styles.button.disabled)}\n disabled={current === min}\n onClick={() => handleChangeCurrent(current - 1)}\n >\n <span className={styles.label}>Previous</span>\n <div className={styles.icon}>\n <IconElement accessor=\"chevron-left\" />\n </div>\n </button>\n {component}\n <button\n className={toClassName(styles.desktop.innerButton, current === max && styles.button.disabled)}\n disabled={current === max}\n onClick={() => handleChangeCurrent(current + 1)}\n >\n <span className={styles.label}>Next</span>\n <div className={styles.icon}>\n <IconElement accessor=\"chevron-right\" />\n </div>\n </button>\n <button\n className={toClassName(styles.desktop.outerRightButton, current === max && styles.button.disabled)}\n disabled={current === max}\n onClick={() => handleChangeCurrent(max)}\n >\n <span className={styles.label}>Last</span>\n <div className={styles.icon}>\n <IconElement accessor=\"chevron-double-right\" />\n </div>\n </button>\n </nav>\n </div>\n </div>\n </div>\n );\n};\n\nexport default PanelPaginationNavigation;\n","/*\n\nhttps://www.npmjs.com/package/react-tailwindcss-select\n\n*/\n\nexport type { TSelectMenuProps } from './SelectMenu';\nexport type { TSelectMenuStyles } from './SelectMenu.styles';\n\nexport { default } from './SelectMenu';\nexport { default as styles } from './SelectMenu.styles';\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { concat, get, set } from 'lodash';\nimport React, { ChangeEvent, FC, useEffect, useMemo, useState } from 'react';\nimport Select from 'react-tailwindcss-select';\nimport { Option, SelectValue } from 'react-tailwindcss-select/dist/components/type';\n\nimport InputFooter, { footerStyles, TInputFooterSharedProps } from '../../../components/Custom/InputFooter';\nimport InputHeader, { headerStyles, TInputHeaderSharedProps } from '../../../components/Custom/InputHeader';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './SelectMenu.styles';\n\nimport { TSelectMenuStyles } from '.';\n\nexport type TSelectMenuProps = TInputHeaderSharedProps &\n TInputFooterSharedProps & {\n name: string;\n\n iconAccessor?: IconName;\n\n description?: string;\n placeholder?: {\n select?: string;\n searchInput?: string;\n emptyState?: string;\n };\n options: { value: string; label: string }[];\n\n value?: { label: string; value: string; disabled?: boolean };\n //override error type\n error?: string | Option | Option[];\n\n isLoading?: boolean;\n isDisabled?: boolean;\n isClearable?: boolean;\n isSearchable?: boolean;\n isMultiple?: boolean;\n isDarkMode?: boolean;\n isSolo?: boolean;\n\n onChange?: (value: SelectValue) => void;\n onSearchInputChange?: ((e: ChangeEvent<HTMLInputElement>) => void) | undefined;\n onClear: (name: string) => void;\n\n onBlur?: any;\n\n styles?: TSelectMenuStyles;\n };\n\nconst SelectMenu: FC<TSelectMenuProps> = (props) => {\n const {\n name = 'select-menu-form',\n\n label,\n\n description,\n hint,\n placeholder,\n options,\n required,\n\n value,\n error,\n\n isRequired = false,\n isLoading,\n isTouched = false,\n isDisabled,\n isClearable = true,\n isMultiple = false,\n isSearchable = true,\n isSolo = false,\n isOptionalLabelHidden = false,\n\n onChange,\n onSearchInputChange,\n onClear,\n onBlur,\n\n styles: stylesOverrides,\n } = props;\n\n const [isFocus, setIsFocus] = useState(true);\n const [state, setState] = useState<SelectValue>(value ?? null);\n\n const isValid = error === undefined;\n\n const selectDataCy = `form-select-${name}`;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = concat(\n calculateNestedKeys(defaultStyles.base),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n get(defaultStyles['normal'], key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const handleChange = (selectValue: SelectValue) => {\n setState(selectValue);\n onChange && onChange(selectValue);\n setIsFocus(false);\n };\n\n const styles = handleGenerateStyle();\n\n // Simulate onClear event.\n useEffect(() => {\n if (state === null && !isFocus) {\n onClear && onClear(name);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state]);\n\n // Simulate onBlur event.\n useEffect(() => {\n if (!isFocus) {\n onBlur && onBlur();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isFocus]);\n\n // listen to value changes.\n useEffect(() => {\n setState(value ?? null);\n }, [value]);\n\n const formattedError = useMemo(() => {\n if (error) return JSON.stringify(error).replaceAll('\"', '');\n\n return null;\n }, [error]);\n\n return (\n <div className={styles.container}>\n <InputHeader\n name={name}\n label={label}\n required={required}\n isRequired={isRequired}\n isOptionalLabelHidden={isOptionalLabelHidden}\n styles={styles}\n description={description}\n />\n <div className={toClassName(styles.container, styles.wrapperContainer)}>\n <div data-cy={selectDataCy}>\n <Select\n primaryColor=\"primary\"\n //\n placeholder={placeholder?.select}\n noOptionsMessage={\n (<p className={styles.emptyState}>{placeholder?.emptyState ?? 'No results found'}</p>) as any\n }\n searchInputPlaceholder={placeholder?.searchInput}\n //\n loading={isLoading}\n isDisabled={isDisabled}\n isClearable={isClearable}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n //\n options={options}\n //\n value={state}\n onChange={handleChange}\n onSearchInputChange={onSearchInputChange}\n //\n classNames={{\n menuButton: () =>\n toClassName(\n styles.input,\n state === null && '*:text-gray-300! ',\n state === null && !isValid && isTouched && '*:text-red-300!',\n ),\n menu: styles.menu,\n tagItem: () => styles.tagItem,\n tagItemText: styles.tagItemText,\n tagItemIconContainer: styles.tagItemIconContainer,\n tagItemIcon: styles.tagItemIcon,\n list: styles.list,\n listItem: () => styles.listItem,\n listDisabledItem: styles.listDisabledItem,\n listGroupLabel: styles.listGroupLabel,\n searchContainer: styles.searchContainer,\n searchBox: styles.searchBox,\n searchIcon: styles.searchIcon,\n closeIcon: styles.closeIcon,\n }}\n />\n </div>\n <InputFooter\n isHidden={isSolo}\n name={name}\n error={formattedError}\n isTouched={isTouched}\n hint={hint}\n styles={styles}\n />\n </div>\n </div>\n );\n};\n\nexport default SelectMenu;\n","import { TInputFooterStyles } from '../../../components/Custom/InputFooter';\nimport { TInputHeaderStyles } from '../../../components/Custom/InputHeader';\nimport { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\nconst base = {\n container: '',\n wrapperContainer: '',\n body: 'relative rounded-md',\n leading: 'pointer-events-none absolute inset-y-0 left-0 flex items-center',\n input: 'w-full flex border',\n menuButton: '',\n menu: 'z-10 px-0! py-0! w-full! rounded-md overflow-hidden border mt-1! absolute bg-white',\n tagItem: 'bg-gray-200 px-2 py-1 flex flex-row gap-x-1 items-center justify-between rounded-xs',\n tagItemText: 'text-xs',\n tagItemIconContainer:\n 'p-0! rounded-full hover:bg-gray-400 text-sm hover:text-white aspect-square w-4 flex items-center justify-center cursor-pointer',\n tagItemIcon: '',\n list: 'px-0! w-full! *:px-0 max-h-56 overflow-scroll py-1!',\n listGroupLabel: '',\n listItem: 'w-full! list-none! hover:bg-primary-500 hover:text-white py-2! px-2!',\n listDisabledItem: '',\n searchContainer: 'w-full! px-2! py-2! border-b',\n searchBox: '',\n searchIcon: '',\n closeIcon: '',\n emptyState: 'w-full inline-flex items-start justify-start px-4',\n trailing: 'pointer-events-none absolute inset-y-0 right-0 flex items-center',\n};\n\nconst leading: TSelectMenuStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TSelectMenuStyles = {};\n\nconst normal: TSelectMenuStyles = {\n leading: 'pl-3',\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n trailing: '',\n};\n\nconst inset: TSelectMenuStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n};\n\nconst overlapping: TSelectMenuStyles = {\n container: 'relative',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n};\n\nconst pill: TSelectMenuStyles = {\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n trailing: 'pr-2',\n};\n\nconst floored: TSelectMenuStyles = {\n body: 'relative mt-2',\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n};\n\nconst invalid: TSelectMenuStyles = {\n container: 'ring-red-500',\n input:\n // 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 sm:leading-6 pr-10',\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500',\n};\n\nconst disabled: TSelectMenuStyles = {\n input:\n 'block w-full rounded-md border-0 shadow-xs ring-1 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 cursor-not-allowed bg-gray-50 text-gray-500 ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TSelectMenuStyles = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'flex items-center justify-between border-t border-gray-200 bg-white py-3',\n\n mobile: {\n container: '',\n button:\n 'relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50',\n },\n\n desktop: {\n container: 'hidden sm:flex sm:flex-1 sm:items-center sm:justify-between',\n\n outerRightButton:\n 'relative inline-flex items-center rounded-r-md border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50 focus:z-20',\n outerLeftButton:\n 'relative inline-flex items-center rounded-l-md border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50 focus:z-20',\n innerButton:\n 'relative inline-flex items-center border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50 focus:z-20',\n navigation: 'isolate inline-flex -space-x-px rounded-md shadow-xs',\n },\n\n button: {\n default:\n 'relative inline-flex items-center border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50',\n active: 'border-primary-500 bg-primary-50 text-primary-600 z-20',\n disabled: 'opacity-20 cursor-not-allowed',\n },\n divider:\n 'relative inline-flex items-center border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-500',\n label: 'sr-only',\n icon: 'w-5 h-5',\n pageSizeList: 'overflow-hidden!',\n};\n\nconst styles = {\n base,\n};\n\nexport type TPanelPaginationNavigationStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Table } from '@tanstack/react-table';\nimport { get, indexOf } from 'lodash';\nimport * as XLSX from 'xlsx';\n\n/*\n\nFor column definition check: https://docs.sheetjs.com/docs/csf/cell.\n\n*/\n\nexport type TExcelCell = {\n value: number | string;\n type?: 'boolean' | 'number' | 'error' | 'string' | 'date';\n formula?: string;\n comments?: string;\n format?: string;\n link?: string;\n style?: string;\n};\n\nexport type TExcelRow = TExcelCell[];\n\nexport type TExcelSheet = {\n title: string;\n rows: TExcelRow[];\n};\n\ntype TOptions = {\n fileName: string;\n};\n\ntype TReturn<TData> = {\n generate: (table: Table<TData>, exportData?: TData[]) => TExcelSheet[];\n write: (sheets: TExcelSheet[], options: TOptions) => void;\n};\n\nexport const useExcel = <TData extends object>(): TReturn<TData> => {\n const handleFormatRow = (row: TExcelRow) =>\n row.map((cell) => ({\n v: cell?.value,\n t: cell?.type\n ?.replace('boolean', 'b')\n .replace('number', 'n')\n .replace('error', 'e')\n .replace('string', 's')\n .replace('date', 'd'),\n f: cell?.formula,\n c: cell?.comments,\n z: cell?.format,\n l: cell?.link,\n s: cell?.style,\n }));\n\n const generate = <TData extends object>(table: Table<TData>, exportData?: TData[]) => {\n const sheets: TExcelSheet[] = [];\n\n const columns: any[] = table.getAllColumns();\n const rows = exportData ?? table.getRowModel()?.flatRows?.map((row) => row.original);\n const order = table.getState().columnOrder;\n\n const headerNames = columns\n ?.sort((a, b) => indexOf(order, a.id ?? get(a, 'accessorKey')) - indexOf(order, b.id ?? get(b, 'accessorKey')))\n ?.filter((column) => typeof column?.columnDef?.header === 'string' && column?.getIsVisible())\n ?.map((column) => ({\n id: column?.id,\n value: column?.columnDef?.header,\n }));\n\n const headerRow: Record<string, TExcelCell> = {};\n headerNames.forEach((name) => {\n headerRow[name.id] = {\n value: name.value,\n type: 'string',\n };\n });\n\n const excelRows = rows.map((row) => {\n const result: Record<string, TExcelCell> = {};\n\n Object.keys(row)\n // sort keys according to the current table order\n .sort((a, b) => indexOf(order, a) - indexOf(order, b))\n // Filter out items with non-string values.\n .filter((key) => {\n const column = columns?.find((column) => column.id === key);\n\n if (!column) {\n return false;\n }\n\n return typeof column.columnDef?.header === 'string';\n })\n // Filter out hidden columns.\n .filter((key) => {\n const column = columns?.find((column) => column.id === key);\n\n if (!column) {\n return false;\n }\n\n return column.getIsVisible();\n })\n .forEach((key) => {\n const cell = columns?.find((column) => column.id === key)?.columnDef.meta?.excel(get(row, key));\n\n result[key] = cell;\n });\n\n return result;\n });\n\n sheets.push({\n title: `Sheet 1`,\n rows: [headerRow, ...excelRows].map((row) => Object.keys(row).map((key) => row[key])),\n });\n\n return sheets;\n };\n\n const write = (sheets: TExcelSheet[], options: TOptions) => {\n const { fileName } = options;\n\n const book = XLSX.utils.book_new();\n\n if (sheets?.length > 0) {\n sheets?.forEach((sheet) => {\n const result = XLSX.utils.aoa_to_sheet(sheet?.rows?.map((row) => handleFormatRow(row)));\n\n XLSX.utils.book_append_sheet(book, result, sheet.title);\n });\n }\n\n XLSX.writeFile(book, `${fileName}.xlsx`);\n };\n\n return {\n generate,\n write,\n };\n};\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'px-4 sm:px-6 lg:px-8',\n head: {\n container: 'sm:flex sm:items-center',\n head: 'sm:flex-auto',\n body: 'mt-4 sm:mt-0 sm:ml-16 sm:flex-none',\n heading: 'text-xl font-semibold text-gray-900',\n paragraph: 'mt-2 text-sm text-gray-700',\n },\n body: {\n container: 'flex flex-col',\n wrapper: '-my-2 -mx-4 sm:-mx-6 lg:-mx-8',\n content: '',\n styleWrapper: 'overflow-scroll w-screen md:w-auto md:overflow-auto pr-12 md:pr-0',\n table: {\n container: 'min-w-full divide-y divide-gray-300 ',\n head: {\n container: '',\n row: '',\n cell: 'py-3.5 px-3 text-left text-sm font-semibold text-gray-900 group',\n checkbox:\n 'absolute left-4 top-1/2 -mt-2 h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-500 sm:left-6',\n },\n body: {\n container: 'divide-y divide-gray-200',\n row: '',\n cell: 'whitespace-nowrap py-4 px-3 text-sm text-gray-500',\n checkbox:\n 'absolute left-4 top-1/2 -mt-2 h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-500 sm:left-6',\n indicator: 'absolute inset-y-0 left-0 w-0.5 bg-primary-600',\n },\n },\n },\n\n sortIndicator: {\n container: 'ml-2 translate-y-1 inline-flex items-center flex-none rounded-sm',\n isSorted: 'bg-gray-100 text-gray-900 group-hover:bg-gray-200',\n isNotSorted: 'invisible text-gray-400 group-hover:visible group-focus:visible',\n icon: {\n container: 'h-5 w-5',\n },\n },\n\n controls: {\n container: 'flex-row justify-between z-10 relative mb-4 gap-2 hidden',\n content: 'my-2 flex flex-col',\n head: '',\n body: 'flex flex-row justify-end gap-2',\n dropdown: {\n container: 'px-4 py-2 text-sm flex flex-row items-center font-medium group',\n input: 'mr-3 cursor-pointer',\n label: 'mr-3',\n actions: 'hidden grid-cols-2 gap-2 group-hover:grid text-gray-400',\n upIcon: 'w-5 h-5 -scale-y-100 hover:text-black hover:bg-gray-200 rounded-md cursor-pointer',\n downIcon: 'w-5 h-5 hover:text-black hover:bg-gray-200 rounded-md cursor-pointer',\n },\n },\n};\n\nconst normal: TTableListStyles = {\n body: {\n content: 'inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8',\n styleWrapper: 'relative',\n },\n};\n\nconst panel: TTableListStyles = {\n body: {\n content: 'inline-block min-w-full py-2 align-middle md:px-6 lg:px-8',\n styleWrapper: 'relative overflow-hidden shadow-sm ring-1 ring-black/5 md:rounded-lg',\n table: {\n head: {\n container: 'bg-gray-50',\n },\n body: {\n container: 'bg-white',\n },\n },\n },\n};\n\nconst full: TTableListStyles = {\n body: {\n content: 'inline-block min-w-full py-2 align-middle',\n styleWrapper: 'relative overflow-hidden shadow-xs ring-1 ring-black/5',\n table: {\n head: {\n container: 'bg-gray-50',\n },\n },\n },\n};\n\nconst sticky: TTableListStyles = {\n body: {\n table: {\n container: 'min-w-full border-separate',\n head: {\n cell: 'sticky top-0 z-10 border-b border-gray-300 bg-gray-50/75 backdrop-blur-sm backdrop-filter sm:table-cell',\n },\n },\n },\n};\n\nconst separated: TTableListStyles = {\n body: {\n table: {\n head: {\n row: 'divide-x divide-gray-200',\n },\n body: {\n row: 'divide-x divide-gray-200',\n },\n },\n },\n};\n\nconst controlled: TTableListStyles = {\n controls: {\n container: 'flex!',\n },\n};\n\nconst styles = {\n base,\n\n normal,\n panel,\n full,\n\n sticky,\n separated,\n controlled,\n};\n\nexport type TTableListStyles = DeepPartial<typeof base>;\nexport default styles;\n","import {\n DndContext,\n DragEndEvent,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n UniqueIdentifier,\n closestCenter,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { IconName } from '@fortawesome/fontawesome-svg-core';\nimport {\n ColumnDef,\n ColumnOrderState,\n flexRender,\n getCoreRowModel,\n useReactTable as useTable,\n SortingState,\n Table,\n Row,\n Column,\n GroupingState,\n getGroupedRowModel,\n ExpandedState,\n getExpandedRowModel,\n Cell,\n} from '@tanstack/react-table';\nimport {\n assign,\n compact,\n concat,\n find,\n findIndex,\n first,\n forEach,\n get,\n includes,\n isEmpty,\n last,\n map,\n set,\n some,\n times,\n} from 'lodash';\nimport React, {\n CSSProperties,\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\n\nimport Icon from '../../../components/Element/Icon';\nimport IconElement from '../../../components/Element/Icon';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { getTableState, setTableState } from '../../../helpers/localStorage';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './TableList2.styles';\n\nimport { TTableListStyles } from '.';\n\ntype TData = any;\n\ntype VisibilityState = Record<string, boolean>;\n\ntype Params = {\n table: Table<any>;\n //\n sorting: SortingState;\n columnVisibility: VisibilityState;\n columnOrder: ColumnOrderState;\n grouping: GroupingState;\n //\n setSorting: Dispatch<SetStateAction<SortingState>>;\n setColumnVisibility: Dispatch<SetStateAction<VisibilityState>>;\n setColumnOrder: Dispatch<SetStateAction<ColumnOrderState>>;\n setGrouping: Dispatch<SetStateAction<GroupingState>>;\n};\n\nexport type TTableListProps<TData> = {\n id: string;\n //\n table: {\n columns: ColumnDef<TData>[];\n data: TData[];\n options?: {\n defaultOrder?: string[];\n defaultVisibility?: string[];\n defaultSorting?: SortingState;\n emptyComponent?: ReactNode;\n //\n isStriped?: boolean;\n hasStickyHeader?: boolean;\n hasVerticalSeparators?: boolean;\n //\n columnPinning?: {\n disableShadow?: boolean;\n customShadow?: string;\n left?: { name: string; size: number }[];\n right?: { name: string; size: number }[];\n };\n //\n grouping?: {\n defaultGrouping?: GroupingState;\n defaultExpanded?: ExpandedState;\n expandIconAccessor?: IconName;\n collapseIconAccessor?: IconName;\n };\n getSubRows?: (originalRow: TData) => TData[];\n };\n };\n //\n isLoading?: boolean;\n //\n head?: (params: Params) => ReactNode;\n foot?: (params: Params) => ReactNode;\n leftSide?: (params: Params) => ReactNode;\n //\n onRowClick?: (context: Row<TData>) => void;\n onChange?: (params: Params) => void;\n //\n styles?: TTableListStyles;\n //\n dragConfig?: {\n rowIdentifierKey: string;\n iconAccessor?: IconName;\n label?: ReactNode;\n header?: string;\n //\n handleDragEnd?: ({\n oldIndex,\n newIndex,\n dragEndEvent,\n }: {\n oldIndex?: number;\n newIndex?: number;\n dragEndEvent?: DragEndEvent;\n }) => void;\n };\n};\n\nconst TableList2: FC<TTableListProps<TData>> = (props) => {\n const {\n id,\n table: config,\n head,\n foot,\n leftSide,\n isLoading,\n onRowClick,\n onChange,\n styles: stylesOverrides,\n dragConfig,\n } = props;\n\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [columnOrder, setColumnOrder] = useState<ColumnOrderState>([]);\n const [sorting, setSorting] = useState<SortingState>(config.options?.defaultSorting ?? []);\n const [grouping, setGrouping] = useState<GroupingState>(config.options?.grouping?.defaultGrouping ?? []);\n const [expanded, setExpanded] = useState<ExpandedState>({});\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n // type && get(defaultStyles[type], key),\n\n // hasStickyHeader && get(defaultStyles.sticky, key),\n // hasVerticalSeparators && get(defaultStyles.separated, key),\n // areControlsVisible && get(defaultStyles.controlled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const isDraggable = !!dragConfig;\n\n const dataIds = useMemo<UniqueIdentifier[]>(\n () => map(config?.data, (entity) => get(entity, dragConfig?.rowIdentifierKey as string)),\n [config?.data, dragConfig?.rowIdentifierKey],\n );\n\n const onDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (active && over && active.id !== over.id) {\n const oldIndex = dataIds.indexOf(active.id);\n const newIndex = dataIds.indexOf(over.id);\n\n dragConfig?.handleDragEnd && dragConfig?.handleDragEnd({ oldIndex, newIndex, dragEndEvent: event });\n }\n };\n\n const initialVisibilityState = useMemo<VisibilityState>(() => {\n const columnAccessorKeys = compact(map(config.columns, 'accessorKey'));\n const columnIds = compact(map(config.columns, 'id'));\n let visibilityState = {};\n\n if (config.options?.defaultVisibility) {\n forEach(columnAccessorKeys, (key) => {\n visibilityState = assign(visibilityState, {\n [key]: includes(config.options?.defaultVisibility, key),\n });\n });\n } else {\n forEach(columnAccessorKeys, (key) => {\n visibilityState = assign(visibilityState, { [key]: true });\n });\n }\n forEach(columnIds, (key) => {\n visibilityState = assign(visibilityState, { [key]: true });\n });\n\n return visibilityState;\n }, [config.columns, config.options?.defaultVisibility]);\n\n const table = useTable<TData>({\n getExpandedRowModel: getExpandedRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getCoreRowModel: getCoreRowModel(),\n getSubRows: config.options?.getSubRows,\n\n autoResetExpanded: false,\n\n columns: isDraggable\n ? [\n {\n id: 'drag-handle',\n header: dragConfig?.header,\n cell: ({ row }) => <RowDragHandleCell rowId={row.id} />,\n },\n ...config.columns,\n ]\n : config.columns,\n data: config.data,\n\n enableColumnPinning: true,\n\n state: {\n sorting,\n columnVisibility,\n columnOrder,\n grouping,\n expanded,\n },\n\n initialState: {\n columnVisibility: isDraggable ? { 'drag-handle': true, ...initialVisibilityState } : initialVisibilityState,\n columnOrder: isDraggable\n ? ['drag-handle', ...(config.options?.defaultOrder ?? [])]\n : config.options?.defaultOrder,\n columnPinning: {\n left: map(config.options?.columnPinning?.left, 'name') ?? [],\n right: map(config.options?.columnPinning?.right, 'name') ?? [],\n },\n grouping: config.options?.grouping?.defaultGrouping,\n expanded: config.options?.grouping?.defaultExpanded,\n },\n\n manualPagination: true,\n manualSorting: true,\n\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnOrderChange: setColumnOrder,\n onGroupingChange: setGrouping,\n onExpandedChange: setExpanded,\n\n getRowId: (row) => get(row, dragConfig?.rowIdentifierKey as string),\n });\n\n const state = useMemo(\n () => ({\n table,\n //\n sorting,\n columnVisibility,\n columnOrder,\n grouping,\n //\n setSorting,\n setColumnVisibility,\n setColumnOrder,\n setGrouping,\n }),\n [columnOrder, columnVisibility, sorting, grouping, table],\n );\n\n // Trigger onChange handler when state changes.\n useEffect(() => {\n if (state) {\n onChange && onChange(state);\n }\n }, [onChange, state]);\n\n // Set column visibility state on mount.\n useEffect(() => {\n const savedVisibility = getTableState(id)?.columnVisibility;\n\n if (savedVisibility && !isEmpty(Object.keys(savedVisibility))) {\n setColumnVisibility(savedVisibility);\n } else {\n const columnKeys = map(table?.getAllColumns(), (column) => column.id ?? get(column, 'accessorKey'));\n\n const visibility = {};\n\n forEach(columnKeys, (key) => {\n assign(visibility, { [key]: !config?.options?.defaultVisibility });\n });\n\n if (config.options?.defaultVisibility) {\n forEach(config.options?.defaultVisibility, (value) => {\n if (!columnKeys.includes(value)) return;\n assign(visibility, { [value]: true });\n });\n }\n\n setColumnVisibility(visibility);\n }\n }, [config?.options?.defaultVisibility, id, table]);\n\n useEffect(() => {\n const savedOrder = getTableState(id)?.columnOrder;\n const defaultOrder = config?.options?.defaultOrder;\n\n if (savedOrder) {\n setColumnOrder(savedOrder);\n } else if (defaultOrder) {\n setColumnOrder(isDraggable ? ['drag-handle', ...defaultOrder] : defaultOrder);\n } else if (some(config.columns, (column) => column?.id || get(column, 'accessorKey'))) {\n const mappedColumns = map(config.columns, (column) => (column?.id ?? get(column, 'accessorKey')) as string);\n\n setColumnOrder(isDraggable ? ['drag-handle', ...mappedColumns] : mappedColumns);\n }\n }, [config.columns, config?.options?.defaultOrder, id, isDraggable]);\n\n const handleFlexRender = (cell: Cell<TData, any>) => flexRender(cell.column.columnDef.cell, cell.getContext());\n\n // Write state to local storage when it changes\n useEffect(() => {\n if (state) {\n setTableState(id, state);\n }\n }, [id, state]);\n\n const RowDragHandleCell = ({ rowId }: { rowId: string }) => {\n const { attributes, listeners } = useSortable({\n id: rowId,\n });\n\n return (\n <button {...attributes} {...listeners}>\n {dragConfig?.iconAccessor && <Icon accessor={dragConfig?.iconAccessor} />}\n {dragConfig?.label}\n </button>\n );\n };\n\n const DraggableRow = ({ row, index }: { row: Row<TData>; index: number }) => {\n const { transform, transition, setNodeRef, isDragging } = useSortable({\n id: get(row.original, dragConfig?.rowIdentifierKey as string),\n });\n\n const style: CSSProperties = {\n transform: CSS.Transform.toString(transform),\n transition: transition,\n opacity: isDragging ? 0.8 : 1,\n zIndex: isDragging ? 1 : 0,\n position: 'relative',\n };\n\n return (\n <tr\n ref={setNodeRef}\n style={style}\n key={row.id}\n onClick={() => onRowClick && onRowClick(row)}\n className={toClassName(\n styles.body.table.body.row,\n config.options?.isStriped && index % 2 === 0 && styles.body.table.body.striped,\n )}\n >\n {row.getIsGrouped() ? (\n <td colSpan={row.getVisibleCells().length}>\n <div className={styles.body.table.body.groupedRow}>\n {map(row.getVisibleCells(), (cell) => (\n <div key={cell.id} className={styles.body.table.body.groupedRowCell}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </div>\n ))}\n </div>\n </td>\n ) : (\n map(row.getVisibleCells(), (cell) => (\n <td\n key={cell.id}\n className={toClassName(\n styles.body.table.body.cell,\n config?.options?.hasStickyHeader &&\n index !== table?.getState()?.pagination?.pageSize - 1 &&\n styles.body.table.body.sticky,\n )}\n style={{ width: cell.column.getSize() }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n ))\n )}\n </tr>\n );\n };\n\n const sensors = useSensors(useSensor(MouseSensor, {}), useSensor(TouchSensor, {}), useSensor(KeyboardSensor, {}));\n\n const getPinnedColumnsWidth = useCallback(\n (side: 'left' | 'right', id: string) => {\n const pinnedColumns = map(config.options?.columnPinning?.[side], 'size');\n const pinnedColumnIndex = findIndex(config.options?.columnPinning?.[side], { name: id });\n\n if (pinnedColumnIndex === -1) return null;\n\n const startIndex = side === 'left' ? 0 : pinnedColumnIndex + 1;\n const endIndex = side === 'left' ? pinnedColumnIndex : pinnedColumns.length - pinnedColumnIndex + 1;\n\n return pinnedColumns.slice(startIndex, endIndex).reduce((acc, size) => acc + size, 0);\n },\n [config.options?.columnPinning],\n );\n\n const getCommonPinningStyles = useCallback(\n (column: Column<any>): CSSProperties => {\n const isPinned = column.getIsPinned();\n const isLastLeftPinnedColumn = column.id == last(config.options?.columnPinning?.left)?.name;\n const isFirstRightPinnedColumn = column.id == first(config.options?.columnPinning?.right)?.name;\n const width = find(concat(config.options?.columnPinning?.left, config.options?.columnPinning?.right), {\n name: column.id,\n })?.size;\n\n const customBoxShadow = config?.options?.columnPinning?.customShadow;\n\n const boxShadow = isLastLeftPinnedColumn\n ? (customBoxShadow ?? styles.body.table.pinnedColumns.left)\n : isFirstRightPinnedColumn\n ? (customBoxShadow ?? styles.body.table.pinnedColumns.right)\n : undefined;\n\n return {\n width: width,\n maxWidth: width,\n minWidth: width,\n boxShadow: config.options?.columnPinning?.disableShadow ? undefined : boxShadow,\n left: isPinned === 'left' ? `${getPinnedColumnsWidth('left', column.id)}px` : undefined,\n right: isPinned === 'right' ? `${getPinnedColumnsWidth('right', column.id)}px` : undefined,\n };\n },\n [\n config.options?.columnPinning?.customShadow,\n config.options?.columnPinning?.disableShadow,\n config.options?.columnPinning?.left,\n config.options?.columnPinning?.right,\n styles.body.table.pinnedColumns.left,\n styles.body.table.pinnedColumns.right,\n getPinnedColumnsWidth,\n ],\n );\n\n const getSortIcon = useCallback((column: Column<any>) => {\n if (column.getIsSorted())\n return column.getIsSorted() === 'asc' ? (\n <IconElement accessor=\"chevron-up\" type=\"solid\" className=\"h-4 w-4\" />\n ) : (\n <IconElement accessor=\"chevron-down\" type=\"solid\" className=\"h-4 w-4\" />\n );\n return (\n <div className=\"h-5 w-5 flex flex-col items-center justify-center\">\n <IconElement accessor=\"chevron-up\" type=\"solid\" className=\"translate-y-1/5 h-3 w-3\" />\n <IconElement accessor=\"chevron-down\" type=\"solid\" className=\"-translate-y-1/5 h-3 w-3\" />\n </div>\n );\n }, []);\n\n const Content = (\n <div className={styles.container} data-cy={`table-list-${id}`}>\n {head && <div className={styles.head}>{head(state)}</div>}\n <div className={styles.body.content}>\n <div className={styles.body.wrapper}>\n <div className={leftSide ? styles.body.styleWrapperWithLeftSide : styles.body.styleWrapper}>\n {leftSide && <div className={styles.leftSide}>{leftSide(state)}</div>}\n <div className={toClassName(leftSide ? styles.body.tableWrapperWithLeftSide : styles.body.tableWrapper)}>\n <table className={toClassName(leftSide ? styles.body.table.container : styles.body.table.container)}>\n <thead className={styles.body.table.head.container}>\n {map(table?.getHeaderGroups(), (headerGroup) => (\n <tr key={headerGroup.id} className={styles.body.table.head.row}>\n {map(headerGroup.headers, (header) => {\n // Default sort icon to show a user that the column is sortable\n const ortIconElement = getSortIcon(header.column);\n\n return (\n <th\n key={header.id}\n colSpan={header.colSpan}\n className={toClassName(\n styles.body.table.head.cell.container,\n header.column.getCanSort() && 'cursor-pointer',\n header.column.getIsPinned() && styles.body.table.head.column.pinned.cell,\n )}\n onClick={header.column.getToggleSortingHandler()}\n style={{\n minWidth:\n !!header.column.columnDef.size && header.column.columnDef.size !== 150\n ? `${header.column.columnDef.size}px`\n : 'auto',\n ...getCommonPinningStyles(header.column),\n }}\n >\n <div\n className={styles.body.table.head.cell.wrapper}\n style={{\n gridTemplateColumns: '1fr auto',\n }}\n >\n {header.isPlaceholder ? null : (\n <div className={styles.body.table.head.cell.text}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </div>\n )}\n {header.column.getCanSort() && (\n <span\n className={toClassName(\n styles.body.table.head.cell.sortIndicator.container,\n header.column.getIsSorted()\n ? styles.body.table.head.cell.sortIndicator.isSorted\n : styles.body.table.head.cell.sortIndicator.isNotSorted,\n )}\n >\n <div className={styles.body.table.head.cell.sortIndicator.icon.container}>\n {ortIconElement}\n </div>\n </span>\n )}\n </div>\n </th>\n );\n })}\n </tr>\n ))}\n </thead>\n {!isLoading && (\n <tbody className={styles.body.table.body.container}>\n {isDraggable ? (\n <SortableContext\n items={map(config.data, (entity) => get(entity, dragConfig?.rowIdentifierKey as string))}\n strategy={verticalListSortingStrategy}\n >\n {map(table?.getRowModel().rows, (row, index) => (\n <DraggableRow\n key={get(row.original, dragConfig?.rowIdentifierKey as string)}\n row={row}\n index={index}\n />\n ))}\n </SortableContext>\n ) : (\n map(table?.getRowModel().rows, (row, index) => (\n <tr\n key={row.id}\n onClick={() => {\n if (onRowClick) onRowClick(row);\n else if (row.getIsGrouped()) row.getToggleExpandedHandler()();\n }}\n data-row-id={row.id}\n className={toClassName(\n styles.body.table.body.row,\n row.getIsGrouped() && styles.body.table.body.groupedRow,\n config.options?.isStriped && index % 2 === 0 && styles.body.table.body.striped,\n )}\n >\n {map(row.getVisibleCells(), (cell) => (\n <td\n key={cell.id}\n data-column-id={cell.column.id}\n data-row-id={row.id}\n className={toClassName(\n styles.body.table.body.cell,\n config?.options?.hasStickyHeader &&\n index !== table?.getState()?.pagination?.pageSize - 1 &&\n styles.body.table.body.sticky,\n cell.column.getIsPinned() && styles.body.table.body.column.pinned.cell,\n )}\n style={{\n width: cell.column.getSize(),\n ...getCommonPinningStyles(cell.column),\n }}\n >\n {cell.getIsGrouped() ? (\n // If it's a grouped cell, add an expander and row count\n <div className={styles.body.table.body.groupedCell}>\n <IconElement\n className={\n row.getIsExpanded()\n ? styles.body.table.body.groupedRowIcon.collapse\n : styles.body.table.body.groupedRowIcon.expand\n }\n accessor={\n row.getIsExpanded()\n ? (config?.options?.grouping?.collapseIconAccessor ?? 'chevron-down')\n : (config?.options?.grouping?.expandIconAccessor ?? 'chevron-right')\n }\n />\n {handleFlexRender(cell)} ({row.subRows.length})\n </div>\n ) : cell.getIsAggregated() ? (\n // If the cell is aggregated, use the Aggregated\n // renderer for cell\n flexRender(\n cell.column.columnDef.aggregatedCell ?? cell.column.columnDef.cell,\n cell.getContext(),\n )\n ) : cell.getIsPlaceholder() ? null : ( // For cells with repeated values, render null\n // Otherwise, just render the regular cell\n flexRender(cell.column.columnDef.cell, cell.getContext())\n )}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n )}\n </table>\n {isEmpty(table?.getRowModel().rows) && !isLoading && (\n <>\n {config?.options?.emptyComponent ? (\n config?.options?.emptyComponent\n ) : (\n <div className={defaultStyles.empty}>There is no data to show...</div>\n )}\n </>\n )}\n {isLoading && (\n <div className={defaultStyles.loading.container}>\n {times(8, (index) => (\n <div key={index} className={defaultStyles.loading.row.container}>\n <div className={defaultStyles.loading.row.first} />\n <div className={defaultStyles.loading.row.last} />\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n {foot && <div className={styles.foot}>{foot(state)}</div>}\n </div>\n );\n\n return isDraggable ? (\n <DndContext\n collisionDetection={closestCenter}\n modifiers={[restrictToVerticalAxis]}\n onDragEnd={onDragEnd}\n sensors={sensors}\n >\n {Content}\n </DndContext>\n ) : (\n Content\n );\n};\n\nexport default TableList2;\n","import { get, isEmpty, pick, some } from 'lodash';\n\ntype TTableState = {\n columnVisibility: Record<string, boolean>;\n columnOrder: string[];\n};\n\nexport const getTableState = (tableName: string): TTableState | undefined => {\n const savedState = localStorage.getItem(`TableList.${tableName}.state`);\n\n try {\n if (savedState && isValidState(JSON.parse(savedState))) {\n return JSON.parse(savedState);\n }\n } catch (e) {\n // Something went wrong with parsing the saved state; remove it and let the table use the default state\n console.error(e);\n localStorage.removeItem(`TableList.${tableName}.state`);\n return undefined;\n }\n};\n\nexport const setTableState = (tableName: string, state: any) => {\n // we only care about the order and visibility of columns\n const cherryPickedState = pick(state, ['columnOrder', 'columnVisibility']);\n\n if (isValidState(cherryPickedState)) {\n localStorage.setItem(`TableList.${tableName}.state`, JSON.stringify(cherryPickedState));\n }\n};\n\nexport const removeTableState = (tableName: string) => {\n localStorage.removeItem(`TableList.${tableName}.state`);\n};\n\nconst isValidState = (state: TTableState | undefined) => {\n if (\n !state?.columnOrder ||\n !state?.columnVisibility ||\n isEmpty(state?.columnOrder) ||\n Object.keys(state?.columnVisibility).length === 0\n ) {\n return false;\n }\n\n if (some(state.columnOrder, (item) => typeof item !== 'string')) {\n return false;\n }\n\n if (some(Object.keys(state.columnVisibility), (key) => typeof get(state.columnVisibility, key) !== 'boolean')) {\n return false;\n }\n\n return true;\n};\n","import { DeepPartialType } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n\n head: '',\n body: {\n container: 'flex flex-col',\n wrapper: 'flow-root relative',\n content: '',\n styleWrapper: 'flex overflow-x-scroll overflow-y-visible',\n styleWrapperWithLeftSide: 'flex',\n tableWrapper: 'inline-block min-w-full align-middle',\n tableWrapperWithLeftSide: 'w-full overflow-x-scroll',\n table: {\n container: 'min-w-full border-separate border-spacing-0',\n containerWithLeftSide: 'border-separate border-spacing-0',\n pinnedColumns: {\n left: '-4px 0 4px -4px gray inset',\n right: '4px 0 4px -4px gray inset',\n },\n head: {\n container: '',\n row: '',\n checkbox:\n 'absolute left-4 top-1/2 -mt-2 h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-500 sm:left-6',\n column: {\n pinned: {\n cell: 'bg-white sticky z-10 overflow-hidden text-ellipsis',\n },\n },\n\n cell: {\n container: 'py-3.5 px-3 text-left text-sm font-semibold text-gray-900 group border-b',\n wrapper: 'grid gap-x-1 items-center',\n text: 'whitespace-normal break-words',\n sortIndicator: {\n container: 'ml-2 inline-flex items-center rounded-sm',\n isSorted: 'bg-gray-100 text-gray-900 group-hover:bg-gray-200',\n isNotSorted: 'text-gray-400 group-hover:text-gray-900 group-hover:bg-gray-200',\n icon: {\n container: 'w-5 h-5 flex items-center justify-center',\n },\n },\n },\n },\n body: {\n container: 'border',\n row: '',\n striped: 'bg-gray-50',\n column: {\n pinned: {\n cell: 'bg-white sticky z-10 overflow-hidden text-ellipsis',\n },\n },\n cell: 'whitespace-nowrap py-2.5 px-3 text-sm text-gray-500',\n sticky: 'border-b border-gray-200',\n groupedRow: 'cursor-pointer select-none',\n groupedCell: 'flex gap-2 items-center',\n groupedRowIcon: {\n expand: '',\n collapse: '',\n },\n checkbox:\n 'absolute left-4 top-1/2 -mt-2 h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-500 sm:left-6',\n indicator: 'absolute inset-y-0 left-0 w-0.5 bg-primary-600',\n },\n },\n },\n foot: '',\n leftSide: 'text-sm text-gray-500',\n};\n\nconst styles = {\n base,\n\n loading: {\n container: 'flex flex-col gap-y-2 w-full pt-5',\n row: {\n container: 'flex gap-2',\n first: 'w-20 h-12 rounded-md bg-gray-100 animate-pulse',\n last: 'w-full h-12 rounded-md bg-gray-100 animate-pulse',\n },\n },\n\n empty: 'w-full flex justify-center my-2',\n};\n\nexport type TTableListStyles = DeepPartialType<typeof base>;\nexport default styles;\n","import { createColumnHelper as createNativeColumnHelper } from '@tanstack/react-table';\n\nexport const createColumnHelper = <TData>() => createNativeColumnHelper<TData>();\n","import get from 'lodash/get';\nimport set from 'lodash/set';\nimport React, { FC, ReactNode, useMemo } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../../Element/Icon';\n\nimport { TBreadcrumbsNavigationStyles } from './BreadcrumbsNavigation.styles';\nimport { default as defaultStyles } from './BreadcrumbsNavigation.styles';\n\nexport type TProps = {\n href: string;\n pages: { name: string; href: string; isCurrent: boolean }[];\n\n type?: 'slashes' | 'chevrons' | 'panel' | 'bar';\n separator?: ReactNode;\n\n styles?: TBreadcrumbsNavigationStyles;\n};\n\nconst BreadcrumbsNavigation: FC<TProps> = (props) => {\n const { href = '/', pages, type = 'slashes', separator: customSeparator, styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(get(defaultStyles.base, key), type && get(defaultStyles[type], key), get(stylesOverrides, key)),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const separator = useMemo(() => {\n let component;\n\n switch (type) {\n case 'slashes':\n component = (\n <svg className={styles.separator} fill=\"currentColor\" viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <path d=\"M5.555 17.776l8-16 .894.448-8 16-.894-.448z\" />\n </svg>\n );\n break;\n case 'chevrons':\n component = (\n <div className={styles.separator}>\n <IconElement accessor=\"chevron-right\" className=\"h-3! w-3!\" />\n </div>\n );\n break;\n case 'panel':\n component = (\n <svg\n className={styles.separator}\n viewBox=\"0 0 24 44\"\n preserveAspectRatio=\"none\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\n </svg>\n );\n break;\n case 'bar':\n component = (\n <svg\n className={styles.separator}\n viewBox=\"0 0 24 44\"\n preserveAspectRatio=\"none\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\n </svg>\n );\n break;\n }\n\n if (customSeparator) {\n component = customSeparator;\n }\n\n return component;\n }, [customSeparator, styles.separator, type]);\n\n const HomeLink = () => (\n <li className={styles.home.container}>\n <div className={styles.home.content}>\n <a href={href} className={styles.home.link}>\n <div className={styles.home.icon}>\n <IconElement accessor=\"home\" type=\"solid\" className=\"h-5 w-5\" />\n </div>\n <span className={styles.home.span}>Home</span>\n </a>\n </div>\n </li>\n );\n\n const PageLink = (props: { page: { name: string; href: string; isCurrent: boolean } }) => {\n const { page } = props;\n\n return (\n <li key={page.name} className={styles.page.container}>\n <div className={styles.page.content}>\n {separator}\n <a href={page.href} className={styles.page.link} aria-current={page.isCurrent ? 'page' : undefined}>\n {page.name}\n </a>\n </div>\n </li>\n );\n };\n\n return (\n <nav className={styles.container} aria-label=\"Breadcrumb\">\n <ol className={styles.list}>\n <HomeLink />\n {pages?.map((page) => (\n <PageLink key={page.name} page={page} />\n ))}\n </ol>\n </nav>\n );\n};\n\nexport default BreadcrumbsNavigation;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'flex',\n list: 'flex',\n separator: '',\n home: {\n container: 'flex',\n content: 'flex items-center',\n link: 'text-gray-400 hover:text-gray-500',\n icon: 'h-5 w-5 shrink-0',\n span: 'sr-only',\n },\n page: {\n container: 'flex',\n content: 'flex items-center',\n link: 'ml-4 text-sm font-medium text-gray-500 hover:text-gray-700',\n },\n};\n\nconst slashes: TBreadcrumbsNavigationStyles = {\n container: '',\n list: 'items-center space-x-4',\n separator: 'h-5 w-5 shrink-0 text-gray-400',\n home: {\n container: '',\n content: '',\n link: '',\n icon: '',\n span: '',\n },\n page: {\n container: '',\n content: '',\n link: '',\n },\n};\n\nconst chevrons: TBreadcrumbsNavigationStyles = {\n container: '',\n list: 'items-center space-x-4',\n separator: 'h-3 w-3 shrink-0 text-gray-400 flex items-center justify-center',\n home: {\n container: '',\n content: '',\n link: '',\n icon: '',\n span: '',\n },\n page: {\n container: '',\n content: '',\n link: '',\n },\n};\n\nconst panel: TBreadcrumbsNavigationStyles = {\n container: '',\n list: 'space-x-4 rounded-md bg-white px-6 shadow-sm',\n separator: 'h-full w-6 shrink-0 text-gray-200',\n home: {\n container: '',\n content: '',\n link: '',\n icon: '',\n span: '',\n },\n page: {\n container: '',\n content: '',\n link: '',\n },\n};\n\nconst bar: TBreadcrumbsNavigationStyles = {\n container: 'border-b border-gray-200 bg-white',\n list: 'mx-auto w-full max-w-(--breakpoint-xl) space-x-4 px-4 sm:px-6 lg:px-8',\n separator: 'h-full w-6 shrink-0 text-gray-200',\n home: {\n container: '',\n content: '',\n link: '',\n icon: '',\n span: '',\n },\n page: {\n container: '',\n content: '',\n link: '',\n },\n};\n\nconst styles = {\n base,\n\n slashes,\n chevrons,\n panel,\n bar,\n};\n\nexport type TBreadcrumbsNavigationStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { set, get } from 'lodash';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport IconElement from '../../../components/Element/Icon';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './PagePaginationNavigation.styles';\n\nimport { TPagePaginationNavigationStyles } from '.';\n\nexport type TProps = {\n min?: number;\n max: number;\n\n styles?: TPagePaginationNavigationStyles;\n\n onChange?: (current: number) => void;\n};\n\nconst PagePaginationNavigation: React.FC<TProps> = (props) => {\n const { min = 1, max = 20, styles: stylesOverrides, onChange } = props;\n\n const [current, setCurrent] = useState(2);\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const pageType = useMemo(() => {\n let result: 'first' | 'center' | 'last' | 'simple' = 'center';\n\n if (current < min + 2) {\n result = 'first';\n }\n\n if (current > max - 2) {\n result = 'last';\n }\n\n if (max <= 4) {\n result = 'simple';\n }\n\n return result;\n }, [current, min, max]);\n\n let component;\n\n switch (pageType) {\n case 'first':\n component = (\n <>\n <button\n className={toClassName(styles.button.default, current === min && styles.button.active)}\n onClick={() => setCurrent(min)}\n >\n {min}\n </button>\n <button\n className={toClassName(styles.button.default, current === min + 1 && styles.button.active)}\n onClick={() => setCurrent(min + 1)}\n >\n {min + 1}\n </button>\n <button\n className={toClassName(styles.button.default, current === min + 2 && styles.button.active)}\n onClick={() => setCurrent(min + 2)}\n >\n {min + 2}\n </button>\n <span className={styles.divider}>...</span>\n <button className={styles.button.default} onClick={() => setCurrent(max)}>\n {max}\n </button>\n </>\n );\n break;\n case 'center':\n component = (\n <>\n <button className={styles.button.default} onClick={() => setCurrent(min)}>\n {min}\n </button>\n {current - 2 !== min && <span className={styles.divider}>...</span>}\n <button className={styles.button.default} onClick={() => setCurrent(current - 1)}>\n {current - 1}\n </button>\n <button\n className={toClassName(styles.button.default, styles.button.active)}\n onClick={() => setCurrent(current)}\n >\n {current}\n </button>\n <button className={styles.button.default} onClick={() => setCurrent(current + 1)}>\n {current + 1}\n </button>\n {current + 2 !== max && <span className={styles.divider}>...</span>}\n <button className={styles.button.default} onClick={() => setCurrent(max)}>\n {max}\n </button>\n </>\n );\n break;\n case 'last':\n component = (\n <>\n <button className={styles.button.default} onClick={() => setCurrent(min)}>\n {min}\n </button>\n <span className={styles.divider}>...</span>\n <button\n className={toClassName(styles.button.default, current === max - 2 && styles.button.active)}\n onClick={() => setCurrent(max - 2)}\n >\n {max - 2}\n </button>\n <button\n className={toClassName(styles.button.default, current === max - 1 && styles.button.active)}\n onClick={() => setCurrent(max - 1)}\n >\n {max - 1}\n </button>\n <button\n className={toClassName(styles.button.default, current === max && styles.button.active)}\n onClick={() => setCurrent(max)}\n >\n {max}\n </button>\n </>\n );\n break;\n case 'simple':\n component = (\n <>\n <button\n className={toClassName(styles.button.default, current === min && styles.button.active)}\n onClick={() => setCurrent(min)}\n >\n {min}\n </button>\n {max >= min + 1 && (\n <button\n className={toClassName(styles.button.default, current === min + 1 && styles.button.active)}\n onClick={() => setCurrent(min + 1)}\n >\n {min + 1}\n </button>\n )}\n {max >= min + 2 && (\n <button\n className={toClassName(styles.button.default, current === min + 2 && styles.button.active)}\n onClick={() => setCurrent(min + 2)}\n >\n {min + 2}\n </button>\n )}\n {max >= min + 3 && (\n <button\n className={toClassName(styles.button.default, current === min + 3 && styles.button.active)}\n onClick={() => setCurrent(min + 3)}\n >\n {min + 3}\n </button>\n )}\n </>\n );\n break;\n }\n\n useEffect(() => {\n if (current) {\n onChange && onChange(current);\n }\n }, [onChange, current]);\n\n return (\n <nav className={styles.container}>\n <div className={styles.left.container}>\n <button\n className={toClassName(styles.left.button, current === min && styles.button.disabled)}\n disabled={current === min}\n onClick={() => setCurrent(current - 1)}\n >\n <div className={styles.left.icon}>\n <IconElement accessor=\"arrow-left-long\" />\n </div>\n Previous\n </button>\n </div>\n <div className={styles.center.container}>{component}</div>\n <div className={styles.right.container}>\n <button\n className={toClassName(styles.right.button, current === max && styles.button.disabled)}\n disabled={current === max}\n onClick={() => setCurrent(current + 1)}\n >\n Next\n <div className={styles.right.icon}>\n <IconElement accessor=\"arrow-right-long\" />\n </div>\n </button>\n </div>\n </nav>\n );\n};\n\nexport default PagePaginationNavigation;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nexport type StylesType = {\n container?: string;\n left?: {\n container?: string;\n button?: string;\n icon?: string;\n };\n center?: {\n container?: string;\n };\n right?: {\n container?: string;\n button?: string;\n icon?: string;\n };\n button?: {\n default?: string;\n active?: string;\n disabled?: string;\n };\n divider?: string;\n};\n\nconst base = {\n container: 'flex items-center justify-between border-t border-gray-200 px-4 sm:px-0',\n\n left: {\n container: '-mt-px flex w-0 flex-1',\n button:\n 'inline-flex items-center border-t-2 border-transparent pt-4 pr-1 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700 cursor-pointer',\n icon: 'mr-3 h-5 w-5 text-gray-400 flex items-center justify-center',\n },\n center: {\n container: 'hidden md:-mt-px md:flex',\n },\n right: {\n container: '-mt-px flex w-0 flex-1 justify-end',\n button:\n 'inline-flex items-center border-t-2 border-transparent pt-4 pr-1 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700 cursor-pointer',\n icon: 'ml-3 h-5 w-5 text-gray-400 flex items-center justify-center',\n },\n\n button: {\n default:\n 'inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700 cursor-pointer',\n active: 'border-primary-500 text-primary-600',\n disabled: 'opacity-20 cursor-not-allowed!',\n },\n divider: 'inline-flex items-center border-t-2 border-transparent px-4 pt-4 text-sm font-medium text-gray-500',\n};\n\nconst styles = {\n base,\n};\n\nexport type TPagePaginationNavigationStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { find, get, set } from 'lodash';\nimport {\n FC,\n ReactNode,\n useState,\n Children,\n useCallback,\n ElementType,\n ChangeEventHandler,\n useEffect,\n ReactElement,\n} from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './TabNavigation.styles';\n\nimport { TTabNavigationStyles } from '.';\n\nexport type TContainerProps = {\n children: ({ active, setActive }: { active: string; setActive: any }) => ReactNode | ReactNode[];\n styles?: Pick<TTabNavigationStyles, 'container'>;\n};\n\nexport type TListProps = {\n name: string;\n children: ReactNode | ReactNode[];\n active: string;\n setActive: any;\n styles?: Pick<TTabNavigationStyles, 'list'>;\n};\n\nexport type TNavigationItemProps = {\n label: ReactNode;\n icon?: ReactNode;\n\n accessor: string;\n href?: string;\n type?: 'underline' | 'pills' | 'buttons';\n as?: ElementType;\n\n isCurrent?: boolean;\n isInitial?: boolean;\n\n onClick?: ((accessor: MouseEvent) => void) | any;\n\n styles?: Pick<TTabNavigationStyles, 'tab'>;\n\n isLoading?: boolean;\n isHidden?: boolean;\n};\n\nexport type TViewProps = {\n children: ReactNode;\n};\n\nconst Container: FC<TContainerProps> = (props) => {\n const { children, styles: stylesOverrides } = props;\n\n const [active, setActive] = useState('');\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return <div className={styles.container}>{children({ active, setActive })}</div>;\n};\n\nconst List: FC<TListProps> = (props) => {\n const { name, children, active, setActive, styles: stylesOverrides } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const handleChangeSelect: ChangeEventHandler<{ value: string }> = useCallback(\n (e) => {\n const key = e?.currentTarget?.value;\n\n const tab: any = Children.map(children, (child: any) => child)?.find(\n (child: any) => child.props.accessor === key,\n );\n\n if (tab?.props.href) {\n window.location.href = tab.props.href;\n } else if (tab?.props.onClick) {\n setActive && setActive(tab?.props.accessor);\n }\n },\n [children, setActive],\n );\n\n useEffect(() => {\n let tab: ReactElement<TNavigationItemProps>;\n const tabs: ReactElement<TNavigationItemProps>[] = Children.map(children, (child: any) => child);\n\n const initialTab: ReactElement<TNavigationItemProps> | undefined = find(tabs, ['props.isInitial', true]);\n\n if (initialTab !== undefined) {\n tab = initialTab;\n } else {\n tab = tabs[0];\n }\n\n setActive && setActive(tab?.props?.accessor);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleCalculateActiveAccessor = () => {\n let result = active;\n\n const currentItem = Children.map(children, (child: any) => ({\n ...child.props,\n }))?.find((tab: any) => tab?.isCurrent);\n\n if (currentItem?.href) {\n result = currentItem?.accessor;\n }\n\n return result;\n };\n\n return (\n <div className={styles.list.container}>\n <div className={styles.list.head}>\n <label htmlFor={name} className={styles.list.label}>\n Select a tab\n </label>\n <select\n id={name}\n name={name}\n value={handleCalculateActiveAccessor()}\n className={styles.list.select}\n onChange={handleChangeSelect}\n >\n {Children.map(children, (child: any) => {\n if (child.props.isHidden) return null;\n\n return (\n <option key={child?.props?.accessor} value={child.props.accessor}>\n {child.props.label}\n </option>\n );\n })}\n </select>\n </div>\n <div className={styles.list.body}>\n <nav className={styles.list.navigation}>{children}</nav>\n </div>\n </div>\n );\n};\n\nconst Item: FC<TNavigationItemProps> = (props) => {\n const {\n label,\n icon,\n as: LinkComponent = 'a',\n type = 'underline',\n href,\n isCurrent,\n onClick,\n styles: stylesOverrides,\n isLoading,\n isHidden,\n } = props;\n\n if (isHidden) return null;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n if (href && LinkComponent) {\n return (\n <LinkComponent\n href={href}\n className={toClassName(\n styles.tab.base,\n isCurrent ? styles.tab.active : styles.tab.inactive,\n isLoading && 'opacity-30 text-gray-300! cursor-default!',\n isLoading && styles.tab.inactive,\n )}\n onClick={onClick}\n >\n {icon}\n {label}\n </LinkComponent>\n );\n }\n\n return (\n <div\n className={toClassName(\n styles.tab.base,\n isCurrent ? styles.tab.active : styles.tab.inactive,\n isLoading && 'opacity-30 text-gray-300! cursor-default!',\n isLoading && styles.tab.inactive,\n )}\n onClick={!isLoading ? onClick : () => null}\n >\n {icon}\n {label}\n </div>\n );\n};\n\nconst View: FC<TViewProps> = (props) => {\n const { children } = props;\n return <>{children}</>;\n};\n\nconst TabNavigation = {\n Container,\n List,\n Item,\n View,\n};\n\nexport default TabNavigation;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst defaultStyles = {\n container: '',\n\n list: {\n container: '',\n head: 'sm:hidden',\n body: 'hidden sm:block',\n label: 'sr-only',\n select:\n 'block w-full rounded-md border border-gray-300 py-2 px-3 text-base focus:border-primary-500 focus:outline-hidden focus:ring-primary-500 sm:text-sm',\n navigation: 'border-b border-gray-200 -mb-px flex space-x-8',\n },\n\n tab: {\n base: 'cursor-pointer',\n active: '',\n inactive: '',\n },\n};\n\nconst underline = {\n tab: {\n base: 'whitespace-nowrap flex gap-2 py-4 px-1 border-b-2 font-medium text-sm cursor-pointer',\n active: 'border-primary-500 text-primary-600',\n inactive: 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300',\n },\n};\n\nconst pills = {\n tab: {\n base: 'px-3 py-2 font-medium text-sm rounded-md cursor-pointer',\n active: 'bg-gray-100 text-gray-700',\n inactive: 'text-gray-500 hover:text-gray-700',\n },\n};\n\nconst buttons = {\n tab: {\n base: 'whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm cursor-pointer',\n active: 'border-primary-500 text-primary-600',\n inactive: 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300',\n },\n};\n\nconst styles = {\n base: defaultStyles,\n\n underline,\n pills,\n buttons,\n};\n\nexport type TTabNavigationStyles = DeepPartial<typeof defaultStyles>;\nexport default styles;\n","import React, { FC, ReactNode, useState, Children, useEffect, ElementType, Dispatch, SetStateAction } from 'react';\n\nimport { toClassName } from '../../../helpers/format';\n\nimport styles from './VerticalNavigation.styles';\n\nimport { ContainerStylesType, NavigationStylesType } from '.';\n\nexport type TContainerProps = {\n children: ({\n active,\n setActive,\n }: {\n active: string;\n setActive: Dispatch<SetStateAction<string>>;\n }) => ReactNode | ReactNode[];\n styles?: ContainerStylesType;\n};\n\nexport type TNavigationProps = {\n children: ReactNode | ReactNode[];\n active: string;\n setActive: Dispatch<SetStateAction<string>>;\n styles?: NavigationStylesType;\n};\n\nexport type TNavigationItemProps = {\n accessor: string;\n href?: string;\n type?: string;\n children: ReactNode | ReactNode[];\n linkComponent?: ElementType;\n\n isCurrent?: boolean;\n isInitial?: boolean;\n\n onClick?: (accessor: MouseEvent) => void;\n};\n\nexport type TViewProps = {\n children: ReactNode;\n};\n\nconst Container: FC<TContainerProps> = (props) => {\n const { children, styles: stylesOverrides } = props;\n\n const [active, setActive] = useState<string>('');\n\n return <div className={stylesOverrides?.container}>{children({ active, setActive })}</div>;\n};\n\nconst List: FC<TNavigationProps> = (props) => {\n const { children, setActive, styles: stylesOverrides } = props;\n\n useEffect(() => {\n let tab;\n\n const tabs: any[] = Children.map(children, (child) => child) ?? [];\n const initialTab = tabs.find((tab) => tab?.props.isInitial);\n\n if (initialTab !== undefined) {\n tab = initialTab;\n } else {\n tab = tabs[0];\n }\n\n setActive && setActive(tab?.props.accessor);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return <nav className={toClassName(styles.list, stylesOverrides?.list)}>{children}</nav>;\n};\n\nconst Item: FC<TNavigationItemProps> = (props) => {\n const { children, href, isCurrent, linkComponent: LinkComponent = 'a', onClick } = props;\n\n return (\n <LinkComponent\n href={href}\n className={toClassName(styles.item[isCurrent ? 'active' : 'notActive'], styles.item.base)}\n onClick={onClick}\n >\n {children}\n </LinkComponent>\n );\n};\n\nconst View: FC<TViewProps> = (props) => {\n const { children } = props;\n return <>{children}</>;\n};\n\nconst VerticalNavigation = {\n Container,\n List,\n Item,\n View,\n};\n\nexport default VerticalNavigation;\n","export type StylesType = {\n items?: {\n base?: string;\n active?: string;\n notActive?: string;\n };\n};\n\nexport type ContainerStylesType = {\n container: string;\n};\n\nexport type NavigationStylesType = {\n list?: string;\n};\n\nconst styles = {\n container: '',\n list: 'space-y-1',\n item: {\n base: 'flex items-center px-3 py-2 text-sm font-medium rounded-md cursor-pointer',\n active: 'bg-gray-100 text-gray-900',\n notActive: 'text-gray-600 hover:bg-gray-50 hover:text-gray-900',\n },\n};\n\nexport default styles;\n","import { Dialog, Transition, TransitionChild } from '@headlessui/react';\nimport { set, get } from 'lodash';\nimport React, { Fragment, useState, FC, useMemo, ReactNode, useEffect, useCallback } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './ModalOverlay.styles';\n\nimport { TModalOverlayStyles } from '.';\n\nexport type TModalOverlayProps = {\n trigger?: ({ handleOpen, handleClose }: { handleOpen: () => void; handleClose: () => void }) => ReactNode;\n children: ({ handleOpen, handleClose }: { handleOpen: () => void; handleClose: () => void }) => ReactNode;\n\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n styles?: TModalOverlayStyles;\n\n dataCy?: string;\n\n onOpen?: () => void;\n onClose?: () => void;\n};\n\nconst ModalOverlay: FC<TModalOverlayProps> = (props) => {\n const { children, trigger, size = 'md', styles: stylesOverrides, dataCy, onOpen, onClose } = props;\n\n const [isOpen, setIsOpen] = useState(trigger ? false : true);\n\n const handleClose = useCallback(() => {\n setIsOpen(false);\n if (onClose) setTimeout(onClose, 180);\n }, [onClose]);\n\n const options = useMemo(\n () => ({\n handleOpen: () => setIsOpen(true),\n handleClose: handleClose,\n }),\n [handleClose],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n size && get(defaultStyles[size], key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n useEffect(() => {\n if (isOpen) {\n onOpen && onOpen();\n }\n }, [isOpen, onOpen]);\n\n return (\n <>\n <Transition show={isOpen} as={Fragment}>\n <Dialog as=\"div\" className={styles.container} onClose={handleClose}>\n <TransitionChild\n as={Fragment}\n enter={styles.background.transition.enter}\n enterFrom={styles.background.transition.enterFrom}\n enterTo={styles.background.transition.enterTo}\n leave={styles.background.transition.leave}\n leaveFrom={styles.background.transition.leaveFrom}\n leaveTo={styles.background.transition.leaveTo}\n >\n <div className={styles.background.container} />\n </TransitionChild>\n <div className={styles.layout.container}>\n <div className={styles.layout.content} data-cy={dataCy}>\n <TransitionChild\n as={Fragment}\n enter={styles.panel.transition.enter}\n enterFrom={styles.panel.transition.enterFrom}\n enterTo={styles.panel.transition.enterTo}\n leave={styles.panel.transition.leave}\n leaveFrom={styles.panel.transition.leaveFrom}\n leaveTo={styles.panel.transition.leaveTo}\n >\n <Dialog.Panel className={styles.panel.container}>{children(options)}</Dialog.Panel>\n </TransitionChild>\n </div>\n </div>\n </Dialog>\n </Transition>\n {trigger && trigger(options)}\n </>\n );\n};\n\nexport default ModalOverlay;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative z-20',\n\n background: {\n container: 'fixed inset-0 bg-gray-500/75 transition-opacity',\n transition: {\n enter: 'ease-out duration-300',\n enterFrom: 'opacity-0',\n enterTo: 'opacity-100',\n leave: 'ease-in duration-200',\n leaveFrom: 'opacity-100',\n leaveTo: 'opacity-0',\n },\n },\n\n layout: {\n container: 'fixed inset-0 z-40 overflow-y-auto',\n content: 'flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0',\n },\n\n panel: {\n container: 'relative transform rounded-lg bg-white w-full shadow-xl transition-all sm:w-full text-left',\n transition: {\n enter: 'ease-out duration-300',\n enterFrom: 'opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95',\n enterTo: 'opacity-100 translate-y-0 sm:scale-100',\n leave: 'ease-in duration-200',\n leaveFrom: 'opacity-100 translate-y-0 sm:scale-100',\n leaveTo: 'opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95',\n },\n },\n};\n\nconst xs: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-xs',\n },\n};\n\nconst sm: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-sm',\n },\n};\n\nconst md: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-md',\n },\n};\n\nconst lg: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-2xl',\n },\n};\n\nconst xl: TModalOverlayStyles = {\n panel: {\n container: 'sm:max-w-4xl',\n },\n};\n\nconst styles = {\n base,\n\n xs,\n sm,\n md,\n lg,\n xl,\n};\n\nexport type TModalOverlayStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Transition } from '@headlessui/react';\nimport { set, get } from 'lodash';\nimport React, { Fragment, useState, FC, useMemo, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './NotificationOverlay.styles';\n\nimport { TNotificationOverlayStyles } from '.';\n\nexport type TProps = {\n trigger?: ({ onOpen, onClose }: { onOpen: () => void; onClose: () => void }) => ReactNode;\n children: ({ onOpen, onClose }: { onOpen: () => void; onClose: () => void }) => ReactNode;\n\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n styles?: TNotificationOverlayStyles;\n};\n\nconst NotificationOverlayContainer = ({\n children,\n styles: stylesOverrides,\n}: {\n children: ReactNode;\n styles?: TNotificationOverlayStyles;\n}) => {\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles.base, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div aria-live=\"assertive\" className={styles.container.outer}>\n <div className={styles.container.inner}>{children}</div>\n </div>\n );\n};\n\nconst NotificationOverlayItem: FC<TProps> = (props) => {\n const { children, trigger, size = 'md', styles: stylesOverrides } = props;\n\n const [isOpen, setIsOpen] = useState(trigger ? false : true);\n\n const options = useMemo(\n () => ({\n onOpen: () => setIsOpen(true),\n onClose: () => setIsOpen(false),\n }),\n [],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(get(defaultStyles.base, key), size && get(defaultStyles[size], key), get(stylesOverrides, key)),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <>\n <Transition\n show={isOpen}\n as={Fragment}\n enter={styles.item.panel.transition.enter}\n enterFrom={styles.item.panel.transition.enterFrom}\n enterTo={styles.item.panel.transition.enterTo}\n leave={styles.item.panel.transition.leave}\n leaveFrom={styles.item.panel.transition.leaveFrom}\n leaveTo={styles.item.panel.transition.leaveTo}\n >\n <div className={styles.item.panel.container}>{children(options)}</div>\n </Transition>\n {trigger && trigger(options)}\n </>\n );\n};\n\nconst NotificationOverlay = {\n Container: NotificationOverlayContainer,\n Item: NotificationOverlayItem,\n};\n\nexport default NotificationOverlay;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: {\n outer: 'pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6 z-30',\n inner: 'flex w-full flex-col items-center space-y-4 sm:items-end',\n },\n item: {\n container: 'relative',\n\n layout: {\n container: 'fixed inset-0 overflow-hidden',\n content: 'absolute inset-0 overflow-hidden',\n inner: 'pointer-events-none fixed inset-y-0 right-0 flex max-w-full pl-10',\n },\n\n panel: {\n container:\n 'pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black/5',\n transition: {\n enter: 'transform ease-out duration-300 transition',\n enterFrom: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-x-2',\n enterTo: 'translate-y-0 opacity-100 sm:translate-x-0',\n leave: 'transition ease-in duration-100',\n leaveFrom: 'opacity-100',\n leaveTo: 'opacity-0',\n },\n },\n },\n};\n\nconst xs: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-xs',\n },\n },\n};\n\nconst sm: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-sm',\n },\n },\n};\n\nconst md: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-md',\n },\n },\n};\n\nconst lg: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-2xl',\n },\n },\n};\n\nconst xl: TNotificationOverlayStyles = {\n item: {\n panel: {\n container: 'sm:max-w-4xl',\n },\n },\n};\n\nconst styles = {\n base,\n\n xs,\n sm,\n md,\n lg,\n xl,\n};\n\nexport type TNotificationOverlayStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Dialog, Transition } from '@headlessui/react';\nimport { get, set } from 'lodash';\nimport React, { Fragment, useState, FC, useMemo, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './SlideOverOverlay.styles';\n\nimport { TSlideOverOverlayStyles } from '.';\n\nexport type TProps = {\n trigger?: ({ handleOpen, handleClose }: { handleOpen: () => void; handleClose: () => void }) => ReactNode;\n children: ({ handleOpen, handleClose }: { handleOpen: () => void; handleClose: () => void }) => ReactNode;\n\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n styles?: TSlideOverOverlayStyles;\n};\n\nconst SlideOverOverlay: FC<TProps> = (props) => {\n const { children, trigger, size = 'md', styles: stylesOverrides } = props;\n\n const [isOpen, setIsOpen] = useState(trigger ? false : true);\n\n const options = useMemo(\n () => ({\n handleOpen: () => setIsOpen(true),\n handleClose: () => setIsOpen(false),\n }),\n [],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(get(defaultStyles.base, key), size && get(defaultStyles[size], key), get(stylesOverrides, key)),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <>\n <Transition.Root show={isOpen} as={Fragment}>\n <Dialog as=\"div\" className={styles.container} onClose={setIsOpen}>\n <Transition.Child\n as={Fragment}\n enter={styles.background.transition.enter}\n enterFrom={styles.background.transition.enterFrom}\n enterTo={styles.background.transition.enterTo}\n leave={styles.background.transition.leave}\n leaveFrom={styles.background.transition.leaveFrom}\n leaveTo={styles.background.transition.leaveTo}\n >\n <div className={styles.background.container} />\n </Transition.Child>\n\n <div className={styles.layout.container}>\n <div className={styles.layout.content}>\n <div className={styles.layout.inner}>\n <Transition.Child\n as={Fragment}\n enter={styles.panel.transition.enter}\n enterFrom={styles.panel.transition.enterFrom}\n enterTo={styles.panel.transition.enterTo}\n leave={styles.panel.transition.leave}\n leaveFrom={styles.panel.transition.leaveFrom}\n leaveTo={styles.panel.transition.leaveTo}\n >\n <Dialog.Panel className={styles.panel.container}>{children(options)}</Dialog.Panel>\n </Transition.Child>\n </div>\n </div>\n </div>\n </Dialog>\n </Transition.Root>\n {trigger && trigger(options)}\n </>\n );\n};\n\nexport default SlideOverOverlay;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative z-20',\n\n background: {\n container: 'fixed inset-0 bg-gray-500/75 transition-opacity',\n transition: {\n enter: 'ease-in-out duration-500',\n enterFrom: 'opacity-0',\n enterTo: 'opacity-100',\n leave: 'ease-in-out duration-500',\n leaveFrom: 'opacity-100',\n leaveTo: 'opacity-0',\n },\n },\n\n layout: {\n container: 'fixed inset-0 overflow-hidden',\n content: 'absolute inset-0 overflow-hidden',\n inner: 'pointer-events-none fixed inset-y-0 right-0 flex max-w-full pl-10',\n },\n\n panel: {\n container: 'pointer-events-auto w-screen bg-white',\n transition: {\n enter: 'transform transition ease-in-out duration-500 sm:duration-700',\n enterFrom: 'translate-x-full',\n enterTo: 'translate-x-0',\n leave: 'transform transition ease-in-out duration-500 sm:duration-700',\n leaveFrom: 'translate-x-0',\n leaveTo: 'translate-x-full',\n },\n },\n};\n\nconst xs: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-xs',\n },\n};\n\nconst sm: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-sm',\n },\n};\n\nconst md: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-md',\n },\n};\n\nconst lg: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-2xl',\n },\n};\n\nconst xl: TSlideOverOverlayStyles = {\n panel: {\n container: 'sm:max-w-4xl',\n },\n};\n\nconst styles = {\n base,\n\n xs,\n sm,\n md,\n lg,\n xl,\n};\n\nexport type TSlideOverOverlayStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Popover, PopoverButton, PopoverPanel } from '@headlessui/react';\nimport { Column, ColumnOrderState, Table } from '@tanstack/react-table';\nimport { set, get } from 'lodash';\nimport React, { Dispatch, FC, ReactNode, SetStateAction, useCallback } from 'react';\n\nimport IconElement from '../../../components/Element/Icon/Icon';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { removeTableState } from '../../../helpers/localStorage';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles, TTableColumnOptionsStyles } from './TableColumnOptionsCustom.styles';\n\ntype TProps = {\n table: Table<any>;\n setColumnOrder: Dispatch<SetStateAction<ColumnOrderState>>;\n trigger: ReactNode;\n styles?: TTableColumnOptionsStyles;\n resetConfig?: {\n tableId: string;\n label?: string;\n onReset?: () => void;\n };\n};\n\nconst TableColumnOptionsCustom: FC<TProps> = (props) => {\n const { table, trigger, setColumnOrder, styles: stylesOverrides, resetConfig } = props;\n\n const handleUpdateColumnOrder = useCallback(\n (table: any, column: { id: string }, location: number, setColumnOrder: any) => {\n const ids: string[] = table.getAllLeafColumns()?.map((column: any) => column.id);\n\n const currentIndexOfId = ids.findIndex((id) => id === column.id);\n\n // Remove id from array.\n ids.splice(currentIndexOfId, 1);\n // Re-insert id at correct location in array.\n ids.splice(location, 0, column.id);\n\n setColumnOrder(ids);\n },\n [],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles);\n const keys = calculateNestedKeys(defaultStyles);\n\n keys.forEach((key) => {\n set(result, key, toClassName(get(defaultStyles, key), get(stylesOverrides, key)));\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <Popover>\n <PopoverButton as=\"div\">{trigger}</PopoverButton>\n <PopoverPanel className={styles.controls.content}>\n {resetConfig && (\n <div\n className={styles.controls.dropdown.reset}\n onClick={() => {\n removeTableState(resetConfig.tableId);\n table.resetColumnVisibility();\n table.resetColumnOrder();\n resetConfig.onReset && resetConfig.onReset();\n }}\n >\n <IconElement accessor=\"rotate-left\" />\n <p>{resetConfig.label ?? 'Reset'}</p>\n </div>\n )}\n {table.getAllLeafColumns().map((column: Column<any, any>, index: number) => {\n const isAccessorColumn = !!column?.accessorFn;\n\n return (\n <div\n key={column.id}\n className={toClassName(styles.controls.dropdown.container, !isAccessorColumn && 'hidden')}\n >\n <input\n className={styles.controls.dropdown.input}\n type=\"checkbox\"\n checked={column.getIsVisible()}\n onChange={column.getToggleVisibilityHandler()}\n />\n <label className={styles.controls.dropdown.label}>{column.columnDef.header as string}</label>\n <div className={styles.controls.dropdown.actions}>\n <div\n onClick={() => handleUpdateColumnOrder(table, column, index - 1, setColumnOrder)}\n className={styles.controls.dropdown.upIconContainer}\n >\n <IconElement accessor=\"chevron-up\" />\n </div>\n <div\n onClick={() => handleUpdateColumnOrder(table, column, index - 1, setColumnOrder)}\n className={styles.controls.dropdown.downIconContainer}\n >\n <IconElement accessor=\"chevron-down\" />\n </div>\n </div>\n </div>\n );\n })}\n </PopoverPanel>\n </Popover>\n );\n};\n\nexport default TableColumnOptionsCustom;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst styles = {\n controls: {\n container: 'flex-row justify-between z-10 relative mb-4 gap-2 hidden',\n content: 'absolute rounded-md z-20 bg-white w-fit -translate-x-1/2 my-2 flex flex-col border-[1px]',\n head: '',\n body: 'flex flex-row justify-end gap-2',\n dropdown: {\n reset: 'flex px-4 py-2 text-sm cursor-pointer hover:bg-red-100 bg-red-50 items-center flex-row gap-3',\n container: 'px-4 py-2 text-sm flex flex-row items-center font-medium group',\n input: 'mr-3 cursor-pointer',\n label: 'mr-3',\n actions: 'w-10 grid text-white grid-cols-2 gap-2 group-hover:grid group-hover:text-gray-400',\n upIconContainer:\n 'w-5 h-5 flex items-center justify-center hover:text-black hover:bg-gray-200 rounded-md cursor-pointer',\n downIconContainer:\n 'w-5 h-5 flex items-center justify-center hover:text-black hover:bg-gray-200 rounded-md cursor-pointer',\n },\n },\n\n label: 'hidden md:block',\n icon: 'md:mr-3 inline-flex items-center',\n};\n\nexport default styles;\n\nexport type TTableColumnOptionsStyles = DeepPartial<typeof styles>;\n","export { default } from './TableExportCustom';\n","import { Table } from '@tanstack/react-table';\nimport React, { ReactNode } from 'react';\n\nimport { useExcel } from '../../../hooks/useExcel';\n\ntype TProps<TData> = {\n table: Table<TData>;\n fileName: string;\n children: ({ handleExport }: { handleExport: (exportData?: TData[]) => void }) => ReactNode;\n};\n\nconst TableExcelExportCustom = <TData extends object>(props: TProps<TData>) => {\n const { table, fileName, children } = props;\n\n const { generate, write } = useExcel<TData>();\n\n const handleExport = (exportData?: TData[]) => {\n const sheets = generate(table, exportData);\n write(sheets, { fileName });\n };\n\n return <div>{children({ handleExport })}</div>;\n};\n\nexport default TableExcelExportCustom;\n","import { isNil } from 'lodash';\nimport { DateTime } from 'luxon';\n\nimport { defaultLocale } from '../hooks/useExcelMapper';\n\nexport type TDefaultDateFormatOptions = {\n /**\n * Luxon-compatible format string.\n *\n * @default \"dd LLL yyyy\"\n * @example \"yyyy-LL-dd\" // => 2025-01-06\n */\n format?: string;\n /**\n * BCP-47 or ISO language code.\n *\n * @default \"nl\"\n * @example \"en\" // => English\n * @example \"fr\" // => French\n */\n locale?: string;\n};\n\nexport type TDateFormatFunction = (date: string | undefined, options?: TDefaultDateFormatOptions) => string;\n\nexport type TTimeFormatFunction = (date: string | undefined, options?: TDefaultDateFormatOptions) => string;\n\n/**\n * Checks whether a string is a valid ISO date/time string using Luxon.\n *\n * @param date - The date string to validate, e.g. \"2025-01-06T13:20:00\".\n * @returns `true` if `date` is a valid ISO string, otherwise `false`.\n */\nexport const isValidDate = (date?: string): boolean => {\n if (isNil(date)) return false;\n const dt = DateTime.fromISO(date);\n return dt.isValid;\n};\n\n/**\n * Formats an ISO date string according to the specified format and locale.\n *\n * @param date - A string containing a date in ISO 8601 format (e.g. \"2025-01-06\").\n * @param options - An optional object specifying date format and locale.\n * @returns A formatted date string or an empty string if invalid.\n *\n * @example\n * toDateString(\"2025-01-06\"); // => \"06 Jan 2025\" (default: 'dd LLL yyyy', locale 'nl')\n */\nexport const toDateString: TDateFormatFunction = (date, options) => {\n const format = options?.format ?? 'dd LLL yyyy';\n const locale = options?.locale ?? defaultLocale;\n\n if (!isValidDate(date)) return '';\n return DateTime.fromISO(date!).setLocale(locale).toFormat(format);\n};\n\n/**\n * Formats an ISO date/time string as a time, e.g. \"HH.mm'u'\".\n *\n * @param date - A string containing a date/time in ISO 8601 format (e.g. \"2025-01-06T13:20:00\").\n * @param options - An optional object specifying time format and locale.\n * @returns A formatted time string or an empty string if invalid.\n *\n * @example\n * toTimeString(\"2025-01-06T13:20:00\"); // => \"13.20'u'\"\n */\nexport const toTimeString: TTimeFormatFunction = (date, options) => {\n const format = options?.format ?? \"HH.mm'u'\";\n const locale = options?.locale ?? defaultLocale;\n\n if (!isValidDate(date)) return '';\n return DateTime.fromISO(date!).setLocale(locale).toFormat(format);\n};\n\n/**\n * Formats an ISO date string according to the specified format and locale.\n *\n * @param date - A string containing a date in ISO 8601 format (e.g. \"2025-01-06\").\n * @param options - An optional object specifying date format and locale.\n * @returns A formatted date string or an empty string if invalid.\n *\n * @example\n * toDateTimeString(\"2025-01-06T13:20:00\");\n */\nexport const toDateTimeString: TTimeFormatFunction = (date, options) =>\n toDateString(date, { ...options, format: 'dd LLL yyyy, HH:mm' });\n\n/**\n * Calculates the absolute difference, in whole days, between the given date and the current date/time.\n *\n * @param date - A string containing a date/time in ISO 8601 format.\n * @returns The number of days difference if valid, otherwise `undefined`.\n *\n * @example\n * toDaysDifference(\"2025-01-06\"); // => 365 (example)\n */\nexport const toDaysDifference = (date?: string): number | undefined => {\n if (!isValidDate(date)) return undefined;\n const diff = Math.abs(DateTime.fromISO(date!).diffNow('days').as('days'));\n return Math.round(diff);\n};\n\n/**\n * Formats a date string to \"yyyy-MM-dd\", often used for `<input type=\"date\" />` values.\n *\n * @param date - A string containing a date in ISO 8601 format.\n * @returns A string in \"yyyy-MM-dd\" format or an empty string if invalid.\n *\n * @example\n * toDateValue(\"2025-01-06\"); // => \"2025-01-06\"\n */\nexport const toDateValue = (date?: string): string => {\n if (!isValidDate(date)) return '';\n return DateTime.fromISO(date!).toFormat('yyyy-LL-dd');\n};\n\n/**\n * Creates a new `Date` object in UTC, based on a \"yyyy-MM-dd\" date and \"HH:mm\" time.\n *\n * @param date - A date string in \"yyyy-MM-dd\" format.\n * @param time - A time string in \"HH:mm\" format.\n * @returns A `Date` object in UTC, or the current date if inputs are missing.\n *\n * @example\n * toUTCDate(\"2025-01-06\", \"13:20\");\n * // => new Date(Date.UTC(2025, 0, 6, 13, 20))\n */\nexport const toUTCDate = (date?: string, time?: string): Date => {\n if (!date || !time) return new Date();\n const [year, month, day] = date.split('-').map(Number);\n const [hours, minutes] = time.split(':').map(Number);\n return new Date(Date.UTC(year, month - 1, day, hours, minutes));\n};\n\nexport const toTimeValue = toTimeString;\n\n/**\n * Returns the \"latest\" date (lexicographically) from an array of date strings or undefined.\n *\n * @param dates - An array of ISO date strings or undefined (e.g. [\"2025-01-06\", undefined, \"2024-12-31\"]).\n * @returns The largest date string or an empty string if none provided or none valid.\n *\n * @example\n * latestDateString([\"2025-01-06\", undefined, \"2025-01-07\"]); // => \"2025-01-07\"\n */\nexport const latestDateString = (dates: (string | undefined)[] = []): string => {\n // Filter out any undefined or falsy values\n const validDates = dates.filter(Boolean) as string[];\n\n if (!validDates.length) return '';\n\n return validDates.reduce((latest, date) => (latest > date ? latest : date));\n};\n","import { isEmpty, map } from 'lodash';\nimport { ReactNode, useMemo } from 'react';\n\nimport { toDateString } from '../helpers/date';\n\nexport const defaultLocale = 'nl';\n\nexport type TStringCell = {\n value: string;\n type: string;\n};\n\ntype TNumberCell = {\n value: number;\n type: string;\n};\n\n/**\n * A function that accepts a translation key and optional parameters, returning the translated string.\n *\n * @param key - The translation key.\n * @param options - Optional parameters for the translation function.\n * @returns The translated string.\n */\ntype TranslationFunction = (key: string, options?: Record<string, any>) => string;\n\ntype TReturn = {\n /**\n * Creates a cell of type \"string\" with the given value or the placeholder if the value is null or undefined.\n *\n * @param cell - The string to place in the cell.\n * @returns The cell object containing a string value.\n */\n toStringCell: (cell: string) => TStringCell;\n\n /**\n * Creates a cell of type \"string\" by converting a date string into a localized date format.\n *\n * @param cell - The date string to convert.\n * @returns The cell object containing the formatted date string.\n */\n toDateStringCell: (cell: string) => TStringCell;\n\n /**\n * Creates a function that maps an enum value (string) to its translated label.\n *\n * @param enumName - The name of the enum set in the translation files.\n * @returns A function that takes an enum value and returns a cell object containing the translated string.\n */\n toEnumCell: (enumName: string) => (cell: string) => TStringCell;\n\n /**\n * Creates a cell of type \"string\" by joining an array of strings with commas.\n *\n * @param cell - The array of strings to join.\n * @returns The cell object containing the joined string.\n */\n toStringArrayCell: (cell: string[]) => TStringCell;\n\n /**\n * Creates a cell of type \"string\" from an option object, using either the \"export\" property or the \"label\" as a fallback.\n *\n * @param cell - The option object to process.\n * @returns The cell object containing the string representation of the option.\n */\n toOptionCell: (cell: { label: ReactNode; value: string; export?: string }) => TStringCell;\n\n /**\n * Creates a cell of type \"string\" by joining the labels of an array of option objects with commas.\n *\n * @param cell - The array of option objects.\n * @returns The cell object containing the joined labels string.\n */\n toOptionsCell: (\n cell: {\n label: string;\n value: string;\n }[],\n ) => TStringCell;\n\n /**\n * Creates a cell of type \"number\" from a numeric value or a placeholder if the value is null or undefined.\n *\n * @param cell - The numeric value for the cell.\n * @returns The cell object containing the numeric value.\n */\n toNumberCell: (cell: number) => TNumberCell;\n\n /**\n * Creates a cell of type \"string\" from a boolean value using translated labels for true/false.\n *\n * @param cell - The boolean value for the cell.\n * @returns The cell object containing the translated string for true or false.\n */\n toBooleanCell: (cell: boolean) => TStringCell;\n};\n\n/**\n * Custom hook that returns an object of mapper functions for converting various data types into Excel cell objects.\n *\n * @param t - The translation function.\n * @param placeholder - An optional placeholder string used when a value is null or undefined.\n * @returns An object containing mapper functions for various data types.\n */\nconst useExcelMapper: (t: TranslationFunction, placeholder?: string) => TReturn = (t, placeholder = ''): TReturn =>\n useMemo(() => {\n const toStringCell = (cell: string) => ({\n value: cell ?? placeholder,\n type: 'string',\n });\n\n const toDateStringCell = (cell: string, lang?: string) => ({\n value: toDateString(cell, { locale: lang ?? defaultLocale }) ?? '',\n type: 'string',\n });\n\n const toEnumCell = (enumName: string) => (cell: string) => ({\n value: cell ? t(`enum.${enumName}.${cell}`) : placeholder,\n type: 'string',\n });\n\n const toStringArrayCell = (cell: string[]) => ({\n value: !isEmpty(cell) ? cell.join(', ') : placeholder,\n type: 'string',\n });\n\n const toOptionCell = (cell: { label: ReactNode; value: string; export?: string }) => ({\n value: cell.export ?? (cell.label as string) ?? placeholder,\n type: 'string',\n });\n\n const toOptionsCell = (cell: { label: string; value: string }[]) => ({\n value: !isEmpty(cell) ? map(cell, 'label').join(', ') : placeholder,\n type: 'string',\n });\n\n const toNumberCell = (cell: number) => ({\n value: cell ?? placeholder,\n type: 'number',\n });\n\n const toBooleanCell = (cell: boolean) => ({\n value: cell ? t('label.boolean.true') : t('label.boolean.false'),\n type: 'string',\n });\n\n return {\n toStringCell,\n toDateStringCell,\n toEnumCell,\n toStringArrayCell,\n toOptionCell,\n toOptionsCell,\n toNumberCell,\n toBooleanCell,\n };\n }, []);\n\nexport default useExcelMapper;\n","import { DateType } from '@ballistix.digital/react-tailwindcss-datepicker';\nimport React, { FC, useCallback, useMemo } from 'react';\n\nimport DateRangeMenu, { TDateRangeMenuProps } from '../DateRangeMenu';\n\nexport type TDateMenuProps = Omit<TDateRangeMenuProps, 'value' | 'isRanged' | 'onChange'> & {\n value?: DateType;\n onChange?: (value: DateType) => void;\n};\n\nconst DateMenu: FC<TDateMenuProps> = (props) => {\n const { onChange, value: defaultValue } = props;\n\n const handleChange = useCallback(\n (value: { startDate: DateType; endDate: DateType }) => {\n onChange && onChange(value.startDate);\n },\n [onChange],\n );\n\n const value = useMemo(\n () => (defaultValue ? { startDate: defaultValue, endDate: defaultValue } : { startDate: null, endDate: null }),\n [defaultValue],\n );\n\n return <DateRangeMenu {...props} onChange={handleChange} isRanged={false} value={value} />;\n};\n\nexport default DateMenu;\n","/*\nhttps://github.com/onesine/react-tailwindcss-datepicker\n*/\n\nexport type { TDateRangeMenuStyles as TDateMenuStyles } from './DateRangeMenu.styles';\n\nexport type { TDateRangeMenuProps } from './DateRangeMenu';\nexport type { TDateRangeMenuStyles } from './DateRangeMenu.styles';\n\nexport { default as styles } from './DateRangeMenu.styles';\nexport { default } from './DateRangeMenu';\n","import { TInputFooterStyles } from '../../../components/Custom/InputFooter';\nimport { TInputHeaderStyles } from '../../../components/Custom/InputHeader';\nimport { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n inputWrapper: '',\n input: 'w-full inline-flex',\n};\n\nconst leading: TDateRangeMenuStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TDateRangeMenuStyles = {};\n\nconst normal: TDateRangeMenuStyles = {\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n};\n\nconst inset: TDateRangeMenuStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n};\n\nconst overlapping: TDateRangeMenuStyles = {\n container: 'relative',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n};\n\nconst pill: TDateRangeMenuStyles = {\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n};\n\nconst floored: TDateRangeMenuStyles = {\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n};\n\nconst invalid: TDateRangeMenuStyles = {\n container: 'ring-red-500!',\n input:\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 pr-10',\n};\n\nconst disabled: TDateRangeMenuStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TDateRangeMenuStyles = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import Datepicker, { DateType } from '@ballistix.digital/react-tailwindcss-datepicker';\nimport { concat, get, intersection, set } from 'lodash';\nimport React, { FC, MouseEventHandler, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\n\nimport InputFooter, { TInputFooterSharedProps, footerStyles } from '../../../components/Custom/InputFooter';\nimport InputHeader, { TInputHeaderSharedProps, headerStyles } from '../../../components/Custom/InputHeader';\nimport IconElement from '../../../components/Element/Icon/Icon';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './DateRangeMenu.styles';\n\nimport { TDateRangeMenuStyles } from '.';\n\nexport type TDateRangeMenuProps = TInputHeaderSharedProps &\n TInputFooterSharedProps & {\n name: string;\n type?: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n size?: 'compact' | 'expanded';\n\n label?: ReactNode;\n i18n?: string;\n description?: ReactNode;\n hint?: ReactNode;\n placeholder?: string;\n separator?: string;\n startFrom?: DateType;\n displayFormat?: string;\n direction?: 'up' | 'down';\n minDate?: DateType;\n maxDate?: DateType;\n startWeekOn?: 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat';\n icon?: (isOpen: boolean) => ReactNode;\n\n required?: ({ isRequired }: { isRequired: boolean }) => ReactNode;\n\n value?: { startDate: DateType; endDate: DateType };\n error?: string;\n\n isRequired?: boolean;\n isTouched?: boolean;\n isDisabled?: boolean;\n isSolo?: boolean;\n\n isRanged?: boolean;\n\n //onChange is triggered though user input, except the clear action button.\n onChange?: (value: { startDate: DateType; endDate: DateType }) => void;\n //onClear is a function that is triggered when component value is changed to null though a clear action button.\n //this does not trigger onChange so further form actions are necessary.\n onClear?: (name: string) => void;\n\n onBlur?: () => void;\n\n onClick?: MouseEventHandler<HTMLDivElement>;\n\n styles?: TDateRangeMenuStyles;\n };\n\nconst DateRangeMenu: FC<TDateRangeMenuProps> = (props) => {\n const {\n name = 'date-menu-form',\n\n size = 'compact',\n\n label,\n i18n = 'en',\n description,\n hint,\n placeholder,\n separator,\n startFrom,\n displayFormat = 'DD.MM.YYYY',\n direction = 'down',\n minDate,\n maxDate,\n startWeekOn = 'mon',\n icon = (isEmpty) =>\n isEmpty ? <IconElement accessor=\"calendar\" /> : <IconElement accessor=\"xmark\" className=\"text-black\" />,\n\n required,\n\n value: defaultValue,\n error,\n\n type = 'normal',\n\n isRequired = false,\n isTouched = false,\n isDisabled,\n isSolo = false,\n\n isRanged = true,\n\n onChange,\n onClear,\n onBlur,\n onClick,\n\n styles: stylesOverrides,\n } = props;\n\n const isValid = error === undefined;\n\n const [state, setState] = useState<any>(\n defaultValue ?? {\n startDate: null,\n endDate: null,\n },\n );\n\n const $datepickerInputRef = useRef<HTMLDivElement>(null);\n\n const handleValueChange = useCallback(\n (newValue: any) => {\n setState(newValue);\n if (newValue.startDate === null && newValue.endDate === null) {\n onClear && onClear(name);\n } else {\n onChange && onChange(newValue);\n }\n setTimeout(() => {\n onBlur && onBlur();\n }, 50);\n },\n [name, onBlur, onChange, onClear],\n );\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = concat(\n calculateNestedKeys(defaultStyles.base),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const inputDataCy = `form-input-${name}`;\n\n // listen to value changes.\n useEffect(() => {\n setState(defaultValue ?? { startDate: null, endDate: null });\n }, [defaultValue]);\n\n useEffect(() => {\n const input = $datepickerInputRef.current?.querySelector('input');\n const allowedCharacters = '0123456789';\n const separators = `./-${separator}`;\n\n const callback = (event: KeyboardEvent) => {\n if (\n input?.value === null ||\n input?.value === undefined ||\n intersection(input.value.split(''), separators.split('')).length > 0 ||\n isRanged\n ) {\n return;\n }\n\n if (allowedCharacters.includes(event.key) && input?.value.length >= 7) {\n const newValue = input.value + event.key;\n\n const day = newValue.substring(0, 2);\n const month = newValue.substring(2, 4);\n const year = newValue.substring(4, 8);\n\n const newDate = new Date(`${year}-${month}-${day}`);\n\n if (isNaN(newDate.getTime())) return;\n\n input.blur();\n handleValueChange({\n startDate: `${year}-${month}-${day}`,\n endDate: `${year}-${month}-${day}`,\n });\n setTimeout(() => input.focus(), 100);\n }\n };\n\n if (input) {\n input.addEventListener('keydown', callback);\n }\n\n return () => removeEventListener('keydown', callback);\n }, [handleValueChange, isRanged, separator]);\n\n return (\n <div className={styles.container}>\n <InputHeader\n name={name}\n type={type}\n label={label}\n description={description}\n required={required}\n isRequired={isRequired}\n styles={styles}\n />\n <div\n className={styles.inputWrapper}\n data-cy={inputDataCy}\n ref={$datepickerInputRef}\n onClick={onClick as MouseEventHandler<HTMLDivElement>}\n >\n <Datepicker\n inputName={name}\n inputId={name}\n i18n={i18n}\n useRange={size === 'expanded'}\n placeholder={placeholder}\n asSingle={!isRanged}\n separator={separator}\n startFrom={startFrom}\n displayFormat={displayFormat}\n disabled={isDisabled}\n popoverDirection={direction}\n minDate={minDate}\n maxDate={maxDate}\n toggleIcon={icon}\n //\n value={state}\n //\n onChange={handleValueChange}\n //\n inputClassName={styles.input}\n startWeekOn={startWeekOn}\n />\n <InputFooter isHidden={isSolo} name={name} error={error} isTouched={isTouched} hint={hint} styles={styles} />\n </div>\n </div>\n );\n};\n\nexport default DateRangeMenu;\n","import { get, isNil, set } from 'lodash';\nimport React, { FC, ReactNode, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './CheckboxInput.styles';\n\nimport { TCheckboxInputStyles } from '.';\n\nexport type TCheckboxInputProps = {\n name: string;\n\n title?: string;\n description?: string;\n\n isDisabled?: boolean;\n\n styles?: TCheckboxInputStyles;\n\n checkedElement?: ReactNode;\n uncheckedElement?: ReactNode;\n} & (\n | {\n value?: boolean;\n onChange?: (value: boolean) => void;\n indeterminableElement?: never;\n isIndeterminable?: false;\n }\n | {\n value?: boolean | null;\n onChange?: (value: boolean | null) => void;\n indeterminableElement?: ReactNode;\n isIndeterminable?: true;\n }\n);\n\nconst CheckboxInput: FC<TCheckboxInputProps> = (props) => {\n const {\n name,\n\n value,\n\n title,\n description,\n\n isIndeterminable,\n isDisabled,\n\n checkedElement,\n uncheckedElement,\n indeterminableElement,\n\n onChange,\n\n styles: stylesOverrides,\n } = props;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n isDisabled && get(defaultStyles.disabled, key),\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n const $inputRef = useRef<HTMLInputElement>(null);\n\n const handleToggle = useCallback(() => {\n if (isNil(onChange)) return;\n else if (!isIndeterminable) {\n onChange(!value);\n } else {\n switch (value) {\n case false:\n onChange(null);\n break;\n case true:\n onChange(false);\n break;\n case null:\n onChange(true);\n break;\n }\n }\n }, [isIndeterminable, value, onChange]);\n\n useEffect(() => {\n if (isIndeterminable && $inputRef.current) {\n $inputRef.current.indeterminate = value === null;\n }\n }, [isIndeterminable, value]);\n\n const isInputReplaced = useMemo(\n () => checkedElement && uncheckedElement && (!isIndeterminable || indeterminableElement),\n [checkedElement, uncheckedElement, isIndeterminable, indeterminableElement],\n );\n\n const handleClick = useCallback(() => {\n $inputRef.current?.click();\n }, [$inputRef]);\n\n return (\n <div className={styles.container}>\n <div className={styles.head}>\n <input\n ref={$inputRef}\n name={name}\n data-cy={`form-${name}-checkbox`}\n aria-describedby={`${name}-description`}\n type=\"checkbox\"\n checked={!!value}\n className={toClassName(styles.input, isInputReplaced ? styles.inputHidden : '')}\n disabled={isDisabled}\n onChange={handleToggle}\n />\n <div className={styles.replacement} onClick={handleClick}>\n {isInputReplaced && value === true && checkedElement}\n {isInputReplaced && value === false && uncheckedElement}\n {isInputReplaced && value === null && indeterminableElement}\n </div>\n </div>\n <div className={styles.body}>\n <label htmlFor={name} className={styles.label}>\n {title}\n </label>\n {description && (\n <p id={`${name}-description`} className={styles.description}>\n {description}\n </p>\n )}\n </div>\n </div>\n );\n};\n\nexport default CheckboxInput;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'relative flex items-start',\n\n head: 'flex h-6 items-center select-none',\n body: 'ml-3 text-sm leading-6',\n\n input: 'h-4 w-4 rounded-sm border-gray-300 text-primary-600 focus:ring-primary-600',\n inputHidden: 'hidden',\n replacement: 'flex',\n label: 'font-medium text-gray-900',\n description: 'text-gray-500',\n};\n\nconst disabled: TCheckboxInputStyles = {\n input:\n 'block rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-500 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n disabled,\n};\n\nexport type TCheckboxInputStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { Switch as Component } from '@headlessui/react';\nimport { concat, forEach, get, set } from 'lodash';\n\nimport InputFooter, { TInputFooterSharedProps, footerStyles } from '../../../components/Custom/InputFooter';\nimport InputHeader, { TInputHeaderSharedProps, headerStyles } from '../../../components/Custom/InputHeader';\nimport IconElement from '../../../components/Element/Icon';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './Switch.styles';\n\nimport { TSwitchStyles } from '.';\n\nexport type TSwitchProps = TInputHeaderSharedProps &\n TInputFooterSharedProps & {\n name: string;\n isDisabled?: boolean;\n value?: boolean;\n onChange?: (value: boolean) => void;\n styles?: TSwitchStyles;\n //\n size?: 'sm' | 'md';\n iconAccessorChecked?: IconName;\n iconAccessorUnchecked?: IconName;\n };\n\nconst Switch = (props: TSwitchProps) => {\n const {\n name,\n label,\n description,\n hint,\n isDisabled,\n isRequired = false,\n required,\n isTouched = false,\n error,\n value,\n styles: stylesOverrides,\n size = 'md',\n isOptionalLabelHidden = false,\n onChange,\n iconAccessorChecked,\n iconAccessorUnchecked,\n } = props;\n\n const inputDataCy = `form-input-${name}`;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = concat(\n calculateNestedKeys(defaultStyles.base),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n\n forEach(keys, (key) => {\n set(\n result,\n key,\n toClassName(get(defaultStyles.base, key), get(defaultStyles[size], key), get(stylesOverrides, key)),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n return (\n <div className={styles.container}>\n <InputHeader\n name={name}\n label={label}\n description={description}\n required={required}\n isRequired={isRequired}\n isOptionalLabelHidden={isOptionalLabelHidden}\n styles={styles}\n />\n <div className={styles.switch.container} data-cy={inputDataCy}>\n <Component\n checked={value}\n disabled={isDisabled}\n onChange={onChange}\n className={toClassName(\n styles.switch.content,\n value ? styles.switch.checked : styles.switch.unchecked,\n isDisabled && styles.switch.disabled,\n )}\n >\n <span className={styles.switch.screenreader}>Switch setting for {name}</span>\n <span className={toClassName(styles.toggle.content, value ? styles.toggle.checked : styles.toggle.unchecked)}>\n {iconAccessorUnchecked && (\n <span\n className={toClassName(value ? styles.icon.hidden : styles.icon.shown, styles.icon.content)}\n aria-hidden=\"true\"\n >\n <IconElement accessor={iconAccessorUnchecked} className={styles.icon.icon} />\n </span>\n )}\n {iconAccessorChecked && (\n <span\n className={toClassName(value ? styles.icon.shown : styles.icon.hidden, styles.icon.content)}\n aria-hidden=\"true\"\n >\n <IconElement accessor={iconAccessorChecked} className={styles.icon.icon} />\n </span>\n )}\n </span>\n </Component>\n </div>\n <InputFooter name={name} error={error} isTouched={isTouched} hint={hint} styles={styles} />\n </div>\n );\n};\n\nexport default Switch;\n","import { TInputFooterStyles } from '../../../components/Custom/InputFooter';\nimport { TInputHeaderStyles } from '../../../components/Custom/InputHeader';\nimport { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: 'flex flex-col',\n //foot override\n foot: 'flex flex-col',\n switch: {\n container: 'flex flex-col',\n content:\n 'relative inline-flex w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out',\n screenreader: 'sr-only',\n checked: 'bg-primary-600 focus:outline-hidden focus:ring-0 focus:ring-primary-600 focus:ring-offset-2',\n unchecked: 'bg-gray-200 focus:outline-hidden focus:ring-0 focus:ring-primary-600 focus:ring-offset-2',\n disabled: 'opacity-50 cursor-not-allowed!',\n },\n toggle: {\n content:\n 'pointer-events-none relative inline-block my-auto transform rounded-full bg-white shadow-sm ring-0 transition duration-200 ease-in-out',\n checked: 'translate-x-5',\n unchecked: 'translate-x-0',\n },\n icon: {\n content: 'absolute inset-0 flex h-full w-full items-center justify-center transition-opacity',\n hidden: 'opacity-0 ease-out duration-100',\n shown: 'opacity-100 ease-in duration-200',\n icon: 'h-3 w-3',\n },\n};\n\nconst md = {\n switch: { content: 'h-6' },\n toggle: { content: 'h-5 w-5' },\n};\n\nconst sm = {\n switch: { content: 'h-5' },\n\n toggle: { content: 'h-4 w-4', checked: 'translate-x-6' },\n};\n\nconst styles = {\n base,\n\n md,\n sm,\n};\n\nexport type TSwitchStyles = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import isHotkey from 'is-hotkey';\nimport { forEach, get, isArray, set, map, uniq, includes, compact, isEmpty, concat, every } from 'lodash';\nimport React, { createElement, FC, Fragment, JSX, Key, KeyboardEvent, ReactNode, useCallback, useMemo } from 'react';\nimport { Descendant, Editor, Element as SlateElement, Text, Transforms, createEditor } from 'slate';\nimport { withHistory } from 'slate-history';\nimport { Editable, RenderElementProps, RenderLeafProps, Slate, useSlate, withReact } from 'slate-react';\n\nimport InputFooter, { footerStyles } from '../../../components/Custom/InputFooter';\nimport InputHeader, { headerStyles } from '../../../components/Custom/InputHeader';\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\nimport IconElement from '../../Element/Icon';\n\nimport { default as defaultStyles } from './RichTextArea.styles';\n\nimport type {\n AlignType,\n ListType,\n CustomEditor,\n CustomElement,\n CustomElementType,\n CustomElementWithAlign,\n CustomText,\n CustomTextKey,\n TRichTextAreaProps,\n TRichTextToolbarItem,\n CustomElementFormat,\n RenderOptions,\n ButtonProps,\n BlockButtonProps,\n} from './RichTextArea.types';\nimport type { IconName } from '@fortawesome/fontawesome-svg-core';\n\nconst HOTKEYS: Record<string, CustomTextKey> = {\n 'mod+b': 'bold',\n 'mod+i': 'italic',\n 'mod+u': 'underline',\n 'mod+`': 'code',\n};\n\nconst LIST_TYPES = ['numbered-list', 'bulleted-list'];\nconst TEXT_ALIGN_TYPES = ['left', 'center', 'right', 'justify'];\n\nconst TAG_BY_TYPE: Record<string, keyof JSX.IntrinsicElements> = {\n 'block-quote': 'blockquote',\n 'bulleted-list': 'ul',\n 'numbered-list': 'ol',\n 'heading-one': 'h1',\n 'heading-two': 'h2',\n 'list-item': 'li',\n paragraph: 'p',\n};\n\nconst CLASS_BY_TYPE: Record<string, string> = {\n 'block-quote': defaultStyles.elements.blockquote,\n 'bulleted-list': defaultStyles.elements.list.bulleted,\n 'numbered-list': defaultStyles.elements.list.numbered,\n 'heading-one': defaultStyles.elements.heading.h1,\n 'heading-two': defaultStyles.elements.heading.h2,\n 'list-item': defaultStyles.elements.list.item,\n paragraph: defaultStyles.elements.paragraph,\n};\n\nconst isAlignType = (format: CustomElementFormat): format is AlignType =>\n (TEXT_ALIGN_TYPES as readonly string[]).includes(format as string);\n\nconst isListType = (format: CustomElementFormat): format is ListType =>\n (LIST_TYPES as readonly string[]).includes(format as string);\n\nconst isAlignElement = (element: CustomElement): element is CustomElementWithAlign => 'align' in element;\n\nconst createTagElement = (\n tag: keyof JSX.IntrinsicElements,\n options: { attributes?: any; key?: Key; className?: string; children?: ReactNode },\n) => {\n const { attributes, key, className, children } = options;\n const props = attributes ? { ...attributes, className } : { key, className };\n return createElement(tag, props, children);\n};\n\nconst applyMarks = (content: ReactNode, marks: Partial<CustomText>) => {\n if (marks.bold) content = <strong>{content}</strong>;\n if (marks.code) content = <code className={defaultStyles.elements.code}>{content}</code>;\n if (marks.italic) content = <em>{content}</em>;\n if (marks.underline) content = <u>{content}</u>;\n return content;\n};\n\nconst isNodeTextEmpty = (node: any): boolean => {\n if (Text.isText(node)) return (node.text ?? '').trim() === '';\n\n if (Editor.isEditor(node) || SlateElement.isElement(node)) {\n const children = node.children ?? [];\n if (isEmpty(children)) return true;\n\n return every(children, (child) => isNodeTextEmpty(child));\n }\n\n return true;\n};\n\nconst isDocumentAllTextEmpty = (value: Descendant[]): boolean => {\n if (!isArray(value) || isEmpty(value)) return true;\n\n return every(value, (node) => isNodeTextEmpty(node));\n};\n\nconst renderRichNode = (node: any, options: RenderOptions = {}): ReactNode => {\n const { attributes, children: providedChildren, key } = options;\n\n if (Text.isText(node)) {\n if (String(providedChildren ?? node.text).trim() === '') {\n return <div key={key} className={defaultStyles.editor.area.emptyLine} aria-hidden=\"true\" />;\n }\n const content = applyMarks(providedChildren ?? node.text, node as Partial<CustomText>);\n return attributes ? <span {...attributes}>{content}</span> : <Fragment key={key}>{content}</Fragment>;\n }\n\n const element = node as CustomElement;\n const type = get(element, 'type', 'paragraph');\n const tag = get(TAG_BY_TYPE, type, 'p') as keyof JSX.IntrinsicElements;\n const baseClass = get(CLASS_BY_TYPE, type, CLASS_BY_TYPE.paragraph);\n\n const alignClass = isAlignElement(element) ? get(defaultStyles.align, (element as any).align, '') : '';\n const renderChildNode = (childNode: any, index: number) => renderRichNode(childNode, { key: index });\n const renderedChildren = providedChildren ?? map(element.children, renderChildNode);\n\n // Merge any className Slate might pass in attributes (rare) with ours\n const mergedClassName = toClassName(baseClass, alignClass, attributes?.className);\n\n return createTagElement(tag, { attributes, key, className: mergedClassName, children: renderedChildren });\n};\n\nconst RichTextArea: FC<TRichTextAreaProps> = ({\n name = 'rich-text-area',\n\n initialValue = '[{\"type\":\"paragraph\",\"children\":[{\"text\":\"Hello from initial value. Edit me!\"}]}]',\n onChange,\n placeholder = 'Type something…',\n styles: stylesOverrides,\n isReadOnly = false,\n toolbarConfig,\n\n //Header\n label,\n description,\n required,\n isRequired,\n isOptionalLabelHidden,\n\n //Footer\n hint,\n error,\n isTouched,\n}) => {\n const styles = useMemo(() => {\n const result = deepCopyObject(defaultStyles);\n const keys = concat(\n calculateNestedKeys(defaultStyles),\n calculateNestedKeys(footerStyles.base),\n calculateNestedKeys(headerStyles.base),\n );\n\n forEach(keys, (key) => {\n set(result, key, toClassName(get(defaultStyles, key), get(stylesOverrides, key)));\n });\n\n return result;\n }, [stylesOverrides]);\n\n const defaultToolbarItems: TRichTextToolbarItem[] = useMemo(\n () => [\n 'bold',\n 'italic',\n 'underline',\n 'code',\n 'heading-one',\n 'heading-two',\n 'block-quote',\n 'numbered-list',\n 'bulleted-list',\n 'left',\n 'center',\n 'right',\n 'justify',\n ],\n [],\n );\n\n const enabledToolbarItems = useMemo(\n () => uniq(toolbarConfig ?? defaultToolbarItems),\n [toolbarConfig, defaultToolbarItems],\n );\n\n const editor = useMemo(() => withHistory(withReact(createEditor())), []);\n\n const renderElement = useCallback(\n ({ element, attributes, children }: RenderElementProps): JSX.Element =>\n renderRichNode(element, { attributes, children }) as JSX.Element,\n [],\n );\n\n const renderLeaf = useCallback(\n ({ leaf, attributes, children }: RenderLeafProps): JSX.Element =>\n renderRichNode(leaf, { attributes, children }) as JSX.Element,\n [],\n );\n\n const handleChange = useCallback(\n (newValue: any[]) => {\n if (!onChange) return;\n onChange(JSON.stringify(newValue));\n },\n [onChange],\n );\n\n const parsedInitialValue = useMemo<Descendant[]>(() => {\n try {\n return JSON.parse(initialValue) as Descendant[];\n } catch {\n return [];\n }\n }, [initialValue]);\n\n const generateMarkButton = useCallback(\n (format: CustomTextKey, icon: IconName) =>\n includes(enabledToolbarItems, format) && (\n <Button active={isMarkActive(editor, format)} onMouseDown={() => toggleMark(editor, format)} icon={icon} />\n ),\n [enabledToolbarItems, editor],\n );\n\n const generateBlockButton = useCallback(\n (format: CustomElementFormat, icon: IconName) =>\n includes(enabledToolbarItems, format) && <BlockButton format={format} icon={icon} />,\n [enabledToolbarItems],\n );\n\n const renderToolbarGroups = useCallback(() => {\n const sections: JSX.Element[][] = [];\n\n const marks = compact([\n generateMarkButton('bold', 'bold'),\n generateMarkButton('italic', 'italic'),\n generateMarkButton('underline', 'underline'),\n generateMarkButton('code', 'code'),\n ]);\n if (!isEmpty(marks)) sections.push(marks);\n\n const headings = compact([\n generateBlockButton('heading-one', 'h1'),\n generateBlockButton('heading-two', 'h2'),\n generateBlockButton('block-quote', 'quote-left'),\n ]);\n if (!isEmpty(headings)) sections.push(headings);\n\n const lists = compact([\n generateBlockButton('numbered-list', 'list-ol'),\n generateBlockButton('bulleted-list', 'list-ul'),\n ]);\n if (!isEmpty(lists)) sections.push(lists);\n\n const align = compact([\n generateBlockButton('left', 'align-left'),\n generateBlockButton('center', 'align-center'),\n generateBlockButton('right', 'align-right'),\n generateBlockButton('justify', 'align-justify'),\n ]);\n if (!isEmpty(align)) sections.push(align);\n\n return map(sections, (group, index) => (\n <Fragment key={index}>\n {index > 0 && <div className={styles.editor.toolbar.divider} />}\n {group}\n </Fragment>\n ));\n }, [generateMarkButton, generateBlockButton, styles.editor.toolbar.divider]);\n\n if (isReadOnly && (isEmpty(parsedInitialValue) || isDocumentAllTextEmpty(parsedInitialValue))) return null;\n\n return isReadOnly ? (\n <div className={styles.readOnlyWrapper}>\n {isArray(parsedInitialValue) ? map(parsedInitialValue, (n, i) => renderRichNode(n, { key: i })) : null}\n </div>\n ) : (\n <>\n <InputHeader\n name={name}\n label={label}\n required={required}\n isRequired={isRequired}\n isOptionalLabelHidden={isOptionalLabelHidden}\n styles={styles}\n description={description}\n />\n <Slate editor={editor} initialValue={parsedInitialValue} onChange={handleChange}>\n <div className={styles.textAreaWrapper}>\n <div className={styles.editor.toolbar.container}>{renderToolbarGroups()}</div>\n\n <div className={styles.editor.area.container}>\n <Editable\n renderElement={renderElement}\n renderLeaf={renderLeaf}\n className={styles.editor.area.editable}\n placeholder={placeholder}\n spellCheck\n autoFocus\n onKeyDown={(event: KeyboardEvent<HTMLDivElement>) => {\n forEach(HOTKEYS, (mark, hotkey) => {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n toggleMark(editor, mark);\n }\n });\n }}\n />\n </div>\n </div>\n </Slate>\n <InputFooter name={name} error={error} isTouched={isTouched} hint={hint} styles={styles} />\n </>\n );\n};\n\nexport const toggleBlock = (editor: CustomEditor, format: CustomElementFormat) => {\n const isActive = isBlockActive(editor, format, isAlignType(format) ? 'align' : 'type');\n const isList = isListType(format);\n\n Transforms.unwrapNodes(editor, {\n match: (n) =>\n !Editor.isEditor(n) && SlateElement.isElement(n) && isListType((n as CustomElement).type) && !isAlignType(format),\n split: true,\n });\n\n const newProperties: Partial<CustomElement> = isAlignType(format)\n ? { align: isActive ? undefined : (format as AlignType) }\n : { type: isActive ? 'paragraph' : isList ? 'list-item' : (format as CustomElementType) };\n\n Transforms.setNodes<CustomElement>(editor, newProperties);\n\n if (!isActive && isList) {\n const block = { type: format, children: [] } as SlateElement;\n Transforms.wrapNodes(editor, block);\n }\n};\n\nexport const toggleMark = (editor: CustomEditor, format: CustomTextKey) => {\n const isActive = isMarkActive(editor, format);\n if (isActive) Editor.removeMark(editor, format);\n else Editor.addMark(editor, format, true);\n};\n\nexport const isBlockActive = (\n editor: CustomEditor,\n format: CustomElementFormat,\n blockType: 'type' | 'align' = 'type',\n) => {\n const { selection } = editor;\n if (!selection) return false;\n\n const [match] = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, selection),\n match: (n) => {\n if (!Editor.isEditor(n) && SlateElement.isElement(n)) {\n const element = n as CustomElement;\n if (blockType === 'align' && isAlignElement(element)) return element.align === format;\n return element.type === format;\n }\n return false;\n },\n }),\n );\n\n return !!match;\n};\n\nexport const isMarkActive = (editor: CustomEditor, format: CustomTextKey) => {\n const marks = Editor.marks(editor);\n return marks ? (marks as Record<string, unknown>)[format] === true : false;\n};\n\nconst Button: FC<ButtonProps> = ({ active, onMouseDown, icon }) => (\n <button\n type=\"button\"\n aria-pressed={active}\n className={toClassName(defaultStyles.editor.toolbar.button, active && defaultStyles.editor.toolbar.buttonActive)}\n onMouseDown={(e) => {\n e.preventDefault();\n onMouseDown();\n }}\n >\n <IconElement accessor={icon} type=\"solid\" className={defaultStyles.editor.toolbar.icon} />\n </button>\n);\n\nconst BlockButton: FC<BlockButtonProps> = ({ format, icon }) => {\n const editor = useSlate();\n const active = isBlockActive(editor as CustomEditor, format, isAlignType(format) ? 'align' : 'type');\n const handleMouseDown = useCallback(() => toggleBlock(editor as CustomEditor, format), [editor, format]);\n\n return <Button active={active} onMouseDown={handleMouseDown} icon={icon} />;\n};\n\nexport default RichTextArea;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nimport type { TInputFooterStyles } from '../../Custom/InputFooter';\nimport type { TInputHeaderStyles } from '../../Custom/InputHeader';\n\nconst base = {\n container: '',\n textAreaWrapper: 'border border-input rounded-lg overflow-hidden border-palette-lightGray',\n readOnlyWrapper: 'prose prose-sm max-w-none',\n editor: {\n toolbar: {\n container: 'flex items-center gap-1 p-2 border-b border-border',\n button: 'h-6 w-6 text-[18px] hover:bg-gray-50 active:bg-gray-100 cursor-pointer rounded-sm',\n buttonActive: 'ring-2 ring-gray-900/10 bg-gray-100',\n icon: 'h-4! w-4!',\n divider: 'w-px h-6 bg-gray-200 mx-1',\n },\n area: {\n container: 'overflow-hidden p-4',\n emptyLine: 'min-h-[1em] leading-none',\n editable:\n 'leading-7 focus:outline-none prose prose-sm max-w-none prose-headings:font-semibold prose-h1:text-2xl prose-h2:text-xl prose-p:my-3 prose-blockquote:my-3',\n },\n },\n\n elements: {\n blockquote: 'border-l-4 border-gray-300 pl-4 italic text-gray-600 bg-gray-50 rounded-r-md py-2 my-2',\n list: {\n bulleted: 'list-disc ml-6 space-y-1',\n numbered: 'list-decimal ml-6 space-y-1',\n item: '',\n },\n heading: {\n h1: 'text-2xl font-semibold tracking-tight',\n h2: 'text-xl font-semibold tracking-tight',\n },\n paragraph: '',\n code: 'px-1.5 py-0.5 rounded-md bg-gray-100 text-gray-800 font-mono text-[0.85em]',\n },\n\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n },\n\n readOnly: {\n container: '',\n },\n};\n\nconst styles = base;\n\nexport type TRichTextAreaStyles = DeepPartial<typeof base & TInputHeaderStyles & TInputFooterStyles>;\nexport default styles;\n","import { get, set } from 'lodash';\nimport React, { FC, FocusEventHandler, ReactNode, useCallback, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './FileInputGroup.styles';\n\nimport { TFileInputGroupStyles } from '.';\n\nexport type TFileType = {\n name: string;\n size: number;\n type: string;\n blob: string | ArrayBuffer | null;\n file: File;\n};\n\nexport type TFileInputGroupProps = {\n name: string;\n\n label?: ReactNode;\n description?: string;\n hint?: string;\n\n required?: ({ isRequired }: { isRequired: boolean }) => ReactNode;\n\n value?: TFileType;\n // In MB.\n max?: number;\n error?: string;\n\n isValid?: boolean;\n isDisabled?: boolean;\n isRequired?: boolean;\n isTouched?: boolean;\n isMulti?: boolean;\n\n children?: (props: { value?: TFileType; isDragging: boolean }) => ReactNode;\n\n onChange?: (files: TFileType[]) => void;\n onBlur: FocusEventHandler<HTMLInputElement>;\n\n styles?: TFileInputGroupStyles;\n};\n\nconst FileInputGroup: FC<TFileInputGroupProps> = (props) => {\n const {\n name = 'multiple-file-input',\n\n label,\n description,\n hint,\n\n required,\n\n value,\n max,\n error,\n\n isDisabled,\n isRequired = false,\n isTouched = false,\n isMulti = false,\n\n children,\n\n onChange,\n onBlur,\n\n styles: stylesOverrides,\n } = props;\n\n const isValid = error === undefined;\n\n const [isDragging, setIsDragging] = useState<boolean>(false);\n\n const handleChangeInput = useCallback(\n (files: File[]) => {\n if (!onChange) return;\n\n const reader = new FileReader();\n const results: TFileType[] = [];\n\n const readFile = (index: number) => {\n if (index >= files.length) return onChange(results);\n\n const file = files[index];\n\n reader.onload = () => {\n const result: TFileType = {\n name: file.name,\n size: file.size,\n type: file.type,\n blob: reader?.result,\n file,\n };\n\n // eg. 10 * 1024 * 1024\n if (!max || max * 1024 * 1024 > result.size) {\n results.push(result);\n }\n\n readFile(index + 1);\n };\n\n reader.readAsDataURL(file);\n };\n\n readFile(0);\n },\n [max, onChange],\n );\n\n const onDrop = useCallback(\n (files: File[]) => {\n setIsDragging(false);\n handleChangeInput(files);\n },\n [handleChangeInput],\n );\n\n const { getRootProps, getInputProps } = useDropzone({\n onDrop,\n multiple: isMulti,\n disabled: isDisabled,\n onError: () => {\n // console.log('error');\n // setFieldError('file', t('component.form.error.multipleFiles') as string);\n },\n onDragEnter: () => {\n setIsDragging(true);\n },\n onDragLeave: () => {\n setIsDragging(false);\n },\n });\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const input = getInputProps();\n\n return (\n <div className={styles.container}>\n <div className={styles.head}>\n {label && (\n <div className={styles.labelContainer}>\n <label htmlFor={name} className={styles.label}>\n {label}\n </label>\n {description && !(error && isTouched) && <p className={styles.description}>{description}</p>}\n </div>\n )}\n {!required && !isRequired && typeof label === 'string' && <span className={styles.hint}>Optional</span>}\n {required && required({ isRequired })}\n </div>\n <div className={styles.body} {...getRootProps()}>\n {children && children({ value, isDragging })}\n <input\n name={name}\n accept={input.accept}\n multiple={input.multiple}\n onChange={input.onChange}\n ref={(input as any)?.ref}\n style={input.style}\n tabIndex={input.tabIndex}\n disabled={isDisabled}\n type={input.type}\n onBlur={onBlur}\n />\n </div>\n <div className={styles.foot}>\n {hint && !(error && isTouched) && <p className={styles.hint}>{hint}</p>}\n {error && isTouched && <p className={styles.error}>{error}</p>}\n </div>\n </div>\n );\n};\n\nexport default FileInputGroup;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n head: 'flex justify-between',\n body: 'relative rounded-md my-2 cursor-pointer',\n foot: '',\n labelContainer: 'flex flex-col',\n label: 'block font-medium text-gray-900',\n hint: 'text-xs text-gray-500',\n leading: 'pointer-events-none absolute inset-y-0 left-0 flex items-center',\n input: 'block w-full',\n trailing: 'pointer-events-none absolute inset-y-0 right-0 flex items-center',\n description: 'text-gray-400 text-xs mt-1',\n error: 'text-red-500 text-xs mt-1',\n};\n\nconst leading: TFileInputGroupStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TFileInputGroupStyles = {};\n\nconst normal: TFileInputGroupStyles = {\n label: 'leading-6 text-sm mb-2',\n hint: 'leading-6',\n leading: 'pl-3',\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n trailing: 'pr-3',\n description: 'mt-2 text-sm',\n};\n\nconst inset: TFileInputGroupStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n label: 'text-xs',\n hint: 'text-xs',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n description: 'hidden',\n};\n\nconst overlapping: TFileInputGroupStyles = {\n container: 'relative',\n head: ' absolute flex justify-between items-center left-0 -top-2 right-0 mx-2 z-10 w-full',\n label: 'inline-block bg-white px-1 text-xs font-medium text-gray-900 ',\n hint: 'text-xs mr-4 bg-white px-1',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n description: 'hidden',\n};\n\nconst pill: TFileInputGroupStyles = {\n head: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mb-1 pr-6',\n foot: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mt-1 pr-6',\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n trailing: 'pr-2',\n description: 'text-xs',\n};\n\nconst floored: TFileInputGroupStyles = {\n body: 'relative mt-2',\n label: 'block text-sm font-medium leading-6 text-gray-900',\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n description: 'text-xs mt-2',\n};\n\nconst invalid: TFileInputGroupStyles = {\n container: 'ring-red-500',\n input:\n // 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 sm:leading-6 pr-10',\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 pr-10',\n description: 'text-sm text-red-600',\n};\n\nconst disabled: TFileInputGroupStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TFileInputGroupStyles = DeepPartial<typeof base>;\nexport default styles;\n","import Geosuggest from '@ubilabs/react-geosuggest';\nimport { get, lastIndexOf, set, trim } from 'lodash';\nimport { FC, ReactNode } from 'react';\n\nimport { calculateNestedKeys } from '../../../helpers/calculate';\nimport { toClassName } from '../../../helpers/format';\nimport { deepCopyObject } from '../../../helpers/object';\n\nimport { default as defaultStyles } from './AddressInputGroup.styles';\n\nimport { TAddressInputGroupStyles } from '.';\n\nexport type TAddressInputGroupValue = {\n country: string;\n city: string;\n street: string;\n houseNumber: string;\n zipCode: string;\n busNumber?: string;\n lat: number;\n lng: number;\n info?: string;\n} | null;\n\nexport type TAddressInputGroupProps = {\n name: string;\n\n label?: ReactNode;\n description?: string;\n placeholder?: string;\n\n required?: ({ isRequired }: { isRequired: boolean }) => ReactNode;\n\n value?: any;\n error?: string;\n\n type?: 'normal' | 'inset' | 'overlapping' | 'pill' | 'floored';\n\n isValid?: boolean;\n isDisabled?: boolean;\n isRequired?: boolean;\n isTouched?: boolean;\n\n onChange?: any;\n onBlur?: any;\n onFocus?: any;\n\n styles?: TAddressInputGroupStyles;\n};\n\nconst AddressInputGroup: FC<TAddressInputGroupProps> = (props) => {\n const {\n name = 'address-input',\n\n label,\n description,\n placeholder,\n\n required,\n\n value,\n error,\n\n type = 'normal',\n\n isDisabled,\n isRequired = false,\n isTouched = false,\n\n onChange,\n onFocus,\n onBlur,\n\n styles: stylesOverrides,\n } = props;\n\n const isValid = error === undefined;\n\n const handleGenerateStyle = () => {\n const result = deepCopyObject(defaultStyles.base);\n const keys = calculateNestedKeys(defaultStyles.base);\n\n keys.forEach((key) => {\n set(\n result,\n key,\n toClassName(\n get(defaultStyles.base, key),\n\n type && get(defaultStyles[type], key),\n\n isTouched === true && !isValid && get(defaultStyles.invalid, key),\n isDisabled && get(defaultStyles.disabled, key),\n\n get(stylesOverrides, key),\n ),\n );\n });\n\n return result;\n };\n\n const styles = handleGenerateStyle();\n\n const mapValueToAddress = (value: TAddressInputGroupValue | undefined) => {\n if (!value) {\n return undefined;\n }\n\n const { country, city, street, houseNumber } = value;\n\n return `${street ?? ''}${houseNumber ? ' ' + houseNumber : ''}${\n city ? ', ' + city : ''\n }${country ? ', ' + country : ''}`;\n };\n\n return (\n <div className={styles.container}>\n <div className={styles.head}>\n {label && (\n <label htmlFor={name} className={styles.label}>\n {label}\n </label>\n )}\n {!required && !isRequired && typeof label === 'string' && <span className={styles.hint}>Optional</span>}\n {required && required({ isRequired })}\n </div>\n <div className={styles.body}>\n <Geosuggest\n types={['address']}\n queryDelay={100}\n placeholder={placeholder}\n initialValue={mapValueToAddress(value)}\n inputClassName={styles?.input}\n suggestsClassName={styles.geosuggest?.suggestsClassName}\n suggestItemClassName={styles.geosuggest?.suggestItemClassName}\n suggestsHiddenClassName={styles.geosuggest?.suggestsHiddenClassName}\n onChange={(value) => {\n if (value === '' && onChange) onChange(null);\n }}\n onFocus={onFocus}\n // suggestItemActiveClassName={\n // styles.geosuggest?.suggestItemActiveClassName\n // }\n autoComplete=\"off\"\n placeDetailFields={['address_components']}\n onSuggestSelect={(e: any) => {\n const components = e?.gmaps?.address_components;\n\n const handleExtractValueWithKey = (key: string) =>\n components?.find((component: { types: string[] }) => component.types.includes(key))?.long_name;\n\n const street = handleExtractValueWithKey('route');\n const city = handleExtractValueWithKey('sublocality') || handleExtractValueWithKey('locality');\n const country = handleExtractValueWithKey('country');\n const zipCode = handleExtractValueWithKey('postal_code');\n const houseNumber = handleExtractValueWithKey('street_number');\n let busNumber = handleExtractValueWithKey('post_box');\n\n if (\n // if busNumber is not found with the method above, try to find it in the user inputted label\n !busNumber &&\n // if the label contains the houseNumber and city somewhere after the houseNumber\n e?.label.includes(houseNumber) &&\n e?.label.split(houseNumber)[1].includes(city)\n ) {\n // split the label at the houseNumber and city\n const splitLabel = e?.label.split(houseNumber)[1].split(city)[0];\n\n // replace the zipCode from the label if it came before the city\n const replaceZipcode = splitLabel.replace(zipCode, '');\n\n // trim the label\n const trimmedLabel = trim(replaceZipcode);\n\n // if the trimmed label is shorter than 3 characters, it's probably the busNumber. Otherwise, something probably went wrong.\n if (trimmedLabel.length <= 3) {\n busNumber = trimmedLabel.includes(',')\n ? trimmedLabel.substring(0, lastIndexOf(trimmedLabel, ','))\n : trimmedLabel;\n }\n }\n\n const location: TAddressInputGroupValue = {\n street,\n city,\n country,\n zipCode,\n houseNumber,\n busNumber,\n lat: e?.location?.lat ?? 0,\n lng: e?.location?.lng ?? 0,\n };\n\n onChange && onChange(location);\n }}\n onBlur={(e: any) => {\n if (!onBlur) return;\n\n const components = e?.gmaps?.address_components;\n\n const handleExtractValueWithKey = (key: string) =>\n components?.find((component: { types: string[] }) => component.types.includes(key))?.long_name;\n\n const street = handleExtractValueWithKey('route');\n const city = handleExtractValueWithKey('locality');\n const country = handleExtractValueWithKey('country');\n const zipCode = handleExtractValueWithKey('postal_code');\n const houseNumber = handleExtractValueWithKey('street_number');\n const busNumber = handleExtractValueWithKey('post_box');\n\n const location: TAddressInputGroupValue = {\n street,\n city,\n country,\n zipCode,\n houseNumber,\n busNumber,\n lat: e?.location?.lat ?? 0,\n lng: e?.location?.lng ?? 0,\n info: (value as { info: string })?.info as any,\n };\n\n onBlur(location);\n }}\n />\n </div>\n <div className={styles.foot}>\n {description && !(error && isTouched) && <p className={styles.description}>{description}</p>}\n {error && isTouched && <p className={styles.error}>{error}</p>}\n </div>\n </div>\n );\n};\n\nexport default AddressInputGroup;\n","import { DeepPartialType as DeepPartial } from '../../../types/DeepPartialType';\n\nconst base = {\n container: '',\n head: 'flex justify-between',\n body: 'relative rounded-md',\n foot: '',\n label: 'block font-medium text-gray-900',\n hint: 'text-xs text-gray-500',\n leading: 'pointer-events-none absolute inset-y-0 left-0 flex items-center',\n input: 'block w-full',\n trailing: 'pointer-events-none absolute inset-y-0 right-0 flex items-center',\n description: 'text-gray-400 text-xs mt-1',\n error: 'text-red-500 text-xs mt-1',\n geosuggest: {\n suggestsClassName: 'absolute w-full z-10 bg-white border border-gray-200 shadow-xs text-sm',\n suggestItemClassName: 'px-4 py-2 hover:bg-gray-50 cursor-pointer',\n suggestsHiddenClassName: 'hidden',\n // suggestItemActiveClassName:\n // 'bg-more-yellow first:rounded-t-lg last:rounded-b-lg',\n },\n};\n\nconst leading: TAddressInputGroupStyles = {\n input: 'pl-10',\n};\n\nconst trailing: TAddressInputGroupStyles = {};\n\nconst normal: TAddressInputGroupStyles = {\n label: 'leading-6 text-sm mb-2',\n hint: 'leading-6',\n leading: 'pl-3',\n input:\n 'rounded-md border-gray-200 shadow-xs focus:border-primary-500 focus:ring-primary-500 sm:text-sm placeholder-gray-300',\n trailing: 'pr-3',\n description: 'mt-2 text-sm',\n};\n\nconst inset: TAddressInputGroupStyles = {\n container:\n 'rounded-md px-3 pt-2.5 pb-1.5 shadow-xs ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-primary-600',\n label: 'text-xs',\n hint: 'text-xs',\n input: 'border-0 ring-0! p-0 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm pl-0',\n description: 'hidden',\n};\n\nconst overlapping: TAddressInputGroupStyles = {\n container: 'relative',\n head: ' absolute flex justify-between items-center left-0 -top-2 right-0 mx-2 z-10 w-full',\n label: 'inline-block bg-white px-1 text-xs font-medium text-gray-900 ',\n hint: 'text-xs mr-4 bg-white px-1',\n input:\n 'block w-full rounded-md border-0 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n description: 'hidden',\n};\n\nconst pill: TAddressInputGroupStyles = {\n head: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mb-1 pr-6',\n foot: 'mx-px block px-4 text-sm font-medium leading-6 text-gray-900 mt-1 pr-6',\n input:\n 'block w-full rounded-full border-0 px-4 py-1.5 text-gray-900 shadow-xs ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6',\n trailing: 'pr-2',\n description: 'text-xs',\n};\n\nconst floored: TAddressInputGroupStyles = {\n body: 'relative mt-2',\n label: 'block text-sm font-medium leading-6 text-gray-900',\n input: 'peer block w-full border-0 bg-gray-50 py-1.5 text-gray-900 focus:ring-0 sm:text-sm sm:leading-6 ring-0',\n description: 'text-xs mt-2',\n};\n\nconst invalid: TAddressInputGroupStyles = {\n container: 'ring-red-500',\n input:\n // 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 sm:leading-6 pr-10',\n 'block w-full border border-transparent text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500 pr-10',\n description: 'text-sm text-red-600',\n};\n\nconst disabled: TAddressInputGroupStyles = {\n input:\n 'block w-full rounded-md border-0 text-gray-900 shadow-xs ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',\n};\n\nconst styles = {\n base,\n\n leading,\n trailing,\n\n normal,\n inset,\n overlapping,\n pill,\n floored,\n\n invalid,\n disabled,\n};\n\nexport type TAddressInputGroupStyles = DeepPartial<typeof base>;\nexport default styles;\n","import { Placement } from '@floating-ui/react';\nimport {\n AggregationFn,\n CellContext,\n ColumnDef,\n ColumnDefTemplate,\n createColumnHelper,\n DisplayColumnDef,\n RowData,\n} from '@tanstack/react-table';\nimport { compact, get, set } from 'lodash';\nimport { ReactNode, useCallback, useMemo } from 'react';\n\nimport BadgeElement, { TBadgeColor } from '../components/Element/Badge/Badge';\nimport IconElement from '../components/Element/Icon';\nimport TooltipElement from '../components/Element/Tooltip';\nimport { toDateString, toDateTimeString, toTimeString } from '../helpers/date';\nimport { toClassName } from '../helpers/format';\n\nimport useExcelMapper, { TStringCell } from './useExcelMapper';\n\nexport type StringColumn = string | undefined | null;\n\nexport type BadgeColumn =\n | {\n value: string;\n label: ReactNode;\n color?: TBadgeColor;\n }\n | undefined\n | null;\n\nexport type LinkColumn =\n | {\n label: ReactNode;\n href?: string;\n }\n | undefined\n | null;\n\nexport type ButtonColumn =\n | {\n label: ReactNode;\n onClick: () => void;\n }\n | undefined\n | null;\n\nexport type DateColumn =\n | {\n value: string;\n options?: {\n locale?: string;\n type?: 'date' | 'time' | 'dateTime';\n format?: string;\n };\n }\n | undefined\n | null;\n\nexport type BooleanColumn =\n | {\n value: boolean;\n options?: { trueClassName?: string; falseClassName?: string };\n }\n | undefined\n | null;\n\ntype ColumnOptions<TData> = {\n header?: string;\n cell?: ColumnDefTemplate<CellContext<TData, unknown>>;\n enableSorting?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'xl';\n className?: string;\n hasTooltip?: boolean;\n tooltipPlacement?: Placement;\n aggregateCell?: (cell: CellContext<TData, any>) => ReactNode;\n aggregationFn?: AggregationFn<TData>;\n};\n\ntype ColumnHelpers<TData> = {\n stringAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n linkAccessor: (key: string, options?: ColumnOptions<TData> & { prefetch?: boolean }) => ColumnDef<TData, unknown>;\n buttonAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n badgeAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n dateAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n booleanAccessor: (key: string, options?: ColumnOptions<TData>) => ColumnDef<TData, unknown>;\n displayAccessor: (\n key: string,\n cell: ColumnDefTemplate<CellContext<TData, unknown>>,\n options?: ColumnOptions<TData>,\n ) => ColumnDef<TData, unknown>;\n};\n\ntype ColumnHelperFunction = (key: string, options?: Record<string, any>) => string;\n\nconst getDateString = (date: DateColumn) => {\n if (!date) return '';\n\n if (date.options?.format) {\n return toDateString(date.value, { format: date.options.format });\n }\n\n if (date.options?.type === 'time') {\n return toTimeString(date.value);\n }\n\n if (date.options?.type === 'dateTime') {\n return toDateTimeString(date.value);\n }\n\n return toDateString(date.value);\n};\n\nconst useColumnHelpers = <TData extends RowData>(t: ColumnHelperFunction): ColumnHelpers<TData> => {\n const { accessor, display } = useMemo(() => createColumnHelper<TData>(), []);\n const { toStringCell, toOptionCell } = useExcelMapper(t);\n\n const getClassName = useCallback((size: 'sm' | 'md' | 'lg' | 'xl') => {\n const sizes = {\n sm: 'max-w-20',\n md: 'max-w-40',\n lg: 'max-w-60',\n xl: 'max-w-80',\n };\n return `overflow-hidden text-ellipsis ${get(sizes, size, '')} block`;\n }, []);\n\n const createAccessor = useCallback(\n (\n key: any,\n getCellContent: (cell: CellContext<TData, any>, options?: ColumnOptions<TData>) => ReactNode,\n excelMapper: (cell: any) => TStringCell,\n options?: ColumnOptions<TData>,\n ) => {\n const column: ColumnDef<TData, unknown> = {\n header: options?.header ?? t(`component.form.label.${key}`),\n enableSorting: get(options, 'enableSorting', true),\n cell: options?.cell ?? ((cell) => getCellContent(cell, options)),\n aggregatedCell: options?.aggregateCell,\n meta: { excel: excelMapper },\n };\n\n if (options?.aggregationFn) set(column, 'aggregationFn', options.aggregationFn);\n\n return accessor(key, column) as ColumnDef<TData, unknown>;\n },\n [accessor, t],\n );\n\n const createDisplay = useCallback((column: DisplayColumnDef<TData>) => display(column), [display]);\n\n const baseCellRenderer = (value: ReactNode, options?: ColumnOptions<TData>) => {\n const content = (\n <p className={toClassName(options?.size && getClassName(options.size), options?.className)}>{value}</p>\n );\n\n return options?.hasTooltip ? (\n <TooltipElement placement={options?.tooltipPlacement ?? 'bottom-end'} content={value}>\n {content}\n </TooltipElement>\n ) : (\n content\n );\n };\n\n const stringAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(key, (cell) => baseCellRenderer(cell.getValue(), options), toStringCell, options);\n\n const linkAccessor = (key: string, options?: ColumnOptions<TData> & { openInNewTab?: boolean }) =>\n createAccessor(\n key,\n (cell) => {\n const value = cell.getValue();\n if (!value) return null;\n\n const content = value.href ? (\n <a\n href={value.href}\n className={toClassName(options?.size && getClassName(options.size), options?.className)}\n target={options?.openInNewTab ? '_blank' : undefined}\n >\n {value.label}\n </a>\n ) : (\n value.label\n );\n\n return options?.hasTooltip ? (\n <TooltipElement placement={options?.tooltipPlacement ?? 'bottom-end'} content={value.label}>\n {content}\n </TooltipElement>\n ) : (\n content\n );\n },\n toOptionCell,\n options,\n );\n\n const buttonAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(\n key,\n (cell) => {\n const value = cell.getValue();\n if (!value) return null;\n\n const content = (\n <button\n onClick={value.onClick}\n className={toClassName(options?.size && getClassName(options.size), options?.className)}\n >\n {value.label}\n </button>\n );\n\n return options?.hasTooltip ? (\n <TooltipElement placement={options?.tooltipPlacement ?? 'bottom-end'} content={value.label}>\n {content}\n </TooltipElement>\n ) : (\n content\n );\n },\n toOptionCell,\n options,\n );\n\n const badgeAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(\n key,\n (cell) => {\n const value = cell.getValue();\n if (!value) return null;\n\n const content = (\n <BadgeElement\n styles={{\n container: toClassName(options?.size && getClassName(options.size), options?.className),\n }}\n color={value.color || 'gray'}\n >\n {value.label}\n </BadgeElement>\n );\n\n return options?.hasTooltip ? (\n <TooltipElement placement={options?.tooltipPlacement ?? 'bottom-end'} content={value.label}>\n {content}\n </TooltipElement>\n ) : (\n content\n );\n },\n (cell) => (cell ? toStringCell(cell.label) : toStringCell('')),\n options,\n );\n\n const dateAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(\n key,\n (cell) => getDateString(cell.getValue()),\n (cell) => (cell ? toStringCell(getDateString(cell) ?? '') : toStringCell('')),\n options,\n );\n\n const booleanAccessor = (key: string, options?: ColumnOptions<TData>) =>\n createAccessor(\n key,\n (cell) => {\n const value = cell.getValue();\n const iconClass = value?.value\n ? compact(['text-palette-midnightBlue', value?.options?.trueClassName]).join(' ')\n : compact(['text-palette-lightGray', value?.options?.falseClassName]).join(' ');\n\n return <IconElement className={iconClass} accessor={value?.value ? 'check' : 'xmark'} />;\n },\n (cell) => toStringCell(cell?.value !== undefined ? t(`label.boolean.${cell.value}`) : t('label.boolean.unclear')),\n options,\n );\n\n const displayAccessor = (\n key: string,\n cell: ColumnDefTemplate<CellContext<TData, unknown>>,\n options?: {\n header?: string;\n aggregatedCell?: ColumnDefTemplate<CellContext<TData, unknown>>;\n },\n ) =>\n createDisplay({\n id: key,\n header: options?.header ?? t(`component.form.label.${key}`),\n cell,\n aggregatedCell: options?.aggregatedCell,\n });\n\n return {\n stringAccessor,\n linkAccessor,\n buttonAccessor,\n badgeAccessor,\n dateAccessor,\n booleanAccessor,\n displayAccessor,\n };\n};\n\nexport default useColumnHelpers;\n","export const escapeSpecialCharacters = (str: string) =>\n str\n .replace(/#/g, '__HASH__')\n .replace(/\\?/g, '__QUESTIONMARK__')\n .replace(/\\|/g, '__PIPE__')\n .replace(/\\\\/g, '__BACKSLASH__')\n .replace(/%/g, '__PROCENT__')\n .replace(/'/g, '__QUOTE__');\n"],"names":[],"version":3,"file":"index.js.map"}