{"version":3,"file":"ab91a40e0acbe0c6e9c1.bundle.js","mappings":"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","sources":["webpack://spartner/./node_modules/@10d/tend-ui/components/AsyncCheckbox/AsyncCheckbox.js","webpack://spartner/./node_modules/@10d/tend-ui/components/AsyncRadio/AsyncRadio.js","webpack://spartner/./node_modules/@10d/tend-ui/components/AsyncSelect/AsyncSelect.js","webpack://spartner/./node_modules/@10d/tend-ui/components/CheckboxGroupSearch/CheckboxGroupSearch.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/ColumnsSetting/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/ColumnsSetting/contexts/ColumnsSettingContext.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/ColumnsSetting/components/Root/Root.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/ColumnsSetting/components/DragHandle/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/ColumnsSetting/components/DragHandle/DragHandle.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/ColumnsSetting/components/Pin/Pin.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/ColumnsSetting/ColumnsSetting.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/ResetButton/ResetButton.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/List/List.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/contexts/PresetsContext.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/Root/Root.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/utils/mapColumnsForPreset.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/SavePresetButton/SavePresetButton.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/PresetsList/Input/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/PresetsList/Input/Input.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/components/PresetsList/PresetsList.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/ColumnsSettings.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/utils/createDefaultColumn.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/utils/mapColumnsForLocalStorage.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/utils/patchColumnPosition.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/hooks/useColumns.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ColumnsSettings/hooks/useColumnsSettings.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/hooks/useDisabled.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/hooks/useDepends.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/hooks/useValuesObserver.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/AsyncCheckboxFilter/AsyncCheckboxFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/AsyncRadioFilter/AsyncRadioFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/AsyncSelectFilter/AsyncSelectFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/CheckboxFilter/CheckboxFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/CheckboxGroupFilter/CheckboxGroupFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/DatePickerFilter/DatePickerFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/InputFilter/InputFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/RadioFilter/RadioFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/RadioGroupFilter/RadioGroupFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/RangePickerFilter/RangePickerFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/ToggleFilter/ToggleFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/SelectFilter/SelectFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/CheckboxGroupSearchFilter/CheckboxGroupSearchFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/RadioGroupSearchFilter/RadioGroupSearchFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/InputNumberFilter/InputNumberFilter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/ResetButton/ResetButton.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/contexts/FiltersContext.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/utils.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/FiltersFormProvider.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/contexts/FiltersPresetsContext.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/Root/Root.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/core/useFiltersForm.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/List/List.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/Form/Form.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/PresetsList/Input/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/PresetsList/Input/Input.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/PresetsList/PresetsList.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/SaveButton/useNextFilterName.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/SaveButton/SaveButton.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/components/ResetAllButton/ResetAllButton.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/hooks/useFilterCounter.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/Filters.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Filters/hooks/useDependsGraph.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Form/components/Item/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Form/components/Item/hooks.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Form/components/Item/Item.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Form/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Form/Form.js","webpack://spartner/./node_modules/@10d/tend-ui/components/RadioGroupSearch/RadioGroupSearch.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Search/Search.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Status/components/Layout/Layout.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Status/components/NotFound/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Status/components/NotFound/NotFound.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Status/WhaleSad.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Status/components/Forbidden/Forbidden.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Status/components/InternalServerError/InternalServerError.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Status/Status.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ComponentPicker/ComponentPicker.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ActionsButton/contexts/ActionsButton.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ActionsButton/components/Root/Root.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ActionsButton/components/Trigger/Trigger.js","webpack://spartner/./node_modules/@10d/tend-ui/components/ActionsButton/ActionsButton.js","webpack://spartner/./node_modules/@10d/tend-ui/components/BurgerMenu/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/components/Profile/Profile.js","webpack://spartner/./node_modules/@10d/tend-ui/components/DetachedTabs/contexts/TabsContext.js","webpack://spartner/./node_modules/@10d/tend-ui/components/DetachedTabs/components/Buttons/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/factories/contextFactory.js","webpack://spartner/./node_modules/@10d/tend-ui/grid/Divider/styled.js","webpack://spartner/./node_modules/@10d/tend-ui/grid/Divider/Divider.js","webpack://spartner/./node_modules/@10d/tend-ui/hocs/withInjectedClassName/withInjectedClassName.js","webpack://spartner/./node_modules/@10d/tend-ui/hooks/useVisibility/useVisibility.js","webpack://spartner/./node_modules/@10d/tend-ui/hooks/useAllowClear.js","webpack://spartner/./node_modules/@10d/tend-ui/hooks/useBoolean/useBoolean.js","webpack://spartner/./node_modules/@10d/tend-ui/hooks/useDatePickerLocale.js","webpack://spartner/./node_modules/@10d/tend-ui/hooks/useFilterOption.js","webpack://spartner/./node_modules/@10d/tend-ui/hooks/useInputTitle.js","webpack://spartner/./node_modules/@10d/tend-ui/hooks/useSize.js"],"sourcesContent":["import { __rest } from 'tslib';\nimport React from 'react';\nimport debounce from 'lodash/debounce';\nimport { usePaginationApi } from '@10d/tend-ui-api';\nimport { isExceed } from '@10d/tend-ui-utils';\nimport { useCallbackRef } from '@10d/tend-ui-hooks';\nimport { CheckboxGroupSearch } from '../CheckboxGroupSearch/CheckboxGroupSearch.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst _transform = (data) => (Object.assign({ value: data === null || data === void 0 ? void 0 : data.id, label: data === null || data === void 0 ? void 0 : data.name }, data));\nconst BaseAsyncCheckbox = (_a, ref) => {\n var { filterOption = false, pagination = false, api, onLoad, onSearch, transform = _transform, onScroll } = _a, props = __rest(_a, [\"filterOption\", \"pagination\", \"api\", \"onLoad\", \"onSearch\", \"transform\", \"onScroll\"]);\n const __api = React.useMemo(() => {\n if (typeof api === 'string')\n return {\n // enabling request cancelling by default\n cancellable: true,\n url: api,\n };\n if (typeof api === 'object')\n return Object.assign({ \n // enabling request cancelling by default\n cancellable: true }, api);\n return api;\n }, [api]);\n const isRequestCalled = React.useRef(false);\n const isBackendSearching = filterOption === false;\n const _query = React.useMemo(() => {\n // Предполагаем, что если объект api изменился, значит изменился и объект query\n // и нужно перезапросить данные\n isRequestCalled.current = false;\n if (typeof api !== 'object')\n return;\n return api.query;\n }, [api]);\n const request = useCallbackRef((payload, force = false) => {\n isRequestCalled.current = true;\n // TODO: Not the best practice\n // Maybe better pass query as as payload params in every usage\n const params = _query ? Object.assign(Object.assign({}, payload === null || payload === void 0 ? void 0 : payload.params), _query) : payload === null || payload === void 0 ? void 0 : payload.params;\n _request(Object.assign(Object.assign({}, payload), { params }), { force }).then(response => {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(response.results);\n });\n });\n React.useImperativeHandle(ref, () => ({\n request,\n }));\n const { loading, data, error, request: _request, next } = usePaginationApi(__api);\n const handleSearch = React.useMemo(() => debounce((search) => {\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(search);\n if (!isBackendSearching)\n return;\n request({ params: { search } }, true);\n }, 300), [isBackendSearching, onSearch, request]);\n /**\n * Request on the first mount\n */\n React.useEffect(() => {\n request();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_query]);\n // FIXME: Fix types\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const options = React.useMemo(() => {\n if (!data)\n return [];\n return data.map(transform);\n }, [data, transform]);\n const handleScroll = React.useCallback(event => {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(event);\n if (!pagination)\n return;\n const target = event.target;\n if (!isExceed(target.scrollTop + target.offsetHeight, target.scrollHeight, 80)) {\n return;\n }\n next();\n }, [next, onScroll, pagination]);\n return (React.createElement(CheckboxGroupSearch, Object.assign({}, props, { error: Boolean(error), loading: loading, options: options, onSearch: handleSearch, filterOption: filterOption, onScroll: handleScroll })));\n};\nconst AsyncCheckbox = React.forwardRef(BaseAsyncCheckbox);\nAsyncCheckbox.displayName = 'AsyncCheckbox';\n\nexport { AsyncCheckbox };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport debounce from 'lodash/debounce';\nimport { usePaginationApi } from '@10d/tend-ui-api';\nimport { isExceed } from '@10d/tend-ui-utils';\nimport { RadioGroupSearch } from '../RadioGroupSearch/RadioGroupSearch.js';\nimport { useCallbackRef } from '@10d/tend-ui-hooks';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst _transform = (data) => (Object.assign({ value: data === null || data === void 0 ? void 0 : data.id, label: data === null || data === void 0 ? void 0 : data.name }, data));\nconst BaseAsyncRadio = (_a, ref) => {\n var { filterOption = false, pagination = false, api, onLoad, onSearch, transform = _transform, onScroll } = _a, props = __rest(_a, [\"filterOption\", \"pagination\", \"api\", \"onLoad\", \"onSearch\", \"transform\", \"onScroll\"]);\n const __api = React.useMemo(() => {\n if (!api)\n return '';\n if (typeof api === 'string')\n return {\n // enabling request cancelling by default\n cancellable: true,\n url: api,\n };\n if (typeof api === 'object')\n return Object.assign({ \n // enabling request cancelling by default\n cancellable: true }, api);\n return api;\n }, [api]);\n const isRequestCalled = React.useRef(false);\n const isBackendSearching = filterOption === false;\n const _query = React.useMemo(() => {\n // Предполагаем, что если объект api изменился, значит изменился и объект query\n // и нужно перезапросить данные\n isRequestCalled.current = false;\n if (typeof api !== 'object')\n return;\n return api.query;\n }, [api]);\n const request = useCallbackRef((payload, force = false) => {\n isRequestCalled.current = true;\n // TODO: Not the best practice\n // Maybe better pass query as as payload params in every usage\n const params = _query ? Object.assign(Object.assign({}, payload === null || payload === void 0 ? void 0 : payload.params), _query) : payload === null || payload === void 0 ? void 0 : payload.params;\n _request(Object.assign(Object.assign({}, payload), { params }), { force }).then(response => {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(response.results);\n });\n });\n React.useImperativeHandle(ref, () => ({\n request,\n }));\n const { loading, data, error, request: _request, next } = usePaginationApi(__api);\n const handleSearch = React.useMemo(() => debounce((search) => {\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(search);\n if (!isBackendSearching)\n return;\n request({ params: { search } }, true);\n }, 300), [isBackendSearching, onSearch, request]);\n /**\n * Request on the first mount\n */\n React.useEffect(() => {\n request();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_query]);\n // FIXME: Fix types\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const options = React.useMemo(() => {\n if (!data)\n return [];\n return data.map(transform);\n }, [data, transform]);\n const handleScroll = React.useCallback(event => {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(event);\n if (!pagination)\n return;\n const target = event.target;\n if (!isExceed(target.scrollTop + target.offsetHeight, target.scrollHeight, 80)) {\n return;\n }\n next();\n }, [next, onScroll, pagination]);\n return (React.createElement(RadioGroupSearch, Object.assign({}, props, { error: Boolean(error), loading: loading, options: options, onSearch: handleSearch, filterOption: filterOption, onScroll: handleScroll })));\n};\nconst AsyncRadio = React.forwardRef(BaseAsyncRadio);\nAsyncRadio.displayName = 'AsyncRadio';\n\nexport { AsyncRadio };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport debounce from 'lodash/debounce';\nimport { usePaginationApi } from '@10d/tend-ui-api';\nimport { isExceed } from '@10d/tend-ui-utils';\nimport { Select } from '../../primitives/Select/Select.js';\nimport { useCallbackRef } from '@10d/tend-ui-hooks';\nimport { EmptyOverlay } from '../../ui/EmptyOverlay/EmptyOverlay.js';\nimport { ErrorOverlay } from '../../ui/ErrorOverlay/ErrorOverlay.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst _transform = (data) => (Object.assign({ value: data === null || data === void 0 ? void 0 : data.id, label: data === null || data === void 0 ? void 0 : data.name }, data));\nconst BaseAsyncSelect = (_a, ref) => {\n var { filterOption = false, pagination = false, api, searchPropName = 'search', preload = ['onopen'], onLoad, onSearch, onSelect, onBlur, onDropdownVisibleChange, transform = _transform, onPopupScroll } = _a, props = __rest(_a, [\"filterOption\", \"pagination\", \"api\", \"searchPropName\", \"preload\", \"onLoad\", \"onSearch\", \"onSelect\", \"onBlur\", \"onDropdownVisibleChange\", \"transform\", \"onPopupScroll\"]);\n const __api = React.useMemo(() => {\n if (typeof api === 'string')\n return {\n // enabling request cancelling by default\n cancellable: true,\n url: api,\n };\n if (typeof api === 'object')\n return Object.assign({ \n // enabling request cancelling by default\n cancellable: true }, api);\n return api;\n }, [api]);\n const { loading, data, error, request: __request, next } = usePaginationApi(__api);\n /**\n * Нужно для отслеживания были ли получены данные или нет чтобы не делать\n * лишних запросов\n */\n const isRequestCalled = React.useRef(false);\n const isSearchTyped = React.useRef(false);\n const isMountingPreload = preload.includes('onmount');\n const isOpeningPreload = preload.includes('onopen');\n const isEveryOpeningPreload = preload.includes('oneveryopen');\n const isBluringPreload = preload.includes('onblur');\n const isEveryBluringPreload = preload.includes('oneveryblur');\n const isBackendSearching = filterOption === false;\n const isMultiple = props.mode === 'multiple';\n const isTags = props.mode === 'tags';\n const isSingle = !isMultiple && !isTags;\n const _query = React.useMemo(() => {\n // Предполагаем, что если объект api изменился, значит изменился и объект query\n // и нужно перезапросить данные\n isRequestCalled.current = false;\n if (typeof api !== 'object')\n return;\n return api.query;\n }, [api]);\n const request = useCallbackRef((payload, force = false) => {\n isRequestCalled.current = true;\n // TODO: Not the best practice\n // Maybe better pass query as as payload params in every usage\n const params = _query ? Object.assign(Object.assign({}, payload === null || payload === void 0 ? void 0 : payload.params), _query) : payload === null || payload === void 0 ? void 0 : payload.params;\n __request(Object.assign(Object.assign({}, payload), { params }), { force }).then(response => {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(response.results);\n });\n });\n React.useImperativeHandle(ref, () => ({\n request,\n }));\n /**\n * Request on the first mount\n */\n React.useEffect(() => {\n if (!isMountingPreload)\n return;\n request();\n // Следим за обновлением query объекта передаваемым извне\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_query]);\n const handleDropdownVisibleChange = React.useCallback(value => {\n onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(value);\n if (!value)\n return;\n if (isEveryOpeningPreload) {\n request();\n return;\n }\n if (isOpeningPreload && !isRequestCalled.current) {\n request();\n return;\n }\n }, [isEveryOpeningPreload, isOpeningPreload, onDropdownVisibleChange, request]);\n const handleSelect = React.useCallback((...params) => {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(...params);\n if (!isSingle || !isSearchTyped.current)\n return;\n isSearchTyped.current = false;\n /**\n * Перезапрашиваем данные без поискового запроса\n */\n request();\n }, [isSingle, onSelect, request]);\n const handleSearch = React.useMemo(() => debounce((search) => {\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(search);\n if (!isBackendSearching)\n return;\n if (!search) {\n isSearchTyped.current = false;\n request();\n return;\n }\n request({ params: { [searchPropName]: search } }, true);\n isSearchTyped.current = true;\n }, 300), [isBackendSearching, onSearch, request, searchPropName]);\n const handleBlur = React.useCallback(event => {\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);\n if (isEveryBluringPreload) {\n request();\n return;\n }\n if (isBluringPreload && !isRequestCalled.current) {\n request();\n }\n }, [isBluringPreload, isEveryBluringPreload, onBlur, request]);\n const notFoundContent = React.useMemo(() => {\n if (error)\n return React.createElement(ErrorOverlay, null);\n return React.createElement(EmptyOverlay, null);\n }, [error]);\n const options = React.useMemo(() => {\n if (!data)\n return [];\n return data.map(transform);\n }, [data, transform]);\n const handlePopupScroll = React.useCallback(event => {\n onPopupScroll === null || onPopupScroll === void 0 ? void 0 : onPopupScroll(event);\n if (!pagination)\n return;\n const target = event.target;\n if (!isExceed(target.scrollTop + target.offsetHeight, target.scrollHeight, 80)) {\n return;\n }\n next();\n }, [next, onPopupScroll, pagination]);\n return (React.createElement(Select, Object.assign({}, props, { filterOption: filterOption, loading: loading, options: options, notFoundContent: notFoundContent, onSearch: handleSearch, onSelect: handleSelect, onBlur: handleBlur, onDropdownVisibleChange: handleDropdownVisibleChange, onPopupScroll: handlePopupScroll })));\n};\nconst AsyncSelect = React.forwardRef(BaseAsyncSelect);\nAsyncSelect.displayName = 'AsyncSelect';\n\nexport { AsyncSelect };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { Text } from '@10d/tend-ui-typography';\nimport { Checkbox } from '../../primitives/Checkbox/Checkbox.js';\nimport { Spinner } from '@10d/tend-ui-primitives';\nimport { Search } from '../Search/Search.js';\nimport { Box } from '@10d/tend-ui-grid';\nimport { useTheme } from '@10d/tend-ui-theme';\nimport { Scrollable } from '../../ui/Scrollable/Scrollable.js';\nimport { useFilterOption } from '../../hooks/useFilterOption.js';\nimport { useCallbackRef } from '@10d/tend-ui-hooks';\nimport { EmptyOverlay } from '../../ui/EmptyOverlay/EmptyOverlay.js';\nimport { ErrorOverlay } from '../../ui/ErrorOverlay/ErrorOverlay.js';\n\nconst createVirtualRootStyle = (size) => ({\n height: `${size}px`,\n width: '100%',\n position: 'relative',\n});\nconst createVirtualItemStyle = (vi) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: `${vi.size}px`,\n transform: `translateY(${vi.start}px)`,\n});\nconst createKey = (item) => {\n if (typeof item.value !== 'boolean')\n return item.value;\n return item.id;\n};\nconst CheckboxGroupSearch = (_a) => {\n var { optionAfter, optionDescription, placeholder, allowClear, showSearch = true, virtual = false, error = false, loading = false, filterOption = true, filterOptionProp = 'value', scrollable = true, optionRender, options, onSearch, onChange, value, onScroll } = _a, props = __rest(_a, [\"optionAfter\", \"optionDescription\", \"placeholder\", \"allowClear\", \"showSearch\", \"virtual\", \"error\", \"loading\", \"filterOption\", \"filterOptionProp\", \"scrollable\", \"optionRender\", \"options\", \"onSearch\", \"onChange\", \"value\", \"onScroll\"]);\n const theme = useTheme();\n const [selectedValues, setSelectedValues] = React.useState([]);\n const [search, setSearch] = React.useState('');\n React.useEffect(() => {\n if (!value) {\n setSelectedValues([]);\n return;\n }\n setSelectedValues(value);\n }, [value]);\n const handleSearch = React.useCallback((e) => {\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(e.target.value);\n setSearch(e.target.value);\n }, [onSearch]);\n const handleChange = React.useCallback(e => {\n // FIXME: Нормально ли так делать? Непонятно, но варианта вызывать onChange\n // не создавая side-effect пока не вижу\n let _next = [];\n setSelectedValues(previousSelectedValues => {\n const value = e.target.value;\n const checked = e.target.checked;\n if (checked) {\n const next = [...previousSelectedValues, value];\n _next = next;\n return next;\n }\n const next = previousSelectedValues.filter(pValue => pValue !== value);\n _next = next;\n return next;\n });\n onChange === null || onChange === void 0 ? void 0 : onChange(_next);\n }, [onChange]);\n const createLabel = useCallbackRef((node, option) => {\n if (!optionAfter && !optionDescription)\n return node;\n const after = typeof optionAfter === 'function' ? optionAfter(option) : optionAfter;\n const description = typeof optionDescription === 'function'\n ? optionDescription(option)\n : optionDescription;\n return (React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center' },\n description ? (React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column' },\n node,\n React.createElement(Text, { size: 'small', color: 'gray650' }, description))) : (node),\n after && (React.createElement(Box, { \"$flex\": '1', \"$display\": 'flex', \"$justifyContent\": 'flex-end' }, after))));\n });\n const _options = React.useMemo(() => {\n if (!options)\n return [];\n return options.map(item => (Object.assign(Object.assign({}, item), { label: optionRender\n ? createLabel(optionRender(item), item)\n : createLabel(item.label, item) })));\n }, [createLabel, optionRender, options]);\n const filteredOptions = useFilterOption({\n search,\n filterOption,\n options: _options,\n filterOptionProp,\n });\n const ref = React.useRef(null);\n const rowVirtualizer = useVirtualizer({\n count: filteredOptions.length,\n getScrollElement: () => ref.current,\n estimateSize: () => 24,\n });\n const component = React.useMemo(() => {\n if (virtual) {\n return (React.createElement(Checkbox.Group, Object.assign({ style: createVirtualRootStyle(rowVirtualizer.getTotalSize()), fullWidth: true, layout: 'vertical' }, props, { value: selectedValues }), rowVirtualizer.getVirtualItems().map(virtualItem => {\n const filteredOption = filteredOptions[virtualItem.index];\n return (React.createElement(Checkbox, { style: createVirtualItemStyle(virtualItem), key: createKey(filteredOption), value: filteredOption.value, onChange: handleChange }, filteredOption.label));\n })));\n }\n return (React.createElement(Checkbox.Group, Object.assign({ fullWidth: true, layout: 'vertical' }, props, { value: selectedValues }), filteredOptions.map(filteredOption => (React.createElement(Checkbox, { key: createKey(filteredOption), value: filteredOption.value, onChange: handleChange }, filteredOption.label)))));\n }, [filteredOptions, handleChange, props, rowVirtualizer, selectedValues, virtual]);\n const content = React.useMemo(() => {\n if (filteredOptions.length)\n return component;\n if (loading)\n return null;\n if (error)\n return React.createElement(ErrorOverlay, null);\n if (!filteredOptions.length)\n return React.createElement(EmptyOverlay, null);\n return component;\n }, [component, error, filteredOptions.length, loading]);\n return (React.createElement(Spinner, { color: theme.colors.blue600, size: 'small', loading: loading },\n React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column', \"$gap\": 8 },\n showSearch && (React.createElement(Search, { onChange: handleSearch, allowClear: allowClear, placeholder: placeholder })),\n scrollable ? (React.createElement(Scrollable, { ref: ref, onScroll: onScroll }, content)) : (content))));\n};\nCheckboxGroupSearch.displayName = 'CheckboxGroupSearch';\n\nexport { CheckboxGroupSearch };\n","import styled from 'styled-components';\nimport { DragIndicator } from '@10d/tend-ui-icons/DragIndicator';\nimport { Toggle as Toggle$1 } from '../../../../primitives/Toggle/Toggle.js';\n\nconst Toggle = styled(Toggle$1) `\n width: 100%;\n`;\nstyled(DragIndicator) `\n cursor: grab;\n`;\n\nexport { Toggle };\n","import { contextFactory } from '../../../../../factories/contextFactory.js';\n\n/**\n * @internal Not for public usage\n */\nconst [ColumnsSettingContext, useColumnsSettingContext] = contextFactory();\n\nexport { ColumnsSettingContext, useColumnsSettingContext };\n","import React from 'react';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Box } from '@10d/tend-ui-grid';\nimport { ColumnsSettingContext } from '../../contexts/ColumnsSettingContext.js';\n\nconst Root = ({ column, className, children, }) => {\n const { attributes, isDragging, listeners, setNodeRef, setActivatorNodeRef, transform, transition, } = useSortable({ id: column.id, disabled: !column.draggable });\n const style = {\n opacity: isDragging ? 0.4 : undefined,\n transform: CSS.Translate.toString(transform),\n transition,\n };\n const value = React.useMemo(() => ({\n attributes,\n listeners,\n setActivatorNodeRef,\n }), [attributes, listeners, setActivatorNodeRef]);\n return (React.createElement(Box, { \"data-testid\": 'tend-ui-columns-settings-column-setting-root', ref: setNodeRef, \"$display\": 'flex', \"$alignItems\": 'center', \"$gap\": 8, style: style, className: className },\n React.createElement(ColumnsSettingContext, { value: value }, children)));\n};\n\nexport { Root };\n","import styled from 'styled-components';\nimport { DragIndicator as DragIndicator$1 } from '@10d/tend-ui-icons/DragIndicator';\n\nconst DragIndicator = styled(DragIndicator$1) `\n cursor: grab;\n`;\n\nexport { DragIndicator };\n","import React from 'react';\nimport { DragIndicator } from './styled.js';\nimport { useColumnsSettingContext } from '../../contexts/ColumnsSettingContext.js';\n\nconst DragHandle = ({ disabled, children }) => {\n const context = useColumnsSettingContext();\n const content = children !== null && children !== void 0 ? children : (React.createElement(DragIndicator, { size: 20, color: disabled ? 'gray500' : 'gray900' }));\n return (React.createElement(\"span\", Object.assign({ \"data-testid\": 'tend-ui-columns-settings-column-setting-drag', ref: context.setActivatorNodeRef }, context.attributes, context.listeners), content));\n};\n\nexport { DragHandle };\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Pin as Pin$1 } from '@10d/tend-ui-icons/Pin';\n\nconst Root = styled(Pin$1) `\n cursor: ${props => (props.$disabled ? 'not-allowed' : 'pointer')};\n`;\nconst Pin = ({ disabled, pinned, onClick, onChange }) => {\n const handleClick = React.useCallback((e) => {\n if (disabled)\n return;\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n if (pinned) {\n onChange === null || onChange === void 0 ? void 0 : onChange('none');\n return;\n }\n onChange === null || onChange === void 0 ? void 0 : onChange('left');\n }, [disabled, onChange, onClick, pinned]);\n const colors = [\n [disabled, 'gray500'],\n [pinned, 'blue600'],\n [true, 'gray900'],\n ];\n const [, color] = colors.filter(([condition]) => condition)[0] || [];\n return (React.createElement(Root, { \"data-testid\": 'tend-ui-columns-settings-column-setting-pin', \"$disabled\": disabled, size: 20, color: color, onClick: handleClick }));\n};\n\nexport { Pin };\n","import React from 'react';\nimport { Toggle } from './styled.js';\nimport { Root } from './components/Root/Root.js';\nimport { DragHandle } from './components/DragHandle/DragHandle.js';\nimport { Pin } from './components/Pin/Pin.js';\n\nconst BaseColumnsSetting = ({ column, onColumnVisibilityChange, onColumnPinningChange, }) => {\n return (React.createElement(Root, { column: column },\n React.createElement(Toggle, { \"data-testid\": 'tend-ui-columns-settings-column-setting-toggle', checked: column.visible, disabled: column.disabled, UNSTABLE_styling: React.useMemo(() => ({ Text: { strong: true } }), []), onChange: React.useCallback(visible => {\n onColumnVisibilityChange === null || onColumnVisibilityChange === void 0 ? void 0 : onColumnVisibilityChange(visible, column);\n }, [column, onColumnVisibilityChange]) }, column.label || column.title),\n React.createElement(Pin, { disabled: !column.pinnable, pinned: !!column.fixed, onChange: React.useCallback(p => onColumnPinningChange === null || onColumnPinningChange === void 0 ? void 0 : onColumnPinningChange(p, column), [column, onColumnPinningChange]) }),\n React.createElement(DragHandle, { disabled: !column.draggable })));\n};\nconst MemoizedColumnsSetting = React.memo(BaseColumnsSetting);\nconst ColumnsSetting = Object.assign(MemoizedColumnsSetting, {\n Root,\n DragHandle,\n Pin,\n});\n\nexport { ColumnsSetting };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { Button } from '@10d/tend-ui-primitives';\n\nconst ResetButton = (_a) => {\n var { children } = _a, props = __rest(_a, [\"children\"]);\n const t = useTranslation();\n const content = children !== null && children !== void 0 ? children : t(['components', 'ColumnsSettings', 'reset']);\n return (React.createElement(Button, Object.assign({ size: 'small', variant: 'secondary' }, props), content));\n};\nResetButton.displayName = 'ColumnsSettings.ResetButton';\n\nexport { ResetButton };\n","import React from 'react';\nimport { SortableContext } from '@dnd-kit/sortable';\nimport { Box } from '@10d/tend-ui-grid';\n\nconst List = ({ columns, children, gap = 8, }) => {\n return (React.createElement(SortableContext, { items: columns },\n React.createElement(Box, { \"data-testid\": 'tend-ui-columns-settings-list', \"$display\": 'flex', \"$flexDirection\": 'column', \"$gap\": gap }, children)));\n};\n\nexport { List };\n","import { createContext } from '@10d/tend-ui-factories';\n\nconst [ColumnsSettingsPresetsProvider, useColumnsSettingsPresetsProvider] = createContext('ColumnsSettingsPresetsProvider');\n\nexport { ColumnsSettingsPresetsProvider, useColumnsSettingsPresetsProvider };\n","import React from 'react';\nimport { DndContext } from '@dnd-kit/core';\nimport { ColumnsSettingsPresetsProvider } from '../../contexts/PresetsContext.js';\n\nconst Root = ({ columns, children, onColumnDragEnd, defaultPresets = [], onPresetApply, onPresetEdit, onPresetRemove, onPresetSave, }) => {\n const handleDragEnd = React.useCallback((e) => {\n if (!e.over)\n return;\n if (e.active.id === e.over.id)\n return;\n const ids = columns.map(column => column.id);\n const from = ids.indexOf(e.active.id.toString());\n const to = ids.indexOf(e.over.id.toString());\n onColumnDragEnd === null || onColumnDragEnd === void 0 ? void 0 : onColumnDragEnd(from, to);\n }, [columns, onColumnDragEnd]);\n return (React.createElement(DndContext, { \"data-testid\": 'tend-ui-columns-settings-root', onDragEnd: handleDragEnd },\n React.createElement(ColumnsSettingsPresetsProvider, { presets: defaultPresets, onPresetApply: onPresetApply, onPresetEdit: onPresetEdit, onPresetRemove: onPresetRemove, onPresetSave: onPresetSave }, children)));\n};\nRoot.displayName = 'ColumnsSettings.Root';\n\nexport { Root };\n","import pick from 'lodash/pick';\n\nconst mapColumnsForPreset = (columns) => {\n return columns.map(column => pick(column, ['id', 'visible', 'disabled', 'draggable', 'fixed', 'pinnable']));\n};\n\nexport { mapColumnsForPreset };\n","import React from 'react';\nimport { Button, Input } from '@10d/tend-ui-primitives';\nimport { v4 } from 'uuid';\nimport { Bookmark } from '@10d/tend-ui-icons/Bookmark';\nimport { useBoolean, INTERNAL_useMissingName } from '@10d/tend-ui-hooks';\nimport { Form } from '../../../Form/Form.js';\nimport { Modal } from '../../../../primitives/Modal/Modal.js';\nimport { useColumnsSettingsPresetsProvider } from '../../contexts/PresetsContext.js';\nimport { mapColumnsForPreset } from '../../utils/mapColumnsForPreset.js';\n\nconst SavePresetButton = ({ columns, }) => {\n var _a;\n const [form] = Form.useForm();\n const model = useColumnsSettingsPresetsProvider('ColumnsSettings.SavePresetButton');\n const [open, toggle] = useBoolean(false);\n const names = ((_a = model.presets) === null || _a === void 0 ? void 0 : _a.map(preset => preset.label)) || [];\n const name = INTERNAL_useMissingName(names, 'Сохраненные колонки');\n return (React.createElement(React.Fragment, null,\n React.createElement(Button, { before: React.createElement(Bookmark, null), \"data-testid\": 'tend-ui-columns-settings-save-button', variant: 'secondary', size: 'small', onClick: () => {\n toggle();\n } }),\n React.createElement(Modal, { \"data-testid\": 'tend-ui-columns-settings-save-preset-modal', open: open, size: 'small', title: '\\u0423\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u043D\\u0430\\u0437\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0448\\u0430\\u0431\\u043B\\u043E\\u043D\\u0430 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043E\\u043A', cancelButtonProps: { variant: 'link' }, okText: '\\u0421\\u043E\\u0445\\u0440\\u0430\\u043D\\u0438\\u0442\\u044C \\u043A\\u043E\\u043B\\u043E\\u043D\\u043A\\u0438', onOk: React.useCallback(() => {\n form.validateFields().then(payload => {\n var _a;\n if (!payload.name)\n return;\n const value = mapColumnsForPreset(columns);\n (_a = model.onPresetSave) === null || _a === void 0 ? void 0 : _a.call(model, {\n id: v4(),\n label: payload.name,\n value,\n });\n toggle();\n form.resetFields();\n });\n }, [columns, form, model, toggle]), onCancel: () => toggle() },\n React.createElement(Form, { form: form, initialValues: { name } },\n React.createElement(Form.Item, { required: true, name: 'name', rules: React.useMemo(() => [\n {\n required: true,\n message: 'Название шаблона обязательно для заполнения',\n },\n {\n required: true,\n message: 'Шаблон с таким названием уже существует',\n validator: () => {\n var _a;\n const state = form.getFieldsValue();\n if (!state.name)\n return Promise.resolve();\n const isExist = (_a = model.presets) === null || _a === void 0 ? void 0 : _a.map(preset => preset.label).includes(state.name);\n if (!isExist)\n return Promise.resolve();\n return Promise.reject();\n },\n },\n ], [form, model.presets]) },\n React.createElement(Input, { placeholder: '\\u0412\\u0432\\u0435\\u0434\\u0438\\u0442\\u0435 \\u043D\\u0430\\u0437\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440\\u0430' }))))));\n};\nSavePresetButton.displayName = 'ColumnsSettings.SavePresetButton';\n\nexport { SavePresetButton };\n","import styled from 'styled-components';\n\nconst Root = styled.input `\n font-size: 14px;\n line-height: 20px;\n font-weight: 500;\n border-radius: 4px;\n border: 1px solid ${props => props.theme.colors.blue600};\n background-color: ${props => props.theme.colors.gray50};\n\n margin: 0;\n padding: 0;\n`;\n\nexport { Root };\n","import React from 'react';\nimport { useTheme } from '@10d/tend-ui-theme';\nimport { Root } from './styled.js';\n\nconst Input = React.forwardRef((props, ref) => {\n const theme = useTheme();\n return React.createElement(Root, Object.assign({}, props, { theme: theme, ref: ref }));\n});\n\nexport { Input };\n","import React from 'react';\nimport { Box } from '@10d/tend-ui-grid/Box';\nimport { Text } from '@10d/tend-ui-typography/Text';\nimport { useKeyPress } from '@10d/tend-ui-hooks';\nimport { MoreVert } from '@10d/tend-ui-icons/MoreVert';\nimport isEqual from 'lodash/isEqual';\nimport omitBy from 'lodash/omitBy';\nimport isNil from 'lodash/isNil';\nimport { Dropdown } from '../../../../primitives/Dropdown/Dropdown.js';\nimport { Radio } from '../../../../primitives/Radio/Radio.js';\nimport { Collapse } from '../../../../ui/Collapse/Collapse.js';\nimport { useColumnsSettingsPresetsProvider } from '../../contexts/PresetsContext.js';\nimport { mapColumnsForPreset } from '../../utils/mapColumnsForPreset.js';\nimport { Input } from './Input/Input.js';\n\nconst Item = ({ columns, preset, onClick, onRemove, onEdit, }) => {\n const [value, setValue] = React.useState(preset.label);\n const [editing, setEditing] = React.useState(false);\n const comparing = React.useMemo(() => mapColumnsForPreset(columns).map(column => omitBy(column, isNil)), [columns]);\n const checked = React.useMemo(() => isEqual(comparing, preset.value), [comparing, preset.value]);\n useKeyPress('Enter', () => {\n if (!editing)\n return;\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(Object.assign(Object.assign({}, preset), { label: value }));\n setEditing(false);\n setValue('');\n });\n return (React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$gap\": 8 },\n React.createElement(Radio, { checked: checked, value: preset.id, onChange: React.useCallback(() => {\n onClick === null || onClick === void 0 ? void 0 : onClick(preset);\n }, [onClick, preset]) }, editing ? (React.createElement(Input, { onChange: e => setValue(e.target.value), value: value })) : (preset.label)),\n React.createElement(Box, { \"$display\": 'flex', \"$justifyContent\": 'flex-end', \"$flex\": '1' },\n React.createElement(Dropdown, { items: React.useMemo(() => [\n { key: '1', label: 'Переименовать', onClick: () => setEditing(true) },\n { key: '2', label: 'Удалить', onClick: () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(preset) },\n ], [onRemove, preset]) },\n React.createElement(MoreVert, { cursor: 'pointer', size: 16 })))));\n};\n// TODO: Нужно передавать значение колонок через контекст\n// так как PresetList может отдаваться наружу в публичное compound API\nconst PresetsList = ({ columns, }) => {\n var _a, _b, _c;\n const model = useColumnsSettingsPresetsProvider('ColumnsSettings.PresetsList');\n const text = ((_a = model.presets) === null || _a === void 0 ? void 0 : _a.length)\n ? `Сохраненные колонки: ${model.presets.length}`\n : 'Сохраненные колонки';\n return (React.createElement(Collapse, { label: React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$justifyContent\": 'space-between', \"$width\": '100%', \"$minHeight\": '20px' },\n React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$gap\": 4 },\n React.createElement(Text, { strong: true }, text))) }, ((_b = model.presets) === null || _b === void 0 ? void 0 : _b.length) > 0 ? (React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column', \"$gap\": 8 }, (_c = model.presets) === null || _c === void 0 ? void 0 : _c.map(preset => (React.createElement(Item, { key: preset.id, columns: columns, preset: preset, onClick: model.onPresetApply, onRemove: model.onPresetRemove, onEdit: model.onPresetEdit }))))) : (React.createElement(Text, { color: 'gray500' }, \"\\u041D\\u0435\\u0442 \\u0441\\u043E\\u0445\\u0440\\u0430\\u043D\\u0435\\u043D\\u043D\\u044B\\u0445 \\u043A\\u043E\\u043B\\u043E\\u043D\\u043E\\u043A\"))));\n};\nPresetsList.displayName = 'ColumnsSettings.PresetsList';\n\nexport { PresetsList };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { Drawer } from '@10d/tend-ui-primitives';\nimport { INTERNAL_TendUILogger, isUndefined, isString } from '@10d/tend-ui-utils';\nimport { Title } from '@10d/tend-ui-typography';\nimport { Box } from '@10d/tend-ui-grid';\nimport { Divider } from '../../ui/Divider/Divider.js';\nimport { ColumnsSetting } from './components/ColumnsSetting/ColumnsSetting.js';\nimport { ResetButton } from './components/ResetButton/ResetButton.js';\nimport { List } from './components/List/List.js';\nimport { Root } from './components/Root/Root.js';\nimport { SavePresetButton } from './components/SavePresetButton/SavePresetButton.js';\nimport { PresetsList } from './components/PresetsList/PresetsList.js';\n\nconst createReactKey = (config) => {\n var _a;\n return (_a = config.key) !== null && _a !== void 0 ? _a : `tend-ui-filters-list-filter-${config.id}`;\n};\nconst BaseColumnsSettings = (_a) => {\n var { title, columns, onColumnVisibilityChange, onColumnDragEnd, onColumnsReset, onColumnPinningChange, showPresets = false, defaultPresets, onPresetApply, onPresetEdit, onPresetRemove, onPresetSave } = _a, props = __rest(_a, [\"title\", \"columns\", \"onColumnVisibilityChange\", \"onColumnDragEnd\", \"onColumnsReset\", \"onColumnPinningChange\", \"showPresets\", \"defaultPresets\", \"onPresetApply\", \"onPresetEdit\", \"onPresetRemove\", \"onPresetSave\"]);\n if (process.env.NODE_ENV === 'development') {\n INTERNAL_TendUILogger.warning([\n ' из пакета \"@10d/tend-ui\" устарел и больше не поддерживается.',\n '',\n 'Используйте из пакета \"@10d/tend-ui-columns-settings\".',\n '',\n 'https://tend-ui-stage.samoletgroup.ru/?path=/docs/tend-ui-columns-settings-drawercolumnssettings--docs',\n ]);\n }\n const t = useTranslation();\n const _title = React.useMemo(() => {\n if (isUndefined(title))\n return (React.createElement(Title, { margin: '0', level: 'h5', style: { flex: '1' } }, t(['components', 'ColumnsSettings', 'title'])));\n if (isString(title))\n return (React.createElement(Title, { margin: '0', level: 'h5', style: { flex: '1' } }, title));\n return title;\n }, [t, title]);\n return (React.createElement(Root, { columns: columns, onColumnDragEnd: onColumnDragEnd, defaultPresets: defaultPresets, onPresetApply: onPresetApply, onPresetEdit: onPresetEdit, onPresetRemove: onPresetRemove, onPresetSave: onPresetSave },\n React.createElement(Drawer.Root, Object.assign({ \"data-testid\": 'tend-ui-columns-settings-drawer' }, props),\n React.createElement(Drawer.Header, null,\n _title,\n React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$gap\": 8 },\n showPresets && React.createElement(SavePresetButton, { columns: columns }),\n React.createElement(ResetButton, { onClick: onColumnsReset }),\n React.createElement(Drawer.CloseButton, null))),\n React.createElement(Drawer.Body, null,\n React.createElement(List, { columns: columns },\n showPresets && (React.createElement(React.Fragment, null,\n React.createElement(PresetsList, { columns: columns }),\n React.createElement(Divider, { padding: '0' }))),\n columns.map(column => (React.createElement(ColumnsSetting, { key: createReactKey(column), column: column, onColumnPinningChange: onColumnPinningChange, onColumnVisibilityChange: onColumnVisibilityChange }))))))));\n};\nconst MemoizedBaseColumnsSettings = React.memo(BaseColumnsSettings);\n/**\n * @deprecated Компонент устарел и больше не поддерживается.\n * Используйте компонент из пакета `@10d/tend-ui-columns-settings`.\n */\nconst ColumnsSettings = Object.assign(MemoizedBaseColumnsSettings, {\n displayName: 'ColumnsSettings',\n Root,\n List,\n ColumnsSetting,\n ResetButton,\n});\n\nexport { ColumnsSettings };\n","const createDefaultColumn = (column) => {\n var _a, _b, _c;\n return (Object.assign(Object.assign({}, column), { visible: (_a = column === null || column === void 0 ? void 0 : column.visible) !== null && _a !== void 0 ? _a : true, pinnable: (_b = column === null || column === void 0 ? void 0 : column.pinnable) !== null && _b !== void 0 ? _b : true, draggable: (_c = column === null || column === void 0 ? void 0 : column.draggable) !== null && _c !== void 0 ? _c : true }));\n};\n\nexport { createDefaultColumn };\n","import pick from 'lodash/pick';\n\nconst mapColumnsForLocalStorage = (columns) => {\n return columns.map(column => pick(column, ['id', 'visible', 'disabled', 'draggable', 'fixed', 'pinnable']));\n};\n\nexport { mapColumnsForLocalStorage };\n","import omit from 'lodash/omit';\n\nconst patchColumnPosition = (column, position) => {\n if (position === 'none')\n return omit(column, 'fixed');\n return Object.assign(Object.assign({}, column), { fixed: position });\n};\n\nexport { patchColumnPosition };\n","import React from 'react';\nimport groupBy from 'lodash/groupBy';\nimport { move } from '@10d/tend-ui-utils/move';\nimport { LocalStorage } from '@10d/tend-ui-utils/LocalStorage';\nimport { useControllableState, useCallbackRef } from '@10d/tend-ui-hooks';\nimport { order } from '@10d/tend-ui-utils';\nimport { createDefaultColumn } from '../utils/createDefaultColumn.js';\nimport { mapColumnsForLocalStorage } from '../utils/mapColumnsForLocalStorage.js';\nimport { patchColumnPosition } from '../utils/patchColumnPosition.js';\n\nconst isColumnsValid = (next, prev) => {\n /**\n * Если количество изначальных колонок не совпадает с тем\n * что в localStorage (например добавились новые),\n * то сохраненные ранее колонки не валидны\n */\n if (next.length !== prev.length)\n return false;\n const nextIds = next.map(c => c.id);\n const prevIds = prev.map(c => c.id);\n const difference = nextIds.filter(id => !prevIds.includes(id));\n /**\n * Если id колонок не совпадают c тем что было раньше\n * то сохраненные ранее колонки не валидны\n */\n if (difference.length > 0)\n return false;\n return true;\n};\n/**\n * @deprecated Хук устарел и больше не поддерживается.\n * Используйте хук из пакета `@10d/tend-ui-columns-settings`.\n */\nconst useColumns = (parameters) => {\n const onPresetApply = React.useMemo(() => (!Array.isArray(parameters) ? parameters.onPresetApply : undefined), [parameters]);\n const onPresetSave = React.useMemo(() => (!Array.isArray(parameters) ? parameters.onPresetSave : undefined), [parameters]);\n const onPresetEdit = React.useMemo(() => (!Array.isArray(parameters) ? parameters.onPresetEdit : undefined), [parameters]);\n const onPresetRemove = React.useMemo(() => (!Array.isArray(parameters) ? parameters.onPresetRemove : undefined), [parameters]);\n const storageKey = !Array.isArray(parameters) ? parameters.localStorage : undefined;\n const ignore = React.useMemo(() => (!Array.isArray(parameters) ? parameters.ignore || [] : []), [parameters]);\n const defaultColumns = React.useMemo(() => {\n if (Array.isArray(parameters))\n return parameters.map(createDefaultColumn);\n return parameters.columns.map(createDefaultColumn);\n }, [parameters]);\n const initialColumns = React.useMemo(() => {\n if (Array.isArray(parameters))\n return parameters.map(createDefaultColumn);\n if (!parameters.localStorage)\n return parameters.columns.map(createDefaultColumn);\n const saved = LocalStorage.get(parameters.localStorage);\n if (!saved)\n return parameters.columns.map(createDefaultColumn);\n if (!isColumnsValid(parameters.columns, saved))\n return parameters.columns.map(createDefaultColumn);\n const grouped = groupBy(saved, 'id');\n return parameters.columns\n .map(createDefaultColumn)\n .sort((a, b) => {\n const first = saved.findIndex(column => column.id === a.id);\n const second = saved.findIndex(column => column.id === b.id);\n return first - second;\n })\n .map(column => {\n const [{ visible, disabled, draggable, fixed, pinnable }] = grouped[column.id];\n return Object.assign(Object.assign({}, column), { visible, disabled, draggable, fixed, pinnable });\n });\n }, [parameters]);\n const [_columns, _setColumns] = React.useState(initialColumns);\n /**\n * initialColumns пересоздается на каждый ререндер из-за того,\n * что parameters - сложный объект. Чтобы избежать цикличных апдейтов\n * превращаем колонки в строку и сравниваем строки\n */\n const stringified = React.useMemo(() => JSON.stringify(initialColumns.map(column => ({ id: column.id, key: column.key }))), [initialColumns]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useEffect(() => _setColumns(initialColumns), [stringified]);\n const [__presets = [], __setPresets] = useControllableState({\n defaultValue: Array.isArray(parameters) ? undefined : parameters.defaultPresets,\n onChange: Array.isArray(parameters) ? undefined : parameters.onPresetsChange,\n });\n const applyPreset = useCallbackRef(payload => {\n const grouped = groupBy(payload.value, 'id');\n _setColumns(previousColumns => {\n const ordering = payload.value.map(column => column.id);\n return order(previousColumns, ordering, 'id').map(column => {\n const [{ visible, disabled, draggable, fixed, pinnable }] = grouped[column.id];\n return Object.assign(Object.assign({}, column), { visible, disabled, draggable, fixed, pinnable });\n });\n });\n onPresetApply === null || onPresetApply === void 0 ? void 0 : onPresetApply(payload);\n });\n const savePreset = useCallbackRef(payload => {\n __setPresets((previousPresets = []) => [...previousPresets, payload]);\n onPresetSave === null || onPresetSave === void 0 ? void 0 : onPresetSave(payload);\n });\n const editPreset = useCallbackRef(payload => {\n __setPresets((previousPresets = []) => {\n return previousPresets.map(previousPreset => previousPreset.id === payload.id ? payload : previousPreset);\n });\n onPresetEdit === null || onPresetEdit === void 0 ? void 0 : onPresetEdit(payload);\n });\n const removePreset = useCallbackRef(id => {\n let removed;\n __setPresets((previousPresets = []) => {\n const target = previousPresets.find(previousPreset => previousPreset.id === id);\n removed = target;\n return previousPresets.filter(previousPreset => previousPreset.id !== id);\n });\n if (!removed)\n return;\n onPresetRemove === null || onPresetRemove === void 0 ? void 0 : onPresetRemove(removed);\n });\n const swap = useCallbackRef((from, to) => {\n _setColumns(previousColumns => {\n const ignored = previousColumns.reduce((acc, cv, index) => {\n if (!ignore.includes(cv.id))\n return acc;\n acc.push([index, cv]);\n return acc;\n }, []);\n const next = previousColumns\n .filter(column => !ignore.includes(column.id))\n .map((column, index) => {\n if (index === from) {\n return patchColumnPosition(column, 'none');\n }\n return column;\n });\n const moved = move(next, from, to);\n ignored.forEach(([i, v]) => {\n moved.splice(i, 0, v);\n });\n if (storageKey) {\n LocalStorage.set(storageKey, mapColumnsForLocalStorage(moved));\n }\n return moved;\n });\n });\n const unpin = React.useCallback((column) => {\n _setColumns(previousColumns => {\n const next = previousColumns.map(prevColumn => {\n if (prevColumn.id === column.id) {\n return patchColumnPosition(prevColumn, 'none');\n }\n return prevColumn;\n });\n if (storageKey) {\n LocalStorage.set(storageKey, mapColumnsForLocalStorage(next));\n }\n return next;\n });\n }, [storageKey]);\n const pin = React.useCallback((position, column) => {\n _setColumns(previousColumns => {\n const rightPosition = previousColumns.length - 1;\n const currentPosition = previousColumns.findIndex(value => value.id === column.id);\n const pinned = previousColumns.filter(col => col.fixed === 'left');\n const positionsMap = {\n left: pinned.length,\n right: rightPosition,\n none: currentPosition,\n };\n const to = positionsMap[position];\n const moved = move(previousColumns, currentPosition, to);\n const next = moved.map(movedColumn => {\n if (movedColumn.id === column.id)\n return patchColumnPosition(movedColumn, position);\n return movedColumn;\n });\n if (storageKey) {\n LocalStorage.set(storageKey, mapColumnsForLocalStorage(next));\n }\n return next;\n });\n }, [storageKey]);\n const reset = useCallbackRef(() => {\n _setColumns(defaultColumns);\n if (!storageKey)\n return;\n LocalStorage.set(storageKey, mapColumnsForLocalStorage(defaultColumns));\n });\n const display = React.useCallback((visible, column) => {\n _setColumns(previousColumns => {\n const next = previousColumns.map(previousColumn => {\n if (previousColumn.id === column.id)\n return Object.assign(Object.assign({}, previousColumn), { visible });\n return previousColumn;\n });\n if (storageKey) {\n LocalStorage.set(storageKey, mapColumnsForLocalStorage(next));\n }\n return next;\n });\n }, [storageKey]);\n /**\n * `Table` columns\n */\n const columns = React.useMemo(() => _columns.filter(column => column.visible), [_columns]);\n /**\n * `ColumnsSettings` columns\n */\n const renderColumns = React.useMemo(() => {\n const notIgnored = _columns.filter(column => !ignore.includes(column.id));\n const onlyVisibles = notIgnored.filter(column => column.visible);\n if (onlyVisibles.length === 1) {\n return notIgnored.map(column => {\n if (column.id === onlyVisibles[0].id) {\n return Object.assign(Object.assign({}, column), { disabled: true });\n }\n return column;\n });\n }\n return notIgnored;\n }, [_columns, columns, ignore]);\n const model = React.useMemo(() => ({\n columns: renderColumns,\n set: _setColumns,\n swap,\n pin,\n unpin,\n reset,\n display,\n presets: __presets,\n savePreset,\n editPreset,\n removePreset,\n applyPreset,\n }), [\n __presets,\n applyPreset,\n display,\n editPreset,\n pin,\n removePreset,\n renderColumns,\n reset,\n savePreset,\n swap,\n unpin,\n ]);\n return [columns, model];\n};\n\nexport { useColumns };\n","import React from 'react';\n\nconst useColumnsSettings = (model) => {\n const onColumnVisibilityChange = React.useCallback((visible, column) => {\n model.display(visible, column);\n }, [model]);\n const onColumnPinningChange = React.useCallback((position, column) => {\n model.pin(position, column);\n }, [model]);\n const onColumnsReset = React.useCallback(() => {\n model.reset();\n }, [model]);\n const onColumnDragEnd = React.useCallback((from, to) => {\n model.swap(from, to);\n }, [model]);\n const properties = React.useMemo(() => ({\n columns: model.columns,\n onColumnVisibilityChange,\n onColumnPinningChange,\n onColumnDragEnd,\n onColumnsReset,\n defaultPresets: model.presets,\n onPresetApply: model.applyPreset,\n onPresetSave: model.savePreset,\n onPresetEdit: model.editPreset,\n onPresetRemove: removed => model.removePreset(removed.id),\n }), [\n model,\n onColumnDragEnd,\n onColumnPinningChange,\n onColumnVisibilityChange,\n onColumnsReset,\n ]);\n return properties;\n};\n\nexport { useColumnsSettings };\n","import React from 'react';\nimport { isBoolean } from '@10d/tend-ui-utils/isBoolean';\n\nconst useDisabled = (props, values) => {\n const disabled = React.useMemo(() => {\n if (isBoolean(props.disabled))\n return props.disabled;\n if (!Array.isArray(props.config.requires))\n return;\n if (!values)\n return;\n // Updating disabled state\n const disabled = props.config.requires.some(filterName => {\n const key = filterName;\n const hasValue = values[key];\n return !hasValue;\n });\n return disabled;\n }, [props.config.requires, props.disabled, values]);\n return disabled;\n};\n\nexport { useDisabled };\n","import React from 'react';\nimport pick from 'lodash/pick';\n\nconst useDepends = (props, values) => {\n return React.useMemo(() => JSON.stringify(pick(values, props.config.depends || [])), [props.config.depends, values]);\n};\n\nexport { useDepends };\n","import { Form } from '../../Form/Form.js';\n\nconst useValuesObserver = (name, form, scope) => {\n const values = Form.useWatch(values => {\n // Предполагаем, что когда мы используем фильтр вместе с таблицей\n // нужно извлекать значения из формы под scope потому что name будет приходить\n // массивного типа\n // FIXME: Придумать более универсальное решение, тут нарушается архитектурная составляющая подхода\n if (Array.isArray(name) && name.length > 1) {\n const scope = name[0];\n return values[scope];\n }\n if (scope)\n return values[scope];\n return values;\n }, form);\n return values;\n};\n\nexport { useValuesObserver };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { isString } from '@10d/tend-ui-utils/isString';\nimport { AsyncCheckbox } from '../../../AsyncCheckbox/AsyncCheckbox.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useDepends } from '../../hooks/useDepends.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst AsyncCheckboxFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n const _query = useDepends(props, values);\n // TODO: Внести эту логику в AsyncSelect\n const api = React.useMemo(() => {\n const query = JSON.parse(_query);\n if (isString(props.api))\n return { url: props.api, query };\n if (typeof props.api === 'function')\n return { fn: props.api, query };\n return Object.assign(Object.assign({}, props.api), { query });\n }, [props.api, _query]);\n return React.createElement(AsyncCheckbox, Object.assign({ disabled: disabled }, omit(props, 'config'), { api: api }));\n};\nAsyncCheckboxFilter.displayName = 'Filters.AsyncCheckboxFilter';\n\nexport { AsyncCheckboxFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { isString } from '@10d/tend-ui-utils/isString';\nimport { AsyncRadio } from '../../../AsyncRadio/AsyncRadio.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useDepends } from '../../hooks/useDepends.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst AsyncRadioFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n const _query = useDepends(props, values);\n const api = React.useMemo(() => {\n const query = JSON.parse(_query);\n if (isString(props.api))\n return { url: props.api, query };\n if (typeof props.api === 'function')\n return { fn: props.api, query };\n return Object.assign(Object.assign({}, props.api), { query });\n }, [props.api, _query]);\n return React.createElement(AsyncRadio, Object.assign({ disabled: disabled }, omit(props, 'config'), { api: api }));\n};\nAsyncRadioFilter.displayName = 'Filter.AsyncRadioFilter';\n\nexport { AsyncRadioFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { isString } from '@10d/tend-ui-utils/isString';\nimport { AsyncSelect } from '../../../AsyncSelect/AsyncSelect.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useDepends } from '../../hooks/useDepends.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst AsyncSelectFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n const _query = useDepends(props, values);\n // TODO: Внести эту логику в AsyncSelect\n const api = React.useMemo(() => {\n const query = JSON.parse(_query);\n if (isString(props.api))\n return { url: props.api, query };\n if (typeof props.api === 'function')\n return { fn: props.api, query };\n return Object.assign(Object.assign({}, props.api), { query });\n }, [props.api, _query]);\n return (React.createElement(AsyncSelect, Object.assign({ fullWidth: true }, omit(props, 'config'), { disabled: disabled, api: api })));\n};\nAsyncSelectFilter.displayName = 'Filters.AsyncSelectFilter';\n\nexport { AsyncSelectFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { Checkbox } from '../../../../primitives/Checkbox/Checkbox.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst CheckboxFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return React.createElement(Checkbox, Object.assign({ disabled: disabled }, omit(props, 'config')));\n};\nCheckboxFilter.displayName = 'Filters.CheckboxFilter';\n\nexport { CheckboxFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { Checkbox } from '../../../../primitives/Checkbox/Checkbox.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst CheckboxGroupFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return (React.createElement(Checkbox.Group, Object.assign({ layout: 'vertical', disabled: disabled }, omit(props, 'config'))));\n};\n\nexport { CheckboxGroupFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { DatePicker } from '../../../../primitives/DatePicker/DatePicker.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst DatePickerFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return React.createElement(DatePicker, Object.assign({ fullWidth: true, disabled: disabled }, omit(props, 'config')));\n};\n\nexport { DatePickerFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { Input } from '@10d/tend-ui-primitives';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst InputFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return React.createElement(Input, Object.assign({ disabled: disabled }, omit(props, 'config')));\n};\n\nexport { InputFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { Radio } from '../../../../primitives/Radio/Radio.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst RadioFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return React.createElement(Radio, Object.assign({ disabled: disabled }, omit(props, 'config')));\n};\n\nexport { RadioFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { Radio } from '../../../../primitives/Radio/Radio.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst RadioGroupFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return React.createElement(Radio.Group, Object.assign({ layout: 'vertical', disabled: disabled }, omit(props, 'config')));\n};\n\nexport { RadioGroupFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { RangePicker } from '../../../../primitives/RangePicker/RangePicker.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst RangePickerFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return React.createElement(RangePicker, Object.assign({ fullWidth: true, disabled: disabled }, omit(props, 'config')));\n};\n\nexport { RangePickerFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { Toggle } from '../../../../primitives/Toggle/Toggle.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst ToggleFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return React.createElement(Toggle, Object.assign({ disabled: disabled }, omit(props, 'config')));\n};\n\nexport { ToggleFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { Select } from '../../../../primitives/Select/Select.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst SelectFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return React.createElement(Select, Object.assign({ fullWidth: true, disabled: disabled }, omit(props, 'config')));\n};\n\nexport { SelectFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { CheckboxGroupSearch } from '../../../CheckboxGroupSearch/CheckboxGroupSearch.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst CheckboxGroupSearchFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return (React.createElement(CheckboxGroupSearch, Object.assign({ layout: 'vertical', disabled: disabled }, omit(props, 'config'))));\n};\n\nexport { CheckboxGroupSearchFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { RadioGroupSearch } from '../../../RadioGroupSearch/RadioGroupSearch.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst RadioGroupSearchFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return (React.createElement(RadioGroupSearch, Object.assign({ layout: 'vertical', disabled: disabled }, omit(props, 'config'))));\n};\n\nexport { RadioGroupSearchFilter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { InputNumber } from '../../../../primitives/InputNumber/InputNumber.js';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst InputNumberFilter = (props) => {\n const form = Form.useFormInstance();\n const values = useValuesObserver(props.config.name, form, props.INTERNAL_scope);\n const disabled = useDisabled(props, values);\n return React.createElement(InputNumber, Object.assign({ fullWidth: true, disabled: disabled }, omit(props, 'config')));\n};\n\nexport { InputNumberFilter };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { Button } from '@10d/tend-ui-primitives';\nimport { Form } from '../../../Form/Form.js';\nimport { useDisabled } from '../../hooks/useDisabled.js';\n\nconst ResetButton = (_a) => {\n var { filter } = _a, props = __rest(_a, [\"filter\"]);\n const t = useTranslation();\n const form = Form.useFormInstance();\n const values = Form.useWatch([], form);\n const disabled = useDisabled({ config: filter }, values);\n return (React.createElement(Button, Object.assign({ \"data-testid\": 'tend-ui-filters-reset-button', padding: false, variant: 'link', disabled: disabled }, props), t(['general', 'reset'])));\n};\nResetButton.displayName = 'Filters.ResetButton';\n\nexport { ResetButton };\n","import { contextFactory } from '../../../factories/contextFactory.js';\n\nconst [FiltersContext, useFiltersContext] = contextFactory();\n\nexport { FiltersContext, useFiltersContext };\n","import { extract as extract$1 } from '@10d/tend-ui-utils/extract';\n\nconst pack = (payload, scope) => {\n if (scope)\n return { [scope]: payload };\n return payload;\n};\nconst extract = (payload, scope) => {\n if (scope)\n return extract$1(payload, [scope]) || {};\n return payload;\n};\n\nexport { extract, pack };\n","import { createContext } from '@10d/tend-ui-factories';\n\nconst [FiltersFormProvider, useFiltersFormProvider] = createContext('FiltersFormProvider');\n\nexport { FiltersFormProvider, useFiltersFormProvider };\n","import { createContext } from '@10d/tend-ui-factories';\n\nconst [FiltersPresetsProvider, useFiltersPresetsProvider] = createContext('FPP');\n\nexport { FiltersPresetsProvider, useFiltersPresetsProvider };\n","import React from 'react';\nimport mapValues from 'lodash/mapValues';\nimport { isUndefined } from '@10d/tend-ui-utils/isUndefined';\nimport { useCallbackRef, useDebouncedCallback, useControllableState } from '@10d/tend-ui-hooks';\nimport { useDependsGraph } from '../../hooks/useDependsGraph.js';\nimport { FiltersContext } from '../../contexts/FiltersContext.js';\nimport { useFiltersForm } from '../../core/useFiltersForm.js';\nimport { FiltersFormProvider } from '../../core/FiltersFormProvider.js';\nimport { FiltersPresetsProvider } from '../../contexts/FiltersPresetsContext.js';\nimport { extract, pack } from '../../utils.js';\n\nconst Root = ({ value, debounce, name, form, filters, children, onFilterValuesChange, onFilterReset, onFiltersReset, INTERNAL_scope, defaultPresets, presets, onPresetsChange, onPresetSave, onPresetEdit, onPresetRemove, }) => {\n const model = useFiltersForm(form, INTERNAL_scope);\n const dependencies = useDependsGraph(filters);\n const onValuesChange = useCallbackRef((changed, values) => {\n const patched = mapValues(extract(values, INTERNAL_scope), (v, k) => {\n if (!dependencies[k])\n return v;\n const [touched] = Object.keys(extract(changed, INTERNAL_scope));\n if (dependencies[k].includes(touched)) {\n model.set(k, undefined);\n return undefined;\n }\n return v;\n });\n onFilterValuesChange === null || onFilterValuesChange === void 0 ? void 0 : onFilterValuesChange(changed, pack(patched, INTERNAL_scope));\n });\n const _onFilterValuesChange = useDebouncedCallback(onValuesChange, debounce);\n const [_presets = [], _setPresets] = useControllableState({\n defaultValue: defaultPresets,\n value: presets,\n onChange: onPresetsChange,\n });\n const save = useCallbackRef(payload => {\n _setPresets((previousPresets = []) => [...previousPresets, payload]);\n });\n const edit = useCallbackRef(payload => {\n _setPresets((previousPresets = []) => previousPresets.map(previousPreset => previousPreset.id === payload.id ? payload : previousPreset));\n });\n const remove = useCallbackRef(id => {\n _setPresets((previousPresets = []) => previousPresets.filter(previousPreset => previousPreset.id !== id));\n });\n const handlePresetSave = useCallbackRef(preset => {\n save(preset);\n onPresetSave === null || onPresetSave === void 0 ? void 0 : onPresetSave(preset);\n });\n const handlePresetEdit = useCallbackRef(preset => {\n edit(preset);\n onPresetEdit === null || onPresetEdit === void 0 ? void 0 : onPresetEdit(preset);\n });\n const handlePresetRemove = useCallbackRef(preset => {\n remove(preset.id);\n onPresetRemove === null || onPresetRemove === void 0 ? void 0 : onPresetRemove(preset);\n });\n const handlePresetApply = useCallbackRef(preset => {\n model.fill(preset.value);\n const values = model.getState();\n const changed = INTERNAL_scope ? { [INTERNAL_scope]: preset.value } : preset.value;\n _onFilterValuesChange === null || _onFilterValuesChange === void 0 ? void 0 : _onFilterValuesChange(changed, values);\n });\n React.useEffect(() => {\n if (isUndefined(value))\n return;\n model.form.setFieldsValue(value);\n }, [model.form, value]);\n const handleReset = useCallbackRef(() => {\n const values = model.reset();\n _onFilterValuesChange === null || _onFilterValuesChange === void 0 ? void 0 : _onFilterValuesChange(values, values);\n onFiltersReset === null || onFiltersReset === void 0 ? void 0 : onFiltersReset();\n });\n const handleClear = useCallbackRef(name => {\n const [touched, values] = model.clear(name);\n _onFilterValuesChange === null || _onFilterValuesChange === void 0 ? void 0 : _onFilterValuesChange(touched, values);\n onFilterReset === null || onFilterReset === void 0 ? void 0 : onFilterReset(name);\n });\n return (React.createElement(FiltersFormProvider, { getScopedState: model.getScopeState, form: model.form, onReset: handleReset, onClear: handleClear },\n React.createElement(FiltersPresetsProvider, { presets: _presets, onEdit: handlePresetEdit, onRemove: handlePresetRemove, onSave: handlePresetSave, onApply: handlePresetApply },\n React.createElement(FiltersContext, { value: React.useMemo(() => ({\n name,\n form: model.form,\n onFilterValuesChange: _onFilterValuesChange,\n onFilterReset,\n }), [_onFilterValuesChange, model.form, name, onFilterReset]) }, children))));\n};\nRoot.displayName = 'Filters.Root';\n\nexport { Root };\n","import pick from 'lodash/pick';\nimport { isString } from '@10d/tend-ui-utils';\nimport { useCallbackRef } from '@10d/tend-ui-hooks';\nimport { Form } from '../../Form/Form.js';\nimport { pack } from '../utils.js';\n\nconst useFiltersForm = (form, scope) => {\n const [state] = Form.useForm(form);\n const getScopeState = useCallbackRef(() => {\n const result = scope ? state.getFieldValue([scope]) : state.getFieldsValue();\n return result;\n });\n const getState = useCallbackRef(() => {\n const result = state.getFieldsValue();\n return result;\n });\n const get = useCallbackRef(name => {\n const path = scope ? [scope, name] : [name];\n const result = state.getFieldValue(path);\n return result;\n });\n const set = useCallbackRef((name, payload) => {\n const path = scope ? [scope, name] : [name];\n state.setFieldValue(path, payload);\n });\n const fill = useCallbackRef((payload) => {\n state.resetFields();\n state.setFieldsValue(pack(payload, scope));\n });\n const clear = useCallbackRef((name) => {\n const path = scope ? [scope, name] : [name];\n state.setFieldValue(path, undefined);\n const values = state.getFieldsValue();\n const touched = pick(values, path.join('.'));\n return [touched, values];\n });\n const reset = useCallbackRef(() => {\n const path = [scope].filter(isString);\n state.resetFields(path.length ? path : undefined);\n const values = state.getFieldsValue();\n return values;\n });\n return { set, clear, reset, get, getState, form: state, fill, getScopeState };\n};\n\nexport { useFiltersForm };\n","import React from 'react';\nimport { Box } from '@10d/tend-ui-grid';\n\nconst List = ({ children, gap = 8 }) => {\n return (React.createElement(Box, { \"data-testid\": 'tend-ui-filters-list', \"$display\": 'flex', \"$flexDirection\": 'column', \"$gap\": gap }, children));\n};\nList.displayName = 'Filters.List';\n\nexport { List };\n","import React from 'react';\nimport { Form as Form$1 } from '../../../Form/Form.js';\nimport { useFiltersContext } from '../../contexts/FiltersContext.js';\nimport { useFiltersFormProvider } from '../../core/FiltersFormProvider.js';\n\nconst Form = ({ children }) => {\n const { name, onFilterValuesChange } = useFiltersContext();\n const model = useFiltersFormProvider('Filters.Form');\n return (React.createElement(Form$1, { \"data-testid\": 'tend-ui-filters-form', form: model.form, name: name, onValuesChange: onFilterValuesChange }, children));\n};\nForm.displayName = 'Filters.Form';\n\nexport { Form };\n","import styled from 'styled-components';\n\nconst Root = styled.input `\n font-size: 14px;\n line-height: 20px;\n font-weight: 500;\n border-radius: 4px;\n border: 1px solid ${props => props.theme.colors.blue600};\n background-color: ${props => props.theme.colors.gray50};\n\n margin: 0;\n padding: 0;\n`;\n\nexport { Root };\n","import React from 'react';\nimport { useTheme } from '@10d/tend-ui-theme';\nimport { Root } from './styled.js';\n\nconst Input = React.forwardRef((props, ref) => {\n const theme = useTheme();\n return React.createElement(Root, Object.assign({}, props, { theme: theme, ref: ref }));\n});\n\nexport { Input };\n","import React from 'react';\nimport { Box } from '@10d/tend-ui-grid/Box';\nimport { Text } from '@10d/tend-ui-typography/Text';\nimport { useKeyPress } from '@10d/tend-ui-hooks';\nimport { MoreVert } from '@10d/tend-ui-icons/MoreVert';\nimport isEqual from 'lodash/isEqual';\nimport pickBy from 'lodash/pickBy';\nimport identity from 'lodash/identity';\nimport { useFiltersContext } from '../../contexts/FiltersContext.js';\nimport { useFiltersPresetsProvider } from '../../contexts/FiltersPresetsContext.js';\nimport { Radio } from '../../../../primitives/Radio/Radio.js';\nimport { Dropdown } from '../../../../primitives/Dropdown/Dropdown.js';\nimport { Collapse } from '../../../../ui/Collapse/Collapse.js';\nimport { Input } from './Input/Input.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst Item = ({ preset, onClick, onRemove, onEdit, INTERNAL_scope }) => {\n const ctx = useFiltersContext('Item');\n const values = useValuesObserver('PresetsList.Item', ctx.form, INTERNAL_scope);\n const [value, setValue] = React.useState(preset.label);\n const [editing, setEditing] = React.useState(false);\n const checked = React.useMemo(() => isEqual(pickBy(values, identity), preset.value), [preset.value, values]);\n useKeyPress('Enter', () => {\n if (!editing)\n return;\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(Object.assign(Object.assign({}, preset), { label: value }));\n setEditing(false);\n setValue('');\n });\n return (React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$gap\": 8 },\n React.createElement(Radio, { checked: checked, value: preset.id, onChange: React.useCallback(() => {\n onClick === null || onClick === void 0 ? void 0 : onClick(preset);\n }, [onClick, preset]) }, editing ? (React.createElement(Input, { onChange: e => setValue(e.target.value), value: value })) : (preset.label)),\n React.createElement(Box, { \"$display\": 'flex', \"$justifyContent\": 'flex-end', \"$flex\": '1' },\n React.createElement(Dropdown, { items: React.useMemo(() => [\n { key: '1', label: 'Переименовать', onClick: () => setEditing(true) },\n { key: '2', label: 'Удалить', onClick: () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(preset) },\n ], [onRemove, preset]) },\n React.createElement(MoreVert, { cursor: 'pointer', size: 16 })))));\n};\nconst PresetsList = ({ INTERNAL_scope }) => {\n const model = useFiltersPresetsProvider('Filters.PresetsList');\n const text = model.presets.length\n ? `Сохраненные фильтры: ${model.presets.length}`\n : 'Сохраненные фильтры';\n return (React.createElement(Collapse, { label: React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$justifyContent\": 'space-between', \"$width\": '100%', \"$minHeight\": '20px' },\n React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$gap\": 4 },\n React.createElement(Text, { strong: true }, text))) }, model.presets.length > 0 ? (React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column', \"$gap\": 8 }, model.presets.map(preset => (React.createElement(Item, { key: preset.id, preset: preset, onClick: model.onApply, onRemove: model.onRemove, onEdit: model.onEdit, INTERNAL_scope: INTERNAL_scope }))))) : (React.createElement(Text, { color: 'gray500' }, \"\\u041D\\u0435\\u0442 \\u0441\\u043E\\u0445\\u0440\\u0430\\u043D\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440\\u043E\\u0432\"))));\n};\n\nexport { PresetsList };\n","import React from 'react';\n\nconst useNextFilterName = (names) => {\n return React.useMemo(() => {\n const numbers = names\n .map(name => name.match(/Сохраненный фильтр (\\d+)/))\n .filter((value) => Boolean(value))\n .map(([, matched]) => parseInt(matched, 10))\n .sort((a, b) => a - b);\n const missing = Array.from({ length: numbers.length + 1 }, (_, i) => i + 1).find(n => !numbers.includes(n));\n return `Сохраненный фильтр ${missing}`;\n }, [names]);\n};\n\nexport { useNextFilterName };\n","import React from 'react';\nimport { Tooltip, Button, Input } from '@10d/tend-ui-primitives';\nimport { v4 } from 'uuid';\nimport { Bookmark } from '@10d/tend-ui-icons/Bookmark';\nimport isEqual from 'lodash/isEqual';\nimport pickBy from 'lodash/pickBy';\nimport identity from 'lodash/identity';\nimport { useBoolean } from '../../../../hooks/useBoolean/useBoolean.js';\nimport { Form } from '../../../Form/Form.js';\nimport { Modal } from '../../../../primitives/Modal/Modal.js';\nimport { useFiltersFormProvider } from '../../core/FiltersFormProvider.js';\nimport { useFiltersPresetsProvider } from '../../contexts/FiltersPresetsContext.js';\nimport { useNextFilterName } from './useNextFilterName.js';\nimport { useValuesObserver } from '../../hooks/useValuesObserver.js';\n\nconst SaveButton = ({ INTERNAL_scope }) => {\n const [form] = Form.useForm();\n const { presets } = useFiltersPresetsProvider('Filters.SaveButton');\n const model = useFiltersFormProvider('Filters.SaveButton');\n const fp = useFiltersPresetsProvider('Filters.SaveButton');\n const [open, toggle] = useBoolean(false);\n const values = useValuesObserver('Filters.SaveButton', model.form, INTERNAL_scope);\n const name = useNextFilterName(presets.map(preset => preset.label));\n const isPresetExist = React.useMemo(() => presets.some(preset => isEqual(pickBy(values, identity), preset.value), []), [presets, values]);\n const hasAppliedFilters = React.useMemo(() => Object.values(values || {})\n .filter(Boolean)\n .flat().length > 0, [values]);\n const help = [\n [!hasAppliedFilters, 'Вы не выбрали ни одного фильтра'],\n [isPresetExist, 'Такой набор фильтров уже существует'],\n ];\n const [, title] = help.filter(([condition]) => condition)[0] || [];\n return (React.createElement(React.Fragment, null,\n React.createElement(Tooltip, { title: title },\n React.createElement(Button, { before: React.createElement(Bookmark, null), \"data-testid\": 'tend-ui-filters-save-button', disabled: !hasAppliedFilters || isPresetExist, variant: 'secondary', size: 'small', onClick: () => {\n toggle();\n } })),\n React.createElement(Modal, { \"data-testid\": 'tend-ui-filters-save-preset-modal', open: open, size: 'small', title: '\\u0423\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u043D\\u0430\\u0437\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440\\u0430', cancelButtonProps: { variant: 'link' }, okText: '\\u0421\\u043E\\u0445\\u0440\\u0430\\u043D\\u0438\\u0442\\u044C \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440', onOk: React.useCallback(() => {\n form.validateFields().then(payload => {\n if (!payload.name)\n return;\n const value = model.getScopedState();\n fp.onSave({\n id: v4(),\n label: payload.name,\n value,\n });\n toggle();\n form.resetFields();\n });\n }, [form, model, fp, toggle]), onCancel: () => toggle() },\n React.createElement(Form, { form: form, initialValues: { name } },\n React.createElement(Form.Item, { required: true, name: 'name', rules: React.useMemo(() => [\n {\n required: true,\n message: 'Название фильтра обязательно для заполнения',\n },\n {\n required: true,\n message: 'Фильтр с таким названием уже существует',\n validator: () => {\n const state = form.getFieldsValue();\n if (!state.name)\n return Promise.resolve();\n const isExist = presets\n .map(preset => preset.label)\n .includes(state.name);\n if (!isExist)\n return Promise.resolve();\n return Promise.reject();\n },\n },\n ], [form, presets]) },\n React.createElement(Input, { placeholder: '\\u0412\\u0432\\u0435\\u0434\\u0438\\u0442\\u0435 \\u043D\\u0430\\u0437\\u0432\\u0430\\u043D\\u0438\\u0435 \\u0444\\u0438\\u043B\\u044C\\u0442\\u0440\\u0430' }))))));\n};\nSaveButton.displayName = 'Filters.SaveButton';\n\nexport { SaveButton };\n","import React from 'react';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { Button } from '@10d/tend-ui-primitives';\nimport { useFiltersFormProvider } from '../../core/FiltersFormProvider.js';\n\nconst ResetAllButton = (props) => {\n const t = useTranslation();\n const model = useFiltersFormProvider('Filters.ResetButton');\n return (React.createElement(Button, Object.assign({ \"data-testid\": 'tend-ui-filters-reset-all-button', size: 'small', variant: 'secondary', onClick: model.onReset }, props), t(['components', 'Filters', 'reset'])));\n};\nResetAllButton.displayName = 'Filters.ResetAllButton';\n\nexport { ResetAllButton };\n","import React from 'react';\nimport { Form } from '../../Form/Form.js';\n\nconst useFilterCounter = (name) => {\n const form = Form.useFormInstance();\n const value = Form.useWatch(name, form);\n return React.useMemo(() => {\n if (!value)\n return;\n if (Array.isArray(value))\n return value.length;\n return 1;\n }, [value]);\n};\n\nexport { useFilterCounter };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { Drawer, Spinner } from '@10d/tend-ui-primitives';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { Title, Text } from '@10d/tend-ui-typography';\nimport { isUndefined, isString, INTERNAL_TendUILogger } from '@10d/tend-ui-utils';\nimport { Form } from '../Form/Form.js';\nimport { Collapse } from '../../ui/Collapse/Collapse.js';\nimport { Box } from '@10d/tend-ui-grid';\nimport { Badge } from '../../primitives/Badge/Badge.js';\nimport { Divider } from '../../ui/Divider/Divider.js';\nimport { AsyncCheckboxFilter } from './core/AsyncCheckboxFilter/AsyncCheckboxFilter.js';\nimport { AsyncRadioFilter } from './core/AsyncRadioFilter/AsyncRadioFilter.js';\nimport { AsyncSelectFilter } from './core/AsyncSelectFilter/AsyncSelectFilter.js';\nimport { CheckboxFilter } from './core/CheckboxFilter/CheckboxFilter.js';\nimport { CheckboxGroupFilter } from './core/CheckboxGroupFilter/CheckboxGroupFilter.js';\nimport { DatePickerFilter } from './core/DatePickerFilter/DatePickerFilter.js';\nimport { InputFilter } from './core/InputFilter/InputFilter.js';\nimport { RadioFilter } from './core/RadioFilter/RadioFilter.js';\nimport { RadioGroupFilter } from './core/RadioGroupFilter/RadioGroupFilter.js';\nimport { RangePickerFilter } from './core/RangePickerFilter/RangePickerFilter.js';\nimport { ToggleFilter } from './core/ToggleFilter/ToggleFilter.js';\nimport { SelectFilter } from './core/SelectFilter/SelectFilter.js';\nimport { CheckboxGroupSearchFilter } from './core/CheckboxGroupSearchFilter/CheckboxGroupSearchFilter.js';\nimport { RadioGroupSearchFilter } from './core/RadioGroupSearchFilter/RadioGroupSearchFilter.js';\nimport { InputNumberFilter } from './core/InputNumberFilter/InputNumberFilter.js';\nimport { ResetButton } from './components/ResetButton/ResetButton.js';\nimport { Root } from './components/Root/Root.js';\nimport { List } from './components/List/List.js';\nimport { Form as Form$1 } from './components/Form/Form.js';\nimport { PresetsList } from './components/PresetsList/PresetsList.js';\nimport { SaveButton } from './components/SaveButton/SaveButton.js';\nimport { ResetAllButton } from './components/ResetAllButton/ResetAllButton.js';\nimport { useFilterCounter } from './hooks/useFilterCounter.js';\nimport { useFiltersFormProvider } from './core/FiltersFormProvider.js';\n\nconst createReactKey = (config) => {\n var _a;\n return (_a = config.key) !== null && _a !== void 0 ? _a : `tend-ui-filters-list-filter-${config.id}`;\n};\nconst valuePropNameFactory = (config) => {\n const isCheckable = ['toggle', 'checkbox', 'radio'].includes(config.component.component);\n if (!isCheckable)\n return;\n return 'checked';\n};\nconst FilterPicker = React.memo(props => {\n switch (props.component) {\n case 'input':\n return React.createElement(InputFilter, Object.assign({}, omit(props, 'component')));\n case 'input-number':\n return React.createElement(InputNumberFilter, Object.assign({}, omit(props, 'component')));\n case 'select':\n return React.createElement(SelectFilter, Object.assign({}, omit(props, 'component')));\n case 'async-select':\n return React.createElement(AsyncSelectFilter, Object.assign({}, omit(props, 'component')));\n case 'async-checkbox':\n return React.createElement(AsyncCheckboxFilter, Object.assign({}, omit(props, 'component')));\n case 'async-radio':\n return React.createElement(AsyncRadioFilter, Object.assign({}, omit(props, 'component')));\n case 'toggle':\n return React.createElement(ToggleFilter, Object.assign({}, omit(props, 'component')));\n case 'checkbox':\n return React.createElement(CheckboxFilter, Object.assign({}, omit(props, 'component')));\n case 'checkbox-group':\n return React.createElement(CheckboxGroupFilter, Object.assign({}, omit(props, 'component')));\n case 'checkbox-group-search':\n return React.createElement(CheckboxGroupSearchFilter, Object.assign({}, omit(props, 'component')));\n case 'radio':\n return React.createElement(RadioFilter, Object.assign({}, omit(props, 'component')));\n case 'radio-group':\n return React.createElement(RadioGroupFilter, Object.assign({}, omit(props, 'component')));\n case 'radio-group-search':\n return React.createElement(RadioGroupSearchFilter, Object.assign({}, omit(props, 'component')));\n case 'date-picker':\n return React.createElement(DatePickerFilter, Object.assign({}, omit(props, 'component')));\n case 'range-picker':\n return React.createElement(RangePickerFilter, Object.assign({}, omit(props, 'component')));\n default:\n return React.createElement(\"span\", null, \"Filter is not supported\");\n }\n});\nconst Filter = ({ filter, INTERNAL_scope, }) => {\n if (process.env.NODE_ENV === 'development') {\n INTERNAL_TendUILogger.warning([\n ' из пакета \"@10d/tend-ui\" устарел и больше не поддерживается.',\n '',\n 'Используйте из пакета \"@10d/tend-ui-filters\"',\n ]);\n }\n const { onClear } = useFiltersFormProvider('Filters.Filter');\n const name = INTERNAL_scope ? [INTERNAL_scope, filter.name] : filter.name;\n const count = useFilterCounter(name);\n const handleReset = React.useCallback((e) => {\n // Клик по кнопке триггерит закрытие колапса, предотвращаем\n // FIXME: Реализовать свойство \"зона клика\" в колапсе по подобию antd\n // чтобы можно было выбирать область срабатывания и не останавливать\n // всплытие ивента\n e.stopPropagation();\n onClear === null || onClear === void 0 ? void 0 : onClear(filter.name);\n }, [filter.name, onClear]);\n const shouldRender = typeof count === 'number' ? count > 0 : false;\n return (React.createElement(Collapse, { id: filter.id, label: React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$justifyContent\": 'space-between', \"$width\": '100%', \"$minHeight\": '20px' },\n React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$gap\": 4 },\n React.createElement(Text, { strong: true }, filter.label),\n shouldRender && React.createElement(Badge, { preset: 'blue', inner: count })),\n shouldRender && React.createElement(ResetButton, { filter: filter, onClick: handleReset })) },\n React.createElement(Form.Item, { noStyle: true, name: name, valuePropName: valuePropNameFactory(filter) },\n React.createElement(FilterPicker, Object.assign({ config: filter, INTERNAL_scope: INTERNAL_scope }, filter.component)))));\n};\n/**\n * @deprecated Компонент устарел и больше не поддерживается. Используйте компонент из пакета `@10d/tend-ui-filters`\n */\nconst Filters = ({ value, debounce = true, loading = false, open, name, title, filters, form, onFilterValuesChange, onClose, onFiltersReset, onFilterReset, resetAllButtonProps, INTERNAL_scope, showPresets = false, presets, defaultPresets, onPresetEdit, onPresetRemove, onPresetSave, onPresetsChange, }) => {\n const [_form] = Form.useForm(form);\n const t = useTranslation();\n const _title = React.useMemo(() => {\n if (isUndefined(title))\n return (React.createElement(Title, { margin: '0', level: 'h5', style: { flex: '1' } }, t(['components', 'Filters', 'title'])));\n if (isString(title))\n return (React.createElement(Title, { margin: '0', level: 'h5', style: { flex: '1' } }, title));\n return title;\n }, [t, title]);\n return (React.createElement(Drawer.Root, { \"data-testid\": 'tend-ui-filters-drawer', open: open, onClose: onClose },\n React.createElement(Root, { \"data-testid\": 'tend-ui-filters-root', debounce: debounce, value: value, filters: filters, name: name, form: _form, onFilterValuesChange: onFilterValuesChange, onFilterReset: onFilterReset, onFiltersReset: onFiltersReset, INTERNAL_scope: INTERNAL_scope, presets: presets, defaultPresets: defaultPresets, onPresetEdit: onPresetEdit, onPresetRemove: onPresetRemove, onPresetSave: onPresetSave, onPresetsChange: onPresetsChange },\n React.createElement(Drawer.Header, null,\n _title,\n React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$gap\": 8 },\n showPresets && React.createElement(SaveButton, { INTERNAL_scope: INTERNAL_scope }),\n React.createElement(ResetAllButton, Object.assign({}, resetAllButtonProps)),\n React.createElement(Drawer.CloseButton, null))),\n React.createElement(Drawer.Body, null,\n React.createElement(Spinner, { loading: loading },\n React.createElement(Form$1, null,\n React.createElement(List, null,\n showPresets && (React.createElement(React.Fragment, null,\n React.createElement(PresetsList, { INTERNAL_scope: INTERNAL_scope }),\n React.createElement(Divider, { padding: '0' }))),\n filters.map(filter => (React.createElement(Filter, { key: createReactKey(filter), filter: filter, INTERNAL_scope: INTERNAL_scope }))))))))));\n};\nFilters.displayName = 'Filters';\nFilters.Root = Root;\nFilters.Form = Form$1;\nFilters.List = List;\nFilters.CollapseGroup = Collapse.Group;\nFilters.Filter = Filter;\n\nexport { FilterPicker, Filters };\n","import React from 'react';\n\nconst useDependsGraph = (filters) => {\n return React.useMemo(() => {\n if (!filters)\n return {};\n return filters.reduce((graph, value) => {\n if (!value.depends)\n return graph;\n value.depends.forEach(dependency => {\n if (Array.isArray(graph[value.name])) {\n graph[value.name].push(dependency);\n return;\n }\n graph[value.name] = [];\n graph[value.name].push(dependency);\n });\n return graph;\n }, {});\n }, [filters]);\n};\n\nexport { useDependsGraph };\n","import styled, { css } from 'styled-components';\nimport AntForm from 'antd-core/es/form';\nimport { isNumber } from '@10d/tend-ui-utils/isNumber';\n\nconst Root = styled(AntForm.Item) `\n &.tend-ui-form-item {\n .tend-ui-form-item-control-input-content {\n /* Additional 4px margin for 8px in total */\n .tend-ui-checkbox-group,\n .tend-ui-toggle-group,\n .tend-ui-radio-group {\n margin-top: 4px;\n }\n }\n /* Error message */\n .tend-ui-form-item-explain-error {\n align-items: center;\n font-size: 12px;\n padding-top: 4px;\n }\n\n /* Extra content (aka Caption message) */\n .tend-ui-form-item-extra {\n font-size: 12px;\n min-height: auto;\n margin-top: 4px;\n color: ${props => props.$theme.colors.gray650};\n }\n\n /* Require icon */\n .tend-ui-form-item-label > label {\n &.tend-ui-form-item-required:not(\n .tend-ui-form-item-required-mark-optional\n )::before {\n font-family: ${props => props.$theme.fonts.museo};\n }\n\n /* Tooltip icon */\n .tend-ui-form-item-tooltip {\n font-size: 16px;\n color: ${props => props.$theme.colors.gray500};\n }\n }\n\n /* Highlight Checkbox and Radio border on error */\n &.tend-ui-form-item-has-error {\n .tend-ui-checkbox-inner,\n .tend-ui-radio-inner {\n border-color: ${props => props.$theme.colors.red600};\n }\n }\n\n /* Forcing suffixes color */\n &&& {\n .tend-ui-input-prefix,\n .tend-ui-input-suffix {\n color: ${props => props.$theme.colors.gray500};\n }\n }\n\n ${props => {\n if (isNumber(props.$width))\n return css `\n width: ${props.$width}px;\n `;\n return css `\n width: ${props.$width};\n `;\n}}\n }\n`;\n\nexport { Root };\n","import React from 'react';\nimport AntForm from 'antd-core/es/form';\nimport { Error } from '@10d/tend-ui-icons/Error';\n\nconst composeMessage = (rule) => (Object.assign(Object.assign({}, rule), { message: (React.createElement(React.Fragment, null,\n React.createElement(Error, { \"data-testid\": 'error-icon', size: 16 }),\n \" \",\n rule.message)) }));\nconst useErrorMessagePrefix = (rules) => {\n const form = AntForm.useFormInstance();\n return React.useMemo(() => {\n return rules === null || rules === void 0 ? void 0 : rules.map(rule => {\n if (typeof rule === 'function') {\n return composeMessage(rule(form));\n }\n return composeMessage(rule);\n });\n }, [form, rules]);\n};\n\nexport { useErrorMessagePrefix };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport AntForm from 'antd-core/es/form';\nimport { Help } from '@10d/tend-ui-icons/Help';\nimport { useTheme } from '@10d/tend-ui-theme';\nimport { Root } from './styled.js';\nimport { useErrorMessagePrefix } from './hooks.js';\n\nconst Item = (_a) => {\n var { children, width } = _a, props = __rest(_a, [\"children\", \"width\"]);\n const theme = useTheme();\n const rules = useErrorMessagePrefix(props.rules);\n const tooltip = React.useMemo(() => {\n if (!props.tooltip)\n return;\n const icon = typeof props.tooltip.children === 'undefined' ? (React.createElement(Help, { \"data-testid\": 'help-icon' })) : (props.tooltip.children);\n const overlayInnerStyle = props.tooltip.lineBreak\n ? Object.assign(Object.assign({}, props.tooltip.overlayInnerStyle), { whiteSpace: 'pre-line' }) : undefined;\n return Object.assign(Object.assign({ icon }, props.tooltip), { overlayInnerStyle });\n }, [props.tooltip]);\n return (React.createElement(Root, Object.assign({}, props, { \"$theme\": theme, \"$width\": width, rules: rules, tooltip: tooltip }), children));\n};\nItem.displayName = 'Form.Item';\nItem.useStatus = AntForm.Item.useStatus;\n\nexport { Item };\n","import AntForm from 'antd-core/es/form';\nimport styled from 'styled-components';\n\nconst Root = styled(AntForm) `\n display: flex;\n flex-direction: column;\n gap: ${props => `${props.$gap || 16}px`};\n`;\n\nexport { Root };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport AntForm from 'antd-core/es/form';\nimport { Item } from './components/Item/Item.js';\nimport { Root } from './styled.js';\n\nconst BaseForm = (_a, ref) => {\n var { layout = 'vertical', gap } = _a, props = __rest(_a, [\"layout\", \"gap\"]);\n return (React.createElement(Root, Object.assign({ \"data-testid\": 'tend-ui-form' }, props, { ref: ref, \"$gap\": gap, layout: layout })));\n};\nconst ForwardedForm = React.forwardRef(BaseForm);\nconst Form = Object.assign(ForwardedForm, {\n Item,\n useForm: AntForm.useForm,\n useFormInstance: AntForm.useFormInstance,\n useWatch: AntForm.useWatch,\n ErrorList: AntForm.ErrorList,\n List: AntForm.List,\n Provider: AntForm.Provider,\n displayName: 'Form',\n});\n\nexport { Form };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { Text } from '@10d/tend-ui-typography';\nimport { Radio } from '../../primitives/Radio/Radio.js';\nimport { Spinner } from '@10d/tend-ui-primitives';\nimport { Search } from '../Search/Search.js';\nimport { Box } from '@10d/tend-ui-grid';\nimport { useTheme } from '@10d/tend-ui-theme';\nimport { Scrollable } from '../../ui/Scrollable/Scrollable.js';\nimport { useFilterOption } from '../../hooks/useFilterOption.js';\nimport { useCallbackRef } from '@10d/tend-ui-hooks';\nimport { EmptyOverlay } from '../../ui/EmptyOverlay/EmptyOverlay.js';\nimport { ErrorOverlay } from '../../ui/ErrorOverlay/ErrorOverlay.js';\n\nconst createVirtualRootStyle = (size) => ({\n height: `${size}px`,\n width: '100%',\n position: 'relative',\n});\nconst createVirtualItemStyle = (vi) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: `${vi.size}px`,\n transform: `translateY(${vi.start}px)`,\n});\nconst createKey = (item) => {\n if (typeof item.value !== 'boolean')\n return item.value;\n return item.id;\n};\nconst RadioGroupSearch = (_a) => {\n var { optionAfter, optionDescription, placeholder, allowClear, virtual = false, error = false, loading = false, filterOption = true, filterOptionProp = 'value', showSearch = true, scrollable = true, optionRender, options, onSearch, onScroll } = _a, props = __rest(_a, [\"optionAfter\", \"optionDescription\", \"placeholder\", \"allowClear\", \"virtual\", \"error\", \"loading\", \"filterOption\", \"filterOptionProp\", \"showSearch\", \"scrollable\", \"optionRender\", \"options\", \"onSearch\", \"onScroll\"]);\n const theme = useTheme();\n const [search, setSearch] = React.useState('');\n const handleSearch = React.useCallback((e) => {\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(e.target.value);\n setSearch(e.target.value);\n }, [onSearch]);\n const createLabel = useCallbackRef((node, option) => {\n if (!optionAfter && !optionDescription)\n return node;\n const after = typeof optionAfter === 'function' ? optionAfter(option) : optionAfter;\n const description = typeof optionDescription === 'function'\n ? optionDescription(option)\n : optionDescription;\n return (React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center' },\n description ? (React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column' },\n node,\n React.createElement(Text, { size: 'small', color: 'gray650' }, description))) : (node),\n after && (React.createElement(Box, { \"$flex\": '1', \"$display\": 'flex', \"$justifyContent\": 'flex-end' }, after))));\n });\n const _options = React.useMemo(() => {\n if (!options)\n return [];\n return options.map(item => (Object.assign(Object.assign({}, item), { label: optionRender\n ? createLabel(optionRender(item), item)\n : createLabel(item.label, item) })));\n }, [createLabel, optionRender, options]);\n const filteredOptions = useFilterOption({\n search,\n filterOption,\n options: _options,\n filterOptionProp,\n });\n const ref = React.useRef(null);\n const virtualizer = useVirtualizer({\n count: filteredOptions.length,\n getScrollElement: () => ref.current,\n estimateSize: () => 24,\n });\n const component = React.useMemo(() => {\n if (virtual) {\n return (React.createElement(Radio.Group, Object.assign({ style: createVirtualRootStyle(virtualizer.getTotalSize()), fullWidth: true, layout: 'vertical' }, props), virtualizer.getVirtualItems().map(virtualItem => {\n const option = filteredOptions[virtualItem.index];\n return (React.createElement(Radio, { style: createVirtualItemStyle(virtualItem), key: createKey(option), value: option.value, onChange: props === null || props === void 0 ? void 0 : props.onChange }, option.label));\n })));\n }\n return (React.createElement(Radio.Group, Object.assign({ fullWidth: true, layout: 'vertical' }, props, { options: filteredOptions })));\n }, [filteredOptions, props, virtual, virtualizer]);\n const content = React.useMemo(() => {\n if (filteredOptions.length)\n return component;\n if (loading)\n return null;\n if (error)\n return React.createElement(ErrorOverlay, null);\n if (!filteredOptions.length)\n return React.createElement(EmptyOverlay, null);\n return component;\n }, [component, error, filteredOptions.length, loading]);\n return (React.createElement(Spinner, { color: theme.colors.blue600, size: 'small', loading: loading },\n React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column', \"$gap\": 8 },\n showSearch && (React.createElement(Search, { onChange: handleSearch, allowClear: allowClear, placeholder: placeholder })),\n scrollable ? (React.createElement(Scrollable, { ref: ref, onScroll: onScroll }, content)) : (content))));\n};\nRadioGroupSearch.displayName = 'RadioGroupSearch';\n\nexport { RadioGroupSearch };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { Search as Search$1 } from '@10d/tend-ui-icons/Search';\nimport { Input } from '@10d/tend-ui-primitives';\n\nconst Search = React.forwardRef((_a, ref) => {\n var { onSearch, onChange } = _a, props = __rest(_a, [\"onSearch\", \"onChange\"]);\n const handleChange = React.useCallback((e) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(e.target.value);\n }, [onChange, onSearch]);\n return React.createElement(Input, Object.assign({ ref: ref }, props, { prefix: React.createElement(Search$1, null), onChange: handleChange }));\n});\nSearch.displayName = 'Search';\n\nexport { Search };\n","import React from 'react';\nimport { Box } from '@10d/tend-ui-grid';\n\nconst Layout = ({ children }) => {\n return (React.createElement(Box, { \"$position\": 'relative', \"$display\": 'flex', \"$justifyContent\": 'center', \"$alignItems\": 'center', \"$width\": '100%', \"$height\": '100%', \"$gap\": 64 }, children));\n};\n\nexport { Layout };\n","import styled from 'styled-components';\n\nconst Content = styled.div `\n z-index: 2;\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\nconst Big404 = styled.span `\n position: absolute;\n z-index: 1;\n color: #f7f9fe;\n font-family: 'Museo Sans Cyrl';\n font-size: 531.415px;\n font-style: normal;\n font-weight: 700;\n line-height: 75%;\n`;\n\nexport { Big404, Content };\n","import React from 'react';\nimport { isUndefined } from '@10d/tend-ui-utils/isUndefined';\nimport { isString } from '@10d/tend-ui-utils/isString';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { Title, Paragraph } from '@10d/tend-ui-typography';\nimport { Button } from '@10d/tend-ui-primitives';\nimport { Layout } from '../Layout/Layout.js';\nimport { Big404, Content } from './styled.js';\n\nconst NotFound = ({ title, description, button, onClick = () => {\n window.location.reload();\n}, }) => {\n var _a;\n const t = useTranslation();\n const _title = isUndefined(title)\n ? t(['components', 'Status', 'NotFound', 'title'])\n : title;\n const _description = isUndefined(description)\n ? t(['components', 'Status', 'NotFound', 'description'])\n : description;\n return (React.createElement(Layout, null,\n React.createElement(Big404, null, \"404\"),\n React.createElement(Content, null,\n isString(_title) ? (React.createElement(Title, { level: 'h3', margin: '0' }, _title)) : (_title),\n isString(_description) ? (React.createElement(Paragraph, { margin: '0' }, _description)) : (_description),\n React.createElement(Button, Object.assign({ onClick: onClick }, button), (_a = button === null || button === void 0 ? void 0 : button.children) !== null && _a !== void 0 ? _a : t(['components', 'Status', 'button'])))));\n};\n\nexport { NotFound };\n","import React from 'react';\n\nconst WhaleSad = () => {\n return (React.createElement(\"svg\", { width: '336', height: '317', viewBox: '0 0 336 317', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' },\n React.createElement(\"path\", { fillRule: 'evenodd', clipRule: 'evenodd', d: 'M335.928 146.288C337.578 183.693 310.489 214.889 287.903 244.674C265.828 273.784 243.188 306.772 207.763 315.302C173.163 323.635 141.057 299.158 107.192 288.192C73.2218 277.192 29.659 280.672 9.48238 251.097C-10.6726 221.555 10.5826 182.101 10.3808 146.288C10.1772 110.172 -11.4248 70.8104 8.29623 40.6124C28.0729 10.3293 69.8482 2.58718 105.821 0.144121C136.475 -1.93771 161.94 19.0748 191.295 28.1843C221.29 37.4924 255.133 34.1459 279.494 54.038C308.073 77.3753 334.298 109.327 335.928 146.288Z', fill: '#F7F9FE' }),\n React.createElement(\"mask\", { id: 'path-2-inside-1_9400_432849', fill: 'white' },\n React.createElement(\"path\", { fillRule: 'evenodd', clipRule: 'evenodd', d: 'M162.124 210.015C201.008 213.259 238.098 190.07 241.343 151.186C244.587 112.301 215.696 78.1491 176.811 74.9045C143.124 72.0936 112.988 93.4031 103.425 124.434C94.7483 145.305 101.83 209.343 111.317 230.313C107.285 233.366 99.1101 241.039 98.6664 247.303C104.363 251.045 117.433 255.071 124.136 241.237C128.477 243.929 139.841 247.787 150.576 241.679C150.912 236.933 146.306 227.211 125.195 226.288C122.943 217.506 127.424 205.981 140.427 205.143C147.052 207.701 154.328 209.364 162.124 210.015Z' })),\n React.createElement(\"path\", { fillRule: 'evenodd', clipRule: 'evenodd', d: 'M162.124 210.015C201.008 213.259 238.098 190.07 241.343 151.186C244.587 112.301 215.696 78.1491 176.811 74.9045C143.124 72.0936 112.988 93.4031 103.425 124.434C94.7483 145.305 101.83 209.343 111.317 230.313C107.285 233.366 99.1101 241.039 98.6664 247.303C104.363 251.045 117.433 255.071 124.136 241.237C128.477 243.929 139.841 247.787 150.576 241.679C150.912 236.933 146.306 227.211 125.195 226.288C122.943 217.506 127.424 205.981 140.427 205.143C147.052 207.701 154.328 209.364 162.124 210.015Z', fill: 'url(#paint0_linear_9400_432849)' }),\n React.createElement(\"path\", { d: 'M103.425 124.434L104.348 124.818L104.366 124.774L104.38 124.728L103.425 124.434ZM111.317 230.313L111.92 231.11L112.557 230.628L112.228 229.901L111.317 230.313ZM98.6664 247.303L97.6689 247.232L97.6274 247.817L98.1173 248.139L98.6664 247.303ZM124.136 241.237L124.663 240.387L123.72 239.802L123.236 240.801L124.136 241.237ZM150.576 241.679L151.07 242.548L151.536 242.284L151.573 241.75L150.576 241.679ZM125.195 226.288L124.226 226.537L124.411 227.255L125.151 227.287L125.195 226.288ZM140.427 205.143L140.787 204.21L140.582 204.131L140.363 204.145L140.427 205.143ZM240.346 151.102C237.161 189.279 200.713 212.231 162.207 209.018L162.04 211.011C201.303 214.287 239.036 190.861 242.339 151.269L240.346 151.102ZM176.728 75.9011C215.062 79.0997 243.545 112.768 240.346 151.102L242.339 151.269C245.63 111.834 216.329 77.1985 176.894 73.908L176.728 75.9011ZM104.38 124.728C113.808 94.1371 143.519 73.13 176.728 75.9011L176.894 73.908C142.729 71.0572 112.168 92.6691 102.469 124.139L104.38 124.728ZM112.228 229.901C107.558 219.578 103.426 198.468 101.556 177.249C100.623 166.66 100.257 156.089 100.663 146.878C101.069 137.638 102.249 129.868 104.348 124.818L102.501 124.05C100.262 129.436 99.0736 137.496 98.6645 146.79C98.2541 156.111 98.6249 166.773 99.5635 177.424C101.437 198.684 105.589 220.078 110.406 230.725L112.228 229.901ZM99.6639 247.374C99.8617 244.581 101.827 241.307 104.41 238.249C106.957 235.232 109.953 232.601 111.92 231.11L110.713 229.516C108.649 231.079 105.541 233.81 102.882 236.959C100.258 240.066 97.9147 243.761 97.6689 247.232L99.6639 247.374ZM123.236 240.801C120.041 247.395 115.42 249.627 110.971 249.863C106.429 250.103 101.946 248.261 99.2154 246.467L98.1173 248.139C101.084 250.087 105.984 252.129 111.077 251.86C116.263 251.585 121.528 248.913 125.036 241.673L123.236 240.801ZM150.081 240.81C139.782 246.67 128.826 242.97 124.663 240.387L123.609 242.087C128.127 244.889 139.9 248.904 151.07 242.548L150.081 240.81ZM125.151 227.287C135.568 227.743 141.759 230.363 145.286 233.317C148.812 236.27 149.722 239.585 149.578 241.608L151.573 241.75C151.766 239.028 150.541 235.109 146.57 231.783C142.601 228.459 135.934 225.757 125.239 225.289L125.151 227.287ZM140.363 204.145C133.539 204.585 128.87 207.851 126.234 212.22C123.62 216.551 123.039 221.907 124.226 226.537L126.164 226.04C125.099 221.887 125.632 217.089 127.947 213.253C130.239 209.454 134.312 206.539 140.491 206.141L140.363 204.145ZM162.207 209.018C154.501 208.375 147.318 206.732 140.787 204.21L140.067 206.076C146.786 208.67 154.155 210.353 162.04 211.011L162.207 209.018Z', fill: '#004A97', mask: 'url(#path-2-inside-1_9400_432849)' }),\n React.createElement(\"path\", { d: 'M134.084 175.626C136.729 166.103 153.108 163.692 175.89 164.77C198.064 165.819 198.919 158.115 216.911 158.967C219.904 159.395 226.46 161.654 228.737 167.27', stroke: '#004A97', strokeWidth: '1.5' }),\n React.createElement(\"path\", { d: 'M143.405 185.906C179.281 164.4 217.584 176.556 228.785 182.504C220.605 194.711 195.957 213.22 157.891 211.073C144.378 209.945 140.009 209.273 136.2 206.311C129.118 206.906 125.923 216.471 124.561 217.95C124.121 216.852 125.372 212.438 125.619 209.486C125.865 206.533 126.677 203.666 130.688 197.94C136.2 191.498 142.02 186.736 143.405 185.906Z', fill: 'url(#paint1_linear_9400_432849)', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M222.965 179.858C223.917 180.81 225.081 183.269 225.081 187.265', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M229.864 159.605C230.984 156.292 229.211 153.42 228.667 151.39C232.071 150.98 234.64 156.819 234.799 159.286C234.926 161.261 233.553 162.131 232.616 162.382C231.211 162.758 229.308 161.248 229.864 159.605Z', fill: 'white', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M141.642 160.509C140.317 156.594 142.413 153.2 143.056 150.801C139.033 150.316 135.997 157.216 135.809 160.133C135.658 162.466 137.282 163.494 138.389 163.791C140.05 164.236 142.299 162.451 141.642 160.509Z', fill: 'white', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M145.017 133.055C146.356 131.225 148.554 130.295 149.839 129.468C148.772 128.461 144.696 130.6 143.323 131.726C142.225 132.626 142.28 133.364 142.5 133.707C142.831 134.22 144.353 133.963 145.017 133.055Z', fill: '#004A97', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M224.544 131.886C223.205 130.057 221.008 129.126 219.723 128.299C220.79 127.292 224.866 129.432 226.239 130.557C227.337 131.457 227.281 132.196 227.061 132.538C226.731 133.051 225.209 132.794 224.544 131.886Z', fill: '#004A97', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M213.442 176.896C217.724 179.037 219.429 185.537 217.145 194.672', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M206.035 175.097C210.797 179.858 212.913 188.323 204.977 202.079', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M197.57 174.039C202.332 185.149 201.803 201.021 183.286 209.486', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M187.518 174.039C189.105 187.265 187.518 202.608 161.595 211.073', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M174.821 175.097C172.859 194.97 165.298 205.253 138.316 207.898', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"path\", { d: 'M158.42 179.329C152.601 195.201 147.839 198.904 128.264 201.549', stroke: '#004A97', strokeWidth: '1.05811' }),\n React.createElement(\"circle\", { cx: '152.601', cy: '146.528', r: '5.29056', fill: '#004A97' }),\n React.createElement(\"rect\", { x: '152.48', y: '144.698', width: '3.17433', height: '3.17433', rx: '1.58717', transform: 'rotate(-15 152.48 144.698)', fill: 'white' }),\n React.createElement(\"circle\", { cx: '221.378', cy: '144.412', r: '5.29056', fill: '#004A97' }),\n React.createElement(\"rect\", { x: '218.083', y: '143.64', width: '3.17433', height: '3.17433', rx: '1.58717', transform: 'rotate(-15 218.083 143.64)', fill: 'white' }),\n React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: 'paint0_linear_9400_432849', x1: '217.663', y1: '99.4083', x2: '79.8143', y2: '214.011', gradientUnits: 'userSpaceOnUse' },\n React.createElement(\"stop\", { stopColor: '#77BAFF' }),\n React.createElement(\"stop\", { offset: '0.560559', stopColor: '#5BACFF' }),\n React.createElement(\"stop\", { offset: '1', stopColor: '#007BFB' })),\n React.createElement(\"linearGradient\", { id: 'paint1_linear_9400_432849', x1: '178.728', y1: '175.06', x2: '170.901', y2: '217.374', gradientUnits: 'userSpaceOnUse' },\n React.createElement(\"stop\", { stopColor: 'white' }),\n React.createElement(\"stop\", { offset: '1', stopColor: 'white' })))));\n};\n\nexport { WhaleSad };\n","import React from 'react';\nimport { isUndefined } from '@10d/tend-ui-utils/isUndefined';\nimport { isString } from '@10d/tend-ui-utils/isString';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { Box } from '@10d/tend-ui-grid';\nimport { Title, Paragraph, Text, Link } from '@10d/tend-ui-typography';\nimport { Button } from '@10d/tend-ui-primitives';\nimport { Layout } from '../Layout/Layout.js';\nimport { WhaleSad } from '../../WhaleSad.js';\n\nconst Forbidden = ({ title, description, onClick = () => {\n window.location.replace('https://pro.samoletgroup.ru');\n}, button, content, }) => {\n var _a;\n const t = useTranslation();\n const _title = isUndefined(title)\n ? t(['components', 'Status', 'Forbidden', 'title'])\n : title;\n const _description = isUndefined(description)\n ? t(['components', 'Status', 'Forbidden', 'description'])\n : description;\n return (React.createElement(Layout, null,\n React.createElement(Box, null,\n React.createElement(WhaleSad, null)),\n React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column', \"$gap\": 16 },\n isString(_title) ? (React.createElement(Title, { level: 'h3', margin: '0' }, _title)) : (_title),\n isString(_description) ? (React.createElement(Paragraph, { margin: '0' }, _description)) : (_description),\n isUndefined(content) ? (React.createElement(React.Fragment, null,\n React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column' },\n React.createElement(Text, null,\n t(['components', 'Status', 'phone']),\n \":\\u00A0\",\n React.createElement(Link, { href: 'tel:+7-495-660-41-41' }, \"+7-495-660-41-41\"))),\n React.createElement(Text, { size: 'small', color: 'gray650' }, t(['components', 'Status', 'schedule'])))) : (content),\n React.createElement(Button, Object.assign({ onClick: onClick }, button), (_a = button === null || button === void 0 ? void 0 : button.children) !== null && _a !== void 0 ? _a : t(['components', 'Status', 'button'])))));\n};\n\nexport { Forbidden };\n","import React from 'react';\nimport { isUndefined } from '@10d/tend-ui-utils/isUndefined';\nimport { isString } from '@10d/tend-ui-utils/isString';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { Box } from '@10d/tend-ui-grid';\nimport { Title, Paragraph } from '@10d/tend-ui-typography';\nimport { Button } from '@10d/tend-ui-primitives';\nimport { Layout } from '../Layout/Layout.js';\nimport { WhaleSad } from '../../WhaleSad.js';\n\nconst InternalServerError = ({ title, description, onClick = () => {\n window.location.reload();\n}, button, }) => {\n var _a;\n const t = useTranslation();\n const _title = isUndefined(title)\n ? t(['components', 'Status', 'InternalServerError', 'title'])\n : title;\n const _description = isUndefined(description)\n ? t(['components', 'Status', 'InternalServerError', 'description'])\n : description;\n return (React.createElement(Layout, null,\n React.createElement(Box, null,\n React.createElement(WhaleSad, null)),\n React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column', \"$gap\": 16 },\n isString(_title) ? (React.createElement(Title, { level: 'h3', margin: '0' }, _title)) : (_title),\n isString(_description) ? (React.createElement(Paragraph, { margin: '0' }, _description)) : (_description),\n React.createElement(Button, Object.assign({ onClick: onClick }, button), (_a = button === null || button === void 0 ? void 0 : button.children) !== null && _a !== void 0 ? _a : t(['components', 'Status', 'button'])))));\n};\n\nexport { InternalServerError };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { NotFound } from './components/NotFound/NotFound.js';\nimport { Forbidden } from './components/Forbidden/Forbidden.js';\nimport { InternalServerError } from './components/InternalServerError/InternalServerError.js';\n\nconst Status = (_a) => {\n var { status = 404 } = _a, props = __rest(_a, [\"status\"]);\n return ({\n 404: React.createElement(NotFound, Object.assign({}, props)),\n 403: React.createElement(Forbidden, Object.assign({}, props)),\n 500: React.createElement(InternalServerError, Object.assign({}, props)),\n }[status]);\n};\nStatus.displayName = 'Status';\n\nexport { Status };\n","import React from 'react';\nimport omit from 'lodash/omit';\nimport { Checkbox } from '../../primitives/Checkbox/Checkbox.js';\nimport { Input } from '@10d/tend-ui-primitives';\nimport { Select } from '../../primitives/Select/Select.js';\nimport { DatePicker } from '../../primitives/DatePicker/DatePicker.js';\nimport { Toggle } from '../../primitives/Toggle/Toggle.js';\nimport { RangePicker } from '../../primitives/RangePicker/RangePicker.js';\nimport { Radio } from '../../primitives/Radio/Radio.js';\nimport { AsyncSelect } from '../AsyncSelect/AsyncSelect.js';\n\nconst ComponentPicker = React.memo(props => {\n switch (props.component) {\n case 'input': {\n const rest = omit(props, 'component');\n return React.createElement(Input, Object.assign({}, rest));\n }\n case 'select': {\n const rest = omit(props, 'component');\n return React.createElement(Select, Object.assign({ fullWidth: true }, rest));\n }\n case 'async-select': {\n const rest = omit(props, 'component');\n return React.createElement(AsyncSelect, Object.assign({ fullWidth: true }, rest));\n }\n case 'toggle': {\n const rest = omit(props, 'component');\n return React.createElement(Toggle, Object.assign({}, rest));\n }\n case 'checkbox': {\n const rest = omit(props, 'component');\n return React.createElement(Checkbox, Object.assign({}, rest));\n }\n case 'checkbox-group': {\n const rest = omit(props, 'component');\n return React.createElement(Checkbox.Group, Object.assign({ layout: 'vertical' }, rest));\n }\n case 'radio': {\n const rest = omit(props, 'component');\n return React.createElement(Radio, Object.assign({}, rest));\n }\n case 'radio-group': {\n const rest = omit(props, 'component');\n return React.createElement(Radio.Group, Object.assign({ layout: 'vertical' }, rest));\n }\n case 'date-picker': {\n const rest = omit(props, 'component');\n return React.createElement(DatePicker, Object.assign({ fullWidth: true }, rest));\n }\n case 'range-picker': {\n const rest = omit(props, 'component');\n return React.createElement(RangePicker, Object.assign({ fullWidth: true }, rest));\n }\n default:\n return React.createElement(\"span\", null, \"Component is not supported\");\n }\n});\nComponentPicker.displayName = 'ComponentPicker';\n\nexport { ComponentPicker };\n","import { contextFactory } from '../../../factories/contextFactory.js';\n\nconst [ActionsButtonContext, useActionsButtonContext] = contextFactory();\n\nexport { ActionsButtonContext, useActionsButtonContext };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { Dropdown } from '../../../../primitives/Dropdown/Dropdown.js';\nimport { useBoolean } from '../../../../hooks/useBoolean/useBoolean.js';\nimport { ActionsButtonContext } from '../../contexts/ActionsButton.js';\n\nconst Root = (_a) => {\n var { items = [], onOpenChange } = _a, props = __rest(_a, [\"items\", \"onOpenChange\"]);\n const menu = React.useMemo(() => ({ items }), [items]);\n const [open, display] = useBoolean();\n return (React.createElement(ActionsButtonContext, { value: React.useMemo(() => ({ open, display }), [open, display]) },\n React.createElement(Dropdown, Object.assign({ trigger: ['click'], open: open, menu: menu }, props, { onOpenChange: (v, info) => {\n display(v);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(v, info);\n } }))));\n};\nRoot.displayName = 'ActionsButton.Root';\n\nexport { Root };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { isUndefined } from '@10d/tend-ui-utils/isUndefined';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { ChevronDown } from '@10d/tend-ui-icons/ChevronDown';\nimport { ChevronUp } from '@10d/tend-ui-icons/ChevronUp';\nimport { Button } from '@10d/tend-ui-primitives';\nimport { useActionsButtonContext } from '../../contexts/ActionsButton.js';\n\nconst Trigger = (_a) => {\n var { children, onClick } = _a, props = __rest(_a, [\"children\", \"onClick\"]);\n const t = useTranslation();\n const content = isUndefined(children)\n ? t(['components', 'ActionsButton', 'button'])\n : children;\n const { open, display } = useActionsButtonContext('ActionsButtonTrigger');\n return (React.createElement(Button, Object.assign({ variant: 'secondary' }, props, { before: open ? React.createElement(ChevronUp, null) : React.createElement(ChevronDown, null), onClick: e => {\n display === null || display === void 0 ? void 0 : display(!open);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n } }), content));\n};\nTrigger.displayName = 'ActionsButton.Trigger';\n\nexport { Trigger };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { Root } from './components/Root/Root.js';\nimport { Trigger } from './components/Trigger/Trigger.js';\n\nconst ActionsButton = (_a) => {\n var { children } = _a, props = __rest(_a, [\"children\"]);\n return (React.createElement(Root, Object.assign({}, props),\n React.createElement(Trigger, null, children)));\n};\nActionsButton.displayName = 'ActionsButton';\nActionsButton.Root = Root;\nActionsButton.Trigger = Trigger;\n\nexport { ActionsButton };\n","import styled, { css } from 'styled-components';\n\nconst Col = styled.li `\n min-width: 200px;\n list-style: none;\n padding: 0;\n margin: 0;\n border-radius: 8px;\n transition: 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n transition-property: background, color;\n\n ${props => {\n if (props.$disabled)\n return css `\n cursor: not-allowed;\n color: ${props => props.theme.colors.gray400};\n &:hover {\n background-color: ${props => props.theme.colors.gray50};\n }\n `;\n if (props.$selected)\n return css `\n cursor: pointer;\n background-color: ${props => props.theme.colors.blue100};\n `;\n return css `\n cursor: pointer;\n &:hover {\n background-color: ${props => props.theme.colors.gray50};\n }\n `;\n}}\n`;\n\nexport { Col };\n","import React from 'react';\nimport { Avatar } from '../../primitives/Avatar/Avatar.js';\nimport { Dropdown } from '../../primitives/Dropdown/Dropdown.js';\nimport { Box } from '@10d/tend-ui-grid';\nimport { Text } from '@10d/tend-ui-typography';\n\nconst overlayStyle = { minWidth: '256px' };\nconst Profile = ({ title, description, items, avatar }) => {\n const menu = React.useMemo(() => {\n const node = {\n disabled: true,\n key: 'profile-avatar-menu-item',\n label: (React.createElement(Box, { \"$display\": 'flex', \"$alignItems\": 'center', \"$gap\": 12 },\n React.createElement(Avatar, Object.assign({}, avatar, { size: 'medium' })),\n React.createElement(Box, { \"$display\": 'flex', \"$flexDirection\": 'column' },\n React.createElement(Text, { size: 'large' }, title),\n React.createElement(Text, { size: 'small', color: 'gray500' }, description)))),\n };\n const divider = {\n type: 'divider',\n };\n if (!items || !items.length)\n return {\n items: [node],\n };\n const nodes = [node, divider];\n const result = nodes.concat(items);\n return {\n items: result,\n };\n }, [avatar, description, items, title]);\n return (React.createElement(Dropdown, { items: menu.items, trigger: ['click'], overlayStyle: overlayStyle },\n React.createElement(Avatar, Object.assign({}, avatar, { size: 'small', pointer: true }))));\n};\nProfile.displayName = 'Profile';\n\nexport { Profile };\n","import { contextFactory } from '../../../factories/contextFactory.js';\n\nconst [TabsContext, useTabsContext] = contextFactory();\n\nexport { TabsContext, useTabsContext };\n","import styled from 'styled-components';\nimport { Tabs } from '../../../../primitives/Tabs/Tabs.js';\n\nconst Root = styled(Tabs) `\n &.tend-ui-tabs > .tend-ui-tabs-nav,\n &.tend-ui-tabs > div > .tend-ui-tabs-nav {\n margin: 0;\n }\n`;\n\nexport { Root };\n","import React from 'react';\n\nfunction contextFactory(provider = 'Context', initial) {\n const Context = React.createContext(initial);\n function useContext(consumer = 'useContext') {\n const context = React.useContext(Context);\n if (context)\n return context;\n throw new Error(`\\`${consumer}\\` must be used within \\`${provider}\\`!`);\n }\n Context.displayName = provider;\n return [Context.Provider, useContext];\n}\n\nexport { contextFactory };\n","import styled, { css } from 'styled-components';\nimport AntDivider from 'antd-core/es/divider';\nimport { isUndefined } from '@10d/tend-ui-utils/isUndefined';\nimport { isString } from '@10d/tend-ui-utils/isString';\n\nconst Root = styled(AntDivider) `\n ${props => {\n if (isUndefined(props.$margin))\n return;\n if (isString(props.$margin))\n return css `\n &.tend-ui-divider-horizontal {\n margin: ${props.$margin};\n }\n\n &.tend-ui-divider-vertical {\n margin-inline: ${props.$margin};\n }\n `;\n return css `\n &.tend-ui-divider-horizontal {\n margin: ${props.$margin}px 0;\n }\n\n &.tend-ui-divider-vertical {\n margin-inline: ${props.$margin}px;\n }\n `;\n}};\n\n &.tend-ui-divider {\n border-block-start-color: ${props => props.$color};\n }\n\n &.tend-ui-divider-vertical {\n border-inline-start-color: ${props => props.$color};\n }\n`;\n\nexport { Root };\n","import { __rest } from 'tslib';\nimport React from 'react';\nimport { useColor } from '@10d/tend-ui-theme';\nimport { Root } from './styled.js';\n\nconst Divider = (_a) => {\n var { margin, color } = _a, props = __rest(_a, [\"margin\", \"color\"]);\n // FIXME: Найти способ поправить литеральные типы\n const _color = useColor(color);\n return (React.createElement(Root, Object.assign({ \"data-testid\": 'tend-ui-divider' }, props, { \"$margin\": margin, \"$color\": _color })));\n};\nDivider.displayName = 'Divider';\n\nexport { Divider };\n","import React from 'react';\n\n/**\n * @description HOC passes a React \"className\" property to a given property name\n * in order to style off-DOM-rendered elements with \"styled-components\"\n */\nconst withInjectedClassName = (Component, propertyName) => {\n return React.forwardRef((props, ref) => {\n const property = [props[propertyName], props.className].filter(Boolean).join(' ');\n return React.createElement(Component, Object.assign({ ref: ref }, props, { [propertyName]: property }));\n });\n};\n\nexport { withInjectedClassName };\n","import React from 'react';\n\nconst useVisibility = () => {\n const [visible, setVisible] = React.useState(false);\n const show = React.useCallback(() => {\n setVisible(true);\n }, []);\n const hide = React.useCallback(() => {\n setVisible(false);\n }, []);\n const toggle = React.useCallback(() => {\n setVisible(p => !p);\n }, []);\n return {\n visible,\n show,\n hide,\n toggle,\n };\n};\n\nexport { useVisibility };\n","import React from 'react';\nimport { useTranslation } from '@10d/tend-ui-locale/hooks/useTranslation';\nimport { Close } from '@10d/tend-ui-icons/Close';\nimport { Tooltip } from '@10d/tend-ui-primitives';\n\n/**\n * @deprecated Используйте `useAllowClear` из `@10d/tend-ui-primitives`\n */\nconst useAllowClear = ({ allowClear, clearIconTooltip, }) => {\n const t = useTranslation();\n return React.useMemo(() => {\n if (typeof allowClear === 'undefined')\n return;\n if (allowClear === false)\n return allowClear;\n return {\n clearIcon: (React.createElement(Tooltip, Object.assign({ title: t(['general', 'clear']) }, clearIconTooltip),\n React.createElement(Close, { size: 16 }))),\n };\n }, [allowClear, clearIconTooltip, t]);\n};\n\nexport { useAllowClear };\n","import React from 'react';\n\nconst useBoolean = (initialState = false) => {\n const [value, setValue] = React.useState(initialState);\n const setter = React.useCallback((value) => {\n if (typeof value === 'boolean') {\n setValue(value);\n return;\n }\n setValue(prev => !prev);\n }, []);\n return [value, setter];\n};\n\nexport { useBoolean };\n","import React from 'react';\nimport { useLanguage } from '@10d/tend-ui-locale';\nimport ru_RU from 'antd-core/es/date-picker/locale/ru_RU';\nimport en_US from 'antd-core/es/date-picker/locale/en_US';\n\nconst useDatePickerLocale = (locale) => {\n const lang = useLanguage('useDatePickerLocale');\n return React.useMemo(() => {\n const defaultLocale = locale !== null && locale !== void 0 ? locale : { ru: ru_RU, en: en_US }[lang];\n return Object.assign(Object.assign({}, defaultLocale), { lang: Object.assign({ monthFormat: 'MMMM' }, defaultLocale.lang) });\n }, [lang, locale]);\n};\n\nexport { useDatePickerLocale };\n","import React from 'react';\n\nconst useFilterOption = (props) => {\n const { filterOptionProp, search, options, filterOption } = props;\n return React.useMemo(() => {\n if (!search || filterOption === false)\n return options;\n const isPredicate = typeof filterOption === 'function';\n const fn = isPredicate\n ? filterOption\n : (search, option) => {\n return option[filterOptionProp]\n .toString()\n .toLowerCase()\n .includes(search.toLowerCase());\n };\n return options.filter(option => fn(search, option));\n }, [filterOption, filterOptionProp, options, search]);\n};\n\nexport { useFilterOption };\n","import React from 'react';\n\n/**\n * @deprecated Используйте `useInputTitle` из `@10d/tend-ui-primitives`\n */\nconst useInputTitle = ({ title = '', onChange, }) => {\n const [_title, _setTitle] = React.useState(title);\n const bind = React.useMemo(() => ({\n title: _title,\n onChange: (e) => {\n _setTitle(e.target.value);\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n },\n }), [_title, onChange]);\n return bind;\n};\n\nexport { useInputTitle };\n","/**\n * @description Size-adapter-hook for backward compatibility for Antd sizes and TendUI sizes\n */\nconst useSize = (size) => {\n if (!size)\n return;\n return {\n large: 'large',\n medium: 'middle',\n small: 'small',\n }[size];\n};\n\nexport { useSize };\n"],"names":["_transform","data","Object","assign","value","id","label","name","AsyncCheckbox","_a","ref","filterOption","pagination","api","onLoad","onSearch","transform","onScroll","props","__api","cancellable","url","isRequestCalled","isBackendSearching","_query","current","query","request","payload","force","params","_request","then","response","results","loading","error","next","handleSearch","search","options","map","handleScroll","event","target","scrollTop","offsetHeight","scrollHeight","Boolean","displayName","AsyncRadio","AsyncSelect","searchPropName","preload","onSelect","onBlur","onDropdownVisibleChange","onPopupScroll","__request","isSearchTyped","isMountingPreload","includes","isOpeningPreload","isEveryOpeningPreload","isBluringPreload","isEveryBluringPreload","isMultiple","mode","isTags","isSingle","handleDropdownVisibleChange","handleSelect","handleBlur","notFoundContent","handlePopupScroll","createKey","item","CheckboxGroupSearch","optionAfter","optionDescription","placeholder","allowClear","showSearch","virtual","filterOptionProp","scrollable","optionRender","onChange","theme","selectedValues","setSelectedValues","setSearch","e","handleChange","_next","previousSelectedValues","checked","filter","pValue","createLabel","node","option","after","description","size","color","_options","filteredOptions","rowVirtualizer","count","length","getScrollElement","estimateSize","component","Group","style","getTotalSize","height","width","position","fullWidth","layout","getVirtualItems","virtualItem","filteredOption","index","vi","top","left","start","key","content","colors","blue600","Toggle","DragIndicator","ColumnsSettingContext","useColumnsSettingContext","contextFactory","Root","column","className","children","attributes","isDragging","listeners","setNodeRef","setActivatorNodeRef","transition","disabled","draggable","opacity","undefined","Translate","toString","DragHandle","context","Pin","$disabled","pinned","onClick","handleClick","condition","MemoizedColumnsSetting","onColumnVisibilityChange","onColumnPinningChange","visible","UNSTABLE_styling","Text","strong","title","pinnable","fixed","p","ColumnsSetting","ResetButton","t","useTranslation","variant","List","columns","gap","items","ColumnsSettingsPresetsProvider","useColumnsSettingsPresetsProvider","onColumnDragEnd","defaultPresets","onPresetApply","onPresetEdit","onPresetRemove","onPresetSave","handleDragEnd","over","active","ids","from","indexOf","to","onDragEnd","presets","mapColumnsForPreset","SavePresetButton","form","Form","useForm","model","open","toggle","names","preset","before","Bookmark","Modal","cancelButtonProps","okText","onOk","validateFields","call","v4","resetFields","onCancel","initialValues","Item","required","rules","message","validator","state","getFieldsValue","Promise","reject","resolve","input","gray50","Input","onRemove","onEdit","setValue","editing","setEditing","comparing","Box","Radio","Dropdown","MoreVert","cursor","PresetsList","_b","_c","text","Collapse","createReactKey","config","MemoizedBaseColumnsSettings","onColumnsReset","showPresets","_title","isUndefined","margin","level","flex","isString","Header","CloseButton","Body","Divider","padding","ColumnsSettings","createDefaultColumn","mapColumnsForLocalStorage","patchColumnPosition","useColumns","parameters","Array","isArray","storageKey","localStorage","ignore","defaultColumns","initialColumns","saved","LocalStorage","get","prev","nextIds","c","prevIds","isColumnsValid","grouped","sort","a","b","findIndex","_columns","_setColumns","stringified","JSON","stringify","__presets","__setPresets","defaultValue","onPresetsChange","applyPreset","previousColumns","ordering","order","savePreset","previousPresets","editPreset","previousPreset","removePreset","removed","find","swap","ignored","reduce","acc","cv","push","moved","move","forEach","i","v","splice","set","unpin","prevColumn","pin","rightPosition","currentPosition","col","right","none","movedColumn","reset","display","previousColumn","renderColumns","notIgnored","onlyVisibles","useColumnsSettings","useDisabled","values","isBoolean","requires","some","filterName","useDepends","depends","useValuesObserver","scope","useWatch","AsyncCheckboxFilter","useFormInstance","INTERNAL_scope","parse","fn","AsyncRadioFilter","AsyncSelectFilter","CheckboxFilter","Checkbox","CheckboxGroupFilter","DatePickerFilter","DatePicker","InputFilter","RadioFilter","RadioGroupFilter","RangePickerFilter","RangePicker","ToggleFilter","SelectFilter","Select","CheckboxGroupSearchFilter","RadioGroupSearchFilter","RadioGroupSearch","InputNumberFilter","InputNumber","FiltersContext","useFiltersContext","pack","extract","FiltersFormProvider","useFiltersFormProvider","FiltersPresetsProvider","useFiltersPresetsProvider","debounce","filters","onFilterValuesChange","onFilterReset","onFiltersReset","getScopeState","getFieldValue","getState","path","setFieldValue","fill","setFieldsValue","clear","join","useFiltersForm","dependencies","useDependsGraph","onValuesChange","changed","patched","k","touched","keys","_onFilterValuesChange","_presets","_setPresets","save","edit","remove","handlePresetSave","handlePresetEdit","handlePresetRemove","handlePresetApply","handleReset","handleClear","getScopedState","onReset","onClear","onSave","onApply","ctx","SaveButton","fp","useBoolean","numbers","match","matched","parseInt","_","n","isPresetExist","hasAppliedFilters","flat","help","ResetAllButton","valuePropNameFactory","FilterPicker","Filter","useFilterCounter","stopPropagation","shouldRender","Badge","inner","noStyle","valuePropName","Filters","onClose","resetAllButtonProps","_form","CollapseGroup","graph","dependency","A","$theme","gray650","fonts","museo","gray500","red600","isNumber","$width","css","rule","Error","composeMessage","useErrorMessagePrefix","tooltip","icon","Help","overlayInnerStyle","lineBreak","whiteSpace","useStatus","$gap","ForwardedForm","ErrorList","Provider","virtualizer","Search","prefix","Layout","Content","div","Big404","span","NotFound","button","window","location","reload","_description","WhaleSad","viewBox","xmlns","fillRule","clipRule","d","mask","stroke","strokeWidth","cx","cy","r","x","y","rx","x1","y1","x2","y2","gradientUnits","stopColor","offset","Forbidden","replace","href","InternalServerError","Status","status","rest","ActionsButtonContext","useActionsButtonContext","onOpenChange","menu","trigger","info","Trigger","ChevronUp","ChevronDown","ActionsButton","li","gray400","$selected","blue100","overlayStyle","minWidth","Profile","avatar","Avatar","type","concat","pointer","TabsContext","useTabsContext","Tabs","provider","initial","Context","consumer","$margin","$color","_color","withInjectedClassName","Component","propertyName","property","useVisibility","setVisible","show","hide","useAllowClear","clearIconTooltip","clearIcon","initialState","setter","useDatePickerLocale","locale","lang","defaultLocale","ru","en","monthFormat","useFilterOption","toLowerCase","useInputTitle","_setTitle","useSize","large","medium","small"],"sourceRoot":""}