@consta/uikit 4.31.1 → 4.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/TooltipCanary/index.d.ts +1 -0
- package/TooltipCanary/index.js +1 -0
- package/__internal__/src/components/BadgeGroup/BadgeGroup.css +1 -1
- package/__internal__/src/components/BadgeGroup/BadgeGroup.js +1 -1
- package/__internal__/src/components/BadgeGroup/BadgeGroup.js.map +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsCanary.js +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsCanary.js.map +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.css +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.js +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.js.map +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/types.d.ts +2 -2
- package/__internal__/src/components/BookmarkTabsCanary/types.js.map +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/useBookmarkTabs.d.ts +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/useBookmarkTabs.js.map +1 -1
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/Combobox/helpers.d.ts +3 -1
- package/__internal__/src/components/Combobox/helpers.js +1 -1
- package/__internal__/src/components/Combobox/helpers.js.map +1 -1
- package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js +1 -1
- package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js.map +1 -1
- package/__internal__/src/components/ComboboxCanary/helpers.d.ts +3 -1
- package/__internal__/src/components/ComboboxCanary/helpers.js +1 -1
- package/__internal__/src/components/ComboboxCanary/helpers.js.map +1 -1
- package/__internal__/src/components/DragNDropField/DragNDropFieldTooltip/DragNDropFieldTooltip.js +1 -1
- package/__internal__/src/components/DragNDropField/DragNDropFieldTooltip/DragNDropFieldTooltip.js.map +1 -1
- package/__internal__/src/components/Loader/Loader.css +1 -1
- package/__internal__/src/components/Loader/Loader.d.ts +1 -1
- package/__internal__/src/components/Loader/Loader.js +1 -1
- package/__internal__/src/components/Loader/Loader.js.map +1 -1
- package/__internal__/src/components/LoaderCanary/Loader.css +1 -1
- package/__internal__/src/components/LoaderCanary/LoaderCanary.d.ts +2 -2
- package/__internal__/src/components/LoaderCanary/types.d.ts +1 -1
- package/__internal__/src/components/LoaderCanary/types.js +1 -1
- package/__internal__/src/components/LoaderCanary/types.js.map +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js.map +1 -1
- package/__internal__/src/components/Responses/Responses.css +1 -1
- package/__internal__/src/components/Responses/Responses.d.ts +1 -1
- package/__internal__/src/components/Responses/Responses.js +1 -1
- package/__internal__/src/components/Responses/Responses.js.map +1 -1
- package/__internal__/src/components/Responses403/Responses403.js +1 -1
- package/__internal__/src/components/Responses403/Responses403.js.map +1 -1
- package/__internal__/src/components/Responses500/Responses500.d.ts +2 -2
- package/__internal__/src/components/Responses500/Responses500.js +1 -1
- package/__internal__/src/components/Responses500/Responses500.js.map +1 -1
- package/__internal__/src/components/Responses503/Responses503.d.ts +2 -2
- package/__internal__/src/components/Responses503/Responses503.js +1 -1
- package/__internal__/src/components/Responses503/Responses503.js.map +1 -1
- package/__internal__/src/components/ResponsesConnectionError/ResponsesConnectionError.js +1 -1
- package/__internal__/src/components/ResponsesConnectionError/ResponsesConnectionError.js.map +1 -1
- package/__internal__/src/components/ResponsesDeleted/ResponsesDeleted.js +1 -1
- package/__internal__/src/components/ResponsesDeleted/ResponsesDeleted.js.map +1 -1
- package/__internal__/src/components/Select/Select.js +1 -1
- package/__internal__/src/components/Select/Select.js.map +1 -1
- package/__internal__/src/components/Select/helpers.d.ts +2 -1
- package/__internal__/src/components/Select/helpers.js +1 -1
- package/__internal__/src/components/Select/helpers.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectCanary.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectCanary.js.map +1 -1
- package/__internal__/src/components/SelectCanary/helpers.d.ts +2 -1
- package/__internal__/src/components/SelectCanary/helpers.js +1 -1
- package/__internal__/src/components/SelectCanary/helpers.js.map +1 -1
- package/__internal__/src/components/SelectComponents/Select.css +1 -1
- package/__internal__/src/components/SelectComponentsCanary/Select.css +1 -1
- package/__internal__/src/components/Slider/SliderPoint/SliderPoint.js +1 -1
- package/__internal__/src/components/Slider/SliderPoint/SliderPoint.js.map +1 -1
- package/__internal__/src/components/Table/filtering.js +1 -1
- package/__internal__/src/components/Table/filtering.js.map +1 -1
- package/__internal__/src/components/Table/helpers.js +1 -1
- package/__internal__/src/components/Table/helpers.js.map +1 -1
- package/__internal__/src/components/Tabs/helpers.js +1 -1
- package/__internal__/src/components/Tabs/helpers.js.map +1 -1
- package/__internal__/src/components/TabsDeprecated/FitModeScrollWrapper/helpers.js +1 -1
- package/__internal__/src/components/TabsDeprecated/FitModeScrollWrapper/helpers.js.map +1 -1
- package/__internal__/src/components/Theme/_color/Theme_color_gpnDark.css +1 -1
- package/__internal__/src/components/TooltipCanary/Tooltip.css +1 -0
- package/__internal__/src/components/TooltipCanary/TooltipCanary.d.ts +4 -0
- package/__internal__/src/components/TooltipCanary/TooltipCanary.js +2 -0
- package/__internal__/src/components/TooltipCanary/TooltipCanary.js.map +1 -0
- package/__internal__/src/components/TooltipCanary/index.d.ts +2 -0
- package/__internal__/src/components/TooltipCanary/index.js +2 -0
- package/__internal__/src/components/TooltipCanary/index.js.map +1 -0
- package/__internal__/src/components/TooltipCanary/types.d.ts +23 -0
- package/__internal__/src/components/TooltipCanary/types.js +2 -0
- package/__internal__/src/components/TooltipCanary/types.js.map +1 -0
- package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
- package/__internal__/src/components/UserSelect/helpers.d.ts +3 -1
- package/__internal__/src/components/UserSelect/helpers.js +1 -1
- package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
- package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js +1 -1
- package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js.map +1 -1
- package/__internal__/src/components/UserSelectCanary/helpers.d.ts +3 -1
- package/__internal__/src/components/UserSelectCanary/helpers.js +1 -1
- package/__internal__/src/components/UserSelectCanary/helpers.js.map +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.d.ts +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.js +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.js.map +1 -1
- package/__internal__/src/hooks/useHideElementsInLineCanary/useHideElementsInLineCanary.js +1 -1
- package/__internal__/src/hooks/useHideElementsInLineCanary/useHideElementsInLineCanary.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filtering.js","names":["React","isDefined","getOptionsForFilters","filters","field","filter","filterField","map","id","name","value","label","getSelectedFiltersInitialState","reduce","fieldAcc","fieldCur","selected","fieldFiltersPresent","tableFilters","some","isSelectedFiltersPresent","selectedFilters","Object","values","filterGroup","length","getSelectedFiltersList","columns","acc","cur","currentFieldFilters","accessor","orderedFilters","option","find","filterId","filterTableData","data","mutableFilteredData","row","copiedRow","rows","columnNames","keys","rowIsValid","columnName","columnFilters","cellIsValid","cellContent","filterer","push","useSelectedFilters","onFiltersUpdated","useState","setSelectedFilters","updateSelectedFilters","tooltipSelectedFilters","newSelectedFilters","removeOneSelectedFilter","availableFilters","filterToDelete","f","removeAllSelectedFilters","initialSelectedFilters"],"sources":["../../../../../src/components/Table/filtering.ts"],"sourcesContent":["import React from 'react';\n\nimport { isDefined } from '../../utils/type-guards';\nimport { SortByProps, TableColumn, TableRow, ValueOf } from './Table';\n\nexport type FilterComponentProps = {\n onConfirm: (value: unknown) => void;\n onCancel: () => void;\n filterValue?: unknown;\n} & Record<string, unknown>;\n\nexport type Filters<T extends TableRow> = ValueOf<{\n [K in keyof T]: {\n id: string;\n name: string;\n field: K extends string ? K : never;\n filterer(value: any, filterValue?: unknown): boolean;\n } & (\n | { component?: never }\n | {\n component: {\n name: React.FC<FilterComponentProps>;\n props?: Omit<FilterComponentProps, 'onConfirm' | 'filterValue'>;\n };\n }\n );\n}>[];\n\nexport type onSortBy<T extends TableRow> = (\n props: SortByProps<T> | null,\n) => void;\n\nexport type FieldSelectedValues = string[];\n\ntype SelectedFilter = {\n selected: FieldSelectedValues;\n value?: any;\n};\n\nexport type SelectedFilters = { [field: string]: SelectedFilter };\n\ntype SelectedFiltersList = Array<{\n id: string;\n name: string;\n}>;\n\nexport const getOptionsForFilters = <T extends TableRow>(\n filters: Filters<T>,\n field: string,\n): { value: string; label: string }[] => {\n return filters\n .filter(({ field: filterField }) => filterField === field)\n .map(({ id, name }) => ({ value: id, label: name }));\n};\n\nexport const getSelectedFiltersInitialState = <T extends TableRow>(\n filters?: Filters<T>,\n): SelectedFilters => {\n if (!filters) {\n return {};\n }\n\n return filters.reduce<SelectedFilters>((fieldAcc, fieldCur) => {\n if (!fieldAcc[fieldCur.field]) {\n return {\n ...fieldAcc,\n [fieldCur.field]: {\n selected: [],\n },\n };\n }\n\n return fieldAcc;\n }, {});\n};\n\nexport const fieldFiltersPresent = <T extends TableRow>(\n tableFilters: Filters<T>,\n field: string,\n): boolean => {\n return tableFilters.some(({ field: filterField }) => filterField === field);\n};\n\nexport const isSelectedFiltersPresent = (\n selectedFilters: SelectedFilters,\n): boolean => {\n return Object.values(selectedFilters).some(\n (filterGroup) => filterGroup?.selected!.length > 0,\n );\n};\n\nexport const getSelectedFiltersList = <T extends TableRow>({\n filters,\n selectedFilters,\n columns,\n}: {\n filters: Filters<T>;\n selectedFilters: SelectedFilters;\n columns: Array<TableColumn<T>>;\n}): SelectedFiltersList => {\n return columns.reduce<SelectedFiltersList>((acc, cur) => {\n const currentFieldFilters = selectedFilters[cur.accessor!] || [];\n let orderedFilters: SelectedFiltersList = [];\n\n if (\n currentFieldFilters.selected &&\n currentFieldFilters.selected.length > 0\n ) {\n orderedFilters = currentFieldFilters\n .selected!.map((filter) => {\n const option = filters.find(\n ({ id: filterId }) => filterId === filter,\n );\n\n return option\n ? {\n id: option.id,\n name: option.name,\n value: currentFieldFilters.value,\n }\n : undefined;\n })\n .filter(isDefined);\n }\n\n return orderedFilters.length > 0 ? [...acc, ...orderedFilters] : acc;\n }, []);\n};\n\nexport const filterTableData = <T extends TableRow>({\n data,\n filters,\n selectedFilters,\n}: {\n data: T[];\n filters: Filters<T>;\n selectedFilters: SelectedFilters;\n}): T[] => {\n const mutableFilteredData = [];\n\n for (const row of data) {\n const copiedRow = { ...row };\n\n if (copiedRow.rows?.length) {\n copiedRow.rows = filterTableData({\n data: copiedRow.rows as T[],\n filters,\n selectedFilters,\n });\n }\n\n const columnNames = Object.keys(copiedRow);\n let rowIsValid = true;\n\n for (const columnName of columnNames) {\n const columnFilters = selectedFilters[columnName];\n\n if (columnFilters && columnFilters.selected!.length) {\n let cellIsValid = false;\n const cellContent = copiedRow[columnName as keyof T];\n\n if (columnFilters.value) {\n const [filterId] = columnFilters.selected;\n const filter = filters.find(({ id }) => id === filterId);\n\n if (filter!.filterer(cellContent, columnFilters.value)) {\n cellIsValid = true;\n }\n } else {\n for (const filterId of columnFilters.selected!) {\n const filter = filters.find(({ id }) => id === filterId);\n\n if (columnFilters.value === null) {\n cellIsValid = true;\n break;\n }\n\n if (filter && filter.filterer(cellContent)) {\n cellIsValid = true;\n break;\n }\n }\n }\n\n if (!cellIsValid) {\n rowIsValid = false;\n }\n }\n\n if (!rowIsValid) {\n break;\n }\n }\n\n if (rowIsValid) {\n mutableFilteredData.push(copiedRow);\n }\n }\n\n return mutableFilteredData;\n};\n\n/* istanbul ignore next */\nexport const useSelectedFilters = <T extends TableRow>(\n filters?: Filters<T>,\n onFiltersUpdated?: (filters: SelectedFilters) => void,\n): {\n selectedFilters: SelectedFilters;\n updateSelectedFilters: (\n field: string,\n tooltipSelectedFilters: FieldSelectedValues,\n value?: unknown,\n ) => void;\n removeOneSelectedFilter: (\n availableFilters: Filters<T>,\n filter: string,\n ) => void;\n removeAllSelectedFilters: (availableFilters: Filters<T>) => void;\n} => {\n const [selectedFilters, setSelectedFilters] = React.useState<SelectedFilters>(\n getSelectedFiltersInitialState(filters),\n );\n\n const updateSelectedFilters = (\n field: string,\n tooltipSelectedFilters: FieldSelectedValues,\n value?: unknown,\n ): void => {\n const newSelectedFilters = {\n ...selectedFilters,\n [field]: {\n selected: [...tooltipSelectedFilters],\n value,\n },\n };\n\n setSelectedFilters(newSelectedFilters);\n onFiltersUpdated && onFiltersUpdated(newSelectedFilters);\n };\n\n const removeOneSelectedFilter = (\n availableFilters: Filters<T>,\n filter: string,\n ): void => {\n const filterToDelete = availableFilters.find(({ id }) => id === filter);\n\n if (filterToDelete) {\n updateSelectedFilters(\n filterToDelete.field,\n (selectedFilters[filterToDelete.field] || {}).selected?.filter(\n (f) => f !== filter,\n ),\n );\n }\n };\n\n const removeAllSelectedFilters = (availableFilters: Filters<T>): void => {\n const initialSelectedFilters =\n getSelectedFiltersInitialState(availableFilters);\n setSelectedFilters(initialSelectedFilters);\n onFiltersUpdated && onFiltersUpdated(initialSelectedFilters);\n };\n\n return {\n selectedFilters,\n updateSelectedFilters,\n removeOneSelectedFilter,\n removeAllSelectedFilters,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filtering.js","names":["React","isDefined","getOptionsForFilters","filters","field","filter","filterField","map","id","name","value","label","getSelectedFiltersInitialState","reduce","fieldAcc","fieldCur","selected","fieldFiltersPresent","tableFilters","some","isSelectedFiltersPresent","selectedFilters","Object","values","filterGroup","length","getSelectedFiltersList","columns","acc","cur","currentFieldFilters","accessor","orderedFilters","option","find","filterId","filterTableData","data","mutableFilteredData","row","copiedRow","rows","columnNames","keys","rowIsValid","columnName","columnFilters","cellIsValid","cellContent","filterer","push","useSelectedFilters","onFiltersUpdated","useState","setSelectedFilters","updateSelectedFilters","tooltipSelectedFilters","newSelectedFilters","removeOneSelectedFilter","availableFilters","filterToDelete","f","removeAllSelectedFilters","initialSelectedFilters"],"sources":["../../../../../src/components/Table/filtering.ts"],"sourcesContent":["import React from 'react';\n\nimport { isDefined } from '../../utils/type-guards';\nimport { SortByProps, TableColumn, TableRow, ValueOf } from './Table';\n\nexport type FilterComponentProps = {\n onConfirm: (value: unknown) => void;\n onCancel: () => void;\n filterValue?: unknown;\n} & Record<string, unknown>;\n\nexport type Filters<T extends TableRow> = ValueOf<{\n [K in keyof T]: {\n id: string;\n name: string;\n field: K extends string ? K : never;\n filterer(value: any, filterValue?: unknown): boolean;\n } & (\n | { component?: never }\n | {\n component: {\n name: React.FC<FilterComponentProps>;\n props?: Omit<FilterComponentProps, 'onConfirm' | 'filterValue'>;\n };\n }\n );\n}>[];\n\nexport type onSortBy<T extends TableRow> = (\n props: SortByProps<T> | null,\n) => void;\n\nexport type FieldSelectedValues = string[];\n\ntype SelectedFilter = {\n selected: FieldSelectedValues;\n value?: any;\n};\n\nexport type SelectedFilters = { [field: string]: SelectedFilter };\n\ntype SelectedFiltersList = Array<{\n id: string;\n name: string;\n}>;\n\nexport const getOptionsForFilters = <T extends TableRow>(\n filters: Filters<T>,\n field: string,\n): { value: string; label: string }[] => {\n return filters\n .filter(({ field: filterField }) => filterField === field)\n .map(({ id, name }) => ({ value: id, label: name }));\n};\n\nexport const getSelectedFiltersInitialState = <T extends TableRow>(\n filters?: Filters<T>,\n): SelectedFilters => {\n if (!filters) {\n return {};\n }\n\n return filters.reduce<SelectedFilters>((fieldAcc, fieldCur) => {\n if (!fieldAcc[fieldCur.field]) {\n return {\n ...fieldAcc,\n [fieldCur.field]: {\n selected: [],\n },\n };\n }\n\n return fieldAcc;\n }, {});\n};\n\nexport const fieldFiltersPresent = <T extends TableRow>(\n tableFilters: Filters<T>,\n field: string,\n): boolean => {\n return tableFilters.some(({ field: filterField }) => filterField === field);\n};\n\nexport const isSelectedFiltersPresent = (\n selectedFilters: SelectedFilters,\n): boolean => {\n return Object.values(selectedFilters).some(\n (filterGroup) => filterGroup?.selected!.length > 0,\n );\n};\n\nexport const getSelectedFiltersList = <T extends TableRow>({\n filters,\n selectedFilters,\n columns,\n}: {\n filters: Filters<T>;\n selectedFilters: SelectedFilters;\n columns: Array<TableColumn<T>>;\n}): SelectedFiltersList => {\n return columns.reduce<SelectedFiltersList>((acc, cur) => {\n const currentFieldFilters = selectedFilters[cur.accessor!] || [];\n let orderedFilters: SelectedFiltersList = [];\n\n if (\n currentFieldFilters.selected &&\n currentFieldFilters.selected.length > 0\n ) {\n orderedFilters = currentFieldFilters\n .selected!.map((filter) => {\n const option = filters.find(\n ({ id: filterId }) => filterId === filter,\n );\n\n return option\n ? {\n id: option.id,\n name: option.name,\n value: currentFieldFilters.value,\n }\n : undefined;\n })\n .filter(isDefined);\n }\n\n return orderedFilters.length > 0 ? [...acc, ...orderedFilters] : acc;\n }, []);\n};\n\nexport const filterTableData = <T extends TableRow>({\n data,\n filters,\n selectedFilters,\n}: {\n data: T[];\n filters: Filters<T>;\n selectedFilters: SelectedFilters;\n}): T[] => {\n const mutableFilteredData = [];\n\n for (const row of data) {\n const copiedRow = { ...row };\n\n if (copiedRow.rows?.length) {\n copiedRow.rows = filterTableData({\n data: copiedRow.rows as T[],\n filters,\n selectedFilters,\n });\n }\n\n const columnNames = Object.keys(copiedRow);\n let rowIsValid = true;\n\n for (const columnName of columnNames) {\n const columnFilters = selectedFilters[columnName];\n\n if (columnFilters && columnFilters.selected!.length) {\n let cellIsValid = false;\n const cellContent = copiedRow[columnName as keyof T];\n\n if (columnFilters.value) {\n const [filterId] = columnFilters.selected;\n const filter = filters.find(({ id }) => id === filterId);\n\n if (filter!.filterer(cellContent, columnFilters.value)) {\n cellIsValid = true;\n }\n } else {\n for (const filterId of columnFilters.selected!) {\n const filter = filters.find(({ id }) => id === filterId);\n\n if (columnFilters.value === null) {\n cellIsValid = true;\n break;\n }\n\n if (filter && filter.filterer(cellContent)) {\n cellIsValid = true;\n break;\n }\n }\n }\n\n if (!cellIsValid) {\n rowIsValid = false;\n }\n }\n\n if (!rowIsValid) {\n break;\n }\n }\n\n if (rowIsValid) {\n mutableFilteredData.push(copiedRow);\n }\n }\n\n return mutableFilteredData;\n};\n\n/* istanbul ignore next */\nexport const useSelectedFilters = <T extends TableRow>(\n filters?: Filters<T>,\n onFiltersUpdated?: (filters: SelectedFilters) => void,\n): {\n selectedFilters: SelectedFilters;\n updateSelectedFilters: (\n field: string,\n tooltipSelectedFilters: FieldSelectedValues,\n value?: unknown,\n ) => void;\n removeOneSelectedFilter: (\n availableFilters: Filters<T>,\n filter: string,\n ) => void;\n removeAllSelectedFilters: (availableFilters: Filters<T>) => void;\n} => {\n const [selectedFilters, setSelectedFilters] = React.useState<SelectedFilters>(\n getSelectedFiltersInitialState(filters),\n );\n\n const updateSelectedFilters = (\n field: string,\n tooltipSelectedFilters: FieldSelectedValues,\n value?: unknown,\n ): void => {\n const newSelectedFilters = {\n ...selectedFilters,\n [field]: {\n selected: [...tooltipSelectedFilters],\n value,\n },\n };\n\n setSelectedFilters(newSelectedFilters);\n onFiltersUpdated && onFiltersUpdated(newSelectedFilters);\n };\n\n const removeOneSelectedFilter = (\n availableFilters: Filters<T>,\n filter: string,\n ): void => {\n const filterToDelete = availableFilters.find(({ id }) => id === filter);\n\n if (filterToDelete) {\n updateSelectedFilters(\n filterToDelete.field,\n (selectedFilters[filterToDelete.field] || {}).selected?.filter(\n (f) => f !== filter,\n ),\n );\n }\n };\n\n const removeAllSelectedFilters = (availableFilters: Filters<T>): void => {\n const initialSelectedFilters =\n getSelectedFiltersInitialState(availableFilters);\n setSelectedFilters(initialSelectedFilters);\n onFiltersUpdated && onFiltersUpdated(initialSelectedFilters);\n };\n\n return {\n selectedFilters,\n updateSelectedFilters,\n removeOneSelectedFilter,\n removeAllSelectedFilters,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React from"react";import{isNotNil,isNumber,isString}from"../../utils/type-guards";export var Order={ASC:"ASC",asc:"asc",DESC:"DESC",desc:"desc"};export var getColumnsSize=function(a){return a.map(function(a){return isNumber(a)?"".concat(a,"px"):"auto"}).join(" ")};export var getColumnLeftOffset=function(a){var b=a.columnIndex,c=a.resizedColumnWidths,d=a.initialColumnWidths,e=d.slice(0,b).map(function(a,b){return c[b]||a});return e.reduce(function(a,b){return a+b},0)};export var createSortingState=function(a,b,c){return isString(b)?{by:a,order:b.toLowerCase(),sortFn:c}:null};export var getNewSorting=function(a,b,c){return a&&a.by===b?"asc"===a.order?{by:b,order:"desc",sortFn:c}:null:{by:b,order:"asc",sortFn:c}};export var getMaxLevel=function(a){var b=0,c=function(a){var d=1<arguments.length&&void 0!==arguments[1]?arguments[1]:1;d>b&&(b=d),a.forEach(function(a){a.columns&&c(a.columns,d+1)})};return c(a),b};var getLastChildrenCount=function(a){var b=0,c=function(a){a.forEach(function(a){a.columns?c(a.columns):b++})};return c(a),b};export var transformColumns=function(a,b){for(var c=[{columns:a,index:0}],d=[],e=0;c.length;){var f=c.length-1,g=c[f],h=g.columns[g.index];h?function(){
|
|
1
|
+
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React from"react";import{isNotNil,isNumber,isString}from"../../utils/type-guards";export var Order={ASC:"ASC",asc:"asc",DESC:"DESC",desc:"desc"};export var getColumnsSize=function(a){return a.map(function(a){return isNumber(a)?"".concat(a,"px"):"auto"}).join(" ")};export var getColumnLeftOffset=function(a){var b=a.columnIndex,c=a.resizedColumnWidths,d=a.initialColumnWidths,e=d.slice(0,b).map(function(a,b){return c[b]||a});return e.reduce(function(a,b){return a+b},0)};export var createSortingState=function(a,b,c){return isString(b)?{by:a,order:b.toLowerCase(),sortFn:c}:null};export var getNewSorting=function(a,b,c){return a&&a.by===b?"asc"===a.order?{by:b,order:"desc",sortFn:c}:null:{by:b,order:"asc",sortFn:c}};export var getMaxLevel=function(a){var b=0,c=function(a){var d=1<arguments.length&&void 0!==arguments[1]?arguments[1]:1;d>b&&(b=d),a.forEach(function(a){a.columns&&c(a.columns,d+1)})};return c(a),b};var getLastChildrenCount=function(a){var b=0,c=function(a){a.forEach(function(a){a.columns?c(a.columns):b++})};return c(a),b};export var transformColumns=function(a,b){for(var c=[{columns:a,index:0}],d=[],e=0;c.length;){var f=c.length-1,g=c[f],h=g.columns[g.index];h?function(a){d[f]||(d[f]=[]);var i=c[0].index,j=d[f][d[f].length-1],k=j?j.position.gridIndex+(j.position.colSpan||1):0,l=0===f?e++:null!==(a=h.colId)&&void 0!==a?a:0,m=_objectSpread(_objectSpread({},h),{},{position:{topHeaderGridIndex:i,gridIndex:k,level:f}});0===f&&(m.colId=l),m.columns?(m.position.colSpan=getLastChildrenCount(m.columns),d[f].push(m),c.push({columns:m.columns.map(function(a){return _objectSpread(_objectSpread({},a),{},{colId:e++,parentId:l})}),index:0})):(m.position.rowSpan=b-f,d[f].push(m),g.index++)}():(c.pop(),c[c.length-1]&&c[c.length-1].index++)}return d};var getIsFirst=function(a,b){var c,d,e=b.colId,f=b.parentId,g=b.position,h=b.accessor;if(0===g.level)return 0===e;var i=a.find(function(a){return a.colId===f});return!!((null===i||void 0===i||null===(c=i.columns)||void 0===c||null===(d=c[0])||void 0===d?void 0:d.accessor)===h&&!!i&&getIsFirst(a,i))};export var useHeaderData=function(a){var b=React.useRef({}),c=transformColumns(a,getMaxLevel(a)),d=Object.values(b.current).filter(isNotNil).map(function(a){return a.getBoundingClientRect().height}),e=c.flat().filter(function(a){return!a.hidden}).map(function(a,b,e){return _objectSpread(_objectSpread({},a),{},{position:_objectSpread(_objectSpread({},a.position),{},{isFirst:getIsFirst(e,a),smallTextSize:1<c.length&&a.position.level===c.length-1,height:d[b]||0})})}),f=c.map(function(a,b){return Math.min.apply(null,e.filter(function(a){return a.position.level===b}).map(function(a){return a.position.height}))}),g=e.filter(function(a){var b=a.position.colSpan;return!b}).sort(function(c,a){return c.position.topHeaderGridIndex===a.position.topHeaderGridIndex?c.position.gridIndex>a.position.gridIndex?1:-1:c.position.topHeaderGridIndex>a.position.topHeaderGridIndex?1:-1}),h=g.map(function(a,b){var c,d,e=f.reduce(function(c,a){return c+a},0);return(a.position.rowSpan||0)>=((null===(c=g[b+1])||void 0===c?void 0:c.position.rowSpan)||0)?e-(a.position.height||0):e-(null===(d=g[b+1])||void 0===d?void 0:d.position.height)||0});return{headers:c,flattenedHeaders:e,lowHeaders:g,headerRowsRefs:b,headerRowsHeights:f,headerColumnsHeights:d,resizerTopOffsets:h}};export var useLazyLoadData=function(a,b,c){var d=React.useState(0),e=_slicedToArray(d,2),f=e[0],g=e[1],h=React.useRef(null),i=React.useRef(null),j=Math.floor(a/3);React.useEffect(function(){if(c){var a=0;b&&"offsetHeight"in b?a=b.offsetHeight:b&&"outerHeight"in b&&(a=b.outerHeight);var d=function(){i.current&&a/2>i.current.getBoundingClientRect().top?g(function(a){return a+j}):h.current&&h.current.getBoundingClientRect().top>a/2&&g(function(a){return 0>a-j?0:a-j})};return null===b||void 0===b?void 0:b.addEventListener("scroll",d),function(){return null===b||void 0===b?void 0:b.removeEventListener("scroll",d)}}},[f,b]);return{getSlicedRows:function getSlicedRows(b){return!c||b.length<a?b:b.slice(f,f+a)},setBoundaryRef:function setBoundaryRef(b,d){return c&&0===b&&d===j&&0<f?h:c&&0===b&&d===a-j?i:void 0}}};export var transformRows=function(a,b,c){for(var d=[{rows:a,index:0}],e=[];d.length;){var f=d.length-1,g=d[f],h=g.rows[g.index];if(h){var i=_objectSpread(_objectSpread({},h),{},{options:{level:f},rows:h.rows&&_toConsumableArray(h.rows)}),j=!!i.rows&&(c||b.includes(i.id));j?d.push({rows:i.rows,index:0}):g.index++,e.push(i)}else d.pop(),d[d.length-1]&&d[d.length-1].index++}return e};export function getMergedArray(a,b){for(var c=Math.max(a.length,b.length),d=[],e=0;e<c;e++){var f;d.push(null!==(f=b[e])&&void 0!==f?f:a[e])}return d}export function calulateColSpans(a,b){var c=[],d=0,e=a.length,f=function(a,b){return b+a>e?e-b-a:a};return a.forEach(function(a){var e=a.colSpan,g=1<c.length?c.reduce(function(c,a){return c+a}):0;if("number"==typeof e||"function"==typeof e){var h="number"==typeof e?e:e(b);0===d?c.push(f(h,g)):c.push(f(h-d||0,g)),d=0<h-d?h-1:d-h}else 0===d?c.push(f(1,g)):(c.push(0),d--)}),c}
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["React","isNotNil","isNumber","isString","Order","ASC","asc","DESC","desc","getColumnsSize","sizes","map","s","join","getColumnLeftOffset","columnIndex","resizedColumnWidths","initialColumnWidths","selectedColumns","slice","size","index","reduce","acc","column","createSortingState","by","order","sortFn","toLowerCase","getNewSorting","currentSorting","newField","getMaxLevel","columns","count","traverse","cols","level","forEach","item","getLastChildrenCount","transformColumns","maxLevel","stack","headersArr","col","length","node","topHeaderGridIndex","prevItem","gridIndex","position","colSpan","mainId","colId","handledItem","push","el","parentId","rowSpan","pop","getIsFirst","accessor","parent","find","useHeaderData","headerRowsRefs","useRef","headers","headerColumnsHeights","Object","values","current","filter","ref","getBoundingClientRect","height","flattenedHeaders","flat","hidden","array","isFirst","smallTextSize","headerRowsHeights","arr","Math","min","apply","lowHeaders","sort","a","b","resizerTopOffsets","header","headerHeight","useLazyLoadData","maxVisibleRows","scrollableEl","enabled","useState","visibleStartIndex","setVisibleStartIndex","cellsRefStart","cellsRefEnd","additionalRowsCount","floor","useEffect","elHeight","offsetHeight","outerHeight","onScrollListener","top","prevIndex","addEventListener","removeEventListener","getSlicedRows","rows","setBoundaryRef","columnIdx","rowIdx","transformRows","expandedRowIds","isTableExpanded","rowsArr","options","needGoDeeper","includes","id","getMergedArray","mainArr","mergeArr","max","resultArr","i","calulateColSpans","row","spans","counter","getAvailableSpan","span"],"sources":["../../../../../src/components/Table/helpers.ts"],"sourcesContent":["import React from 'react';\n\nimport { isNotNil, isNumber, isString } from '../../utils/type-guards';\nimport {\n ColumnWidth,\n SortingState,\n TableColumn,\n TableRow,\n TableTreeRow,\n} from './Table';\n\nexport const Order = {\n ASC: 'ASC',\n asc: 'asc',\n DESC: 'DESC',\n desc: 'desc',\n} as const;\n\nexport type OrderType = typeof Order[keyof typeof Order];\n\nexport type Position = {\n colSpan?: number;\n rowSpan?: number;\n level: number;\n gridIndex: number;\n isFirst?: boolean;\n topHeaderGridIndex: number;\n smallTextSize?: boolean;\n height?: number;\n};\n\nexport type Header<T extends TableRow> = TableColumn<T> & {\n position: Position;\n colId?: number;\n parentId?: number;\n};\n\nexport type HeaderData<T extends TableRow> = {\n headers: Array<Header<T>>[];\n flattenedHeaders: Array<Header<T>>;\n lowHeaders: Array<Header<T>>;\n headerRowsRefs: React.MutableRefObject<Record<number, HTMLDivElement | null>>;\n headerRowsHeights: Array<number>;\n headerColumnsHeights: Array<number>;\n resizerTopOffsets: Array<number>;\n};\n\nexport const getColumnsSize = (sizes: ColumnWidth[]): string => {\n return sizes.map((s) => (isNumber(s) ? `${s}px` : `auto`)).join(' ');\n};\n\nexport const getColumnLeftOffset = ({\n columnIndex,\n resizedColumnWidths,\n initialColumnWidths,\n}: {\n columnIndex: number;\n resizedColumnWidths: Array<number | undefined>;\n initialColumnWidths: number[];\n}): number => {\n const selectedColumns = initialColumnWidths\n .slice(0, columnIndex)\n .map((size, index) => resizedColumnWidths[index] || size);\n\n return selectedColumns.reduce((acc, column) => acc + column, 0);\n};\n\nexport const createSortingState = <T extends TableRow>(\n by: keyof T,\n order?: OrderType,\n sortFn?: (a: T[keyof T], b: T[keyof T]) => number,\n): SortingState<T> => {\n if (!isString(order)) {\n return null;\n }\n\n return { by, order: order.toLowerCase(), sortFn } as SortingState<T>;\n};\n\nexport const getNewSorting = <T extends TableRow>(\n currentSorting: SortingState<T>,\n newField: keyof T,\n sortFn?: (a: T[keyof T], b: T[keyof T]) => number,\n): SortingState<T> => {\n if (!currentSorting || currentSorting.by !== newField) {\n return {\n by: newField,\n order: 'asc',\n sortFn,\n };\n }\n\n if (currentSorting.order === 'asc') {\n return {\n by: newField,\n order: 'desc',\n sortFn,\n };\n }\n\n return null;\n};\n\nexport const getMaxLevel = <T extends TableRow>(\n columns: Array<TableColumn<T>>,\n) => {\n let count = 0;\n\n const traverse = (cols: Array<TableColumn<T>>, level = 1) => {\n if (level > count) count = level;\n cols.forEach((item: TableColumn<T>) => {\n if (item.columns) {\n traverse(item.columns, level + 1);\n }\n });\n };\n\n traverse(columns);\n\n return count;\n};\n\nconst getLastChildrenCount = <T extends TableRow>(\n columns: Array<TableColumn<T>>,\n) => {\n let count = 0;\n\n const traverse = (cols: Array<TableColumn<T>>) => {\n cols.forEach((item: TableColumn<T>) => {\n if (item.columns) {\n traverse(item.columns);\n } else {\n count++;\n }\n });\n };\n\n traverse(columns);\n\n return count;\n};\n\nexport const transformColumns = <T extends TableRow>(\n columns: Array<TableColumn<T>>,\n maxLevel: number,\n): Array<Header<T>>[] => {\n const stack = [{ columns, index: 0 }];\n const headersArr: Array<Header<T>>[] = [];\n let col = 0;\n\n while (stack.length) {\n const level = stack.length - 1;\n const node = stack[level];\n const item = node.columns[node.index] as Header<T>;\n\n if (item) {\n if (!headersArr[level]) headersArr[level] = [];\n const topHeaderGridIndex = stack[0].index;\n const prevItem = headersArr[level][headersArr[level].length - 1];\n const gridIndex = prevItem\n ? prevItem.position.gridIndex + (prevItem.position.colSpan || 1)\n : 0;\n const mainId = level === 0 ? col++ : item.colId ?? 0;\n\n const handledItem: TableColumn<T> & {\n position: Position;\n colId?: number;\n parentId?: number;\n } = {\n ...item,\n position: {\n topHeaderGridIndex,\n gridIndex,\n level,\n },\n };\n\n if (level === 0) {\n handledItem.colId = mainId;\n }\n\n if (!handledItem.columns) {\n handledItem.position.rowSpan = maxLevel - level;\n headersArr[level].push(handledItem);\n node.index++;\n } else {\n handledItem.position.colSpan = getLastChildrenCount(\n handledItem.columns,\n );\n headersArr[level].push(handledItem);\n stack.push({\n columns: handledItem.columns.map((el) => ({\n ...el,\n colId: col++,\n parentId: mainId,\n })),\n index: 0,\n });\n }\n } else {\n stack.pop();\n if (stack[stack.length - 1]) stack[stack.length - 1].index++;\n }\n }\n\n return headersArr;\n};\n\nconst getIsFirst = <T extends TableRow>(\n columns: Header<T>[],\n column: Header<T>,\n): boolean => {\n const { colId, parentId, position, accessor } = column;\n if (position.level === 0) {\n return colId === 0;\n }\n const parent = columns.find((el) => el.colId === parentId);\n return !!(\n parent?.columns?.[0]?.accessor === accessor &&\n (parent ? getIsFirst(columns, parent) : false)\n );\n};\n\n/**\n * Возвращает данные, необходимые для построения хидера таблицы\n *\n * @param columns - массив колонок\n *\n * @return {\n * {Array<Header<T>>[]} headers: двумерный массив заголовков, выстроенный по вертикали;\n * {Array<Header<T>>} flattenedHeaders: плоский массив заголовков;\n * {Array<Header<T>>} lowHeaders: самые нижние заголовки (по ним строятся колонки);\n * {Record<number, HTMLDivElement | null>} headerRowsRefs: содержит рефы на заголовки;\n * {Array<number>} headerRowsHeights: массив высот строк заголовков;\n * {Array<number>} headerColumnsHeights: массив высот колонок заголовков;\n * {Array<number>} resizerTopOffsets: массив отступов для компонентов Resizer;\n * }\n */\nexport const useHeaderData = <T extends TableRow>(\n columns: Array<TableColumn<T>>,\n): HeaderData<T> => {\n const headerRowsRefs = React.useRef<Record<number, HTMLDivElement | null>>(\n {},\n );\n const headers = transformColumns(columns, getMaxLevel(columns));\n const headerColumnsHeights: Array<number> = Object.values(\n headerRowsRefs.current,\n )\n .filter(isNotNil)\n .map((ref) => ref.getBoundingClientRect().height);\n\n const flattenedHeaders = headers\n .flat()\n .filter((column: TableColumn<T>) => !column.hidden)\n .map((column, index, array) => ({\n ...column,\n position: {\n ...column.position,\n isFirst: getIsFirst(array, column),\n smallTextSize:\n headers.length > 1 && column.position.level === headers.length - 1,\n height: headerColumnsHeights[index] || 0,\n },\n }));\n const headerRowsHeights = headers.map((arr, index) => {\n return Math.min.apply(\n null,\n flattenedHeaders\n .filter(\n (col: TableColumn<T> & { position: Position }) =>\n col.position.level === index,\n )\n .map((item) => item.position.height),\n );\n });\n const lowHeaders = flattenedHeaders\n .filter(\n ({ position: { colSpan } }: TableColumn<T> & { position: Position }) =>\n !colSpan,\n )\n .sort((a, b) => {\n if (a.position.topHeaderGridIndex !== b.position.topHeaderGridIndex) {\n return a.position.topHeaderGridIndex > b.position.topHeaderGridIndex\n ? 1\n : -1;\n }\n return a.position.gridIndex > b.position.gridIndex ? 1 : -1;\n });\n\n const resizerTopOffsets = lowHeaders.map(\n (header: TableColumn<T> & { position: Position }, index: number) => {\n const headerHeight = headerRowsHeights.reduce(\n (a: number, b: number) => a + b,\n 0,\n );\n if (\n (header.position.rowSpan || 0) >=\n (lowHeaders[index + 1]?.position.rowSpan || 0)\n ) {\n return headerHeight - (header.position.height || 0);\n }\n // eslint-disable-next-line no-unsafe-optional-chaining\n return headerHeight - lowHeaders[index + 1]?.position.height! || 0;\n },\n );\n\n return {\n headers,\n flattenedHeaders,\n lowHeaders,\n headerRowsRefs,\n headerRowsHeights,\n headerColumnsHeights,\n resizerTopOffsets,\n };\n};\n\n/**\n * Возвращает 2 функции, необходимые для отображения большого количества строк в таблице\n *\n * @param maxVisibleRows - максимальное количество отображаемых строк в один момент времени\n * @param scrollableEl - элемент, на который вешается scroll listener\n * @param enabled - флаг включения данной функциональность\n *\n * @return {\n * getSlicedRows: функция, обрезающая исходный массив данных\n * setBoundaryRef: функция, проставляющая рефы необходимым ячейкам для вычисления границ отображения строк\n * }\n */\nexport const useLazyLoadData = (\n maxVisibleRows: number,\n scrollableEl: HTMLDivElement | Window | null,\n enabled: boolean,\n) => {\n const [visibleStartIndex, setVisibleStartIndex] = React.useState<number>(0);\n const cellsRefStart = React.useRef<HTMLDivElement>(null);\n const cellsRefEnd = React.useRef<HTMLDivElement>(null);\n const additionalRowsCount = Math.floor(maxVisibleRows / 3);\n\n React.useEffect(() => {\n if (!enabled) return;\n let elHeight = 0;\n if (scrollableEl && 'offsetHeight' in scrollableEl) {\n elHeight = scrollableEl.offsetHeight;\n } else if (scrollableEl && 'outerHeight' in scrollableEl) {\n elHeight = scrollableEl.outerHeight;\n }\n const onScrollListener = () => {\n if (\n cellsRefEnd.current &&\n elHeight / 2 > cellsRefEnd.current.getBoundingClientRect().top\n ) {\n setVisibleStartIndex((prevIndex) => prevIndex + additionalRowsCount);\n } else if (\n cellsRefStart.current &&\n cellsRefStart.current.getBoundingClientRect().top > elHeight / 2\n ) {\n setVisibleStartIndex((prevIndex) =>\n prevIndex - additionalRowsCount < 0\n ? 0\n : prevIndex - additionalRowsCount,\n );\n }\n };\n\n scrollableEl?.addEventListener('scroll', onScrollListener);\n\n return () => scrollableEl?.removeEventListener('scroll', onScrollListener);\n }, [visibleStartIndex, scrollableEl]);\n\n const setBoundaryRef = (columnIdx: number, rowIdx: number) => {\n if (\n enabled &&\n columnIdx === 0 &&\n rowIdx === additionalRowsCount &&\n visibleStartIndex > 0\n ) {\n return cellsRefStart;\n }\n if (\n enabled &&\n columnIdx === 0 &&\n rowIdx === maxVisibleRows - additionalRowsCount\n ) {\n return cellsRefEnd;\n }\n return undefined;\n };\n\n const getSlicedRows = <T extends TableRow>(rows: T[]) =>\n !enabled || rows.length < maxVisibleRows\n ? rows\n : rows.slice(visibleStartIndex, visibleStartIndex + maxVisibleRows);\n\n return {\n getSlicedRows,\n setBoundaryRef,\n };\n};\n\nexport const transformRows = <T extends TableRow>(\n rows: T[],\n expandedRowIds: string[],\n isTableExpanded?: boolean,\n): TableTreeRow<T>[] => {\n const stack = [{ rows, index: 0 }];\n const rowsArr: TableTreeRow<T>[] = [];\n while (stack.length) {\n const level = stack.length - 1;\n const node = stack[level];\n const item: T = node.rows[node.index];\n\n if (item) {\n const handledItem: TableTreeRow<T> = {\n ...item,\n options: { level },\n rows: item.rows && [...item.rows],\n };\n\n const needGoDeeper =\n Boolean(handledItem.rows) &&\n (isTableExpanded || expandedRowIds.includes(handledItem.id));\n\n if (needGoDeeper) {\n stack.push({ rows: handledItem.rows as T[], index: 0 });\n } else {\n node.index++;\n }\n\n rowsArr.push(handledItem);\n } else {\n stack.pop();\n if (stack[stack.length - 1]) {\n stack[stack.length - 1].index++;\n }\n }\n }\n return rowsArr;\n};\n\nexport function getMergedArray<TYPE>(mainArr: TYPE[], mergeArr: TYPE[]) {\n const length = Math.max(mainArr.length, mergeArr.length);\n const resultArr: TYPE[] = [];\n for (let i = 0; i < length; i++) {\n resultArr.push(mergeArr[i] ?? mainArr[i]);\n }\n return resultArr;\n}\n\nexport function calulateColSpans<T extends TableRow>(\n columns: TableColumn<T>[],\n row: TableTreeRow<T>,\n) {\n const spans: number[] = [];\n let counter = 0;\n const { length } = columns;\n const getAvailableSpan = (span: number, size: number) => {\n if (size + span > length) return length - size - span;\n return span;\n };\n columns.forEach((column) => {\n const { colSpan } = column;\n const size = spans.length > 1 ? spans.reduce((a, b) => a + b) : 0;\n if (typeof colSpan === 'number' || typeof colSpan === 'function') {\n const span = typeof colSpan === 'number' ? colSpan : colSpan(row);\n if (counter === 0) {\n spans.push(getAvailableSpan(span, size));\n } else {\n spans.push(getAvailableSpan(span - counter || 0, size));\n }\n counter = span - counter > 0 ? span - 1 : counter - span;\n } else if (counter !== 0) {\n spans.push(0);\n counter--;\n } else {\n spans.push(getAvailableSpan(1, size));\n }\n });\n return spans;\n}\n"],"mappings":"+yBAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,QAAT,CAAmBC,QAAnB,CAA6BC,QAA7B,+BASA,MAAO,IAAMC,MAAK,CAAG,CACnBC,GAAG,CAAE,KADc,CAEnBC,GAAG,CAAE,KAFc,CAGnBC,IAAI,CAAE,MAHa,CAInBC,IAAI,CAAE,MAJa,CAAd,CAoCP,MAAO,IAAMC,eAAc,CAAG,SAACC,CAAD,CAAkC,CAC9D,MAAOA,EAAK,CAACC,GAAN,CAAU,SAACC,CAAD,QAAQV,SAAQ,CAACU,CAAD,CAAR,WAAiBA,CAAjB,aAAR,CAAV,EAAoDC,IAApD,CAAyD,GAAzD,CACR,CAFM,CAIP,MAAO,IAAMC,oBAAmB,CAAG,WAQrB,IAPZC,EAOY,GAPZA,WAOY,CANZC,CAMY,GANZA,mBAMY,CALZC,CAKY,GALZA,mBAKY,CACNC,CAAe,CAAGD,CAAmB,CACxCE,KADqB,CACf,CADe,CACZJ,CADY,EAErBJ,GAFqB,CAEjB,SAACS,CAAD,CAAOC,CAAP,QAAiBL,EAAmB,CAACK,CAAD,CAAnB,EAA8BD,CAA/C,CAFiB,CADZ,CAKZ,MAAOF,EAAe,CAACI,MAAhB,CAAuB,SAACC,CAAD,CAAMC,CAAN,QAAiBD,EAAG,CAAGC,CAAvB,CAAvB,CAAsD,CAAtD,CACR,CAdM,CAgBP,MAAO,IAAMC,mBAAkB,CAAG,SAChCC,CADgC,CAEhCC,CAFgC,CAGhCC,CAHgC,CAIZ,OACfzB,SAAQ,CAACwB,CAAD,CADO,CAKb,CAAED,EAAE,CAAFA,CAAF,CAAMC,KAAK,CAAEA,CAAK,CAACE,WAAN,EAAb,CAAkCD,MAAM,CAANA,CAAlC,CALa,CAEX,IAIV,CAVM,CAYP,MAAO,IAAME,cAAa,CAAG,SAC3BC,CAD2B,CAE3BC,CAF2B,CAG3BJ,CAH2B,CAIP,OACfG,EAAD,EAAmBA,CAAc,CAACL,EAAf,GAAsBM,CADzB,CASS,KAAzB,GAAAD,CAAc,CAACJ,KATC,CAUX,CACLD,EAAE,CAAEM,CADC,CAELL,KAAK,CAAE,MAFF,CAGLC,MAAM,CAANA,CAHK,CAVW,CAiBb,IAjBa,CAEX,CACLF,EAAE,CAAEM,CADC,CAELL,KAAK,CAAE,KAFF,CAGLC,MAAM,CAANA,CAHK,CAgBV,CAtBM,CAwBP,MAAO,IAAMK,YAAW,CAAG,SACzBC,CADyB,CAEtB,IACCC,EAAK,CAAG,CADT,CAGGC,CAAQ,CAAG,SAACC,CAAD,CAA4C,IAAdC,EAAc,wDAAN,CAAM,CACvDA,CAAK,CAAGH,CAD+C,GACxCA,CAAK,CAAGG,CADgC,EAE3DD,CAAI,CAACE,OAAL,CAAa,SAACC,CAAD,CAA0B,CACjCA,CAAI,CAACN,OAD4B,EAEnCE,CAAQ,CAACI,CAAI,CAACN,OAAN,CAAeI,CAAK,CAAG,CAAvB,CAEX,CAJD,CAKD,CAVE,CAcH,MAFAF,EAAQ,CAACF,CAAD,CAER,CAAOC,CACR,CAjBM,CAmBP,GAAMM,qBAAoB,CAAG,SAC3BP,CAD2B,CAExB,IACCC,EAAK,CAAG,CADT,CAGGC,CAAQ,CAAG,SAACC,CAAD,CAAiC,CAChDA,CAAI,CAACE,OAAL,CAAa,SAACC,CAAD,CAA0B,CACjCA,CAAI,CAACN,OAD4B,CAEnCE,CAAQ,CAACI,CAAI,CAACN,OAAN,CAF2B,CAInCC,CAAK,EAER,CAND,CAOD,CAXE,CAeH,MAFAC,EAAQ,CAACF,CAAD,CAER,CAAOC,CACR,CAlBD,CAoBA,MAAO,IAAMO,iBAAgB,CAAG,SAC9BR,CAD8B,CAE9BS,CAF8B,CAGP,QACjBC,EAAK,CAAG,CAAC,CAAEV,OAAO,CAAPA,CAAF,CAAWb,KAAK,CAAE,CAAlB,CAAD,CADS,CAEjBwB,CAA8B,CAAG,EAFhB,CAGnBC,CAAG,CAAG,CAHa,CAKhBF,CAAK,CAACG,MALU,EAKF,IACbT,EAAK,CAAGM,CAAK,CAACG,MAAN,CAAe,CADV,CAEbC,CAAI,CAAGJ,CAAK,CAACN,CAAD,CAFC,CAGbE,CAAI,CAAGQ,CAAI,CAACd,OAAL,CAAac,CAAI,CAAC3B,KAAlB,CAHM,CAKfmB,CALe,kBAMZK,CAAU,CAACP,CAAD,CANE,GAMOO,CAAU,CAACP,CAAD,CAAV,CAAoB,EAN3B,KAOXW,EAAkB,CAAGL,CAAK,CAAC,CAAD,CAAL,CAASvB,KAPnB,CAQX6B,CAAQ,CAAGL,CAAU,CAACP,CAAD,CAAV,CAAkBO,CAAU,CAACP,CAAD,CAAV,CAAkBS,MAAlB,CAA2B,CAA7C,CARA,CASXI,CAAS,CAAGD,CAAQ,CACtBA,CAAQ,CAACE,QAAT,CAAkBD,SAAlB,EAA+BD,CAAQ,CAACE,QAAT,CAAkBC,OAAlB,EAA6B,CAA5D,CADsB,CAEtB,CAXa,CAYXC,CAAM,CAAa,CAAV,GAAAhB,CAAK,CAASQ,CAAG,EAAZ,WAAiBN,CAAI,CAACe,KAAtB,gBAA+B,CAZlC,CAcXC,CAIL,gCACIhB,CADJ,MAECY,QAAQ,CAAE,CACRH,kBAAkB,CAAlBA,CADQ,CAERE,SAAS,CAATA,CAFQ,CAGRb,KAAK,CAALA,CAHQ,CAFX,EAlBgB,CA2BH,CAAV,GAAAA,CA3Ba,GA4BfkB,CAAW,CAACD,KAAZ,CAAoBD,CA5BL,EA+BZE,CAAW,CAACtB,OA/BA,EAoCfsB,CAAW,CAACJ,QAAZ,CAAqBC,OAArB,CAA+BZ,oBAAoB,CACjDe,CAAW,CAACtB,OADqC,CApCpC,CAuCfW,CAAU,CAACP,CAAD,CAAV,CAAkBmB,IAAlB,CAAuBD,CAAvB,CAvCe,CAwCfZ,CAAK,CAACa,IAAN,CAAW,CACTvB,OAAO,CAAEsB,CAAW,CAACtB,OAAZ,CAAoBvB,GAApB,CAAwB,SAAC+C,CAAD,wCAC5BA,CAD4B,MAE/BH,KAAK,CAAET,CAAG,EAFqB,CAG/Ba,QAAQ,CAAEL,CAHqB,GAAxB,CADA,CAMTjC,KAAK,CAAE,CANE,CAAX,CAxCe,GAgCfmC,CAAW,CAACJ,QAAZ,CAAqBQ,OAArB,CAA+BjB,CAAQ,CAAGL,CAhC3B,CAiCfO,CAAU,CAACP,CAAD,CAAV,CAAkBmB,IAAlB,CAAuBD,CAAvB,CAjCe,CAkCfR,CAAI,CAAC3B,KAAL,EAlCe,MAkDjBuB,CAAK,CAACiB,GAAN,EAlDiB,CAmDbjB,CAAK,CAACA,CAAK,CAACG,MAAN,CAAe,CAAhB,CAnDQ,EAmDYH,CAAK,CAACA,CAAK,CAACG,MAAN,CAAe,CAAhB,CAAL,CAAwB1B,KAAxB,EAnDZ,CAqDpB,CAED,MAAOwB,EACR,CAhEM,CAkEP,GAAMiB,WAAU,CAAG,SACjB5B,CADiB,CAEjBV,CAFiB,CAGL,SACJ+B,CADI,CACoC/B,CADpC,CACJ+B,KADI,CACGI,CADH,CACoCnC,CADpC,CACGmC,QADH,CACaP,CADb,CACoC5B,CADpC,CACa4B,QADb,CACuBW,CADvB,CACoCvC,CADpC,CACuBuC,QADvB,CAEZ,GAAuB,CAAnB,GAAAX,CAAQ,CAACd,KAAb,CACE,MAAiB,EAAV,GAAAiB,CAAP,CAEF,GAAMS,EAAM,CAAG9B,CAAO,CAAC+B,IAAR,CAAa,SAACP,CAAD,QAAQA,EAAE,CAACH,KAAH,GAAaI,CAArB,CAAb,CAAf,CACA,MAAO,CAAC,EACN,QAAAK,CAAM,WAANA,CAAA,YAAAA,CAAM,CAAE9B,OAAR,2BAAkB,CAAlB,wBAAsB6B,QAAtB,IAAmCA,CAAnC,IACCC,CADD,EACUF,UAAU,CAAC5B,CAAD,CAAU8B,CAAV,CAFd,CAIT,CAbD,CA8BA,MAAO,IAAME,cAAa,CAAG,SAC3BhC,CAD2B,CAET,IACZiC,EAAc,CAAGnE,KAAK,CAACoE,MAAN,CACrB,EADqB,CADL,CAIZC,CAAO,CAAG3B,gBAAgB,CAACR,CAAD,CAAUD,WAAW,CAACC,CAAD,CAArB,CAJd,CAKZoC,CAAmC,CAAGC,MAAM,CAACC,MAAP,CAC1CL,CAAc,CAACM,OAD2B,EAGzCC,MAHyC,CAGlCzE,QAHkC,EAIzCU,GAJyC,CAIrC,SAACgE,CAAD,QAASA,EAAG,CAACC,qBAAJ,GAA4BC,MAArC,CAJqC,CAL1B,CAWZC,CAAgB,CAAGT,CAAO,CAC7BU,IADsB,GAEtBL,MAFsB,CAEf,SAAClD,CAAD,QAA4B,CAACA,CAAM,CAACwD,MAApC,CAFe,EAGtBrE,GAHsB,CAGlB,SAACa,CAAD,CAASH,CAAT,CAAgB4D,CAAhB,wCACAzD,CADA,MAEH4B,QAAQ,gCACH5B,CAAM,CAAC4B,QADJ,MAEN8B,OAAO,CAAEpB,UAAU,CAACmB,CAAD,CAAQzD,CAAR,CAFb,CAGN2D,aAAa,CACM,CAAjB,CAAAd,CAAO,CAACtB,MAAR,EAAsBvB,CAAM,CAAC4B,QAAP,CAAgBd,KAAhB,GAA0B+B,CAAO,CAACtB,MAAR,CAAiB,CAJ7D,CAKN8B,MAAM,CAAEP,CAAoB,CAACjD,CAAD,CAApB,EAA+B,CALjC,EAFL,GAHkB,CAXP,CAwBZ+D,CAAiB,CAAGf,CAAO,CAAC1D,GAAR,CAAY,SAAC0E,CAAD,CAAMhE,CAAN,CAAgB,CACpD,MAAOiE,KAAI,CAACC,GAAL,CAASC,KAAT,CACL,IADK,CAELV,CAAgB,CACbJ,MADH,CAEI,SAAC5B,CAAD,QACEA,EAAG,CAACM,QAAJ,CAAad,KAAb,GAAuBjB,CADzB,CAFJ,EAKGV,GALH,CAKO,SAAC6B,CAAD,QAAUA,EAAI,CAACY,QAAL,CAAcyB,MAAxB,CALP,CAFK,CASR,CAVyB,CAxBR,CAmCZY,CAAU,CAAGX,CAAgB,CAChCJ,MADgB,CAEf,eAAerB,EAAf,GAAGD,QAAH,CAAeC,OAAf,OACE,CAACA,CADH,CAFe,EAKhBqC,IALgB,CAKX,SAACC,CAAD,CAAIC,CAAJ,CAAU,OACVD,EAAC,CAACvC,QAAF,CAAWH,kBAAX,GAAkC2C,CAAC,CAACxC,QAAF,CAAWH,kBADnC,CAMP0C,CAAC,CAACvC,QAAF,CAAWD,SAAX,CAAuByC,CAAC,CAACxC,QAAF,CAAWD,SAAlC,CAA8C,CAA9C,CAAkD,CAAC,CAN5C,CAELwC,CAAC,CAACvC,QAAF,CAAWH,kBAAX,CAAgC2C,CAAC,CAACxC,QAAF,CAAWH,kBAA3C,CACH,CADG,CAEH,CAAC,CAGR,CAZgB,CAnCD,CAiDZ4C,CAAiB,CAAGJ,CAAU,CAAC9E,GAAX,CACxB,SAACmF,CAAD,CAAkDzE,CAAlD,CAAoE,SAC5D0E,CAAY,CAAGX,CAAiB,CAAC9D,MAAlB,CACnB,SAACqE,CAAD,CAAYC,CAAZ,QAA0BD,EAAC,CAAGC,CAA9B,CADmB,CAEnB,CAFmB,CAD6C,OAMhE,CAACE,CAAM,CAAC1C,QAAP,CAAgBQ,OAAhB,EAA2B,CAA5B,IACC,WAAA6B,CAAU,CAACpE,CAAK,CAAG,CAAT,CAAV,uBAAuB+B,QAAvB,CAAgCQ,OAAhC,GAA2C,CAD5C,CANgE,CASzDmC,CAAY,EAAID,CAAM,CAAC1C,QAAP,CAAgByB,MAAhB,EAA0B,CAA9B,CAT6C,CAY3DkB,CAAY,YAAGN,CAAU,CAACpE,CAAK,CAAG,CAAT,CAAb,qBAAG,EAAuB+B,QAAvB,CAAgCyB,MAAnC,CAAZ,EAA0D,CAClE,CAduB,CAjDR,CAkElB,MAAO,CACLR,OAAO,CAAPA,CADK,CAELS,gBAAgB,CAAhBA,CAFK,CAGLW,UAAU,CAAVA,CAHK,CAILtB,cAAc,CAAdA,CAJK,CAKLiB,iBAAiB,CAAjBA,CALK,CAMLd,oBAAoB,CAApBA,CANK,CAOLuB,iBAAiB,CAAjBA,CAPK,CASR,CA7EM,CA2FP,MAAO,IAAMG,gBAAe,CAAG,SAC7BC,CAD6B,CAE7BC,CAF6B,CAG7BC,CAH6B,CAI1B,OAC+CnG,KAAK,CAACoG,QAAN,CAAuB,CAAvB,CAD/C,uBACIC,CADJ,MACuBC,CADvB,MAEGC,CAAa,CAAGvG,KAAK,CAACoE,MAAN,CAA6B,IAA7B,CAFnB,CAGGoC,CAAW,CAAGxG,KAAK,CAACoE,MAAN,CAA6B,IAA7B,CAHjB,CAIGqC,CAAmB,CAAGnB,IAAI,CAACoB,KAAL,CAAWT,CAAc,CAAG,CAA5B,CAJzB,CAMHjG,KAAK,CAAC2G,SAAN,CAAgB,UAAM,CACpB,GAAKR,CAAL,EACA,GAAIS,EAAQ,CAAG,CAAf,CACIV,CAAY,EAAI,gBAAkBA,EAFtC,CAGEU,CAAQ,CAAGV,CAAY,CAACW,YAH1B,CAIWX,CAAY,EAAI,eAAiBA,EAJ5C,GAKEU,CAAQ,CAAGV,CAAY,CAACY,WAL1B,EAOA,GAAMC,EAAgB,CAAG,UAAM,CAE3BP,CAAW,CAAC/B,OAAZ,EACAmC,CAAQ,CAAG,CAAX,CAAeJ,CAAW,CAAC/B,OAAZ,CAAoBG,qBAApB,GAA4CoC,GAHhC,CAK3BV,CAAoB,CAAC,SAACW,CAAD,QAAeA,EAAS,CAAGR,CAA3B,CAAD,CALO,CAO3BF,CAAa,CAAC9B,OAAd,EACA8B,CAAa,CAAC9B,OAAd,CAAsBG,qBAAtB,GAA8CoC,GAA9C,CAAoDJ,CAAQ,CAAG,CARpC,EAU3BN,CAAoB,CAAC,SAACW,CAAD,QACe,EAAlC,CAAAA,CAAS,CAAGR,CAAZ,CACI,CADJ,CAEIQ,CAAS,CAAGR,CAHG,CAAD,CAMvB,CAhBD,CAoBA,cAFAP,CAEA,WAFAA,CAEA,QAFAA,CAAY,CAAEgB,gBAAd,CAA+B,QAA/B,CAAyCH,CAAzC,CAEA,CAAO,yBAAMb,CAAN,WAAMA,CAAN,QAAMA,CAAY,CAAEiB,mBAAd,CAAkC,QAAlC,CAA4CJ,CAA5C,CAAN,CA3BP,CA4BD,CA7BD,CA6BG,CAACV,CAAD,CAAoBH,CAApB,CA7BH,CANG,CA6DH,MAAO,CACLkB,aAAa,CANO,QAAhBA,cAAgB,CAAqBC,CAArB,QACpB,CAAClB,CAAD,EAAYkB,CAAI,CAACtE,MAAL,CAAckD,CAA1B,CACIoB,CADJ,CAEIA,CAAI,CAAClG,KAAL,CAAWkF,CAAX,CAA8BA,CAAiB,CAAGJ,CAAlD,CAHgB,CAKf,CAELqB,cAAc,CA1BO,QAAjBA,eAAiB,CAACC,CAAD,CAAoBC,CAApB,CAAuC,OAE1DrB,EAAO,EACO,CAAd,GAAAoB,CADA,EAEAC,CAAM,GAAKf,CAFX,EAGoB,CAApB,CAAAJ,CAL0D,CAOnDE,CAPmD,CAU1DJ,CAAO,EACO,CAAd,GAAAoB,CADA,EAEAC,CAAM,GAAKvB,CAAc,CAAGQ,CAZ8B,CAcnDD,CAdmD,OAiB7D,CAOM,CAIR,CArEM,CAuEP,MAAO,IAAMiB,cAAa,CAAG,SAC3BJ,CAD2B,CAE3BK,CAF2B,CAG3BC,CAH2B,CAIL,QAChB/E,EAAK,CAAG,CAAC,CAAEyE,IAAI,CAAJA,CAAF,CAAQhG,KAAK,CAAE,CAAf,CAAD,CADQ,CAEhBuG,CAA0B,CAAG,EAFb,CAGfhF,CAAK,CAACG,MAHS,EAGD,IACbT,EAAK,CAAGM,CAAK,CAACG,MAAN,CAAe,CADV,CAEbC,CAAI,CAAGJ,CAAK,CAACN,CAAD,CAFC,CAGbE,CAAO,CAAGQ,CAAI,CAACqE,IAAL,CAAUrE,CAAI,CAAC3B,KAAf,CAHG,CAKnB,GAAImB,CAAJ,CAAU,IACFgB,EAA4B,gCAC7BhB,CAD6B,MAEhCqF,OAAO,CAAE,CAAEvF,KAAK,CAALA,CAAF,CAFuB,CAGhC+E,IAAI,CAAE7E,CAAI,CAAC6E,IAAL,qBAAiB7E,CAAI,CAAC6E,IAAtB,CAH0B,EAD1B,CAOFS,CAAY,CAChB,EAAQtE,CAAW,CAAC6D,IAApB,GACCM,CAAe,EAAID,CAAc,CAACK,QAAf,CAAwBvE,CAAW,CAACwE,EAApC,CADpB,CARM,CAWJF,CAXI,CAYNlF,CAAK,CAACa,IAAN,CAAW,CAAE4D,IAAI,CAAE7D,CAAW,CAAC6D,IAApB,CAAiChG,KAAK,CAAE,CAAxC,CAAX,CAZM,CAcN2B,CAAI,CAAC3B,KAAL,EAdM,CAiBRuG,CAAO,CAACnE,IAAR,CAAaD,CAAb,CACD,CAlBD,IAmBEZ,EAAK,CAACiB,GAAN,EAnBF,CAoBMjB,CAAK,CAACA,CAAK,CAACG,MAAN,CAAe,CAAhB,CApBX,EAqBIH,CAAK,CAACA,CAAK,CAACG,MAAN,CAAe,CAAhB,CAAL,CAAwB1B,KAAxB,EAGL,CACD,MAAOuG,EACR,CAtCM,CAwCP,MAAO,SAASK,eAAT,CAA8BC,CAA9B,CAA+CC,CAA/C,CAAiE,CAGtE,OAFMpF,EAAM,CAAGuC,IAAI,CAAC8C,GAAL,CAASF,CAAO,CAACnF,MAAjB,CAAyBoF,CAAQ,CAACpF,MAAlC,CAEf,CADMsF,CAAiB,CAAG,EAC1B,CAASC,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGvF,CAApB,CAA4BuF,CAAC,EAA7B,CAAiC,OAC/BD,CAAS,CAAC5E,IAAV,WAAe0E,CAAQ,CAACG,CAAD,CAAvB,gBAA8BJ,CAAO,CAACI,CAAD,CAArC,CACD,CACD,MAAOD,EACR,CAED,MAAO,SAASE,iBAAT,CACLrG,CADK,CAELsG,CAFK,CAGL,IACMC,EAAe,CAAG,EADxB,CAEIC,CAAO,CAAG,CAFd,CAGQ3F,CAHR,CAGmBb,CAHnB,CAGQa,MAHR,CAIM4F,CAAgB,CAAG,SAACC,CAAD,CAAexH,CAAf,CAAgC,OACnDA,EAAI,CAAGwH,CAAP,CAAc7F,CADqC,CACtBA,CAAM,CAAG3B,CAAT,CAAgBwH,CADM,CAEhDA,CACR,CAPD,CA0BA,MAlBA1G,EAAO,CAACK,OAAR,CAAgB,SAACf,CAAD,CAAY,IAClB6B,EADkB,CACN7B,CADM,CAClB6B,OADkB,CAEpBjC,CAAI,CAAkB,CAAf,CAAAqH,CAAK,CAAC1F,MAAN,CAAmB0F,CAAK,CAACnH,MAAN,CAAa,SAACqE,CAAD,CAAIC,CAAJ,QAAUD,EAAC,CAAGC,CAAd,CAAb,CAAnB,CAAmD,CAFtC,CAG1B,GAAuB,QAAnB,QAAOvC,EAAP,EAAkD,UAAnB,QAAOA,EAA1C,CAAkE,CAChE,GAAMuF,EAAI,CAAsB,QAAnB,QAAOvF,EAAP,CAA8BA,CAA9B,CAAwCA,CAAO,CAACmF,CAAD,CAA5D,CACgB,CAAZ,GAAAE,CAF4D,CAG9DD,CAAK,CAAChF,IAAN,CAAWkF,CAAgB,CAACC,CAAD,CAAOxH,CAAP,CAA3B,CAH8D,CAK9DqH,CAAK,CAAChF,IAAN,CAAWkF,CAAgB,CAACC,CAAI,CAAGF,CAAP,EAAkB,CAAnB,CAAsBtH,CAAtB,CAA3B,CAL8D,CAOhEsH,CAAO,CAAoB,CAAjB,CAAAE,CAAI,CAAGF,CAAP,CAAqBE,CAAI,CAAG,CAA5B,CAAgCF,CAAO,CAAGE,CACrD,CARD,IAQuB,EAAZ,GAAAF,CARX,CAYED,CAAK,CAAChF,IAAN,CAAWkF,CAAgB,CAAC,CAAD,CAAIvH,CAAJ,CAA3B,CAZF,EASEqH,CAAK,CAAChF,IAAN,CAAW,CAAX,CATF,CAUEiF,CAAO,EAVT,CAcD,CAjBD,CAkBA,CAAOD,CACR"}
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["React","isNotNil","isNumber","isString","Order","ASC","asc","DESC","desc","getColumnsSize","sizes","map","s","join","getColumnLeftOffset","columnIndex","resizedColumnWidths","initialColumnWidths","selectedColumns","slice","size","index","reduce","acc","column","createSortingState","by","order","sortFn","toLowerCase","getNewSorting","currentSorting","newField","getMaxLevel","columns","count","traverse","cols","level","forEach","item","getLastChildrenCount","transformColumns","maxLevel","stack","headersArr","col","length","node","topHeaderGridIndex","prevItem","gridIndex","position","colSpan","mainId","colId","handledItem","push","el","parentId","rowSpan","pop","getIsFirst","accessor","parent","find","useHeaderData","headerRowsRefs","useRef","headers","headerColumnsHeights","Object","values","current","filter","ref","getBoundingClientRect","height","flattenedHeaders","flat","hidden","array","isFirst","smallTextSize","headerRowsHeights","arr","Math","min","apply","lowHeaders","sort","a","b","resizerTopOffsets","header","headerHeight","useLazyLoadData","maxVisibleRows","scrollableEl","enabled","useState","visibleStartIndex","setVisibleStartIndex","cellsRefStart","cellsRefEnd","additionalRowsCount","floor","useEffect","elHeight","offsetHeight","outerHeight","onScrollListener","top","prevIndex","addEventListener","removeEventListener","getSlicedRows","rows","setBoundaryRef","columnIdx","rowIdx","transformRows","expandedRowIds","isTableExpanded","rowsArr","options","needGoDeeper","includes","id","getMergedArray","mainArr","mergeArr","max","resultArr","i","calulateColSpans","row","spans","counter","getAvailableSpan","span"],"sources":["../../../../../src/components/Table/helpers.ts"],"sourcesContent":["import React from 'react';\n\nimport { isNotNil, isNumber, isString } from '../../utils/type-guards';\nimport {\n ColumnWidth,\n SortingState,\n TableColumn,\n TableRow,\n TableTreeRow,\n} from './Table';\n\nexport const Order = {\n ASC: 'ASC',\n asc: 'asc',\n DESC: 'DESC',\n desc: 'desc',\n} as const;\n\nexport type OrderType = typeof Order[keyof typeof Order];\n\nexport type Position = {\n colSpan?: number;\n rowSpan?: number;\n level: number;\n gridIndex: number;\n isFirst?: boolean;\n topHeaderGridIndex: number;\n smallTextSize?: boolean;\n height?: number;\n};\n\nexport type Header<T extends TableRow> = TableColumn<T> & {\n position: Position;\n colId?: number;\n parentId?: number;\n};\n\nexport type HeaderData<T extends TableRow> = {\n headers: Array<Header<T>>[];\n flattenedHeaders: Array<Header<T>>;\n lowHeaders: Array<Header<T>>;\n headerRowsRefs: React.MutableRefObject<Record<number, HTMLDivElement | null>>;\n headerRowsHeights: Array<number>;\n headerColumnsHeights: Array<number>;\n resizerTopOffsets: Array<number>;\n};\n\nexport const getColumnsSize = (sizes: ColumnWidth[]): string => {\n return sizes.map((s) => (isNumber(s) ? `${s}px` : `auto`)).join(' ');\n};\n\nexport const getColumnLeftOffset = ({\n columnIndex,\n resizedColumnWidths,\n initialColumnWidths,\n}: {\n columnIndex: number;\n resizedColumnWidths: Array<number | undefined>;\n initialColumnWidths: number[];\n}): number => {\n const selectedColumns = initialColumnWidths\n .slice(0, columnIndex)\n .map((size, index) => resizedColumnWidths[index] || size);\n\n return selectedColumns.reduce((acc, column) => acc + column, 0);\n};\n\nexport const createSortingState = <T extends TableRow>(\n by: keyof T,\n order?: OrderType,\n sortFn?: (a: T[keyof T], b: T[keyof T]) => number,\n): SortingState<T> => {\n if (!isString(order)) {\n return null;\n }\n\n return { by, order: order.toLowerCase(), sortFn } as SortingState<T>;\n};\n\nexport const getNewSorting = <T extends TableRow>(\n currentSorting: SortingState<T>,\n newField: keyof T,\n sortFn?: (a: T[keyof T], b: T[keyof T]) => number,\n): SortingState<T> => {\n if (!currentSorting || currentSorting.by !== newField) {\n return {\n by: newField,\n order: 'asc',\n sortFn,\n };\n }\n\n if (currentSorting.order === 'asc') {\n return {\n by: newField,\n order: 'desc',\n sortFn,\n };\n }\n\n return null;\n};\n\nexport const getMaxLevel = <T extends TableRow>(\n columns: Array<TableColumn<T>>,\n) => {\n let count = 0;\n\n const traverse = (cols: Array<TableColumn<T>>, level = 1) => {\n if (level > count) count = level;\n cols.forEach((item: TableColumn<T>) => {\n if (item.columns) {\n traverse(item.columns, level + 1);\n }\n });\n };\n\n traverse(columns);\n\n return count;\n};\n\nconst getLastChildrenCount = <T extends TableRow>(\n columns: Array<TableColumn<T>>,\n) => {\n let count = 0;\n\n const traverse = (cols: Array<TableColumn<T>>) => {\n cols.forEach((item: TableColumn<T>) => {\n if (item.columns) {\n traverse(item.columns);\n } else {\n count++;\n }\n });\n };\n\n traverse(columns);\n\n return count;\n};\n\nexport const transformColumns = <T extends TableRow>(\n columns: Array<TableColumn<T>>,\n maxLevel: number,\n): Array<Header<T>>[] => {\n const stack = [{ columns, index: 0 }];\n const headersArr: Array<Header<T>>[] = [];\n let col = 0;\n\n while (stack.length) {\n const level = stack.length - 1;\n const node = stack[level];\n const item = node.columns[node.index] as Header<T>;\n\n if (item) {\n if (!headersArr[level]) headersArr[level] = [];\n const topHeaderGridIndex = stack[0].index;\n const prevItem = headersArr[level][headersArr[level].length - 1];\n const gridIndex = prevItem\n ? prevItem.position.gridIndex + (prevItem.position.colSpan || 1)\n : 0;\n const mainId = level === 0 ? col++ : item.colId ?? 0;\n\n const handledItem: TableColumn<T> & {\n position: Position;\n colId?: number;\n parentId?: number;\n } = {\n ...item,\n position: {\n topHeaderGridIndex,\n gridIndex,\n level,\n },\n };\n\n if (level === 0) {\n handledItem.colId = mainId;\n }\n\n if (!handledItem.columns) {\n handledItem.position.rowSpan = maxLevel - level;\n headersArr[level].push(handledItem);\n node.index++;\n } else {\n handledItem.position.colSpan = getLastChildrenCount(\n handledItem.columns,\n );\n headersArr[level].push(handledItem);\n stack.push({\n columns: handledItem.columns.map((el) => ({\n ...el,\n colId: col++,\n parentId: mainId,\n })),\n index: 0,\n });\n }\n } else {\n stack.pop();\n if (stack[stack.length - 1]) stack[stack.length - 1].index++;\n }\n }\n\n return headersArr;\n};\n\nconst getIsFirst = <T extends TableRow>(\n columns: Header<T>[],\n column: Header<T>,\n): boolean => {\n const { colId, parentId, position, accessor } = column;\n if (position.level === 0) {\n return colId === 0;\n }\n const parent = columns.find((el) => el.colId === parentId);\n return !!(\n parent?.columns?.[0]?.accessor === accessor &&\n (parent ? getIsFirst(columns, parent) : false)\n );\n};\n\n/**\n * Возвращает данные, необходимые для построения хидера таблицы\n *\n * @param columns - массив колонок\n *\n * @return {\n * {Array<Header<T>>[]} headers: двумерный массив заголовков, выстроенный по вертикали;\n * {Array<Header<T>>} flattenedHeaders: плоский массив заголовков;\n * {Array<Header<T>>} lowHeaders: самые нижние заголовки (по ним строятся колонки);\n * {Record<number, HTMLDivElement | null>} headerRowsRefs: содержит рефы на заголовки;\n * {Array<number>} headerRowsHeights: массив высот строк заголовков;\n * {Array<number>} headerColumnsHeights: массив высот колонок заголовков;\n * {Array<number>} resizerTopOffsets: массив отступов для компонентов Resizer;\n * }\n */\nexport const useHeaderData = <T extends TableRow>(\n columns: Array<TableColumn<T>>,\n): HeaderData<T> => {\n const headerRowsRefs = React.useRef<Record<number, HTMLDivElement | null>>(\n {},\n );\n const headers = transformColumns(columns, getMaxLevel(columns));\n const headerColumnsHeights: Array<number> = Object.values(\n headerRowsRefs.current,\n )\n .filter(isNotNil)\n .map((ref) => ref.getBoundingClientRect().height);\n\n const flattenedHeaders = headers\n .flat()\n .filter((column: TableColumn<T>) => !column.hidden)\n .map((column, index, array) => ({\n ...column,\n position: {\n ...column.position,\n isFirst: getIsFirst(array, column),\n smallTextSize:\n headers.length > 1 && column.position.level === headers.length - 1,\n height: headerColumnsHeights[index] || 0,\n },\n }));\n const headerRowsHeights = headers.map((arr, index) => {\n return Math.min.apply(\n null,\n flattenedHeaders\n .filter(\n (col: TableColumn<T> & { position: Position }) =>\n col.position.level === index,\n )\n .map((item) => item.position.height),\n );\n });\n const lowHeaders = flattenedHeaders\n .filter(\n ({ position: { colSpan } }: TableColumn<T> & { position: Position }) =>\n !colSpan,\n )\n .sort((a, b) => {\n if (a.position.topHeaderGridIndex !== b.position.topHeaderGridIndex) {\n return a.position.topHeaderGridIndex > b.position.topHeaderGridIndex\n ? 1\n : -1;\n }\n return a.position.gridIndex > b.position.gridIndex ? 1 : -1;\n });\n\n const resizerTopOffsets = lowHeaders.map(\n (header: TableColumn<T> & { position: Position }, index: number) => {\n const headerHeight = headerRowsHeights.reduce(\n (a: number, b: number) => a + b,\n 0,\n );\n if (\n (header.position.rowSpan || 0) >=\n (lowHeaders[index + 1]?.position.rowSpan || 0)\n ) {\n return headerHeight - (header.position.height || 0);\n }\n // eslint-disable-next-line no-unsafe-optional-chaining\n return headerHeight - lowHeaders[index + 1]?.position.height! || 0;\n },\n );\n\n return {\n headers,\n flattenedHeaders,\n lowHeaders,\n headerRowsRefs,\n headerRowsHeights,\n headerColumnsHeights,\n resizerTopOffsets,\n };\n};\n\n/**\n * Возвращает 2 функции, необходимые для отображения большого количества строк в таблице\n *\n * @param maxVisibleRows - максимальное количество отображаемых строк в один момент времени\n * @param scrollableEl - элемент, на который вешается scroll listener\n * @param enabled - флаг включения данной функциональность\n *\n * @return {\n * getSlicedRows: функция, обрезающая исходный массив данных\n * setBoundaryRef: функция, проставляющая рефы необходимым ячейкам для вычисления границ отображения строк\n * }\n */\nexport const useLazyLoadData = (\n maxVisibleRows: number,\n scrollableEl: HTMLDivElement | Window | null,\n enabled: boolean,\n) => {\n const [visibleStartIndex, setVisibleStartIndex] = React.useState<number>(0);\n const cellsRefStart = React.useRef<HTMLDivElement>(null);\n const cellsRefEnd = React.useRef<HTMLDivElement>(null);\n const additionalRowsCount = Math.floor(maxVisibleRows / 3);\n\n React.useEffect(() => {\n if (!enabled) return;\n let elHeight = 0;\n if (scrollableEl && 'offsetHeight' in scrollableEl) {\n elHeight = scrollableEl.offsetHeight;\n } else if (scrollableEl && 'outerHeight' in scrollableEl) {\n elHeight = scrollableEl.outerHeight;\n }\n const onScrollListener = () => {\n if (\n cellsRefEnd.current &&\n elHeight / 2 > cellsRefEnd.current.getBoundingClientRect().top\n ) {\n setVisibleStartIndex((prevIndex) => prevIndex + additionalRowsCount);\n } else if (\n cellsRefStart.current &&\n cellsRefStart.current.getBoundingClientRect().top > elHeight / 2\n ) {\n setVisibleStartIndex((prevIndex) =>\n prevIndex - additionalRowsCount < 0\n ? 0\n : prevIndex - additionalRowsCount,\n );\n }\n };\n\n scrollableEl?.addEventListener('scroll', onScrollListener);\n\n return () => scrollableEl?.removeEventListener('scroll', onScrollListener);\n }, [visibleStartIndex, scrollableEl]);\n\n const setBoundaryRef = (columnIdx: number, rowIdx: number) => {\n if (\n enabled &&\n columnIdx === 0 &&\n rowIdx === additionalRowsCount &&\n visibleStartIndex > 0\n ) {\n return cellsRefStart;\n }\n if (\n enabled &&\n columnIdx === 0 &&\n rowIdx === maxVisibleRows - additionalRowsCount\n ) {\n return cellsRefEnd;\n }\n return undefined;\n };\n\n const getSlicedRows = <T extends TableRow>(rows: T[]) =>\n !enabled || rows.length < maxVisibleRows\n ? rows\n : rows.slice(visibleStartIndex, visibleStartIndex + maxVisibleRows);\n\n return {\n getSlicedRows,\n setBoundaryRef,\n };\n};\n\nexport const transformRows = <T extends TableRow>(\n rows: T[],\n expandedRowIds: string[],\n isTableExpanded?: boolean,\n): TableTreeRow<T>[] => {\n const stack = [{ rows, index: 0 }];\n const rowsArr: TableTreeRow<T>[] = [];\n while (stack.length) {\n const level = stack.length - 1;\n const node = stack[level];\n const item: T = node.rows[node.index];\n\n if (item) {\n const handledItem: TableTreeRow<T> = {\n ...item,\n options: { level },\n rows: item.rows && [...item.rows],\n };\n\n const needGoDeeper =\n Boolean(handledItem.rows) &&\n (isTableExpanded || expandedRowIds.includes(handledItem.id));\n\n if (needGoDeeper) {\n stack.push({ rows: handledItem.rows as T[], index: 0 });\n } else {\n node.index++;\n }\n\n rowsArr.push(handledItem);\n } else {\n stack.pop();\n if (stack[stack.length - 1]) {\n stack[stack.length - 1].index++;\n }\n }\n }\n return rowsArr;\n};\n\nexport function getMergedArray<TYPE>(mainArr: TYPE[], mergeArr: TYPE[]) {\n const length = Math.max(mainArr.length, mergeArr.length);\n const resultArr: TYPE[] = [];\n for (let i = 0; i < length; i++) {\n resultArr.push(mergeArr[i] ?? mainArr[i]);\n }\n return resultArr;\n}\n\nexport function calulateColSpans<T extends TableRow>(\n columns: TableColumn<T>[],\n row: TableTreeRow<T>,\n) {\n const spans: number[] = [];\n let counter = 0;\n const { length } = columns;\n const getAvailableSpan = (span: number, size: number) => {\n if (size + span > length) return length - size - span;\n return span;\n };\n columns.forEach((column) => {\n const { colSpan } = column;\n const size = spans.length > 1 ? spans.reduce((a, b) => a + b) : 0;\n if (typeof colSpan === 'number' || typeof colSpan === 'function') {\n const span = typeof colSpan === 'number' ? colSpan : colSpan(row);\n if (counter === 0) {\n spans.push(getAvailableSpan(span, size));\n } else {\n spans.push(getAvailableSpan(span - counter || 0, size));\n }\n counter = span - counter > 0 ? span - 1 : counter - span;\n } else if (counter !== 0) {\n spans.push(0);\n counter--;\n } else {\n spans.push(getAvailableSpan(1, size));\n }\n });\n return spans;\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React from"react";import{TabsFitModeDropdownWrapper}from"./FitModeDropdownWrapper/TabsFitModeDropdownWrapper";import{TabsFitModeScrollWrapper}from"./FitModeScrollWrapper/TabsFitModeScrollWrapper";export var getTabsDirection=function(a){return"left"===a||"right"===a?"vertical":"horizontal"};export var getTabsWidth=function(a){return a.reduce(function(a,b){return a+b.size+b.gap},0)};export var getTabsWrapper=function(a,b){return"vertical"===a?OnlyListWrapper:"scroll"===b?TabsFitModeScrollWrapper:TabsFitModeDropdownWrapper};var defaultGetItemLabel=function(a){return a.label},defaultGetItemIcon=function(a){return a.icon},defaultGetItemLeftIcon=function(a){return a.leftIcon},defaultGetItemRightIcon=function(a){return a.rightIcon},defaultGetItemLeftSide=function(a){return a.leftSide},defaultGetItemRightSide=function(a){return a.rightSide},defaultGetItemDisable=function(a){return a.disabled},defaultGetItemAs=function(a){return a.as},defaultGetItemAttributes=function(a){return a.attributes},defaultGetItemRef=function(a){return a.ref};export var withDefaultGetters=function(a){return _objectSpread(_objectSpread({},a),{},{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemIcon:a.getItemIcon||defaultGetItemIcon,getItemLeftIcon:a.getItemLeftIcon||defaultGetItemLeftIcon,getItemRightIcon:a.getItemRightIcon||defaultGetItemRightIcon,getItemLeftSide:a.getItemLeftSide||defaultGetItemLeftSide,getItemRightSide:a.getItemRightSide||defaultGetItemRightSide,getItemDisabled:a.getItemDisabled||defaultGetItemDisable,getItemAs:a.getItemAs||defaultGetItemAs,getItemAttributes:a.getItemAttributes||defaultGetItemAttributes,getItemRef:a.getItemRef||defaultGetItemRef})};var OnlyListWrapper=function(a){var b=a.renderItemsList;return React.createElement(React.Fragment,null,b({}))};export var getVisibleTabsRange=function(a){for(var b,c,d=a.tabsDimensions,e=a.containerWidth,f=a.containerPaddingLeft,g=a.scrollLeft,h=null,i=null,j=g,k=0;k<d.length;k++){var l=getTabsWidth(d.slice(0,k)),m=f+l
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React from"react";import{TabsFitModeDropdownWrapper}from"./FitModeDropdownWrapper/TabsFitModeDropdownWrapper";import{TabsFitModeScrollWrapper}from"./FitModeScrollWrapper/TabsFitModeScrollWrapper";export var getTabsDirection=function(a){return"left"===a||"right"===a?"vertical":"horizontal"};export var getTabsWidth=function(a){return a.reduce(function(a,b){return a+b.size+b.gap},0)};export var getTabsWrapper=function(a,b){return"vertical"===a?OnlyListWrapper:"scroll"===b?TabsFitModeScrollWrapper:TabsFitModeDropdownWrapper};var defaultGetItemLabel=function(a){return a.label},defaultGetItemIcon=function(a){return a.icon},defaultGetItemLeftIcon=function(a){return a.leftIcon},defaultGetItemRightIcon=function(a){return a.rightIcon},defaultGetItemLeftSide=function(a){return a.leftSide},defaultGetItemRightSide=function(a){return a.rightSide},defaultGetItemDisable=function(a){return a.disabled},defaultGetItemAs=function(a){return a.as},defaultGetItemAttributes=function(a){return a.attributes},defaultGetItemRef=function(a){return a.ref};export var withDefaultGetters=function(a){return _objectSpread(_objectSpread({},a),{},{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemIcon:a.getItemIcon||defaultGetItemIcon,getItemLeftIcon:a.getItemLeftIcon||defaultGetItemLeftIcon,getItemRightIcon:a.getItemRightIcon||defaultGetItemRightIcon,getItemLeftSide:a.getItemLeftSide||defaultGetItemLeftSide,getItemRightSide:a.getItemRightSide||defaultGetItemRightSide,getItemDisabled:a.getItemDisabled||defaultGetItemDisable,getItemAs:a.getItemAs||defaultGetItemAs,getItemAttributes:a.getItemAttributes||defaultGetItemAttributes,getItemRef:a.getItemRef||defaultGetItemRef})};var OnlyListWrapper=function(a){var b=a.renderItemsList;return React.createElement(React.Fragment,null,b({}))};export var getVisibleTabsRange=function(a){for(var b,c,d=a.tabsDimensions,e=a.containerWidth,f=a.containerPaddingLeft,g=a.scrollLeft,h=null,i=null,j=g,k=0;k<d.length;k++){var l=getTabsWidth(d.slice(0,k)),m=f+l,n=m>=j;n&&null===h&&(h=k);var o=m+d[k].size,p=o<=j+e;p&&(i=k)}return h=null!==(b=h)&&void 0!==b?b:0,i=Math.max(h,null!==(c=i)&&void 0!==c?c:0),[h,i]};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["React","TabsFitModeDropdownWrapper","TabsFitModeScrollWrapper","getTabsDirection","linePosition","getTabsWidth","tabsDimensions","reduce","acc","td","size","gap","getTabsWrapper","tabsDirection","fitMode","OnlyListWrapper","defaultGetItemLabel","item","label","defaultGetItemIcon","icon","defaultGetItemLeftIcon","leftIcon","defaultGetItemRightIcon","rightIcon","defaultGetItemLeftSide","leftSide","defaultGetItemRightSide","rightSide","defaultGetItemDisable","disabled","defaultGetItemAs","as","defaultGetItemAttributes","attributes","defaultGetItemRef","ref","withDefaultGetters","props","getItemLabel","getItemIcon","getItemLeftIcon","getItemRightIcon","getItemLeftSide","getItemRightSide","getItemDisabled","getItemAs","getItemAttributes","getItemRef","renderItemsList","getVisibleTabsRange","containerWidth","containerPaddingLeft","scrollLeft","firstVisibleTabIdx","lastVisibleTabIdx","containerLeftSide","idx","length","previousTabsWidth","slice","tabElLeftSide","tabElRightSide","Math","max"],"sources":["../../../../../src/components/Tabs/helpers.tsx"],"sourcesContent":["import React from 'react';\n\nimport { TabsFitModeDropdownWrapper } from './FitModeDropdownWrapper/TabsFitModeDropdownWrapper';\nimport { TabsFitModeScrollWrapper } from './FitModeScrollWrapper/TabsFitModeScrollWrapper';\nimport {\n TabDimensions,\n TabsDirection,\n TabsFitModeWrapperProps,\n TabsItemDefault,\n TabsPropFitMode,\n TabsPropGetItemAs,\n TabsPropGetItemAttributes,\n TabsPropGetItemDisabled,\n TabsPropGetItemIcon,\n TabsPropGetItemLabel,\n TabsPropGetItemRef,\n TabsPropGetItemSide,\n TabsPropLinePosition,\n TabsProps,\n} from './types';\n\nexport const getTabsDirection = (\n linePosition: TabsPropLinePosition,\n): TabsDirection =>\n linePosition === 'left' || linePosition === 'right'\n ? 'vertical'\n : 'horizontal';\n\nexport const getTabsWidth = (tabsDimensions: TabDimensions[]): number =>\n tabsDimensions.reduce((acc, td) => acc + td.size + td.gap, 0);\n\nexport const getTabsWrapper = (\n tabsDirection: TabsDirection,\n fitMode: TabsPropFitMode,\n) => {\n if (tabsDirection === 'vertical') {\n return OnlyListWrapper;\n }\n\n return fitMode === 'scroll'\n ? TabsFitModeScrollWrapper\n : TabsFitModeDropdownWrapper;\n};\n\nconst defaultGetItemLabel: TabsPropGetItemLabel<TabsItemDefault> = (item) =>\n item.label;\nconst defaultGetItemIcon: TabsPropGetItemIcon<TabsItemDefault> = (item) =>\n item.icon;\nconst defaultGetItemLeftIcon: TabsPropGetItemIcon<TabsItemDefault> = (item) =>\n item.leftIcon;\nconst defaultGetItemRightIcon: TabsPropGetItemIcon<TabsItemDefault> = (item) =>\n item.rightIcon;\nconst defaultGetItemLeftSide: TabsPropGetItemSide<TabsItemDefault> = (item) =>\n item.leftSide;\nconst defaultGetItemRightSide: TabsPropGetItemSide<TabsItemDefault> = (item) =>\n item.rightSide;\nconst defaultGetItemDisable: TabsPropGetItemDisabled<TabsItemDefault> = (\n item,\n) => item.disabled;\nconst defaultGetItemAs: TabsPropGetItemAs<TabsItemDefault> = (item) => item.as;\nconst defaultGetItemAttributes: TabsPropGetItemAttributes<TabsItemDefault> = (\n item,\n) => item.attributes;\nconst defaultGetItemRef: TabsPropGetItemRef<TabsItemDefault> = (item) =>\n item.ref;\n\nexport const withDefaultGetters = (props: TabsProps) => {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemIcon: props.getItemIcon || defaultGetItemIcon,\n getItemLeftIcon: props.getItemLeftIcon || defaultGetItemLeftIcon,\n getItemRightIcon: props.getItemRightIcon || defaultGetItemRightIcon,\n getItemLeftSide: props.getItemLeftSide || defaultGetItemLeftSide,\n getItemRightSide: props.getItemRightSide || defaultGetItemRightSide,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisable,\n getItemAs: props.getItemAs || defaultGetItemAs,\n getItemAttributes: props.getItemAttributes || defaultGetItemAttributes,\n getItemRef: props.getItemRef || defaultGetItemRef,\n };\n};\n\nconst OnlyListWrapper = <ITEM,>({\n renderItemsList,\n}: TabsFitModeWrapperProps<ITEM>): React.ReactElement | null => (\n <>{renderItemsList({})}</>\n);\n\nexport const getVisibleTabsRange = ({\n tabsDimensions,\n containerWidth,\n containerPaddingLeft,\n scrollLeft,\n}: {\n tabsDimensions: TabDimensions[];\n containerWidth: number;\n containerPaddingLeft: number;\n scrollLeft: number;\n}): [number, number] => {\n let firstVisibleTabIdx = null;\n let lastVisibleTabIdx = null;\n\n const containerLeftSide = scrollLeft;\n const containerRightSide = containerLeftSide + containerWidth;\n\n for (let idx = 0; idx < tabsDimensions.length; idx++) {\n const previousTabsWidth = getTabsWidth(tabsDimensions.slice(0, idx));\n const tabElLeftSide = containerPaddingLeft + previousTabsWidth;\n const isTabLeftSideVisible = tabElLeftSide >= containerLeftSide;\n if (isTabLeftSideVisible && firstVisibleTabIdx === null) {\n firstVisibleTabIdx = idx;\n }\n\n const tabElRightSide = tabElLeftSide + tabsDimensions[idx].size;\n const isTabRightSideVisible = tabElRightSide <= containerRightSide;\n if (isTabRightSideVisible) {\n lastVisibleTabIdx = idx;\n }\n }\n\n firstVisibleTabIdx = firstVisibleTabIdx ?? 0;\n lastVisibleTabIdx = Math.max(firstVisibleTabIdx, lastVisibleTabIdx ?? 0);\n\n return [firstVisibleTabIdx, lastVisibleTabIdx];\n};\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["React","TabsFitModeDropdownWrapper","TabsFitModeScrollWrapper","getTabsDirection","linePosition","getTabsWidth","tabsDimensions","reduce","acc","td","size","gap","getTabsWrapper","tabsDirection","fitMode","OnlyListWrapper","defaultGetItemLabel","item","label","defaultGetItemIcon","icon","defaultGetItemLeftIcon","leftIcon","defaultGetItemRightIcon","rightIcon","defaultGetItemLeftSide","leftSide","defaultGetItemRightSide","rightSide","defaultGetItemDisable","disabled","defaultGetItemAs","as","defaultGetItemAttributes","attributes","defaultGetItemRef","ref","withDefaultGetters","props","getItemLabel","getItemIcon","getItemLeftIcon","getItemRightIcon","getItemLeftSide","getItemRightSide","getItemDisabled","getItemAs","getItemAttributes","getItemRef","renderItemsList","getVisibleTabsRange","containerWidth","containerPaddingLeft","scrollLeft","firstVisibleTabIdx","lastVisibleTabIdx","containerLeftSide","idx","length","previousTabsWidth","slice","tabElLeftSide","isTabLeftSideVisible","tabElRightSide","isTabRightSideVisible","Math","max"],"sources":["../../../../../src/components/Tabs/helpers.tsx"],"sourcesContent":["import React from 'react';\n\nimport { TabsFitModeDropdownWrapper } from './FitModeDropdownWrapper/TabsFitModeDropdownWrapper';\nimport { TabsFitModeScrollWrapper } from './FitModeScrollWrapper/TabsFitModeScrollWrapper';\nimport {\n TabDimensions,\n TabsDirection,\n TabsFitModeWrapperProps,\n TabsItemDefault,\n TabsPropFitMode,\n TabsPropGetItemAs,\n TabsPropGetItemAttributes,\n TabsPropGetItemDisabled,\n TabsPropGetItemIcon,\n TabsPropGetItemLabel,\n TabsPropGetItemRef,\n TabsPropGetItemSide,\n TabsPropLinePosition,\n TabsProps,\n} from './types';\n\nexport const getTabsDirection = (\n linePosition: TabsPropLinePosition,\n): TabsDirection =>\n linePosition === 'left' || linePosition === 'right'\n ? 'vertical'\n : 'horizontal';\n\nexport const getTabsWidth = (tabsDimensions: TabDimensions[]): number =>\n tabsDimensions.reduce((acc, td) => acc + td.size + td.gap, 0);\n\nexport const getTabsWrapper = (\n tabsDirection: TabsDirection,\n fitMode: TabsPropFitMode,\n) => {\n if (tabsDirection === 'vertical') {\n return OnlyListWrapper;\n }\n\n return fitMode === 'scroll'\n ? TabsFitModeScrollWrapper\n : TabsFitModeDropdownWrapper;\n};\n\nconst defaultGetItemLabel: TabsPropGetItemLabel<TabsItemDefault> = (item) =>\n item.label;\nconst defaultGetItemIcon: TabsPropGetItemIcon<TabsItemDefault> = (item) =>\n item.icon;\nconst defaultGetItemLeftIcon: TabsPropGetItemIcon<TabsItemDefault> = (item) =>\n item.leftIcon;\nconst defaultGetItemRightIcon: TabsPropGetItemIcon<TabsItemDefault> = (item) =>\n item.rightIcon;\nconst defaultGetItemLeftSide: TabsPropGetItemSide<TabsItemDefault> = (item) =>\n item.leftSide;\nconst defaultGetItemRightSide: TabsPropGetItemSide<TabsItemDefault> = (item) =>\n item.rightSide;\nconst defaultGetItemDisable: TabsPropGetItemDisabled<TabsItemDefault> = (\n item,\n) => item.disabled;\nconst defaultGetItemAs: TabsPropGetItemAs<TabsItemDefault> = (item) => item.as;\nconst defaultGetItemAttributes: TabsPropGetItemAttributes<TabsItemDefault> = (\n item,\n) => item.attributes;\nconst defaultGetItemRef: TabsPropGetItemRef<TabsItemDefault> = (item) =>\n item.ref;\n\nexport const withDefaultGetters = (props: TabsProps) => {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemIcon: props.getItemIcon || defaultGetItemIcon,\n getItemLeftIcon: props.getItemLeftIcon || defaultGetItemLeftIcon,\n getItemRightIcon: props.getItemRightIcon || defaultGetItemRightIcon,\n getItemLeftSide: props.getItemLeftSide || defaultGetItemLeftSide,\n getItemRightSide: props.getItemRightSide || defaultGetItemRightSide,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisable,\n getItemAs: props.getItemAs || defaultGetItemAs,\n getItemAttributes: props.getItemAttributes || defaultGetItemAttributes,\n getItemRef: props.getItemRef || defaultGetItemRef,\n };\n};\n\nconst OnlyListWrapper = <ITEM,>({\n renderItemsList,\n}: TabsFitModeWrapperProps<ITEM>): React.ReactElement | null => (\n <>{renderItemsList({})}</>\n);\n\nexport const getVisibleTabsRange = ({\n tabsDimensions,\n containerWidth,\n containerPaddingLeft,\n scrollLeft,\n}: {\n tabsDimensions: TabDimensions[];\n containerWidth: number;\n containerPaddingLeft: number;\n scrollLeft: number;\n}): [number, number] => {\n let firstVisibleTabIdx = null;\n let lastVisibleTabIdx = null;\n\n const containerLeftSide = scrollLeft;\n const containerRightSide = containerLeftSide + containerWidth;\n\n for (let idx = 0; idx < tabsDimensions.length; idx++) {\n const previousTabsWidth = getTabsWidth(tabsDimensions.slice(0, idx));\n const tabElLeftSide = containerPaddingLeft + previousTabsWidth;\n const isTabLeftSideVisible = tabElLeftSide >= containerLeftSide;\n if (isTabLeftSideVisible && firstVisibleTabIdx === null) {\n firstVisibleTabIdx = idx;\n }\n\n const tabElRightSide = tabElLeftSide + tabsDimensions[idx].size;\n const isTabRightSideVisible = tabElRightSide <= containerRightSide;\n if (isTabRightSideVisible) {\n lastVisibleTabIdx = idx;\n }\n }\n\n firstVisibleTabIdx = firstVisibleTabIdx ?? 0;\n lastVisibleTabIdx = Math.max(firstVisibleTabIdx, lastVisibleTabIdx ?? 0);\n\n return [firstVisibleTabIdx, lastVisibleTabIdx];\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getTabsWidth}from"../helpers";export var getVisibleTabsRange=function(a){for(var b,c,d=a.tabsDimensions,e=a.containerWidth,f=a.containerPaddingLeft,g=a.scrollLeft,h=null,i=null,j=g,k=0;k<d.length;k++){var l=getTabsWidth(d.slice(0,k)),m=f+l
|
|
1
|
+
import{getTabsWidth}from"../helpers";export var getVisibleTabsRange=function(a){for(var b,c,d=a.tabsDimensions,e=a.containerWidth,f=a.containerPaddingLeft,g=a.scrollLeft,h=null,i=null,j=g,k=0;k<d.length;k++){var l=getTabsWidth(d.slice(0,k)),m=f+l,n=m>=j;n&&null===h&&(h=k);var o=m+d[k].size,p=o<=j+e;p&&(i=k)}return h=null!==(b=h)&&void 0!==b?b:0,i=Math.max(h,null!==(c=i)&&void 0!==c?c:0),[h,i]};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["getTabsWidth","getVisibleTabsRange","tabsDimensions","containerWidth","containerPaddingLeft","scrollLeft","firstVisibleTabIdx","lastVisibleTabIdx","containerLeftSide","idx","length","previousTabsWidth","slice","tabElLeftSide","tabElRightSide","size","Math","max"],"sources":["../../../../../../src/components/TabsDeprecated/FitModeScrollWrapper/helpers.ts"],"sourcesContent":["import { getTabsWidth, TabDimensions } from '../helpers';\n\nexport const getVisibleTabsRange = ({\n tabsDimensions,\n containerWidth,\n containerPaddingLeft,\n scrollLeft,\n}: {\n tabsDimensions: TabDimensions[];\n containerWidth: number;\n containerPaddingLeft: number;\n scrollLeft: number;\n}): [number, number] => {\n let firstVisibleTabIdx = null;\n let lastVisibleTabIdx = null;\n\n const containerLeftSide = scrollLeft;\n const containerRightSide = containerLeftSide + containerWidth;\n\n for (let idx = 0; idx < tabsDimensions.length; idx++) {\n const previousTabsWidth = getTabsWidth(tabsDimensions.slice(0, idx));\n const tabElLeftSide = containerPaddingLeft + previousTabsWidth;\n const isTabLeftSideVisible = tabElLeftSide >= containerLeftSide;\n if (isTabLeftSideVisible && firstVisibleTabIdx === null) {\n firstVisibleTabIdx = idx;\n }\n\n const tabElRightSide = tabElLeftSide + tabsDimensions[idx].size;\n const isTabRightSideVisible = tabElRightSide <= containerRightSide;\n if (isTabRightSideVisible) {\n lastVisibleTabIdx = idx;\n }\n }\n\n firstVisibleTabIdx = firstVisibleTabIdx ?? 0;\n lastVisibleTabIdx = Math.max(firstVisibleTabIdx, lastVisibleTabIdx ?? 0);\n\n return [firstVisibleTabIdx, lastVisibleTabIdx];\n};\n"],"mappings":"AAAA,OAASA,YAAT,kBAEA,MAAO,IAAMC,oBAAmB,CAAG,WAUX,CAOtB,YAhBAC,CAgBA,GAhBAA,cAgBA,CAfAC,CAeA,GAfAA,cAeA,CAdAC,CAcA,GAdAA,oBAcA,CAbAC,CAaA,GAbAA,UAaA,CANIC,CAAkB,CAAG,IAMzB,CALIC,CAAiB,CAAG,IAKxB,CAHMC,CAAiB,CAAGH,CAG1B,CAASI,CAAG,CAAG,CAAf,CAAkBA,CAAG,CAAGP,CAAc,CAACQ,MAAvC,CAA+CD,CAAG,EAAlD,CAAsD,IAC9CE,EAAiB,CAAGX,YAAY,CAACE,CAAc,CAACU,KAAf,CAAqB,CAArB,CAAwBH,CAAxB,CAAD,CADc,CAE9CI,CAAa,CAAGT,CAAoB,CAAGO,CAFO,
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["getTabsWidth","getVisibleTabsRange","tabsDimensions","containerWidth","containerPaddingLeft","scrollLeft","firstVisibleTabIdx","lastVisibleTabIdx","containerLeftSide","idx","length","previousTabsWidth","slice","tabElLeftSide","isTabLeftSideVisible","tabElRightSide","size","isTabRightSideVisible","Math","max"],"sources":["../../../../../../src/components/TabsDeprecated/FitModeScrollWrapper/helpers.ts"],"sourcesContent":["import { getTabsWidth, TabDimensions } from '../helpers';\n\nexport const getVisibleTabsRange = ({\n tabsDimensions,\n containerWidth,\n containerPaddingLeft,\n scrollLeft,\n}: {\n tabsDimensions: TabDimensions[];\n containerWidth: number;\n containerPaddingLeft: number;\n scrollLeft: number;\n}): [number, number] => {\n let firstVisibleTabIdx = null;\n let lastVisibleTabIdx = null;\n\n const containerLeftSide = scrollLeft;\n const containerRightSide = containerLeftSide + containerWidth;\n\n for (let idx = 0; idx < tabsDimensions.length; idx++) {\n const previousTabsWidth = getTabsWidth(tabsDimensions.slice(0, idx));\n const tabElLeftSide = containerPaddingLeft + previousTabsWidth;\n const isTabLeftSideVisible = tabElLeftSide >= containerLeftSide;\n if (isTabLeftSideVisible && firstVisibleTabIdx === null) {\n firstVisibleTabIdx = idx;\n }\n\n const tabElRightSide = tabElLeftSide + tabsDimensions[idx].size;\n const isTabRightSideVisible = tabElRightSide <= containerRightSide;\n if (isTabRightSideVisible) {\n lastVisibleTabIdx = idx;\n }\n }\n\n firstVisibleTabIdx = firstVisibleTabIdx ?? 0;\n lastVisibleTabIdx = Math.max(firstVisibleTabIdx, lastVisibleTabIdx ?? 0);\n\n return [firstVisibleTabIdx, lastVisibleTabIdx];\n};\n"],"mappings":"AAAA,OAASA,YAAT,kBAEA,MAAO,IAAMC,oBAAmB,CAAG,WAUX,CAOtB,YAhBAC,CAgBA,GAhBAA,cAgBA,CAfAC,CAeA,GAfAA,cAeA,CAdAC,CAcA,GAdAA,oBAcA,CAbAC,CAaA,GAbAA,UAaA,CANIC,CAAkB,CAAG,IAMzB,CALIC,CAAiB,CAAG,IAKxB,CAHMC,CAAiB,CAAGH,CAG1B,CAASI,CAAG,CAAG,CAAf,CAAkBA,CAAG,CAAGP,CAAc,CAACQ,MAAvC,CAA+CD,CAAG,EAAlD,CAAsD,IAC9CE,EAAiB,CAAGX,YAAY,CAACE,CAAc,CAACU,KAAf,CAAqB,CAArB,CAAwBH,CAAxB,CAAD,CADc,CAE9CI,CAAa,CAAGT,CAAoB,CAAGO,CAFO,CAG9CG,CAAoB,CAAGD,CAAa,EAAIL,CAHM,CAIhDM,CAAoB,EAA2B,IAAvB,GAAAR,CAJwB,GAKlDA,CAAkB,CAAGG,CAL6B,KAQ9CM,EAAc,CAAGF,CAAa,CAAGX,CAAc,CAACO,CAAD,CAAd,CAAoBO,IARP,CAS9CC,CAAqB,CAAGF,CAAc,EAXnBP,CAAiB,CAAGL,CAEO,CAUhDc,CAVgD,GAWlDV,CAAiB,CAAGE,CAX8B,CAarD,CAKD,MAHAH,EAAkB,WAAGA,CAAH,gBAAyB,CAG3C,CAFAC,CAAiB,CAAGW,IAAI,CAACC,GAAL,CAASb,CAAT,WAA6BC,CAA7B,gBAAkD,CAAlD,CAEpB,CAAO,CAACD,CAAD,CAAqBC,CAArB,CACR,CApCM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.Theme_color_gpnDark{--color-bg-default:#22272b;--color-bg-secondary:#161a1d;--color-bg-brand:#0071b2;--color-bg-link:#0078d2;--color-bg-border:hsla(0,0%,100%,.2);--color-bg-stripe:rgba(246,251,253,.06);--color-bg-ghost:rgba(246,251,253,.1);--color-bg-tone:rgba(6,20,25,.85);--color-bg-soft:hsla(0,0%,100%,.9);--color-bg-system:#4d525b;--color-bg-normal:#0aa5ff;--color-bg-success:#22c38e;--color-bg-caution:#f2c94c;--color-bg-warning:#f38b00;--color-bg-alert:#fe4343;--color-bg-critical:#33000f;--color-typo-primary:#fafafa;--color-typo-secondary:hsla(0,0%,100%,.6);--color-typo-ghost:hsla(0,0%,100%,.3);--color-typo-brand:#0071b2;--color-typo-system:#636e83;--color-typo-normal:#009bf5;--color-typo-success:#0fae79;--color-typo-caution:#f8c735;--color-typo-warning:#e68200;--color-typo-alert:#f73b3b;--color-typo-critical:#61001d;--color-typo-link:#0f9fff;--color-typo-link-minor:#
|
|
1
|
+
.Theme_color_gpnDark{--color-bg-default:#22272b;--color-bg-secondary:#161a1d;--color-bg-brand:#0071b2;--color-bg-link:#0078d2;--color-bg-border:hsla(0,0%,100%,.2);--color-bg-stripe:rgba(246,251,253,.06);--color-bg-ghost:rgba(246,251,253,.1);--color-bg-tone:rgba(6,20,25,.85);--color-bg-soft:hsla(0,0%,100%,.9);--color-bg-system:#4d525b;--color-bg-normal:#0aa5ff;--color-bg-success:#22c38e;--color-bg-caution:#f2c94c;--color-bg-warning:#f38b00;--color-bg-alert:#fe4343;--color-bg-critical:#33000f;--color-typo-primary:#fafafa;--color-typo-secondary:hsla(0,0%,100%,.6);--color-typo-ghost:hsla(0,0%,100%,.3);--color-typo-brand:#0071b2;--color-typo-system:#636e83;--color-typo-normal:#009bf5;--color-typo-success:#0fae79;--color-typo-caution:#f8c735;--color-typo-warning:#e68200;--color-typo-alert:#f73b3b;--color-typo-critical:#61001d;--color-typo-link:#0f9fff;--color-typo-link-minor:#57bcff;--color-typo-link-hover:#6fa5c8;--color-scroll-bg:rgba(246,251,253,.06);--color-scroll-thumb:rgba(246,251,253,.24);--color-scroll-thumb-hover:rgba(246,251,253,.32);--color-control-bg-default:#22272b;--color-control-typo-default:hsla(0,0%,100%,.8);--color-control-typo-placeholder:hsla(0,0%,100%,.35);--color-control-bg-border-default:rgba(246,251,253,.28);--color-control-bg-border-default-hover:rgba(246,251,253,.52);--color-control-bg-border-focus:#0593ff;--color-control-bg-focus:rgba(0,120,210,.4);--color-control-bg-active:rgba(0,120,210,.7);--color-control-bg-primary:#0078d2;--color-control-bg-primary-hover:#0091ff;--color-control-typo-primary:#fff;--color-control-typo-primary-hover:#fff;--color-control-bg-secondary:rgba(34,39,43,0);--color-control-bg-border-secondary:#0078d2;--color-control-bg-border-secondary-hover:#0091ff;--color-control-typo-secondary:#0f9fff;--color-control-typo-secondary-hover:#57bcff;--color-control-bg-ghost:hsla(0,0%,98%,.16);--color-control-bg-ghost-hover:hsla(0,0%,98%,.23);--color-control-typo-ghost:hsla(0,0%,100%,.75);--color-control-typo-ghost-hover:hsla(0,0%,100%,.9);--color-control-bg-clear:hsla(0,0%,98%,0);--color-control-bg-clear-hover:hsla(0,0%,98%,.23);--color-control-typo-clear:hsla(0,0%,100%,.75);--color-control-typo-clear-hover:hsla(0,0%,100%,.9);--color-control-bg-disable:hsla(0,0%,98%,.16);--color-control-bg-border-disable:hsla(0,0%,98%,0);--color-control-typo-disable:hsla(0,0%,100%,.24);--color-shadow-group-1:rgba(0,0,0,.08);--color-shadow-group-2:rgba(0,0,0,.32);--color-shadow-layer-1:rgba(0,0,0,.08);--color-shadow-layer-2:rgba(0,0,0,.32);--color-shadow-modal-1:rgba(0,0,0,.08);--color-shadow-modal-2:rgba(0,0,0,.32)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.canary--Tooltip{--tooltip-bg-color:var(--color-bg-default);--popover-arrow-bg-color:var(--tooltip-bg-color)}.canary--Tooltip_status_alert{--tooltip-bg-color:var(--color-bg-alert)}.canary--Tooltip_status_warning{--tooltip-bg-color:var(--color-bg-warning)}.canary--Tooltip_status_success{--tooltip-bg-color:var(--color-bg-success)}.canary--Tooltip_status_normal{--tooltip-bg-color:var(--color-bg-normal)}.canary--Tooltip[class*=status] .Tooltip-Content{text-shadow:var(--shadow-group)}.canary--Tooltip-Background{background:var(--tooltip-bg-color);border-radius:var(--control-radius);bottom:0;box-shadow:var(--shadow-layer);left:0;position:absolute;right:0;top:0}.canary--Tooltip-Content{box-sizing:border-box;padding:var(--space-xs);position:relative;width:100%}.canary--Tooltip-Content_size_s{max-width:150px}.canary--Tooltip-Content_size_m{max-width:260px}.canary--Tooltip-Content_size_l{max-width:400px}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import './Tooltip.css';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { TooltipProps } from './types';
|
|
4
|
+
export declare const Tooltip: React.ForwardRefExoticComponent<Pick<TooltipProps, "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "size" | "status" | "key" | "direction" | "offset" | "position" | "possibleDirections" | "spareDirection" | "isInteractive" | "onClickOutside" | "onSetDirection" | "anchorRef" | "equalAnchorWidth" | "isOpen"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["isOpen","size","status","onSetDirection","offset","style","className","children"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Tooltip.css";import React,{forwardRef,useMemo,useState}from"react";import{Transition}from"react-transition-group";import{animateTimeout,cnMixPopoverAnimate}from"../../mixs/MixPopoverAnimate";import{cnMixPopoverArrow}from"../../mixs/MixPopoverArrow/MixPopoverArrow";import{cnCanary}from"../../utils/bem";import{Popover}from"../Popover";import{Text}from"../Text";import{generateDeps,generateThemeClassNames,ThemeContext,useTheme}from"../Theme";import{tooltipPropSizesDefault}from"./types";var cnTooltip=cnCanary("Tooltip"),ARROW_SIZE=6,ARROW_OFFSET=8;export var Tooltip=forwardRef(function(a,b){var c=a.isOpen,d=a.size,e=void 0===d?tooltipPropSizesDefault:d,f=a.status,g=a.onSetDirection,h=a.offset,i=void 0===h?0:h,j=a.style,k=a.className,l=a.children,m=_objectWithoutProperties(a,_excluded),n=useTheme(),o=n.theme,p=useState(),q=_slicedToArray(p,2),r=q[0],s=q[1],t=function(a){null===g||void 0===g?void 0:g(a),s(a)},u=useMemo(function(){var a=_objectSpread(_objectSpread({},o),{},{color:{primary:f?o.color.accent:o.color.invert,accent:o.color.accent,invert:o.color.primary}});return{theme:a,themeClassNames:generateThemeClassNames(a)}},[generateDeps(o),f]);return React.createElement(Transition,{in:c,unmountOnExit:!0,timeout:animateTimeout},function(a){var c;return React.createElement(ThemeContext.Provider,{value:u},React.createElement(Popover,Object.assign({},m,{arrowOffset:ARROW_OFFSET+ARROW_SIZE,offset:ARROW_SIZE+ARROW_OFFSET/2+i,onSetDirection:t,ref:b,className:cnTooltip({status:f},[k,cnMixPopoverAnimate({animate:a})]),style:_objectSpread((c={},_defineProperty(c,"--popover-arrow-size","".concat(ARROW_SIZE,"px")),_defineProperty(c,"--popover-arrow-offset","".concat(ARROW_OFFSET,"px")),c),j)}),React.createElement("div",{className:cnTooltip("Background")}),React.createElement("div",{className:cnTooltip("Arrow",[cnMixPopoverArrow({direction:r})])}),React.createElement("div",{className:cnTooltip("Content",{size:e})},"string"==typeof l||"number"==typeof l?React.createElement(Text,{size:"xs"},l):l)))})});
|
|
2
|
+
//# sourceMappingURL=TooltipCanary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TooltipCanary.js","names":["React","forwardRef","useMemo","useState","Transition","animateTimeout","cnMixPopoverAnimate","cnMixPopoverArrow","cnCanary","Popover","Text","generateDeps","generateThemeClassNames","ThemeContext","useTheme","tooltipPropSizesDefault","cnTooltip","ARROW_SIZE","ARROW_OFFSET","Tooltip","props","ref","isOpen","size","status","onSetDirectionProp","onSetDirection","offset","style","className","children","otherProps","theme","direction","setDirection","value","tooltipTheme","color","primary","accent","invert","themeClassNames","animate"],"sources":["../../../../../src/components/TooltipCanary/TooltipCanary.tsx"],"sourcesContent":["import './Tooltip.css';\n\nimport React, { forwardRef, useMemo, useState } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { animateTimeout, cnMixPopoverAnimate } from '##/mixs/MixPopoverAnimate';\nimport { cnMixPopoverArrow } from '##/mixs/MixPopoverArrow/MixPopoverArrow';\nimport { cnCanary } from '##/utils/bem';\n\nimport { Direction, Popover } from '../Popover';\nimport { Text } from '../Text';\nimport {\n generateDeps,\n generateThemeClassNames,\n ThemeContext,\n useTheme,\n} from '../Theme';\nimport { TooltipProps, tooltipPropSizesDefault } from './types';\n\nconst cnTooltip = cnCanary('Tooltip');\n\nconst ARROW_SIZE = 6;\nconst ARROW_OFFSET = 8;\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n (props, ref) => {\n const {\n isOpen,\n size = tooltipPropSizesDefault,\n status,\n onSetDirection: onSetDirectionProp,\n offset = 0,\n style,\n className,\n children,\n ...otherProps\n } = props;\n\n const { theme } = useTheme();\n\n const [direction, setDirection] = useState<Direction | undefined>();\n\n const onSetDirection = (direction: Direction) => {\n onSetDirectionProp?.(direction);\n setDirection(direction);\n };\n\n const value = useMemo(() => {\n const tooltipTheme = {\n ...theme,\n color: {\n primary: status ? theme.color.accent : theme.color.invert,\n accent: theme.color.accent,\n invert: theme.color.primary,\n },\n };\n return {\n theme: tooltipTheme,\n themeClassNames: generateThemeClassNames(tooltipTheme),\n };\n }, [generateDeps(theme), status]);\n\n return (\n <Transition in={isOpen} unmountOnExit timeout={animateTimeout}>\n {(animate) => (\n <ThemeContext.Provider value={value}>\n <Popover\n {...otherProps}\n arrowOffset={ARROW_OFFSET + ARROW_SIZE}\n offset={ARROW_SIZE + ARROW_OFFSET / 2 + offset}\n onSetDirection={onSetDirection}\n ref={ref}\n className={cnTooltip({ status }, [\n className,\n cnMixPopoverAnimate({ animate }),\n ])}\n style={{\n ['--popover-arrow-size' as string]: `${ARROW_SIZE}px`,\n ['--popover-arrow-offset' as string]: `${ARROW_OFFSET}px`,\n ...style,\n }}\n >\n <div className={cnTooltip('Background')} />\n <div\n className={cnTooltip('Arrow', [\n cnMixPopoverArrow({ direction }),\n ])}\n />\n <div className={cnTooltip('Content', { size })}>\n {typeof children === 'string' ||\n typeof children === 'number' ? (\n <Text size=\"xs\">{children}</Text>\n ) : (\n children\n )}\n </div>\n </Popover>\n </ThemeContext.Provider>\n )}\n </Transition>\n );\n },\n);\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/TooltipCanary/index.ts"],"sourcesContent":["export * from './TooltipCanary';\nexport * from './types';\n"],"mappings":"AAAA,6BACA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ClickOutsideHandler } from "../../hooks/useClickOutside/useClickOutside";
|
|
3
|
+
import { PropsWithJsxAttributes } from "../../utils/types/PropsWithJsxAttributes";
|
|
4
|
+
import { Direction, PositioningProps } from '../Popover/Popover';
|
|
5
|
+
export declare const tooltipPropSizes: readonly ["m", "s", "l"];
|
|
6
|
+
export declare type TooltipPropSize = typeof tooltipPropSizes[number];
|
|
7
|
+
export declare const tooltipPropSizesDefault: TooltipPropSize;
|
|
8
|
+
export declare const tooltipPropStatus: readonly ["normal", "alert", "success", "warning"];
|
|
9
|
+
export declare type TooltipPropStatus = typeof tooltipPropStatus[number];
|
|
10
|
+
export declare type TooltipProps = PropsWithJsxAttributes<{
|
|
11
|
+
isOpen?: boolean;
|
|
12
|
+
size?: TooltipPropSize;
|
|
13
|
+
status?: TooltipPropStatus;
|
|
14
|
+
direction?: Direction;
|
|
15
|
+
spareDirection?: Direction;
|
|
16
|
+
possibleDirections?: readonly Direction[];
|
|
17
|
+
isInteractive?: boolean;
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
onClickOutside?: ClickOutsideHandler;
|
|
20
|
+
className?: string;
|
|
21
|
+
offset?: number;
|
|
22
|
+
onSetDirection?: (direction: Direction) => void;
|
|
23
|
+
} & PositioningProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["tooltipPropSizes","tooltipPropSizesDefault","tooltipPropStatus"],"sources":["../../../../../src/components/TooltipCanary/types.ts"],"sourcesContent":["import { ClickOutsideHandler } from '##/hooks/useClickOutside/useClickOutside';\nimport { PropsWithJsxAttributes } from '##/utils/types/PropsWithJsxAttributes';\n\nimport { Direction, PositioningProps } from '../Popover/Popover';\n\nexport const tooltipPropSizes = ['m', 's', 'l'] as const;\nexport type TooltipPropSize = typeof tooltipPropSizes[number];\nexport const tooltipPropSizesDefault: TooltipPropSize = tooltipPropSizes[0];\n\nexport const tooltipPropStatus = [\n 'normal',\n 'alert',\n 'success',\n 'warning',\n] as const;\nexport type TooltipPropStatus = typeof tooltipPropStatus[number];\n\nexport type TooltipProps = PropsWithJsxAttributes<\n {\n isOpen?: boolean;\n size?: TooltipPropSize;\n status?: TooltipPropStatus;\n direction?: Direction;\n spareDirection?: Direction;\n possibleDirections?: readonly Direction[];\n isInteractive?: boolean;\n children: React.ReactNode;\n onClickOutside?: ClickOutsideHandler;\n className?: string;\n offset?: number;\n onSetDirection?: (direction: Direction) => void;\n } & PositioningProps\n>;\n"],"mappings":"AAKA,MAAO,IAAMA,iBAAgB,CAAG,CAAC,GAAD,CAAM,GAAN,CAAW,GAAX,CAAzB,CAEP,MAAO,IAAMC,wBAAwC,CAAGD,gBAAgB,CAAC,CAAD,CAAjE,CAEP,MAAO,IAAME,kBAAiB,CAAG,CAC/B,QAD+B,CAE/B,OAF+B,CAG/B,SAH+B,CAI/B,SAJ+B,CAA1B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm"];import"../SelectComponents/Select.css";import{
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClear}from"@consta/icons/IconClear";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{isNotNil}from"../../utils/type-guards";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{clearSizeMap}from"../Combobox";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{iconSizeMap,isMultipleParams,isNotMultipleParams,searchCompare,withDefaultGetters}from"./helpers";import{UserSelectItem}from"./UserSelectItem/UserSelectItem";import{UserSelectValue}from"./UserSelectValue/UserSelectValue";export var COMPONENT_NAME="UserSelect";var UserSelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.isLoading,r=g.required,s=g.dropdownRef,t=void 0===s?c:s,u=g.form,v=void 0===u?defaultPropForm:u,w=g.view,x=void 0===w?defaultPropView:w,y=g.size,z=void 0===y?defaultPropSize:y,A=g.dropdownClassName,B=g.searchValue,C=g.name,D=g.groups,E=void 0===D?[]:D,F=g.getItemKey,G=g.getItemLabel,H=g.getItemSubLabel,I=g.getItemAvatarUrl,J=g.getItemGroupKey,K=g.getItemDisabled,L=g.getGroupKey,M=g.getGroupLabel,N=g.renderItem,O=g.renderValue,P=g.onCreate,Q=g.inputRef,R=g.labelForNotFound,S=void 0===R?defaultlabelForNotFound:R,T=g.labelForCreate,U=void 0===T?defaultlabelForCreate:T,V=g.labelForEmptyItems,W=void 0===V?defaultLabelForEmptyItems:V,X=g.multiple,Y=void 0!==X&&X,Z=g.searchFunction,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=_objectWithoutProperties(g,_excluded),ca=useSelect({items:k,groups:E,value:m,onChange:l,dropdownRef:t,controlRef:f,disabled:n,getItemLabel:G,getItemKey:F,getGroupKey:L,getItemGroupKey:J,searchValue:B,getItemDisabled:K,multiple:Y,onBlur:i,onFocus:j,onCreate:P,searchFunction:Z||function searchFunctionDefault(a,b){var c=searchCompare(b,G(a));return c?c:searchCompare(b,H(a))}}),da=ca.getKeyProps,ea=ca.getOptionProps,fa=ca.isOpen,ga=ca.visibleItems,ha=ca.isFocused,ia=ca.handleInputFocus,ja=ca.handleInputBlur,ka=ca.handleToggleDropdown,la=ca.inputRef,ma=ca.handleInputClick,na=ca.handleInputChange,oa=ca.searchValue,pa=ca.clearValue,qa=ca.getHandleRemoveValue,ra=ca.notFound,sa=ca.hasItems,ta=p?"".concat(p,"-input"):p,ua=O||function renderValueDefault(a){var b=a.item,c=a.handleRemove;return React.createElement(UserSelectValue,{label:G(b),subLabel:H(b),avatarUrl:I(b),key:F(b),size:z,handleRemove:c,multiple:Y,disabled:n||K(b)})},va=useForkRef([la,Q]),wa=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return ua({item:a,handleRemove:qa(a)})}),isNotMultipleParams(a)&&isNotNil(a.value)&&ua({item:a.value}),(!isNotNil(m)||Array.isArray(m)&&0===m.length)&&!oa&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},da(),{type:"text",name:C,id:ta,onFocus:ia,onBlur:ja,"aria-label":o,onChange:na,ref:va,className:cnSelect("Input",{size:z,hide:!Y&&isNotNil(m),multiple:Y,isUserSelect:!0}),value:oa,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:ha,disabled:n,size:z,required:r,id:ta,view:x,type:"userselect",form:v,multiple:!0,ref:b,style:$},ba),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":fa,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:ma,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue",{isUserSelect:!0})},wa()):wa())),React.createElement("span",{className:cnSelect("Indicators")},isNotNil(m)&&React.createElement("button",{type:"button",onClick:pa,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClear,{size:clearSizeMap[z],className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ka},React.createElement(IconSelect,{size:iconSizeMap[z],className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},oa)),React.createElement(SelectDropdown,{isOpen:fa,size:z,controlRef:f,getOptionProps:ea,dropdownRef:t,form:aa,isLoading:q,className:A,renderItem:N||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(UserSelectItem,{label:G(b),subLabel:H(b),avatarUrl:I(b),active:c,hovered:d,size:z,indent:"round"===aa?"increased":"normal",onClick:e,onMouseEnter:f,disable:K(b),multiple:Y})},getGroupLabel:M,visibleItems:ga,labelForNotFound:S,labelForCreate:U,notFound:ra,hasItems:sa,labelForEmptyItems:W,style:"number"==typeof(null===$||void 0===$?void 0:$.zIndex)?{zIndex:$.zIndex+1}:void 0}))};export var UserSelect=forwardRef(UserSelectRender);export*from"./helpers";
|
|
2
2
|
//# sourceMappingURL=UserSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSelect.js","names":["IconClose","IconSelect","React","forwardRef","useRef","isNotNil","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValueProp","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","inputId","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelect/UserSelect.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n searchCompare,\n UserSelectComponent,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n searchValue: searchValueProp,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n searchValue: searchValueProp,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled || getItemDisabled(item)}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(value) || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n isUserSelect: true,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n required={required}\n id={inputId}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserSelect.js","names":["IconClear","IconSelect","React","forwardRef","useRef","isNotNil","useForkRef","useSelect","cnMixFocus","clearSizeMap","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","iconSizeMap","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValueProp","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","inputId","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelect/UserSelect.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { clearSizeMap } from '../Combobox';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n DefaultGroup,\n DefaultItem,\n iconSizeMap,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n searchCompare,\n UserSelectComponent,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n searchValue: searchValueProp,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n searchValue: searchValueProp,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled || getItemDisabled(item)}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(value) || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n isUserSelect: true,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n required={required}\n id={inputId}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClear\n size={clearSizeMap[size]}\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size={iconSizeMap[size]}\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|