@consta/uikit 5.25.1 → 5.27.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/FlatSelect/index.d.ts +1 -0
- package/FlatSelect/index.js +1 -0
- package/__internal__/src/components/Banner/Banner.d.ts +20 -8
- package/__internal__/src/components/Banner/Banner.js +1 -1
- package/__internal__/src/components/Banner/Banner.js.map +1 -1
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenu.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenu.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.d.ts +2 -2
- package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.js.map +1 -1
- package/__internal__/src/components/ContextMenu/helpers.d.ts +2 -2
- package/__internal__/src/components/ContextMenu/types.d.ts +5 -5
- package/__internal__/src/components/ContextMenu/types.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldButton/FieldButton.d.ts +1 -1
- package/__internal__/src/components/FieldComponents/FieldButton/FieldButton.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldClearButton/FieldClearButton.d.ts +1 -0
- package/__internal__/src/components/FieldComponents/FieldClearButton/FieldClearButton.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldClearButton/FieldClearButton.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldWrapper/FieldWrapper.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldWrapper/FieldWrapper.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldWrapper/types.d.ts +1 -0
- package/__internal__/src/components/FieldComponents/FieldWrapper/types.js.map +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelect.css +9 -0
- package/__internal__/src/components/FlatSelect/FlatSelect.d.ts +4 -0
- package/__internal__/src/components/FlatSelect/FlatSelect.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelect.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/FlatSelectControlLayout.d.ts +16 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/FlatSelectControlLayout.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/FlatSelectControlLayout.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/FlatSelectCreateButton.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/FlatSelectCreateButton.d.ts +19 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/FlatSelectCreateButton.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/FlatSelectCreateButton.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/FlatSelectFooter.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/FlatSelectFooter.d.ts +12 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/FlatSelectFooter.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/FlatSelectFooter.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/FlatSelectGroupLabel.d.ts +10 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/FlatSelectGroupLabel.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/FlatSelectGroupLabel.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/FlatSelectItem.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/FlatSelectItem.d.ts +17 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/FlatSelectItem.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/FlatSelectItem.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/FlatSelectItemAll.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/FlatSelectItemAll.d.ts +17 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/FlatSelectItemAll.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/FlatSelectItemAll.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.d.ts +53 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/FlatSelectLoader.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/FlatSelectLoader.d.ts +3 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/FlatSelectLoader.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/FlatSelectLoader.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/FlatSelectRenderItem.d.ts +24 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/FlatSelectRenderItem.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/FlatSelectRenderItem.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.d.ts +14 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/defaultProps.d.ts +22 -0
- package/__internal__/src/components/FlatSelect/defaultProps.js +2 -0
- package/__internal__/src/components/FlatSelect/defaultProps.js.map +1 -0
- package/__internal__/src/components/FlatSelect/index.d.ts +2 -0
- package/__internal__/src/components/FlatSelect/index.js +2 -0
- package/__internal__/src/components/FlatSelect/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/types.d.ts +133 -0
- package/__internal__/src/components/FlatSelect/types.js +2 -0
- package/__internal__/src/components/FlatSelect/types.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/helpers.d.ts +4 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/helpers.js +2 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/helpers.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/index.js +2 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/useFlatSelect.d.ts +52 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/useFlatSelect.js +2 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/useFlatSelect.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/index.js +2 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/useRenderItem.d.ts +10 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/useRenderItem.js +2 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/useRenderItem.js.map +1 -0
- package/__internal__/src/components/ListCanary/ListBox/ListBox.js +1 -1
- package/__internal__/src/components/ListCanary/ListBox/ListBox.js.map +1 -1
- package/__internal__/src/components/ListCanary/types.d.ts +1 -0
- package/__internal__/src/components/ListCanary/types.js.map +1 -1
- package/__internal__/src/components/Modal/Modal.css +1 -1
- package/__internal__/src/components/Modal/Modal.d.ts +8 -13
- package/__internal__/src/components/Modal/Modal.js +1 -1
- package/__internal__/src/components/Modal/Modal.js.map +1 -1
- package/__internal__/src/components/Modal/ModalHeader/ModalHeader.css +1 -0
- package/__internal__/src/components/Modal/ModalHeader/ModalHeader.d.ts +14 -0
- package/__internal__/src/components/Modal/ModalHeader/ModalHeader.js +2 -0
- package/__internal__/src/components/Modal/ModalHeader/ModalHeader.js.map +1 -0
- package/__internal__/src/components/Modal/ModalHeader/index.d.ts +1 -0
- package/__internal__/src/components/Modal/ModalHeader/index.js +2 -0
- package/__internal__/src/components/Modal/ModalHeader/index.js.map +1 -0
- package/__internal__/src/components/Modal/ModalLayout/ModalLayout.css +5 -0
- package/__internal__/src/components/Modal/ModalLayout/ModalLayout.d.ts +10 -0
- package/__internal__/src/components/Modal/ModalLayout/ModalLayout.js +2 -0
- package/__internal__/src/components/Modal/ModalLayout/ModalLayout.js.map +1 -0
- package/__internal__/src/components/Modal/ModalLayout/index.d.ts +1 -0
- package/__internal__/src/components/Modal/ModalLayout/index.js +2 -0
- package/__internal__/src/components/Modal/ModalLayout/index.js.map +1 -0
- package/__internal__/src/components/Modal/index.d.ts +3 -0
- package/__internal__/src/components/Modal/index.js +1 -1
- package/__internal__/src/components/Modal/index.js.map +1 -1
- package/__internal__/src/components/Modal/types.d.ts +23 -0
- package/__internal__/src/components/Modal/types.js +2 -0
- package/__internal__/src/components/Modal/types.js.map +1 -0
- package/__internal__/src/components/Modal/useModal.d.ts +20 -0
- package/__internal__/src/components/Modal/useModal.js +2 -0
- package/__internal__/src/components/Modal/useModal.js.map +1 -0
- package/__internal__/src/components/Pagination/PaginationArrow/PaginationArrow.d.ts +1 -0
- package/__internal__/src/components/Pagination/PaginationArrow/PaginationArrow.js +1 -1
- package/__internal__/src/components/Pagination/PaginationArrow/PaginationArrow.js.map +1 -1
- package/__internal__/src/components/Popover/Popover.d.ts +2 -2
- package/__internal__/src/components/Popover/Popover.js.map +1 -1
- package/__internal__/src/components/PortalWithTheme/PortalWithTheme.js +1 -1
- package/__internal__/src/components/PortalWithTheme/PortalWithTheme.js.map +1 -1
- package/__internal__/src/components/RadioGroup/RadioGroup.js +1 -1
- package/__internal__/src/components/RadioGroup/RadioGroup.js.map +1 -1
- package/__internal__/src/components/SelectCanary/helpers.d.ts +1 -1
- package/__internal__/src/components/Sidebar/Sidebar.css +1 -1
- package/__internal__/src/components/Sidebar/Sidebar.d.ts +1 -36
- package/__internal__/src/components/Sidebar/Sidebar.js +1 -1
- package/__internal__/src/components/Sidebar/Sidebar.js.map +1 -1
- package/__internal__/src/components/Sidebar/index.d.ts +1 -0
- package/__internal__/src/components/Sidebar/index.js +1 -1
- package/__internal__/src/components/Sidebar/index.js.map +1 -1
- package/__internal__/src/components/Sidebar/types.d.ts +47 -0
- package/__internal__/src/components/Sidebar/types.js +2 -0
- package/__internal__/src/components/Sidebar/types.js.map +1 -0
- package/__internal__/src/components/Sidebar/useAnimateTimeout.d.ts +2 -0
- package/__internal__/src/components/Sidebar/useAnimateTimeout.js +2 -0
- package/__internal__/src/components/Sidebar/useAnimateTimeout.js.map +1 -0
- package/__internal__/src/components/ThemeToggler/helpers.d.ts +1 -1
- package/__internal__/src/components/ThemeToggler/types.d.ts +1 -1
- package/__internal__/src/components/ThemeToggler/types.js.map +1 -1
- package/__internal__/src/components/Tooltip/types.d.ts +1 -1
- package/__internal__/src/components/Tooltip/types.js.map +1 -1
- package/__internal__/src/components/TooltipDeprecated/TooltipDeprecated.d.ts +1 -1
- package/__internal__/src/components/TooltipDeprecated/TooltipDeprecated.js.map +1 -1
- package/__internal__/src/hooks/useComponentSize/useComponentSize.d.ts +1 -1
- package/__internal__/src/hooks/useComponentSize/useComponentSize.js +1 -1
- package/__internal__/src/hooks/useComponentSize/useComponentSize.js.map +1 -1
- package/__internal__/src/mixs/MixFlex/MixFlex.d.ts +2 -2
- package/__internal__/src/mixs/MixFlex/MixFlex.js.map +1 -1
- package/__internal__/src/mixs/MixSpace/MixSpace.d.ts +1 -1
- package/__internal__/src/mixs/MixSpace/MixSpace.js +1 -1
- package/__internal__/src/mixs/MixSpace/MixSpace.js.map +1 -1
- package/__internal__/src/utils/state/useClickOutsideAtom/index.d.ts +1 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/index.js +2 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/index.js.map +1 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/useClickOutside.d.ts +9 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/useClickOutside.js +2 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/useClickOutside.js.map +1 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/getElementSize.d.ts +4 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/getElementSize.js +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/getElementSize.js.map +1 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/index.d.ts +3 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/index.js +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/index.js.map +1 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/types.d.ts +4 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/types.js +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/types.js.map +1 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/useComponentSize.d.ts +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/useComponentSize.js +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/useComponentSize.js.map +1 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/index.d.ts +1 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/index.js +2 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/index.js.map +1 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/useElementAtomEventListener.d.ts +2 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/useElementAtomEventListener.js +2 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/useElementAtomEventListener.js.map +1 -0
- package/__internal__/src/utils/state/useKeysAtom/index.d.ts +1 -0
- package/__internal__/src/utils/state/useKeysAtom/index.js +2 -0
- package/__internal__/src/utils/state/useKeysAtom/index.js.map +1 -0
- package/__internal__/src/utils/state/useKeysAtom/useKeysAtom.d.ts +14 -0
- package/__internal__/src/utils/state/useKeysAtom/useKeysAtom.js +2 -0
- package/__internal__/src/utils/state/useKeysAtom/useKeysAtom.js.map +1 -0
- package/__internal__/src/utils/state/useRefAtom/useRefAtom.d.ts +1 -1
- package/__internal__/src/utils/state/useRefAtom/useRefAtom.js.map +1 -1
- package/__internal__/src/utils/state/useResizeObservedAtom/index.d.ts +1 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/index.js +2 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/index.js.map +1 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/useResizeObservedAtom.d.ts +2 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/useResizeObservedAtom.js +2 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/useResizeObservedAtom.js.map +1 -0
- package/__internal__/src/utils/state/withCtx/withCtx.js +1 -1
- package/__internal__/src/utils/state/withCtx/withCtx.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFlatSelect.js","names":["action","sleep","withConcurrency","useAction","useAtom","useUpdate","useRef","useRefs","animateTimeout","getGroups","useClickOutsideAtom","useCreateAtom","useElementAtomEventListener","useKeysAtom","usePickAtom","usePropAtom","useRefAtom","scrollToIndex","isMultipleParams","params","multiple","isOptionForCreate","Object","prototype","hasOwnProperty","call","isNotOptionForCreate","isOptionForSelectAll","getCountedGroups","groups","selectAll","copyGroups","forEach","group","index","items","__optionSelectAll","groupKey","key","useFlatSelect","propsAtom","inputRef","listRef","anchorRefAtom","anchorElementAtom","ctx","ref","spy","current","rootElementAtom","rootRef","rootFocusAtom","rootMouseDownAtom","itemsAtom","selectAllAtom","valuePropAtom","disabledPropAtom","disabledAtom","inputValuePropAtom","openPropAtom","withOnCreateAtom","onCreate","dropdownZIndexAtom","zIndex","style","ignoreOutsideClicksRefsAtom","getItemKeyAtom","valueAtom","value","Array","isArray","inputFocusAtom","openAtom","highlightedIndexAtom","inputValueAtom","clearButtonAtom","clearButton","inputValue","length","setRootFocus","schedule","pipe","handleRootMouseDown","handleRootMouseUp","handleRootFocus","handleRootBlur","onInput","get","optionForCreateAtom","withOnCreate","label","__optionForCreate","propsForVisibleItemsAtom","visibleItemsAtom","getItemGroupKey","getGroupKey","optionForCreate","resultGroups","groupsCounterAtom","visibleItems","getItemDisabled","groupCounter","getFlatSelectedCounter","groupItems","some","item","maxHighlightIndex","_","maxHighlightIndexAtom","hasItemsAtom","optionsRefs","scrollToHighlightedIndex","highlightedIndex","listElement","highlightIndex","indexForHighlight","state","newIndex","Math","min","max","removeValue","e","valueItem","stopPropagation","props","getItemKey","onChange","newValue","filter","disabled","val","onChangeAll","nonDisabledItems","currentGroupValues","withoutGroupValues","el","find","push","handleInputChange","input","target","clearValue","getHandleRemoveValue","ArrowUp","preventDefault","old","ArrowDown","Enter","getData","counter","Escape","focus","Tab","keysAtom","PageUp","PageDown","Home","End","getOptionActions","onClick","onMouseEnter","getItems","console","log","handleInputFocus","onInputFocus","focused","handleInputBlur","onInputBlur","isActiveAtom","ignoreClicksElementsAtom","rootElement","anchorElement","ignoreOutsideClicksElements","map","handler","inputValueProp","openProp","handleAnchorClick","elAtom","open","onOpen"],"sources":["../../../../../../src/components/FlatSelect/useFlatSelect/useFlatSelect.tsx"],"sourcesContent":["import { action, AtomMut, sleep, withConcurrency } from '@reatom/framework';\nimport { useAction, useAtom, useUpdate } from '@reatom/npm-react';\nimport React, { useRef } from 'react';\n\nimport { useRefs } from '##/hooks/useRefs';\nimport { animateTimeout } from '##/mixs/MixPopoverAnimate';\nimport { getGroups, GetGroupsResult } from '##/utils/getGroups';\nimport { useClickOutsideAtom } from '##/utils/state/useClickOutsideAtom';\nimport { useCreateAtom } from '##/utils/state/useCreateAtom';\nimport { useElementAtomEventListener } from '##/utils/state/useElementAtomEventListener';\nimport { KeyHandlers, useKeysAtom } from '##/utils/state/useKeysAtom';\nimport { usePickAtom, usePropAtom } from '##/utils/state/usePickAtom';\nimport { useRefAtom } from '##/utils/state/useRefAtom';\n\nimport { PropsWithDefault } from '../defaultProps';\nimport {\n CountedGroup,\n FlatSelectAllItem,\n FlatSelectGroupDefault,\n FlatSelectItemDefault,\n FlatSelectPropOnChange,\n Group,\n} from '../types';\nimport { scrollToIndex } from './helpers';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\nexport type OptionForCreate = {\n label: string;\n __optionForCreate: boolean;\n};\n\nexport type UseFlatSelectProps<\n ITEM = FlatSelectItemDefault,\n GROUP = FlatSelectGroupDefault,\n MULTIPLE extends boolean = false,\n> = {\n propsAtom: AtomMut<PropsWithDefault<ITEM, GROUP, MULTIPLE>>;\n};\n\nexport type OptionProps<ITEM> = {\n index: number;\n item: ITEM | OptionForCreate | FlatSelectAllItem;\n};\n\nexport type GetOptionPropsResult = {\n onClick: (e: React.MouseEvent) => void;\n onMouseEnter: (e: React.MouseEvent) => void;\n};\n\nconst isMultipleParams = <\n ITEM = FlatSelectItemDefault,\n GROUP = FlatSelectGroupDefault,\n>(\n params: PropsWithDefault<ITEM, GROUP, boolean>,\n): params is PropsWithDefault<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP> | ITEM,\n): params is OptionForCreate => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isNotOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP>,\n): params is Group<ITEM, GROUP> => {\n return (\n params && !Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isOptionForSelectAll = <ITEM,>(\n params: FlatSelectAllItem | ITEM,\n): params is FlatSelectAllItem => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionSelectAll')\n );\n};\n\nexport function getCountedGroups<ITEM, GROUP>(\n groups: GetGroupsResult<ITEM, GROUP>,\n selectAll: boolean,\n): CountedGroup<ITEM, GROUP>[] {\n const copyGroups: CountedGroup<ITEM, GROUP>[] = [...groups];\n\n if (selectAll) {\n groups.forEach((group, index) => {\n copyGroups[index].items = [\n {\n __optionSelectAll: true,\n groupKey: group.key,\n },\n ...copyGroups[index].items,\n ];\n });\n }\n return copyGroups;\n}\n\nexport const useFlatSelect = <\n ITEM = FlatSelectItemDefault,\n GROUP = FlatSelectItemDefault,\n MULTIPLE extends boolean = false,\n>({\n propsAtom,\n}: UseFlatSelectProps<ITEM, GROUP, MULTIPLE>) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n\n const anchorRefAtom = usePropAtom(propsAtom, 'anchorRef');\n const anchorElementAtom = useCreateAtom((ctx) => {\n const ref = ctx.spy(anchorRefAtom);\n return ref?.current ? ref.current : null;\n });\n\n const [rootElementAtom, rootRef] = useRefAtom<HTMLDivElement>();\n\n const rootFocusAtom = useCreateAtom(false);\n\n const rootMouseDownAtom = useCreateAtom(false);\n\n const itemsAtom = usePropAtom(propsAtom, 'items');\n const selectAllAtom = usePropAtom(propsAtom, 'selectAll');\n const valuePropAtom = usePropAtom(propsAtom, 'value');\n const disabledPropAtom = usePropAtom(propsAtom, 'disabled');\n const disabledAtom = useCreateAtom((ctx) => !!ctx.spy(disabledPropAtom));\n const inputValuePropAtom = usePropAtom(propsAtom, 'inputValue');\n const openPropAtom = usePropAtom(propsAtom, 'isOpen');\n const withOnCreateAtom = useCreateAtom(\n (ctx) => !!ctx.spy(propsAtom).onCreate,\n );\n\n const dropdownZIndexAtom = useCreateAtom((ctx) => {\n const zIndex = ctx.spy(propsAtom).style?.zIndex;\n return typeof zIndex === 'number' ? zIndex + 1 : undefined;\n });\n const ignoreOutsideClicksRefsAtom = usePropAtom(\n propsAtom,\n 'ignoreOutsideClicksRefs',\n );\n\n const getItemKeyAtom = usePropAtom(propsAtom, 'getItemKey');\n\n const valueAtom = useCreateAtom((ctx) => {\n const value = ctx.spy(valuePropAtom);\n return (value && (Array.isArray(value) ? value : [value])) || [];\n }) as unknown as AtomMut<ITEM[]>;\n const inputFocusAtom = useCreateAtom(false);\n const openAtom = useCreateAtom(false);\n const highlightedIndexAtom = useCreateAtom(-1);\n const inputValueAtom = useCreateAtom('');\n\n const clearButtonAtom = useCreateAtom((ctx) => {\n const { clearButton } = ctx.spy(propsAtom);\n const inputValue = ctx.spy(inputValueAtom);\n const value = ctx.spy(valueAtom);\n return !!(clearButton && (value?.length || inputValue));\n });\n\n const setRootFocus = useAction(\n action(async (ctx, value: boolean) => {\n await ctx.schedule(() => sleep(5));\n rootFocusAtom(ctx, value);\n }).pipe(withConcurrency()),\n );\n const handleRootMouseDown = useAction((ctx) => rootMouseDownAtom(ctx, true));\n const handleRootMouseUp = useAction((ctx) => rootMouseDownAtom(ctx, false));\n const handleRootFocus = useAction(() => setRootFocus(true));\n const handleRootBlur = useAction(() => setRootFocus(false));\n const onInput = useAction((ctx, value: string | undefined = '') => {\n ctx.get(propsAtom).onInput?.(value);\n inputValueAtom(ctx, value);\n\n if (inputRef.current) {\n inputRef.current.value = value;\n }\n });\n\n const optionForCreateAtom = useCreateAtom<OptionForCreate | undefined>(\n (ctx) => {\n const withOnCreate = ctx.spy(withOnCreateAtom);\n if (!withOnCreate) {\n return undefined;\n }\n const inputValue = ctx.spy(inputValueAtom);\n const optionForCreate: OptionForCreate = {\n label: inputValue,\n __optionForCreate: true,\n };\n return optionForCreate;\n },\n );\n\n const propsForVisibleItemsAtom = usePickAtom(\n propsAtom as AtomMut<PropsWithDefault<ITEM, GROUP, boolean>>,\n [\n 'selectAll',\n 'groups',\n 'getItemGroupKey',\n 'getGroupKey',\n 'getItemKey',\n 'items',\n ],\n );\n\n const visibleItemsAtom = useCreateAtom((ctx) => {\n const { selectAll, groups, getItemGroupKey, getGroupKey, items } = ctx.spy(\n propsForVisibleItemsAtom,\n );\n\n const optionForCreate = ctx.spy(optionForCreateAtom);\n\n const resultGroups = getCountedGroups(\n getGroups(\n items,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n undefined,\n ),\n !!selectAll && items.length ? selectAll : false,\n );\n\n return optionForCreate ? [optionForCreate, ...resultGroups] : resultGroups;\n });\n\n const groupsCounterAtom = useCreateAtom((ctx) => {\n const visibleItems = ctx.spy(visibleItemsAtom);\n const selectAll = ctx.spy(selectAllAtom);\n const value = ctx.spy(valueAtom);\n const { getItemDisabled } = ctx.get(propsAtom);\n\n const groupCounter: Record<string, [number, number]> = {};\n\n const getFlatSelectedCounter = () => {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n continue;\n }\n groupCounter[group.key] = [0, group.items.length - 1];\n for (const groupItems of group.items) {\n if (\n !isOptionForSelectAll(groupItems) &&\n !getItemDisabled(groupItems) &&\n value.some((item) => item === groupItems)\n ) {\n groupCounter[group.key][0] = (groupCounter[group.key][0] || 0) + 1;\n }\n }\n }\n };\n\n if (selectAll) {\n getFlatSelectedCounter();\n }\n\n return groupCounter;\n });\n\n // eslint-disable-next-line no-unused-vars\n const [maxHighlightIndex, _, maxHighlightIndexAtom] = useAtom((ctx) => {\n const items = ctx.spy(itemsAtom);\n const optionForCreate = ctx.spy(withOnCreateAtom);\n const selectAll = ctx.spy(selectAllAtom);\n const visibleItems = ctx.spy(visibleItemsAtom);\n\n return (\n items.length +\n // кнопка для создания\n (optionForCreate ? 1 : 0) +\n // кнопки выбрать все\n (selectAll ? visibleItems.length : 0)\n );\n });\n\n const hasItemsAtom = useCreateAtom((ctx) => {\n const items = ctx.spy(itemsAtom);\n const optionForCreate = ctx.spy(optionForCreateAtom);\n\n if (optionForCreate) {\n return true;\n }\n\n return !!items.length;\n });\n\n const optionsRefs = useRefs<HTMLDivElement>(maxHighlightIndex, undefined);\n\n const scrollToHighlightedIndex = useAction((ctx) => {\n const items = ctx.get(itemsAtom);\n const highlightedIndex = ctx.get(highlightedIndexAtom);\n const listElement = listRef.current;\n\n if (items.length > 0 && listElement) {\n scrollToIndex(highlightedIndex, listElement, optionsRefs);\n }\n });\n\n const highlightIndex = useAction(\n (ctx, indexForHighlight: IndexForHighlight) => {\n if (ctx.get(disabledAtom)) {\n return;\n }\n\n highlightedIndexAtom(ctx, (state) => {\n const newIndex = Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(state)\n : indexForHighlight,\n ),\n ctx.get(maxHighlightIndexAtom) - 1,\n );\n\n return newIndex;\n });\n },\n );\n\n const removeValue = useAction(\n (ctx, e: React.SyntheticEvent, valueItem: ITEM) => {\n e.stopPropagation();\n const props = ctx.get(propsAtom);\n\n if (isMultipleParams(props)) {\n const { getItemDisabled, getItemKey, onChange } = props;\n\n const newValue = ctx.get(valueAtom).filter((item) => {\n return getItemDisabled?.(item)\n ? true\n : getItemKey(item) !== getItemKey(valueItem);\n });\n\n onChange(newValue?.length ? newValue : null, {\n e,\n });\n }\n },\n );\n\n const onChange = useAction((ctx, e: React.SyntheticEvent, item: ITEM) => {\n const { getItemDisabled, getItemKey, onChange, multiple, disabled } =\n ctx.get(propsAtom);\n\n if (disabled || (getItemDisabled && getItemDisabled(item))) {\n return;\n }\n\n if (multiple) {\n const value = ctx.get(valueAtom);\n const newValue = value.some(\n (value) => getItemKey(value) === getItemKey(item),\n )\n ? value.filter((value) => getItemKey(value) !== getItemKey(item))\n : [...value, item];\n const val = newValue.length ? newValue : null;\n (onChange as FlatSelectPropOnChange<ITEM, true>)(val, { e });\n } else {\n (onChange as FlatSelectPropOnChange<ITEM, false>)(item, { e });\n }\n });\n\n const onChangeAll = useAction(\n (ctx, e: React.SyntheticEvent, items: ITEM[]) => {\n const value = ctx.get(valueAtom);\n const { getItemDisabled, getItemKey, multiple, onChange } =\n ctx.get(propsAtom);\n\n if (multiple) {\n const nonDisabledItems = getItemDisabled\n ? items.filter((item) => !getItemDisabled(item))\n : items;\n\n const currentGroupValues: ITEM[] = [];\n const withoutGroupValues: ITEM[] = [];\n value.forEach((el) => {\n if (\n nonDisabledItems.find((item) => getItemKey(el) === getItemKey(item))\n ) {\n currentGroupValues.push(el);\n } else {\n withoutGroupValues.push(el);\n }\n });\n if (currentGroupValues.length === nonDisabledItems.length) {\n (onChange as FlatSelectPropOnChange<ITEM, true>)(\n withoutGroupValues.length ? withoutGroupValues : null,\n { e },\n );\n } else {\n const val = [...withoutGroupValues, ...nonDisabledItems];\n (onChange as FlatSelectPropOnChange<ITEM, true>)(\n val.length ? val : null,\n { e },\n );\n }\n }\n },\n );\n\n const onCreate = useAction((ctx, e: React.SyntheticEvent) => {\n const { onCreate } = ctx.get(propsAtom);\n onCreate?.(ctx.get(inputValueAtom), { e });\n onInput('');\n });\n\n // Handlers\n\n const handleInputChange = useAction(\n (ctx, e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!ctx.get(disabledAtom) && ctx.get(propsAtom).input) {\n onInput?.(e.target.value);\n }\n },\n );\n\n const clearValue = useAction(() => onInput(''));\n\n const getHandleRemoveValue = useAction(\n (_, item: ITEM) => (e: React.SyntheticEvent) => removeValue(e, item),\n );\n\n // Prop Getters\n\n const ArrowUp = useAction((ctx, e: KeyboardEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (!ctx.get(disabledAtom)) {\n highlightIndex((old) => old - 1);\n scrollToHighlightedIndex();\n }\n });\n\n const ArrowDown = useAction((ctx, e: KeyboardEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (!ctx.get(disabledAtom)) {\n highlightIndex((old) => old + 1);\n scrollToHighlightedIndex();\n }\n });\n\n const Enter = useAction((ctx, e: React.SyntheticEvent) => {\n const { items } = ctx.get(propsAtom);\n const highlightedIndex = ctx.get(highlightedIndexAtom);\n const inputValue = ctx.get(inputValueAtom);\n const visibleItems = ctx.get(visibleItemsAtom);\n\n if (inputValue || items[highlightedIndex]) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n const getData = (\n index: number,\n ): [\n CountedGroup<ITEM, GROUP> | undefined,\n FlatSelectAllItem | OptionForCreate | ITEM | undefined,\n ] => {\n let counter = 0;\n\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n if (counter === index) {\n return [undefined, group];\n }\n counter++;\n continue;\n }\n if (group.items.length + counter > index) {\n return [group, group.items[index - counter]];\n }\n counter += group.items.length;\n }\n return [undefined, undefined];\n };\n\n const [group, item] = getData(highlightedIndex);\n\n if (isOptionForCreate(item)) {\n onCreate(e);\n return;\n }\n\n if (isOptionForSelectAll(item)) {\n onChangeAll(\n e,\n (group?.items.filter((el) => !isOptionForSelectAll(el)) as ITEM[]) ??\n [],\n );\n return;\n }\n\n if (item) {\n onChange(e, item);\n }\n }) as unknown as (e: KeyboardEvent) => void;\n\n const Escape = useAction((ctx, e: KeyboardEvent) => {\n e.preventDefault();\n e.stopPropagation();\n openAtom(ctx, false);\n\n ctx.get(anchorRefAtom)?.current?.focus();\n });\n\n const Tab = useAction((ctx, e: KeyboardEvent) => {\n if (ctx.get(propsAtom).input && !ctx.get(inputFocusAtom)) {\n return;\n }\n if (ctx.get(openAtom)) {\n e.preventDefault();\n e.stopPropagation();\n openAtom(ctx, false);\n }\n\n ctx.get(anchorRefAtom)?.current?.focus();\n });\n\n const keysAtom = useCreateAtom<KeyHandlers>({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n });\n\n const getOptionActions = useAction(\n (ctx, { index, item }: OptionProps<ITEM>): GetOptionPropsResult => {\n if (isOptionForCreate(item)) {\n return {\n onClick: (e) => {\n onCreate(e);\n highlightIndex(index);\n },\n onMouseEnter: () => ctx.get(rootFocusAtom) && highlightIndex(index),\n };\n }\n if (isOptionForSelectAll(item)) {\n const getItems = (): ITEM[] => {\n const visibleItems = ctx.get(visibleItemsAtom);\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n continue;\n }\n if (group.key === item.groupKey) {\n return (\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? []\n );\n }\n }\n return [];\n };\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChangeAll(e, getItems());\n highlightIndex(index);\n },\n onMouseEnter: () => ctx.get(rootFocusAtom) && highlightIndex(index),\n };\n }\n\n return {\n onClick: (e: React.SyntheticEvent) => {\n console.log('onClick', item);\n highlightIndex(index);\n onChange(e, item);\n },\n onMouseEnter: () => ctx.get(rootFocusAtom) && highlightIndex(index),\n };\n },\n );\n\n const handleInputFocus = useAction(\n (ctx, e: React.FocusEvent<HTMLInputElement>): void => {\n const { disabled, onInputFocus } = ctx.get(propsAtom);\n const focused = ctx.get(inputFocusAtom);\n\n if (!disabled) {\n if (!focused) {\n inputFocusAtom(ctx, true);\n }\n onInputFocus?.(e);\n }\n },\n );\n\n const handleInputBlur = useAction(\n (ctx, e: React.FocusEvent<HTMLInputElement>): void => {\n if (ctx.get(inputFocusAtom)) {\n inputFocusAtom(ctx, false);\n }\n\n ctx.get(propsAtom).onInputBlur?.(e);\n },\n );\n\n useClickOutsideAtom({\n isActiveAtom: openAtom,\n ignoreClicksElementsAtom: useCreateAtom((ctx) => {\n const rootElement = ctx.spy(rootElementAtom);\n const anchorElement = ctx.spy(anchorElementAtom);\n const ignoreOutsideClicksElements = ctx\n .spy(ignoreOutsideClicksRefsAtom)\n ?.map((ref) => ref.current);\n\n return [\n rootElement,\n anchorElement,\n ...(ignoreOutsideClicksElements || []),\n ];\n }),\n handler: useAction((ctx) => {\n openAtom(ctx, false);\n }),\n });\n\n useClickOutsideAtom({\n isActiveAtom: rootFocusAtom,\n ignoreClicksElementsAtom: useCreateAtom((ctx) => {\n const rootElement = ctx.spy(rootElementAtom);\n\n return [rootElement] as (HTMLElement | null)[];\n }),\n handler: handleRootBlur,\n });\n\n useUpdate(\n (ctx, focus) => {\n if (\n focus &&\n !ctx.get(rootMouseDownAtom) &&\n ctx.get(highlightedIndexAtom) === -1 &&\n !ctx.get(disabledAtom)\n ) {\n highlightedIndexAtom(ctx, 0);\n }\n if (!focus) {\n highlightedIndexAtom(ctx, -1);\n }\n },\n [rootFocusAtom],\n );\n\n useUpdate(\n (ctx, inputValueProp = '') => {\n const inputValue = ctx.get(inputValueAtom);\n\n if (inputValueProp !== inputValue) {\n onInput(inputValueProp);\n }\n },\n [inputValuePropAtom],\n );\n\n useUpdate((ctx, openProp = false) => openAtom(ctx, openProp), [openPropAtom]);\n\n useUpdate((ctx) => highlightedIndexAtom(ctx, -1), [visibleItemsAtom]);\n\n useUpdate(\n (ctx, disabledAtom) => disabledAtom && highlightedIndexAtom(ctx, -1),\n [disabledAtom],\n );\n\n const handleAnchorClick = useAction((ctx) =>\n openAtom(ctx, !ctx.get(openAtom)),\n );\n\n useElementAtomEventListener(anchorElementAtom, 'click', handleAnchorClick);\n useElementAtomEventListener(rootElementAtom, 'focus', handleRootFocus);\n useElementAtomEventListener(rootElementAtom, 'click', handleRootFocus);\n useElementAtomEventListener(rootElementAtom, 'blur', handleRootBlur);\n useElementAtomEventListener(\n rootElementAtom,\n 'mousedown',\n handleRootMouseDown,\n );\n useElementAtomEventListener(rootElementAtom, 'mouseup', handleRootMouseUp);\n\n useKeysAtom({\n keysAtom,\n elAtom: rootElementAtom,\n isActiveAtom: useCreateAtom((ctx) => {\n if (ctx.spy(anchorRefAtom)?.current && ctx.spy(openAtom)) {\n return true;\n }\n return !ctx.spy(disabledAtom);\n }),\n });\n\n useUpdate(\n async (ctx, open) => {\n ctx.get(propsAtom).onOpen?.(open);\n await sleep(animateTimeout);\n if (!open) {\n onInput('');\n inputFocusAtom(ctx, false);\n rootFocusAtom(ctx, false);\n return;\n }\n if (open) {\n ctx.get(rootElementAtom)?.focus();\n }\n },\n [openAtom],\n );\n\n return {\n openAtom,\n inputFocusAtom,\n inputValueAtom,\n clearButtonAtom,\n onInput,\n getOptionActions,\n handleInputBlur,\n getHandleRemoveValue,\n inputRef,\n listRef,\n handleInputChange,\n handleInputFocus,\n visibleItemsAtom,\n clearValue,\n optionsRefs,\n highlightedIndexAtom,\n valueAtom,\n getItemKeyAtom,\n onChangeAll,\n onCreate,\n onChange,\n hasItemsAtom,\n groupsCounterAtom,\n dropdownZIndexAtom,\n rootRef,\n disabledAtom,\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useRenderItem';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/FlatSelect/useRenderItem/index.ts"],"sourcesContent":["export * from './useRenderItem';\n"],"mappings":"AAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FieldPropSize } from '../../FieldComponents';
|
|
2
|
+
import { FlatSelectItemDefault, FlatSelectPropGetItemDisabled, FlatSelectPropGetItemLabel, FlatSelectPropRenderItem } from '../types';
|
|
3
|
+
export declare const useRenderItem: <ITEM = FlatSelectItemDefault>({ getItemLabel, getItemDisabled, multiple, disabled: componentDisabled, size, renderItem, }: {
|
|
4
|
+
getItemLabel: FlatSelectPropGetItemLabel<ITEM>;
|
|
5
|
+
getItemDisabled: FlatSelectPropGetItemDisabled<ITEM>;
|
|
6
|
+
multiple?: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
size: FieldPropSize;
|
|
9
|
+
renderItem?: FlatSelectPropRenderItem<ITEM>;
|
|
10
|
+
}) => FlatSelectPropRenderItem<ITEM>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useAction}from"@reatom/npm-react";import React from"react";import{Checkbox}from"../../Checkbox";import{ListItem}from"../../ListCanary";import{Radio}from"../../Radio";export var useRenderItem=function(a){var b=a.getItemLabel,c=a.getItemDisabled,d=a.multiple,e=a.disabled,f=a.size,g=a.renderItem,h=useAction(function(a,g){var h=g.item,i=g.active,j=g.hovered,k=g.onClick,l=g.onMouseEnter,m=g.ref,n=c(h)||e;return React.createElement(ListItem,{ref:m,"aria-selected":i,"aria-disabled":n,role:"option",label:b(h),size:f,active:j,onMouseEnter:l,disabled:n,onClick:k,leftSide:d?React.createElement(Checkbox,{checked:i,disabled:n,size:f,tabIndex:-1}):React.createElement(Radio,{checked:i,disabled:n,size:f,tabIndex:-1})})},[b,c,d,e,f]);return g||h};
|
|
2
|
+
//# sourceMappingURL=useRenderItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRenderItem.js","names":["useAction","React","Checkbox","ListItem","Radio","useRenderItem","getItemLabel","getItemDisabled","multiple","componentDisabled","disabled","size","renderItem","renderItemDefault","ctx","item","active","hovered","onClick","onMouseEnter","ref"],"sources":["../../../../../../src/components/FlatSelect/useRenderItem/useRenderItem.tsx"],"sourcesContent":["import { useAction } from '@reatom/npm-react';\nimport React from 'react';\n\nimport { Checkbox } from '##/components/Checkbox';\nimport { FieldPropSize } from '##/components/FieldComponents';\nimport { ListItem } from '##/components/ListCanary';\nimport { Radio } from '##/components/Radio';\n\nimport {\n FlatSelectItemDefault,\n FlatSelectPropGetItemDisabled,\n FlatSelectPropGetItemLabel,\n FlatSelectPropRenderItem,\n RenderItemProps,\n} from '../types';\n\nexport const useRenderItem = <ITEM = FlatSelectItemDefault,>({\n getItemLabel,\n getItemDisabled,\n multiple,\n disabled: componentDisabled,\n size,\n renderItem,\n}: {\n getItemLabel: FlatSelectPropGetItemLabel<ITEM>;\n getItemDisabled: FlatSelectPropGetItemDisabled<ITEM>;\n multiple?: boolean;\n disabled?: boolean;\n size: FieldPropSize;\n renderItem?: FlatSelectPropRenderItem<ITEM>;\n}) => {\n const renderItemDefault: FlatSelectPropRenderItem<ITEM> = useAction(\n (\n ctx,\n {\n item,\n active,\n hovered,\n onClick,\n onMouseEnter,\n ref,\n }: RenderItemProps<ITEM>,\n ) => {\n const disabled = getItemDisabled(item) || componentDisabled;\n\n return (\n <ListItem\n ref={ref}\n aria-selected={active}\n aria-disabled={disabled}\n role=\"option\"\n label={getItemLabel(item)}\n size={size}\n active={hovered}\n onMouseEnter={onMouseEnter}\n disabled={disabled}\n onClick={onClick}\n leftSide={\n multiple ? (\n <Checkbox\n checked={active}\n disabled={disabled}\n size={size}\n tabIndex={-1}\n />\n ) : (\n <Radio\n checked={active}\n disabled={disabled}\n size={size}\n tabIndex={-1}\n />\n )\n }\n />\n );\n },\n [getItemLabel, getItemDisabled, multiple, componentDisabled, size],\n );\n\n return renderItem || renderItemDefault;\n};\n"],"mappings":"AAAA,OAASA,SAAT,KAA0B,mBAA1B,CACA,MAAOC,MAAP,KAAkB,OAAlB,CAEA,OAASC,QAAT,sBAEA,OAASC,QAAT,wBACA,OAASC,KAAT,mBAUA,MAAO,IAAMC,cAAa,CAAG,WAcvB,IAbJC,EAaI,GAbJA,YAaI,CAZJC,CAYI,GAZJA,eAYI,CAXJC,CAWI,GAXJA,QAWI,CAVMC,CAUN,GAVJC,QAUI,CATJC,CASI,GATJA,IASI,CARJC,CAQI,GARJA,UAQI,CACEC,CAAiD,CAAGb,SAAS,CACjE,SACEc,CADF,GAUK,IAPDC,EAOC,GAPDA,IAOC,CANDC,CAMC,GANDA,MAMC,CALDC,CAKC,GALDA,OAKC,CAJDC,CAIC,GAJDA,OAIC,CAHDC,CAGC,GAHDA,YAGC,CAFDC,CAEC,GAFDA,GAEC,CACGV,CAAQ,CAAGH,CAAe,CAACQ,CAAD,CAAf,EAAyBN,CADvC,CAGH,MACE,qBAAC,QAAD,EACE,GAAG,CAAEW,CADP,CAEE,gBAAeJ,CAFjB,CAGE,gBAAeN,CAHjB,CAIE,IAAI,CAAC,QAJP,CAKE,KAAK,CAAEJ,CAAY,CAACS,CAAD,CALrB,CAME,IAAI,CAAEJ,CANR,CAOE,MAAM,CAAEM,CAPV,CAQE,YAAY,CAAEE,CARhB,CASE,QAAQ,CAAET,CATZ,CAUE,OAAO,CAAEQ,CAVX,CAWE,QAAQ,CACNV,CAAQ,CACN,oBAAC,QAAD,EACE,OAAO,CAAEQ,CADX,CAEE,QAAQ,CAAEN,CAFZ,CAGE,IAAI,CAAEC,CAHR,CAIE,QAAQ,CAAE,CAAC,CAJb,EADM,CAQN,oBAAC,KAAD,EACE,OAAO,CAAEK,CADX,CAEE,QAAQ,CAAEN,CAFZ,CAGE,IAAI,CAAEC,CAHR,CAIE,QAAQ,CAAE,CAAC,CAJb,EApBN,EA8BH,CA7CgE,CA8CjE,CAACL,CAAD,CAAeC,CAAf,CAAgCC,CAAhC,CAA0CC,CAA1C,CAA6DE,CAA7D,CA9CiE,CAD/D,CAkDJ,MAAOC,EAAU,EAAIC,CACtB,CAjEM"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","form","border","shadow","className"];import React,{forwardRef}from"react";import{cnMixScrollBar}from"../../../mixs/MixScrollBar";import{cnMixSpace}from"../../../mixs/MixSpace";import{defaultListPropSize}from"../types";import{cnListBox}from"./cnListBox";import{mapVerticalSpace}from"./mapVerticalSpace";export var ListBox=forwardRef(function(a,b){var c=a.size,d=void 0===c?defaultListPropSize:c,e=a.form,f=a.border,g=a.shadow,h=a.className,i=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({},i,{ref:b,className:cnListBox({size:d,form:e,border:f,shadow:g},[cnMixSpace({pV:mapVerticalSpace[d]}),cnMixScrollBar(),h])}))});
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","form","border","shadow","className"];import React,{forwardRef}from"react";import{cnMixScrollBar}from"../../../mixs/MixScrollBar";import{cnMixSpace}from"../../../mixs/MixSpace";import{defaultListPropSize}from"../types";import{cnListBox}from"./cnListBox";import{mapVerticalSpace}from"./mapVerticalSpace";export var ListBox=forwardRef(function(a,b){var c=a.size,d=void 0===c?defaultListPropSize:c,e=a.form,f=a.border,g=a.shadow,h=a.className,i=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({},i,{ref:b,className:cnListBox({size:d,form:e,border:f,shadow:g},[cnMixSpace({pV:mapVerticalSpace[d]}),cnMixScrollBar({size:"xs"}),h])}))});
|
|
2
2
|
//# sourceMappingURL=ListBox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListBox.js","names":["React","forwardRef","cnMixScrollBar","cnMixSpace","defaultListPropSize","cnListBox","mapVerticalSpace","ListBox","props","ref","size","form","border","shadow","className","otherProps","pV"],"sources":["../../../../../../src/components/ListCanary/ListBox/ListBox.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cnMixSpace } from '##/mixs/MixSpace';\n\nimport { defaultListPropSize, ListBoxProps } from '../types';\nimport { cnListBox } from './cnListBox';\nimport { mapVerticalSpace } from './mapVerticalSpace';\n\nexport const ListBox = forwardRef<HTMLDivElement, ListBoxProps>(\n (props, ref) => {\n const {\n size = defaultListPropSize,\n form,\n border,\n shadow,\n className,\n ...otherProps\n } = props;\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnListBox({ size, form, border, shadow }, [\n cnMixSpace({\n pV: mapVerticalSpace[size],\n }),\n cnMixScrollBar(),\n className,\n ])}\n />\n );\n },\n);\n"],"mappings":"iJAAA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,cAAT,kCACA,OAASC,UAAT,8BAEA,OAASC,mBAAT,gBACA,OAASC,SAAT,mBACA,OAASC,gBAAT,0BAEA,MAAO,IAAMC,QAAO,CAAGN,UAAU,CAC/B,SAACO,CAAD,CAAQC,CAAR,CAAgB,CACd,MAOID,CAPJ,CACEE,IADF,CACEA,CADF,YACSN,mBADT,GAEEO,CAFF,CAOIH,CAPJ,CAEEG,IAFF,CAGEC,CAHF,CAOIJ,CAPJ,CAGEI,MAHF,CAIEC,CAJF,CAOIL,CAPJ,CAIEK,MAJF,CAKEC,CALF,CAOIN,CAPJ,CAKEM,SALF,CAMKC,CANL,0BAOIP,CAPJ,YASA,MACE,4CACMO,CADN,EAEE,GAAG,CAAEN,CAFP,CAGE,SAAS,CAAEJ,SAAS,CAAC,CAAEK,IAAI,CAAJA,CAAF,CAAQC,IAAI,CAAJA,CAAR,CAAcC,MAAM,CAANA,CAAd,CAAsBC,MAAM,CAANA,CAAtB,CAAD,CAAiC,CACnDV,UAAU,CAAC,CACTa,EAAE,CAAEV,gBAAgB,CAACI,CAAD,CADX,CAAD,CADyC,CAInDR,cAAc,
|
|
1
|
+
{"version":3,"file":"ListBox.js","names":["React","forwardRef","cnMixScrollBar","cnMixSpace","defaultListPropSize","cnListBox","mapVerticalSpace","ListBox","props","ref","size","form","border","shadow","className","otherProps","pV"],"sources":["../../../../../../src/components/ListCanary/ListBox/ListBox.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cnMixSpace } from '##/mixs/MixSpace';\n\nimport { defaultListPropSize, ListBoxProps } from '../types';\nimport { cnListBox } from './cnListBox';\nimport { mapVerticalSpace } from './mapVerticalSpace';\n\nexport const ListBox = forwardRef<HTMLDivElement, ListBoxProps>(\n (props, ref) => {\n const {\n size = defaultListPropSize,\n form,\n border,\n shadow,\n className,\n ...otherProps\n } = props;\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnListBox({ size, form, border, shadow }, [\n cnMixSpace({\n pV: mapVerticalSpace[size],\n }),\n cnMixScrollBar({ size: 'xs' }),\n className,\n ])}\n />\n );\n },\n);\n"],"mappings":"iJAAA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,cAAT,kCACA,OAASC,UAAT,8BAEA,OAASC,mBAAT,gBACA,OAASC,SAAT,mBACA,OAASC,gBAAT,0BAEA,MAAO,IAAMC,QAAO,CAAGN,UAAU,CAC/B,SAACO,CAAD,CAAQC,CAAR,CAAgB,CACd,MAOID,CAPJ,CACEE,IADF,CACEA,CADF,YACSN,mBADT,GAEEO,CAFF,CAOIH,CAPJ,CAEEG,IAFF,CAGEC,CAHF,CAOIJ,CAPJ,CAGEI,MAHF,CAIEC,CAJF,CAOIL,CAPJ,CAIEK,MAJF,CAKEC,CALF,CAOIN,CAPJ,CAKEM,SALF,CAMKC,CANL,0BAOIP,CAPJ,YASA,MACE,4CACMO,CADN,EAEE,GAAG,CAAEN,CAFP,CAGE,SAAS,CAAEJ,SAAS,CAAC,CAAEK,IAAI,CAAJA,CAAF,CAAQC,IAAI,CAAJA,CAAR,CAAcC,MAAM,CAANA,CAAd,CAAsBC,MAAM,CAANA,CAAtB,CAAD,CAAiC,CACnDV,UAAU,CAAC,CACTa,EAAE,CAAEV,gBAAgB,CAACI,CAAD,CADX,CAAD,CADyC,CAInDR,cAAc,CAAC,CAAEQ,IAAI,CAAE,IAAR,CAAD,CAJqC,CAKnDI,CALmD,CAAjC,CAHtB,GAYH,CAxB8B,CAA1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["listPropSize","defaultListPropSize","listPropInnerOffset","defaultListPropInnerOffset","listPropStatus","listPropForm","defaultListPropForm"],"sources":["../../../../../src/components/ListCanary/types.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { MixSpaceProps } from '##/mixs/MixSpace';\nimport { Group } from '##/utils/getGroups';\nimport { AsAttributes, AsTags } from '##/utils/types/AsTags';\nimport { PropsWithAsAttributes } from '##/utils/types/PropsWithAsAttributes';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const listPropSize = ['m', 'xs', 's', 'l'] as const;\nexport type ListPropSize = typeof listPropSize[number];\nexport const defaultListPropSize = listPropSize[0];\n\nexport const listPropInnerOffset = ['normal', 'increased'] as const;\nexport type ListPropInnerOffset = typeof listPropInnerOffset[number];\nexport const defaultListPropInnerOffset = listPropInnerOffset[0];\n\nexport const listPropStatus = ['alert', 'success', 'warning'] as const;\nexport type ListPropStatus = typeof listPropStatus[number];\n\nexport const listPropForm = ['default', 'brick', 'round'] as const;\nexport type ListPropForm = typeof listPropForm[number];\nexport const defaultListPropForm = listPropForm[0];\n\nexport type DefaultListGroup = {\n id: string | number;\n label?: string;\n rightSide?: React.ReactNode;\n};\n\nexport type DefaultListItem = {\n label: React.ReactNode;\n disabled?: boolean;\n active?: boolean;\n checked?: boolean;\n status?: ListPropStatus;\n groupId?: string | number;\n leftSide?: React.ReactNode;\n leftIcon?: IconComponent;\n rightSide?: React.ReactNode;\n rightIcon?: IconComponent;\n onClick?: React.MouseEventHandler;\n};\n\nexport type ListPropOnItemClick<ITEM> = (\n item: ITEM,\n params: {\n e: React.MouseEvent;\n item: ITEM;\n },\n) => void;\n\nexport type ListPropRenderItem<ITEM> = (item: ITEM) => React.ReactNode | null;\n\n// ITEMS\n\nexport type ListPropGetItemLabel<ITEM> = (item: ITEM) => React.ReactNode;\n\nexport type ListPropGetItemAdditionalClassName<ITEM> = (item: ITEM) => string;\n\nexport type ListPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type ListPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type ListPropGetItemChecked<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type ListPropGetItemStatus<ITEM> = (\n item: ITEM,\n) => ListPropStatus | undefined;\n\nexport type ListPropGetItemGroupId<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\n\nexport type ListPropGetItemLeftSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\n\nexport type ListPropGetItemLeftIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\n\nexport type ListPropGetItemRightSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\n\nexport type ListPropGetItemRightIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\n\nexport type ListPropGetItemAs<ITEM> = (item: ITEM) => AsTags | undefined;\n\nexport type ListPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => AsAttributes | undefined;\n\nexport type ListPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.MouseEventHandler | undefined;\n\nexport type ListPropSortGroup<ITEM, GROUP> = (\n a: Group<ITEM, GROUP>,\n b: Group<ITEM, GROUP>,\n) => number;\n\n// GROUPS\nexport type ListPropGetGroupKey<GROUP> = (item: GROUP) => string | number;\nexport type ListPropGetGroupAdditionalClassName<GROUP> = (\n item: GROUP,\n) => string;\n\nexport type ListPropGetGroupLabel<GROUP> = (item: GROUP) => string | undefined;\nexport type ListPropGetGroupRightSide<GROUP> = (\n item: GROUP,\n) => React.ReactNode | undefined;\n\nexport type ListPropGetItemRef<ITEM> = (\n item: ITEM,\n) => React.RefObject<HTMLElement> | undefined;\n\nexport type ListProps<ITEM = DefaultListItem, GROUP = DefaultListGroup> = {\n size?: ListPropSize;\n items: ITEM[];\n innerOffset?: ListPropInnerOffset;\n itemSpace?: MixSpaceProps;\n groupLabelSpace?: MixSpaceProps;\n dividerSpace?: MixSpaceProps;\n onItemClick?: ListPropOnItemClick<ITEM>;\n getItemLabel?: ListPropGetItemLabel<ITEM>;\n getItemDisabled?: ListPropGetItemDisabled<ITEM>;\n getItemActive?: ListPropGetItemActive<ITEM>;\n getItemChecked?: ListPropGetItemActive<ITEM>;\n getItemLeftSide?: ListPropGetItemLeftSide<ITEM>;\n getItemLeftIcon?: ListPropGetItemLeftIcon<ITEM>;\n getItemRightSide?: ListPropGetItemRightSide<ITEM>;\n getItemRightIcon?: ListPropGetItemRightIcon<ITEM>;\n getItemGroupKey?: ListPropGetItemGroupId<ITEM>;\n getItemOnClick?: ListPropGetItemOnClick<ITEM>;\n getItemStatus?: ListPropGetItemStatus<ITEM>;\n getItemAs?: ListPropGetItemAs<ITEM>;\n getItemAttributes?: ListPropGetItemAttributes<ITEM>;\n getItemRef?: ListPropGetItemRef<ITEM>;\n getItemAdditionalClassName?: ListPropGetItemAdditionalClassName<ITEM>;\n renderItem?: ListPropRenderItem<ITEM>;\n groups?: GROUP[];\n getGroupKey?: ListPropGetGroupKey<GROUP>;\n getGroupLabel?: ListPropGetGroupLabel<GROUP>;\n getGroupRightSide?: ListPropGetGroupRightSide<GROUP>;\n sortGroup?: ListPropSortGroup<ITEM, GROUP>;\n getGroupAdditionalClassName?: ListPropGetGroupAdditionalClassName<GROUP>;\n disabled?: boolean;\n} & (ITEM extends { label: DefaultListItem['label'] }\n ? {}\n : { getItemLabel: ListPropGetItemLabel<ITEM> }) &\n (GROUP extends { id: DefaultListGroup['id'] }\n ? {}\n : { getGroupKey: ListPropGetGroupKey<GROUP> });\n\nexport type ListComponent = <ITEM = DefaultListItem, GROUP = DefaultListGroup>(\n props: ListProps<ITEM, GROUP>,\n) => React.ReactNode | null;\n\nexport type ListItemProps<AS extends AsTags = 'div'> = PropsWithAsAttributes<\n Omit<DefaultListItem, 'id' | 'groupId' | 'attributes' | 'onClick'> & {\n size?: ListPropSize;\n innerOffset?: 'normal' | 'increased';\n space?: MixSpaceProps;\n iconSize?: IconPropSize;\n },\n AS\n>;\n\nexport type ListItemComponent = <AS extends AsTags = 'div'>(\n props: ListItemProps<AS>,\n) => React.ReactNode | null;\n\nexport type ListGroupLabelProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n label: string;\n innerOffset?: ListPropInnerOffset;\n rightSide?: React.ReactNode;\n space?: MixSpaceProps;\n },\n HTMLDivElement\n>;\n\nexport type ListDividerProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n innerOffset?: ListPropInnerOffset;\n space?: MixSpaceProps;\n },\n HTMLDivElement\n>;\n\nexport type ListBoxProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n form?: ListPropForm;\n border?: boolean;\n shadow?: boolean;\n },\n HTMLDivElement\n>;\n\nexport type ListAddItemProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n label: React.ReactNode;\n innerOffset?: ListPropInnerOffset;\n active?: boolean;\n underLine?: boolean;\n },\n HTMLDivElement\n>;\n"],"mappings":"AASA,MAAO,IAAMA,aAAY,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAArB,CAEP,MAAO,IAAMC,oBAAmB,CAAGD,YAAY,CAAC,CAAD,CAAxC,CAEP,MAAO,IAAME,oBAAmB,CAAG,CAAC,QAAD,CAAW,WAAX,CAA5B,CAEP,MAAO,IAAMC,2BAA0B,CAAGD,mBAAmB,CAAC,CAAD,CAAtD,CAEP,MAAO,IAAME,eAAc,CAAG,CAAC,OAAD,CAAU,SAAV,CAAqB,SAArB,CAAvB,CAGP,MAAO,IAAMC,aAAY,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAqB,OAArB,CAArB,CAEP,MAAO,IAAMC,oBAAmB,CAAGD,YAAY,CAAC,CAAD,CAAxC"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["listPropSize","defaultListPropSize","listPropInnerOffset","defaultListPropInnerOffset","listPropStatus","listPropForm","defaultListPropForm"],"sources":["../../../../../src/components/ListCanary/types.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { MixSpaceProps } from '##/mixs/MixSpace';\nimport { Group } from '##/utils/getGroups';\nimport { AsAttributes, AsTags } from '##/utils/types/AsTags';\nimport { PropsWithAsAttributes } from '##/utils/types/PropsWithAsAttributes';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const listPropSize = ['m', 'xs', 's', 'l'] as const;\nexport type ListPropSize = typeof listPropSize[number];\nexport const defaultListPropSize = listPropSize[0];\n\nexport const listPropInnerOffset = ['normal', 'increased'] as const;\nexport type ListPropInnerOffset = typeof listPropInnerOffset[number];\nexport const defaultListPropInnerOffset = listPropInnerOffset[0];\n\nexport const listPropStatus = ['alert', 'success', 'warning'] as const;\nexport type ListPropStatus = typeof listPropStatus[number];\n\nexport const listPropForm = ['default', 'brick', 'round'] as const;\nexport type ListPropForm = typeof listPropForm[number];\nexport const defaultListPropForm = listPropForm[0];\n\nexport type DefaultListGroup = {\n id: string | number;\n label?: string;\n rightSide?: React.ReactNode;\n};\n\nexport type DefaultListItem = {\n label: React.ReactNode;\n disabled?: boolean;\n active?: boolean;\n checked?: boolean;\n status?: ListPropStatus;\n groupId?: string | number;\n leftSide?: React.ReactNode;\n leftIcon?: IconComponent;\n rightSide?: React.ReactNode;\n rightIcon?: IconComponent;\n onClick?: React.MouseEventHandler;\n};\n\nexport type ListPropOnItemClick<ITEM> = (\n item: ITEM,\n params: {\n e: React.MouseEvent;\n item: ITEM;\n },\n) => void;\n\nexport type ListPropRenderItem<ITEM> = (item: ITEM) => React.ReactNode | null;\n\n// ITEMS\n\nexport type ListPropGetItemLabel<ITEM> = (item: ITEM) => React.ReactNode;\n\nexport type ListPropGetItemAdditionalClassName<ITEM> = (item: ITEM) => string;\n\nexport type ListPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type ListPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type ListPropGetItemChecked<ITEM> = (item: ITEM) => boolean | undefined;\n\nexport type ListPropGetItemStatus<ITEM> = (\n item: ITEM,\n) => ListPropStatus | undefined;\n\nexport type ListPropGetItemGroupId<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\n\nexport type ListPropGetItemLeftSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\n\nexport type ListPropGetItemLeftIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\n\nexport type ListPropGetItemRightSide<ITEM> = (\n item: ITEM,\n) => React.ReactNode | undefined;\n\nexport type ListPropGetItemRightIcon<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\n\nexport type ListPropGetItemAs<ITEM> = (item: ITEM) => AsTags | undefined;\n\nexport type ListPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => AsAttributes | undefined;\n\nexport type ListPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.MouseEventHandler | undefined;\n\nexport type ListPropSortGroup<ITEM, GROUP> = (\n a: Group<ITEM, GROUP>,\n b: Group<ITEM, GROUP>,\n) => number;\n\n// GROUPS\nexport type ListPropGetGroupKey<GROUP> = (item: GROUP) => string | number;\nexport type ListPropGetGroupAdditionalClassName<GROUP> = (\n item: GROUP,\n) => string;\n\nexport type ListPropGetGroupLabel<GROUP> = (item: GROUP) => string | undefined;\nexport type ListPropGetGroupRightSide<GROUP> = (\n item: GROUP,\n) => React.ReactNode | undefined;\n\nexport type ListPropGetItemRef<ITEM> = (\n item: ITEM,\n) => React.RefObject<HTMLElement> | undefined;\n\nexport type ListProps<ITEM = DefaultListItem, GROUP = DefaultListGroup> = {\n size?: ListPropSize;\n items: ITEM[];\n innerOffset?: ListPropInnerOffset;\n itemSpace?: MixSpaceProps;\n groupLabelSpace?: MixSpaceProps;\n dividerSpace?: MixSpaceProps;\n onItemClick?: ListPropOnItemClick<ITEM>;\n getItemLabel?: ListPropGetItemLabel<ITEM>;\n getItemDisabled?: ListPropGetItemDisabled<ITEM>;\n getItemActive?: ListPropGetItemActive<ITEM>;\n getItemChecked?: ListPropGetItemActive<ITEM>;\n getItemLeftSide?: ListPropGetItemLeftSide<ITEM>;\n getItemLeftIcon?: ListPropGetItemLeftIcon<ITEM>;\n getItemRightSide?: ListPropGetItemRightSide<ITEM>;\n getItemRightIcon?: ListPropGetItemRightIcon<ITEM>;\n getItemGroupKey?: ListPropGetItemGroupId<ITEM>;\n getItemOnClick?: ListPropGetItemOnClick<ITEM>;\n getItemStatus?: ListPropGetItemStatus<ITEM>;\n getItemAs?: ListPropGetItemAs<ITEM>;\n getItemAttributes?: ListPropGetItemAttributes<ITEM>;\n getItemRef?: ListPropGetItemRef<ITEM>;\n getItemAdditionalClassName?: ListPropGetItemAdditionalClassName<ITEM>;\n renderItem?: ListPropRenderItem<ITEM>;\n groups?: GROUP[];\n getGroupKey?: ListPropGetGroupKey<GROUP>;\n getGroupLabel?: ListPropGetGroupLabel<GROUP>;\n getGroupRightSide?: ListPropGetGroupRightSide<GROUP>;\n sortGroup?: ListPropSortGroup<ITEM, GROUP>;\n getGroupAdditionalClassName?: ListPropGetGroupAdditionalClassName<GROUP>;\n disabled?: boolean;\n} & (ITEM extends { label: DefaultListItem['label'] }\n ? {}\n : { getItemLabel: ListPropGetItemLabel<ITEM> }) &\n (GROUP extends { id: DefaultListGroup['id'] }\n ? {}\n : { getGroupKey: ListPropGetGroupKey<GROUP> });\n\nexport type ListComponent = <ITEM = DefaultListItem, GROUP = DefaultListGroup>(\n props: ListProps<ITEM, GROUP>,\n) => React.ReactNode | null;\n\nexport type ListItemProps<AS extends AsTags = 'div'> = PropsWithAsAttributes<\n Omit<DefaultListItem, 'id' | 'groupId' | 'attributes' | 'onClick'> & {\n size?: ListPropSize;\n innerOffset?: 'normal' | 'increased';\n space?: MixSpaceProps;\n iconSize?: IconPropSize;\n },\n AS\n>;\n\nexport type ListItemComponent = <AS extends AsTags = 'div'>(\n props: ListItemProps<AS>,\n) => React.ReactNode | null;\n\nexport type ListGroupLabelProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n label: string;\n innerOffset?: ListPropInnerOffset;\n rightSide?: React.ReactNode;\n space?: MixSpaceProps;\n },\n HTMLDivElement\n>;\n\nexport type ListDividerProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n innerOffset?: ListPropInnerOffset;\n space?: MixSpaceProps;\n },\n HTMLDivElement\n>;\n\nexport type ListBoxProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n form?: ListPropForm;\n border?: boolean;\n shadow?: boolean;\n },\n HTMLDivElement\n>;\n\nexport type ListAddItemProps = PropsWithHTMLAttributesAndRef<\n {\n size?: ListPropSize;\n label: React.ReactNode;\n innerOffset?: ListPropInnerOffset;\n active?: boolean;\n underLine?: boolean;\n disabled?: boolean;\n },\n HTMLDivElement\n>;\n"],"mappings":"AASA,MAAO,IAAMA,aAAY,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAArB,CAEP,MAAO,IAAMC,oBAAmB,CAAGD,YAAY,CAAC,CAAD,CAAxC,CAEP,MAAO,IAAME,oBAAmB,CAAG,CAAC,QAAD,CAAW,WAAX,CAA5B,CAEP,MAAO,IAAMC,2BAA0B,CAAGD,mBAAmB,CAAC,CAAD,CAAtD,CAEP,MAAO,IAAME,eAAc,CAAG,CAAC,OAAD,CAAU,SAAV,CAAqB,SAArB,CAAvB,CAGP,MAAO,IAAMC,aAAY,CAAG,CAAC,SAAD,CAAY,OAAZ,CAAqB,OAArB,CAArB,CAEP,MAAO,IAAMC,oBAAmB,CAAGD,YAAY,CAAC,CAAD,CAAxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.Modal{--modal-window-animate-space:var(--space-xl);bottom:0;display:flex;justify-content:center;left:0;padding:var(--
|
|
1
|
+
.Modal{--modal-window-animate-space:var(--space-xl);--modal-shadow-transparent:0 0 0 transparent,0 0 0 transparent;bottom:0;display:flex;justify-content:center;left:0;padding-bottom:var(--modal-window-offset-prop,5vh);padding-left:var(--modal-window-offset-prop,5vw);padding-right:var(--modal-window-offset-prop,5vw);padding-top:var(--modal-window-offset-prop,5vh);position:fixed;right:0;top:0}.Modal-Window{background-color:var(--color-bg-default);box-shadow:var(--shadow-modal);max-height:calc(100% - var(--modal-window-offset-prop, 5vh)*2);max-width:calc(100% - var(--modal-window-offset-prop, 5vw)*2);overflow:hidden;position:absolute}.Modal-Window_position_center{align-self:safe center}.Modal-Window_position_top{align-self:safe flex-start}.Modal-Window_form_default{border-radius:var(--control-radius)}.Modal-Window_border{border:1px solid var(--color-bg-border)}.Modal-Window_scrollable{height:100%}.Modal-Content,.Modal-Scroll{display:flex;flex:1;flex-direction:column}.Modal-Scroll{height:100%;overflow:auto}.Modal-Overlay{background:var(--color-bg-tone);border:none;height:100%;left:0;padding:0;position:absolute;top:0;transition:.2s;width:100%}.Modal-Overlay_animate_exited,.Modal-Overlay_animate_exiting{opacity:0}.Modal-Overlay_animate_entered,.Modal-Overlay_animate_entering{opacity:1}.Modal-Overlay_animate_entered,.Modal-Overlay_animate_entering,.Modal-Overlay_animate_exiting{transition:opacity .2s}
|
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
import './Modal.css';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
|
|
4
|
-
declare const modalPropWidth: readonly ["auto"];
|
|
5
|
-
type ModalPropWidth = typeof modalPropWidth[number];
|
|
6
|
-
declare const modalPropPosition: readonly ["center", "top"];
|
|
7
|
-
type ModalPropPosition = typeof modalPropPosition[number];
|
|
8
|
-
type ModalProps = PropsWithHTMLAttributes<{
|
|
3
|
+
export declare const Modal: React.ForwardRefExoticComponent<{
|
|
9
4
|
isOpen?: boolean;
|
|
10
5
|
onClose?: () => void;
|
|
11
6
|
onOpen?: () => void;
|
|
12
7
|
hasOverlay?: boolean;
|
|
13
|
-
/** @deprecated use onClickOutside */
|
|
14
8
|
onOverlayClick?: (event: MouseEvent) => void;
|
|
15
9
|
onClickOutside?: (event: MouseEvent) => void;
|
|
16
10
|
onEsc?: (event: KeyboardEvent) => void;
|
|
17
11
|
rootClassName?: string;
|
|
18
|
-
width?:
|
|
19
|
-
position?:
|
|
12
|
+
width?: "auto";
|
|
13
|
+
position?: "center" | "top";
|
|
14
|
+
form?: "brick" | "default";
|
|
15
|
+
border?: boolean;
|
|
20
16
|
children?: React.ReactNode;
|
|
21
|
-
container?:
|
|
17
|
+
container?: HTMLElement | React.RefObject<HTMLElement>;
|
|
22
18
|
afterClose?: () => void;
|
|
23
19
|
refsForExcludeClickOutside?: React.RefObject<HTMLElement>[];
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
export {};
|
|
20
|
+
ignoreOutsideClicksRefs?: React.RefObject<HTMLElement>[];
|
|
21
|
+
} & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "children" | "form" | "width" | "onClose" | "border" | "position" | "container" | "onClickOutside" | "ignoreOutsideClicksRefs" | "isOpen" | "onEsc" | "onOpen" | "hasOverlay" | "onOverlayClick" | "rootClassName" | "afterClose" | "refsForExcludeClickOutside"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["isOpen","onClose","onOpen","hasOverlay","onOverlayClick","onClickOutside","onEsc","className","width","form","border","position","children","container","refsForExcludeClickOutside","ignoreOutsideClicksRefs","rootClassName","afterClose","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Modal.css";import React,{forwardRef}from"react";import{Transition}from"react-transition-group";import{PortalWithTheme,PortalWithThemeConsumer}from"../PortalWithTheme";import{animateTimeout,cnMixPopoverAnimate}from"../../mixs/MixPopoverAnimate";import{cnMixScrollBar}from"../../mixs/MixScrollBar";import{cn}from"../../utils/bem";import{withCtx}from"../../utils/state";import{useModal}from"./useModal";var cnModal=cn("Modal");export var Modal=withCtx(forwardRef(function(a,b){var c=a.isOpen,d=a.onClose,e=a.onOpen,f=a.hasOverlay,g=!(void 0!==f)||f,h=a.onOverlayClick,i=a.onClickOutside,j=a.onEsc,k=a.className,l=a.width,m=a.form,n=void 0===m?"default":m,o=a.border,p=a.position,q=void 0===p?"center":p,r=a.children,s=a.container,t=void 0===s?window.document.body:s,u=a.refsForExcludeClickOutside,v=a.ignoreOutsideClicksRefs,w=a.rootClassName,x=a.afterClose,y=a.style,z=_objectWithoutProperties(a,_excluded),A=useModal({ref:b,isOpen:c,onEsc:j,onOpen:e,onClose:d,ignoreOutsideClicksRefs:v||u}),B=A.shadowHeader,C=A.shadowFooter,D=A.scrollable,E=A.theme,F=A.portalRef,G=A.windowRef,H=A.contentRef,I=A.scrollRef,J=A.ignoreOutsideClicksRefs;return React.createElement(Transition,{in:c,unmountOnExit:!0,nodeRef:F,timeout:animateTimeout,onExited:x},function(a){return React.createElement(PortalWithTheme,{preset:E,container:t,className:cnModal({hasOverlay:g},[w]),ref:F,style:_objectSpread(_objectSpread(_objectSpread(_objectSpread({},"number"===(null===y||void 0===y?void 0:y.zIndex)&&{zIndex:y.zIndex}),B&&_defineProperty({},"--modal-layout-header-color-shadow","var(--color-shadow-group-2)")),C&&_defineProperty({},"--modal-layout-footer-color-shadow","var(--color-shadow-group-2)")),(null===y||void 0===y?void 0:y.zIndex)&&_defineProperty({},"--modal-layout-z-index-for-fixed-slot",y.zIndex))},g&&React.createElement("div",{className:cnModal("Overlay",{animate:a}),"aria-label":"Overlay"}),React.createElement("div",Object.assign({},z,{style:_objectSpread(_objectSpread({},y),{},{zIndex:void 0}),className:cnModal("Window",{position:q,form:n,border:o,scrollable:D},[cnMixPopoverAnimate({animate:a}),k]),ref:G}),React.createElement("div",{className:cnModal("Scroll",cnMixScrollBar({size:"s"})),ref:I},React.createElement("div",{className:cnModal("Content"),ref:H},React.createElement(PortalWithThemeConsumer,{onClickOutside:i||h,ignoreClicksInsideRefs:J},r)))))})}));
|
|
2
2
|
//# sourceMappingURL=Modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["React","
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["React","forwardRef","Transition","PortalWithTheme","PortalWithThemeConsumer","animateTimeout","cnMixPopoverAnimate","cnMixScrollBar","cn","withCtx","useModal","cnModal","Modal","props","ref","isOpen","onClose","onOpen","hasOverlay","onOverlayClick","onClickOutside","onEsc","className","width","form","border","position","children","container","window","document","body","refsForExcludeClickOutside","ignoreOutsideClicksRefsProp","ignoreOutsideClicksRefs","rootClassName","afterClose","style","otherProps","shadowHeader","shadowFooter","scrollable","theme","portalRef","windowRef","contentRef","scrollRef","animate","zIndex","size"],"sources":["../../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import './Modal.css';\n\nimport React, { forwardRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport {\n PortalWithTheme,\n PortalWithThemeConsumer,\n} from '##/components/PortalWithTheme';\nimport { animateTimeout, cnMixPopoverAnimate } from '##/mixs/MixPopoverAnimate';\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cn } from '##/utils/bem';\nimport { withCtx } from '##/utils/state';\n\nimport { ModalProps } from './types';\nimport { useModal } from './useModal';\n\nconst cnModal = cn('Modal');\n\nexport const Modal = withCtx(\n forwardRef<HTMLDivElement, ModalProps>((props, ref) => {\n const {\n isOpen,\n onClose,\n onOpen,\n hasOverlay = true,\n onOverlayClick,\n onClickOutside,\n onEsc,\n className,\n width,\n form = 'default',\n border,\n position = 'center',\n children,\n container = window.document.body,\n refsForExcludeClickOutside,\n ignoreOutsideClicksRefs: ignoreOutsideClicksRefsProp,\n rootClassName,\n afterClose,\n style,\n ...otherProps\n } = props;\n\n const {\n shadowHeader,\n shadowFooter,\n scrollable,\n theme,\n portalRef,\n windowRef,\n contentRef,\n scrollRef,\n ignoreOutsideClicksRefs,\n } = useModal({\n ref,\n isOpen,\n onEsc,\n onOpen,\n onClose,\n ignoreOutsideClicksRefs:\n ignoreOutsideClicksRefsProp || refsForExcludeClickOutside,\n });\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n nodeRef={portalRef}\n timeout={animateTimeout}\n onExited={afterClose}\n >\n {(animate) => (\n <PortalWithTheme\n preset={theme}\n container={container}\n className={cnModal({ hasOverlay }, [rootClassName])}\n ref={portalRef}\n style={{\n ...(style?.zIndex === 'number' && {\n zIndex: style.zIndex,\n }),\n ...(shadowHeader && {\n ['--modal-layout-header-color-shadow' as string]:\n 'var(--color-shadow-group-2)',\n }),\n ...(shadowFooter && {\n ['--modal-layout-footer-color-shadow' as string]:\n 'var(--color-shadow-group-2)',\n }),\n ...(style?.zIndex && {\n ['--modal-layout-z-index-for-fixed-slot' as string]:\n style.zIndex,\n }),\n }}\n >\n {hasOverlay && (\n <div\n className={cnModal('Overlay', { animate })}\n aria-label=\"Overlay\"\n />\n )}\n <div\n {...otherProps}\n style={{\n ...style,\n zIndex: undefined,\n }}\n className={cnModal(\n 'Window',\n { position, form, border, scrollable },\n [cnMixPopoverAnimate({ animate }), className],\n )}\n ref={windowRef}\n >\n <div\n className={cnModal('Scroll', cnMixScrollBar({ size: 's' }))}\n ref={scrollRef}\n >\n <div className={cnModal('Content')} ref={contentRef}>\n <PortalWithThemeConsumer\n onClickOutside={onClickOutside || onOverlayClick}\n ignoreClicksInsideRefs={ignoreOutsideClicksRefs}\n >\n {children}\n </PortalWithThemeConsumer>\n </div>\n </div>\n </div>\n </PortalWithTheme>\n )}\n </Transition>\n );\n }),\n);\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ModalHeader{position:relative}.ModalHeader_gap{padding-left:calc(var(--space-2xl) + var(--space-xs));padding-right:calc(var(--space-2xl) + var(--space-xs))}.Button.ModalHeader-ButtonClose,.ModalHeader-Icon{flex:none}.Button.ModalHeader-ButtonClose_fixed{position:absolute;right:0;top:0}.ModalHeader-Title{flex:1}.ModalHeader-Title_minHeight{min-height:var(--space-2xl)}.ModalHeader-StatusIcon{background:color-mix(in srgb,var(--modal-status-icon-bg) var(--modal-status-icon-degree-mixing),var(--color-bg-default));border-radius:50%;flex:none;height:var(--modal-header-status-icon-size);width:var(--modal-header-status-icon-size)}.ModalHeader-StatusIcon_size_m{--modal-header-status-icon-size:var(--space-2xl)}.ModalHeader-StatusIcon_size_l{--modal-header-status-icon-size:calc(var(--space-2xl)*2)}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import './ModalHeader.css';
|
|
2
|
+
import { IconComponent } from '@consta/icons/Icon';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
export declare const cnModalHeader: import("@bem-react/classname").ClassNameFormatter;
|
|
5
|
+
type ModalHeaderPropDirection = 'vertical' | 'horizontal';
|
|
6
|
+
export type ModalHeaderPropStatus = 'success' | 'system' | 'normal' | 'warning' | 'alert';
|
|
7
|
+
export declare const ModalHeader: React.ForwardRefExoticComponent<{
|
|
8
|
+
direction?: ModalHeaderPropDirection;
|
|
9
|
+
icon?: IconComponent;
|
|
10
|
+
status?: ModalHeaderPropStatus;
|
|
11
|
+
onClose?: () => void;
|
|
12
|
+
size?: "s" | "m" | "l" | "xs";
|
|
13
|
+
} & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "size" | "status" | "onClose" | "icon" | "direction"> & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _defineProperty from"@babel/runtime/helpers/defineProperty";var _excluded=["children","className","icon","onClose","direction","size","status"];import"./ModalHeader.css";import{IconClose}from"@consta/icons/IconClose";import React,{forwardRef}from"react";import{Button}from"../../Button";import{Text}from"../../Text";import{cnMixFlex}from"../../../mixs/MixFlex";import{cnMixHitSlop}from"../../../mixs/MixHitSlop";import{cn}from"../../../utils/bem";import{isString}from"../../../utils/type-guards";export var cnModalHeader=cn("ModalHeader");var StatusIcon=function(a){var b,c=a.icon,d=a.status,e=a.size,f=void 0===e?"m":e;return React.createElement(Text,{view:d,className:cnModalHeader("StatusIcon",{status:d,size:f},[cnMixFlex({align:"center",justify:"center"})]),style:d?(b={},_defineProperty(b,"--modal-status-icon-degree-mixing","system"===d?"30%":"10%"),_defineProperty(b,"--modal-status-icon-bg","var(--color-bg-".concat(d,")")),b):void 0},React.createElement(c,{size:"m",view:"system"===d?"secondary":void 0}))},rootFlexProps={horizontal:{direction:"row",gap:"xs"},vertical:{direction:"column",align:"center",justify:"center",gap:"s"}};export var ModalHeader=forwardRef(function(a,b){var c=a.children,d=a.className,e=a.icon,f=a.onClose,g=a.direction,h=void 0===g?"horizontal":g,i=a.size,j=a.status,k=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({},k,{ref:b,className:cnModalHeader({gap:"vertical"===h&&f&&!e},[d,cnMixFlex(rootFlexProps[h])])}),e&&React.createElement(StatusIcon,{icon:e,status:j,size:"vertical"===h?"l":"m"}),isString(c)?React.createElement(Text,{view:"primary",weight:"semibold",size:i,align:"vertical"===h?"center":void 0,className:cnModalHeader("Title",{minHeight:"horizontal"===h||"vertical"===h&&!e,gap:"vertical"===h&&f&&!e},[cnMixFlex({align:"center"})])},c):c,f&&React.createElement(Button,{className:cnModalHeader("ButtonClose",{fixed:"vertical"===h||!c&&!e},[cnMixHitSlop({mode:"reverseMargin"})]),size:"s",view:"clear",iconLeft:IconClose,onClick:f,form:"round"}))});
|
|
2
|
+
//# sourceMappingURL=ModalHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalHeader.js","names":["IconClose","React","forwardRef","Button","Text","cnMixFlex","cnMixHitSlop","cn","isString","cnModalHeader","StatusIcon","Icon","icon","status","size","align","justify","rootFlexProps","horizontal","direction","gap","vertical","ModalHeader","props","ref","children","className","onClose","otherProps","minHeight","fixed","mode"],"sources":["../../../../../../src/components/Modal/ModalHeader/ModalHeader.tsx"],"sourcesContent":["import './ModalHeader.css';\n\nimport { IconComponent } from '@consta/icons/Icon';\nimport { IconClose } from '@consta/icons/IconClose';\nimport React, { forwardRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { Text } from '##/components/Text';\nimport { cnMixFlex, CnMixFlexProps } from '##/mixs/MixFlex';\nimport { cnMixHitSlop } from '##/mixs/MixHitSlop';\nimport { cn } from '##/utils/bem';\nimport { isString } from '##/utils/type-guards';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const cnModalHeader = cn('ModalHeader');\n\ntype ModalHeaderPropDirection = 'vertical' | 'horizontal';\n\nexport type ModalHeaderPropStatus =\n | 'success'\n | 'system'\n | 'normal'\n | 'warning'\n | 'alert';\n\ntype ModalHeaderProps = PropsWithHTMLAttributes<\n {\n direction?: ModalHeaderPropDirection;\n icon?: IconComponent;\n status?: ModalHeaderPropStatus;\n onClose?: () => void;\n size?: 's' | 'm' | 'l' | 'xs';\n },\n HTMLDivElement\n>;\n\nconst StatusIcon: React.FC<{\n icon: IconComponent;\n status: ModalHeaderProps['status'];\n size: 'm' | 'l';\n}> = ({ icon: Icon, status, size = 'm' }) => {\n return (\n <Text\n view={status}\n className={cnModalHeader('StatusIcon', { status, size }, [\n cnMixFlex({ align: 'center', justify: 'center' }),\n ])}\n style={\n status\n ? {\n ['--modal-status-icon-degree-mixing' as string]:\n status === 'system' ? '30%' : '10%',\n ['--modal-status-icon-bg' as string]: `var(--color-bg-${status})`,\n }\n : undefined\n }\n >\n <Icon size=\"m\" view={status === 'system' ? 'secondary' : undefined} />\n </Text>\n );\n};\n\nconst rootFlexProps: Record<ModalHeaderPropDirection, CnMixFlexProps> = {\n horizontal: {\n direction: 'row',\n gap: 'xs',\n },\n vertical: {\n direction: 'column',\n align: 'center',\n justify: 'center',\n gap: 's',\n },\n};\n\nexport const ModalHeader = forwardRef<HTMLDivElement, ModalHeaderProps>(\n (props, ref) => {\n const {\n children,\n className,\n icon: Icon,\n onClose,\n direction = 'horizontal',\n size,\n status,\n ...otherProps\n } = props;\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnModalHeader(\n { gap: direction === 'vertical' && onClose && !Icon },\n [className, cnMixFlex(rootFlexProps[direction])],\n )}\n >\n {Icon && (\n <StatusIcon\n icon={Icon}\n status={status}\n size={direction === 'vertical' ? 'l' : 'm'}\n />\n )}\n {isString(children) ? (\n <Text\n view=\"primary\"\n weight=\"semibold\"\n size={size}\n align={direction === 'vertical' ? 'center' : undefined}\n className={cnModalHeader(\n 'Title',\n {\n minHeight:\n direction === 'horizontal' ||\n (direction === 'vertical' && !Icon),\n gap: direction === 'vertical' && onClose && !Icon,\n },\n [cnMixFlex({ align: 'center' })],\n )}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {onClose && (\n <Button\n className={cnModalHeader(\n 'ButtonClose',\n { fixed: direction === 'vertical' || (!children && !Icon) },\n [cnMixHitSlop({ mode: 'reverseMargin' })],\n )}\n size=\"s\"\n view=\"clear\"\n iconLeft={IconClose}\n onClick={onClose}\n form=\"round\"\n />\n )}\n </div>\n );\n },\n);\n"],"mappings":"4OAAA,0BAGA,OAASA,SAAT,KAA0B,yBAA1B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,MAAT,oBACA,OAASC,IAAT,kBACA,OAASC,SAAT,6BACA,OAASC,YAAT,gCACA,OAASC,EAAT,0BACA,OAASC,QAAT,kCAGA,MAAO,IAAMC,cAAa,CAAGF,EAAE,CAAC,aAAD,CAAxB,C,GAsBDG,WAIJ,CAAG,WAAwC,OAA/BC,CAA+B,GAArCC,IAAqC,CAAzBC,CAAyB,GAAzBA,MAAyB,KAAjBC,IAAiB,CAAjBA,CAAiB,YAAV,GAAU,GAC3C,MACE,qBAAC,IAAD,EACE,IAAI,CAAED,CADR,CAEE,SAAS,CAAEJ,aAAa,CAAC,YAAD,CAAe,CAAEI,MAAM,CAANA,CAAF,CAAUC,IAAI,CAAJA,CAAV,CAAf,CAAiC,CACvDT,SAAS,CAAC,CAAEU,KAAK,CAAE,QAAT,CAAmBC,OAAO,CAAE,QAA5B,CAAD,CAD8C,CAAjC,CAF1B,CAKE,KAAK,CACHH,CAAM,yBAEC,mCAFD,CAGa,QAAX,GAAAA,CAAM,CAAgB,KAAhB,CAAwB,KAHhC,oBAIC,wBAJD,0BAIwDA,CAJxD,gBANV,EAeE,oBAAC,CAAD,EAAM,IAAI,CAAC,GAAX,CAAe,IAAI,CAAa,QAAX,GAAAA,CAAM,CAAgB,WAAhB,OAA3B,EAfF,CAkBH,C,CAEKI,aAA+D,CAAG,CACtEC,UAAU,CAAE,CACVC,SAAS,CAAE,KADD,CAEVC,GAAG,CAAE,IAFK,CAD0D,CAKtEC,QAAQ,CAAE,CACRF,SAAS,CAAE,QADH,CAERJ,KAAK,CAAE,QAFC,CAGRC,OAAO,CAAE,QAHD,CAIRI,GAAG,CAAE,GAJG,CAL4D,C,CAaxE,MAAO,IAAME,YAAW,CAAGpB,UAAU,CACnC,SAACqB,CAAD,CAAQC,CAAR,CAAgB,CACd,GACEC,EADF,CASIF,CATJ,CACEE,QADF,CAEEC,CAFF,CASIH,CATJ,CAEEG,SAFF,CAGQf,CAHR,CASIY,CATJ,CAGEX,IAHF,CAIEe,CAJF,CASIJ,CATJ,CAIEI,OAJF,GASIJ,CATJ,CAKEJ,SALF,CAKEA,CALF,YAKc,YALd,GAMEL,CANF,CASIS,CATJ,CAMET,IANF,CAOED,CAPF,CASIU,CATJ,CAOEV,MAPF,CAQKe,CARL,0BASIL,CATJ,YAWA,MACE,4CACMK,CADN,EAEE,GAAG,CAAEJ,CAFP,CAGE,SAAS,CAAEf,aAAa,CACtB,CAAEW,GAAG,CAAgB,UAAd,GAAAD,CAAS,EAAmBQ,CAA5B,EAAuC,CAAChB,CAA/C,CADsB,CAEtB,CAACe,CAAD,CAAYrB,SAAS,CAACY,aAAa,CAACE,CAAD,CAAd,CAArB,CAFsB,CAH1B,GAQGR,CAAI,EACH,oBAAC,UAAD,EACE,IAAI,CAAEA,CADR,CAEE,MAAM,CAAEE,CAFV,CAGE,IAAI,CAAgB,UAAd,GAAAM,CAAS,CAAkB,GAAlB,CAAwB,GAHzC,EATJ,CAeGX,QAAQ,CAACiB,CAAD,CAAR,CACC,oBAAC,IAAD,EACE,IAAI,CAAC,SADP,CAEE,MAAM,CAAC,UAFT,CAGE,IAAI,CAAEX,CAHR,CAIE,KAAK,CAAgB,UAAd,GAAAK,CAAS,CAAkB,QAAlB,OAJlB,CAKE,SAAS,CAAEV,aAAa,CACtB,OADsB,CAEtB,CACEoB,SAAS,CACO,YAAd,GAAAV,CAAS,EACM,UAAd,GAAAA,CAAS,EAAmB,CAACR,CAHlC,CAIES,GAAG,CAAgB,UAAd,GAAAD,CAAS,EAAmBQ,CAA5B,EAAuC,CAAChB,CAJ/C,CAFsB,CAQtB,CAACN,SAAS,CAAC,CAAEU,KAAK,CAAE,QAAT,CAAD,CAAV,CARsB,CAL1B,EAgBGU,CAhBH,CADD,CAoBCA,CAnCJ,CAqCGE,CAAO,EACN,oBAAC,MAAD,EACE,SAAS,CAAElB,aAAa,CACtB,aADsB,CAEtB,CAAEqB,KAAK,CAAgB,UAAd,GAAAX,CAAS,EAAoB,CAACM,CAAD,EAAa,CAACd,CAApD,CAFsB,CAGtB,CAACL,YAAY,CAAC,CAAEyB,IAAI,CAAE,eAAR,CAAD,CAAb,CAHsB,CAD1B,CAME,IAAI,CAAC,GANP,CAOE,IAAI,CAAC,OAPP,CAQE,QAAQ,CAAE/B,SARZ,CASE,OAAO,CAAE2B,CATX,CAUE,IAAI,CAAC,OAVP,EAtCJ,CAqDH,CAnEkC,CAA9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ModalHeader';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/Modal/ModalHeader/index.ts"],"sourcesContent":["export * from './ModalHeader';\n"],"mappings":"AAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
.ModalLayout{display:flex;flex:1;flex-direction:column;justify-content:space-between}.ModalLayout-Slot{background-color:var(--color-bg-default);transition:box-shadow .3s}.ModalLayout-Slot_border_top{box-shadow:0 1px 0 0 var(--color-bg-border) inset,0 -2px 3px var(--modal-layout-slot-color-shadow,transparent);padding-top:1px}.ModalLayout-Slot_border_top[class*=MixSpace_pT]{padding-top:calc(var(--space-padding-top) + 1px)}.ModalLayout-Slot_border_bottom{box-shadow:0 -1px 0 0 var(--color-bg-border) inset,0 2px 3px var(--modal-layout-slot-color-shadow,transparent);padding-bottom:1px}.ModalLayout-Slot_border_bottom[class*=MixSpace_pB]{padding-bottom:calc(var(--space-padding-bottom) + 1px)}.ModalLayout-Slot_fixed_top{--modal-layout-slot-color-shadow:var(
|
|
2
|
+
--modal-layout-header-color-shadow
|
|
3
|
+
);top:0}.ModalLayout-Slot_fixed_bottom,.ModalLayout-Slot_fixed_top{position:sticky;z-index:calc(var(--modal-layout-z-index-for-fixed-slot) + 1)}.ModalLayout-Slot_fixed_bottom{--modal-layout-slot-color-shadow:var(
|
|
4
|
+
--modal-layout-footer-color-shadow
|
|
5
|
+
);bottom:0}.ModalLayout-Slot_stretch{flex:1}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import './ModalLayout.css';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { MixSpaceProps } from '../../../mixs/MixSpace';
|
|
4
|
+
export declare const cnModalLayout: import("@bem-react/classname").ClassNameFormatter;
|
|
5
|
+
export declare const ModalLayout: React.ForwardRefExoticComponent<{
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
fixed?: boolean | [boolean, boolean];
|
|
8
|
+
border?: boolean | [boolean, boolean];
|
|
9
|
+
space?: MixSpaceProps | (MixSpaceProps | undefined)[];
|
|
10
|
+
} & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "children" | "fixed" | "border" | "space"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["children","className","border","space","fixed"];import"./ModalLayout.css";import React,{forwardRef}from"react";import{cnMixSpace}from"../../../mixs/MixSpace";import{cn}from"../../../utils/bem";import{isNotNil}from"../../../utils/type-guards";export var cnModalLayout=cn("ModalLayout");var getSlotProp=function(a,b){return Array.isArray(a)?a[b]:a},childrenToArray=function(a){return(Array.isArray(a)?a:[a]).filter(isNotNil)},getSlotPropFirstOrLast=function(a,b,c,d){var e=c.length;return 0===b?getSlotProp(a,0)?d[0]:void 0:b===e-1?getSlotProp(a,1)?d[1]:void 0:void 0};export var ModalLayout=forwardRef(function(a,b){var c=a.children,d=a.className,e=a.border,f=a.space,g=a.fixed,h=_objectWithoutProperties(a,_excluded),i=childrenToArray(c);return React.createElement("div",Object.assign({},h,{ref:b,className:cnModalLayout(null,[d])}),i.map(function(a,b){return React.createElement("div",{key:b,className:cnModalLayout("Slot",{fixed:getSlotPropFirstOrLast(g,b,i,["top","bottom"]),border:getSlotPropFirstOrLast(e,b,i,["bottom ","top"]),stretch:b===i.length-2&&getSlotProp(g,1)||b===i.length-1&&!getSlotProp(g,1)},[cnMixSpace(getSlotProp(f,b))])},a)}))});
|
|
2
|
+
//# sourceMappingURL=ModalLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalLayout.js","names":["React","forwardRef","cnMixSpace","cn","isNotNil","cnModalLayout","getSlotProp","prop","index","Array","isArray","childrenToArray","children","filter","getSlotPropFirstOrLast","border","slots","value","length","ModalLayout","props","ref","className","space","fixed","otherProps","map","child","stretch"],"sources":["../../../../../../src/components/Modal/ModalLayout/ModalLayout.tsx"],"sourcesContent":["import './ModalLayout.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { cnMixSpace, MixSpaceProps } from '##/mixs/MixSpace';\nimport { cn } from '##/utils/bem';\nimport { isNotNil } from '##/utils/type-guards';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const cnModalLayout = cn('ModalLayout');\n\ntype ModalLayoutProps = PropsWithHTMLAttributes<\n {\n children?: React.ReactNode;\n fixed?: boolean | [boolean, boolean];\n border?: boolean | [boolean, boolean];\n space?: MixSpaceProps | (MixSpaceProps | undefined)[];\n },\n HTMLDivElement\n>;\n\nconst getSlotProp = <T,>(\n prop: T | (T | undefined)[] | undefined,\n index: number,\n) => (Array.isArray(prop) ? prop[index] : prop);\n\nconst childrenToArray = (children: React.ReactNode): React.ReactNode[] =>\n (Array.isArray(children) ? children : [children]).filter(isNotNil);\n\nconst getSlotPropFirstOrLast = (\n border: boolean | [boolean, boolean] | undefined,\n index: number,\n slots: React.ReactNode[],\n value: [string, string],\n) => {\n const { length } = slots;\n if (index === 0) {\n return getSlotProp(border, 0) ? value[0] : undefined;\n }\n\n if (index === length - 1) {\n return getSlotProp(border, 1) ? value[1] : undefined;\n }\n};\n\nexport const ModalLayout = forwardRef<HTMLDivElement, ModalLayoutProps>(\n (props, ref) => {\n const { children, className, border, space, fixed, ...otherProps } = props;\n\n const slots = childrenToArray(children);\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnModalLayout(null, [className])}\n >\n {slots.map((child, index) => (\n <div\n key={index}\n className={cnModalLayout(\n 'Slot',\n {\n fixed: getSlotPropFirstOrLast(fixed, index, slots, [\n 'top',\n 'bottom',\n ]),\n border: getSlotPropFirstOrLast(border, index, slots, [\n 'bottom ',\n 'top',\n ]),\n stretch:\n (index === slots.length - 2 && getSlotProp(fixed, 1)) ||\n (index === slots.length - 1 && !getSlotProp(fixed, 1)),\n },\n [cnMixSpace(getSlotProp(space, index))],\n )}\n >\n {child}\n </div>\n ))}\n </div>\n );\n },\n);\n"],"mappings":"qJAAA,0BAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,UAAT,8BACA,OAASC,EAAT,0BACA,OAASC,QAAT,kCAGA,MAAO,IAAMC,cAAa,CAAGF,EAAE,CAAC,aAAD,CAAxB,C,GAYDG,YAAW,CAAG,SAClBC,CADkB,CAElBC,CAFkB,QAGdC,MAAK,CAACC,OAAN,CAAcH,CAAd,EAAsBA,CAAI,CAACC,CAAD,CAA1B,CAAoCD,CAHtB,C,CAKdI,eAAe,CAAG,SAACC,CAAD,QACtB,CAACH,KAAK,CAACC,OAAN,CAAcE,CAAd,EAA0BA,CAA1B,CAAqC,CAACA,CAAD,CAAtC,EAAkDC,MAAlD,CAAyDT,QAAzD,CADsB,C,CAGlBU,sBAAsB,CAAG,SAC7BC,CAD6B,CAE7BP,CAF6B,CAG7BQ,CAH6B,CAI7BC,CAJ6B,CAK1B,CACH,GAAQC,EAAR,CAAmBF,CAAnB,CAAQE,MAAR,CADG,MAEW,EAAV,GAAAV,CAFD,CAGMF,WAAW,CAACS,CAAD,CAAS,CAAT,CAAX,CAAyBE,CAAK,CAAC,CAAD,CAA9B,OAHN,CAMCT,CAAK,GAAKU,CAAM,CAAG,CANpB,CAOMZ,WAAW,CAACS,CAAD,CAAS,CAAT,CAAX,CAAyBE,CAAK,CAAC,CAAD,CAA9B,OAPN,OASJ,C,CAED,MAAO,IAAME,YAAW,CAAGlB,UAAU,CACnC,SAACmB,CAAD,CAAQC,CAAR,CAAgB,IACNT,EADM,CACuDQ,CADvD,CACNR,QADM,CACIU,CADJ,CACuDF,CADvD,CACIE,SADJ,CACeP,CADf,CACuDK,CADvD,CACeL,MADf,CACuBQ,CADvB,CACuDH,CADvD,CACuBG,KADvB,CAC8BC,CAD9B,CACuDJ,CADvD,CAC8BI,KAD9B,CACwCC,CADxC,0BACuDL,CADvD,YAGRJ,CAAK,CAAGL,eAAe,CAACC,CAAD,CAHf,CAKd,MACE,4CACMa,CADN,EAEE,GAAG,CAAEJ,CAFP,CAGE,SAAS,CAAEhB,aAAa,CAAC,IAAD,CAAO,CAACiB,CAAD,CAAP,CAH1B,GAKGN,CAAK,CAACU,GAAN,CAAU,SAACC,CAAD,CAAQnB,CAAR,QACT,4BACE,GAAG,CAAEA,CADP,CAEE,SAAS,CAAEH,aAAa,CACtB,MADsB,CAEtB,CACEmB,KAAK,CAAEV,sBAAsB,CAACU,CAAD,CAAQhB,CAAR,CAAeQ,CAAf,CAAsB,CACjD,KADiD,CAEjD,QAFiD,CAAtB,CAD/B,CAKED,MAAM,CAAED,sBAAsB,CAACC,CAAD,CAASP,CAAT,CAAgBQ,CAAhB,CAAuB,CACnD,SADmD,CAEnD,KAFmD,CAAvB,CALhC,CASEY,OAAO,CACJpB,CAAK,GAAKQ,CAAK,CAACE,MAAN,CAAe,CAAzB,EAA8BZ,WAAW,CAACkB,CAAD,CAAQ,CAAR,CAA1C,EACChB,CAAK,GAAKQ,CAAK,CAACE,MAAN,CAAe,CAAzB,EAA8B,CAACZ,WAAW,CAACkB,CAAD,CAAQ,CAAR,CAX/C,CAFsB,CAetB,CAACtB,UAAU,CAACI,WAAW,CAACiB,CAAD,CAAQf,CAAR,CAAZ,CAAX,CAfsB,CAF1B,EAoBGmB,CApBH,CADS,CAAV,CALH,CA+BH,CAtCkC,CAA9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ModalLayout';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/components/Modal/ModalLayout/index.ts"],"sourcesContent":["export * from './ModalLayout';\n"],"mappings":"AAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export*from"./Modal";
|
|
1
|
+
export*from"./types";export*from"./Modal";export*from"./ModalLayout";export*from"./ModalHeader";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/Modal/index.ts"],"sourcesContent":["export * from './Modal';\n"],"mappings":"AAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/Modal/index.ts"],"sourcesContent":["export * from './types';\nexport * from './Modal';\nexport * from './ModalLayout';\nexport * from './ModalHeader';\n"],"mappings":"AAAA,qBACA,qBACA,2BACA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';
|
|
2
|
+
export type ModalProps = PropsWithHTMLAttributes<{
|
|
3
|
+
isOpen?: boolean;
|
|
4
|
+
onClose?: () => void;
|
|
5
|
+
onOpen?: () => void;
|
|
6
|
+
hasOverlay?: boolean;
|
|
7
|
+
/** @deprecated use onClickOutside */
|
|
8
|
+
onOverlayClick?: (event: MouseEvent) => void;
|
|
9
|
+
onClickOutside?: (event: MouseEvent) => void;
|
|
10
|
+
onEsc?: (event: KeyboardEvent) => void;
|
|
11
|
+
rootClassName?: string;
|
|
12
|
+
/** @deprecated use style or className */
|
|
13
|
+
width?: 'auto';
|
|
14
|
+
position?: 'center' | 'top';
|
|
15
|
+
form?: 'brick' | 'default';
|
|
16
|
+
border?: boolean;
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
container?: HTMLElement | React.RefObject<HTMLElement>;
|
|
19
|
+
afterClose?: () => void;
|
|
20
|
+
/** @deprecated use ignoreOutsideClicksRefs */
|
|
21
|
+
refsForExcludeClickOutside?: React.RefObject<HTMLElement>[];
|
|
22
|
+
ignoreOutsideClicksRefs?: React.RefObject<HTMLElement>[];
|
|
23
|
+
}, HTMLDivElement>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/Modal/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type ModalProps = PropsWithHTMLAttributes<\n {\n isOpen?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n hasOverlay?: boolean;\n /** @deprecated use onClickOutside */\n onOverlayClick?: (event: MouseEvent) => void;\n onClickOutside?: (event: MouseEvent) => void;\n onEsc?: (event: KeyboardEvent) => void;\n rootClassName?: string;\n /** @deprecated use style or className */\n width?: 'auto';\n position?: 'center' | 'top';\n form?: 'brick' | 'default';\n border?: boolean;\n children?: React.ReactNode;\n container?: HTMLElement | React.RefObject<HTMLElement>;\n afterClose?: () => void;\n /** @deprecated use ignoreOutsideClicksRefs */\n refsForExcludeClickOutside?: React.RefObject<HTMLElement>[];\n ignoreOutsideClicksRefs?: React.RefObject<HTMLElement>[];\n },\n HTMLDivElement\n>;\n"],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const useModal: ({ ref, isOpen, onEsc, onOpen, onClose, ignoreOutsideClicksRefs, }: {
|
|
3
|
+
isOpen: boolean | undefined;
|
|
4
|
+
onEsc: ((event: KeyboardEvent) => void) | undefined;
|
|
5
|
+
onOpen: (() => void) | undefined;
|
|
6
|
+
onClose: (() => void) | undefined;
|
|
7
|
+
ref: React.ForwardedRef<HTMLDivElement>;
|
|
8
|
+
ignoreOutsideClicksRefs: React.RefObject<HTMLElement>[] | undefined;
|
|
9
|
+
}) => {
|
|
10
|
+
shadowHeader: boolean;
|
|
11
|
+
shadowFooter: boolean;
|
|
12
|
+
scrollable: boolean;
|
|
13
|
+
theme: import("../Theme").ThemePreset;
|
|
14
|
+
portalRef: React.MutableRefObject<HTMLDivElement | null>;
|
|
15
|
+
windowRef: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | null;
|
|
16
|
+
contentRef: React.RefCallback<HTMLDivElement | null>;
|
|
17
|
+
scrollRef: React.RefCallback<HTMLDivElement | null>;
|
|
18
|
+
windowElAtom: import("@reatom/core").AtomMut<HTMLDivElement | null>;
|
|
19
|
+
ignoreOutsideClicksRefs: React.RefObject<HTMLElement>[];
|
|
20
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useAction,useAtom,useUpdate}from"@reatom/npm-react";import{useEffect,useRef}from"react";import{useTheme}from"../Theme";import{useForkRef}from"../../hooks/useForkRef";import{useGlobalKeys}from"../../hooks/useGlobalKeys";import{getElementHeight}from"../../hooks/useResizeObserved";import{useCreateAtom}from"../../utils/state/useCreateAtom";import{useElementAtomEventListener}from"../../utils/state/useElementAtomEventListener";import{useRefAtom}from"../../utils/state/useRefAtom";import{useResizeObservedAtom}from"../../utils/state/useResizeObservedAtom";export var useModal=function(a){var b=a.ref,c=a.isOpen,d=a.onEsc,e=a.onOpen,f=a.onClose,g=a.ignoreOutsideClicksRefs,h=useRef(null),i=useRef(null),j=useRefAtom(),k=_slicedToArray(j,2),l=k[0],m=k[1],n=useRefAtom(),o=_slicedToArray(n,2),p=o[0],q=o[1],r=useRefAtom(),s=_slicedToArray(r,2),t=s[0],u=s[1],v=useForkRef([h,m,b]),w=useTheme(),x=w.theme,y=useCreateAtom(0),z=useAction(function(a){var b;return y(a,(null===(b=a.get(t))||void 0===b?void 0:b.scrollTop)||0)}),A=useAtom(function(a){return 0<a.spy(y)}),B=_slicedToArray(A,1),C=B[0],D=useResizeObservedAtom(useCreateAtom(function(a){return[a.spy(t)]}),function(a){return[(null===a||void 0===a?void 0:a.scrollHeight)||0,(null===a||void 0===a?void 0:a.clientHeight)||0]}),E=useAtom(function(a){var b=a.spy(y),c=a.spy(D),d=_slicedToArray(c,1),e=d[0];e=void 0===e?[0,0]:e;var f=_slicedToArray(e,2),g=f[0],h=f[1];return b<g-h}),F=_slicedToArray(E,1),G=F[0],H=useResizeObservedAtom(useCreateAtom(function(a){return[a.spy(l),a.spy(p)]}),getElementHeight),I=useAtom(function(a){var b=a.spy(H),c=_slicedToArray(b,2),d=c[0],e=void 0===d?0:d,f=c[1],g=void 0===f?0:f;return e<g}),J=_slicedToArray(I,1),K=J[0];return useElementAtomEventListener(t,"scroll",z),useUpdate(z,[t]),useEffect(function(){c?null===e||void 0===e?void 0:e():null===f||void 0===f?void 0:f()},[c]),useGlobalKeys({Escape:function Escape(a){return c&&d&&d(a)}}),{shadowHeader:C,shadowFooter:G,scrollable:K,theme:x,portalRef:i,windowRef:v,contentRef:q,scrollRef:u,windowElAtom:l,ignoreOutsideClicksRefs:[].concat(_toConsumableArray(g||[]),[h])}};
|
|
2
|
+
//# sourceMappingURL=useModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModal.js","names":["useAction","useAtom","useUpdate","useEffect","useRef","useTheme","useForkRef","useGlobalKeys","getElementHeight","useCreateAtom","useElementAtomEventListener","useRefAtom","useResizeObservedAtom","useModal","ref","isOpen","onEsc","onOpen","onClose","ignoreOutsideClicksRefs","modalRef","portalRef","windowElAtom","windowRefCallback","contentElAtom","contentRefCallback","scrollElAtom","scrollRefCallback","modalRefForked","theme","scrollTopAtom","updateScrollTop","ctx","get","scrollTop","spy","shadowHeader","elScrollDimensionsAtom","el","scrollHeight","clientHeight","shadowFooter","heightAtom","modalHeight","contentHeight","scrollable","Escape","e","windowRef","contentRef","scrollRef"],"sources":["../../../../../src/components/Modal/useModal.ts"],"sourcesContent":["import { useAction, useAtom, useUpdate } from '@reatom/npm-react';\nimport React, { useEffect, useRef } from 'react';\n\nimport { useTheme } from '##/components/Theme';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useGlobalKeys } from '##/hooks/useGlobalKeys';\nimport { getElementHeight } from '##/hooks/useResizeObserved';\nimport { useCreateAtom } from '##/utils/state/useCreateAtom';\nimport { useElementAtomEventListener } from '##/utils/state/useElementAtomEventListener';\nimport { useRefAtom } from '##/utils/state/useRefAtom';\nimport { useResizeObservedAtom } from '##/utils/state/useResizeObservedAtom';\n\nexport const useModal = ({\n ref,\n isOpen,\n onEsc,\n onOpen,\n onClose,\n ignoreOutsideClicksRefs,\n}: {\n isOpen: boolean | undefined;\n onEsc: ((event: KeyboardEvent) => void) | undefined;\n onOpen: (() => void) | undefined;\n onClose: (() => void) | undefined;\n ref: React.ForwardedRef<HTMLDivElement>;\n ignoreOutsideClicksRefs: React.RefObject<HTMLElement>[] | undefined;\n}) => {\n const modalRef = useRef<HTMLDivElement | null>(null);\n const portalRef = useRef<HTMLDivElement | null>(null);\n const [windowElAtom, windowRefCallback] = useRefAtom<HTMLDivElement>();\n const [contentElAtom, contentRefCallback] = useRefAtom<HTMLDivElement>();\n const [scrollElAtom, scrollRefCallback] = useRefAtom<HTMLDivElement>();\n const modalRefForked = useForkRef([modalRef, windowRefCallback, ref]);\n\n const { theme } = useTheme();\n\n const scrollTopAtom = useCreateAtom<number>(0);\n const updateScrollTop = useAction((ctx) =>\n scrollTopAtom(ctx, ctx.get(scrollElAtom)?.scrollTop || 0),\n );\n\n const [shadowHeader] = useAtom<boolean>((ctx) => ctx.spy(scrollTopAtom) > 0);\n const elScrollDimensionsAtom = useResizeObservedAtom(\n useCreateAtom((ctx) => [ctx.spy(scrollElAtom)]),\n (el) => [el?.scrollHeight || 0, el?.clientHeight || 0] as const,\n );\n\n const [shadowFooter] = useAtom<boolean>((ctx) => {\n const scrollTop = ctx.spy(scrollTopAtom);\n const [[scrollHeight, clientHeight] = [0, 0]] = ctx.spy(\n elScrollDimensionsAtom,\n );\n\n return scrollTop < scrollHeight - clientHeight;\n });\n\n const heightAtom = useResizeObservedAtom(\n useCreateAtom((ctx) => [ctx.spy(windowElAtom), ctx.spy(contentElAtom)]),\n getElementHeight,\n );\n\n const [scrollable] = useAtom((ctx) => {\n const [modalHeight = 0, contentHeight = 0] = ctx.spy(heightAtom);\n return modalHeight < contentHeight;\n });\n\n useElementAtomEventListener(scrollElAtom, 'scroll', updateScrollTop);\n\n useUpdate(updateScrollTop, [scrollElAtom]);\n\n useEffect(() => {\n if (isOpen) {\n onOpen?.();\n } else {\n onClose?.();\n }\n }, [isOpen]);\n\n useGlobalKeys({\n Escape: (e: KeyboardEvent) => isOpen && onEsc && onEsc(e),\n });\n\n return {\n shadowHeader,\n shadowFooter,\n scrollable,\n theme,\n portalRef,\n windowRef: modalRefForked,\n contentRef: contentRefCallback,\n scrollRef: scrollRefCallback,\n windowElAtom,\n ignoreOutsideClicksRefs: [...(ignoreOutsideClicksRefs || []), modalRef],\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import './PaginationArrow.css';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
export declare const cnPaginationArrow: import("@bem-react/classname").ClassNameFormatter;
|
|
3
4
|
export declare const PaginationArrow: React.ForwardRefExoticComponent<{
|
|
4
5
|
icon?: import("@consta/icons/Icon").IconComponent;
|
|
5
6
|
form?: import("../types").PaginationPropForm;
|