@lax-wp/design-system 0.13.41 → 0.13.43

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.
Files changed (45) hide show
  1. package/dist/components/data-display/code-editor/CodeEditor.cjs.js +1 -1
  2. package/dist/components/data-display/code-editor/CodeEditor.cjs.js.map +1 -1
  3. package/dist/components/data-display/code-editor/CodeEditor.es.js +38 -38
  4. package/dist/components/data-display/code-editor/CodeEditor.es.js.map +1 -1
  5. package/dist/components/data-display/infinite-table/context.cjs.js +1 -1
  6. package/dist/components/data-display/infinite-table/context.cjs.js.map +1 -1
  7. package/dist/components/data-display/infinite-table/context.d.ts +1 -0
  8. package/dist/components/data-display/infinite-table/context.es.js +1 -0
  9. package/dist/components/data-display/infinite-table/context.es.js.map +1 -1
  10. package/dist/components/data-display/infinite-table/head/cell/Options.cjs.js +1 -1
  11. package/dist/components/data-display/infinite-table/head/cell/Options.cjs.js.map +1 -1
  12. package/dist/components/data-display/infinite-table/head/cell/Options.d.ts +2 -1
  13. package/dist/components/data-display/infinite-table/head/cell/Options.es.js +79 -70
  14. package/dist/components/data-display/infinite-table/head/cell/Options.es.js.map +1 -1
  15. package/dist/components/data-display/infinite-table/head/cell/Resizer.cjs.js +1 -1
  16. package/dist/components/data-display/infinite-table/head/cell/Resizer.cjs.js.map +1 -1
  17. package/dist/components/data-display/infinite-table/head/cell/Resizer.d.ts +2 -1
  18. package/dist/components/data-display/infinite-table/head/cell/Resizer.es.js +23 -19
  19. package/dist/components/data-display/infinite-table/head/cell/Resizer.es.js.map +1 -1
  20. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js +1 -1
  21. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js.map +1 -1
  22. package/dist/components/data-display/infinite-table/head/cell/index.es.js +46 -44
  23. package/dist/components/data-display/infinite-table/head/cell/index.es.js.map +1 -1
  24. package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
  25. package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
  26. package/dist/components/data-display/infinite-table/index.es.js +474 -470
  27. package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
  28. package/dist/components/data-display/tag/Tag.cjs.js +1 -1
  29. package/dist/components/data-display/tag/Tag.cjs.js.map +1 -1
  30. package/dist/components/data-display/tag/Tag.es.js +9 -9
  31. package/dist/components/data-display/tag/Tag.es.js.map +1 -1
  32. package/dist/components/floating-bar/FloatingBar.cjs.js +1 -1
  33. package/dist/components/floating-bar/FloatingBar.cjs.js.map +1 -1
  34. package/dist/components/floating-bar/FloatingBar.es.js +1 -1
  35. package/dist/components/floating-bar/FloatingBar.es.js.map +1 -1
  36. package/dist/components/forms/search-bar/SearchBar.cjs.js +1 -1
  37. package/dist/components/forms/search-bar/SearchBar.cjs.js.map +1 -1
  38. package/dist/components/forms/search-bar/SearchBar.es.js +1 -1
  39. package/dist/components/forms/search-bar/SearchBar.es.js.map +1 -1
  40. package/dist/utils/table.cjs.js +1 -1
  41. package/dist/utils/table.cjs.js.map +1 -1
  42. package/dist/utils/table.d.ts +2 -1
  43. package/dist/utils/table.es.js +19 -18
  44. package/dist/utils/table.es.js.map +1 -1
  45. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBar.cjs.js","sources":["../../../../src/components/forms/search-bar/SearchBar.tsx"],"sourcesContent":["import {type FC, type HTMLAttributes, useRef, useState } from 'react';\nimport { DebounceInput } from 'react-debounce-input';\nimport { useTranslation } from 'react-i18next';\nimport { Tooltip } from 'antd';\nimport cn from 'classnames';\nimport { Typography } from '../../data-display/typography/Typography';\nimport { CloseRounded } from '../../icons/CloseRounded';\nimport { SearchIcon } from '../../icons/SearchIcon';\n\nexport type TSearchConfig = {\n searchCount?: number;\n searchPointer?: number;\n setSearchPointer?: React.Dispatch<React.SetStateAction<number | undefined>>;\n};\n\nexport type TSearchBarProps = Omit<HTMLAttributes<HTMLInputElement>, 'onChange'> & {\n value?: string;\n onChange?(value: string): void;\n debounceTimeout?: number;\n classValues?: string;\n handleKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n isClearable?: boolean;\n id: string;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n isAnimated?: boolean;\n onFocusText?: string;\n autoComplete?: string;\n searchRef?: React.RefObject<HTMLInputElement>;\n placeholder?: string;\n autoFocus?: boolean;\n hasNavigation?: boolean;\n searchConfig?: TSearchConfig;\n hideSearchIcon?: boolean;\n allowAStarSearch?: boolean;\n};\n\nexport const SearchBar: FC<TSearchBarProps> = (props) => {\n const {\n value,\n placeholder,\n onChange,\n id,\n debounceTimeout = 0,\n classValues,\n handleKeyDown,\n isClearable,\n onFocusText,\n autoComplete = 'false',\n searchRef,\n hasNavigation = false,\n autoFocus = false,\n searchConfig,\n hideSearchIcon,\n allowAStarSearch = false,\n ...inputProps\n } = props;\n\n const { t } = useTranslation();\n const [isFocused, setIsFocused] = useState(false);\n const [focusedPlaceHolder, setFocusedPlaceHolder] = useState('search');\n const inputRef = useRef<HTMLInputElement>(null);\n const { searchCount, searchPointer, setSearchPointer } = searchConfig || {};\n\n const getRightPadding = () => {\n const hasClearButton = isClearable && !!value;\n const hasNav = hasNavigation && !!value;\n if (hasClearButton && hasNav) return 'pr-28';\n if (hasNav) return 'pr-12';\n if (hasClearButton) return 'pr-8';\n return 'pr-7';\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n setFocusedPlaceHolder(onFocusText || placeholder || t('Search'));\n const ref = searchRef || inputRef;\n if (ref.current) {\n ref.current.focus();\n }\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n setFocusedPlaceHolder('');\n };\n\n return (\n <label\n className={cn(\n `relative flex items-center justify-start px-4 py-[9px] w-full bg-white dark:bg-black-700 rounded-lg text-neutral-400 h-8`,\n classValues,\n )}\n >\n {!hideSearchIcon && (\n <div className='flex items-center h-6 w-6 pointer-events-none'>\n <SearchIcon width=\"16\" height=\"16\" />\n </div>\n )}\n\n <DebounceInput\n {...inputProps}\n spellCheck='false'\n debounceTimeout={debounceTimeout}\n id={id}\n inputRef={searchRef || inputRef}\n type='text'\n className={cn(\n `absolute inset-0 dark:text-[#98A2B3] text-neutral-900 ${hideSearchIcon ? 'pl-2' : 'pl-10'} pl-10 ${getRightPadding()} w-full text-sm dark:text-white bg-transparent rounded-lg focus:outline-none focus:ring-primary-500 focus:border-primary-500`,\n 'border border-solid',\n 'dark:border-neutral-800 border-neutral-200',\n 'dark:caret-white',\n classValues,\n )}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n handleKeyDown && handleKeyDown(e);\n }}\n value={value || ''}\n placeholder={isFocused ? focusedPlaceHolder : allowAStarSearch ? '' : `${t('Search')}`}\n onChange={(e) => onChange?.(e.target.value)}\n autoComplete={autoComplete}\n onFocus={(e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n handleFocus();\n if (props.onFocus) props.onFocus(e);\n }}\n onBlur={(e) => {\n setIsFocused(false);\n handleBlur();\n if (props.onBlur) props.onBlur(e);\n }}\n autoFocus={autoFocus}\n />\n\n {hasNavigation && value && (\n <div className={cn('absolute mr-2 focus:outline-none flex gap-1', isClearable ? 'right-6' : 'right-0')}>\n {Boolean(searchCount) && (searchCount || 0) > 0 && (\n <span className='text-xs border-r pr-2 border-gray-200'>\n {(searchPointer || 0) + 1}/{searchCount}\n </span>\n )}\n <div className='flex gap-1 items-center'>\n <button\n id={`btn-search-bar-set-search-pointer-forward`}\n onClick={() => {\n if (setSearchPointer) setSearchPointer((state) => (state || 0) - 1);\n }}\n disabled={searchPointer === 0}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18l-6-6 6-6\" stroke=\"#98A2B3\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </button>\n <button\n id={`btn-search-bar-set-search-pointer-backward`}\n onClick={() => {\n if (setSearchPointer) setSearchPointer((state) => (state || 0) + 1);\n }}\n disabled={searchPointer === (searchCount || 0) - 1}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18l6-6-6-6\" stroke=\"#98A2B3\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </button>\n </div>\n </div>\n )}\n\n {allowAStarSearch && !(isClearable && value) && !isFocused && !value ? (\n <div className='absolute flex ml-6 items-center justify-center focus:outline-none gap-1 flex-wrap-none'>\n <Typography className='text-[#98A2B3] dark:text-black-400 font-inter text-sm font-medium leading-5'>{t('Search')} (use</Typography>\n\n <button className=' bg-[#EAECF0] dark:bg-black-800 rounded-sm text-sm w-3 h-5'>\n <Tooltip\n placement='bottomRight'\n color='#141414'\n classNames={{\n root: 'custom-tooltip dark:!bg-black-800',\n }}\n title={\n <div className='flex flex-col items-start justify-center p-2 w-full h-full gap-2 dark:bg-black-800 min-w-80 min-h-fit'>\n <Typography variant='semibold' size='extra-small' className='text-white'>{t('Normal Search')}</Typography>\n <Typography variant='medium' size='extra-small' className='text-primary-400 dark:text-primary-400' appearance='custom'>\n {t('Examples')}\n </Typography>\n <div className='flex flex-col items-start justify-center '>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>data</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"data\", \"Data\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>text</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"text\", \"context\", \"plaintext\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>base</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"database\", \"baseball\", \"basename\".\n </Typography>\n </div>\n </div>\n <div className='h-[1px] w-full bg-neutral-800 dark:bg-black-200 my-2'></div>\n <Typography variant='semibold' size='extra-small' className='text-white'>Wildcard Search</Typography>\n <Typography variant='medium' size='extra-small' className='text-white dark:text-black-200' appearance='custom'>\n Use * as a wildcard to refine your search.\n </Typography>\n <Typography variant='medium' size='extra-small' className='text-primary-400 dark:text-primary-400' appearance='custom'>\n Examples:\n </Typography>\n <div className='flex flex-col items-start justify-center '>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter ' appearance='custom'>\n contract*\n </Typography>\n </div>\n\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → \"contracts\", \"contractor\", \"CONTRACTOR\".\n </Typography>\n </div>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter ' appearance='custom'>\n *agreement\n </Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"service agreement\", \"legal agreement\".\n </Typography>\n </div>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>\n *clause*\n </Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"clause\", \"subclause\", \"clauses\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>*l*s*</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"clause\", \"clauses\".\n </Typography>\n </div>\n </div>\n </div>\n }\n >\n <div className='text-[#475467] dark:text-black-300 dark:bg-black-600'>*</div>\n </Tooltip>\n </button>\n <Typography className='text-[#98A2B3] dark:text-black-400 font-inter text-sm font-medium leading-5'>as a wildcard)</Typography>\n </div>\n ) : (\n isClearable &&\n value && (\n <button id={`btn-search-bar-close`} className='absolute right-0 mr-2 focus:outline-none' onClick={() => onChange?.('')}>\n <CloseRounded classValue='text-neutral-200 dark:text-black-500' size={16} />\n </button>\n )\n )}\n </label>\n );\n};\n\n"],"names":["SearchBar","props","value","placeholder","onChange","id","debounceTimeout","classValues","handleKeyDown","isClearable","onFocusText","autoComplete","searchRef","hasNavigation","autoFocus","searchConfig","hideSearchIcon","allowAStarSearch","inputProps","t","useTranslation","isFocused","setIsFocused","useState","focusedPlaceHolder","setFocusedPlaceHolder","inputRef","useRef","searchCount","searchPointer","setSearchPointer","getRightPadding","hasClearButton","hasNav","handleFocus","ref","handleBlur","jsxs","cn","jsx","SearchIcon","DebounceInput","e","state","Typography","Tooltip","CloseRounded"],"mappings":"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"}
1
+ {"version":3,"file":"SearchBar.cjs.js","sources":["../../../../src/components/forms/search-bar/SearchBar.tsx"],"sourcesContent":["import {type FC, type HTMLAttributes, useRef, useState } from 'react';\nimport { DebounceInput } from 'react-debounce-input';\nimport { useTranslation } from 'react-i18next';\nimport { Tooltip } from 'antd';\nimport cn from 'classnames';\nimport { Typography } from '../../data-display/typography/Typography';\nimport { CloseRounded } from '../../icons/CloseRounded';\nimport { SearchIcon } from '../../icons/SearchIcon';\n\nexport type TSearchConfig = {\n searchCount?: number;\n searchPointer?: number;\n setSearchPointer?: React.Dispatch<React.SetStateAction<number | undefined>>;\n};\n\nexport type TSearchBarProps = Omit<HTMLAttributes<HTMLInputElement>, 'onChange'> & {\n value?: string;\n onChange?(value: string): void;\n debounceTimeout?: number;\n classValues?: string;\n handleKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n isClearable?: boolean;\n id: string;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n isAnimated?: boolean;\n onFocusText?: string;\n autoComplete?: string;\n searchRef?: React.RefObject<HTMLInputElement>;\n placeholder?: string;\n autoFocus?: boolean;\n hasNavigation?: boolean;\n searchConfig?: TSearchConfig;\n hideSearchIcon?: boolean;\n allowAStarSearch?: boolean;\n};\n\nexport const SearchBar: FC<TSearchBarProps> = (props) => {\n const {\n value,\n placeholder,\n onChange,\n id,\n debounceTimeout = 0,\n classValues,\n handleKeyDown,\n isClearable,\n onFocusText,\n autoComplete = 'false',\n searchRef,\n hasNavigation = false,\n autoFocus = false,\n searchConfig,\n hideSearchIcon,\n allowAStarSearch = false,\n ...inputProps\n } = props;\n\n const { t } = useTranslation();\n const [isFocused, setIsFocused] = useState(false);\n const [focusedPlaceHolder, setFocusedPlaceHolder] = useState('search');\n const inputRef = useRef<HTMLInputElement>(null);\n const { searchCount, searchPointer, setSearchPointer } = searchConfig || {};\n\n const getRightPadding = () => {\n const hasClearButton = isClearable && !!value;\n const hasNav = hasNavigation && !!value;\n if (hasClearButton && hasNav) return 'pr-28';\n if (hasNav) return 'pr-12';\n if (hasClearButton) return 'pr-8';\n return 'pr-7';\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n setFocusedPlaceHolder(onFocusText || placeholder || t('Search'));\n const ref = searchRef || inputRef;\n if (ref.current) {\n ref.current.focus();\n }\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n setFocusedPlaceHolder('');\n };\n\n return (\n <label\n className={cn(\n `relative flex items-center justify-start px-4 py-[9px] w-full bg-white dark:bg-black-700 rounded-lg text-neutral-400 h-8`,\n classValues,\n )}\n >\n {!hideSearchIcon && (\n <div className='flex items-center h-6 w-6 pointer-events-none'>\n <SearchIcon width=\"16\" height=\"16\" />\n </div>\n )}\n\n <DebounceInput\n {...inputProps}\n spellCheck='false'\n debounceTimeout={debounceTimeout}\n id={id}\n inputRef={searchRef || inputRef}\n type='text'\n className={cn(\n `absolute inset-0 dark:text-[#98A2B3] text-neutral-900 ${hideSearchIcon ? 'pl-2' : 'pl-10'} pl-10 ${getRightPadding()} w-full text-sm dark:text-white bg-transparent rounded-lg focus:outline-none focus:ring-primary-500 focus:border-primary-500`,\n 'border border-solid',\n 'dark:border-neutral-800 border-neutral-200',\n 'dark:caret-white',\n classValues,\n )}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n handleKeyDown && handleKeyDown(e);\n }}\n value={value || ''}\n placeholder={isFocused ? focusedPlaceHolder : allowAStarSearch ? '' : `${t('Search')}`}\n onChange={(e) => onChange?.(e.target.value)}\n autoComplete={autoComplete}\n onFocus={(e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n handleFocus();\n if (props.onFocus) props.onFocus(e);\n }}\n onBlur={(e) => {\n setIsFocused(false);\n handleBlur();\n if (props.onBlur) props.onBlur(e);\n }}\n autoFocus={autoFocus}\n />\n\n {hasNavigation && value && (\n <div className={cn('absolute mr-2 focus:outline-none flex items-center gap-1', isClearable ? 'right-6' : 'right-0')}>\n {Boolean(searchCount) && (searchCount || 0) > 0 && (\n <span className='text-xs border-r pr-2 border-gray-200'>\n {(searchPointer || 0) + 1}/{searchCount}\n </span>\n )}\n <div className='flex gap-1 items-center'>\n <button\n id={`btn-search-bar-set-search-pointer-forward`}\n onClick={() => {\n if (setSearchPointer) setSearchPointer((state) => (state || 0) - 1);\n }}\n disabled={searchPointer === 0}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18l-6-6 6-6\" stroke=\"#98A2B3\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </button>\n <button\n id={`btn-search-bar-set-search-pointer-backward`}\n onClick={() => {\n if (setSearchPointer) setSearchPointer((state) => (state || 0) + 1);\n }}\n disabled={searchPointer === (searchCount || 0) - 1}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18l6-6-6-6\" stroke=\"#98A2B3\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </button>\n </div>\n </div>\n )}\n\n {allowAStarSearch && !(isClearable && value) && !isFocused && !value ? (\n <div className='absolute flex ml-6 items-center justify-center focus:outline-none gap-1 flex-wrap-none'>\n <Typography className='text-[#98A2B3] dark:text-black-400 font-inter text-sm font-medium leading-5'>{t('Search')} (use</Typography>\n\n <button className=' bg-[#EAECF0] dark:bg-black-800 rounded-sm text-sm w-3 h-5'>\n <Tooltip\n placement='bottomRight'\n color='#141414'\n classNames={{\n root: 'custom-tooltip dark:!bg-black-800',\n }}\n title={\n <div className='flex flex-col items-start justify-center p-2 w-full h-full gap-2 dark:bg-black-800 min-w-80 min-h-fit'>\n <Typography variant='semibold' size='extra-small' className='text-white'>{t('Normal Search')}</Typography>\n <Typography variant='medium' size='extra-small' className='text-primary-400 dark:text-primary-400' appearance='custom'>\n {t('Examples')}\n </Typography>\n <div className='flex flex-col items-start justify-center '>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>data</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"data\", \"Data\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>text</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"text\", \"context\", \"plaintext\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>base</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"database\", \"baseball\", \"basename\".\n </Typography>\n </div>\n </div>\n <div className='h-[1px] w-full bg-neutral-800 dark:bg-black-200 my-2'></div>\n <Typography variant='semibold' size='extra-small' className='text-white'>Wildcard Search</Typography>\n <Typography variant='medium' size='extra-small' className='text-white dark:text-black-200' appearance='custom'>\n Use * as a wildcard to refine your search.\n </Typography>\n <Typography variant='medium' size='extra-small' className='text-primary-400 dark:text-primary-400' appearance='custom'>\n Examples:\n </Typography>\n <div className='flex flex-col items-start justify-center '>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter ' appearance='custom'>\n contract*\n </Typography>\n </div>\n\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → \"contracts\", \"contractor\", \"CONTRACTOR\".\n </Typography>\n </div>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter ' appearance='custom'>\n *agreement\n </Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"service agreement\", \"legal agreement\".\n </Typography>\n </div>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>\n *clause*\n </Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"clause\", \"subclause\", \"clauses\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>*l*s*</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"clause\", \"clauses\".\n </Typography>\n </div>\n </div>\n </div>\n }\n >\n <div className='text-[#475467] dark:text-black-300 dark:bg-black-600'>*</div>\n </Tooltip>\n </button>\n <Typography className='text-[#98A2B3] dark:text-black-400 font-inter text-sm font-medium leading-5'>as a wildcard)</Typography>\n </div>\n ) : (\n isClearable &&\n value && (\n <button id={`btn-search-bar-close`} className='absolute right-0 mr-2 focus:outline-none' onClick={() => onChange?.('')}>\n <CloseRounded classValue='text-neutral-200 dark:text-black-500' size={16} />\n </button>\n )\n )}\n </label>\n );\n};\n\n"],"names":["SearchBar","props","value","placeholder","onChange","id","debounceTimeout","classValues","handleKeyDown","isClearable","onFocusText","autoComplete","searchRef","hasNavigation","autoFocus","searchConfig","hideSearchIcon","allowAStarSearch","inputProps","t","useTranslation","isFocused","setIsFocused","useState","focusedPlaceHolder","setFocusedPlaceHolder","inputRef","useRef","searchCount","searchPointer","setSearchPointer","getRightPadding","hasClearButton","hasNav","handleFocus","ref","handleBlur","jsxs","cn","jsx","SearchIcon","DebounceInput","e","state","Typography","Tooltip","CloseRounded"],"mappings":"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"}
@@ -77,7 +77,7 @@ const Z = (n) => {
77
77
  autoFocus: A
78
78
  }
79
79
  ),
80
- b && s && /* @__PURE__ */ r("div", { className: u("absolute mr-2 focus:outline-none flex gap-1", c ? "right-6" : "right-0"), children: [
80
+ b && s && /* @__PURE__ */ r("div", { className: u("absolute mr-2 focus:outline-none flex items-center gap-1", c ? "right-6" : "right-0"), children: [
81
81
  !!d && (d || 0) > 0 && /* @__PURE__ */ r("span", { className: "text-xs border-r pr-2 border-gray-200", children: [
82
82
  (m || 0) + 1,
83
83
  "/",
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBar.es.js","sources":["../../../../src/components/forms/search-bar/SearchBar.tsx"],"sourcesContent":["import {type FC, type HTMLAttributes, useRef, useState } from 'react';\nimport { DebounceInput } from 'react-debounce-input';\nimport { useTranslation } from 'react-i18next';\nimport { Tooltip } from 'antd';\nimport cn from 'classnames';\nimport { Typography } from '../../data-display/typography/Typography';\nimport { CloseRounded } from '../../icons/CloseRounded';\nimport { SearchIcon } from '../../icons/SearchIcon';\n\nexport type TSearchConfig = {\n searchCount?: number;\n searchPointer?: number;\n setSearchPointer?: React.Dispatch<React.SetStateAction<number | undefined>>;\n};\n\nexport type TSearchBarProps = Omit<HTMLAttributes<HTMLInputElement>, 'onChange'> & {\n value?: string;\n onChange?(value: string): void;\n debounceTimeout?: number;\n classValues?: string;\n handleKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n isClearable?: boolean;\n id: string;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n isAnimated?: boolean;\n onFocusText?: string;\n autoComplete?: string;\n searchRef?: React.RefObject<HTMLInputElement>;\n placeholder?: string;\n autoFocus?: boolean;\n hasNavigation?: boolean;\n searchConfig?: TSearchConfig;\n hideSearchIcon?: boolean;\n allowAStarSearch?: boolean;\n};\n\nexport const SearchBar: FC<TSearchBarProps> = (props) => {\n const {\n value,\n placeholder,\n onChange,\n id,\n debounceTimeout = 0,\n classValues,\n handleKeyDown,\n isClearable,\n onFocusText,\n autoComplete = 'false',\n searchRef,\n hasNavigation = false,\n autoFocus = false,\n searchConfig,\n hideSearchIcon,\n allowAStarSearch = false,\n ...inputProps\n } = props;\n\n const { t } = useTranslation();\n const [isFocused, setIsFocused] = useState(false);\n const [focusedPlaceHolder, setFocusedPlaceHolder] = useState('search');\n const inputRef = useRef<HTMLInputElement>(null);\n const { searchCount, searchPointer, setSearchPointer } = searchConfig || {};\n\n const getRightPadding = () => {\n const hasClearButton = isClearable && !!value;\n const hasNav = hasNavigation && !!value;\n if (hasClearButton && hasNav) return 'pr-28';\n if (hasNav) return 'pr-12';\n if (hasClearButton) return 'pr-8';\n return 'pr-7';\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n setFocusedPlaceHolder(onFocusText || placeholder || t('Search'));\n const ref = searchRef || inputRef;\n if (ref.current) {\n ref.current.focus();\n }\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n setFocusedPlaceHolder('');\n };\n\n return (\n <label\n className={cn(\n `relative flex items-center justify-start px-4 py-[9px] w-full bg-white dark:bg-black-700 rounded-lg text-neutral-400 h-8`,\n classValues,\n )}\n >\n {!hideSearchIcon && (\n <div className='flex items-center h-6 w-6 pointer-events-none'>\n <SearchIcon width=\"16\" height=\"16\" />\n </div>\n )}\n\n <DebounceInput\n {...inputProps}\n spellCheck='false'\n debounceTimeout={debounceTimeout}\n id={id}\n inputRef={searchRef || inputRef}\n type='text'\n className={cn(\n `absolute inset-0 dark:text-[#98A2B3] text-neutral-900 ${hideSearchIcon ? 'pl-2' : 'pl-10'} pl-10 ${getRightPadding()} w-full text-sm dark:text-white bg-transparent rounded-lg focus:outline-none focus:ring-primary-500 focus:border-primary-500`,\n 'border border-solid',\n 'dark:border-neutral-800 border-neutral-200',\n 'dark:caret-white',\n classValues,\n )}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n handleKeyDown && handleKeyDown(e);\n }}\n value={value || ''}\n placeholder={isFocused ? focusedPlaceHolder : allowAStarSearch ? '' : `${t('Search')}`}\n onChange={(e) => onChange?.(e.target.value)}\n autoComplete={autoComplete}\n onFocus={(e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n handleFocus();\n if (props.onFocus) props.onFocus(e);\n }}\n onBlur={(e) => {\n setIsFocused(false);\n handleBlur();\n if (props.onBlur) props.onBlur(e);\n }}\n autoFocus={autoFocus}\n />\n\n {hasNavigation && value && (\n <div className={cn('absolute mr-2 focus:outline-none flex gap-1', isClearable ? 'right-6' : 'right-0')}>\n {Boolean(searchCount) && (searchCount || 0) > 0 && (\n <span className='text-xs border-r pr-2 border-gray-200'>\n {(searchPointer || 0) + 1}/{searchCount}\n </span>\n )}\n <div className='flex gap-1 items-center'>\n <button\n id={`btn-search-bar-set-search-pointer-forward`}\n onClick={() => {\n if (setSearchPointer) setSearchPointer((state) => (state || 0) - 1);\n }}\n disabled={searchPointer === 0}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18l-6-6 6-6\" stroke=\"#98A2B3\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </button>\n <button\n id={`btn-search-bar-set-search-pointer-backward`}\n onClick={() => {\n if (setSearchPointer) setSearchPointer((state) => (state || 0) + 1);\n }}\n disabled={searchPointer === (searchCount || 0) - 1}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18l6-6-6-6\" stroke=\"#98A2B3\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </button>\n </div>\n </div>\n )}\n\n {allowAStarSearch && !(isClearable && value) && !isFocused && !value ? (\n <div className='absolute flex ml-6 items-center justify-center focus:outline-none gap-1 flex-wrap-none'>\n <Typography className='text-[#98A2B3] dark:text-black-400 font-inter text-sm font-medium leading-5'>{t('Search')} (use</Typography>\n\n <button className=' bg-[#EAECF0] dark:bg-black-800 rounded-sm text-sm w-3 h-5'>\n <Tooltip\n placement='bottomRight'\n color='#141414'\n classNames={{\n root: 'custom-tooltip dark:!bg-black-800',\n }}\n title={\n <div className='flex flex-col items-start justify-center p-2 w-full h-full gap-2 dark:bg-black-800 min-w-80 min-h-fit'>\n <Typography variant='semibold' size='extra-small' className='text-white'>{t('Normal Search')}</Typography>\n <Typography variant='medium' size='extra-small' className='text-primary-400 dark:text-primary-400' appearance='custom'>\n {t('Examples')}\n </Typography>\n <div className='flex flex-col items-start justify-center '>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>data</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"data\", \"Data\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>text</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"text\", \"context\", \"plaintext\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>base</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"database\", \"baseball\", \"basename\".\n </Typography>\n </div>\n </div>\n <div className='h-[1px] w-full bg-neutral-800 dark:bg-black-200 my-2'></div>\n <Typography variant='semibold' size='extra-small' className='text-white'>Wildcard Search</Typography>\n <Typography variant='medium' size='extra-small' className='text-white dark:text-black-200' appearance='custom'>\n Use * as a wildcard to refine your search.\n </Typography>\n <Typography variant='medium' size='extra-small' className='text-primary-400 dark:text-primary-400' appearance='custom'>\n Examples:\n </Typography>\n <div className='flex flex-col items-start justify-center '>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter ' appearance='custom'>\n contract*\n </Typography>\n </div>\n\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → \"contracts\", \"contractor\", \"CONTRACTOR\".\n </Typography>\n </div>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter ' appearance='custom'>\n *agreement\n </Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"service agreement\", \"legal agreement\".\n </Typography>\n </div>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>\n *clause*\n </Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"clause\", \"subclause\", \"clauses\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>*l*s*</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"clause\", \"clauses\".\n </Typography>\n </div>\n </div>\n </div>\n }\n >\n <div className='text-[#475467] dark:text-black-300 dark:bg-black-600'>*</div>\n </Tooltip>\n </button>\n <Typography className='text-[#98A2B3] dark:text-black-400 font-inter text-sm font-medium leading-5'>as a wildcard)</Typography>\n </div>\n ) : (\n isClearable &&\n value && (\n <button id={`btn-search-bar-close`} className='absolute right-0 mr-2 focus:outline-none' onClick={() => onChange?.('')}>\n <CloseRounded classValue='text-neutral-200 dark:text-black-500' size={16} />\n </button>\n )\n )}\n </label>\n );\n};\n\n"],"names":["SearchBar","props","value","placeholder","onChange","id","debounceTimeout","classValues","handleKeyDown","isClearable","onFocusText","autoComplete","searchRef","hasNavigation","autoFocus","searchConfig","hideSearchIcon","allowAStarSearch","inputProps","t","useTranslation","isFocused","setIsFocused","useState","focusedPlaceHolder","setFocusedPlaceHolder","inputRef","useRef","searchCount","searchPointer","setSearchPointer","getRightPadding","hasClearButton","hasNav","handleFocus","ref","handleBlur","jsxs","cn","jsx","SearchIcon","DebounceInput","e","state","Typography","Tooltip","CloseRounded"],"mappings":"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"}
1
+ {"version":3,"file":"SearchBar.es.js","sources":["../../../../src/components/forms/search-bar/SearchBar.tsx"],"sourcesContent":["import {type FC, type HTMLAttributes, useRef, useState } from 'react';\nimport { DebounceInput } from 'react-debounce-input';\nimport { useTranslation } from 'react-i18next';\nimport { Tooltip } from 'antd';\nimport cn from 'classnames';\nimport { Typography } from '../../data-display/typography/Typography';\nimport { CloseRounded } from '../../icons/CloseRounded';\nimport { SearchIcon } from '../../icons/SearchIcon';\n\nexport type TSearchConfig = {\n searchCount?: number;\n searchPointer?: number;\n setSearchPointer?: React.Dispatch<React.SetStateAction<number | undefined>>;\n};\n\nexport type TSearchBarProps = Omit<HTMLAttributes<HTMLInputElement>, 'onChange'> & {\n value?: string;\n onChange?(value: string): void;\n debounceTimeout?: number;\n classValues?: string;\n handleKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n isClearable?: boolean;\n id: string;\n onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;\n onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n isAnimated?: boolean;\n onFocusText?: string;\n autoComplete?: string;\n searchRef?: React.RefObject<HTMLInputElement>;\n placeholder?: string;\n autoFocus?: boolean;\n hasNavigation?: boolean;\n searchConfig?: TSearchConfig;\n hideSearchIcon?: boolean;\n allowAStarSearch?: boolean;\n};\n\nexport const SearchBar: FC<TSearchBarProps> = (props) => {\n const {\n value,\n placeholder,\n onChange,\n id,\n debounceTimeout = 0,\n classValues,\n handleKeyDown,\n isClearable,\n onFocusText,\n autoComplete = 'false',\n searchRef,\n hasNavigation = false,\n autoFocus = false,\n searchConfig,\n hideSearchIcon,\n allowAStarSearch = false,\n ...inputProps\n } = props;\n\n const { t } = useTranslation();\n const [isFocused, setIsFocused] = useState(false);\n const [focusedPlaceHolder, setFocusedPlaceHolder] = useState('search');\n const inputRef = useRef<HTMLInputElement>(null);\n const { searchCount, searchPointer, setSearchPointer } = searchConfig || {};\n\n const getRightPadding = () => {\n const hasClearButton = isClearable && !!value;\n const hasNav = hasNavigation && !!value;\n if (hasClearButton && hasNav) return 'pr-28';\n if (hasNav) return 'pr-12';\n if (hasClearButton) return 'pr-8';\n return 'pr-7';\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n setFocusedPlaceHolder(onFocusText || placeholder || t('Search'));\n const ref = searchRef || inputRef;\n if (ref.current) {\n ref.current.focus();\n }\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n setFocusedPlaceHolder('');\n };\n\n return (\n <label\n className={cn(\n `relative flex items-center justify-start px-4 py-[9px] w-full bg-white dark:bg-black-700 rounded-lg text-neutral-400 h-8`,\n classValues,\n )}\n >\n {!hideSearchIcon && (\n <div className='flex items-center h-6 w-6 pointer-events-none'>\n <SearchIcon width=\"16\" height=\"16\" />\n </div>\n )}\n\n <DebounceInput\n {...inputProps}\n spellCheck='false'\n debounceTimeout={debounceTimeout}\n id={id}\n inputRef={searchRef || inputRef}\n type='text'\n className={cn(\n `absolute inset-0 dark:text-[#98A2B3] text-neutral-900 ${hideSearchIcon ? 'pl-2' : 'pl-10'} pl-10 ${getRightPadding()} w-full text-sm dark:text-white bg-transparent rounded-lg focus:outline-none focus:ring-primary-500 focus:border-primary-500`,\n 'border border-solid',\n 'dark:border-neutral-800 border-neutral-200',\n 'dark:caret-white',\n classValues,\n )}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n handleKeyDown && handleKeyDown(e);\n }}\n value={value || ''}\n placeholder={isFocused ? focusedPlaceHolder : allowAStarSearch ? '' : `${t('Search')}`}\n onChange={(e) => onChange?.(e.target.value)}\n autoComplete={autoComplete}\n onFocus={(e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n handleFocus();\n if (props.onFocus) props.onFocus(e);\n }}\n onBlur={(e) => {\n setIsFocused(false);\n handleBlur();\n if (props.onBlur) props.onBlur(e);\n }}\n autoFocus={autoFocus}\n />\n\n {hasNavigation && value && (\n <div className={cn('absolute mr-2 focus:outline-none flex items-center gap-1', isClearable ? 'right-6' : 'right-0')}>\n {Boolean(searchCount) && (searchCount || 0) > 0 && (\n <span className='text-xs border-r pr-2 border-gray-200'>\n {(searchPointer || 0) + 1}/{searchCount}\n </span>\n )}\n <div className='flex gap-1 items-center'>\n <button\n id={`btn-search-bar-set-search-pointer-forward`}\n onClick={() => {\n if (setSearchPointer) setSearchPointer((state) => (state || 0) - 1);\n }}\n disabled={searchPointer === 0}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15 18l-6-6 6-6\" stroke=\"#98A2B3\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </button>\n <button\n id={`btn-search-bar-set-search-pointer-backward`}\n onClick={() => {\n if (setSearchPointer) setSearchPointer((state) => (state || 0) + 1);\n }}\n disabled={searchPointer === (searchCount || 0) - 1}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 18l6-6-6-6\" stroke=\"#98A2B3\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n </button>\n </div>\n </div>\n )}\n\n {allowAStarSearch && !(isClearable && value) && !isFocused && !value ? (\n <div className='absolute flex ml-6 items-center justify-center focus:outline-none gap-1 flex-wrap-none'>\n <Typography className='text-[#98A2B3] dark:text-black-400 font-inter text-sm font-medium leading-5'>{t('Search')} (use</Typography>\n\n <button className=' bg-[#EAECF0] dark:bg-black-800 rounded-sm text-sm w-3 h-5'>\n <Tooltip\n placement='bottomRight'\n color='#141414'\n classNames={{\n root: 'custom-tooltip dark:!bg-black-800',\n }}\n title={\n <div className='flex flex-col items-start justify-center p-2 w-full h-full gap-2 dark:bg-black-800 min-w-80 min-h-fit'>\n <Typography variant='semibold' size='extra-small' className='text-white'>{t('Normal Search')}</Typography>\n <Typography variant='medium' size='extra-small' className='text-primary-400 dark:text-primary-400' appearance='custom'>\n {t('Examples')}\n </Typography>\n <div className='flex flex-col items-start justify-center '>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>data</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"data\", \"Data\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>text</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"text\", \"context\", \"plaintext\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>base</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"database\", \"baseball\", \"basename\".\n </Typography>\n </div>\n </div>\n <div className='h-[1px] w-full bg-neutral-800 dark:bg-black-200 my-2'></div>\n <Typography variant='semibold' size='extra-small' className='text-white'>Wildcard Search</Typography>\n <Typography variant='medium' size='extra-small' className='text-white dark:text-black-200' appearance='custom'>\n Use * as a wildcard to refine your search.\n </Typography>\n <Typography variant='medium' size='extra-small' className='text-primary-400 dark:text-primary-400' appearance='custom'>\n Examples:\n </Typography>\n <div className='flex flex-col items-start justify-center '>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter ' appearance='custom'>\n contract*\n </Typography>\n </div>\n\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → \"contracts\", \"contractor\", \"CONTRACTOR\".\n </Typography>\n </div>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter ' appearance='custom'>\n *agreement\n </Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"service agreement\", \"legal agreement\".\n </Typography>\n </div>\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>\n *clause*\n </Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"clause\", \"subclause\", \"clauses\".\n </Typography>\n </div>\n\n <div className='flex items-center justify-center gap-1'>\n <Typography className='flex-shrink-0' appearance='custom'>\n •\n </Typography>\n <div className='flex px-1 items-center justify-center bg-neutral-700 rounded-sm'>\n <Typography className='text-neutral-300 dark:text-black-200 text-xs font-medium leading-4 font-inter' appearance='custom'>*l*s*</Typography>\n </div>\n <Typography className='text-white dark:text-black-100 text-xs font-medium leading-4 font-inter' appearance='custom'>\n → finds \"clause\", \"clauses\".\n </Typography>\n </div>\n </div>\n </div>\n }\n >\n <div className='text-[#475467] dark:text-black-300 dark:bg-black-600'>*</div>\n </Tooltip>\n </button>\n <Typography className='text-[#98A2B3] dark:text-black-400 font-inter text-sm font-medium leading-5'>as a wildcard)</Typography>\n </div>\n ) : (\n isClearable &&\n value && (\n <button id={`btn-search-bar-close`} className='absolute right-0 mr-2 focus:outline-none' onClick={() => onChange?.('')}>\n <CloseRounded classValue='text-neutral-200 dark:text-black-500' size={16} />\n </button>\n )\n )}\n </label>\n );\n};\n\n"],"names":["SearchBar","props","value","placeholder","onChange","id","debounceTimeout","classValues","handleKeyDown","isClearable","onFocusText","autoComplete","searchRef","hasNavigation","autoFocus","searchConfig","hideSearchIcon","allowAStarSearch","inputProps","t","useTranslation","isFocused","setIsFocused","useState","focusedPlaceHolder","setFocusedPlaceHolder","inputRef","useRef","searchCount","searchPointer","setSearchPointer","getRightPadding","hasClearButton","hasNav","handleFocus","ref","handleBlur","jsxs","cn","jsx","SearchIcon","DebounceInput","e","state","Typography","Tooltip","CloseRounded"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=(r,s,t="asc")=>[...r].sort((n,l)=>{const i=n[s]??0,c=l[s]??0;return t==="asc"?i-c:c-i}),m=(r,s)=>{let t=s;const n=30;if(r?.length&&(t=t?.map((e,o)=>{const a=r.find(d=>d.name===e.Header);return a?{...e,order:a.order||o+t.length,width:a.width||e.width,visible:a.visible,sticky:a.sticky}:e})),t.filter(e=>e.visible).length>n){let e=0;t=t.map(o=>{if(o.visible){const a=e<n;return e++,{...o,visible:a}}return o})}const i=b(t,"order","asc"),c=i.filter(e=>e?.sticky)?.filter(e=>e.accessor);return[...i.filter(e=>!e?.sticky)?.filter(e=>e.accessor),...c]},p=r=>r&&r?.trim()?.replace(/^\*+|\*+$/g,"")?.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&")?.replace(/\*/g,".")||"",f=(r,s)=>{if(!r||!s)return"";try{let t=r;const n=/{{([^}]+)}}/g,l=r.match(n);return l&&s&&l.forEach(i=>{const c=i.slice(2,-2).trim(),u=s[c];u!=null&&(t=t.replace(i,String(u)))}),t}catch{return""}};exports.escapeRegExp=p;exports.mergeViewColumnsWithTableColumns=m;exports.parseMasterDataFormula=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=(t,s,r="asc")=>[...t].sort((n,l)=>{const i=n[s]??0,c=l[s]??0;return r==="asc"?i-c:c-i}),m=(t,s)=>{let r=s;const n=30;if(t?.length&&(r=r?.map((e,o)=>{const a=t.find(u=>u.name===e.Header);return a?{...e,order:a.order||o+r.length,width:a.width||e.width,visible:a.visible,sticky:a.sticky}:e})),r.filter(e=>e.visible).length>n){let e=0;r=r.map(o=>{if(o.visible){const a=e<n;return e++,{...o,visible:a}}return o})}const i=b(r,"order","asc"),c=i.filter(e=>e?.sticky)?.filter(e=>e.accessor);return[...i.filter(e=>!e?.sticky)?.filter(e=>e.accessor),...c]},p=(t,s)=>!t?.id||t.id==="untitled-view"?!0:t.created_by===s,f=t=>t&&t?.trim()?.replace(/^\*+|\*+$/g,"")?.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&")?.replace(/\*/g,".")||"",g=(t,s)=>{if(!t||!s)return"";try{let r=t;const n=/{{([^}]+)}}/g,l=t.match(n);return l&&s&&l.forEach(i=>{const c=i.slice(2,-2).trim(),d=s[c];d!=null&&(r=r.replace(i,String(d)))}),r}catch{return""}};exports.canEditTableView=p;exports.escapeRegExp=f;exports.mergeViewColumnsWithTableColumns=m;exports.parseMasterDataFormula=g;
2
2
  //# sourceMappingURL=table.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.cjs.js","sources":["../../src/utils/table.ts"],"sourcesContent":["import type { IColumn } from '../components/data-display/infinite-table/types';\n\nconst sortArrayOfObject = <T,>(arr: T[], key: string, order: 'asc' | 'desc' = 'asc'): T[] => {\n return [...arr].sort((a, b) => {\n const aVal = ((a as Record<string, unknown>)[key] as number) ?? 0;\n const bVal = ((b as Record<string, unknown>)[key] as number) ?? 0;\n return order === 'asc' ? aVal - bVal : bVal - aVal;\n });\n};\n\nexport const mergeViewColumnsWithTableColumns = (viewColumns: IColumn[], tableColumns: IColumn[]) => {\n let updatedHeaders: IColumn[] = tableColumns;\n const MAX_VISIBLE_COLUMNS = 30;\n\n if (viewColumns?.length) {\n updatedHeaders = updatedHeaders?.map((item, index) => {\n const findHeader = viewColumns.find((_item) => _item.name === item.Header);\n if (findHeader) {\n return {\n ...item,\n order: findHeader.order || index + updatedHeaders.length,\n width: findHeader.width || item.width,\n visible: findHeader.visible,\n sticky: findHeader.sticky,\n };\n }\n return item;\n });\n }\n\n const visibleColumns = updatedHeaders.filter((header) => header.visible);\n\n if (visibleColumns.length > MAX_VISIBLE_COLUMNS) {\n let visibleCount = 0;\n updatedHeaders = updatedHeaders.map((header) => {\n if (header.visible) {\n const shouldBeVisible = visibleCount < MAX_VISIBLE_COLUMNS;\n visibleCount++;\n return { ...header, visible: shouldBeVisible };\n }\n return header;\n });\n }\n\n const sortedHeaders = sortArrayOfObject(updatedHeaders, 'order', 'asc');\n\n const stickyHeaders = sortedHeaders.filter((item) => item?.sticky)?.filter((_th) => _th.accessor);\n const nonStickyHeaders = sortedHeaders.filter((item) => !item?.sticky)?.filter((_th) => _th.accessor);\n\n return [...nonStickyHeaders, ...stickyHeaders];\n};\n\nexport const escapeRegExp = (string: string) => {\n if (!string) return '';\n const trimmed = string?.trim()?.replace(/^\\*+|\\*+$/g, '');\n const escaped = trimmed?.replace(/[-/\\\\^$+?.()|[\\]{}]/g, '\\\\$&');\n return escaped?.replace(/\\*/g, '.') || '';\n};\n\nexport const parseMasterDataFormula = (formula: string, reference: Record<string, unknown>): string => {\n if (!formula) return '';\n if (!reference) return '';\n\n try {\n let parsedFormula = formula;\n const variablePattern = /{{([^}]+)}}/g;\n const matches = formula.match(variablePattern);\n\n if (matches && reference) {\n matches.forEach((match) => {\n const variableName = match.slice(2, -2).trim();\n const variableValue = reference[variableName];\n if (variableValue !== undefined && variableValue !== null) {\n parsedFormula = parsedFormula.replace(match, String(variableValue));\n }\n });\n }\n\n return parsedFormula;\n } catch {\n return '';\n }\n};\n"],"names":["sortArrayOfObject","arr","key","order","a","b","aVal","bVal","mergeViewColumnsWithTableColumns","viewColumns","tableColumns","updatedHeaders","MAX_VISIBLE_COLUMNS","item","index","findHeader","_item","header","visibleCount","shouldBeVisible","sortedHeaders","stickyHeaders","_th","escapeRegExp","string","parseMasterDataFormula","formula","reference","parsedFormula","variablePattern","matches","match","variableName","variableValue"],"mappings":"gFAEA,MAAMA,EAAoB,CAAKC,EAAUC,EAAaC,EAAwB,QACrE,CAAC,GAAGF,CAAG,EAAE,KAAK,CAACG,EAAGC,IAAM,CAC7B,MAAMC,EAASF,EAA8BF,CAAG,GAAgB,EAC1DK,EAASF,EAA8BH,CAAG,GAAgB,EAChE,OAAOC,IAAU,MAAQG,EAAOC,EAAOA,EAAOD,CAChD,CAAC,EAGUE,EAAmC,CAACC,EAAwBC,IAA4B,CACnG,IAAIC,EAA4BD,EAChC,MAAME,EAAsB,GAoB5B,GAlBIH,GAAa,SACfE,EAAiBA,GAAgB,IAAI,CAACE,EAAMC,IAAU,CACpD,MAAMC,EAAaN,EAAY,KAAMO,GAAUA,EAAM,OAASH,EAAK,MAAM,EACzE,OAAIE,EACK,CACL,GAAGF,EACH,MAAOE,EAAW,OAASD,EAAQH,EAAe,OAClD,MAAOI,EAAW,OAASF,EAAK,MAChC,QAASE,EAAW,QACpB,OAAQA,EAAW,MAAA,EAGhBF,CACT,CAAC,GAGoBF,EAAe,OAAQM,GAAWA,EAAO,OAAO,EAEpD,OAASL,EAAqB,CAC/C,IAAIM,EAAe,EACnBP,EAAiBA,EAAe,IAAKM,GAAW,CAC9C,GAAIA,EAAO,QAAS,CAClB,MAAME,EAAkBD,EAAeN,EACvC,OAAAM,IACO,CAAE,GAAGD,EAAQ,QAASE,CAAA,CAC/B,CACA,OAAOF,CACT,CAAC,CACH,CAEA,MAAMG,EAAgBpB,EAAkBW,EAAgB,QAAS,KAAK,EAEhEU,EAAgBD,EAAc,OAAQP,GAASA,GAAM,MAAM,GAAG,OAAQS,GAAQA,EAAI,QAAQ,EAGhG,MAAO,CAAC,GAFiBF,EAAc,OAAQP,GAAS,CAACA,GAAM,MAAM,GAAG,OAAQS,GAAQA,EAAI,QAAQ,EAEvE,GAAGD,CAAa,CAC/C,EAEaE,EAAgBC,GACtBA,GACWA,GAAQ,KAAA,GAAQ,QAAQ,aAAc,EAAE,GAC/B,QAAQ,uBAAwB,MAAM,GAC/C,QAAQ,MAAO,GAAG,GAAK,GAG5BC,EAAyB,CAACC,EAAiBC,IAA+C,CAErG,GADI,CAACD,GACD,CAACC,EAAW,MAAO,GAEvB,GAAI,CACF,IAAIC,EAAgBF,EACpB,MAAMG,EAAkB,eAClBC,EAAUJ,EAAQ,MAAMG,CAAe,EAE7C,OAAIC,GAAWH,GACbG,EAAQ,QAASC,GAAU,CACzB,MAAMC,EAAeD,EAAM,MAAM,EAAG,EAAE,EAAE,KAAA,EAClCE,EAAgBN,EAAUK,CAAY,EACTC,GAAkB,OACnDL,EAAgBA,EAAc,QAAQG,EAAO,OAAOE,CAAa,CAAC,EAEtE,CAAC,EAGIL,CACT,MAAQ,CACN,MAAO,EACT,CACF"}
1
+ {"version":3,"file":"table.cjs.js","sources":["../../src/utils/table.ts"],"sourcesContent":["import type { IColumn, ITableView } from '../components/data-display/infinite-table/types';\n\nconst sortArrayOfObject = <T,>(arr: T[], key: string, order: 'asc' | 'desc' = 'asc'): T[] => {\n return [...arr].sort((a, b) => {\n const aVal = ((a as Record<string, unknown>)[key] as number) ?? 0;\n const bVal = ((b as Record<string, unknown>)[key] as number) ?? 0;\n return order === 'asc' ? aVal - bVal : bVal - aVal;\n });\n};\n\nexport const mergeViewColumnsWithTableColumns = (viewColumns: IColumn[], tableColumns: IColumn[]) => {\n let updatedHeaders: IColumn[] = tableColumns;\n const MAX_VISIBLE_COLUMNS = 30;\n\n if (viewColumns?.length) {\n updatedHeaders = updatedHeaders?.map((item, index) => {\n const findHeader = viewColumns.find((_item) => _item.name === item.Header);\n if (findHeader) {\n return {\n ...item,\n order: findHeader.order || index + updatedHeaders.length,\n width: findHeader.width || item.width,\n visible: findHeader.visible,\n sticky: findHeader.sticky,\n };\n }\n return item;\n });\n }\n\n const visibleColumns = updatedHeaders.filter((header) => header.visible);\n\n if (visibleColumns.length > MAX_VISIBLE_COLUMNS) {\n let visibleCount = 0;\n updatedHeaders = updatedHeaders.map((header) => {\n if (header.visible) {\n const shouldBeVisible = visibleCount < MAX_VISIBLE_COLUMNS;\n visibleCount++;\n return { ...header, visible: shouldBeVisible };\n }\n return header;\n });\n }\n\n const sortedHeaders = sortArrayOfObject(updatedHeaders, 'order', 'asc');\n\n const stickyHeaders = sortedHeaders.filter((item) => item?.sticky)?.filter((_th) => _th.accessor);\n const nonStickyHeaders = sortedHeaders.filter((item) => !item?.sticky)?.filter((_th) => _th.accessor);\n\n return [...nonStickyHeaders, ...stickyHeaders];\n};\n\n// A view that hasn't been persisted yet (no id, or the local \"untitled-view\" draft) is always\n// editable — it's the current user's own in-progress draft. Any persisted view (including a\n// global/shared view with no individual owner, i.e. created_by is null) can only be edited by\n// the user who created it.\nexport const canEditTableView = (view?: ITableView | null, userId?: string): boolean => {\n if (!view?.id || view.id === 'untitled-view') return true;\n return view.created_by === userId;\n};\n\nexport const escapeRegExp = (string: string) => {\n if (!string) return '';\n const trimmed = string?.trim()?.replace(/^\\*+|\\*+$/g, '');\n const escaped = trimmed?.replace(/[-/\\\\^$+?.()|[\\]{}]/g, '\\\\$&');\n return escaped?.replace(/\\*/g, '.') || '';\n};\n\nexport const parseMasterDataFormula = (formula: string, reference: Record<string, unknown>): string => {\n if (!formula) return '';\n if (!reference) return '';\n\n try {\n let parsedFormula = formula;\n const variablePattern = /{{([^}]+)}}/g;\n const matches = formula.match(variablePattern);\n\n if (matches && reference) {\n matches.forEach((match) => {\n const variableName = match.slice(2, -2).trim();\n const variableValue = reference[variableName];\n if (variableValue !== undefined && variableValue !== null) {\n parsedFormula = parsedFormula.replace(match, String(variableValue));\n }\n });\n }\n\n return parsedFormula;\n } catch {\n return '';\n }\n};\n"],"names":["sortArrayOfObject","arr","key","order","a","b","aVal","bVal","mergeViewColumnsWithTableColumns","viewColumns","tableColumns","updatedHeaders","MAX_VISIBLE_COLUMNS","item","index","findHeader","_item","header","visibleCount","shouldBeVisible","sortedHeaders","stickyHeaders","_th","canEditTableView","view","userId","escapeRegExp","string","parseMasterDataFormula","formula","reference","parsedFormula","variablePattern","matches","match","variableName","variableValue"],"mappings":"gFAEA,MAAMA,EAAoB,CAAKC,EAAUC,EAAaC,EAAwB,QACrE,CAAC,GAAGF,CAAG,EAAE,KAAK,CAACG,EAAGC,IAAM,CAC7B,MAAMC,EAASF,EAA8BF,CAAG,GAAgB,EAC1DK,EAASF,EAA8BH,CAAG,GAAgB,EAChE,OAAOC,IAAU,MAAQG,EAAOC,EAAOA,EAAOD,CAChD,CAAC,EAGUE,EAAmC,CAACC,EAAwBC,IAA4B,CACnG,IAAIC,EAA4BD,EAChC,MAAME,EAAsB,GAoB5B,GAlBIH,GAAa,SACfE,EAAiBA,GAAgB,IAAI,CAACE,EAAMC,IAAU,CACpD,MAAMC,EAAaN,EAAY,KAAMO,GAAUA,EAAM,OAASH,EAAK,MAAM,EACzE,OAAIE,EACK,CACL,GAAGF,EACH,MAAOE,EAAW,OAASD,EAAQH,EAAe,OAClD,MAAOI,EAAW,OAASF,EAAK,MAChC,QAASE,EAAW,QACpB,OAAQA,EAAW,MAAA,EAGhBF,CACT,CAAC,GAGoBF,EAAe,OAAQM,GAAWA,EAAO,OAAO,EAEpD,OAASL,EAAqB,CAC/C,IAAIM,EAAe,EACnBP,EAAiBA,EAAe,IAAKM,GAAW,CAC9C,GAAIA,EAAO,QAAS,CAClB,MAAME,EAAkBD,EAAeN,EACvC,OAAAM,IACO,CAAE,GAAGD,EAAQ,QAASE,CAAA,CAC/B,CACA,OAAOF,CACT,CAAC,CACH,CAEA,MAAMG,EAAgBpB,EAAkBW,EAAgB,QAAS,KAAK,EAEhEU,EAAgBD,EAAc,OAAQP,GAASA,GAAM,MAAM,GAAG,OAAQS,GAAQA,EAAI,QAAQ,EAGhG,MAAO,CAAC,GAFiBF,EAAc,OAAQP,GAAS,CAACA,GAAM,MAAM,GAAG,OAAQS,GAAQA,EAAI,QAAQ,EAEvE,GAAGD,CAAa,CAC/C,EAMaE,EAAmB,CAACC,EAA0BC,IACrD,CAACD,GAAM,IAAMA,EAAK,KAAO,gBAAwB,GAC9CA,EAAK,aAAeC,EAGhBC,EAAgBC,GACtBA,GACWA,GAAQ,KAAA,GAAQ,QAAQ,aAAc,EAAE,GAC/B,QAAQ,uBAAwB,MAAM,GAC/C,QAAQ,MAAO,GAAG,GAAK,GAG5BC,EAAyB,CAACC,EAAiBC,IAA+C,CAErG,GADI,CAACD,GACD,CAACC,EAAW,MAAO,GAEvB,GAAI,CACF,IAAIC,EAAgBF,EACpB,MAAMG,EAAkB,eAClBC,EAAUJ,EAAQ,MAAMG,CAAe,EAE7C,OAAIC,GAAWH,GACbG,EAAQ,QAASC,GAAU,CACzB,MAAMC,EAAeD,EAAM,MAAM,EAAG,EAAE,EAAE,KAAA,EAClCE,EAAgBN,EAAUK,CAAY,EACTC,GAAkB,OACnDL,EAAgBA,EAAc,QAAQG,EAAO,OAAOE,CAAa,CAAC,EAEtE,CAAC,EAGIL,CACT,MAAQ,CACN,MAAO,EACT,CACF"}
@@ -1,4 +1,5 @@
1
- import type { IColumn } from '../components/data-display/infinite-table/types';
1
+ import type { IColumn, ITableView } from '../components/data-display/infinite-table/types';
2
2
  export declare const mergeViewColumnsWithTableColumns: (viewColumns: IColumn[], tableColumns: IColumn[]) => IColumn[];
3
+ export declare const canEditTableView: (view?: ITableView | null, userId?: string) => boolean;
3
4
  export declare const escapeRegExp: (string: string) => string;
4
5
  export declare const parseMasterDataFormula: (formula: string, reference: Record<string, unknown>) => string;
@@ -1,21 +1,21 @@
1
- const b = (r, s, t = "asc") => [...r].sort((c, l) => {
1
+ const b = (t, s, r = "asc") => [...t].sort((c, l) => {
2
2
  const i = c[s] ?? 0, a = l[s] ?? 0;
3
- return t === "asc" ? i - a : a - i;
4
- }), f = (r, s) => {
5
- let t = s;
3
+ return r === "asc" ? i - a : a - i;
4
+ }), f = (t, s) => {
5
+ let r = s;
6
6
  const c = 30;
7
- if (r?.length && (t = t?.map((e, o) => {
8
- const n = r.find((u) => u.name === e.Header);
7
+ if (t?.length && (r = r?.map((e, o) => {
8
+ const n = t.find((u) => u.name === e.Header);
9
9
  return n ? {
10
10
  ...e,
11
- order: n.order || o + t.length,
11
+ order: n.order || o + r.length,
12
12
  width: n.width || e.width,
13
13
  visible: n.visible,
14
14
  sticky: n.sticky
15
15
  } : e;
16
- })), t.filter((e) => e.visible).length > c) {
16
+ })), r.filter((e) => e.visible).length > c) {
17
17
  let e = 0;
18
- t = t.map((o) => {
18
+ r = r.map((o) => {
19
19
  if (o.visible) {
20
20
  const n = e < c;
21
21
  return e++, { ...o, visible: n };
@@ -23,24 +23,25 @@ const b = (r, s, t = "asc") => [...r].sort((c, l) => {
23
23
  return o;
24
24
  });
25
25
  }
26
- const i = b(t, "order", "asc"), a = i.filter((e) => e?.sticky)?.filter((e) => e.accessor);
26
+ const i = b(r, "order", "asc"), a = i.filter((e) => e?.sticky)?.filter((e) => e.accessor);
27
27
  return [...i.filter((e) => !e?.sticky)?.filter((e) => e.accessor), ...a];
28
- }, p = (r) => r && r?.trim()?.replace(/^\*+|\*+$/g, "")?.replace(/[-/\\^$+?.()|[\]{}]/g, "\\$&")?.replace(/\*/g, ".") || "", m = (r, s) => {
29
- if (!r || !s) return "";
28
+ }, p = (t, s) => !t?.id || t.id === "untitled-view" ? !0 : t.created_by === s, m = (t) => t && t?.trim()?.replace(/^\*+|\*+$/g, "")?.replace(/[-/\\^$+?.()|[\]{}]/g, "\\$&")?.replace(/\*/g, ".") || "", v = (t, s) => {
29
+ if (!t || !s) return "";
30
30
  try {
31
- let t = r;
32
- const c = /{{([^}]+)}}/g, l = r.match(c);
31
+ let r = t;
32
+ const c = /{{([^}]+)}}/g, l = t.match(c);
33
33
  return l && s && l.forEach((i) => {
34
34
  const a = i.slice(2, -2).trim(), d = s[a];
35
- d != null && (t = t.replace(i, String(d)));
36
- }), t;
35
+ d != null && (r = r.replace(i, String(d)));
36
+ }), r;
37
37
  } catch {
38
38
  return "";
39
39
  }
40
40
  };
41
41
  export {
42
- p as escapeRegExp,
42
+ p as canEditTableView,
43
+ m as escapeRegExp,
43
44
  f as mergeViewColumnsWithTableColumns,
44
- m as parseMasterDataFormula
45
+ v as parseMasterDataFormula
45
46
  };
46
47
  //# sourceMappingURL=table.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.es.js","sources":["../../src/utils/table.ts"],"sourcesContent":["import type { IColumn } from '../components/data-display/infinite-table/types';\n\nconst sortArrayOfObject = <T,>(arr: T[], key: string, order: 'asc' | 'desc' = 'asc'): T[] => {\n return [...arr].sort((a, b) => {\n const aVal = ((a as Record<string, unknown>)[key] as number) ?? 0;\n const bVal = ((b as Record<string, unknown>)[key] as number) ?? 0;\n return order === 'asc' ? aVal - bVal : bVal - aVal;\n });\n};\n\nexport const mergeViewColumnsWithTableColumns = (viewColumns: IColumn[], tableColumns: IColumn[]) => {\n let updatedHeaders: IColumn[] = tableColumns;\n const MAX_VISIBLE_COLUMNS = 30;\n\n if (viewColumns?.length) {\n updatedHeaders = updatedHeaders?.map((item, index) => {\n const findHeader = viewColumns.find((_item) => _item.name === item.Header);\n if (findHeader) {\n return {\n ...item,\n order: findHeader.order || index + updatedHeaders.length,\n width: findHeader.width || item.width,\n visible: findHeader.visible,\n sticky: findHeader.sticky,\n };\n }\n return item;\n });\n }\n\n const visibleColumns = updatedHeaders.filter((header) => header.visible);\n\n if (visibleColumns.length > MAX_VISIBLE_COLUMNS) {\n let visibleCount = 0;\n updatedHeaders = updatedHeaders.map((header) => {\n if (header.visible) {\n const shouldBeVisible = visibleCount < MAX_VISIBLE_COLUMNS;\n visibleCount++;\n return { ...header, visible: shouldBeVisible };\n }\n return header;\n });\n }\n\n const sortedHeaders = sortArrayOfObject(updatedHeaders, 'order', 'asc');\n\n const stickyHeaders = sortedHeaders.filter((item) => item?.sticky)?.filter((_th) => _th.accessor);\n const nonStickyHeaders = sortedHeaders.filter((item) => !item?.sticky)?.filter((_th) => _th.accessor);\n\n return [...nonStickyHeaders, ...stickyHeaders];\n};\n\nexport const escapeRegExp = (string: string) => {\n if (!string) return '';\n const trimmed = string?.trim()?.replace(/^\\*+|\\*+$/g, '');\n const escaped = trimmed?.replace(/[-/\\\\^$+?.()|[\\]{}]/g, '\\\\$&');\n return escaped?.replace(/\\*/g, '.') || '';\n};\n\nexport const parseMasterDataFormula = (formula: string, reference: Record<string, unknown>): string => {\n if (!formula) return '';\n if (!reference) return '';\n\n try {\n let parsedFormula = formula;\n const variablePattern = /{{([^}]+)}}/g;\n const matches = formula.match(variablePattern);\n\n if (matches && reference) {\n matches.forEach((match) => {\n const variableName = match.slice(2, -2).trim();\n const variableValue = reference[variableName];\n if (variableValue !== undefined && variableValue !== null) {\n parsedFormula = parsedFormula.replace(match, String(variableValue));\n }\n });\n }\n\n return parsedFormula;\n } catch {\n return '';\n }\n};\n"],"names":["sortArrayOfObject","arr","key","order","a","b","aVal","bVal","mergeViewColumnsWithTableColumns","viewColumns","tableColumns","updatedHeaders","MAX_VISIBLE_COLUMNS","item","index","findHeader","_item","header","visibleCount","shouldBeVisible","sortedHeaders","stickyHeaders","_th","escapeRegExp","string","parseMasterDataFormula","formula","reference","parsedFormula","variablePattern","matches","match","variableName","variableValue"],"mappings":"AAEA,MAAMA,IAAoB,CAAKC,GAAUC,GAAaC,IAAwB,UACrE,CAAC,GAAGF,CAAG,EAAE,KAAK,CAACG,GAAGC,MAAM;AAC7B,QAAMC,IAASF,EAA8BF,CAAG,KAAgB,GAC1DK,IAASF,EAA8BH,CAAG,KAAgB;AAChE,SAAOC,MAAU,QAAQG,IAAOC,IAAOA,IAAOD;AAChD,CAAC,GAGUE,IAAmC,CAACC,GAAwBC,MAA4B;AACnG,MAAIC,IAA4BD;AAChC,QAAME,IAAsB;AAoB5B,MAlBIH,GAAa,WACfE,IAAiBA,GAAgB,IAAI,CAACE,GAAMC,MAAU;AACpD,UAAMC,IAAaN,EAAY,KAAK,CAACO,MAAUA,EAAM,SAASH,EAAK,MAAM;AACzE,WAAIE,IACK;AAAA,MACL,GAAGF;AAAA,MACH,OAAOE,EAAW,SAASD,IAAQH,EAAe;AAAA,MAClD,OAAOI,EAAW,SAASF,EAAK;AAAA,MAChC,SAASE,EAAW;AAAA,MACpB,QAAQA,EAAW;AAAA,IAAA,IAGhBF;AAAA,EACT,CAAC,IAGoBF,EAAe,OAAO,CAACM,MAAWA,EAAO,OAAO,EAEpD,SAASL,GAAqB;AAC/C,QAAIM,IAAe;AACnB,IAAAP,IAAiBA,EAAe,IAAI,CAACM,MAAW;AAC9C,UAAIA,EAAO,SAAS;AAClB,cAAME,IAAkBD,IAAeN;AACvC,eAAAM,KACO,EAAE,GAAGD,GAAQ,SAASE,EAAA;AAAA,MAC/B;AACA,aAAOF;AAAA,IACT,CAAC;AAAA,EACH;AAEA,QAAMG,IAAgBpB,EAAkBW,GAAgB,SAAS,KAAK,GAEhEU,IAAgBD,EAAc,OAAO,CAACP,MAASA,GAAM,MAAM,GAAG,OAAO,CAACS,MAAQA,EAAI,QAAQ;AAGhG,SAAO,CAAC,GAFiBF,EAAc,OAAO,CAACP,MAAS,CAACA,GAAM,MAAM,GAAG,OAAO,CAACS,MAAQA,EAAI,QAAQ,GAEvE,GAAGD,CAAa;AAC/C,GAEaE,IAAe,CAACC,MACtBA,KACWA,GAAQ,KAAA,GAAQ,QAAQ,cAAc,EAAE,GAC/B,QAAQ,wBAAwB,MAAM,GAC/C,QAAQ,OAAO,GAAG,KAAK,IAG5BC,IAAyB,CAACC,GAAiBC,MAA+C;AAErG,MADI,CAACD,KACD,CAACC,EAAW,QAAO;AAEvB,MAAI;AACF,QAAIC,IAAgBF;AACpB,UAAMG,IAAkB,gBAClBC,IAAUJ,EAAQ,MAAMG,CAAe;AAE7C,WAAIC,KAAWH,KACbG,EAAQ,QAAQ,CAACC,MAAU;AACzB,YAAMC,IAAeD,EAAM,MAAM,GAAG,EAAE,EAAE,KAAA,GAClCE,IAAgBN,EAAUK,CAAY;AAC5C,MAAmCC,KAAkB,SACnDL,IAAgBA,EAAc,QAAQG,GAAO,OAAOE,CAAa,CAAC;AAAA,IAEtE,CAAC,GAGIL;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;"}
1
+ {"version":3,"file":"table.es.js","sources":["../../src/utils/table.ts"],"sourcesContent":["import type { IColumn, ITableView } from '../components/data-display/infinite-table/types';\n\nconst sortArrayOfObject = <T,>(arr: T[], key: string, order: 'asc' | 'desc' = 'asc'): T[] => {\n return [...arr].sort((a, b) => {\n const aVal = ((a as Record<string, unknown>)[key] as number) ?? 0;\n const bVal = ((b as Record<string, unknown>)[key] as number) ?? 0;\n return order === 'asc' ? aVal - bVal : bVal - aVal;\n });\n};\n\nexport const mergeViewColumnsWithTableColumns = (viewColumns: IColumn[], tableColumns: IColumn[]) => {\n let updatedHeaders: IColumn[] = tableColumns;\n const MAX_VISIBLE_COLUMNS = 30;\n\n if (viewColumns?.length) {\n updatedHeaders = updatedHeaders?.map((item, index) => {\n const findHeader = viewColumns.find((_item) => _item.name === item.Header);\n if (findHeader) {\n return {\n ...item,\n order: findHeader.order || index + updatedHeaders.length,\n width: findHeader.width || item.width,\n visible: findHeader.visible,\n sticky: findHeader.sticky,\n };\n }\n return item;\n });\n }\n\n const visibleColumns = updatedHeaders.filter((header) => header.visible);\n\n if (visibleColumns.length > MAX_VISIBLE_COLUMNS) {\n let visibleCount = 0;\n updatedHeaders = updatedHeaders.map((header) => {\n if (header.visible) {\n const shouldBeVisible = visibleCount < MAX_VISIBLE_COLUMNS;\n visibleCount++;\n return { ...header, visible: shouldBeVisible };\n }\n return header;\n });\n }\n\n const sortedHeaders = sortArrayOfObject(updatedHeaders, 'order', 'asc');\n\n const stickyHeaders = sortedHeaders.filter((item) => item?.sticky)?.filter((_th) => _th.accessor);\n const nonStickyHeaders = sortedHeaders.filter((item) => !item?.sticky)?.filter((_th) => _th.accessor);\n\n return [...nonStickyHeaders, ...stickyHeaders];\n};\n\n// A view that hasn't been persisted yet (no id, or the local \"untitled-view\" draft) is always\n// editable — it's the current user's own in-progress draft. Any persisted view (including a\n// global/shared view with no individual owner, i.e. created_by is null) can only be edited by\n// the user who created it.\nexport const canEditTableView = (view?: ITableView | null, userId?: string): boolean => {\n if (!view?.id || view.id === 'untitled-view') return true;\n return view.created_by === userId;\n};\n\nexport const escapeRegExp = (string: string) => {\n if (!string) return '';\n const trimmed = string?.trim()?.replace(/^\\*+|\\*+$/g, '');\n const escaped = trimmed?.replace(/[-/\\\\^$+?.()|[\\]{}]/g, '\\\\$&');\n return escaped?.replace(/\\*/g, '.') || '';\n};\n\nexport const parseMasterDataFormula = (formula: string, reference: Record<string, unknown>): string => {\n if (!formula) return '';\n if (!reference) return '';\n\n try {\n let parsedFormula = formula;\n const variablePattern = /{{([^}]+)}}/g;\n const matches = formula.match(variablePattern);\n\n if (matches && reference) {\n matches.forEach((match) => {\n const variableName = match.slice(2, -2).trim();\n const variableValue = reference[variableName];\n if (variableValue !== undefined && variableValue !== null) {\n parsedFormula = parsedFormula.replace(match, String(variableValue));\n }\n });\n }\n\n return parsedFormula;\n } catch {\n return '';\n }\n};\n"],"names":["sortArrayOfObject","arr","key","order","a","b","aVal","bVal","mergeViewColumnsWithTableColumns","viewColumns","tableColumns","updatedHeaders","MAX_VISIBLE_COLUMNS","item","index","findHeader","_item","header","visibleCount","shouldBeVisible","sortedHeaders","stickyHeaders","_th","canEditTableView","view","userId","escapeRegExp","string","parseMasterDataFormula","formula","reference","parsedFormula","variablePattern","matches","match","variableName","variableValue"],"mappings":"AAEA,MAAMA,IAAoB,CAAKC,GAAUC,GAAaC,IAAwB,UACrE,CAAC,GAAGF,CAAG,EAAE,KAAK,CAACG,GAAGC,MAAM;AAC7B,QAAMC,IAASF,EAA8BF,CAAG,KAAgB,GAC1DK,IAASF,EAA8BH,CAAG,KAAgB;AAChE,SAAOC,MAAU,QAAQG,IAAOC,IAAOA,IAAOD;AAChD,CAAC,GAGUE,IAAmC,CAACC,GAAwBC,MAA4B;AACnG,MAAIC,IAA4BD;AAChC,QAAME,IAAsB;AAoB5B,MAlBIH,GAAa,WACfE,IAAiBA,GAAgB,IAAI,CAACE,GAAMC,MAAU;AACpD,UAAMC,IAAaN,EAAY,KAAK,CAACO,MAAUA,EAAM,SAASH,EAAK,MAAM;AACzE,WAAIE,IACK;AAAA,MACL,GAAGF;AAAA,MACH,OAAOE,EAAW,SAASD,IAAQH,EAAe;AAAA,MAClD,OAAOI,EAAW,SAASF,EAAK;AAAA,MAChC,SAASE,EAAW;AAAA,MACpB,QAAQA,EAAW;AAAA,IAAA,IAGhBF;AAAA,EACT,CAAC,IAGoBF,EAAe,OAAO,CAACM,MAAWA,EAAO,OAAO,EAEpD,SAASL,GAAqB;AAC/C,QAAIM,IAAe;AACnB,IAAAP,IAAiBA,EAAe,IAAI,CAACM,MAAW;AAC9C,UAAIA,EAAO,SAAS;AAClB,cAAME,IAAkBD,IAAeN;AACvC,eAAAM,KACO,EAAE,GAAGD,GAAQ,SAASE,EAAA;AAAA,MAC/B;AACA,aAAOF;AAAA,IACT,CAAC;AAAA,EACH;AAEA,QAAMG,IAAgBpB,EAAkBW,GAAgB,SAAS,KAAK,GAEhEU,IAAgBD,EAAc,OAAO,CAACP,MAASA,GAAM,MAAM,GAAG,OAAO,CAACS,MAAQA,EAAI,QAAQ;AAGhG,SAAO,CAAC,GAFiBF,EAAc,OAAO,CAACP,MAAS,CAACA,GAAM,MAAM,GAAG,OAAO,CAACS,MAAQA,EAAI,QAAQ,GAEvE,GAAGD,CAAa;AAC/C,GAMaE,IAAmB,CAACC,GAA0BC,MACrD,CAACD,GAAM,MAAMA,EAAK,OAAO,kBAAwB,KAC9CA,EAAK,eAAeC,GAGhBC,IAAe,CAACC,MACtBA,KACWA,GAAQ,KAAA,GAAQ,QAAQ,cAAc,EAAE,GAC/B,QAAQ,wBAAwB,MAAM,GAC/C,QAAQ,OAAO,GAAG,KAAK,IAG5BC,IAAyB,CAACC,GAAiBC,MAA+C;AAErG,MADI,CAACD,KACD,CAACC,EAAW,QAAO;AAEvB,MAAI;AACF,QAAIC,IAAgBF;AACpB,UAAMG,IAAkB,gBAClBC,IAAUJ,EAAQ,MAAMG,CAAe;AAE7C,WAAIC,KAAWH,KACbG,EAAQ,QAAQ,CAACC,MAAU;AACzB,YAAMC,IAAeD,EAAM,MAAM,GAAG,EAAE,EAAE,KAAA,GAClCE,IAAgBN,EAAUK,CAAY;AAC5C,MAAmCC,KAAkB,SACnDL,IAAgBA,EAAc,QAAQG,GAAO,OAAOE,CAAa,CAAC;AAAA,IAEtE,CAAC,GAGIL;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lax-wp/design-system",
3
3
  "private": false,
4
- "version": "0.13.41",
4
+ "version": "0.13.43",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.es.js",