@cloud-ru/ds-list 1.0.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/CHANGELOG.md +8 -0
- package/LICENSE +201 -0
- package/README.md +1413 -0
- package/dist/cjs/components/Items/AccordionItem/AccordionItem.d.ts +4 -0
- package/dist/cjs/components/Items/AccordionItem/AccordionItem.js +37 -0
- package/dist/cjs/components/Items/AccordionItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/AccordionItem/index.js +17 -0
- package/dist/cjs/components/Items/BaseItem/BaseItem.d.ts +24 -0
- package/dist/cjs/components/Items/BaseItem/BaseItem.js +118 -0
- package/dist/cjs/components/Items/BaseItem/constants.d.ts +3 -0
- package/dist/cjs/components/Items/BaseItem/constants.js +8 -0
- package/dist/cjs/components/Items/BaseItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/BaseItem/index.js +17 -0
- package/dist/cjs/components/Items/BaseItem/styles.module.css +312 -0
- package/dist/cjs/components/Items/GroupSelectItem/GroupSelectItem.d.ts +4 -0
- package/dist/cjs/components/Items/GroupSelectItem/GroupSelectItem.js +22 -0
- package/dist/cjs/components/Items/GroupSelectItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/GroupSelectItem/index.js +17 -0
- package/dist/cjs/components/Items/NextListItem/NextListItem.d.ts +2 -0
- package/dist/cjs/components/Items/NextListItem/NextListItem.js +71 -0
- package/dist/cjs/components/Items/NextListItem/constants.d.ts +2 -0
- package/dist/cjs/components/Items/NextListItem/constants.js +13 -0
- package/dist/cjs/components/Items/NextListItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/NextListItem/index.js +17 -0
- package/dist/cjs/components/Items/NextListItem/types.d.ts +4 -0
- package/dist/cjs/components/Items/NextListItem/types.js +2 -0
- package/dist/cjs/components/Items/PinGroupItem/PinGroupItem.d.ts +7 -0
- package/dist/cjs/components/Items/PinGroupItem/PinGroupItem.js +27 -0
- package/dist/cjs/components/Items/PinGroupItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/PinGroupItem/index.js +17 -0
- package/dist/cjs/components/Items/PinGroupItem/styles.module.css +12 -0
- package/dist/cjs/components/Items/SearchItem/SearchItem.d.ts +17 -0
- package/dist/cjs/components/Items/SearchItem/SearchItem.js +28 -0
- package/dist/cjs/components/Items/SearchItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/SearchItem/index.js +17 -0
- package/dist/cjs/components/Items/SearchItem/styles.module.css +13 -0
- package/dist/cjs/components/Items/SimpleItem/components/DragHandle/DragHandle.d.ts +7 -0
- package/dist/cjs/components/Items/SimpleItem/components/DragHandle/DragHandle.js +20 -0
- package/dist/cjs/components/Items/SimpleItem/components/DragHandle/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/DragHandle/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.d.ts +2 -0
- package/dist/cjs/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.js +9 -0
- package/dist/cjs/components/Items/SimpleItem/components/OverlayDragHandle/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/OverlayDragHandle/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.d.ts +19 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.js +52 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlock/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlock/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.d.ts +15 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.js +19 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItem/SimpleItem.d.ts +11 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItem/SimpleItem.js +48 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItem/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItem/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.d.ts +15 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.js +19 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItemOverlay/index.d.ts +1 -0
- package/dist/cjs/components/Items/SimpleItem/components/SimpleItemOverlay/index.js +17 -0
- package/dist/cjs/components/Items/SimpleItem/components/index.d.ts +4 -0
- package/dist/cjs/components/Items/SimpleItem/components/index.js +20 -0
- package/dist/cjs/components/Items/SimpleItem/constants.d.ts +7 -0
- package/dist/cjs/components/Items/SimpleItem/constants.js +9 -0
- package/dist/cjs/components/Items/SimpleItem/index.d.ts +2 -0
- package/dist/cjs/components/Items/SimpleItem/index.js +18 -0
- package/dist/cjs/components/Items/SimpleItem/styles.module.css +96 -0
- package/dist/cjs/components/Items/SimpleItem/types.d.ts +3 -0
- package/dist/cjs/components/Items/SimpleItem/types.js +2 -0
- package/dist/cjs/components/Items/SimpleItem/utils.d.ts +6 -0
- package/dist/cjs/components/Items/SimpleItem/utils.js +11 -0
- package/dist/cjs/components/Items/hooks.d.ts +23 -0
- package/dist/cjs/components/Items/hooks.js +130 -0
- package/dist/cjs/components/Items/index.d.ts +5 -0
- package/dist/cjs/components/Items/index.js +21 -0
- package/dist/cjs/components/Items/styles.module.css +168 -0
- package/dist/cjs/components/Items/types.d.ts +168 -0
- package/dist/cjs/components/Items/types.js +2 -0
- package/dist/cjs/components/Items/utils.d.ts +52 -0
- package/dist/cjs/components/Items/utils.js +218 -0
- package/dist/cjs/components/Lists/Droplist/DropList.d.ts +21 -0
- package/dist/cjs/components/Lists/Droplist/DropList.js +36 -0
- package/dist/cjs/components/Lists/Droplist/constants.d.ts +8 -0
- package/dist/cjs/components/Lists/Droplist/constants.js +10 -0
- package/dist/cjs/components/Lists/Droplist/index.d.ts +1 -0
- package/dist/cjs/components/Lists/Droplist/index.js +17 -0
- package/dist/cjs/components/Lists/List/List.d.ts +61 -0
- package/dist/cjs/components/Lists/List/List.js +62 -0
- package/dist/cjs/components/Lists/List/index.d.ts +1 -0
- package/dist/cjs/components/Lists/List/index.js +17 -0
- package/dist/cjs/components/Lists/ListPrivate/ListPrivate.d.ts +18 -0
- package/dist/cjs/components/Lists/ListPrivate/ListPrivate.js +301 -0
- package/dist/cjs/components/Lists/ListPrivate/constants.d.ts +7 -0
- package/dist/cjs/components/Lists/ListPrivate/constants.js +19 -0
- package/dist/cjs/components/Lists/ListPrivate/index.d.ts +1 -0
- package/dist/cjs/components/Lists/ListPrivate/index.js +17 -0
- package/dist/cjs/components/Lists/ListPrivate/styles.module.css +80 -0
- package/dist/cjs/components/Lists/contexts/CollapseProvider.d.ts +17 -0
- package/dist/cjs/components/Lists/contexts/CollapseProvider.js +10 -0
- package/dist/cjs/components/Lists/contexts/FocusListProvider.d.ts +9 -0
- package/dist/cjs/components/Lists/contexts/FocusListProvider.js +9 -0
- package/dist/cjs/components/Lists/contexts/NewListProvider.d.ts +33 -0
- package/dist/cjs/components/Lists/contexts/NewListProvider.js +23 -0
- package/dist/cjs/components/Lists/contexts/OpenListProvider.d.ts +6 -0
- package/dist/cjs/components/Lists/contexts/OpenListProvider.js +10 -0
- package/dist/cjs/components/Lists/contexts/SelectionProvider.d.ts +74 -0
- package/dist/cjs/components/Lists/contexts/SelectionProvider.js +90 -0
- package/dist/cjs/components/Lists/contexts/index.d.ts +5 -0
- package/dist/cjs/components/Lists/contexts/index.js +21 -0
- package/dist/cjs/components/Lists/hooks.d.ts +83 -0
- package/dist/cjs/components/Lists/hooks.js +242 -0
- package/dist/cjs/components/Lists/index.d.ts +5 -0
- package/dist/cjs/components/Lists/index.js +21 -0
- package/dist/cjs/components/Lists/styles.module.css +65 -0
- package/dist/cjs/components/Lists/types.d.ts +200 -0
- package/dist/cjs/components/Lists/types.js +2 -0
- package/dist/cjs/components/Lists/utils.d.ts +8 -0
- package/dist/cjs/components/Lists/utils.js +31 -0
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/index.js +18 -0
- package/dist/cjs/constants.d.ts +48 -0
- package/dist/cjs/constants.js +51 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.d.ts +9 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.js +15 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/index.d.ts +1 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/index.js +17 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/styles.module.css +27 -0
- package/dist/cjs/helperComponents/DesktopDroplist/DesktopDroplist.d.ts +7 -0
- package/dist/cjs/helperComponents/DesktopDroplist/DesktopDroplist.js +142 -0
- package/dist/cjs/helperComponents/DesktopDroplist/index.d.ts +1 -0
- package/dist/cjs/helperComponents/DesktopDroplist/index.js +17 -0
- package/dist/cjs/helperComponents/HiddenTabButton/HiddenTabButton.d.ts +7 -0
- package/dist/cjs/helperComponents/HiddenTabButton/HiddenTabButton.js +20 -0
- package/dist/cjs/helperComponents/HiddenTabButton/index.d.ts +1 -0
- package/dist/cjs/helperComponents/HiddenTabButton/index.js +17 -0
- package/dist/cjs/helperComponents/HiddenTabButton/styles.module.css +9 -0
- package/dist/cjs/helperComponents/ItemContent/ItemContent.d.ts +17 -0
- package/dist/cjs/helperComponents/ItemContent/ItemContent.js +27 -0
- package/dist/cjs/helperComponents/ItemContent/index.d.ts +1 -0
- package/dist/cjs/helperComponents/ItemContent/index.js +17 -0
- package/dist/cjs/helperComponents/ItemContent/styles.module.css +139 -0
- package/dist/cjs/helperComponents/ListEmptyState/ListEmptyState.d.ts +16 -0
- package/dist/cjs/helperComponents/ListEmptyState/ListEmptyState.js +25 -0
- package/dist/cjs/helperComponents/ListEmptyState/hooks.d.ts +10 -0
- package/dist/cjs/helperComponents/ListEmptyState/hooks.js +30 -0
- package/dist/cjs/helperComponents/ListEmptyState/index.d.ts +2 -0
- package/dist/cjs/helperComponents/ListEmptyState/index.js +20 -0
- package/dist/cjs/helperComponents/ListEmptyState/styles.module.css +8 -0
- package/dist/cjs/helperComponents/MobileDroplist/MobileDroplist.d.ts +9 -0
- package/dist/cjs/helperComponents/MobileDroplist/MobileDroplist.js +143 -0
- package/dist/cjs/helperComponents/MobileDroplist/MobileDroplist.module.css +16 -0
- package/dist/cjs/helperComponents/MobileDroplist/index.d.ts +1 -0
- package/dist/cjs/helperComponents/MobileDroplist/index.js +17 -0
- package/dist/cjs/helperComponents/MobileDroplist/utils.d.ts +11 -0
- package/dist/cjs/helperComponents/MobileDroplist/utils.js +65 -0
- package/dist/cjs/helperComponents/Separator/Separator.d.ts +20 -0
- package/dist/cjs/helperComponents/Separator/Separator.js +40 -0
- package/dist/cjs/helperComponents/Separator/constants.d.ts +3 -0
- package/dist/cjs/helperComponents/Separator/constants.js +10 -0
- package/dist/cjs/helperComponents/Separator/index.d.ts +1 -0
- package/dist/cjs/helperComponents/Separator/index.js +17 -0
- package/dist/cjs/helperComponents/Separator/styles.module.css +168 -0
- package/dist/cjs/helperComponents/index.d.ts +5 -0
- package/dist/cjs/helperComponents/index.js +21 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/locale/index.d.ts +79 -0
- package/dist/cjs/locale/index.js +44 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/style.css +1113 -0
- package/dist/cjs/types.d.ts +38 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/utils.d.ts +18 -0
- package/dist/cjs/utils.js +26 -0
- package/dist/esm/components/Items/AccordionItem/AccordionItem.d.ts +4 -0
- package/dist/esm/components/Items/AccordionItem/AccordionItem.js +34 -0
- package/dist/esm/components/Items/AccordionItem/index.d.ts +1 -0
- package/dist/esm/components/Items/AccordionItem/index.js +1 -0
- package/dist/esm/components/Items/BaseItem/BaseItem.d.ts +24 -0
- package/dist/esm/components/Items/BaseItem/BaseItem.js +112 -0
- package/dist/esm/components/Items/BaseItem/constants.d.ts +3 -0
- package/dist/esm/components/Items/BaseItem/constants.js +5 -0
- package/dist/esm/components/Items/BaseItem/index.d.ts +1 -0
- package/dist/esm/components/Items/BaseItem/index.js +1 -0
- package/dist/esm/components/Items/BaseItem/styles.module.css +312 -0
- package/dist/esm/components/Items/GroupSelectItem/GroupSelectItem.d.ts +4 -0
- package/dist/esm/components/Items/GroupSelectItem/GroupSelectItem.js +19 -0
- package/dist/esm/components/Items/GroupSelectItem/index.d.ts +1 -0
- package/dist/esm/components/Items/GroupSelectItem/index.js +1 -0
- package/dist/esm/components/Items/NextListItem/NextListItem.d.ts +2 -0
- package/dist/esm/components/Items/NextListItem/NextListItem.js +68 -0
- package/dist/esm/components/Items/NextListItem/constants.d.ts +2 -0
- package/dist/esm/components/Items/NextListItem/constants.js +10 -0
- package/dist/esm/components/Items/NextListItem/index.d.ts +1 -0
- package/dist/esm/components/Items/NextListItem/index.js +1 -0
- package/dist/esm/components/Items/NextListItem/types.d.ts +4 -0
- package/dist/esm/components/Items/NextListItem/types.js +1 -0
- package/dist/esm/components/Items/PinGroupItem/PinGroupItem.d.ts +7 -0
- package/dist/esm/components/Items/PinGroupItem/PinGroupItem.js +20 -0
- package/dist/esm/components/Items/PinGroupItem/index.d.ts +1 -0
- package/dist/esm/components/Items/PinGroupItem/index.js +1 -0
- package/dist/esm/components/Items/PinGroupItem/styles.module.css +12 -0
- package/dist/esm/components/Items/SearchItem/SearchItem.d.ts +17 -0
- package/dist/esm/components/Items/SearchItem/SearchItem.js +22 -0
- package/dist/esm/components/Items/SearchItem/index.d.ts +1 -0
- package/dist/esm/components/Items/SearchItem/index.js +1 -0
- package/dist/esm/components/Items/SearchItem/styles.module.css +13 -0
- package/dist/esm/components/Items/SimpleItem/components/DragHandle/DragHandle.d.ts +7 -0
- package/dist/esm/components/Items/SimpleItem/components/DragHandle/DragHandle.js +14 -0
- package/dist/esm/components/Items/SimpleItem/components/DragHandle/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/DragHandle/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.d.ts +2 -0
- package/dist/esm/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.js +6 -0
- package/dist/esm/components/Items/SimpleItem/components/OverlayDragHandle/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/OverlayDragHandle/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.d.ts +19 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.js +46 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlock/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlock/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.d.ts +15 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.js +13 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItem/SimpleItem.d.ts +11 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItem/SimpleItem.js +42 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItem/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItem/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.d.ts +15 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.js +13 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItemOverlay/index.d.ts +1 -0
- package/dist/esm/components/Items/SimpleItem/components/SimpleItemOverlay/index.js +1 -0
- package/dist/esm/components/Items/SimpleItem/components/index.d.ts +4 -0
- package/dist/esm/components/Items/SimpleItem/components/index.js +4 -0
- package/dist/esm/components/Items/SimpleItem/constants.d.ts +7 -0
- package/dist/esm/components/Items/SimpleItem/constants.js +6 -0
- package/dist/esm/components/Items/SimpleItem/index.d.ts +2 -0
- package/dist/esm/components/Items/SimpleItem/index.js +2 -0
- package/dist/esm/components/Items/SimpleItem/styles.module.css +96 -0
- package/dist/esm/components/Items/SimpleItem/types.d.ts +3 -0
- package/dist/esm/components/Items/SimpleItem/types.js +1 -0
- package/dist/esm/components/Items/SimpleItem/utils.d.ts +6 -0
- package/dist/esm/components/Items/SimpleItem/utils.js +8 -0
- package/dist/esm/components/Items/hooks.d.ts +23 -0
- package/dist/esm/components/Items/hooks.js +125 -0
- package/dist/esm/components/Items/index.d.ts +5 -0
- package/dist/esm/components/Items/index.js +5 -0
- package/dist/esm/components/Items/styles.module.css +168 -0
- package/dist/esm/components/Items/types.d.ts +168 -0
- package/dist/esm/components/Items/types.js +1 -0
- package/dist/esm/components/Items/utils.d.ts +52 -0
- package/dist/esm/components/Items/utils.js +203 -0
- package/dist/esm/components/Lists/Droplist/DropList.d.ts +21 -0
- package/dist/esm/components/Lists/Droplist/DropList.js +32 -0
- package/dist/esm/components/Lists/Droplist/constants.d.ts +8 -0
- package/dist/esm/components/Lists/Droplist/constants.js +7 -0
- package/dist/esm/components/Lists/Droplist/index.d.ts +1 -0
- package/dist/esm/components/Lists/Droplist/index.js +1 -0
- package/dist/esm/components/Lists/List/List.d.ts +61 -0
- package/dist/esm/components/Lists/List/List.js +56 -0
- package/dist/esm/components/Lists/List/index.d.ts +1 -0
- package/dist/esm/components/Lists/List/index.js +1 -0
- package/dist/esm/components/Lists/ListPrivate/ListPrivate.d.ts +18 -0
- package/dist/esm/components/Lists/ListPrivate/ListPrivate.js +295 -0
- package/dist/esm/components/Lists/ListPrivate/constants.d.ts +7 -0
- package/dist/esm/components/Lists/ListPrivate/constants.js +16 -0
- package/dist/esm/components/Lists/ListPrivate/index.d.ts +1 -0
- package/dist/esm/components/Lists/ListPrivate/index.js +1 -0
- package/dist/esm/components/Lists/ListPrivate/styles.module.css +80 -0
- package/dist/esm/components/Lists/contexts/CollapseProvider.d.ts +17 -0
- package/dist/esm/components/Lists/contexts/CollapseProvider.js +5 -0
- package/dist/esm/components/Lists/contexts/FocusListProvider.d.ts +9 -0
- package/dist/esm/components/Lists/contexts/FocusListProvider.js +5 -0
- package/dist/esm/components/Lists/contexts/NewListProvider.d.ts +33 -0
- package/dist/esm/components/Lists/contexts/NewListProvider.js +18 -0
- package/dist/esm/components/Lists/contexts/OpenListProvider.d.ts +6 -0
- package/dist/esm/components/Lists/contexts/OpenListProvider.js +6 -0
- package/dist/esm/components/Lists/contexts/SelectionProvider.d.ts +74 -0
- package/dist/esm/components/Lists/contexts/SelectionProvider.js +83 -0
- package/dist/esm/components/Lists/contexts/index.d.ts +5 -0
- package/dist/esm/components/Lists/contexts/index.js +5 -0
- package/dist/esm/components/Lists/hooks.d.ts +83 -0
- package/dist/esm/components/Lists/hooks.js +238 -0
- package/dist/esm/components/Lists/index.d.ts +5 -0
- package/dist/esm/components/Lists/index.js +5 -0
- package/dist/esm/components/Lists/styles.module.css +65 -0
- package/dist/esm/components/Lists/types.d.ts +200 -0
- package/dist/esm/components/Lists/types.js +1 -0
- package/dist/esm/components/Lists/utils.d.ts +8 -0
- package/dist/esm/components/Lists/utils.js +28 -0
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/constants.d.ts +48 -0
- package/dist/esm/constants.js +48 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.d.ts +9 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.js +9 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/index.d.ts +1 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/index.js +1 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/styles.module.css +27 -0
- package/dist/esm/helperComponents/DesktopDroplist/DesktopDroplist.d.ts +7 -0
- package/dist/esm/helperComponents/DesktopDroplist/DesktopDroplist.js +136 -0
- package/dist/esm/helperComponents/DesktopDroplist/index.d.ts +1 -0
- package/dist/esm/helperComponents/DesktopDroplist/index.js +1 -0
- package/dist/esm/helperComponents/HiddenTabButton/HiddenTabButton.d.ts +7 -0
- package/dist/esm/helperComponents/HiddenTabButton/HiddenTabButton.js +14 -0
- package/dist/esm/helperComponents/HiddenTabButton/index.d.ts +1 -0
- package/dist/esm/helperComponents/HiddenTabButton/index.js +1 -0
- package/dist/esm/helperComponents/HiddenTabButton/styles.module.css +9 -0
- package/dist/esm/helperComponents/ItemContent/ItemContent.d.ts +17 -0
- package/dist/esm/helperComponents/ItemContent/ItemContent.js +21 -0
- package/dist/esm/helperComponents/ItemContent/index.d.ts +1 -0
- package/dist/esm/helperComponents/ItemContent/index.js +1 -0
- package/dist/esm/helperComponents/ItemContent/styles.module.css +139 -0
- package/dist/esm/helperComponents/ListEmptyState/ListEmptyState.d.ts +16 -0
- package/dist/esm/helperComponents/ListEmptyState/ListEmptyState.js +19 -0
- package/dist/esm/helperComponents/ListEmptyState/hooks.d.ts +10 -0
- package/dist/esm/helperComponents/ListEmptyState/hooks.js +27 -0
- package/dist/esm/helperComponents/ListEmptyState/index.d.ts +2 -0
- package/dist/esm/helperComponents/ListEmptyState/index.js +2 -0
- package/dist/esm/helperComponents/ListEmptyState/styles.module.css +8 -0
- package/dist/esm/helperComponents/MobileDroplist/MobileDroplist.d.ts +9 -0
- package/dist/esm/helperComponents/MobileDroplist/MobileDroplist.js +137 -0
- package/dist/esm/helperComponents/MobileDroplist/MobileDroplist.module.css +16 -0
- package/dist/esm/helperComponents/MobileDroplist/index.d.ts +1 -0
- package/dist/esm/helperComponents/MobileDroplist/index.js +1 -0
- package/dist/esm/helperComponents/MobileDroplist/utils.d.ts +11 -0
- package/dist/esm/helperComponents/MobileDroplist/utils.js +61 -0
- package/dist/esm/helperComponents/Separator/Separator.d.ts +20 -0
- package/dist/esm/helperComponents/Separator/Separator.js +34 -0
- package/dist/esm/helperComponents/Separator/constants.d.ts +3 -0
- package/dist/esm/helperComponents/Separator/constants.js +7 -0
- package/dist/esm/helperComponents/Separator/index.d.ts +1 -0
- package/dist/esm/helperComponents/Separator/index.js +1 -0
- package/dist/esm/helperComponents/Separator/styles.module.css +168 -0
- package/dist/esm/helperComponents/index.d.ts +5 -0
- package/dist/esm/helperComponents/index.js +5 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/locale/index.d.ts +79 -0
- package/dist/esm/locale/index.js +41 -0
- package/dist/esm/style.css +1113 -0
- package/dist/esm/types.d.ts +38 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/utils.d.ts +18 -0
- package/dist/esm/utils.js +19 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +70 -0
- package/src/_iconSizes.scss +7 -0
- package/src/components/Items/AccordionItem/AccordionItem.tsx +79 -0
- package/src/components/Items/AccordionItem/index.ts +1 -0
- package/src/components/Items/BaseItem/BaseItem.tsx +274 -0
- package/src/components/Items/BaseItem/constants.ts +9 -0
- package/src/components/Items/BaseItem/index.ts +1 -0
- package/src/components/Items/BaseItem/styles.module.scss +330 -0
- package/src/components/Items/GroupSelectItem/GroupSelectItem.tsx +48 -0
- package/src/components/Items/GroupSelectItem/index.ts +1 -0
- package/src/components/Items/NextListItem/NextListItem.tsx +157 -0
- package/src/components/Items/NextListItem/constants.ts +12 -0
- package/src/components/Items/NextListItem/index.ts +1 -0
- package/src/components/Items/NextListItem/types.ts +3 -0
- package/src/components/Items/PinGroupItem/PinGroupItem.tsx +38 -0
- package/src/components/Items/PinGroupItem/index.ts +1 -0
- package/src/components/Items/PinGroupItem/styles.module.scss +14 -0
- package/src/components/Items/SearchItem/SearchItem.tsx +55 -0
- package/src/components/Items/SearchItem/index.ts +1 -0
- package/src/components/Items/SearchItem/styles.module.scss +26 -0
- package/src/components/Items/SimpleItem/components/DragHandle/DragHandle.tsx +27 -0
- package/src/components/Items/SimpleItem/components/DragHandle/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/OverlayDragHandle/OverlayDragHandle.tsx +6 -0
- package/src/components/Items/SimpleItem/components/OverlayDragHandle/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/SimpleGroupBlock/SimpleGroupBlock.tsx +87 -0
- package/src/components/Items/SimpleItem/components/SimpleGroupBlock/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/SimpleGroupBlockOverlay.tsx +33 -0
- package/src/components/Items/SimpleItem/components/SimpleGroupBlockOverlay/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/SimpleItem/SimpleItem.tsx +70 -0
- package/src/components/Items/SimpleItem/components/SimpleItem/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/SimpleItemOverlay/SimpleItemOverlay.tsx +26 -0
- package/src/components/Items/SimpleItem/components/SimpleItemOverlay/index.ts +1 -0
- package/src/components/Items/SimpleItem/components/index.ts +4 -0
- package/src/components/Items/SimpleItem/constants.ts +8 -0
- package/src/components/Items/SimpleItem/index.ts +2 -0
- package/src/components/Items/SimpleItem/styles.module.scss +149 -0
- package/src/components/Items/SimpleItem/types.ts +7 -0
- package/src/components/Items/SimpleItem/utils.ts +8 -0
- package/src/components/Items/hooks.tsx +233 -0
- package/src/components/Items/index.ts +5 -0
- package/src/components/Items/styles.module.scss +107 -0
- package/src/components/Items/types.ts +203 -0
- package/src/components/Items/utils.ts +302 -0
- package/src/components/Lists/Droplist/DropList.tsx +62 -0
- package/src/components/Lists/Droplist/constants.ts +11 -0
- package/src/components/Lists/Droplist/index.ts +1 -0
- package/src/components/Lists/List/List.tsx +155 -0
- package/src/components/Lists/List/index.ts +1 -0
- package/src/components/Lists/ListPrivate/ListPrivate.tsx +560 -0
- package/src/components/Lists/ListPrivate/constants.ts +22 -0
- package/src/components/Lists/ListPrivate/index.ts +1 -0
- package/src/components/Lists/ListPrivate/styles.module.scss +90 -0
- package/src/components/Lists/contexts/CollapseProvider.tsx +22 -0
- package/src/components/Lists/contexts/FocusListProvider.tsx +15 -0
- package/src/components/Lists/contexts/NewListProvider.tsx +76 -0
- package/src/components/Lists/contexts/OpenListProvider.tsx +13 -0
- package/src/components/Lists/contexts/SelectionProvider.tsx +214 -0
- package/src/components/Lists/contexts/index.ts +5 -0
- package/src/components/Lists/hooks.ts +351 -0
- package/src/components/Lists/index.ts +5 -0
- package/src/components/Lists/styles.module.scss +95 -0
- package/src/components/Lists/types.ts +231 -0
- package/src/components/Lists/utils.ts +32 -0
- package/src/components/index.ts +2 -0
- package/src/constants.ts +53 -0
- package/src/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.tsx +32 -0
- package/src/helperComponents/CollapseBlockPrivate/index.ts +1 -0
- package/src/helperComponents/CollapseBlockPrivate/styles.module.scss +32 -0
- package/src/helperComponents/DesktopDroplist/DesktopDroplist.tsx +313 -0
- package/src/helperComponents/DesktopDroplist/index.ts +1 -0
- package/src/helperComponents/HiddenTabButton/HiddenTabButton.tsx +35 -0
- package/src/helperComponents/HiddenTabButton/index.ts +1 -0
- package/src/helperComponents/HiddenTabButton/styles.module.scss +11 -0
- package/src/helperComponents/ItemContent/ItemContent.tsx +80 -0
- package/src/helperComponents/ItemContent/index.ts +1 -0
- package/src/helperComponents/ItemContent/styles.module.scss +100 -0
- package/src/helperComponents/ListEmptyState/ListEmptyState.tsx +52 -0
- package/src/helperComponents/ListEmptyState/hooks.ts +42 -0
- package/src/helperComponents/ListEmptyState/index.ts +2 -0
- package/src/helperComponents/ListEmptyState/styles.module.scss +11 -0
- package/src/helperComponents/MobileDroplist/MobileDroplist.module.scss +25 -0
- package/src/helperComponents/MobileDroplist/MobileDroplist.tsx +230 -0
- package/src/helperComponents/MobileDroplist/index.ts +1 -0
- package/src/helperComponents/MobileDroplist/utils.tsx +76 -0
- package/src/helperComponents/Separator/Separator.tsx +115 -0
- package/src/helperComponents/Separator/constants.ts +11 -0
- package/src/helperComponents/Separator/index.ts +1 -0
- package/src/helperComponents/Separator/styles.module.scss +255 -0
- package/src/helperComponents/index.ts +5 -0
- package/src/index.ts +19 -0
- package/src/locale/index.ts +45 -0
- package/src/types.ts +44 -0
- package/src/utils.ts +26 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { TruncateStringProps } from '@cloud-ru/ds-truncate-string';
|
|
2
|
+
import { WithSupportProps } from '@cloud-ru/ds-utils';
|
|
3
|
+
import { FocusEvent, KeyboardEvent, MouseEvent, ReactNode, RefObject } from 'react';
|
|
4
|
+
import { ITEM_TYPE } from '../../constants';
|
|
5
|
+
import { ItemContentProps } from '../../helperComponents';
|
|
6
|
+
import { ItemType, ScrollProps } from '../../types';
|
|
7
|
+
/** Идентификатор элемента списка */
|
|
8
|
+
export type ItemId = string | number;
|
|
9
|
+
type ItemContent = ItemContentProps;
|
|
10
|
+
export type BaseItem = WithSupportProps<{
|
|
11
|
+
/**
|
|
12
|
+
* Слот до основного контента
|
|
13
|
+
* @type ReactElement
|
|
14
|
+
*/
|
|
15
|
+
beforeContent?: ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Слот после основного контента
|
|
18
|
+
* @type ReactElement
|
|
19
|
+
*/
|
|
20
|
+
afterContent?: ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Основной контент айтема
|
|
23
|
+
*/
|
|
24
|
+
content?: ItemContent | ReactNode;
|
|
25
|
+
/** Колбек обработки клика */
|
|
26
|
+
onClick?(e: MouseEvent<HTMLElement>): void;
|
|
27
|
+
/** Колбек обработки нажатия кнопки мыши */
|
|
28
|
+
onMouseDown?(e: MouseEvent<HTMLElement>): void;
|
|
29
|
+
/** Колбек обработки нажатия клавиши */
|
|
30
|
+
onKeyDown?(e: KeyboardEvent<HTMLElement>): void;
|
|
31
|
+
/** Колбек обработки фокуса */
|
|
32
|
+
onFocus?(e: FocusEvent<HTMLElement>): void;
|
|
33
|
+
/** Колбек обработки блюра */
|
|
34
|
+
onBlur?(e: FocusEvent<HTMLElement>): void;
|
|
35
|
+
/** Уникальный идентификатор */
|
|
36
|
+
id?: ItemId;
|
|
37
|
+
/** Флаг неактивности элемента */
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
/** Скрыть элемент из списка (не рендерится и выпадает из навигации) */
|
|
40
|
+
hidden?: boolean;
|
|
41
|
+
/** Ссылка на DOM-элемент айтема */
|
|
42
|
+
itemRef?: RefObject<HTMLElement>;
|
|
43
|
+
/** CSS-класс */
|
|
44
|
+
className?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Флаг отображения отключения реакции на любое css состояние (hover/focus и тд)
|
|
47
|
+
* <br>
|
|
48
|
+
* Так же элемент пропадает из навигации с клавиатуры, и не может быть выбран (selection)
|
|
49
|
+
*/
|
|
50
|
+
inactive?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Флаг отображения состояния выбранного элемента через switch
|
|
53
|
+
*/
|
|
54
|
+
switch?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Флаг отображения иконки у чекбоксов
|
|
57
|
+
*/
|
|
58
|
+
showSwitchIcon?: boolean;
|
|
59
|
+
/** Рендер-обёртка вокруг айтема (например, для проксирования в `Tooltip`/`Link`) */
|
|
60
|
+
itemWrapRender?(item: ReactNode): ReactNode;
|
|
61
|
+
/** Управляемое состояние выбранности айтема */
|
|
62
|
+
checked?: boolean;
|
|
63
|
+
}>;
|
|
64
|
+
type BaseItemWithoutNonGroup = Omit<BaseItem, 'switch' | 'inactive'>;
|
|
65
|
+
export type Item = BaseItem | AccordionItem | NextListItem | GroupItem | GroupSelectItem;
|
|
66
|
+
export type AccordionItem = BaseItemWithoutNonGroup & {
|
|
67
|
+
items: Item[];
|
|
68
|
+
type: typeof ITEM_TYPE.Collapse;
|
|
69
|
+
};
|
|
70
|
+
export type NextListItem = BaseItemWithoutNonGroup & ScrollProps & {
|
|
71
|
+
items: Item[];
|
|
72
|
+
type: typeof ITEM_TYPE.NextList;
|
|
73
|
+
/** Колбек смены состояния вложенного списка (открыт/закрыт) */
|
|
74
|
+
onSublistOpenChanged?(open: boolean, id?: ItemId): void;
|
|
75
|
+
/** Состояние загрузки вложенного списка — показывается спиннер вместо элементов */
|
|
76
|
+
loading?: boolean;
|
|
77
|
+
/** Загрузка вложенного списка завершилась ошибкой — показывается `errorDataState` */
|
|
78
|
+
dataError?: boolean;
|
|
79
|
+
/** Вложенный список отфильтрован — пустой результат показывает `noResultsState`, а не `noDataState` */
|
|
80
|
+
dataFiltered?: boolean;
|
|
81
|
+
/** Сторона, с которой раскрывается вложенный список относительно элемента */
|
|
82
|
+
placement?: 'right-start' | 'left-start' | 'left' | 'right' | 'left-end' | 'right-end';
|
|
83
|
+
};
|
|
84
|
+
type CommonGroupItem = {
|
|
85
|
+
/** Заголовок группы */
|
|
86
|
+
label?: string;
|
|
87
|
+
/** Слот иконки слева от label. */
|
|
88
|
+
beforeContent?: ReactNode;
|
|
89
|
+
/** Настройки усечения длинного заголовка группы */
|
|
90
|
+
truncate?: {
|
|
91
|
+
variant?: TruncateStringProps['variant'];
|
|
92
|
+
};
|
|
93
|
+
/** Визуальный стиль заголовка группы */
|
|
94
|
+
groupVariant?: 'subtitle' | 'subtitleTertiary';
|
|
95
|
+
/** Скрыть группу из списка */
|
|
96
|
+
hidden?: boolean;
|
|
97
|
+
/** Показать разделитель над группой */
|
|
98
|
+
divider?: boolean;
|
|
99
|
+
};
|
|
100
|
+
export type GroupItem = CommonGroupItem & {
|
|
101
|
+
items: Item[];
|
|
102
|
+
type: typeof ITEM_TYPE.Group;
|
|
103
|
+
};
|
|
104
|
+
export type GroupSelectItem = CommonGroupItem & {
|
|
105
|
+
items: Item[];
|
|
106
|
+
type: typeof ITEM_TYPE.GroupSelect;
|
|
107
|
+
selectButtonLabel?: string;
|
|
108
|
+
id?: ItemId;
|
|
109
|
+
itemRef?: RefObject<HTMLElement>;
|
|
110
|
+
};
|
|
111
|
+
type RequiredFields<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
|
|
112
|
+
export type Flatten<T, K extends keyof T> = RequiredFields<T, K>;
|
|
113
|
+
export type CommonFlattenProps = {
|
|
114
|
+
items: ItemId[];
|
|
115
|
+
allChildIds: ItemId[];
|
|
116
|
+
};
|
|
117
|
+
export type FlattenBaseItem = Flatten<BaseItem, 'id'>;
|
|
118
|
+
export type FlattenNextListItem = Flatten<Omit<NextListItem, 'items'>, 'id'>;
|
|
119
|
+
export type FlattenGroupListItem = Omit<GroupItem, 'items'> & {
|
|
120
|
+
id: ItemId;
|
|
121
|
+
};
|
|
122
|
+
export type FlattenGroupSelectListItem = Flatten<Omit<GroupSelectItem, 'items'>, 'id'>;
|
|
123
|
+
export type FlattenAccordionItem = Flatten<Omit<AccordionItem, 'items'>, 'id'>;
|
|
124
|
+
/**
|
|
125
|
+
* Строка `List`/`Droplist` в режиме drag&drop-переупорядочивания (проп `onItemsReorder`) —
|
|
126
|
+
* облегчённый аналог `BaseItem` без `type`-дискриминатора и без вложенности: не поддерживает
|
|
127
|
+
* `collapse`/`group-select`/`next-list`. `id` обязателен (нужен `@dnd-kit` как identity
|
|
128
|
+
* сортируемого элемента). Верхний уровень reorder-дерева описывает `ReorderItem` (строка или
|
|
129
|
+
* группа с заголовком); переупорядочивание идёт только среди «братьев» — строк одного уровня
|
|
130
|
+
* (внутри одной группы либо между строками без группы), перенос между группами не поддерживается,
|
|
131
|
+
* см. `reorderReorderItems`.
|
|
132
|
+
*
|
|
133
|
+
* `disabled` блокирует выбор, `Switch` и клик, но **не** ручку перетаскивания — порядок можно менять и у
|
|
134
|
+
* задизейбленных строк.
|
|
135
|
+
*/
|
|
136
|
+
export type SimpleItem = Flatten<BaseItem, 'id'>;
|
|
137
|
+
/**
|
|
138
|
+
* Группа reorder-режима: заголовок (`label` и остальные поля `GroupItem`) + сортируемые строки
|
|
139
|
+
* `items`. Строки переставляются **внутри** группы, а сама группа переставляется среди других
|
|
140
|
+
* групп верхнего уровня (за ручку на заголовке) — поэтому у группы обязателен `id` (identity для
|
|
141
|
+
* `@dnd-kit`). Вложенность ограничена одним уровнем: в `items` только листовые `SimpleItem`.
|
|
142
|
+
*/
|
|
143
|
+
export type SimpleGroupItem = CommonGroupItem & {
|
|
144
|
+
/** Идентификатор группы — нужен `@dnd-kit` для переупорядочивания групп между собой. */
|
|
145
|
+
id: ItemId;
|
|
146
|
+
items: SimpleItem[];
|
|
147
|
+
type: typeof ITEM_TYPE.Group;
|
|
148
|
+
};
|
|
149
|
+
/** Верхнеуровневый элемент reorder-дерева (`onItemsReorder`): строка или группа с заголовком. */
|
|
150
|
+
export type ReorderItem = SimpleItem | SimpleGroupItem;
|
|
151
|
+
export type FlattenSimpleItem = FlattenBaseItem & CommonFlattenProps;
|
|
152
|
+
export type FlattenItem = FlattenBaseItem | ((FlattenNextListItem | FlattenGroupListItem | FlattenAccordionItem | FlattenGroupSelectListItem | FlattenSimpleItem) & CommonFlattenProps);
|
|
153
|
+
export type FocusFlattenItem = {
|
|
154
|
+
key: ItemId;
|
|
155
|
+
id: ItemId;
|
|
156
|
+
originalId: ItemId;
|
|
157
|
+
parentId?: ItemId;
|
|
158
|
+
itemRef?: RefObject<HTMLElement>;
|
|
159
|
+
type?: ItemType;
|
|
160
|
+
disabled?: boolean;
|
|
161
|
+
} & CommonFlattenProps;
|
|
162
|
+
export type ItemProps = Item;
|
|
163
|
+
export type BaseItemProps = BaseItem;
|
|
164
|
+
export type GroupItemProps = GroupItem;
|
|
165
|
+
export type NextListItemProps = NextListItem;
|
|
166
|
+
export type AccordionItemProps = AccordionItem;
|
|
167
|
+
export type GroupSelectItemProps = GroupSelectItem;
|
|
168
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ItemContentProps } from '../../helperComponents';
|
|
2
|
+
import { AccordionItem, BaseItem, FlattenItem, FlattenSimpleItem, FocusFlattenItem, GroupItem, GroupSelectItem, Item, ItemId, NextListItem, ReorderItem, SimpleGroupItem, SimpleItem } from './types';
|
|
3
|
+
type FlattenableItem = Item | SimpleItem;
|
|
4
|
+
export declare function isBaseItem<ReturnType = BaseItem>(item: unknown): item is ReturnType;
|
|
5
|
+
export declare function isAccordionItem<ReturnType = AccordionItem>(item: unknown): item is ReturnType;
|
|
6
|
+
export declare function isNextListItem<ReturnType = NextListItem>(item: unknown): item is ReturnType;
|
|
7
|
+
export declare function isGroupItem<ReturnType = GroupItem>(item: unknown): item is ReturnType;
|
|
8
|
+
export declare function isGroupSelectItem<ReturnType = GroupSelectItem>(item: unknown): item is ReturnType;
|
|
9
|
+
export declare function isSimpleItem<ReturnType = FlattenSimpleItem>(item: unknown): item is ReturnType;
|
|
10
|
+
export declare function isReorderGroup(item: ReorderItem): item is SimpleGroupItem;
|
|
11
|
+
export declare function isReorderBaseItem(item: ReorderItem): item is SimpleItem;
|
|
12
|
+
export declare function isContentItem(item: unknown): item is ItemContentProps;
|
|
13
|
+
/**
|
|
14
|
+
* Примитивный `content` (строка/число) — это шорткат для `{ label: content }`:
|
|
15
|
+
* такой айтем рендерится через `ItemContent` и получает размерную высоту строки
|
|
16
|
+
* (`min-height` по `size`), а не схлопывается до высоты текста, как произвольный ReactNode.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isPrimitiveContent(item: unknown): item is string | number;
|
|
19
|
+
export declare const isBaseItemProps: typeof isBaseItem;
|
|
20
|
+
export declare const isAccordionItemProps: typeof isAccordionItem;
|
|
21
|
+
export declare const isNextListItemProps: typeof isNextListItem;
|
|
22
|
+
export declare const isGroupItemProps: typeof isGroupItem;
|
|
23
|
+
export declare const isGroupSelectItemProps: typeof isGroupSelectItem;
|
|
24
|
+
type KindFlattenItemsProps = {
|
|
25
|
+
items: FlattenableItem[];
|
|
26
|
+
prefix?: ItemId;
|
|
27
|
+
parentId?: ItemId;
|
|
28
|
+
/**
|
|
29
|
+
* Дерево — `SimpleItem[]` в режиме drag&drop-переупорядочивания (`onItemsReorder`): каждый
|
|
30
|
+
* узел (лист и контейнер) размечается `type: ITEM_TYPE.Simple`, чтобы `getRenderItems` рендерил
|
|
31
|
+
* его через сортируемую обёртку, а `extractActiveItems` — считал всегда «развёрнутым».
|
|
32
|
+
*/
|
|
33
|
+
sortable?: boolean;
|
|
34
|
+
};
|
|
35
|
+
export declare function kindFlattenItems({ items, prefix, parentId, sortable }: KindFlattenItemsProps): {
|
|
36
|
+
focusCloseChildIds: ItemId[];
|
|
37
|
+
allChildIds: ItemId[];
|
|
38
|
+
flattenItems: Record<string, FlattenItem>;
|
|
39
|
+
focusFlattenItems: Record<string, FocusFlattenItem>;
|
|
40
|
+
};
|
|
41
|
+
type ExtractActiveItemsProps = {
|
|
42
|
+
focusFlattenItems: Record<string, FocusFlattenItem>;
|
|
43
|
+
focusCloseChildIds: ItemId[];
|
|
44
|
+
openCollapseItems: ItemId[];
|
|
45
|
+
isSelectionMultiple?: boolean;
|
|
46
|
+
};
|
|
47
|
+
type ExtractActiveItemsReturnType = {
|
|
48
|
+
ids: ItemId[];
|
|
49
|
+
expandedIds: ItemId[];
|
|
50
|
+
};
|
|
51
|
+
export declare function extractActiveItems({ focusFlattenItems, focusCloseChildIds, openCollapseItems, isSelectionMultiple, }: ExtractActiveItemsProps): ExtractActiveItemsReturnType;
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isGroupSelectItemProps = exports.isGroupItemProps = exports.isNextListItemProps = exports.isAccordionItemProps = exports.isBaseItemProps = void 0;
|
|
4
|
+
exports.isBaseItem = isBaseItem;
|
|
5
|
+
exports.isAccordionItem = isAccordionItem;
|
|
6
|
+
exports.isNextListItem = isNextListItem;
|
|
7
|
+
exports.isGroupItem = isGroupItem;
|
|
8
|
+
exports.isGroupSelectItem = isGroupSelectItem;
|
|
9
|
+
exports.isSimpleItem = isSimpleItem;
|
|
10
|
+
exports.isReorderGroup = isReorderGroup;
|
|
11
|
+
exports.isReorderBaseItem = isReorderBaseItem;
|
|
12
|
+
exports.isContentItem = isContentItem;
|
|
13
|
+
exports.isPrimitiveContent = isPrimitiveContent;
|
|
14
|
+
exports.kindFlattenItems = kindFlattenItems;
|
|
15
|
+
exports.extractActiveItems = extractActiveItems;
|
|
16
|
+
const react_1 = require("react");
|
|
17
|
+
const constants_1 = require("../../constants");
|
|
18
|
+
const utils_1 = require("../../utils");
|
|
19
|
+
function isRecord(item) {
|
|
20
|
+
return typeof item === 'object' && item !== null;
|
|
21
|
+
}
|
|
22
|
+
function isBaseItem(item) {
|
|
23
|
+
return isRecord(item) && !('items' in item);
|
|
24
|
+
}
|
|
25
|
+
function isAccordionItem(item) {
|
|
26
|
+
return isRecord(item) && 'items' in item && item['type'] === constants_1.ITEM_TYPE.Collapse;
|
|
27
|
+
}
|
|
28
|
+
function isNextListItem(item) {
|
|
29
|
+
return isRecord(item) && 'items' in item && item['type'] === constants_1.ITEM_TYPE.NextList;
|
|
30
|
+
}
|
|
31
|
+
function isGroupItem(item) {
|
|
32
|
+
return isRecord(item) && 'items' in item && item['type'] === constants_1.ITEM_TYPE.Group;
|
|
33
|
+
}
|
|
34
|
+
function isGroupSelectItem(item) {
|
|
35
|
+
return isRecord(item) && 'items' in item && item['type'] === constants_1.ITEM_TYPE.GroupSelect;
|
|
36
|
+
}
|
|
37
|
+
// В отличие от остальных `is<Kind>Item`, не требует `'items' in item` — `Simple`-айтемы без
|
|
38
|
+
// вложенности (листья) тоже размечаются `type: ITEM_TYPE.Simple` в `kindFlattenItems`.
|
|
39
|
+
function isSimpleItem(item) {
|
|
40
|
+
return isRecord(item) && item['type'] === constants_1.ITEM_TYPE.Simple;
|
|
41
|
+
}
|
|
42
|
+
// Гарды для «сырого» дерева reorder-режима (payload `onItemsReorder`): группа `SimpleGroupItem`
|
|
43
|
+
// несёт `type: Group`, строка `SimpleItem` — без `type`. Отличаются от `isSimpleItem` (он смотрит
|
|
44
|
+
// `type: Simple`, проставляемый только при уплощении через `kindFlattenItems`), поэтому на payload'е
|
|
45
|
+
// `onItemsReorder` использовать нужно именно эти.
|
|
46
|
+
function isReorderGroup(item) {
|
|
47
|
+
return 'type' in item && item.type === constants_1.ITEM_TYPE.Group;
|
|
48
|
+
}
|
|
49
|
+
function isReorderBaseItem(item) {
|
|
50
|
+
return !isReorderGroup(item);
|
|
51
|
+
}
|
|
52
|
+
function isContentItem(item) {
|
|
53
|
+
return isRecord(item) && item['label'] !== undefined;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Примитивный `content` (строка/число) — это шорткат для `{ label: content }`:
|
|
57
|
+
* такой айтем рендерится через `ItemContent` и получает размерную высоту строки
|
|
58
|
+
* (`min-height` по `size`), а не схлопывается до высоты текста, как произвольный ReactNode.
|
|
59
|
+
*/
|
|
60
|
+
function isPrimitiveContent(item) {
|
|
61
|
+
return typeof item === 'string' || typeof item === 'number';
|
|
62
|
+
}
|
|
63
|
+
// Публичные дискриминаторы пропсов айтемов (документированы в README, потребитель
|
|
64
|
+
// сужает union `Item` по типу). Внутри пакета используются короткие формы `isBaseItem`
|
|
65
|
+
// и т.д.; наружу отдаём `is<Kind>Props`, как в публичном API типов (`<Kind>Props`).
|
|
66
|
+
exports.isBaseItemProps = isBaseItem;
|
|
67
|
+
exports.isAccordionItemProps = isAccordionItem;
|
|
68
|
+
exports.isNextListItemProps = isNextListItem;
|
|
69
|
+
exports.isGroupItemProps = isGroupItem;
|
|
70
|
+
exports.isGroupSelectItemProps = isGroupSelectItem;
|
|
71
|
+
function kindFlattenItems({ items, prefix, parentId, sortable }) {
|
|
72
|
+
const flattenItems = {};
|
|
73
|
+
const focusFlattenItems = {};
|
|
74
|
+
function flatten({ item, idx, prefix, parentId = constants_1.ITEM_PREFIXES.default }) {
|
|
75
|
+
const autoId = prefix !== undefined ? (0, utils_1.getItemAutoId)(prefix, idx) : String(idx);
|
|
76
|
+
// В reorder-режиме (`sortable`) группа несёт собственный `id` (нужен `@dnd-kit` как identity
|
|
77
|
+
// для перестановки групп) — используется он. Обычная (не сортируемая) группа `id` не имеет — `autoId`.
|
|
78
|
+
const itemId = (isGroupItem(item) && !sortable ? undefined : item.id) ?? autoId;
|
|
79
|
+
if (isBaseItem(item)) {
|
|
80
|
+
// `type` добавляется в `flattenItems` только в `sortable`-режиме: другой код (например,
|
|
81
|
+
// `useGroupItemSelection`) отличает базовые айтемы от контейнерных через `!('type' in item)`,
|
|
82
|
+
// а не по значению — присутствие ключа `type: undefined` уже сломало бы эту проверку.
|
|
83
|
+
flattenItems[itemId] = {
|
|
84
|
+
...item,
|
|
85
|
+
items: [],
|
|
86
|
+
allChildIds: [],
|
|
87
|
+
id: itemId,
|
|
88
|
+
...(sortable ? { type: constants_1.ITEM_TYPE.Simple } : {}),
|
|
89
|
+
};
|
|
90
|
+
focusFlattenItems[autoId] = {
|
|
91
|
+
// React key = `itemId`, не `autoId`. `autoId` — позиционный путь в focus-дереве
|
|
92
|
+
// (`default-0`, `default-1`, …): при `onItemsReorder` путь остаётся на месте, а данные
|
|
93
|
+
// под ним меняются. Ключ по позиции оставляет тот же инстанс (`Switch` и т.п.) в слоте
|
|
94
|
+
// и проигрывает transition на смене `checked` — `Switch` визуально «переезжает».
|
|
95
|
+
key: itemId,
|
|
96
|
+
originalId: itemId,
|
|
97
|
+
id: autoId,
|
|
98
|
+
// `inactive` элемент выпадает из клавиатурной навигации наравне с `disabled`
|
|
99
|
+
// (см. JSDoc `BaseItem.inactive`). Гейтит только nav/bulk-select через
|
|
100
|
+
// `extractActiveItems`; рендерный `disabled` в `flattenItems` остаётся исходным.
|
|
101
|
+
disabled: item.disabled || item.inactive,
|
|
102
|
+
parentId,
|
|
103
|
+
items: [],
|
|
104
|
+
allChildIds: [],
|
|
105
|
+
itemRef: item.itemRef || (0, react_1.createRef)(),
|
|
106
|
+
type: sortable ? constants_1.ITEM_TYPE.Simple : undefined,
|
|
107
|
+
};
|
|
108
|
+
return { id: itemId, children: [itemId], autoId, focusChildren: [autoId] };
|
|
109
|
+
}
|
|
110
|
+
let allChildIds = [];
|
|
111
|
+
let allFocusChildIds = [];
|
|
112
|
+
const closeChildIds = [];
|
|
113
|
+
const autoChildIds = [];
|
|
114
|
+
const { items, ...rest } = item;
|
|
115
|
+
const childActiveParent = isGroupItem(item) ? (parentId ?? constants_1.ITEM_PREFIXES.default) : autoId;
|
|
116
|
+
const filteredItems = items.filter(item => !item.hidden);
|
|
117
|
+
for (let idx = 0; idx < filteredItems.length; idx++) {
|
|
118
|
+
const { id, children, autoId, focusChildren } = flatten({
|
|
119
|
+
item: filteredItems[idx],
|
|
120
|
+
idx,
|
|
121
|
+
prefix: itemId,
|
|
122
|
+
parentId: childActiveParent,
|
|
123
|
+
});
|
|
124
|
+
autoChildIds.push(autoId);
|
|
125
|
+
closeChildIds.push(id);
|
|
126
|
+
allChildIds = allChildIds.concat(children);
|
|
127
|
+
allFocusChildIds = allFocusChildIds.concat(focusChildren);
|
|
128
|
+
}
|
|
129
|
+
const children = [...new Set(allChildIds.concat(closeChildIds))];
|
|
130
|
+
const focusChildren = [...new Set(allFocusChildIds.concat(autoChildIds))];
|
|
131
|
+
flattenItems[itemId] = {
|
|
132
|
+
...rest,
|
|
133
|
+
id: itemId,
|
|
134
|
+
items: [],
|
|
135
|
+
allChildIds: children,
|
|
136
|
+
};
|
|
137
|
+
// При `sortable` дерево в рантайме целиком `SimpleItem[]`, но статический тип этого не выражает
|
|
138
|
+
// (структурно совпадает с `BaseItem`) — отсюда каст к `SimpleItem` за `disabled`.
|
|
139
|
+
const containerDisabled = sortable
|
|
140
|
+
? item.disabled
|
|
141
|
+
: (item.type === constants_1.ITEM_TYPE.Collapse || item.type === constants_1.ITEM_TYPE.NextList) && item.disabled;
|
|
142
|
+
focusFlattenItems[autoId] = {
|
|
143
|
+
// См. комментарий у листового `key` выше — стабильная identity, не позиционный autoId.
|
|
144
|
+
key: autoId + '_' + itemId,
|
|
145
|
+
originalId: itemId,
|
|
146
|
+
id: autoId,
|
|
147
|
+
parentId,
|
|
148
|
+
items: autoChildIds,
|
|
149
|
+
allChildIds: focusChildren,
|
|
150
|
+
disabled: containerDisabled,
|
|
151
|
+
type: item.type,
|
|
152
|
+
itemRef: !isGroupItem(item) ? (item.itemRef ?? (0, react_1.createRef)()) : undefined,
|
|
153
|
+
};
|
|
154
|
+
return { id: itemId, children, autoId, focusChildren };
|
|
155
|
+
}
|
|
156
|
+
const closeChildIds = [];
|
|
157
|
+
const autoChildIds = [];
|
|
158
|
+
let allChildIds = [];
|
|
159
|
+
const filteredItems = items.filter(item => !item.hidden);
|
|
160
|
+
for (let idx = 0; idx < filteredItems.length; idx++) {
|
|
161
|
+
const { id, children, autoId } = flatten({ item: filteredItems[idx], idx, prefix, parentId });
|
|
162
|
+
autoChildIds.push(autoId);
|
|
163
|
+
closeChildIds.push(id);
|
|
164
|
+
allChildIds.push(id);
|
|
165
|
+
allChildIds = allChildIds.concat(children);
|
|
166
|
+
}
|
|
167
|
+
const children = [...new Set(allChildIds)];
|
|
168
|
+
return {
|
|
169
|
+
focusCloseChildIds: autoChildIds,
|
|
170
|
+
allChildIds: children,
|
|
171
|
+
flattenItems,
|
|
172
|
+
focusFlattenItems,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
function extractActiveItems({ focusFlattenItems, focusCloseChildIds, openCollapseItems, isSelectionMultiple, }) {
|
|
176
|
+
const ids = [];
|
|
177
|
+
const expandedIds = [];
|
|
178
|
+
function internalFn(focusCloseChildIds) {
|
|
179
|
+
focusCloseChildIds.forEach(id => {
|
|
180
|
+
const child = focusFlattenItems[id];
|
|
181
|
+
if (child.type === constants_1.ITEM_TYPE.Group) {
|
|
182
|
+
internalFn(child.items);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
// `Simple` (drag&drop-переупорядочивание, `onItemsReorder`) не имеет collapse-состояния —
|
|
186
|
+
// строка всегда «развёрнута»: сама участвует в навигации (если не disabled) и рекурсия в
|
|
187
|
+
// детей идёт безусловно, в отличие от `Collapse`/`NextList` ниже (гейт `openCollapseItems`).
|
|
188
|
+
if (child.type === constants_1.ITEM_TYPE.Simple) {
|
|
189
|
+
if (!child.disabled) {
|
|
190
|
+
ids.push(child.id);
|
|
191
|
+
internalFn(child.items);
|
|
192
|
+
}
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
if (!child.disabled) {
|
|
196
|
+
if (child.type === constants_1.ITEM_TYPE.GroupSelect) {
|
|
197
|
+
if (isSelectionMultiple) {
|
|
198
|
+
ids.push(child.id);
|
|
199
|
+
}
|
|
200
|
+
internalFn(child.items);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
ids.push(child.id);
|
|
204
|
+
if (child.type) {
|
|
205
|
+
expandedIds.push(id);
|
|
206
|
+
if (openCollapseItems.includes(child.originalId)) {
|
|
207
|
+
internalFn(child.items);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
internalFn(focusCloseChildIds);
|
|
214
|
+
return {
|
|
215
|
+
ids,
|
|
216
|
+
expandedIds,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DroplistProps, ReorderableDroplistProps } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Адаптивный `Droplist`: раскладку берёт из `AdaptiveProvider` (контекст). На `mobile` рендерит
|
|
4
|
+
* список (size `l`) в `BottomSheet` (`MobileDroplist`), иначе — анкорный popover (`DesktopDroplist`).
|
|
5
|
+
* Слоты `label` / `actionButton` / `slotAfterTitle` / `onBackButtonClick` применяются только на mobile.
|
|
6
|
+
* Чтобы всегда был popover — `withLayoutType(Droplist, 'desktop')` либо вложенный
|
|
7
|
+
* `<AdaptiveProvider layoutType='desktop'>`. Пропа `layoutType` у компонента нет.
|
|
8
|
+
*/
|
|
9
|
+
export declare function Droplist(props: DroplistProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare namespace Droplist {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Адаптивный `Droplist` с drag&drop-переупорядочиванием строк (см. `ReorderableList`): управляемый
|
|
15
|
+
* порядок через `onItemsReorder`, модель айтемов — `ReorderItem`, виртуализации нет. Раскладку и
|
|
16
|
+
* mobile-слоты берёт из `Droplist`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function ReorderableDroplist(props: ReorderableDroplistProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare namespace ReorderableDroplist {
|
|
20
|
+
var displayName: string;
|
|
21
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Droplist = Droplist;
|
|
4
|
+
exports.ReorderableDroplist = ReorderableDroplist;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const adaptive_1 = require("@cloud-ru/ds-adaptive");
|
|
7
|
+
const DesktopDroplist_1 = require("../../../helperComponents/DesktopDroplist");
|
|
8
|
+
const MobileDroplist_1 = require("../../../helperComponents/MobileDroplist");
|
|
9
|
+
/** @internal Общая реализация `Droplist`/`ReorderableDroplist`: свап поверхности по раскладке. */
|
|
10
|
+
function DroplistImpl({ children, size = 'm', label, actionButton, slotAfterTitle, onBackButtonClick, ...rest }) {
|
|
11
|
+
const { layoutType } = (0, adaptive_1.useAdaptiveLayout)();
|
|
12
|
+
if ((0, adaptive_1.isMobileLayout)(layoutType)) {
|
|
13
|
+
return ((0, jsx_runtime_1.jsx)(MobileDroplist_1.MobileDroplist, { ...rest, label: label, actionButton: actionButton, slotAfterTitle: slotAfterTitle, onBackButtonClick: onBackButtonClick, children: children }));
|
|
14
|
+
}
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)(DesktopDroplist_1.DesktopDroplist, { ...rest, size: size, children: children }));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Адаптивный `Droplist`: раскладку берёт из `AdaptiveProvider` (контекст). На `mobile` рендерит
|
|
19
|
+
* список (size `l`) в `BottomSheet` (`MobileDroplist`), иначе — анкорный popover (`DesktopDroplist`).
|
|
20
|
+
* Слоты `label` / `actionButton` / `slotAfterTitle` / `onBackButtonClick` применяются только на mobile.
|
|
21
|
+
* Чтобы всегда был popover — `withLayoutType(Droplist, 'desktop')` либо вложенный
|
|
22
|
+
* `<AdaptiveProvider layoutType='desktop'>`. Пропа `layoutType` у компонента нет.
|
|
23
|
+
*/
|
|
24
|
+
function Droplist(props) {
|
|
25
|
+
return (0, jsx_runtime_1.jsx)(DroplistImpl, { ...props });
|
|
26
|
+
}
|
|
27
|
+
Droplist.displayName = 'Droplist';
|
|
28
|
+
/**
|
|
29
|
+
* Адаптивный `Droplist` с drag&drop-переупорядочиванием строк (см. `ReorderableList`): управляемый
|
|
30
|
+
* порядок через `onItemsReorder`, модель айтемов — `ReorderItem`, виртуализации нет. Раскладку и
|
|
31
|
+
* mobile-слоты берёт из `Droplist`.
|
|
32
|
+
*/
|
|
33
|
+
function ReorderableDroplist(props) {
|
|
34
|
+
return (0, jsx_runtime_1.jsx)(DroplistImpl, { ...props });
|
|
35
|
+
}
|
|
36
|
+
ReorderableDroplist.displayName = 'ReorderableDroplist';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DropdownProps } from '@cloud-ru/ds-dropdown';
|
|
2
|
+
export declare const DEFAULT_FALLBACK_PLACEMENTS: DropdownProps['fallbackPlacements'];
|
|
3
|
+
/**
|
|
4
|
+
* Возврат фокуса/фокусировка списка откладывается на следующий тик (0ms),
|
|
5
|
+
* чтобы дождаться размонтирования/монтирования портала дроплиста.
|
|
6
|
+
*/
|
|
7
|
+
export declare const FOCUS_DEFERRAL_TIMEOUT = 0;
|
|
8
|
+
export declare const DEFAULT_SIZE = "m";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_SIZE = exports.FOCUS_DEFERRAL_TIMEOUT = exports.DEFAULT_FALLBACK_PLACEMENTS = void 0;
|
|
4
|
+
exports.DEFAULT_FALLBACK_PLACEMENTS = ['top', 'right', 'bottom', 'left'];
|
|
5
|
+
/**
|
|
6
|
+
* Возврат фокуса/фокусировка списка откладывается на следующий тик (0ms),
|
|
7
|
+
* чтобы дождаться размонтирования/монтирования портала дроплиста.
|
|
8
|
+
*/
|
|
9
|
+
exports.FOCUS_DEFERRAL_TIMEOUT = 0;
|
|
10
|
+
exports.DEFAULT_SIZE = 'm';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './DropList';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./DropList"), exports);
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { KeyboardEvent } from 'react';
|
|
2
|
+
/** Список айтемов: base / collapse / group / next-list, с опциональной виртуализацией. */
|
|
3
|
+
export declare const List: import("react").ForwardRefExoticComponent<{
|
|
4
|
+
'data-test-id'?: string;
|
|
5
|
+
} & import("react").AriaAttributes & {
|
|
6
|
+
pinTop?: import("../..").Item[];
|
|
7
|
+
pinBottom?: import("../..").Item[];
|
|
8
|
+
footer?: import("react").ReactNode;
|
|
9
|
+
header?: import("react").ReactNode;
|
|
10
|
+
headerDivider?: boolean;
|
|
11
|
+
footerDivider?: boolean;
|
|
12
|
+
footerActiveElementsRefs?: import("react").RefObject<HTMLElement>[];
|
|
13
|
+
keyboardNavigationRef?: import("react").RefObject<{
|
|
14
|
+
focusItem(id: import("../..").ItemId): void;
|
|
15
|
+
}>;
|
|
16
|
+
search?: import("../../..").SearchState;
|
|
17
|
+
tabIndex?: number;
|
|
18
|
+
collapse?: import("../contexts").CollapseState;
|
|
19
|
+
className?: string;
|
|
20
|
+
loading?: boolean;
|
|
21
|
+
onKeyDown?(e: KeyboardEvent<HTMLElement>): void;
|
|
22
|
+
hasListInFocusChain?: boolean;
|
|
23
|
+
scrollToSelectedItem?: boolean;
|
|
24
|
+
scrollContainerClassName?: string;
|
|
25
|
+
limitedScrollHeight?: boolean;
|
|
26
|
+
} & import("../contexts").SelectionState & Omit<import("../contexts").PublicListContextType, "virtualized"> & import("../../..").ScrollProps & import("../types").EmptyState & {
|
|
27
|
+
items: import("../..").Item[];
|
|
28
|
+
virtualized?: boolean;
|
|
29
|
+
} & import("react").RefAttributes<HTMLElement>>;
|
|
30
|
+
/**
|
|
31
|
+
* Список с drag&drop-переупорядочиванием строк за ручку слева. Управляемый: порядок не хранит,
|
|
32
|
+
* а отдаёт обновлённое дерево в `onItemsReorder`. Модель айтемов — `ReorderItem` (плоская строка
|
|
33
|
+
* либо группа с заголовком); `collapse`/`next-list`/`group-select` и виртуализация не поддержаны.
|
|
34
|
+
*/
|
|
35
|
+
export declare const ReorderableList: import("react").ForwardRefExoticComponent<{
|
|
36
|
+
'data-test-id'?: string;
|
|
37
|
+
} & import("react").AriaAttributes & {
|
|
38
|
+
pinTop?: import("../..").Item[];
|
|
39
|
+
pinBottom?: import("../..").Item[];
|
|
40
|
+
footer?: import("react").ReactNode;
|
|
41
|
+
header?: import("react").ReactNode;
|
|
42
|
+
headerDivider?: boolean;
|
|
43
|
+
footerDivider?: boolean;
|
|
44
|
+
footerActiveElementsRefs?: import("react").RefObject<HTMLElement>[];
|
|
45
|
+
keyboardNavigationRef?: import("react").RefObject<{
|
|
46
|
+
focusItem(id: import("../..").ItemId): void;
|
|
47
|
+
}>;
|
|
48
|
+
search?: import("../../..").SearchState;
|
|
49
|
+
tabIndex?: number;
|
|
50
|
+
collapse?: import("../contexts").CollapseState;
|
|
51
|
+
className?: string;
|
|
52
|
+
loading?: boolean;
|
|
53
|
+
onKeyDown?(e: KeyboardEvent<HTMLElement>): void;
|
|
54
|
+
hasListInFocusChain?: boolean;
|
|
55
|
+
scrollToSelectedItem?: boolean;
|
|
56
|
+
scrollContainerClassName?: string;
|
|
57
|
+
limitedScrollHeight?: boolean;
|
|
58
|
+
} & import("../contexts").SelectionState & Omit<import("../contexts").PublicListContextType, "virtualized"> & import("../../..").ScrollProps & import("../types").EmptyState & {
|
|
59
|
+
items: import("../..").ReorderItem[];
|
|
60
|
+
onItemsReorder(items: import("../..").ReorderItem[]): void;
|
|
61
|
+
} & import("react").RefAttributes<HTMLElement>>;
|