diff --git a/rsconcept/frontend/src/components/select/MiniSelectorOSS.tsx b/rsconcept/frontend/src/components/select/MiniSelectorOSS.tsx index cf5480c2..151d5691 100644 --- a/rsconcept/frontend/src/components/select/MiniSelectorOSS.tsx +++ b/rsconcept/frontend/src/components/select/MiniSelectorOSS.tsx @@ -1,5 +1,7 @@ 'use client'; +import clsx from 'clsx'; + import { IconOSS } from '@/components/Icons'; import { CProps } from '@/components/props'; import Dropdown from '@/components/ui/Dropdown'; @@ -10,12 +12,12 @@ import useDropdown from '@/hooks/useDropdown'; import { ILibraryItemReference } from '@/models/library'; import { prefixes } from '@/utils/constants'; -interface MiniSelectorOSSProps { +interface MiniSelectorOSSProps extends CProps.Styling { items: ILibraryItemReference[]; onSelect: (event: CProps.EventMouse, newValue: ILibraryItemReference) => void; } -function MiniSelectorOSS({ items, onSelect }: MiniSelectorOSSProps) { +function MiniSelectorOSS({ items, onSelect, className, ...restProps }: MiniSelectorOSSProps) { const ossMenu = useDropdown(); function onToggle(event: CProps.EventMouse) { @@ -27,7 +29,7 @@ function MiniSelectorOSS({ items, onSelect }: MiniSelectorOSSProps) { } return ( -
+
} title='Операционные схемы' diff --git a/rsconcept/frontend/src/components/select/PickConstituenta.tsx b/rsconcept/frontend/src/components/select/PickConstituenta.tsx index b1080b07..365e3d06 100644 --- a/rsconcept/frontend/src/components/select/PickConstituenta.tsx +++ b/rsconcept/frontend/src/components/select/PickConstituenta.tsx @@ -1,5 +1,6 @@ 'use client'; +import clsx from 'clsx'; import { useEffect, useMemo, useState } from 'react'; import DataTable, { createColumnHelper, IConditionalStyle } from '@/components/ui/DataTable'; @@ -12,9 +13,10 @@ import { prefixes } from '@/utils/constants'; import { describeConstituenta } from '@/utils/labels'; import BadgeConstituenta from '../info/BadgeConstituenta'; +import { CProps } from '../props'; import NoData from '../ui/NoData'; -interface PickConstituentaProps { +interface PickConstituentaProps extends CProps.Styling { id?: string; prefixID: string; data?: IConstituenta[]; @@ -41,7 +43,9 @@ function PickConstituenta({ describeFunc = describeConstituenta, matchFunc = (cst, filter) => matchConstituenta(cst, filter, CstMatchMode.ALL), onBeginFilter, - onSelectValue + onSelectValue, + className, + ...restProps }: PickConstituentaProps) { const { colors } = useConceptOptions(); const [filteredData, setFilteredData] = useState([]); @@ -89,7 +93,7 @@ function PickConstituenta({ ); return ( -
+
({}); @@ -120,7 +123,7 @@ function PickMultiConstituenta({ ); return ( -
+
{data.length > 0 ? `Выбраны ${selected.length} из ${data.length}` : 'Конституенты'} @@ -147,7 +150,7 @@ function PickMultiConstituenta({ noFooter rows={rows} contentHeight='1.3rem' - className={clsx('cc-scroll-y', 'text-sm', 'select-none')} + className='cc-scroll-y text-sm select-none rounded-b-md' data={filtered} columns={columns} headPosition='0rem' diff --git a/rsconcept/frontend/src/components/select/PickMultiOperation.tsx b/rsconcept/frontend/src/components/select/PickMultiOperation.tsx index 80f4600d..447a8d9c 100644 --- a/rsconcept/frontend/src/components/select/PickMultiOperation.tsx +++ b/rsconcept/frontend/src/components/select/PickMultiOperation.tsx @@ -1,5 +1,6 @@ 'use client'; +import clsx from 'clsx'; import { useCallback, useMemo, useState } from 'react'; import { IconMoveDown, IconMoveUp, IconRemove } from '@/components/Icons'; @@ -9,7 +10,9 @@ import MiniButton from '@/components/ui/MiniButton'; import NoData from '@/components/ui/NoData'; import { IOperation, OperationID } from '@/models/oss'; -interface PickMultiOperationProps { +import { CProps } from '../props'; + +interface PickMultiOperationProps extends CProps.Styling { rows?: number; items: IOperation[]; @@ -19,7 +22,7 @@ interface PickMultiOperationProps { const columnHelper = createColumnHelper(); -function PickMultiOperation({ rows, items, selected, setSelected }: PickMultiOperationProps) { +function PickMultiOperation({ rows, items, selected, setSelected, className, ...restProps }: PickMultiOperationProps) { const selectedItems = useMemo( () => selected.map(itemID => items.find(item => item.id === itemID)!), [items, selected] @@ -124,7 +127,10 @@ function PickMultiOperation({ rows, items, selected, setSelected }: PickMultiOpe ); return ( -
+
-
+
+
setFilterText(newValue)} diff --git a/rsconcept/frontend/src/components/select/PickSubstitutions.tsx b/rsconcept/frontend/src/components/select/PickSubstitutions.tsx index a74be64c..6db21427 100644 --- a/rsconcept/frontend/src/components/select/PickSubstitutions.tsx +++ b/rsconcept/frontend/src/components/select/PickSubstitutions.tsx @@ -1,5 +1,6 @@ 'use client'; +import clsx from 'clsx'; import { useCallback, useMemo, useState } from 'react'; import { toast } from 'react-toastify'; @@ -14,10 +15,11 @@ import { ConstituentaID, IConstituenta, IRSForm } from '@/models/rsform'; import { errors } from '@/utils/labels'; import { IconAccept, IconPageLeft, IconPageRight, IconRemove, IconReplace } from '../Icons'; +import { CProps } from '../props'; import NoData from '../ui/NoData'; import SelectLibraryItem from './SelectLibraryItem'; -interface PickSubstitutionsProps { +interface PickSubstitutionsProps extends CProps.Styling { substitutions: ICstSubstitute[]; setSubstitutions: React.Dispatch>; suggestions?: ICstSubstitute[]; @@ -40,7 +42,9 @@ function PickSubstitutions({ rows, schemas, filter, - allowSelfSubstitution + allowSelfSubstitution, + className, + ...restProps }: PickSubstitutionsProps) { const { colors } = useConceptOptions(); @@ -257,9 +261,9 @@ function PickSubstitutions({ ); return ( -
+
-
+
-
+
void; disabled?: boolean; stretchLeft?: boolean; } -function SelectAccessPolicy({ value, disabled, stretchLeft, onChange }: SelectAccessPolicyProps) { +function SelectAccessPolicy({ value, disabled, stretchLeft, onChange, ...restProps }: SelectAccessPolicyProps) { const menu = useDropdown(); const handleChange = useCallback( @@ -33,7 +34,7 @@ function SelectAccessPolicy({ value, disabled, stretchLeft, onChange }: SelectAc ); return ( -
+
void; } -function SelectGraphFilter({ value, dense, onChange }: SelectGraphFilterProps) { +function SelectGraphFilter({ value, dense, onChange, ...restProps }: SelectGraphFilterProps) { const menu = useDropdown(); const size = useWindowSize(); @@ -32,7 +33,7 @@ function SelectGraphFilter({ value, dense, onChange }: SelectGraphFilterProps) { ); return ( -
+
void; disabled?: boolean; stretchLeft?: boolean; } -function SelectItemType({ value, disabled, stretchLeft, onChange }: SelectItemTypeProps) { +function SelectItemType({ value, disabled, stretchLeft, onChange, ...restProps }: SelectItemTypeProps) { const menu = useDropdown(); const handleChange = useCallback( @@ -33,7 +34,7 @@ function SelectItemType({ value, disabled, stretchLeft, onChange }: SelectItemTy ); return ( -
+
void; excluded?: LocationHead[]; } -function SelectLocationHead({ value, excluded = [], onChange }: SelectLocationHeadProps) { +function SelectLocationHead({ value, excluded = [], onChange, className, ...restProps }: SelectLocationHeadProps) { const menu = useDropdown(); const handleChange = useCallback( @@ -30,7 +32,7 @@ function SelectLocationHead({ value, excluded = [], onChange }: SelectLocationHe ); return ( -
+
void; } -function SelectMatchMode({ value, dense, onChange }: SelectMatchModeProps) { +function SelectMatchMode({ value, dense, onChange, ...restProps }: SelectMatchModeProps) { const menu = useDropdown(); const size = useWindowSize(); @@ -32,7 +33,7 @@ function SelectMatchMode({ value, dense, onChange }: SelectMatchModeProps) { ); return ( -
+
>; } -function SelectWordForm({ selected, setSelected }: SelectWordFormProps) { +function SelectWordForm({ selected, setSelected, className, ...restProps }: SelectWordFormProps) { const handleSelect = useCallback( (grams: Grammeme[]) => { setSelected(SelectorGrammemes.filter(({ value }) => grams.includes(value as Grammeme))); @@ -22,7 +24,7 @@ function SelectWordForm({ selected, setSelected }: SelectWordFormProps) { ); return ( -
+
{DefaultWordForms.slice(0, 12).map((data, index) => ( partialUpdate({ prototype: cst })} prefixID={prefixes.cst_template_ist} + className='rounded-t-none' rows={8} /> +