@epam/uui 6.4.0 → 6.4.1
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/components/errors/config.d.ts.map +1 -1
- package/components/filters/FiltersPanelItem.d.ts.map +1 -1
- package/components/pickers/DataPickerBody.d.ts.map +1 -1
- package/components/pickers/PickerInput.d.ts.map +1 -1
- package/components/tables/ColumnHeaderDropdown/ColumnHeaderDropdown.d.ts.map +1 -1
- package/components/tables/DataTableHeaderCell.d.ts.map +1 -1
- package/components/tables/DataTableHeaderRow.d.ts.map +1 -1
- package/index.esm.js +113 -110
- package/index.esm.js.map +1 -1
- package/index.js +113 -110
- package/index.js.map +1 -1
- package/package.json +5 -5
- package/stats.html +1 -1
- package/styles.css +1027 -1042
- package/styles.css.map +1 -1
package/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["rollup://@epam/uui/./epam-assets/icons/navigation-close-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-chevron_down-outline.svg","rollup://@epam/uui/./epam-assets/icons/notification-done-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-minus-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-search-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-calendar-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-info-outline.svg","rollup://@epam/uui/./epam-assets/icons/notification-info-fill.svg","rollup://@epam/uui/./icons/pictures/empty-table.svg","rollup://@epam/uui/./epam-assets/icons/table-sort_asc-outline.svg","rollup://@epam/uui/./epam-assets/icons/table-sort_desc-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-drag_indicator-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-more_vert-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-refresh-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-lock-fill.svg","rollup://@epam/uui/./epam-assets/icons/table-group_column_left-fill.svg","rollup://@epam/uui/./epam-assets/icons/table-group_column_right-fill.svg","rollup://@epam/uui/./epam-assets/icons/table-swap-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-filtration-fill.svg","rollup://@epam/uui/./epam-assets/icons/navigation-chevron_up-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-collapse_all-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-expand_all-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-settings-fill.svg","rollup://@epam/uui/./epam-assets/icons/navigation-chevron_left-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-chevron_right-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-add-outline.svg","rollup://@epam/uui/./epam-assets/icons/notification-done-fill.svg","rollup://@epam/uui/./epam-assets/icons/radio_dot-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-help-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-check-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-warning-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-error-fill.svg","rollup://@epam/uui/./epam-assets/icons/action-delete-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-link-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-edit-fill.svg","rollup://@epam/uui/./epam-assets/icons/action-copy_content-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-edit_undo-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-save-outline.svg","rollup://@epam/uui/./epam-assets/icons/file-file_word-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_excel-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_pdf-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_image-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_video-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_table-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_text-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_eml-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file-fill.svg","rollup://@epam/uui/./icons/star-filled.svg","rollup://@epam/uui/./icons/pictures/search-with-background.svg","rollup://@epam/uui/./components/widgets/Spinner.tsx","rollup://@epam/uui/./components/typography/TextPlaceholder.tsx","rollup://@epam/uui/./components/typography/Text.tsx","rollup://@epam/uui/./components/layout/Blocker.tsx","rollup://@epam/uui/./settings.tsx","rollup://@epam/uui/./components/buttons/Button.tsx","rollup://@epam/uui/./components/buttons/IconButton.tsx","rollup://@epam/uui/./components/buttons/helper.ts","rollup://@epam/uui/./components/buttons/LinkButton.tsx","rollup://@epam/uui/./components/widgets/CountIndicator.tsx","rollup://@epam/uui/./components/buttons/TabButton.tsx","rollup://@epam/uui/./components/widgets/AvatarStack.tsx","rollup://@epam/uui/./components/widgets/Badge.tsx","rollup://@epam/uui/./components/widgets/Tag.tsx","rollup://@epam/uui/./components/widgets/Paginator.tsx","rollup://@epam/uui/./components/widgets/IndeterminateBar.tsx","rollup://@epam/uui/./components/widgets/ProgressBar.tsx","rollup://@epam/uui/./components/widgets/IndicatorBar.tsx","rollup://@epam/uui/./components/widgets/StatusIndicator.tsx","rollup://@epam/uui/./components/inputs/Checkbox.tsx","rollup://@epam/uui/./components/inputs/RadioInput.tsx","rollup://@epam/uui/./components/inputs/Switch.tsx","rollup://@epam/uui/./components/types.ts","rollup://@epam/uui/./components/inputs/TextInput.tsx","rollup://@epam/uui/./components/layout/ControlGroup.tsx","rollup://@epam/uui/./components/inputs/MultiSwitch.tsx","rollup://@epam/uui/./components/inputs/NumericInput.tsx","rollup://@epam/uui/./components/inputs/TextArea.tsx","rollup://@epam/uui/./helpers/dayJsHelper.ts","rollup://@epam/uui/./components/overlays/DropdownContainer.tsx","rollup://@epam/uui/./components/inputs/timePicker/TimePickerBody.tsx","rollup://@epam/uui/./components/inputs/timePicker/parseTimeHelper.ts","rollup://@epam/uui/./components/inputs/timePicker/TimePicker.tsx","rollup://@epam/uui/./components/inputs/InputAddon.tsx","rollup://@epam/uui/./components/inputs/Slider.tsx","rollup://@epam/uui/./components/overlays/Tooltip.tsx","rollup://@epam/uui/./components/inputs/Rating.tsx","rollup://@epam/uui/./components/widgets/DataRowAddons.tsx","rollup://@epam/uui/./components/buttons/VerticalTabButton.tsx","rollup://@epam/uui/./components/overlays/Alert.tsx","rollup://@epam/uui/./components/overlays/Dropdown.tsx","rollup://@epam/uui/./components/overlays/DropdownMenu.tsx","rollup://@epam/uui/./components/layout/Accordion.tsx","rollup://@epam/uui/./components/layout/FlexItems/FlexCell.tsx","rollup://@epam/uui/./components/layout/FlexItems/FlexRow.tsx","rollup://@epam/uui/./components/layout/FlexItems/Panel.tsx","rollup://@epam/uui/./components/layout/LabeledInput.tsx","rollup://@epam/uui/./components/layout/RadioGroup.tsx","rollup://@epam/uui/./components/layout/ScrollBars.tsx","rollup://@epam/uui/./components/layout/VirtualList.tsx","rollup://@epam/uui/./components/typography/RichTextView.tsx","rollup://@epam/uui/./components/layout/Tree.tsx","rollup://@epam/uui/./components/layout/CheckboxGroup.tsx","rollup://@epam/uui/./components/layout/Tabs.tsx","rollup://@epam/uui/./components/overlays/Modals.tsx","rollup://@epam/uui/./i18n.ts","rollup://@epam/uui/./components/overlays/NotificationCard.tsx","rollup://@epam/uui/./components/overlays/ConfirmationModal.tsx","rollup://@epam/uui/./components/overlays/Snackbar.tsx","rollup://@epam/uui/./components/datePickers/helpers.ts","rollup://@epam/uui/./components/datePickers/DatePickerHeader.tsx","rollup://@epam/uui/./components/datePickers/Calendar.tsx","rollup://@epam/uui/./components/datePickers/DatePickerBody.tsx","rollup://@epam/uui/./components/datePickers/DatePicker.tsx","rollup://@epam/uui/./components/datePickers/RangeDatePickerInput.tsx","rollup://@epam/uui/./components/datePickers/CalendarPresets.tsx","rollup://@epam/uui/./components/datePickers/RangeDatePickerBody.tsx","rollup://@epam/uui/./components/datePickers/RangeDatePicker.tsx","rollup://@epam/uui/./components/dnd/DropMarker.tsx","rollup://@epam/uui/./components/pickers/highlight.tsx","rollup://@epam/uui/./components/pickers/PickerItem.tsx","rollup://@epam/uui/./components/pickers/DataPickerRow.tsx","rollup://@epam/uui/./components/pickers/DataPickerBody.tsx","rollup://@epam/uui/./components/pickers/DataPickerFooter.tsx","rollup://@epam/uui/./components/pickers/DataPickerMobileHeader.tsx","rollup://@epam/uui/./components/pickers/PickerBodyMobileView.tsx","rollup://@epam/uui/./components/pickers/PickerModal.tsx","rollup://@epam/uui/./components/pickers/PickerTogglerTag.tsx","rollup://@epam/uui/./components/pickers/PickerToggler.tsx","rollup://@epam/uui/./components/pickers/PickerInput.tsx","rollup://@epam/uui/./components/pickers/PickerListRow.tsx","rollup://@epam/uui/./components/pickers/PickerList.tsx","rollup://@epam/uui/./components/tables/DataTableCell.tsx","rollup://@epam/uui/./components/tables/DataTableRow.tsx","rollup://@epam/uui/./components/tables/ColumnHeaderDropdown/SortingPanel.tsx","rollup://@epam/uui/./components/tables/ColumnHeaderDropdown/ColumnHeaderDropdown.tsx","rollup://@epam/uui/./components/tables/DataTableHeaderCell.tsx","rollup://@epam/uui/./components/tables/DataTableHeaderGroupCell.tsx","rollup://@epam/uui/./components/tables/DataTableHeaderRow.tsx","rollup://@epam/uui/./components/filters/helpers/predicateHelpers.ts","rollup://@epam/uui/./components/filters/FilterPredicatePanel.tsx","rollup://@epam/uui/./components/filters/constants.ts","rollup://@epam/uui/./components/filters/FilterColumnBody.tsx","rollup://@epam/uui/./helpers/useColumnsWithFilters.tsx","rollup://@epam/uui/./components/tables/columnsConfigurationModal/PinIconButton.tsx","rollup://@epam/uui/./components/tables/columnsConfigurationModal/ColumnRow.tsx","rollup://@epam/uui/./components/tables/columnsConfigurationModal/ColumnsConfigurationModal.tsx","rollup://@epam/uui/./components/tables/DataRowsContainer/utils.ts","rollup://@epam/uui/./components/tables/DataRowsContainer/DataRowsGroups.tsx","rollup://@epam/uui/./components/tables/DataRowsContainer/DataRowsContainer.tsx","rollup://@epam/uui/./components/tables/DataTable.tsx","rollup://@epam/uui/./components/filters/FilterPanelItemToggler.tsx","rollup://@epam/uui/./components/filters/defaultPredicates.ts","rollup://@epam/uui/./components/filters/FilterPickerBody.tsx","rollup://@epam/uui/./components/filters/FilterDatePickerBodyFooter.tsx","rollup://@epam/uui/./components/filters/FilterDatePickerBody.tsx","rollup://@epam/uui/./components/filters/FilterRangeDatePickerBodyFooter.tsx","rollup://@epam/uui/./components/filters/FilterRangeDatePickerBody.tsx","rollup://@epam/uui/./components/filters/FilterNumericBody.tsx","rollup://@epam/uui/./components/filters/FilterItemBody.tsx","rollup://@epam/uui/./components/filters/FiltersPanelItem.tsx","rollup://@epam/uui/./components/filters/FiltersPanel.tsx","rollup://@epam/uui/./components/filters/PresetPanel/PresetActionsDropdown.tsx","rollup://@epam/uui/./components/filters/PresetPanel/constants.ts","rollup://@epam/uui/./components/filters/PresetPanel/PresetInput.tsx","rollup://@epam/uui/./components/filters/PresetPanel/Preset.tsx","rollup://@epam/uui/./components/filters/PresetPanel/PresetsPanel.tsx","rollup://@epam/uui/./epam-assets/icons/navigation-open_side_menu-outline.svg","rollup://@epam/uui/./components/navigation/MainMenu/Burger/Burger.tsx","rollup://@epam/uui/./epam-assets/icons/navigation-arrow_down-outline.svg","rollup://@epam/uui/./components/navigation/MainMenu/Burger/BurgerButton.tsx","rollup://@epam/uui/./components/navigation/MainMenu/Burger/BurgerSearch.tsx","rollup://@epam/uui/./components/navigation/MainMenu/Burger/BurgerGroupHeader.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuButton.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuDropdown.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenu.tsx","rollup://@epam/uui/./epam-assets/icons/navigation-global_menu-outline-outline.svg","rollup://@epam/uui/./components/navigation/MainMenu/GlobalMenu.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuAvatar.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuSearch.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuIcon.tsx","rollup://@epam/uui/./components/navigation/Anchor.tsx","rollup://@epam/uui/./components/forms/Form.tsx","rollup://@epam/uui/./components/forms/useForm.tsx","rollup://@epam/uui/./epam-assets/icons/file-cloud_upload-fill.svg","rollup://@epam/uui/./components/fileUpload/DropSpot.tsx","rollup://@epam/uui/./components/fileUpload/SvgCircleProgress.tsx","rollup://@epam/uui/./components/fileUpload/FileCard.tsx","rollup://@epam/uui/./components/errors/config.ts","rollup://@epam/uui/./components/errors/ErrorPage.tsx","rollup://@epam/uui/./components/errors/ErrorHandler.tsx"],"sourcesContent":["<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6.4 19L5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6L6.4 19z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5.414 8.086L4 9.5l8 8 8-8-1.414-1.414L12 14.672 5.414 8.086z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M20.503 7.4l-1.778-1.78-9.175 9.176-4.275-4.275L3.496 12.3l6.054 6.053L20.503 7.4z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 10.5H5v3h14v-3z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M17.32 15.906L21.414 20 20 21.414l-4.094-4.094a8 8 0 111.414-1.414zM11 17a6 6 0 100-12 6 6 0 000 12z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 22a1.93 1.93 0 01-1.413-.587A1.928 1.928 0 013 20V6c0-.55.196-1.02.587-1.412A1.927 1.927 0 015 4h1V2h2v2h8V2h2v2h1c.55 0 1.021.196 1.413.588.391.391.587.862.587 1.412v14a1.93 1.93 0 01-.587 1.413A1.928 1.928 0 0119 22H5zm0-2h14V10H5v10z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\" clip-rule=\"evenodd\"/></svg>","<svg width=\"232\" height=\"180\" viewBox=\"0 0 232 180\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_18395_59719)\">\n<path d=\"M150.585 1.53517C49.4828 -11.4952 27.4814 61.8041 45.7256 97.4814C56.3063 118.171 6.08421 168.273 63.469 178.949C91.007 184.072 99.469 165.608 125.902 168.294C161.302 171.894 274.069 163.564 214.251 89.3793C182.538 50.0441 215.277 9.8731 150.585 1.53517Z\" fill=\"#F5F6FA\"/>\n<path d=\"M58.069 136.51L57.4152 140.748L56.1449 135.368C52.511 133.312 48.6687 131.647 44.6828 130.403L44.6001 136.039L42.0552 129.646C37.599 128.459 33.0114 127.836 28.4001 127.792L29.1035 133.97L25.7476 127.862C21.5969 128.045 17.4922 128.808 13.5532 130.13L15.8828 133.655C15.8828 133.655 13.7104 132.058 11.7987 130.759C7.88682 132.286 4.23309 134.406 0.965576 137.044C4.81029 140.948 9.02138 144.473 13.5407 147.571C16.0235 146.934 18.6676 146.292 18.6676 146.292L15.407 148.829C19.5741 151.589 24.0276 153.891 28.6897 155.694C31.0359 154.341 34.1063 152.425 34.1063 152.425L30.5518 156.356C35.5104 158.097 40.7505 158.897 46.0028 158.715L50.2607 154.502L48.5642 158.503C55.5656 157.655 62.7076 154.601 69.5145 148.159C67.8925 144.29 63.7463 140.086 58.069 136.51Z\" fill=\"#9BDEFF\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.557158 136.978C0.593748 136.752 0.806281 136.599 1.03186 136.636L69.5808 147.754C69.8064 147.791 69.9596 148.003 69.923 148.229C69.8864 148.455 69.6739 148.608 69.4483 148.571L0.899362 137.453C0.673779 137.416 0.520569 137.203 0.557158 136.978Z\" fill=\"white\"/>\n<path d=\"M174.887 125.586H86.7863C84.0346 125.586 81.407 123.352 81.407 120.6V27.5339C81.407 24.7822 84.0511 22.5684 86.7863 22.5684H174.887C177.639 22.5684 180.287 24.7987 180.287 27.5339V120.6C180.287 123.352 177.655 125.586 174.887 125.586Z\" fill=\"#9BDEFF\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M86.7863 22.9821C84.2352 22.9821 81.8208 25.0527 81.8208 27.5339V120.6C81.8208 123.084 84.2218 125.172 86.7863 125.172H174.887C177.469 125.172 179.873 123.083 179.873 120.6V27.5339C179.873 25.0696 177.455 22.9821 174.887 22.9821H86.7863ZM80.9932 27.5339C80.9932 24.5115 83.867 22.1545 86.7863 22.1545H174.887C177.822 22.1545 180.701 24.5278 180.701 27.5339V120.6C180.701 123.621 177.841 126 174.887 126H86.7863C83.8473 126 80.9932 123.619 80.9932 120.6V27.5339Z\" fill=\"#1D1E26\"/>\n<mask id=\"mask0_18395_59719\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"81\" y=\"22\" width=\"100\" height=\"104\">\n<path d=\"M174.887 125.586H86.7863C84.0346 125.586 81.407 123.352 81.407 120.6V27.5339C81.407 24.7822 84.0511 22.5684 86.7863 22.5684H174.887C177.639 22.5684 180.287 24.7987 180.287 27.5339V120.6C180.287 123.352 177.655 125.586 174.887 125.586Z\" fill=\"#9BDEFF\"/>\n</mask>\n<g mask=\"url(#mask0_18395_59719)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M69.8168 99.2466C69.9778 99.0844 70.2398 99.0834 70.402 99.2443L121.282 149.727C121.444 149.888 121.445 150.15 121.284 150.312C121.123 150.474 120.861 150.476 120.699 150.315L69.8191 99.8318C69.6569 99.6708 69.6559 99.4088 69.8168 99.2466Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M72.8017 28.407C73.0074 28.3073 73.2549 28.3932 73.3546 28.5988L136.955 159.771C137.054 159.977 136.968 160.224 136.763 160.324C136.557 160.424 136.31 160.338 136.21 160.132L72.6099 28.9599C72.5102 28.7543 72.5961 28.5067 72.8017 28.407Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M142.576 6.51548C142.759 6.65121 142.798 6.91029 142.663 7.09415L60.1854 118.818C60.0497 119.002 59.7906 119.041 59.6068 118.905C59.4229 118.77 59.3839 118.511 59.5196 118.327L141.997 6.60263C142.133 6.41877 142.392 6.37975 142.576 6.51548Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M197.977 60.314C198.158 60.4538 198.191 60.7136 198.052 60.8945L121.318 160.205C121.178 160.386 120.918 160.419 120.737 160.279C120.557 160.14 120.523 159.88 120.663 159.699L197.397 60.3885C197.537 60.2076 197.796 60.1743 197.977 60.314Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M192.316 43.4397C192.447 43.6273 192.401 43.8852 192.213 44.0157L60.0888 135.878C59.9011 136.008 59.6433 135.962 59.5128 135.774C59.3823 135.587 59.4287 135.329 59.6163 135.198L191.74 43.3362C191.928 43.2057 192.186 43.2521 192.316 43.4397Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M91.9658 11.5323C92.1213 11.3648 92.3831 11.3551 92.5506 11.5106L221.803 131.511C221.97 131.666 221.98 131.928 221.825 132.095C221.669 132.263 221.407 132.273 221.24 132.117L91.9875 12.1171C91.82 11.9616 91.8103 11.6998 91.9658 11.5323Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M75.2324 2.76882C75.4286 2.65174 75.6827 2.71593 75.7997 2.91219L169.354 159.74C169.471 159.936 169.407 160.19 169.211 160.307C169.015 160.424 168.761 160.36 168.643 160.164L75.089 3.33617C74.9719 3.13991 75.0361 2.8859 75.2324 2.76882Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M125.643 0.328922C125.816 0.179147 126.077 0.19766 126.227 0.37027L198.037 83.1289C198.187 83.3015 198.168 83.5628 197.995 83.7126C197.823 83.8624 197.561 83.8439 197.412 83.6713L125.602 0.912651C125.452 0.74004 125.471 0.478696 125.643 0.328922Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M67.271 75.3686C67.3646 75.1601 67.6094 75.067 67.8179 75.1605L224.563 145.505C224.771 145.599 224.864 145.844 224.771 146.052C224.677 146.261 224.432 146.354 224.224 146.26L67.4791 75.9156C67.2706 75.822 67.1774 75.5771 67.271 75.3686Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M159.279 8.9379C159.497 9.00902 159.615 9.24273 159.544 9.45992L101.278 187.391C101.206 187.608 100.973 187.727 100.756 187.655C100.538 187.584 100.42 187.351 100.491 187.133L158.757 9.20237C158.828 8.98518 159.062 8.86678 159.279 8.9379Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M86.7863 22.9821C84.2352 22.9821 81.8208 25.0527 81.8208 27.5339V120.6C81.8208 123.084 84.2218 125.172 86.7863 125.172H174.887C177.469 125.172 179.873 123.083 179.873 120.6V27.5339C179.873 25.0696 177.455 22.9821 174.887 22.9821H86.7863ZM80.9932 27.5339C80.9932 24.5115 83.867 22.1545 86.7863 22.1545H174.887C177.822 22.1545 180.701 24.5278 180.701 27.5339V120.6C180.701 123.621 177.841 126 174.887 126H86.7863C83.8473 126 80.9932 123.619 80.9932 120.6V27.5339Z\" fill=\"#1D1E26\"/>\n</g>\n<path d=\"M180.287 30.8276H81.3904V27.1035C81.3904 25.7866 81.9135 24.5236 82.8447 23.5923C83.776 22.6611 85.039 22.138 86.3559 22.138H175.301C175.955 22.1353 176.602 22.2617 177.207 22.51C177.812 22.7583 178.362 23.1237 178.825 23.585C179.289 24.0464 179.656 24.5947 179.907 25.1985C180.158 25.8023 180.287 26.4497 180.287 27.1035V30.8276Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M177.05 22.8928C176.496 22.6651 175.902 22.5492 175.302 22.5517L175.301 22.5518H86.3559C85.1487 22.5518 83.9909 23.0313 83.1373 23.8849C82.2837 24.7385 81.8041 25.8963 81.8041 27.1035V30.4138H179.873V27.1035C179.873 26.5041 179.755 25.9107 179.525 25.3572C179.295 24.8037 178.958 24.3011 178.533 23.8782C178.109 23.4553 177.605 23.1204 177.05 22.8928ZM175.3 21.7242C176.008 21.7213 176.709 21.8583 177.364 22.1272C178.02 22.3962 178.615 22.792 179.117 23.2918C179.619 23.7916 180.017 24.3856 180.289 25.0397C180.561 25.6938 180.701 26.3952 180.701 27.1035V30.8276C180.701 31.0561 180.515 31.2414 180.287 31.2414H81.3904C81.1618 31.2414 80.9766 31.0561 80.9766 30.8276V27.1035C80.9766 25.6768 81.5433 24.3085 82.5521 23.2997C83.5609 22.2909 84.9292 21.7242 86.3559 21.7242H175.3Z\" fill=\"#1D1E26\"/>\n<path d=\"M87.3242 28.2166C88.3183 28.2166 89.1242 27.4107 89.1242 26.4166C89.1242 25.4225 88.3183 24.6166 87.3242 24.6166C86.3301 24.6166 85.5242 25.4225 85.5242 26.4166C85.5242 27.4107 86.3301 28.2166 87.3242 28.2166Z\" fill=\"#1D1E26\"/>\n<path d=\"M93.5974 28.2166C94.5915 28.2166 95.3974 27.4107 95.3974 26.4166C95.3974 25.4225 94.5915 24.6166 93.5974 24.6166C92.6033 24.6166 91.7974 25.4225 91.7974 26.4166C91.7974 27.4107 92.6033 28.2166 93.5974 28.2166Z\" fill=\"#1D1E26\"/>\n<path d=\"M99.8664 28.2166C100.861 28.2166 101.666 27.4107 101.666 26.4166C101.666 25.4225 100.861 24.6166 99.8664 24.6166C98.8723 24.6166 98.0664 25.4225 98.0664 26.4166C98.0664 27.4107 98.8723 28.2166 99.8664 28.2166Z\" fill=\"#1D1E26\"/>\n<path d=\"M151.71 47.8055H63.6139C60.8601 47.8055 58.6277 50.0379 58.6277 52.7918V145.854C58.6277 148.608 60.8601 150.84 63.6139 150.84H151.71C154.464 150.84 156.697 148.608 156.697 145.854V52.7918C156.697 50.0379 154.464 47.8055 151.71 47.8055Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M63.6139 48.2193C61.0886 48.2193 59.0415 50.2664 59.0415 52.7917V145.854C59.0415 148.379 61.0886 150.426 63.6139 150.426H151.71C154.236 150.426 156.283 148.379 156.283 145.854V52.7917C156.283 50.2665 154.236 48.2193 151.71 48.2193H63.6139ZM58.2139 52.7917C58.2139 49.8094 60.6315 47.3917 63.6139 47.3917H151.71C154.693 47.3917 157.11 49.8094 157.11 52.7917V145.854C157.11 148.836 154.693 151.254 151.71 151.254H63.6139C60.6315 151.254 58.2139 148.836 58.2139 145.854V52.7917Z\" fill=\"#1D1E26\"/>\n<path d=\"M157.11 56.0814H58.2139V52.3572C58.2193 51.0384 58.7471 49.7755 59.6816 48.8448C60.6161 47.9142 61.8812 47.3917 63.2001 47.3917H152.124C153.443 47.3928 154.707 47.9156 155.641 48.846C156.576 49.7764 157.104 51.0387 157.11 52.3572V56.0814Z\" fill=\"#008ACE\"/>\n<path d=\"M64.5656 53.4745C65.5597 53.4745 66.3656 52.6686 66.3656 51.6745C66.3656 50.6804 65.5597 49.8745 64.5656 49.8745C63.5715 49.8745 62.7656 50.6804 62.7656 51.6745C62.7656 52.6686 63.5715 53.4745 64.5656 53.4745Z\" fill=\"#1D1E26\"/>\n<path d=\"M70.8347 53.4745C71.8288 53.4745 72.6347 52.6686 72.6347 51.6745C72.6347 50.6804 71.8288 49.8745 70.8347 49.8745C69.8406 49.8745 69.0347 50.6804 69.0347 51.6745C69.0347 52.6686 69.8406 53.4745 70.8347 53.4745Z\" fill=\"#1D1E26\"/>\n<path d=\"M77.1035 53.4745C78.0976 53.4745 78.9035 52.6686 78.9035 51.6745C78.9035 50.6804 78.0976 49.8745 77.1035 49.8745C76.1094 49.8745 75.3035 50.6804 75.3035 51.6745C75.3035 52.6686 76.1094 53.4745 77.1035 53.4745Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M48.9677 36.0668C49.1342 35.9103 49.396 35.9183 49.5526 36.0848L56.5581 43.533C56.7147 43.6995 56.7067 43.9614 56.5402 44.118C56.3737 44.2745 56.1119 44.2665 55.9553 44.1L48.9498 36.6518C48.7932 36.4853 48.8012 36.2234 48.9677 36.0668Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M46.9893 44.0467C47.0907 43.8419 47.3389 43.7581 47.5438 43.8595L53.8127 46.9629C54.0175 47.0643 54.1014 47.3125 54 47.5173C53.8986 47.7221 53.6504 47.806 53.4456 47.7046L47.1766 44.6011C46.9718 44.4997 46.8879 44.2515 46.9893 44.0467Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M183.97 9.36573C184.179 9.45733 184.275 9.70132 184.183 9.91069L181.287 16.5314C181.195 16.7407 180.951 16.8362 180.742 16.7446C180.532 16.653 180.437 16.409 180.528 16.1997L183.425 9.57897C183.517 9.3696 183.761 9.27413 183.97 9.36573Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M192.373 9.86607C192.534 10.0277 192.534 10.2897 192.373 10.4513L184.097 18.7271C183.935 18.8887 183.673 18.8887 183.512 18.7271C183.35 18.5655 183.35 18.3035 183.512 18.1419L191.787 9.86607C191.949 9.70447 192.211 9.70447 192.373 9.86607Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M192.464 19.1084C192.549 19.3206 192.446 19.5614 192.234 19.6462L186.027 22.129C185.815 22.2139 185.574 22.1107 185.489 21.8985C185.404 21.6863 185.507 21.4455 185.719 21.3606L191.926 18.8779C192.139 18.793 192.379 18.8962 192.464 19.1084Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M182.977 54.8483C183.205 54.8483 183.39 55.0335 183.39 55.2621V113.607C183.39 113.835 183.205 114.021 182.977 114.021C182.748 114.021 182.563 113.835 182.563 113.607V55.2621C182.563 55.0335 182.748 54.8483 182.977 54.8483Z\" fill=\"#1D1E26\"/>\n<path d=\"M133.371 157.945C156.567 157.945 175.371 139.141 175.371 115.945C175.371 92.7489 156.567 73.9448 133.371 73.9448C110.175 73.9448 91.3711 92.7489 91.3711 115.945C91.3711 139.141 110.175 157.945 133.371 157.945Z\" fill=\"#008ACE\"/>\n<path d=\"M133.371 149.669C151.996 149.669 167.095 134.57 167.095 115.945C167.095 97.3195 151.996 82.2207 133.371 82.2207C114.746 82.2207 99.647 97.3195 99.647 115.945C99.647 134.57 114.746 149.669 133.371 149.669Z\" fill=\"white\"/>\n<path d=\"M117.312 113.565C119.414 113.565 121.119 111.861 121.119 109.759C121.119 107.656 119.414 105.952 117.312 105.952C115.209 105.952 113.505 107.656 113.505 109.759C113.505 111.861 115.209 113.565 117.312 113.565Z\" fill=\"#1D1E26\"/>\n<path d=\"M149.435 113.565C151.537 113.565 153.241 111.861 153.241 109.759C153.241 107.656 151.537 105.952 149.435 105.952C147.332 105.952 145.628 107.656 145.628 109.759C145.628 111.861 147.332 113.565 149.435 113.565Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M133.38 123.952C128.788 123.952 124.855 126.211 122.912 129.375C122.673 129.765 122.164 129.886 121.774 129.647C121.385 129.408 121.263 128.899 121.502 128.509C123.772 124.812 128.264 122.297 133.38 122.297C138.488 122.297 143.026 124.782 145.262 128.517C145.497 128.909 145.369 129.417 144.977 129.652C144.585 129.887 144.077 129.759 143.842 129.367C141.94 126.191 137.979 123.952 133.38 123.952Z\" fill=\"#1D1E26\"/>\n<path d=\"M170.965 137.356L163.143 147.133L164.811 148.467L172.633 138.69L170.965 137.356Z\" fill=\"#1D1E26\"/>\n<path d=\"M200.774 163.345C201.353 165.488 197.443 170.197 195.221 170.284C188.186 170.561 166.491 146.371 166.491 146.371L170.931 140.818C170.931 140.818 199.053 156.96 200.774 163.345Z\" fill=\"#9BDEFF\"/>\n<path d=\"M204.424 178.378C207.861 178.378 210.647 175.592 210.647 172.154C210.647 168.717 207.861 165.931 204.424 165.931C200.987 165.931 198.2 168.717 198.2 172.154C198.2 175.592 200.987 178.378 204.424 178.378Z\" fill=\"#9BDEFF\"/>\n<path d=\"M199.586 168.269C200.428 167.216 201.59 166.468 202.897 166.138L200.774 164.441C200.31 166.51 197.815 169.436 195.937 170.131L198.233 171.968C198.268 170.621 198.743 169.321 199.586 168.269Z\" fill=\"#1D1E26\"/>\n<path d=\"M72.3572 138.314L68.8566 141.269L71.5793 135.952C70.0281 131.588 68.0314 127.397 65.6207 123.443L61.6069 127.957L63.9862 120.881C61.1562 116.625 57.8216 112.726 54.0552 109.27L50.331 114.819L51.8703 107.371C48.3402 104.459 44.428 102.043 40.2428 100.192L39.6759 104.797C39.6759 104.797 39.0014 101.901 38.3434 99.4179C34.0793 97.7763 29.5883 96.7994 25.0276 96.5214C25.4616 102.553 26.4604 108.531 28.011 114.377C30.4938 115.688 33.1297 117.128 33.1297 117.128L28.669 116.781C30.1583 122.107 32.1997 127.263 34.76 132.166C37.6566 132.803 41.5048 133.519 41.5048 133.519L35.8276 134.069C38.6993 139.034 42.32 143.669 46.8966 147.418L53.3476 147.149L49.1559 149.139C55.5117 153.629 63.5269 156.439 73.6359 156.244C75.0345 151.912 74.5379 145.428 72.3572 138.314Z\" fill=\"#008ACE\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M24.7292 96.184C24.9064 96.0397 25.1671 96.0664 25.3114 96.2436L73.9569 155.995C74.1012 156.173 74.0745 156.433 73.8972 156.577C73.72 156.722 73.4594 156.695 73.3151 156.518L24.6696 96.7661C24.5253 96.5889 24.552 96.3283 24.7292 96.184Z\" fill=\"white\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_18395_59719\">\n<rect width=\"230.897\" height=\"180\" fill=\"white\" transform=\"translate(0.551758)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M11 21V6.825L9.4 8.4 8 7l4-4 4 4-1.4 1.4L13 6.825V21h-2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13 3v14.175l1.6-1.575L16 17l-4 4-4-4 1.4-1.4 1.6 1.575V3h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9 20c-.55 0-1.02-.196-1.412-.587A1.927 1.927 0 017 18c0-.55.196-1.021.588-1.413A1.925 1.925 0 019 16c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413s-.196 1.021-.587 1.413A1.928 1.928 0 019 20zm6 0c-.55 0-1.02-.196-1.412-.587A1.927 1.927 0 0113 18c0-.55.196-1.021.588-1.413A1.925 1.925 0 0115 16c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413s-.196 1.021-.587 1.413A1.928 1.928 0 0115 20zm-6-6c-.55 0-1.02-.196-1.412-.588A1.923 1.923 0 017 12c0-.55.196-1.021.588-1.413A1.925 1.925 0 019 10c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413s-.196 1.02-.587 1.412A1.927 1.927 0 019 14zm6 0c-.55 0-1.02-.196-1.412-.588A1.923 1.923 0 0113 12c0-.55.196-1.021.588-1.413A1.925 1.925 0 0115 10c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413s-.196 1.02-.587 1.412A1.927 1.927 0 0115 14zM9 8c-.55 0-1.02-.196-1.412-.588A1.923 1.923 0 017 6c0-.55.196-1.02.588-1.412A1.923 1.923 0 019 4c.55 0 1.021.196 1.413.588.391.391.587.862.587 1.412 0 .55-.196 1.02-.587 1.412A1.927 1.927 0 019 8zm6 0c-.55 0-1.02-.196-1.412-.588A1.923 1.923 0 0113 6c0-.55.196-1.02.588-1.412A1.923 1.923 0 0115 4c.55 0 1.021.196 1.413.588.391.391.587.862.587 1.412 0 .55-.196 1.02-.587 1.412A1.927 1.927 0 0115 8z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M12 20c-2.233 0-4.125-.775-5.675-2.325C4.775 16.125 4 14.233 4 12c0-2.233.775-4.125 2.325-5.675C7.875 4.775 9.767 4 12 4c1.15 0 2.25.238 3.3.713A7.617 7.617 0 0118 6.75V4h2v7h-7V9h4.2a5.837 5.837 0 00-2.187-2.2A5.93 5.93 0 0012 6c-1.667 0-3.083.583-4.25 1.75C6.583 8.917 6 10.333 6 12c0 1.667.583 3.083 1.75 4.25C8.917 17.417 10.333 18 12 18a5.863 5.863 0 003.475-1.1A5.81 5.81 0 0017.65 14h2.1c-.467 1.767-1.417 3.208-2.85 4.325S13.833 20 12 20z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M12 18a2 2 0 100-4 2 2 0 000 4zM7 9V7a5 5 0 0110 0v2h1a2 2 0 012 2v10a2 2 0 01-2 2H6a2 2 0 01-2-2V11a2 2 0 012-2h1zm2 0h6V7a3 3 0 10-6 0v2z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 3a2 2 0 00-2 2v14a2 2 0 002 2h6V3H5z\"/><path fill-rule=\"evenodd\" d=\"M13 21V3h6a2 2 0 012 2v14a2 2 0 01-2 2h-6zm2-16h4v14h-4V5z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13 3h6a2 2 0 012 2v14a2 2 0 01-2 2h-6V3z\"/><path fill-rule=\"evenodd\" d=\"M9 5H5v14h4V5zM5 3a2 2 0 00-2 2v14a2 2 0 002 2h6V3H5z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M7 6.825V20h2V6.825L10.6 8.4 12 7 8 3 4 7l1.4 1.4L7 6.825zm10 10.35V4h-2v13.175L13.4 15.6 12 17l4 4 4-4-1.4-1.4-1.6 1.575z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M14 13v8l-4-2v-6L2.95 4h18.1L14 13z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M18.586 15.914L20 14.5l-8-8-8 8 1.414 1.414L12 9.328l6.586 6.586z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M16.5 4.414L15.086 3 12 6.086 8.914 3 7.5 4.414l4.5 4.5 4.5-4.5zM9 13v-2h6v2H9zm6.086 8l1.414-1.414-4.5-4.5-4.5 4.5L8.914 21 12 17.914 15.086 21z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M16.5 7.5l-1.414 1.414L12 5.828 8.914 8.914 7.5 7.5 12 3l4.5 4.5zM9 13v-2h6v2H9zm6.086 2.086L16.5 16.5 12 21l-4.5-4.5 1.414-1.414L12 18.17l3.086-3.085z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.25 22l-.4-3.2a3.771 3.771 0 01-.612-.3 8.194 8.194 0 01-.563-.375L4.7 19.375l-2.75-4.75 2.575-1.95a2.39 2.39 0 01-.025-.338v-.675c0-.108.009-.22.025-.337L1.95 9.375l2.75-4.75 2.975 1.25c.184-.133.375-.258.575-.375.2-.117.4-.217.6-.3l.4-3.2h5.5l.4 3.2c.217.083.421.183.613.3.191.117.379.242.562.375l2.975-1.25 2.75 4.75-2.575 1.95c.017.117.025.229.025.337v.675c0 .109-.017.221-.05.338l2.575 1.95-2.75 4.75-2.95-1.25a6.826 6.826 0 01-.575.375c-.2.117-.4.217-.6.3l-.4 3.2h-5.5zm2.8-6.5c.967 0 1.792-.342 2.475-1.025A3.372 3.372 0 0015.55 12c0-.967-.341-1.792-1.025-2.475A3.372 3.372 0 0012.05 8.5c-.983 0-1.813.342-2.488 1.025A3.394 3.394 0 008.55 12c0 .967.338 1.792 1.012 2.475.676.683 1.505 1.025 2.488 1.025z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M15.914 5.414L14.5 4l-8 8 8 8 1.414-1.414L9.328 12l6.586-6.586z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M8.086 18.586L9.5 20l8-8-8-8-1.414 1.414L14.672 12l-6.586 6.586z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.286 3h-2.572v7.714H3v2.572h7.714V21h2.572v-7.714H21v-2.572h-7.714V3z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M2 12l3.077-3.2 4.615 4.8L18.923 4 22 7.2 9.692 20 2 12z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M12 19a7 7 0 100-14 7 7 0 000 14z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M11.95 18c.35 0 .646-.121.888-.363.241-.241.362-.537.362-.887s-.12-.646-.362-.887a1.208 1.208 0 00-.888-.363c-.35 0-.646.121-.888.363a1.206 1.206 0 00-.362.887c0 .35.12.646.362.887.242.242.538.363.888.363zm-.9-3.85h1.85c0-.55.063-.983.188-1.3.125-.317.479-.75 1.062-1.3a7.483 7.483 0 001.025-1.238c.25-.391.375-.862.375-1.412 0-.933-.342-1.65-1.025-2.15-.683-.5-1.492-.75-2.425-.75-.95 0-1.72.25-2.312.75-.592.5-1.005 1.1-1.238 1.8l1.65.65c.083-.3.271-.625.563-.975.291-.35.737-.525 1.337-.525.533 0 .933.146 1.2.437.267.292.4.613.4.963 0 .333-.1.646-.3.937-.2.292-.45.563-.75.813-.733.65-1.183 1.142-1.35 1.475-.167.333-.25.942-.25 1.825zM12 22a9.733 9.733 0 01-3.9-.788 10.092 10.092 0 01-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.733 9.733 0 012 12a9.74 9.74 0 01.788-3.9 10.092 10.092 0 012.137-3.175c.9-.9 1.958-1.613 3.175-2.138A9.743 9.743 0 0112 2a9.74 9.74 0 013.9.787 10.105 10.105 0 013.175 2.138c.9.9 1.612 1.958 2.137 3.175A9.733 9.733 0 0122 12a9.733 9.733 0 01-.788 3.9 10.092 10.092 0 01-2.137 3.175c-.9.9-1.958 1.612-3.175 2.137A9.733 9.733 0 0112 22z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10.6 16.6l7.05-7.05-1.4-1.4-5.65 5.65-2.85-2.85-1.4 1.4 4.25 4.25zM12 22a9.733 9.733 0 01-3.9-.788 10.092 10.092 0 01-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.733 9.733 0 012 12a9.74 9.74 0 01.788-3.9 10.092 10.092 0 012.137-3.175c.9-.9 1.958-1.613 3.175-2.138A9.743 9.743 0 0112 2a9.74 9.74 0 013.9.787 10.105 10.105 0 013.175 2.138c.9.9 1.612 1.958 2.137 3.175A9.733 9.733 0 0122 12a9.733 9.733 0 01-.788 3.9 10.092 10.092 0 01-2.137 3.175c-.9.9-1.958 1.612-3.175 2.137A9.733 9.733 0 0112 22z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M1 21L12 2l11 19H1zm11-3a.968.968 0 00.713-.288A.967.967 0 0013 17a.967.967 0 00-.287-.712A.968.968 0 0012 16a.965.965 0 00-.712.288A.965.965 0 0011 17c0 .283.096.52.288.712A.965.965 0 0012 18zm-1-3h2v-5h-2v5z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M12 17a.968.968 0 00.713-.288A.967.967 0 0013 16a.97.97 0 00-.287-.713A.97.97 0 0012 15a.967.967 0 00-.712.287A.968.968 0 0011 16c0 .283.096.52.288.712A.965.965 0 0012 17zm-1-4h2V7h-2v6zm1 9a9.733 9.733 0 01-3.9-.788 10.092 10.092 0 01-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.733 9.733 0 012 12a9.74 9.74 0 01.788-3.9 10.092 10.092 0 012.137-3.175c.9-.9 1.958-1.613 3.175-2.138A9.743 9.743 0 0112 2a9.74 9.74 0 013.9.787 10.105 10.105 0 013.175 2.138c.9.9 1.612 1.958 2.137 3.175A9.733 9.733 0 0122 12a9.733 9.733 0 01-.788 3.9 10.092 10.092 0 01-2.137 3.175c-.9.9-1.958 1.612-3.175 2.137A9.733 9.733 0 0112 22z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9 3v1H4v2h1v13a2 2 0 002 2h10a2 2 0 002-2V6h1V4h-5V3H9zM7 6h10v13H7V6zm2 2v9h2V8H9zm4 0v9h2V8h-2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M12 4.93A5 5 0 0119.07 12l-1.06 1.06c.12-.85.022-1.725-.295-2.534a3 3 0 00-4.302-4.182l-2.828 2.828a3 3 0 00-.07 4.17l.07.073-1.415 1.414a5 5 0 010-7.071L12 4.929z\"/><path d=\"M4.93 12l.989-.99a5.018 5.018 0 00.297 2.54 3 3 0 004.37 4.107l2.829-2.828a3 3 0 00-.828-4.83l1.464-1.463a5 5 0 01.778 7.707L12 19.071a5 5 0 01-7.07-7.07z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19.3 8.925l-4.25-4.2 1.4-1.4a1.92 1.92 0 011.413-.575 1.92 1.92 0 011.412.575l1.4 1.4c.383.383.583.846.6 1.388a1.806 1.806 0 01-.55 1.387L19.3 8.925zM17.85 10.4L7.25 21H3v-4.25l10.6-10.6 4.25 4.25z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M19 19H9V9h10M9 7a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2V9a2 2 0 00-2-2H9zm5-4H5a2 2 0 00-2 2v9h2V5h9V3z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M22.5 15a8.71 8.71 0 00-.712-3.513 9.158 9.158 0 00-1.926-2.85 9.152 9.152 0 00-2.85-1.925A8.709 8.709 0 0013.5 6a8.71 8.71 0 00-3.513.712 9.167 9.167 0 00-2.85 1.925 9.154 9.154 0 00-1.924 2.85A8.705 8.705 0 004.5 15v.15L2.95 13.6 1.5 15l4 4 4-4-1.45-1.4-1.55 1.55V15c0-1.95.679-3.604 2.037-4.962C9.896 8.679 11.55 8 13.5 8c1.95 0 3.604.68 4.962 2.038C19.821 11.396 20.5 13.05 20.5 15h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M17 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6V6z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6zm1.2 18h-1.4L12 13.2 10.2 20H8.8l-2.2-9h1.5l1.4 6.8 1.8-6.8h1.3l1.8 6.8 1.4-6.8h1.5l-2.1 9zM13 9V3.5L18.5 9H13z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6zm2 16l-1.5 1.5L12 17l-2.5 2.5L8 18l2.5-2.5L8 13l1.5-1.5L12 14l2.5-2.5L16 13l-2.5 2.5L16 18zm-3-9V3.5L18.5 9H13z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M13 9h5.5L13 3.5V9zM6 2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4a2 2 0 012-2zm4.1 9.4c-.02.04-.29 1.76-2.1 4.69 0 0-3.5 1.82-2.67 3.18.67 1.08 2.32-.04 3.74-2.68 0 0 1.82-.64 4.24-.82 0 0 3.86 1.73 4.39-.11.52-1.86-3.06-1.44-3.7-1.25 0 0-2-1.35-2.5-3.21 0 0 1.14-3.95-.61-3.9-1.75.05-1.09 3.13-.79 4.1zm.81 1.04c.03.01.47 1.21 1.89 2.46 0 0-2.33.46-3.39.9 0 0 1-1.73 1.5-3.36zm3.93 2.72c.58-.16 2.33.15 2.26.48-.06.33-2.26-.48-2.26-.48zM7.77 17c-.53 1.24-1.44 2-1.67 2-.23 0 .7-1.6 1.67-2zm3.14-6.93c0-.07-.36-2.2 0-2.15.54.08 0 2.08 0 2.15z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M13 9h5.5L13 3.5V9zM6 2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4c0-1.11.89-2 2-2zm0 18h12v-8l-4 4-2-2-6 6zM8 9a2 2 0 100 4 2 2 0 000-4z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M14 15l-5 3v-6l5 3z\"/><path fill-rule=\"evenodd\" d=\"M4 4c0-1.11.89-2 2-2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm9-.5V9h5.5L13 3.5zM8 10v10l8-5-8-5z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6zM9 19H6v-2h3v2zm0-3H6v-2h3v2zm0-3H6v-2h3v2zm4 6h-3v-2h3v2zm0-3h-3v-2h3v2zm0-3h-3v-2h3v2zm0-4V3.5L18.5 9H13z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M13 9h5.5L13 3.5V9zM6 2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4c0-1.11.89-2 2-2zm9 16v-2H6v2h9zm3-4v-2H6v2h12z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M4 4c0-1.11.89-2 2-2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm9-.5V9h5.5L13 3.5zM7 18v-4.732l5 3.333 5-3.333V18a1 1 0 01-1 1H8a1 1 0 01-1-1zm5-2.6l4.688-3.126A.997.997 0 0016 12H8a.997.997 0 00-.688.274L12 15.399z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 22c-.55 0-1.02-.196-1.412-.587A1.927 1.927 0 014 20V4c0-.55.196-1.021.588-1.413A1.925 1.925 0 016 2h8l6 6v12a1.93 1.93 0 01-.587 1.413A1.928 1.928 0 0118 22H6zm7-13h5l-5-5v5z\"/></svg>","<svg width=\"24px\" height=\"24px\" version=\"1.1\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <polygon points=\"8.9167 8.2676 12.01 2 15.103 8.2676 22.02 9.2727 17.015 14.151 18.197 21.04 12.01 17.788 5.8235 21.04 7.005 14.151 2 9.2727\" fill-rule=\"evenodd\"/>\n</svg>\n","<svg width=\"66\" height=\"67\" viewBox=\"0 0 66 67\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M0 33.5C0 15.2746 14.7746 0.5 33 0.5C51.2254 0.5 66 15.2746 66 33.5C66 51.7254 51.2254 66.5 33 66.5C14.7746 66.5 0 51.7254 0 33.5Z\" fill=\"#EBEDF5\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M42.3098 40.3349L49.4749 47.5L47 49.9749L39.8349 42.8098C37.4642 44.6526 34.4852 45.75 31.25 45.75C23.518 45.75 17.25 39.482 17.25 31.75C17.25 24.018 23.518 17.75 31.25 17.75C38.982 17.75 45.25 24.018 45.25 31.75C45.25 34.9852 44.1526 37.9642 42.3098 40.3349ZM31.25 42.25C37.049 42.25 41.75 37.549 41.75 31.75C41.75 25.951 37.049 21.25 31.25 21.25C25.451 21.25 20.75 25.951 20.75 31.75C20.75 37.549 25.451 42.25 31.25 42.25Z\" fill=\"#6C6F80\"/>\n</svg>\n","import { Spinner as uuiSpinner, SpinnerProps as uuiSpinnerProps } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport css from './Spinner.module.scss';\n\nexport type SpinnerProps = uuiSpinnerProps;\n\nfunction applySpinnerMods() {\n return [css.root, 'uui-spinner'];\n}\n\nexport const Spinner = withMods<uuiSpinnerProps, uuiSpinnerProps>(uuiSpinner, applySpinnerMods);\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IHasCX, IHasRawProps } from '@epam/uui-core';\nimport css from './TextPlaceholder.module.scss';\nimport { PropsWithChildren } from 'react';\n\nexport interface ITextPlaceholderProps extends IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IHasCX {\n /** Number of placeholder worlds to render in block */\n wordsCount?: number;\n /** Pass true, to turn off the placeholder animation */\n isNotAnimated?: boolean;\n}\n\nexport type TextPlaceholderProps = PropsWithChildren<ITextPlaceholderProps>;\n\nexport const TextPlaceholder: React.FunctionComponent<PropsWithChildren<ITextPlaceholderProps>> = (props) => {\n const pattern = ' ';\n const text = React.useMemo(() => {\n const words = [];\n for (let i = 0; i < (props.wordsCount || 1); i++) {\n const lengthWord = Math.floor(Math.random() * 10 + 8);\n words.push(pattern.repeat(lengthWord));\n }\n return words;\n }, [props.wordsCount]);\n\n return (\n <div aria-busy={ true } className={ cx(css.root, 'uui-text-placeholder') } { ...props.rawProps }>\n {text.map((it: string, index: number) => (\n <span\n key={ index }\n className={ cx([\n props.cx, css.loadingWord, !props.isNotAnimated && css.animatedLoading,\n ]) }\n dangerouslySetInnerHTML={ { __html: it } }\n />\n ))}\n </div>\n );\n};\n","import type { Overwrite } from '@epam/uui-core';\nimport { withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './Text.module.scss';\n\ntype TextColor = 'info' | 'warning' | 'critical' | 'success' | 'primary' | 'secondary' | 'tertiary' | 'disabled' | 'white';\ntype TextSize = 'none' | '18' | '24' | '30' | '36' | '42' | '48';\ntype TextFontStyle = 'normal' | 'italic';\ntype TextFontWeight = '200' | '300' | '400' | '600' | '700' | '900';\n\ninterface TextMods {\n /**\n * Defines text color.\n * @default 'primary'\n */\n color?: TextColor;\n /**\n * Defines size(height) of text block, to align text by its baseline with other components of the same size.\n * Used to calculate line-height and vertical paddings so that the sum of their values be equal size value(size = vPaddings/2 + lineHeight)\n * Pass 'none' to disable it.\n * @default '36'\n */\n size?: TextSize;\n /** Defines text line-height\n * Provide number or string value without 'px'\n * */\n lineHeight?: number | string;\n /** Defines text font-size\n * Provide number or string value without 'px'\n * */\n fontSize?: number | string;\n /**\n * Defines text font weight value\n * @default '400'\n */\n fontWeight?: TextFontWeight;\n /**\n * Determines the style of the text font.\n * @default 'normal'\n */\n fontStyle?: TextFontStyle;\n}\n\nexport interface TextCoreProps extends uuiComponents.TextProps {}\n\nexport interface TextModsOverride {}\n\nexport interface TextProps extends uuiComponents.TextProps, Overwrite<TextMods, TextModsOverride> {}\n\nfunction applyTextMods(mods: TextProps) {\n return [\n css.root,\n 'uui-text',\n `uui-size-${mods.size || settings.text.sizes.default}`,\n (mods.size !== 'none' || mods.lineHeight) && css.lineHeight,\n (mods.size !== 'none' || mods.fontSize) && css.fontSize,\n `uui-color-${mods.color || 'primary'}`,\n `uui-font-weight-${mods.fontWeight || '400'}`,\n `uui-font-style-${mods.fontStyle || 'normal'}`,\n 'uui-typography-inline',\n ];\n}\n\nexport const Text = withMods<uuiComponents.TextProps, TextProps>(\n uuiComponents.Text,\n applyTextMods,\n (props) => {\n const style: any = props?.rawProps?.style ? { ...props.rawProps.style } : {};\n\n props.fontSize && (style['--uui-text-font-size'] = `${props.fontSize}px`);\n props.lineHeight && (style['--uui-text-line-height'] = `${props.lineHeight}px`);\n\n return {\n rawProps: {\n ...props?.rawProps,\n style: style,\n },\n };\n },\n);\n","import { withMods } from '@epam/uui-core';\nimport { Blocker as uuiBlocker, BlockerProps } from '@epam/uui-components';\nimport css from './Blocker.module.scss';\nimport { settings } from '../../settings';\n\nexport const Blocker = withMods<BlockerProps, BlockerProps>(\n uuiBlocker,\n () => [css.root],\n () => ({ renderSpinner: settings.blocker.renderSpinner }),\n);\n","import React from 'react';\nimport { ReactComponent as CrossIcon } from '@epam/assets/icons/navigation-close-outline.svg';\nimport { ReactComponent as DropdownIcon } from '@epam/assets/icons/navigation-chevron_down-outline.svg';\nimport { ReactComponent as CheckIcon } from '@epam/assets/icons/notification-done-outline.svg';\nimport { ReactComponent as PartlySelectIcon } from '@epam/assets/icons/content-minus-outline.svg';\nimport { ReactComponent as SearchIcon } from '@epam/assets/icons/action-search-outline.svg';\nimport { ReactComponent as CalendarIcon } from '@epam/assets/icons/action-calendar-fill.svg';\nimport { ReactComponent as InfoIcon } from '@epam/assets/icons/notification-info-outline.svg';\nimport { ReactComponent as FillInfoIcon } from '@epam/assets/icons/notification-info-fill.svg';\nimport { ReactComponent as EmptyTableIcon } from './icons/pictures/empty-table.svg';\nimport { ReactComponent as AscSortIcon } from '@epam/assets/icons/table-sort_asc-outline.svg';\nimport { ReactComponent as DescSortIcon } from '@epam/assets/icons/table-sort_desc-outline.svg';\nimport { ReactComponent as DragIndicatorIcon } from '@epam/assets/icons/action-drag_indicator-outline.svg';\nimport { ReactComponent as MenuIcon } from '@epam/assets/icons/navigation-more_vert-outline.svg';\nimport { ReactComponent as ResetIcon } from '@epam/assets/icons/navigation-refresh-outline.svg';\nimport { ReactComponent as LockIcon } from '@epam/assets/icons/action-lock-fill.svg';\nimport { ReactComponent as PinLeftIcon } from '@epam/assets/icons/table-group_column_left-fill.svg';\nimport { ReactComponent as PinRightIcon } from '@epam/assets/icons/table-group_column_right-fill.svg';\nimport { ReactComponent as DefaultSortIcon } from '@epam/assets/icons/table-swap-outline.svg';\nimport { ReactComponent as FilterIcon } from '@epam/assets/icons/content-filtration-fill.svg';\nimport { ReactComponent as OpenedDropdownIcon } from '@epam/assets/icons/navigation-chevron_up-outline.svg';\nimport { ReactComponent as FoldIcon } from '@epam/assets/icons/navigation-collapse_all-outline.svg';\nimport { ReactComponent as UnfoldIcon } from '@epam/assets/icons/navigation-expand_all-outline.svg';\nimport { ReactComponent as ConfigIcon } from '@epam/assets/icons/action-settings-fill.svg';\nimport { ReactComponent as LeftArrowIcon } from '@epam/assets/icons/navigation-chevron_left-outline.svg';\nimport { ReactComponent as RightArrowIcon } from '@epam/assets/icons/navigation-chevron_right-outline.svg';\nimport { ReactComponent as AddIcon } from '@epam/assets/icons/action-add-outline.svg';\nimport { ReactComponent as BoldSelectIcon } from '@epam/assets/icons/notification-done-fill.svg';\nimport { ReactComponent as DotIcon } from '@epam/assets/icons/radio_dot-fill.svg';\nimport { ReactComponent as HintIcon } from '@epam/assets/icons/notification-help-fill.svg';\nimport { ReactComponent as SuccessIcon } from '@epam/assets/icons/notification-check-fill.svg';\nimport { ReactComponent as WarningIcon } from '@epam/assets/icons/notification-warning-fill.svg';\nimport { ReactComponent as ErrorIcon } from '@epam/assets/icons/notification-error-fill.svg';\nimport { ReactComponent as RemoveIcon } from '@epam/assets/icons/action-delete-outline.svg';\nimport { ReactComponent as CopyLinkIcon } from '@epam/assets/icons/content-link-outline.svg';\nimport { ReactComponent as RenameIcon } from '@epam/assets/icons/content-edit-fill.svg';\nimport { ReactComponent as CopyIcon } from '@epam/assets/icons/action-copy_content-outline.svg';\nimport { ReactComponent as DiscardChangesIcon } from '@epam/assets/icons/content-edit_undo-outline.svg';\nimport { ReactComponent as SaveAsNewIcon } from '@epam/assets/icons/action-save-outline.svg';\n\nimport { ReactComponent as DocIcon } from '@epam/assets/icons/file-file_word-fill.svg';\nimport { ReactComponent as ExelIcon } from '@epam/assets/icons/file-file_excel-fill.svg';\nimport { ReactComponent as PdfIcon } from '@epam/assets/icons/file-file_pdf-fill.svg';\nimport { ReactComponent as ImgIcon } from '@epam/assets/icons/file-file_image-fill.svg';\nimport { ReactComponent as VideoIcon } from '@epam/assets/icons/file-file_video-fill.svg';\nimport { ReactComponent as TableIcon } from '@epam/assets/icons/file-file_table-fill.svg';\nimport { ReactComponent as TextIcon } from '@epam/assets/icons/file-file_text-fill.svg';\nimport { ReactComponent as MailIcon } from '@epam/assets/icons/file-file_eml-fill.svg';\nimport { ReactComponent as FileIcon } from '@epam/assets/icons/file-file-fill.svg';\n\nimport { ReactComponent as FilledStarIcon } from './icons/star-filled.svg';\nimport { ReactComponent as NotFoundSearchIcon } from './icons/pictures/search-with-background.svg';\n\nimport type { Icon } from '@epam/uui-core';\nimport type { AvatarProps, BlockerProps } from '@epam/uui-components';\nimport type {\n AlertProps, LinkButtonProps, BadgeProps, CountIndicatorProps, ButtonProps, CheckboxProps,\n DataTableHeaderRowProps, DataTableHeaderCellProps, DataTableRowProps,\n SearchInputProps, FlexRowProps, TextProps, DatePickerProps, FiltersPanelProps,\n DataPickerRowProps, PickerItemProps, DataPickerFooterProps, LabeledInputProps, NumericInputProps,\n PickerTogglerProps, PickerTogglerTagProps, TagProps, SwitchProps, RangeDatePickerProps, RadioInputProps,\n RatingProps, RichTextViewProps, DataRowAddonsProps, StatusIndicatorProps, TabButtonProps, VerticalTabButtonProps, TextAreaProps,\n TextInputProps, PickerInputProps, MultiSwitchProps, RangeDatePickerInputProps, IconButtonProps, VirtualListProps,\n} from './components';\nimport { Spinner } from './components/widgets/Spinner';\nimport { TextPlaceholder } from './components/typography/TextPlaceholder';\nimport { Text } from './components/typography/Text';\nimport { Blocker } from './components/layout/Blocker';\n\ntype Sizes<S extends string | number | symbol, T> = {\n [size in S]: T;\n};\n\ninterface AccordionIcons {\n dropdownIcon: Icon;\n}\n\ninterface AccordionSettings {\n icons: AccordionIcons;\n}\n\nconst accordionSettings: AccordionSettings = {\n icons: {\n dropdownIcon: DropdownIcon,\n },\n};\n\ninterface AlertIcons {\n closeIcon: Icon;\n infoIcon: Icon;\n successIcon: Icon;\n warningIcon: Icon;\n errorIcon: Icon;\n}\n\ninterface AlertSizes {\n default: AlertProps['size'];\n actionMap: Sizes<AlertProps['size'], LinkButtonProps['size']>;\n}\n\ninterface AlertSettings {\n icons: AlertIcons;\n sizes: AlertSizes;\n}\n\nconst alertSettings: AlertSettings = {\n icons: {\n closeIcon: CrossIcon,\n infoIcon: FillInfoIcon,\n successIcon: SuccessIcon,\n warningIcon: WarningIcon,\n errorIcon: ErrorIcon,\n },\n sizes: {\n default: '48',\n actionMap: {\n 36: '24',\n 48: '30',\n },\n },\n};\n\ninterface BadgeIcons {\n dropdownIcon: Icon;\n}\n\ninterface BadgeSizes {\n default: BadgeProps['size'];\n countIndicatorMap: Sizes<BadgeProps['size'], CountIndicatorProps['size']>;\n}\n\ninterface BadgeSettings {\n icons: BadgeIcons;\n sizes: BadgeSizes;\n}\nconst badgeSettings: BadgeSettings = {\n icons: {\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n countIndicatorMap: {\n 18: '12',\n 24: '18',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n },\n },\n};\n\ninterface ButtonIcons {\n clearIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface ButtonSizes {\n default: ButtonProps['size'];\n}\n\ninterface ButtonSettings {\n icons: ButtonIcons;\n sizes: ButtonSizes;\n}\n\nconst buttonSettings: ButtonSettings = {\n icons: {\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n },\n};\n\ninterface CheckboxIcons {\n checkIcon: Icon;\n indeterminateIcon: Icon;\n}\n\ninterface CheckboxSizes {\n default: CheckboxProps['size'];\n}\n\ninterface CheckboxSettings {\n icons: CheckboxIcons;\n sizes: CheckboxSizes;\n}\n\nconst checkboxSettings: CheckboxSettings = {\n icons: {\n checkIcon: CheckIcon,\n indeterminateIcon: PartlySelectIcon,\n },\n sizes: {\n default: '18',\n },\n};\n\ninterface CountIndicatorSizes {\n default: CountIndicatorProps['size'];\n}\n\ninterface CountIndicatorSettings {\n sizes: CountIndicatorSizes;\n}\n\nconst countIndicatorSettings: CountIndicatorSettings = {\n sizes: {\n default: '24',\n },\n};\n\ninterface DataTableIcons {\n emptyTable: Icon;\n header: {\n configIcon: Icon;\n ascSortIcon: Icon;\n descSortIcon: Icon;\n defaultSortIcon: Icon;\n filterIcon: Icon;\n dropdownIcon: Icon;\n openedDropdownIcon: Icon;\n foldIcon: Icon;\n unfoldIcon: Icon;\n };\n body: {\n foldingIcon: Icon,\n };\n columnsConfigurationModal: {\n dragIndicator: Icon;\n lockIcon: Icon;\n pinLeftIcon: Icon;\n pinRightIcon: Icon;\n menuIcon: Icon;\n resetIcon: Icon;\n expandedIcon: Icon;\n collapsedIcon: Icon;\n };\n}\n\ninterface DataTableSizes {\n columnsConfigurationModal: {\n columnRow: FlexRowProps['size'];\n countIndicator: CountIndicatorProps['size'];\n menuButton: ButtonProps['size'];\n searchInput: SearchInputProps['size'];\n };\n header: {\n row: DataTableHeaderRowProps['size'];\n iconMap: Sizes<DataTableHeaderCellProps<unknown, unknown>['size'], string>;\n };\n body: {\n row: DataTableRowProps['size'];\n checkboxMap: Sizes<DataRowAddonsProps<unknown, unknown>['size'], CheckboxProps['size']>;\n iconMap: Sizes<DataRowAddonsProps<unknown, unknown>['size'], number | string>;\n indentUnitMap: Sizes<DataRowAddonsProps<unknown, unknown>['size'], number>;\n indentWidthMap: Sizes<DataRowAddonsProps<unknown, unknown>['size'], number>;\n };\n}\n\ninterface DataTableSettings {\n icons: DataTableIcons;\n sizes: DataTableSizes;\n renderPlaceholder?: (props: { rowSize: DataTableRowProps['size'] }) => React.ReactNode;\n}\n\nconst dataTableSettings: DataTableSettings = {\n renderPlaceholder: (props) => <Text size={ props.rowSize }><TextPlaceholder /></Text>,\n icons: {\n emptyTable: EmptyTableIcon,\n header: {\n configIcon: ConfigIcon,\n ascSortIcon: AscSortIcon,\n descSortIcon: DescSortIcon,\n defaultSortIcon: DefaultSortIcon,\n filterIcon: FilterIcon,\n dropdownIcon: DropdownIcon,\n openedDropdownIcon: OpenedDropdownIcon,\n foldIcon: FoldIcon,\n unfoldIcon: UnfoldIcon,\n },\n body: {\n foldingIcon: DropdownIcon,\n },\n columnsConfigurationModal: {\n dragIndicator: DragIndicatorIcon,\n lockIcon: LockIcon,\n pinLeftIcon: PinLeftIcon,\n pinRightIcon: PinRightIcon,\n collapsedIcon: RightArrowIcon,\n expandedIcon: DropdownIcon,\n menuIcon: MenuIcon,\n resetIcon: ResetIcon,\n },\n },\n sizes: {\n header: {\n row: '36',\n iconMap: {\n 36: '18',\n 48: '18',\n 60: '18',\n },\n },\n body: {\n row: '36',\n checkboxMap: {\n 24: '12',\n 30: '18',\n 36: '18',\n 42: '18',\n 48: '18',\n 60: '18',\n },\n iconMap: {\n 24: '12',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n 60: '24',\n },\n indentUnitMap: {\n 24: 6,\n 30: 12,\n 36: 12,\n 42: 24,\n 48: 24,\n 60: 24,\n },\n indentWidthMap: {\n 24: 12,\n 30: 18,\n 36: 18,\n 42: 24,\n 48: 24,\n 60: 24,\n },\n },\n columnsConfigurationModal: {\n columnRow: '30',\n countIndicator: '18',\n menuButton: '30',\n searchInput: '30',\n },\n },\n};\n\ninterface DropdownMenuIcons {\n acceptIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface DropdownMenuSettings {\n icons: DropdownMenuIcons;\n}\n\nconst dropdownMenuSettings: DropdownMenuSettings = {\n icons: {\n acceptIcon: CheckIcon,\n dropdownIcon: DropdownIcon,\n },\n};\n\ninterface DatePickerIcons {\n body: {\n prevIcon: Icon;\n nextIcon: Icon;\n };\n input: {\n calendarIcon: Icon;\n };\n}\n\ninterface DatePickerSizes {\n input: DatePickerProps['size'];\n body: DatePickerProps['size'];\n}\n\ninterface DatePickerSettings {\n icons: DatePickerIcons;\n sizes: DatePickerSizes;\n}\n\nconst datePickerSettings: DatePickerSettings = {\n icons: {\n body: {\n prevIcon: LeftArrowIcon,\n nextIcon: RightArrowIcon,\n },\n input: {\n calendarIcon: CalendarIcon,\n },\n },\n sizes: {\n body: '36',\n input: '36',\n },\n};\n\ninterface FileCardIcons {\n docIcon: Icon,\n exelIcon: Icon,\n pdfIcon: Icon,\n imgIcon: Icon,\n videoIcon: Icon,\n tableIcon: Icon,\n textIcon: Icon,\n mailIcon: Icon,\n fileIcon: Icon,\n closeIcon: Icon,\n errorIcon: Icon,\n}\n\ninterface FileCardSettings {\n icons: FileCardIcons,\n}\n\nconst fileCardSettings: FileCardSettings = {\n icons: {\n docIcon: DocIcon,\n exelIcon: ExelIcon,\n pdfIcon: PdfIcon,\n imgIcon: ImgIcon,\n videoIcon: VideoIcon,\n tableIcon: TableIcon,\n textIcon: TextIcon,\n mailIcon: MailIcon,\n fileIcon: FileIcon,\n closeIcon: CrossIcon,\n errorIcon: ErrorIcon,\n },\n};\n\ninterface FlexRowSizes {\n default: FlexRowProps['size'];\n}\n\ninterface FlexRowSettings {\n sizes: FlexRowSizes;\n}\n\nconst flexRowSettings: FlexRowSettings = {\n sizes: {\n default: '36',\n },\n};\n\ninterface FiltersPanelIcons {\n addFilterIcon: Icon;\n itemDropdownIcon: Icon;\n pickerBodyRemoveIcon: Icon;\n}\n\ninterface FiltersPanelSizes {\n default: FiltersPanelProps<unknown>['size'];\n footerLinkButton: LinkButtonProps['size'];\n mobileFooterLinkButton: LinkButtonProps['size'];\n pickerBodyMultiSwitch: MultiSwitchProps['size'];\n pickerBodyLinkButton: LinkButtonProps['size'];\n pickerBodyMinWidth: number;\n rangeDatePickerInput: RangeDatePickerInputProps['size'];\n}\n\ninterface FiltersPanelSettings {\n icons: FiltersPanelIcons;\n sizes: FiltersPanelSizes;\n renderPlaceholder: () => React.ReactNode;\n}\n\nconst filtersPanelSettings: FiltersPanelSettings = {\n renderPlaceholder: () => <TextPlaceholder />,\n icons: {\n addFilterIcon: AddIcon,\n itemDropdownIcon: DropdownIcon,\n pickerBodyRemoveIcon: RemoveIcon,\n },\n sizes: {\n default: '36',\n footerLinkButton: '36',\n mobileFooterLinkButton: '48',\n pickerBodyMultiSwitch: '24',\n pickerBodyLinkButton: '24',\n pickerBodyMinWidth: 360,\n rangeDatePickerInput: '30',\n },\n};\n\ninterface IconButtonSettings {\n icons: {\n dropdownIcon: Icon;\n }\n}\n\nconst iconButtonSettings: IconButtonSettings = {\n icons: {\n dropdownIcon: DropdownIcon,\n },\n};\n\ninterface LabeledInputIcons {\n infoIcon: Icon;\n fillInfoIcon: Icon;\n}\n\ninterface LabeledInputSizes {\n default: LabeledInputProps['size'];\n}\n\ninterface LabeledInputSettings {\n icons: LabeledInputIcons;\n sizes: LabeledInputSizes;\n}\n\nconst labeledInputSettings: LabeledInputSettings = {\n icons: {\n infoIcon: InfoIcon,\n fillInfoIcon: FillInfoIcon,\n },\n sizes: {\n default: '36',\n },\n};\n\ninterface LinkButtonIcons {\n dropdownIcon: Icon;\n}\n\ninterface LinkButtonSizes {\n default: LinkButtonProps['size'];\n}\n\ninterface LinkButtonSettings {\n icons: LinkButtonIcons;\n sizes: LinkButtonSizes;\n weight: LinkButtonProps['weight'];\n}\n\nconst linkButtonSettings: LinkButtonSettings = {\n icons: {\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n },\n weight: 'semibold',\n};\n\ninterface ModalIcons {\n closeIcon: Icon;\n}\n\ninterface ModalSettings {\n icons: ModalIcons;\n}\n\nconst modalSettings: ModalSettings = {\n icons: {\n closeIcon: CrossIcon,\n },\n};\n\ninterface NotificationCardIcons {\n closeIcon: Icon;\n hintIcon: Icon;\n successIcon: Icon;\n warningIcon: Icon;\n errorIcon: Icon;\n}\n\ninterface NotificationCardSizes {\n action: LinkButtonProps['size'];\n icon: number;\n}\n\ninterface NotificationCardSettings {\n icons: NotificationCardIcons;\n sizes: NotificationCardSizes;\n}\n\nconst notificationCardSettings: NotificationCardSettings = {\n icons: {\n closeIcon: CrossIcon,\n hintIcon: HintIcon,\n successIcon: SuccessIcon,\n warningIcon: WarningIcon,\n errorIcon: ErrorIcon,\n },\n sizes: {\n action: '30',\n icon: 24,\n },\n};\n\ninterface NumericInputIcons {\n arrowIcon: Icon;\n}\n\ninterface NumericInputSizes {\n default: NumericInputProps['size'];\n}\n\ninterface NumericInputSettings {\n icons: NumericInputIcons;\n sizes: NumericInputSizes;\n}\n\nconst numericInputSettings: NumericInputSettings = {\n icons: {\n arrowIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n },\n};\n\ninterface PaginatorIcons {\n leftArrowIcon: Icon;\n rightArrowIcon: Icon;\n}\n\ninterface PaginatorSizes {\n default: ButtonProps['size'];\n}\n\ninterface PaginatorSettings {\n icons: PaginatorIcons;\n sizes: PaginatorSizes;\n}\n\nconst paginatorSettings: PaginatorSettings = {\n icons: {\n leftArrowIcon: LeftArrowIcon,\n rightArrowIcon: RightArrowIcon,\n },\n sizes: {\n default: '30',\n },\n};\n\ntype SelectIconType = Icon | ((size: DataPickerRowProps<unknown, unknown>['size']) => Icon);\n\ninterface PickerInputIcons {\n toggler: {\n clearIcon: Icon;\n dropdownIcon: Icon;\n },\n body: {\n selectIcon: SelectIconType;\n pickerBodyMobileHeaderCloseIcon: Icon;\n modalNotFoundSearchIcon: Icon;\n }\n}\n\ninterface PickerInputSizes {\n toggler: {\n default: PickerTogglerProps<unknown, unknown>['size'];\n tag: PickerTogglerTagProps<unknown, unknown>['size'];\n tagMap: Sizes<PickerTogglerTagProps<unknown, unknown>['size'], TagProps['size']>;\n };\n body: {\n maxHeight: number;\n minWidth: number;\n row: DataPickerRowProps<unknown, unknown>['size'];\n itemAvatarMap: Sizes<PickerItemProps<unknown, unknown>['size'], AvatarProps['size']>;\n itemAvatarMultilineMap: Sizes<PickerItemProps<unknown, unknown>['size'], AvatarProps['size']>;\n itemVerticalPaddingMap: Sizes<PickerItemProps<unknown, unknown>['size'], string>;\n selectIconMap: Sizes<DataPickerRowProps<unknown, unknown>['size'], string>;\n footerSwitchMap: Sizes<DataPickerFooterProps<unknown, unknown>['size'], SwitchProps['size']>;\n mobileFooterLinkButton: LinkButtonProps['size'];\n mobileRow: DataPickerRowProps<unknown, unknown>['size'];\n getSearchSize: (props: { pickerSize: PickerInputProps<unknown, unknown>['size'] }) => SearchInputProps['size'];\n mobileSearchInput: SearchInputProps['size'];\n };\n}\n\ninterface PickerInputSettings {\n icons: PickerInputIcons;\n sizes: PickerInputSizes;\n renderPlaceholder?: (props: { rowSize: DataPickerRowProps<unknown, unknown>['size'] }) => React.ReactNode;\n renderBlocker?: VirtualListProps['renderBlocker'];\n}\n\nconst pickerInputSettings: PickerInputSettings = {\n renderPlaceholder: (props) => <Text size={ props.rowSize }><TextPlaceholder /></Text>,\n renderBlocker: (props) => <Blocker isEnabled={ props.isLoading } />,\n icons: {\n toggler: {\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n },\n body: {\n selectIcon: (size: DataPickerRowProps<unknown, unknown>['size']) => size < '30' ? BoldSelectIcon : CheckIcon,\n pickerBodyMobileHeaderCloseIcon: CrossIcon,\n modalNotFoundSearchIcon: NotFoundSearchIcon,\n },\n },\n sizes: {\n toggler: {\n default: '36',\n tag: '36',\n tagMap: {\n 24: '18',\n 30: '18',\n 36: '24',\n 42: '30',\n 48: '36',\n },\n },\n body: {\n maxHeight: 300,\n minWidth: 360,\n row: '36',\n itemAvatarMap: {\n 24: '18',\n 30: '24',\n 36: '30',\n 42: '36',\n 48: '36',\n },\n itemAvatarMultilineMap: {\n 24: '30',\n 30: '30',\n 36: '36',\n 42: '42',\n 48: '48',\n },\n itemVerticalPaddingMap: {\n 24: '3',\n 30: '6',\n 36: '9',\n 42: '6',\n 48: '9',\n },\n selectIconMap: {\n 24: '12',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n },\n footerSwitchMap: {\n 24: '12',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n },\n mobileFooterLinkButton: '48',\n mobileRow: '48',\n mobileSearchInput: '48',\n getSearchSize: ({ pickerSize }) => {\n return pickerSize;\n },\n },\n },\n};\n\ninterface PresetPanelIcons {\n addIcon: Icon;\n copyIcon: Icon;\n copyLinkIcon: Icon;\n deleteIcon: Icon;\n discardChangesIcon: Icon;\n renameIcon: Icon;\n menuIcon: Icon;\n saveAsNewIcon: Icon;\n saveInCurrentIcon: Icon;\n}\n\ninterface PresetPanelSizes {\n tabButton: TabButtonProps['size'];\n dropdownTargetIconButton: IconButtonProps['size'];\n}\n\ninterface PresetsPanelSettings {\n icons: PresetPanelIcons;\n sizes: PresetPanelSizes;\n}\n\nconst presetsPanelSettings: PresetsPanelSettings = {\n icons: {\n addIcon: AddIcon,\n copyIcon: CopyIcon,\n copyLinkIcon: CopyLinkIcon,\n deleteIcon: RemoveIcon,\n discardChangesIcon: DiscardChangesIcon,\n menuIcon: MenuIcon,\n renameIcon: RenameIcon,\n saveAsNewIcon: SaveAsNewIcon,\n saveInCurrentIcon: ResetIcon,\n },\n sizes: {\n tabButton: '60',\n dropdownTargetIconButton: '18',\n },\n};\n\ninterface RadioInputIcons {\n dotIcon: Icon;\n}\n\ninterface RadioInputSizes {\n default: RadioInputProps['size'];\n}\n\ninterface RadioInputSettings {\n icons: RadioInputIcons;\n sizes: RadioInputSizes;\n}\n\nconst radioInputSettings: RadioInputSettings = {\n icons: {\n dotIcon: DotIcon,\n },\n sizes: {\n default: '18',\n },\n};\n\ninterface RangeDatePickerIcons {\n input: {\n calendarIcon: Icon;\n }\n}\n\ninterface RangeDatePickerSizes {\n default: RangeDatePickerProps['size'];\n preset: LinkButtonProps['size'];\n}\n\ninterface RangeDatePickerSettings {\n icons: RangeDatePickerIcons;\n sizes: RangeDatePickerSizes;\n}\n\nconst rangeDatePickerSettings: RangeDatePickerSettings = {\n icons: {\n input: {\n calendarIcon: CalendarIcon,\n },\n },\n sizes: {\n default: '36',\n preset: '24',\n },\n};\n\ninterface RatingIcons {\n filledRatingIcon: Icon;\n emptyRatingIcon: Icon;\n}\n\ninterface RatingSizes {\n default: RatingProps['size'];\n}\n\ninterface RatingSettings {\n icons: RatingIcons;\n sizes: RatingSizes;\n}\n\nconst ratingSettings: RatingSettings = {\n icons: {\n filledRatingIcon: FilledStarIcon,\n emptyRatingIcon: FilledStarIcon,\n },\n sizes: {\n default: 18,\n },\n};\n\ninterface RichTextViewSizes {\n default: RichTextViewProps['size'];\n}\n\ninterface RichTextViewSettings {\n sizes: RichTextViewSizes;\n}\n\nconst richTextViewSettings: RichTextViewSettings = {\n sizes: {\n default: '14',\n },\n};\n\ninterface StatusIndicatorSizes {\n default: StatusIndicatorProps['size'];\n}\n\ninterface StatusIndicatorSettings {\n sizes: StatusIndicatorSizes;\n}\n\nconst statusIndicatorSettings: StatusIndicatorSettings = {\n sizes: {\n default: '24',\n },\n};\n\ninterface SwitchSizes {\n default: SwitchProps['size'];\n}\n\ninterface SwitchSettings {\n sizes: SwitchSizes;\n}\n\nconst switchSettings: SwitchSettings = {\n sizes: {\n default: '18',\n },\n};\n\ninterface TabButtonIcons {\n clearIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface TabButtonSizes {\n default: TabButtonProps['size'];\n countIndicatorMap: Sizes<TabButtonProps['size'], CountIndicatorProps['size']>;\n}\n\ninterface TabButtonSettings {\n icons: TabButtonIcons;\n sizes: TabButtonSizes;\n}\n\nconst tabButtonSettings: TabButtonSettings = {\n icons: {\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '48',\n countIndicatorMap: {\n 36: '18',\n 48: '18',\n 60: '18',\n },\n },\n};\n\ninterface VerticalTabButtonIcons {\n clearIcon: Icon;\n foldingIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface VerticalTabButtonSizes {\n default: VerticalTabButtonProps<unknown, unknown>['size'];\n countIndicatorMap: Sizes<VerticalTabButtonProps<unknown, unknown>['size'], CountIndicatorProps['size']>;\n}\n\ninterface VerticalTabButtonSettings {\n icons: VerticalTabButtonIcons;\n sizes: VerticalTabButtonSizes;\n weight: VerticalTabButtonProps<unknown, unknown>['weight'];\n}\n\nconst verticalTabButtonSettings: VerticalTabButtonSettings = {\n icons: {\n clearIcon: CrossIcon,\n foldingIcon: DropdownIcon,\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '48',\n countIndicatorMap: {\n 30: '18',\n 36: '18',\n 48: '18',\n },\n },\n weight: 'semibold',\n};\n\ninterface TagIcons {\n clearIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface TagSizes {\n default: TagProps['size'];\n countIndicatorMap: Sizes<TagProps['size'], CountIndicatorProps['size']>;\n}\n\ninterface TagSettings {\n icons: TagIcons;\n sizes: TagSizes;\n}\n\nconst tagSettings: TagSettings = {\n icons: {\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n countIndicatorMap: {\n 18: '12',\n 24: '18',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n },\n },\n};\n\ninterface TextSettings {\n sizes: {\n default: TextProps['size'];\n };\n}\n\nconst textSettings: TextSettings = {\n sizes: {\n default: '36',\n },\n};\n\ninterface TextAreaSizes {\n default: TextAreaProps['size'];\n}\n\ninterface TextAreaSettings {\n sizes: TextAreaSizes;\n}\n\nconst textAreaSettings: TextAreaSettings = {\n sizes: {\n default: '36',\n },\n};\n\ninterface TextInputIcons {\n acceptIcon: Icon,\n clearIcon: Icon,\n dropdownIcon: Icon,\n searchIcon: Icon,\n}\n\ninterface TextInputSizes {\n default: TextInputProps['size'];\n}\n\ninterface TextInputSettings {\n icons: TextInputIcons;\n sizes: TextInputSizes;\n}\n\nconst textInputSettings: TextInputSettings = {\n icons: {\n acceptIcon: CheckIcon,\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n searchIcon: SearchIcon,\n },\n sizes: {\n default: '36',\n },\n};\n\ninterface BlockerSettings {\n renderSpinner?: BlockerProps['renderSpinner']\n}\n\nconst blockerSettings: BlockerSettings = {\n renderSpinner: () => <Spinner />,\n};\n\nexport const settings = {\n accordion: accordionSettings,\n alert: alertSettings,\n badge: badgeSettings,\n button: buttonSettings,\n blocker: blockerSettings,\n checkbox: checkboxSettings,\n countIndicator: countIndicatorSettings,\n dataTable: dataTableSettings,\n datePicker: datePickerSettings,\n dropdownMenu: dropdownMenuSettings,\n flexRow: flexRowSettings,\n fileCard: fileCardSettings,\n filtersPanel: filtersPanelSettings,\n iconButton: iconButtonSettings,\n labeledInput: labeledInputSettings,\n linkButton: linkButtonSettings,\n modal: modalSettings,\n notificationCard: notificationCardSettings,\n numericInput: numericInputSettings,\n paginator: paginatorSettings,\n pickerInput: pickerInputSettings,\n presetsPanel: presetsPanelSettings,\n radioInput: radioInputSettings,\n rangeDatePicker: rangeDatePickerSettings,\n rating: ratingSettings,\n richTextView: richTextViewSettings,\n statusIndicator: statusIndicatorSettings,\n switch: switchSettings,\n tabButton: tabButtonSettings,\n verticalTabButton: verticalTabButtonSettings,\n tag: tagSettings,\n text: textSettings,\n textArea: textAreaSettings,\n textInput: textInputSettings,\n};\n\nexport type Settings = typeof settings;\n\ntype DeepPartial<T> = T extends object ? {\n [P in keyof T]? : DeepPartial<T[P]>\n} : T;\n\nexport type PartialSettings = DeepPartial<Settings>;\n","import * as uuiComponents from '@epam/uui-components';\nimport type { Overwrite } from '@epam/uui-core';\nimport { withMods } from '@epam/uui-core';\nimport type { ControlSize } from '../types';\nimport { settings } from '../../settings';\nimport css from './Button.module.scss';\n\ntype ButtonMods = {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '18' | ControlSize | '60';\n /**\n * Defines component fill style.\n * @default 'solid'\n */\n fill?: 'solid' | 'outline' | 'ghost' | 'none';\n /**\n * Defines component color.\n * @default 'primary'\n */\n color?: 'accent' | 'primary' | 'critical' | 'secondary' | 'neutral' | 'white';\n};\nexport interface ButtonModsOverride {}\n\n/** Represents the 'Core properties' for the Button component. */\nexport type ButtonCoreProps = uuiComponents.ButtonProps;\n\n/** Represents the props for a Button component. */\nexport interface ButtonProps extends ButtonCoreProps, Overwrite<ButtonMods, ButtonModsOverride> {}\n\nfunction applyButtonMods(mods: ButtonProps) {\n return [\n css.root,\n 'uui-button',\n `uui-fill-${mods.fill || 'solid'}`,\n `uui-color-${mods.color || 'primary'}`,\n `uui-size-${mods.size || settings.button.sizes.default}`,\n ];\n}\n\nexport const Button = withMods<uuiComponents.ButtonProps, ButtonProps>(\n uuiComponents.Button,\n applyButtonMods,\n () => {\n return {\n dropdownIcon: settings.button.icons.dropdownIcon,\n clearIcon: settings.button.icons.clearIcon,\n };\n },\n);\n","import * as uuiComponents from '@epam/uui-components';\nimport { withMods, Overwrite, devLogger } from '@epam/uui-core';\nimport { settings } from '../../settings';\n\nimport css from './IconButton.module.scss';\n\ninterface IconButtonMods {\n /**\n * Defines component color.\n * @default 'neutral'\n */\n color?: 'info' | 'success' | 'error' | 'primary' | 'accent' | 'critical' | 'warning' | 'secondary' | 'neutral' | 'white';\n\n /**\n * Defines component size.\n */\n size?: '18' | '24' | '30' | '36';\n}\n\n/** Represents the Core properties of the IconButton component. */\nexport type IconButtonCoreProps = Omit<uuiComponents.IconButtonProps, 'size'>;\n\nexport interface IconButtonModsOverride {}\n\n/** Represents the properties of the IconButton component. */\nexport interface IconButtonProps extends IconButtonCoreProps, Overwrite<IconButtonMods, IconButtonModsOverride> {}\n\nfunction applyIconButtonMods(props: IconButtonProps) {\n return ['uui-icon_button', `uui-color-${props.color || 'neutral'}`, css.root];\n}\n\nexport const IconButton = withMods<uuiComponents.IconButtonProps, IconButtonProps>(\n uuiComponents.IconButton,\n applyIconButtonMods,\n (props) => {\n const isDeprecated = ['info', 'success', 'error', 'warning'].includes(props.color);\n if (__DEV__ && isDeprecated) {\n devLogger.warnAboutDeprecatedPropValue<IconButtonProps, 'color'>({\n component: 'IconButton',\n propName: 'color',\n propValue: props.color,\n condition: () => isDeprecated,\n });\n }\n return {\n dropdownIcon: props.dropdownIcon || settings.iconButton.icons.dropdownIcon,\n };\n },\n);\n","import { ButtonProps } from '@epam/uui-components';\n\nexport function getIconClass(props: ButtonProps) {\n const classList = {\n 'has-left-icon': false,\n 'has-right-icon': false,\n };\n\n if (props.onClear) {\n classList['has-right-icon'] = true;\n }\n\n if (props.isDropdown) {\n classList['has-right-icon'] = true;\n }\n\n if (props.icon) {\n classList[props.iconPosition !== 'right' ? 'has-left-icon' : 'has-right-icon'] = true;\n }\n\n return [classList['has-left-icon'] ? 'uui-has-left-icon' : 'uui-no-left-icon', classList['has-right-icon'] ? 'uui-has-right-icon' : 'uui-no-right-icon'];\n}\n","import * as React from 'react';\nimport cx from 'classnames';\nimport {\n Icon,\n devLogger,\n IDropdownToggler,\n IHasCaption,\n IHasIcon,\n uuiElement,\n Overwrite,\n ICanBeActive,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { getIconClass } from './helper';\nimport * as types from '../types';\nimport { settings } from '../../settings';\n\nimport css from './LinkButton.module.scss';\n\nconst DEFAULT_COLOR = 'primary';\n\ninterface LinkButtonMods {\n /**\n * Defines component color\n * @default 'primary'\n */\n color?: 'primary' | 'secondary' | 'accent' | 'critical' | 'white' | 'contrast';\n\n /**\n * Defines component size.\n * @default '36'\n */\n size?: types.ControlSize | '42';\n}\n\n/** Represents the Core properties of the LinkButton component. */\nexport interface LinkButtonCoreProps extends ClickableComponentProps, IDropdownToggler, IHasIcon, IHasCaption, ICanBeActive {\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /**\n * Defines component font-weight\n * @default 'semibold'\n */\n weight?: 'semibold' | 'regular';\n /**\n * Defines component underline style\n */\n underline?: 'solid' | 'dashed';\n}\n\nexport interface LinkButtonModsOverride {}\n\n/** Represents the properties of the LinkButton component. */\nexport interface LinkButtonProps extends LinkButtonCoreProps, Overwrite<LinkButtonMods, LinkButtonModsOverride> {}\n\nexport const LinkButton = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, LinkButtonProps>((props, ref) => {\n if (__DEV__ && props.color === 'contrast') {\n devLogger.warnAboutDeprecatedPropValue<LinkButtonProps, 'color'>({\n component: 'LinkButton',\n propName: 'color',\n propValue: props.color,\n propValueUseInstead: 'white',\n condition: () => props.color === 'contrast',\n });\n }\n\n const rootStyles = [\n 'uui-link_button',\n css.root,\n `uui-size-${props.size || settings.linkButton.sizes.default}`,\n ...getIconClass(props),\n `uui-color-${props.color || DEFAULT_COLOR}`,\n props.cx,\n ];\n\n const captionStyles = cx(\n uuiElement.caption,\n props.underline && `uui-underline-${props.underline}`,\n `uui-link-button-weight-${props.weight || settings.linkButton.weight}`,\n );\n\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.linkButton.icons.dropdownIcon;\n\n return (\n <Clickable\n { ...props }\n type=\"button\"\n cx={ rootStyles }\n ref={ ref }\n >\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ !props.isDisabled ? props.onIconClick : undefined }\n />\n ) }\n { props.caption && (\n <div className={ captionStyles }>{ props.caption }</div>\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ !props.isDisabled ? props.onIconClick : undefined } />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ DropdownIcon } flipY={ props.isOpen } />\n ) }\n </Clickable>\n );\n});\n","import React, { forwardRef } from 'react';\nimport cx from 'classnames';\nimport type { IHasCaption, IHasCX, Overwrite } from '@epam/uui-core';\nimport { settings } from '../../settings';\n\nimport css from './CountIndicator.module.scss';\n\ntype CountIndicatorMods = {\n /**\n * Defines component color.\n */\n color: 'neutral' | 'white' | 'info' | 'success' | 'warning' | 'critical';\n /**\n * Defines component size.\n * @default '24'\n */\n size?: '12' | '18' | '24';\n};\n\nexport interface CountIndicatorModsOverride {}\n\nexport type CountIndicatorCoreProps = IHasCaption & IHasCX;\n\nexport type CountIndicatorProps = CountIndicatorCoreProps & Overwrite<CountIndicatorMods, CountIndicatorModsOverride>;\n\nexport const CountIndicator = forwardRef<HTMLDivElement, CountIndicatorProps>((props, ref) => {\n return (\n <div\n ref={ ref }\n className={ cx([\n css.root,\n 'uui-count_indicator',\n `uui-size-${props.size || settings.countIndicator.sizes.default}`,\n props.color && `uui-color-${props.color}`,\n props.cx,\n ]) }\n >\n { props.caption }\n </div>\n );\n});\n","import React from 'react';\nimport {\n cx,\n Icon,\n IDropdownToggler,\n IHasCaption,\n IHasIcon,\n uuiElement,\n uuiMarkers,\n Overwrite,\n ICanBeActive, useIsActive, uuiMod,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { getIconClass } from './helper';\nimport { CountIndicator } from '../widgets/CountIndicator';\nimport { settings } from '../../settings';\n\nimport css from './TabButton.module.scss';\n\ntype TabButtonMods = {\n /**\n * Defines component size.\n * @default '48'\n */\n size?: '36' | '48' | '60';\n /** Defines is the component showing Notify */\n withNotify?: boolean;\n};\n\nexport interface TabButtonModsOverride {}\n\n/** Represents the properties of a TabButton component. */\nexport interface TabButtonProps extends Overwrite<TabButtonMods, TabButtonModsOverride>, ClickableComponentProps, IDropdownToggler, IHasIcon, IHasCaption, ICanBeActive {\n /** Call to clear toggler value */\n onClear?(e?: any): void;\n /** Icon for clear value button (usually cross) */\n clearIcon?: Icon;\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /** Count value to be placed in component */\n count?: React.ReactNode;\n}\n\nexport const TabButton = React.forwardRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement, TabButtonProps>((props, refExternal) => {\n const refLocal = React.useRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement | null>(null);\n const ref = refExternal ?? refLocal;\n\n const { isActive } = useIsActive({\n isLinkActive: props.isLinkActive,\n link: props.link,\n isActive: props.isActive,\n });\n\n const styles = [\n isActive && uuiMod.active,\n css.root,\n 'uui-tab-button',\n `uui-size-${props.size || settings.tabButton.sizes.default}`,\n ...getIconClass(props),\n props.cx,\n ];\n\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.tabButton.icons.dropdownIcon;\n const ClearIcon = props.clearIcon ? props.clearIcon : settings.tabButton.icons.clearIcon;\n\n const handleOnKeyDown = (event: React.KeyboardEvent<HTMLAnchorElement> & React.KeyboardEvent<HTMLButtonElement> & React.KeyboardEvent<HTMLSpanElement>): void => {\n props.rawProps?.onKeyDown?.(event);\n\n const isLink = (\n props.link !== undefined\n || props.href !== undefined\n );\n\n if (\n isLink\n && event.code === 'Space'\n && typeof ref != 'function'\n ) {\n ref.current?.click();\n }\n };\n\n return (\n <Clickable\n { ...props }\n rawProps={ {\n role: 'tab',\n 'aria-haspopup': props.isDropdown,\n 'aria-expanded': props.isOpen,\n ...props.rawProps,\n onKeyDown: handleOnKeyDown,\n } }\n cx={ styles }\n ref={ ref }\n >\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ !props.isDisabled ? props.onIconClick : undefined }\n />\n ) }\n { (props.caption || props.withNotify) && (\n <div className={ cx(uuiElement.caption) }>\n { props.caption }\n { props.withNotify && <div className={ css.withNotify } /> }\n </div>\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ !props.isDisabled ? props.onIconClick : undefined } />\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n color=\"neutral\"\n size={ settings.tabButton.sizes.countIndicatorMap[props.size || settings.tabButton.sizes.default] }\n caption={ props.count }\n />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ DropdownIcon } flipY={ props.isOpen } />\n )}\n { props.onClear && !props.isDisabled && (\n <IconContainer cx={ uuiMarkers.clickable } icon={ ClearIcon } onClick={ props.onClear } />\n ) }\n </Clickable>\n );\n});\n","import { AvatarStack as uuiAvatarStack, AvatarStackProps } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport css from './AvatarStack.module.scss';\n\nexport const AvatarStack = withMods<AvatarStackProps, AvatarStackProps>(uuiAvatarStack, () => [css.root]);\n","import React from 'react';\nimport {\n Icon, IDropdownToggler, IHasCaption, IHasIcon, Overwrite, uuiElement,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { CountIndicator } from './CountIndicator';\n\nimport { settings } from '../../settings';\nimport css from './Badge.module.scss';\n\nconst DEFAULT_FILL = 'solid';\n\ntype BadgeMods = {\n /** Defines component color. */\n color?: 'info' | 'success' | 'warning' | 'critical' | 'neutral';\n /**\n * Defines component fill style.\n * @default 'solid'\n */\n fill?: 'solid' | 'outline';\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '18' | '24' | '30' | '36' | '42' | '48';\n};\n\nexport interface BadgeModsOverride {}\n\nexport interface BadgeCoreProps extends ClickableComponentProps, IDropdownToggler, IHasIcon, IHasCaption {\n /** Pass true to display an indicator. It shows only if fill = 'outline'. */\n indicator?: boolean;\n /**\n * Position of the icon (left of right)\n * @default 'left'\n */\n iconPosition?: 'left' | 'right';\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /** Count value to be placed in component */\n count?: React.ReactNode;\n}\n\n/** Represents the properties of a Badge component. */\nexport interface BadgeProps extends BadgeCoreProps, Overwrite<BadgeMods, BadgeModsOverride> {}\n\nfunction applyBadgeMods(mods: BadgeProps) {\n return [\n 'uui-badge',\n css.root,\n `uui-size-${mods.size || settings.badge.sizes.default}`,\n `uui-fill-${mods.fill || DEFAULT_FILL}`,\n `uui-color-${mods.color || 'info'}`,\n ];\n}\n\nexport const Badge = React.forwardRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement, BadgeProps>((props, ref) => {\n const styles = [applyBadgeMods(props), props.cx];\n\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.badge.icons.dropdownIcon;\n\n return (\n <Clickable\n { ...props }\n rawProps={ {\n 'aria-haspopup': props.isDropdown,\n 'aria-expanded': props.isOpen,\n ...props.rawProps,\n } }\n cx={ styles }\n ref={ ref }\n >\n {(props.indicator && props.fill === 'outline') && (\n <div className=\"uui-indicator\"></div>\n )}\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ !props.isDisabled ? props.onIconClick : undefined }\n />\n ) }\n { props.caption && (\n <div className={ uuiElement.caption }>\n { props.caption }\n </div>\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n key=\"count-indicator\"\n color={ null }\n size={ settings.badge.sizes.countIndicatorMap[props.size || settings.badge.sizes.default] }\n caption={ props.count }\n />\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ !props.isDisabled ? props.onIconClick : undefined } />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ DropdownIcon } flipY={ props.isOpen } />\n )}\n </Clickable>\n );\n});\n","import React from 'react';\nimport {\n Icon, IDropdownToggler, IHasCaption, IHasIcon, Overwrite, uuiElement,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, ControlIcon } from '@epam/uui-components';\nimport { CountIndicator } from './CountIndicator';\nimport { settings } from '../../settings';\n\nimport css from './Tag.module.scss';\n\ninterface TagMods {\n /**\n * Defines component color.\n * @default 'neutral'\n */\n color?: 'info' | 'success' | 'warning' | 'critical' | 'neutral';\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '18' | '24' | '30' | '36' | '42' | '48';\n}\n\nexport interface TagModsOverride {}\n\n/** Represents the Core properties of the Tag component. */\nexport type TagCoreProps = ClickableComponentProps & IDropdownToggler & IHasIcon & IHasCaption & {\n /**\n * Defines component fill style.\n * @default 'solid'\n */\n fill?: 'solid' | 'outline';\n /** Call to clear toggler value */\n onClear?(e?: any): void;\n /** Icon for clear value button (usually cross) */\n clearIcon?: Icon;\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /** Count value to be placed in component */\n count?: React.ReactNode;\n};\n\n/** Represents the properties of the Tag component. */\nexport interface TagProps extends TagCoreProps, Overwrite<TagMods, TagModsOverride> {}\n\nfunction applyTagMods(props: TagProps) {\n return [\n css.root,\n `uui-size-${props.size || settings.tag.sizes.default}`,\n `uui-color-${props.color || 'neutral'}`,\n `uui-fill-${props.fill || 'solid'}`,\n 'uui-tag',\n ];\n}\n\nexport const Tag = React.forwardRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement, TagProps>((props, ref) => {\n const styles = [applyTagMods(props), props.cx];\n\n const ClearIcon = props.clearIcon ? props.clearIcon : settings.tag.icons.clearIcon;\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.tag.icons.dropdownIcon;\n\n const icon = (\n <ControlIcon\n icon={ props.icon }\n onClick={ props.onIconClick }\n isDisabled={ props.isDisabled }\n rawProps={ {\n 'aria-label': 'Icon in input',\n } }\n />\n );\n\n return (\n <Clickable\n { ...props }\n rawProps={ {\n 'aria-haspopup': props.isDropdown,\n 'aria-expanded': props.isOpen,\n ...props.rawProps,\n } }\n cx={ styles }\n ref={ ref }\n >\n { props.iconPosition !== 'right' && icon }\n { props.caption && (\n <div className={ uuiElement.caption }>\n { props.caption }\n </div>\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n color={ (!props.color || props.color === 'neutral') ? 'white' : props.color }\n size={ settings.tag.sizes.countIndicatorMap[(props.size || settings.tag.sizes.default)] }\n caption={ props.count }\n />\n ) }\n { props.iconPosition === 'right' && icon }\n { props.isDropdown && (\n <ControlIcon icon={ DropdownIcon } flipY={ props.isOpen } />\n )}\n { props.onClear && !props.isDisabled && (\n <ControlIcon\n cx=\"uui-icon-cancel\"\n icon={ ClearIcon }\n onClick={ props.onClear }\n rawProps={ {\n 'aria-label': 'Remove tag',\n } }\n />\n ) }\n </Clickable>\n );\n});\n","import React from 'react';\nimport cx from 'classnames';\nimport type { Overwrite } from '@epam/uui-core';\nimport { Paginator as UuiPaginator, PaginatorRenderParams, PaginatorProps as UuiPaginatorProps } from '@epam/uui-components';\nimport { Button } from '../buttons/Button';\nimport { settings } from '../../settings';\n\nimport css from './Paginator.module.scss';\n\nexport interface PaginatorModsOverride {}\n\ninterface PaginatorMods {\n /**\n * Defines component size\n * @default '30'\n * */\n size?: '24' | '30';\n}\n\nexport interface PaginatorProps extends UuiPaginatorProps, Overwrite<PaginatorMods, PaginatorModsOverride> {}\n\nexport function Paginator(props: PaginatorProps) {\n const renderPaginator = (params: PaginatorRenderParams) => (\n <nav role=\"navigation\" className={ cx('uui-paginator', `uui-size-${props.size || settings.paginator.sizes.default}`) } { ...params.rawProps }>\n <ul\n className={ css.root }\n >\n <li>\n <Button\n size={ props.size || settings.paginator.sizes.default }\n icon={ settings.paginator.icons.leftArrowIcon }\n onClick={ params.goToPrev }\n isDisabled={ params.isFirst || props.isDisabled }\n fill=\"outline\"\n color=\"secondary\"\n rawProps={ {\n 'aria-label': 'Previous page',\n } }\n />\n </li>\n {params.pages.map((page, index) => {\n if (page.type === 'spacer') {\n return (\n <li\n key={ `${index}_spacer` }\n >\n <Button\n cx={ cx(css.spacer, css.page) }\n size={ props.size || settings.paginator.sizes.default }\n caption=\"...\"\n fill=\"ghost\"\n color=\"secondary\"\n tabIndex={ -1 }\n isDisabled={ props.isDisabled }\n />\n </li>\n );\n } else {\n return (\n <li\n key={ page.pageNumber }\n >\n <Button\n cx={ cx(css[`mode-${!page.isActive && 'ghost'}`], css.page) }\n size={ props.size || settings.paginator.sizes.default }\n caption={ page.pageNumber }\n onClick={ () => page.onClick?.() }\n rawProps={ { 'aria-current': page.isActive } }\n fill={ (page.isActive && 'outline') || 'ghost' }\n color=\"primary\"\n isDisabled={ props.isDisabled }\n />\n </li>\n );\n }\n })}\n <li>\n <Button\n size={ props.size || settings.paginator.sizes.default }\n icon={ settings.paginator.icons.rightArrowIcon }\n onClick={ params.goToNext }\n isDisabled={ params.isLast || props.isDisabled }\n fill=\"outline\"\n color=\"secondary\"\n rawProps={ {\n 'aria-label': 'Next page',\n } }\n />\n </li>\n </ul>\n </nav>\n );\n\n return <UuiPaginator { ...props } render={ renderPaginator } />;\n}\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IHasCX } from '@epam/uui-core';\nimport css from './IndeterminateBar.module.scss';\n\nexport interface IndeterminateBarMods extends IHasCX {\n /** Component size */\n size?: '12' | '18' | '24';\n}\n\nexport const IndeterminateBar = React.forwardRef<HTMLDivElement, IndeterminateBarMods>((props, ref) => {\n return (\n <div ref={ ref } className={ cx('uui-indeterminate_bar', props.cx, css.root, css[`size-${props.size || 12}`]) }>\n <div className={ cx(css.progressBar) } />\n </div>\n );\n});\n","import * as uui from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport css from './ProgressBar.module.scss';\n\nconst DEFAULT_SIZE = '12';\n\ninterface ProgressBarMods {\n /**\n * Defines component size.\n * @default '12'\n */\n size?: '12' | '18' | '24';\n /**\n * To show ProgressBar with striped animation. The striped progress bar has no label.\n */\n striped?: boolean;\n}\n\nexport type ProgressBarProps = uui.ProgressBarProps & ProgressBarMods;\n\nfunction applyProgressBarMods(mods: ProgressBarMods) {\n const size = mods.size || DEFAULT_SIZE;\n\n return [\n css.root,\n css[`size-${size}`],\n mods.striped && css.striped,\n ];\n}\n\nexport const ProgressBar = withMods<uui.ProgressBarProps, ProgressBarProps>(\n uui.ProgressBar,\n applyProgressBarMods,\n (props) => ({\n hideLabel: props.hideLabel || props.striped,\n }),\n);\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { ProgressBar } from './ProgressBar';\nimport { IndeterminateBar } from './IndeterminateBar';\nimport css from './IndicatorBar.module.scss';\n\ninterface IIndicatorProps extends IHasCX, IHasRawProps<HTMLDivElement> {\n progress?: number;\n}\n\nexport const IndicatorBar = React.forwardRef<HTMLDivElement, IIndicatorProps>((props, ref) => {\n const { progress } = props;\n\n return progress || progress === 0 ? (\n <ProgressBar ref={ ref } progress={ progress } cx={ cx(css.root, props.cx) } hideLabel />\n ) : (\n <IndeterminateBar ref={ ref } cx={ cx(css.root, props.cx) } />\n );\n});\n","import React, { forwardRef } from 'react';\nimport cx from 'classnames';\nimport type { IHasCX, Overwrite } from '@epam/uui-core';\nimport { settings } from '../../settings';\n\nimport css from './StatusIndicator.module.scss';\n\ntype StatusIndicatorColor = 'neutral' | 'info' | 'success' | 'warning' | 'critical';\n\ntype StatusIndicatorMods = {\n /**\n * Component color.\n * @default 'neutral'\n */\n color?: StatusIndicatorColor;\n};\n\nexport interface StatusIndicatorModsOverride {}\n\nexport type StatusIndicatorCoreProps = IHasCX & {\n /**\n * Component size. If omitted, 24 size will be used.\n * @default '24'\n */\n size?: '24' | '18' | '12';\n /**\n * Fill mode, solid is used by default\n * @default 'solid'\n */\n fill?: 'solid' | 'outline';\n /** Component caption. */\n caption: string;\n};\n\nexport type StatusIndicatorProps = StatusIndicatorCoreProps & Overwrite<StatusIndicatorMods, StatusIndicatorModsOverride>;\n\nexport const StatusIndicator = forwardRef<HTMLDivElement, StatusIndicatorProps>((props, ref) => {\n return (\n <div\n ref={ ref }\n className={ cx([\n css.root,\n `uui-size-${props.size || settings.statusIndicator.sizes.default}`,\n 'uui-status_indicator',\n `uui-color-${props.color || 'neutral'}`,\n `uui-fill-${props.fill || 'solid'}`,\n props.cx,\n ]) }\n >\n <div className=\"uui-status_indicator-dot\"></div>\n <p className=\"uui-status_indicator-caption\">{props.caption}</p>\n </div>\n );\n});\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './Checkbox.module.scss';\n\ninterface CheckboxMods {\n /**\n * Defines component size.\n * @default '18'\n */\n size?: '12' | '18';\n /**\n * Defines the different edit modes.\n * @default 'form'\n */\n mode?: 'form' | 'cell';\n}\n\nexport interface CheckboxModsOverride {}\n\n/** Represents the properties of the Checkbox component. */\nexport interface CheckboxProps extends uuiComponents.CheckboxProps, Overwrite<CheckboxMods, CheckboxModsOverride> {}\n\nfunction applyCheckboxMods(mods: CheckboxMods) {\n return [\n css.root,\n `uui-size-${mods.size || settings.checkbox.sizes.default}`,\n 'uui-control-mode-' + (mods.mode || 'form'),\n 'uui-color-primary',\n ];\n}\n\nconst applyUUICheckboxProps = (props: CheckboxProps) => {\n return {\n icon: props.icon ? props.icon : settings.checkbox.icons.checkIcon,\n indeterminateIcon: props.indeterminateIcon ? props.indeterminateIcon : settings.checkbox.icons.indeterminateIcon,\n };\n};\n\nexport const Checkbox = withMods<uuiComponents.CheckboxProps, CheckboxProps>(\n uuiComponents.Checkbox,\n applyCheckboxMods,\n applyUUICheckboxProps,\n);\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport { RadioInput as uuiRadioInput, RadioInputProps as uuiRadioInputProps } from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './RadioInput.module.scss';\n\ntype RadioInputMods = {\n /**\n * Defines component size.\n * @default '18'\n */\n size?: '12' | '18';\n};\n\nexport interface RadioInputModsOverride {}\n\n/** Represents the properties of a RadioInput component. */\nexport interface RadioInputProps extends uuiRadioInputProps, Overwrite<RadioInputMods, RadioInputModsOverride> {}\n\nfunction applyRadioInputMods(mods: RadioInputProps) {\n return [\n css.root,\n `uui-size-${mods.size || settings.radioInput.sizes.default}`,\n 'uui-radio-input-container',\n 'uui-color-primary',\n ];\n}\n\nexport const RadioInput = withMods<uuiRadioInputProps, RadioInputProps>(\n uuiRadioInput,\n applyRadioInputMods,\n (props) => ({ icon: props.icon ? props.icon : settings.radioInput.icons.dotIcon }),\n);\n","import { withMods } from '@epam/uui-core';\nimport type { Overwrite } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './Switch.module.scss';\n\ninterface SwitchMods {\n /**\n * Defines component size.\n * @default '18'\n */\n size?: '12' | '18' | '24';\n}\n\nexport interface SwitchModsOverride {}\n\n/** Represents the properties of the Switch component. */\nexport interface SwitchProps extends uuiComponents.SwitchProps, Overwrite<SwitchMods, SwitchModsOverride> {}\n\nfunction applySwitchMods(mods: SwitchProps) {\n return [\n css.root,\n `uui-size-${mods.size || settings.switch.sizes.default}`,\n 'uui-color-primary',\n ];\n}\n\nexport const Switch = withMods<uuiComponents.SwitchProps, SwitchProps>(uuiComponents.Switch, applySwitchMods);\n","/**\n * Defines the size of a control.\n */\nexport type ControlSize = '24' | '30' | '36' | '42' | '48';\n\nexport interface SizeMod {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: ControlSize;\n}\n\n/** Component can adjust visuals for different contexts: forms, tables cells, on in WYSIWYG UX */\nexport interface IHasEditMode {\n /**\n * Visual mode for component:\n * - form: default visuals, to use in forms.\n * - cell: adjust to embed as table cell editor: no borders, no focus (it is applied by DataCell)\n * - inline: adjust for WYSIWYG UX. Backgrounds removed. Borders appear only on hover.\n */\n mode?: 'form' | 'cell' | 'inline';\n}\n\n/**\n * Defines the different edit modes.\n */\nexport enum EditMode {\n /** Defines edit mode for form */\n FORM = 'form',\n /** Defines edit mode for cell in tables */\n CELL = 'cell',\n /** Defines edit mode for inline elements */\n INLINE = 'inline'\n}\n","import React from 'react';\nimport { withMods, IEditableDebouncer, IEditableDebouncerOptions, Overwrite } from '@epam/uui-core';\nimport { TextInput as uuiTextInput, TextInputProps as CoreTextInputProps } from '@epam/uui-components';\nimport { IHasEditMode, EditMode, ControlSize } from '../types';\nimport { settings } from '../../settings';\n\nimport css from './TextInput.module.scss';\n\nconst DEFAULT_MODE = EditMode.FORM;\n\ntype TextInputMods = IHasEditMode & {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: ControlSize | '60';\n};\n\nexport interface TextInputModsOverride {}\n\nfunction applyTextInputMods(mods: CoreTextInputProps & TextInputMods) {\n return [\n css.root,\n `uui-size-${mods.size || settings.textInput.sizes.default}`,\n 'uui-control-mode-' + (mods.mode || DEFAULT_MODE),\n ];\n}\n\n/** Represents the properties for a TextInput component. */\nexport interface TextInputProps extends CoreTextInputProps, Overwrite<TextInputMods, TextInputModsOverride> {}\n\n/** Represents the properties for a SearchInput component. */\nexport interface SearchInputProps extends TextInputProps, IEditableDebouncerOptions {}\n\nexport const TextInput = withMods<CoreTextInputProps, TextInputProps>(uuiTextInput, applyTextInputMods, () => ({\n acceptIcon: settings.textInput.icons.acceptIcon,\n cancelIcon: settings.textInput.icons.clearIcon,\n dropdownIcon: settings.textInput.icons.dropdownIcon,\n}));\n\nexport const SearchInput = React.forwardRef<HTMLInputElement, SearchInputProps>((props, ref) => {\n // analytics events are sending in IEditableDebouncer, so we need to avoid sending events in TextInput\n const { ...textInputProps } = props;\n delete textInputProps.getValueChangeAnalyticsEvent;\n\n return (\n <IEditableDebouncer\n { ...props }\n render={ (iEditable) => {\n const defaultOnCancel = () => iEditable.onValueChange('');\n\n return (\n <TextInput\n icon={ settings.textInput.icons.searchIcon }\n onCancel={ props.onCancel ?? defaultOnCancel }\n type=\"search\"\n inputMode=\"search\"\n ref={ ref }\n { ...textInputProps }\n { ...iEditable }\n />\n );\n } }\n />\n );\n});\n","import css from './ControlGroup.module.scss';\nimport { withMods } from '@epam/uui-core';\nimport { ControlGroup as uuiControlGroup, ControlGroupProps } from '@epam/uui-components';\n\nexport const ControlGroup = withMods<ControlGroupProps, ControlGroupProps>(uuiControlGroup, () => [css.root, 'uui-control-group']);\n","import * as React from 'react';\nimport { IEditable, IHasRawProps, Overwrite } from '@epam/uui-core';\nimport { ControlGroup } from '../layout/ControlGroup';\nimport { Button, ButtonProps } from '../buttons';\n\nimport type { JSX } from 'react';\n\ntype MultiSwitchItem = ButtonProps & {\n /**\n * Defines the id of MultiSwitchItem.\n */\n id: any;\n};\n\ninterface MultiSwitchMods {\n /**\n * Defines component color.\n * @default 'primary'\n */\n color?: 'primary' | 'secondary';\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48' | '60';\n}\n\nexport interface MultiSwitchModsOverride {}\n\n/** Represents the 'Core properties' for the MultiSwitch component. */\nexport type MultiSwitchCoreProps<TValue> = IEditable<TValue> & IHasRawProps<React.HTMLAttributes<HTMLDivElement>> & {\n /**\n * Defines an array of MultiSwitchItems.\n */\n items: MultiSwitchItem[];\n};\n\n/** Represents the properties for the MultiSwitch component. */\nexport type MultiSwitchProps<TValue = unknown> = MultiSwitchCoreProps<TValue> & Overwrite<MultiSwitchMods, MultiSwitchModsOverride>;\n\nfunction MultiSwitchComponent<TValue>(props: MultiSwitchProps<TValue>, ref: React.ForwardedRef<HTMLDivElement>) {\n return (\n <ControlGroup\n ref={ ref }\n rawProps={ {\n ...props.rawProps,\n role: 'tablist',\n 'aria-invalid': props.isInvalid,\n 'aria-required': props.isRequired,\n 'aria-disabled': props.isDisabled,\n 'aria-readonly': props.isReadonly,\n } }\n >\n {props.items.map((item, index) => (\n <Button\n { ...props }\n { ...item }\n isDisabled={ props.isDisabled }\n key={ index + '-' + item.id }\n onClick={ !props.isReadonly && (() => props.onValueChange(item.id)) }\n fill={ props.value === item.id ? 'solid' : 'outline' }\n color={ props.color }\n size={ props.size }\n rawProps={ { 'aria-current': props.value === item.id, role: 'tab' } }\n />\n ))}\n </ControlGroup>\n );\n}\n\nexport const MultiSwitch = React.forwardRef(MultiSwitchComponent) as <TValue>(props: MultiSwitchProps<TValue>) => JSX.Element;\n","import { withMods, Overwrite } from '@epam/uui-core';\nimport { NumericInput as uuiNumericInput, NumericInputProps as uuiNumericInputProps } from '@epam/uui-components';\nimport { EditMode, IHasEditMode } from '../types';\nimport { settings } from '../../settings';\n\nimport textInputCss from './TextInput.module.scss';\nimport css from './NumericInput.module.scss';\n\nconst DEFAULT_MODE = EditMode.FORM;\n\ntype NumericInputMods = IHasEditMode & {\n /**\n * Defines component size\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\nexport interface NumericInputModsOverride {}\n\nfunction applyNumericInputMods(mods: NumericInputMods) {\n return [\n textInputCss.root,\n css.root,\n `uui-size-${mods.size || settings.numericInput.sizes.default}`,\n 'uui-control-mode-' + (mods.mode || DEFAULT_MODE),\n ];\n}\n\n/** Represents the properties of a NumericInput component. */\nexport interface NumericInputProps extends uuiNumericInputProps, Overwrite<NumericInputMods, NumericInputModsOverride> {}\n\nexport const NumericInput = withMods<uuiNumericInputProps, NumericInputProps>(\n uuiNumericInput,\n applyNumericInputMods,\n (props) => {\n return {\n upIcon: settings.numericInput.icons.arrowIcon,\n downIcon: settings.numericInput.icons.arrowIcon,\n align: props.align ?? (props.mode === 'cell' ? 'right' : 'left'),\n disableArrows: props.disableArrows ?? props.mode === 'cell',\n };\n },\n);\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport { TextArea as uuiTextArea, TextAreaProps as uuiTextAreaProps } from '@epam/uui-components';\nimport * as types from '../types';\nimport { settings } from '../../settings';\n\nimport css from './TextArea.module.scss';\n\nconst DEFAULT_MODE = types.EditMode.FORM;\n\ntype TextAreaMods = types.IHasEditMode & {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\nexport interface TextAreaModsOverride {}\n\nfunction applyTextAreaMods(mods: TextAreaMods) {\n return [\n css.root,\n 'uui-textarea',\n 'uui-size-' + (mods.size || settings.textArea.sizes.default),\n 'uui-control-mode-' + (mods.mode || DEFAULT_MODE),\n ];\n}\n\n/** Represents the properties of a TextArea component. */\nexport interface TextAreaProps extends uuiTextAreaProps, Overwrite<TextAreaMods, TextAreaModsOverride> {}\n\nexport const TextArea = withMods<uuiTextAreaProps, TextAreaProps>(\n uuiTextArea,\n applyTextAreaMods,\n (props) => {\n return {\n autoSize: props.mode === types.EditMode.CELL ? true : props.autoSize,\n };\n },\n);\n","/* eslint-disable no-restricted-imports */\nimport dayjs from 'dayjs';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport localeData from 'dayjs/plugin/localeData.js';\nimport isToday from 'dayjs/plugin/isToday.js';\nimport updateLocale from 'dayjs/plugin/updateLocale.js';\nimport objectSupport from 'dayjs/plugin/objectSupport';\nimport customParseFormat from 'dayjs/plugin/customParseFormat.js';\nimport isoWeek from 'dayjs/plugin/isoWeek.js';\n\nexport type { Dayjs } from 'dayjs';\n\nexport const uuiDayjs = TREE_SHAKEABLE_INIT();\n\nfunction TREE_SHAKEABLE_INIT() {\n let extended = false;\n return {\n get dayjs() {\n if (!extended) {\n dayjs.extend(isSameOrBefore);\n dayjs.extend(isSameOrAfter);\n //\n dayjs.extend(isToday);\n //\n dayjs.extend(localeData);\n dayjs.extend(updateLocale);\n dayjs.extend(objectSupport);\n dayjs.extend(customParseFormat);\n dayjs.extend(isoWeek);\n extended = true;\n }\n return dayjs;\n },\n };\n}\n","import { withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport css from './DropdownContainer.module.scss';\n\ninterface DropdownContainerMods {\n /**\n * Defines vertical padding.\n */\n vPadding?: '6' | '12' | '18' | '24' | '30' | '48';\n /**\n * Defines horizontal padding.\n */\n padding?: '6' | '12' | '18' | '24' | '30';\n}\n\n/** Represents the properties of a DropdownContainer component. */\nexport interface DropdownContainerProps extends uuiComponents.DropdownContainerProps, DropdownContainerMods {}\n\nfunction applyDropdownContainerMods(mods: DropdownContainerMods) {\n return [\n css.root,\n mods.vPadding && `vPadding-${mods.vPadding}`,\n mods.padding && `padding-${mods.padding}`,\n ];\n}\n\nexport const DropdownContainer = withMods<uuiComponents.DropdownContainerProps, DropdownContainerProps>(uuiComponents.DropdownContainer, applyDropdownContainerMods);\n","import * as React from 'react';\nimport { cx } from '@epam/uui-core';\nimport { IconContainer, NumericInput, TextInput } from '@epam/uui-components';\nimport { uuiDayjs } from '../../../helpers/dayJsHelper';\nimport type { Dayjs } from '../../../helpers/dayJsHelper';\nimport { TimePickerBodyProps } from './types';\nimport { ReactComponent as ArrowIcon } from '@epam/assets/icons/navigation-chevron_down-outline.svg';\nimport css from './TimePicker.module.scss';\n\nexport const uuiTimePicker = {\n container: 'uui-timepicker-container',\n iconUp: 'uui-timepicker-icon-up',\n iconDown: 'uui-timepicker-icon-down',\n input: 'uui-timepicker-input',\n elementContainer: 'uui-timepicker-item',\n} as const;\n\nconst MIN_MINUTES: number = 0;\nconst MAX_MINUTES: number = 59;\nconst FORMAT_12H: number = 12;\n\nexport function TimePickerBody(props: TimePickerBodyProps) {\n const MIN_HOURS = props.format === FORMAT_12H ? 1 : 0;\n const MAX_HOURS = props.format || FORMAT_12H;\n\n const setValue = (newTime: Dayjs) => {\n props.onValueChange({ hours: newTime.hour(), minutes: newTime.minute() });\n };\n\n const onHoursChange = (newHours: number) => {\n setValue(uuiDayjs.dayjs().set(props.value).hour(newHours));\n };\n\n const onMinutesChange = (newMinutes: number) => {\n setValue(uuiDayjs.dayjs().set(props.value).minute(newMinutes));\n };\n\n const onTimeTypeChange = () => {\n setValue(uuiDayjs.dayjs().set(props.value).add(12, 'h'));\n };\n\n const handleMinutesUpClick = () => {\n const minutesStep: number = props.minutesStep || 5;\n const value: Dayjs = uuiDayjs.dayjs().set(props.value);\n const minutesToAdd: number = minutesStep - (value.minute() % minutesStep);\n onMinutesChange(value.add(minutesToAdd, 'm').minute());\n };\n\n const handleMinutesDownClick = () => {\n const minutesStep: number = props.minutesStep || 5;\n const value: Dayjs = uuiDayjs.dayjs().set(props.value);\n const minutesToSubtract: number = value.minute() % minutesStep === 0 ? minutesStep : value.minute() % minutesStep;\n onMinutesChange(value.subtract(minutesToSubtract, 'm').minute());\n };\n\n return (\n <div className={ cx(css.root, uuiTimePicker.container, props.cx) } ref={ props.forwardedRef } { ...props.rawProps }>\n <div className={ css.ltrAlways }>\n <div className={ uuiTimePicker.elementContainer }>\n <IconContainer\n size={ 18 }\n rawProps={ { 'aria-label': 'Increment hours' } }\n cx={ uuiTimePicker.iconUp }\n icon={ ArrowIcon }\n onClick={ () => onHoursChange(uuiDayjs.dayjs().set(props.value).add(1, 'h').hour()) }\n />\n <NumericInput\n cx={ uuiTimePicker.input }\n onValueChange={ onHoursChange }\n value={\n +(uuiDayjs.dayjs()\n .set(props.value)\n .format(MAX_HOURS === FORMAT_12H ? 'hh' : 'HH'))\n }\n isReadonly={ true }\n min={ MIN_HOURS }\n max={ MAX_HOURS }\n />\n <IconContainer\n size={ 18 }\n rawProps={ { 'aria-label': 'Decrement hours' } }\n cx={ uuiTimePicker.iconDown }\n icon={ ArrowIcon }\n onClick={ () => onHoursChange(uuiDayjs.dayjs().set(props.value).subtract(1, 'h').hour()) }\n />\n </div>\n <div className={ uuiTimePicker.elementContainer }>\n <IconContainer\n size={ 18 }\n rawProps={ { 'aria-label': 'Increment minutes' } }\n cx={ uuiTimePicker.iconUp }\n icon={ ArrowIcon }\n onClick={ handleMinutesUpClick }\n />\n <NumericInput\n cx={ uuiTimePicker.input }\n onValueChange={ onMinutesChange }\n value={ +uuiDayjs.dayjs().set(props.value).format('m') }\n isReadonly={ true }\n min={ MIN_MINUTES }\n max={ MAX_MINUTES }\n />\n <IconContainer\n size={ 18 }\n rawProps={ { 'aria-label': 'Decrement minutes' } }\n cx={ uuiTimePicker.iconDown }\n icon={ ArrowIcon }\n onClick={ handleMinutesDownClick }\n />\n </div>\n </div>\n { MAX_HOURS === FORMAT_12H && (\n <div className={ uuiTimePicker.elementContainer }>\n <IconContainer\n size={ 18 }\n cx={ uuiTimePicker.iconUp }\n icon={ ArrowIcon }\n onClick={ onTimeTypeChange }\n />\n <TextInput\n cx={ uuiTimePicker.input }\n onValueChange={ () => {\n } }\n isReadonly={ true }\n value={ uuiDayjs.dayjs().set(props.value).format('A') }\n />\n <IconContainer\n size={ 18 }\n cx={ uuiTimePicker.iconDown }\n icon={ ArrowIcon }\n onClick={ onTimeTypeChange }\n />\n </div>\n ) }\n </div>\n );\n}\n","export const getMeridian = (newValue: string, format: 'HH:mm' | 'hh:mm A'): false | 'AM' | 'PM' => {\n if (format === 'hh:mm A') {\n if (newValue.toLowerCase().includes('p') && newValue.toLowerCase().includes('a')) {\n return newValue.toLowerCase().indexOf('p') < newValue.toLowerCase().indexOf('a') ? 'PM' : 'AM';\n }\n return newValue.toLowerCase().includes('p') ? 'PM' : 'AM';\n }\n return false;\n};\n\nexport const parseTimeNumbers = (value: string, separator: number): { hours: number, minutes: number } => {\n let hours: number, minutes: number;\n const timeNumbers = value.replace(/\\D/gi, '');\n\n switch (separator) {\n case 0:\n hours = 0;\n minutes = parseInt(timeNumbers.trim().slice(0, 2));\n break;\n case 1:\n hours = parseInt(timeNumbers.slice(0, 1));\n minutes = parseInt(timeNumbers.slice(1, 3));\n break;\n default:\n hours = parseInt(timeNumbers.slice(0, 2));\n minutes = parseInt(timeNumbers.slice(2, 4));\n }\n return { hours, minutes };\n};\n\nexport const formatTime = (hours: number, minutes: number, meridian: 'AM' | 'PM' | false, format: 'HH:mm' | 'hh:mm A'): string => {\n const normalizeHours = (h: number) => Number.isNaN(h) ? '00' : h.toString().padStart(2, '0');\n const normalizeMinutes = (m: number) => Number.isNaN(m) ? '00' : m.toString().padStart(2, '0');\n\n if (meridian && normalizeHours(hours) === '00' && normalizeMinutes(minutes) === '00') {\n return '';\n }\n\n let hoursResult = Number.parseInt(normalizeHours(hours));\n let meridianResult = meridian;\n\n if ((format === 'hh:mm A') && hoursResult > 12) {\n hoursResult -= 12;\n meridianResult = 'PM';\n }\n\n if ((format === 'hh:mm A') && hoursResult === 0) {\n hoursResult = 12;\n }\n\n const time = `${normalizeHours(hoursResult)}:${normalizeMinutes(minutes)}`;\n\n return meridianResult ? time.concat(` ${meridianResult}`) : time;\n};\n","import React, { useEffect, useState } from 'react';\nimport { offset } from '@floating-ui/react';\nimport { Dropdown } from '@epam/uui-components';\nimport { DropdownBodyProps, IDropdownTogglerProps } from '@epam/uui-core';\nimport { uuiDayjs } from '../../../helpers/dayJsHelper';\nimport { DropdownContainer } from '../../overlays/DropdownContainer';\nimport { TextInput } from '../TextInput';\nimport { TimePickerBody } from './TimePickerBody';\nimport { EditMode } from '../../types';\nimport type { TimePickerProps, TimePickerValue } from './types';\nimport { formatTime, getMeridian, parseTimeNumbers } from './parseTimeHelper';\nimport css from './TimePicker.module.scss';\nimport isEqual from 'react-fast-compare';\n\nconst DEFAULT_MODE = EditMode.FORM;\n\nconst valueToTimeString = (value: TimePickerValue, format: TimePickerProps['format']) => {\n if (value === null || (value?.hours === null && value?.minutes === null)) return null;\n return uuiDayjs.dayjs()\n .set(value)\n .format(format === 24 ? 'HH:mm' : 'hh:mm A');\n};\n\nexport function TimePickerComponent(props: TimePickerProps, ref: React.ForwardedRef<HTMLElement>) {\n const [state, setState] = useState(\n {\n isOpen: false,\n value: valueToTimeString(props.value, props.format),\n inputValue: valueToTimeString(props.value, props.format),\n },\n );\n\n const targetRef = React.useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (valueToTimeString(props.value, props.format) !== state.value) {\n const stringValue = valueToTimeString(props.value, props.format);\n setState((prevState) => ({\n ...prevState,\n value: stringValue,\n inputValue: stringValue,\n }));\n }\n }, [props.value, props.format]);\n\n const getFormat = () => props.format === 24 ? 'HH:mm' : 'hh:mm A';\n\n const isTimeValid = (newValue: string) => uuiDayjs.dayjs(newValue, getFormat(), true).isValid();\n\n const formatStringTimeToObject = (stringTime: string | null) => {\n if (stringTime) {\n const value = uuiDayjs.dayjs(stringTime, getFormat(), true);\n return { hours: value.hour(), minutes: value.minute() };\n }\n return { hours: null, minutes: null };\n };\n\n const onClear = () => {\n props.onValueChange(null);\n setState((prevState) => ({ ...prevState, value: null, inputValue: null }));\n };\n\n const onToggle = (value: boolean) => {\n setState((prevState) => ({ ...prevState, isOpen: value }));\n };\n\n const saveTime = (newTime: string) => {\n setState((prevState) => ({ ...prevState, inputValue: newTime }));\n const newValue = formatStringTimeToObject(newTime);\n\n if (!isEqual(props.value, newValue)) {\n props.onValueChange(formatStringTimeToObject(newTime));\n }\n };\n\n const getTimeFromInputValue = (newValue: string) => {\n const trimmedNewValue = newValue.trimStart();\n const separator = trimmedNewValue.search(/\\D/);\n const meridian = getMeridian(trimmedNewValue, getFormat());\n const { hours, minutes } = parseTimeNumbers(trimmedNewValue, separator);\n return formatTime(hours, minutes, meridian, getFormat());\n };\n\n const handleBodyValueChange = (newValue: TimePickerValue) => {\n const inputValue = valueToTimeString(newValue, props.format);\n saveTime(inputValue);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n props.onFocus?.(e);\n };\n\n const handleInputChange = (newValue: string) => {\n setState((prevState) => ({ ...prevState, inputValue: newValue }));\n\n if (newValue) {\n const result = getTimeFromInputValue(newValue);\n if (isTimeValid(result)) {\n setState((prevState) => ({ ...prevState, value: result }));\n }\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n props.onBlur?.(e);\n\n if (state.value === '' || state.inputValue === '') {\n props.onValueChange(null);\n setState((prevState) => ({ ...prevState, value: null, inputValue: null }));\n } else {\n saveTime(state.value);\n }\n };\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onToggle(true);\n }\n\n if (e.key === 'Escape' && state.isOpen) {\n e.preventDefault();\n e.stopPropagation();\n onToggle(false);\n }\n };\n\n const renderInput = (inputProps: IDropdownTogglerProps) => {\n return (\n <TextInput\n { ...inputProps }\n size={ props.size }\n isDisabled={ props.isDisabled }\n isReadonly={ props.isReadonly }\n isInvalid={ props.isInvalid }\n cx={ [css.root, css.timepickerInput, props.inputCx] }\n value={ state.inputValue }\n onValueChange={ handleInputChange }\n onCancel={ !props.disableClear && onClear }\n onKeyDown={ onKeyDown }\n onFocus={ handleFocus }\n onBlur={ handleBlur }\n isDropdown={ false }\n placeholder={ props.placeholder ? props.placeholder : getFormat() }\n mode={ props.mode || DEFAULT_MODE }\n rawProps={ props.rawProps?.input }\n ref={ (node) => {\n targetRef.current = node;\n if (typeof inputProps.ref === 'function') {\n inputProps.ref(node);\n } else if (inputProps.ref && 'current' in inputProps.ref) {\n inputProps.ref.current = node;\n }\n } }\n />\n );\n };\n\n const renderBody = (bodyProps: DropdownBodyProps) => {\n const { forwardedRef, onValueChange, ...timePickerBodyProps } = props;\n\n return (\n !props.isDisabled && !props.isReadonly && (\n <DropdownContainer { ...bodyProps } shards={ [targetRef] }>\n <TimePickerBody\n { ...timePickerBodyProps }\n onValueChange={ handleBodyValueChange }\n value={ formatStringTimeToObject(state.value) }\n rawProps={ props.rawProps?.body }\n cx={ props.bodyCx }\n\n />\n </DropdownContainer>\n )\n );\n };\n\n return (\n <Dropdown\n renderTarget={ (targetProps) => (props.renderTarget ? props.renderTarget(targetProps) : renderInput(targetProps)) }\n renderBody={ (bodyProps) => !props.isDisabled && !props.isReadonly && renderBody(bodyProps) }\n onValueChange={ !props.isDisabled && !props.isReadonly ? onToggle : null }\n value={ state.isOpen }\n middleware={ [offset(6)] }\n ref={ ref }\n />\n );\n}\n\nexport const TimePicker = React.forwardRef(TimePickerComponent);\n","import { withMods } from '@epam/uui-core';\nimport { InputAddon as uuiInputAddon, InputAddonProps as uuiInputAddonProps } from '@epam/uui-components';\nimport css from './InputAddon.module.scss';\n\nfunction applyInputAddonMods() {\n return [\n css.root,\n ];\n}\n\nexport const InputAddon = withMods<uuiInputAddonProps, uuiInputAddonProps>(uuiInputAddon, applyInputAddonMods);\n","import { Slider as uuiSlider, SliderProps as uuiSliderProps } from '@epam/uui-components';\nimport css from './Slider.module.scss';\nimport { withMods } from '@epam/uui-core';\n\nexport interface SliderProps extends uuiSliderProps {}\n\nfunction applySliderMods() {\n return [css.root, 'uui-color-neutral'];\n}\n\nexport const Slider = withMods<SliderProps, SliderProps>(uuiSlider, applySliderMods);\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport css from './Tooltip.module.scss';\n\ninterface TooltipMods {\n /**\n * Tooltip color\n * @default 'inverted'\n */\n color?: 'neutral' | 'inverted' | 'critical';\n}\n\nexport interface TooltipCoreProps extends uuiComponents.TooltipProps {}\n\nexport interface TooltipModsOverride {}\n\nexport interface TooltipProps extends TooltipCoreProps, Overwrite<TooltipMods, TooltipModsOverride> {}\n\nfunction applyTooltipMods(mods: TooltipMods) {\n return [\n css.root,\n `uui-color-${mods.color || 'inverted'}`,\n ];\n}\n\nexport const Tooltip = withMods<TooltipProps, TooltipProps>(uuiComponents.Tooltip, applyTooltipMods);\n","import { Icon, Overwrite, withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { Tooltip } from '../overlays/Tooltip';\nimport { settings } from '../../settings';\n\nimport css from './Rating.module.scss';\n\ninterface RatingMods {\n /**\n * Rating icon can be changed according to your needs.\n * Icon can be a React element (usually an SVG element).\n */\n icon?: Icon;\n /**\n * Defines component size.\n * @default '18'\n */\n size?: 18 | 24 | 30;\n}\nexport interface RatingModsOverride {}\n\n/** Represents the 'Core properties' for the Rating component. */\nexport type RatingCoreProps = Omit<uuiComponents.RatingProps, 'filledStarIcon' | 'emptyStarIcon' | 'renderRating' | 'from' | 'to'>;\n\n/** Represents the properties for the Rating component. */\nexport interface RatingProps extends RatingCoreProps, Overwrite<RatingMods, RatingModsOverride> {}\n\nfunction applyRatingMods(mods: RatingProps) {\n return [\n css.root,\n `uui-size-${mods.size || settings.rating.sizes.default}`,\n ];\n}\n\nexport const Rating = withMods<uuiComponents.RatingProps, RatingProps>(\n uuiComponents.Rating,\n applyRatingMods,\n (props) => ({\n filledStarIcon: props.icon || settings.rating.icons.filledRatingIcon,\n emptyStarIcon: props.icon || settings.rating.icons.emptyRatingIcon,\n Tooltip,\n }),\n);\n","import React from 'react';\nimport cx from 'classnames';\nimport { uuiElement, uuiMarkers, DataRowProps, DndEventHandlers, Overwrite } from '@epam/uui-core';\nimport { DragHandle, ControlIcon } from '@epam/uui-components';\nimport { Checkbox } from '../inputs';\nimport type { ControlSize } from '../types';\nimport { settings } from '../../settings';\n\nimport css from './DataRowAddons.module.scss';\n\ninterface DataRowAddonsMods {\n /** Controls size. */\n size?: ControlSize | '60';\n}\n\nexport interface DataRowAddonsModsOverride {}\n\ninterface DragHandleRenderProps<TItem, TId> {\n /** DataRowProps object for the row where an addon is placed. */\n rowProps: DataRowProps<TItem, TId>;\n /**\n * Drag'n'drop marker event handlers.\n */\n eventHandlers?: DndEventHandlers;\n}\n\ninterface DataRowAddonsCoreProps<TItem, TId> {\n /** DataRowProps object for the row where an addon is placed. */\n rowProps: DataRowProps<TItem, TId>;\n /** HTML tabIndex attribute to set on the cell. */\n tabIndex?: React.HTMLAttributes<HTMLElement>['tabIndex'];\n /**\n * Drag'n'drop marker event handlers.\n */\n eventHandlers?: DndEventHandlers;\n /** Render callback for drag handle aria.\n **\n * If omitted, the default implementation with DragHandle component will be rendered.\n */\n renderDragHandle?: (props: DragHandleRenderProps<TItem, TId>) => React.ReactNode;\n}\n\n/**\n * Props of DataRowAddons.\n */\nexport interface DataRowAddonsProps<TItem, TId> extends DataRowAddonsCoreProps<TItem, TId>, Overwrite<DataRowAddonsMods, DataRowAddonsModsOverride> {}\n\nexport function DataRowAddons<TItem, TId>(props: DataRowAddonsProps<TItem, TId>) {\n const row = props.rowProps;\n const getIndent = () => {\n return (row.indent - 1) * settings.dataTable.sizes.body.indentUnitMap[props.size || settings.dataTable.sizes.body.row];\n };\n\n const getWidth = () => {\n return settings.dataTable.sizes.body.indentWidthMap[props.size || settings.dataTable.sizes.body.row];\n };\n\n const renderDragHandle = () => {\n if (props.renderDragHandle) {\n return props.renderDragHandle({ rowProps: props.rowProps, eventHandlers: props.eventHandlers });\n }\n return (\n <div key=\"dh\" className={ cx(css.dragHandleWrapper, row.indent > 0 && css.withIndent) } style={ { width: row.indent > 0 ? (getIndent() + getWidth()) : 0 } } { ...props.eventHandlers }>\n <DragHandle cx={ css.dragHandle } />\n </div>\n );\n };\n\n const handleFold = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n row.onFold(row);\n }\n };\n\n return (\n <>\n {\n row.dnd?.srcData && renderDragHandle()\n }\n {row?.checkbox?.isVisible && (\n <Checkbox\n key=\"cb\"\n cx=\"uui-dr_addons-checkbox\"\n tabIndex={ props.tabIndex }\n size={ settings.dataTable.sizes.body.checkboxMap[props.size] }\n value={ row.isChecked }\n indeterminate={ !row.isChecked && row.isChildrenChecked }\n onValueChange={ () => row.onCheck?.(row) }\n isDisabled={ row.checkbox.isDisabled }\n isInvalid={ row.checkbox.isInvalid }\n />\n )}\n {row.indent > 0 && (\n <div\n key=\"fold\"\n className={ cx('uui-dr_addons-indent', `uui-size-${props.size || settings.dataTable.sizes.body.row}`) }\n style={ { marginInlineStart: getIndent(), width: getWidth() } }\n >\n {row.isFoldable && (\n <ControlIcon\n rawProps={ {\n 'aria-label': row.isFolded ? 'Unfold' : 'Fold',\n role: 'button',\n } }\n key=\"icon\"\n icon={ settings.dataTable.icons.body.foldingIcon }\n cx={ [\n uuiElement.foldingArrow, uuiMarkers.clickable, css.iconContainer,\n ] }\n rotate={ row.isFolded ? '90ccw' : '0' }\n onClick={ () => row.onFold(row) }\n onKeyDown={ handleFold }\n size={ settings.dataTable.sizes.body.iconMap[props.size || settings.dataTable.sizes.body.row] }\n tabIndex={ props.tabIndex }\n />\n )}\n </div>\n )}\n </>\n );\n}\n","import React, { CSSProperties } from 'react';\nimport {\n cx,\n IHasCaption,\n IHasIcon,\n uuiElement,\n Overwrite,\n DataRowProps,\n uuiMarkers,\n uuiMod,\n useIsActive,\n ICanBeActive,\n devLogger, Icon,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { getIconClass } from './helper';\nimport { settings } from '../../settings';\n\nimport css from './VerticalTabButton.module.scss';\nimport { CountIndicator } from '../widgets';\n\ntype VerticalTabButtonMods = {\n /**\n * Defines component size.\n * @default '48'\n */\n size?: '30' | '36' | '48';\n /**\n * Defines component font-weight\n * @default 'semibold'\n */\n weight?: 'semibold' | 'regular';\n};\n\nexport interface VerticalTabButtonModsOverride {}\n\n/** Represents the properties of a VerticalTabButton component. */\nexport type VerticalTabButtonProps<TItem, TId> = Partial<Pick<DataRowProps<TItem, TId>, 'indent' | 'isFolded' | 'isFoldable'>> & Overwrite<VerticalTabButtonMods, VerticalTabButtonModsOverride> & ClickableComponentProps & IHasIcon & IHasCaption & ICanBeActive & {\n /**\n * Defines callback for rendering additional actions and items in the VerticalTabButton.\n */\n renderAddons?: () => React.ReactNode;\n /** Defines is the component showing Notify */\n withNotify?: boolean;\n /**\n * Handles folding change.\n */\n onFold?: () => void;\n /**\n * When isDropdown=true, indicate that dropdown is open with chevron icon\n */\n isOpen?: boolean;\n /**\n * Shows chevron icon, enabling component to act as dropdown toggler\n */\n isDropdown?: boolean;\n /**\n * Icon for dropdown toggler\n */\n dropdownIcon?: Icon;\n /**\n * @deprecated\n * Call to clear toggler value\n */\n onClear?(e?: any): void;\n /**\n * @deprecated\n * Icon for clear value button (usually cross)\n */\n clearIcon?: Icon;\n /**\n * @deprecated\n * Count value to be placed in component\n */\n count?: React.ReactNode;\n};\n\nfunction VerticalTabButtonComponent<TItem, TId>(\n props: VerticalTabButtonProps<TItem, TId>,\n ref: React.ForwardedRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement>,\n) {\n const { isActive } = useIsActive({\n isLinkActive: props.isLinkActive,\n link: props.link,\n isActive: props.isActive,\n });\n\n const styles = [\n css.root,\n 'uui-vertical-tab-button',\n `uui-size-${props.size || settings.verticalTabButton.sizes.default}`,\n isActive && uuiMod.active,\n props.indent > 0 && css.noLeftPadding,\n !props.onClick && props.onFold && css.onlyFoldable,\n ...getIconClass(props),\n props.cx,\n ];\n\n if (props.count !== undefined && props.count !== null) {\n devLogger.warn('VerticalTabButton: count prop is deprecated. Use renderAddons prop instead.');\n }\n\n if (props.onClear !== undefined && props.onClear !== null) {\n devLogger.warn('VerticalTabButton: onClear prop is deprecated. Use renderAddons prop instead.');\n }\n\n if (props.clearIcon !== undefined && props.clearIcon !== null) {\n devLogger.warn('VerticalTabButton: clearIcon prop is deprecated. Use renderAddons prop instead.');\n }\n\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.verticalTabButton.icons.dropdownIcon;\n const ClearIcon = props.clearIcon ? props.clearIcon : settings.verticalTabButton.icons.clearIcon;\n\n return (\n <Clickable\n { ...props }\n onClick={ props.onClick || props.onFold }\n rawProps={ {\n role: 'tab',\n ...props.rawProps,\n } }\n cx={ styles }\n ref={ ref }\n >\n {props.indent > 0 && (\n <div\n key=\"fold\"\n className={ cx(css.foldingArea, props.onFold && uuiMarkers.clickable) }\n style={ { '--uui-folding-indent': `${props.indent - 1}` } as CSSProperties }\n onClick={ props.onFold }\n >\n {props.isFoldable && (\n <IconContainer\n rawProps={ {\n 'aria-label': props.isFolded ? 'Unfold' : 'Fold',\n role: 'button',\n } }\n key=\"icon\"\n icon={ settings.verticalTabButton.icons.foldingIcon }\n cx={ [\n uuiElement.foldingArrow, css.iconContainer,\n ] }\n rotate={ props.isFolded ? '90ccw' : '0' }\n size={ settings.dataTable.sizes.body.iconMap[props.size || settings.dataTable.sizes.body.row] }\n />\n )}\n </div>\n )}\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ !props.isDisabled ? props.onIconClick : undefined }\n />\n ) }\n { (props.caption || props.withNotify) && (\n <div className={ css.captionWrapper }>\n { props.caption && <div className={ cx(uuiElement.caption, `uui-vertical-tab-button-weight-${props.weight || settings.verticalTabButton.weight}`) }>{ props.caption }</div> }\n { props.withNotify && <div className={ css.withNotify } /> }\n </div>\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ !props.isDisabled ? props.onIconClick : undefined } />\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n color=\"neutral\"\n size={ settings.verticalTabButton.sizes.countIndicatorMap[props.size || settings.verticalTabButton.sizes.default] }\n caption={ props.count }\n />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ DropdownIcon } flipY={ props.isOpen } />\n )}\n { props.onClear && !props.isDisabled && (\n <IconContainer cx={ uuiMarkers.clickable } icon={ ClearIcon } onClick={ props.onClear } />\n ) }\n { props.renderAddons && props.renderAddons() }\n </Clickable>\n );\n}\n\nexport const VerticalTabButton = React.forwardRef(VerticalTabButtonComponent) as\n <TItem, TId>(props: VerticalTabButtonProps<TItem, TId> & { ref?: React.ForwardedRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement> }) =>\n ReturnType<typeof VerticalTabButtonComponent>;\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IHasChildren, IHasCX, Icon, IHasRawProps, Overwrite } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport { IconButton, LinkButton } from '../buttons';\nimport { settings } from '../../settings';\n\nimport css from './Alert.module.scss';\n\ninterface AlertNotificationAction {\n /*\n * Defines notification action name.\n */\n name: string;\n /*\n * Called when action is clicked\n */\n action: () => void;\n}\n\ninterface AlertMods {\n /** Alert color */\n color: 'info' | 'success' | 'warning' | 'error';\n}\n\nexport interface AlertModsOverride {}\n\nexport interface AlertCoreProps extends IHasChildren, IHasCX, IHasRawProps<React.HTMLAttributes<HTMLDivElement>> {\n /** List of actions to display in the alert. Each action has name and 'action' callback */\n actions?: AlertNotificationAction[];\n /** When specified, a close icon is rendered. onClose callback will be called on clicking the close icon */\n onClose?(): void;\n /** An optional icon to show on the left of the alert */\n icon?: Icon;\n /**\n * Component size. If omitted, 48 size will be used.\n * @default '48'\n */\n size?: '36' | '48';\n}\n\n/** Represents the properties of the Alert component. */\nexport interface AlertProps extends AlertCoreProps, Overwrite<AlertMods, AlertModsOverride> {}\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>((props, ref) => (\n <div\n role=\"alert\"\n ref={ ref }\n className={\n cx(\n 'uui-alert',\n css.root,\n props.color && `uui-color-${props.color}`,\n props.cx,\n `uui-size-${props.size || settings.alert.sizes.default}`,\n )\n }\n { ...props.rawProps }\n >\n <div className={ css.mainPath }>\n <div className={ css.contentWrapper }>\n {props.icon && (\n <div className={ css.iconWrapper }>\n <IconContainer icon={ props.icon } cx={ css.icon } />\n </div>\n )}\n <div className={ css.content }>\n {props.children}\n {props.actions && (\n <div className={ css.actionWrapper }>\n {props.actions.map((action) => (\n <LinkButton\n caption={ action.name }\n onClick={ action.action }\n key={ action.name }\n cx={ css.actionLink }\n size={ settings.alert.sizes.actionMap[props.size || settings.alert.sizes.default] }\n />\n ))}\n </div>\n )}\n </div>\n </div>\n {props.onClose && <IconButton icon={ settings.alert.icons.closeIcon } color=\"neutral\" onClick={ props.onClose } cx={ css.closeIcon } />}\n </div>\n </div>\n));\n\nexport const WarningAlert = React.forwardRef<HTMLDivElement, Omit<AlertProps, 'color'>>((props, ref) => <Alert icon={ settings.alert.icons.warningIcon } color=\"warning\" ref={ ref } { ...props } />);\n\nexport const SuccessAlert = React.forwardRef<HTMLDivElement, Omit<AlertProps, 'color'>>((props, ref) => <Alert icon={ settings.alert.icons.successIcon } color=\"success\" ref={ ref } { ...props } />);\n\nexport const HintAlert = React.forwardRef<HTMLDivElement, Omit<AlertProps, 'color'>>((props, ref) => <Alert icon={ settings.alert.icons.infoIcon } color=\"info\" ref={ ref } { ...props } />);\n\nexport const ErrorAlert = React.forwardRef<HTMLDivElement, Omit<AlertProps, 'color'>>((props, ref) => <Alert icon={ settings.alert.icons.errorIcon } color=\"error\" ref={ ref } { ...props } />);\n","import { Dropdown as uuiDropdown } from '@epam/uui-components';\nimport type { DropdownProps } from '@epam/uui-core';\nimport { withMods } from '@epam/uui-core';\n\nexport const Dropdown = withMods<DropdownProps, DropdownProps>(uuiDropdown);\n","import React, { useRef, useContext, useState } from 'react';\nimport { offset } from '@floating-ui/react';\nimport {\n cx,\n withMods,\n uuiMod,\n UuiContext,\n IHasChildren,\n VPanelProps,\n IHasIcon,\n ICanRedirect,\n IHasCaption,\n IDisableable,\n IAnalyticableClick,\n IHasCX,\n IClickable,\n DropdownBodyProps,\n IDropdownTogglerProps,\n DropdownProps,\n getDir,\n uuiMarkers,\n isEventTargetInsideClickable,\n} from '@epam/uui-core';\nimport { Text, Anchor, IconContainer, Dropdown, FlexSpacer } from '@epam/uui-components';\nimport type { DropdownContainerProps } from '@epam/uui-components';\nimport { DropdownContainer } from './DropdownContainer';\nimport { Switch } from '../inputs/Switch';\nimport { IconButton } from '../buttons';\nimport { settings } from '../../settings';\n\nimport css from './DropdownMenu.module.scss';\n\nexport interface IDropdownMenuItemProps extends IDropdownTogglerProps, IHasCaption, IHasIcon, ICanRedirect, IHasCX, IDisableable, IAnalyticableClick {\n isSelected?: boolean;\n isActive?: boolean;\n indent?: boolean;\n}\n\nexport interface DropdownMenuContainerProps extends VPanelProps, IHasChildren, DropdownBodyProps, Pick<DropdownContainerProps, 'focusLock' | 'maxHeight'> {\n closeOnKey?: React.KeyboardEvent<HTMLElement>['key'];\n minWidth?: number;\n}\n\nexport enum IDropdownControlKeys {\n ENTER = 'Enter',\n ESCAPE = 'Escape',\n LEFT_ARROW = 'ArrowLeft',\n RIGHT_ARROW = 'ArrowRight',\n UP_ARROW = 'ArrowUp',\n DOWN_ARROW = 'ArrowDown'\n}\n\nfunction DropdownMenuContainer(props: DropdownMenuContainerProps) {\n const menuRef = useRef<HTMLElement>(null);\n const [currentlyFocused, setFocused] = useState<number>(0);\n\n const getMenuItems = (): HTMLElement[] => {\n if (!menuRef.current) return [];\n return Array.from(menuRef.current.querySelectorAll(`[role=\"menuitem\"]:not(.${uuiMod.disabled})`));\n };\n\n const changeFocus = (nextFocusedIndex: number) => {\n const menuItems = getMenuItems();\n if (menuItems.length > 0 && nextFocusedIndex >= 0 && nextFocusedIndex < menuItems.length) {\n setFocused(nextFocusedIndex);\n const targetItem = menuItems[nextFocusedIndex];\n targetItem.focus();\n }\n };\n\n const handleArrowKeys = (e: React.KeyboardEvent<HTMLElement>) => {\n const menuItems = getMenuItems();\n const lastMenuItemsIndex = menuItems.length - 1;\n\n if (e.key === IDropdownControlKeys.UP_ARROW) {\n changeFocus(currentlyFocused > 0 ? currentlyFocused - 1 : lastMenuItemsIndex);\n e.stopPropagation(); // TODO: need improvement to track event only for current overlay\n e.preventDefault();\n } else if (e.key === IDropdownControlKeys.DOWN_ARROW) {\n changeFocus(currentlyFocused < lastMenuItemsIndex ? currentlyFocused + 1 : 0);\n e.stopPropagation(); // TODO: need improvement to track event only for current overlay\n e.preventDefault();\n } else if (e.key === props.closeOnKey && props.onClose) {\n e.stopPropagation(); // TODO: need improvement to track event only for current overlay\n props.onClose();\n }\n };\n\n return (\n <DropdownContainer\n { ...props }\n rawProps={ { ...props.rawProps, role: 'menu' } }\n ref={ menuRef }\n width={ props.minWidth }\n lockProps={ { onKeyDown: handleArrowKeys } }\n cx={ [props.cx] }\n />\n );\n}\n\nexport const DropdownMenuBody = withMods<DropdownMenuContainerProps, DropdownMenuContainerProps>(\n DropdownMenuContainer,\n () => ['uui-dropdownMenu-body'],\n (props) => {\n return ({ closeOnKey: IDropdownControlKeys.ESCAPE, ...props });\n },\n);\n\nexport const DropdownMenuButton = React.forwardRef<any, IDropdownMenuItemProps>((props, ref) => {\n const context = useContext(UuiContext);\n\n const {\n icon, iconPosition, onIconClick, caption, isDisabled, isSelected, isActive, link, href, onClick, toggleDropdownOpening, isDropdown, isOpen, target,\n } = props;\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n if (isDisabled || !onClick) return;\n !isEventTargetInsideClickable(event) && onClick(event);\n context.uuiAnalytics.sendEvent(props.clickAnalyticsEvent);\n };\n\n const handleOpenDropdown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.key === IDropdownControlKeys.RIGHT_ARROW && isDropdown) {\n toggleDropdownOpening(true);\n } else if (event.key === IDropdownControlKeys.ENTER && onClick) {\n onClick(event);\n // Fix bug when click event is triggered after Enter key.\n // Tricky case when modal window is opened from dropdown menu and click on modal header cross is triggered, that leads to modal close.\n // https://github.com/epam/UUI/issues/2754\n event.preventDefault();\n }\n };\n\n const getMenuButtonContent = () => {\n const isIconBefore = Boolean(icon && iconPosition !== 'right');\n const isIconAfter = Boolean(icon && iconPosition === 'right');\n const iconElement = (\n <IconButton\n icon={ icon }\n color={ isActive ? 'primary' : 'neutral' }\n onClick={ onIconClick }\n isDisabled={ isDisabled }\n cx={ cx(css.icon, iconPosition === 'right' ? css.iconAfter : css.iconBefore) }\n />\n );\n\n return (\n <>\n { isIconBefore && iconElement }\n <Text cx={ props.indent && css.indent }>{ caption }</Text>\n { isIconAfter && (\n <>\n <FlexSpacer />\n { iconElement }\n </>\n ) }\n </>\n );\n };\n\n const isAnchor = Boolean(link || href);\n\n const itemClassNames = cx(\n props.cx,\n css.itemRoot,\n isDisabled && uuiMod.disabled,\n isActive && uuiMod.active,\n isOpen && uuiMod.opened,\n (!isDisabled && onClick) && uuiMarkers.clickable,\n );\n\n return isAnchor ? (\n <Anchor\n cx={ cx(css.link, itemClassNames) }\n link={ link }\n href={ href }\n rawProps={ { role: 'menuitem', tabIndex: isDisabled ? -1 : 0 } }\n onClick={ handleClick }\n isDisabled={ isDisabled }\n target={ target }\n >\n { getMenuButtonContent() }\n </Anchor>\n ) : (\n <div\n tabIndex={ isDisabled ? -1 : 0 }\n role=\"menuitem\"\n onKeyDown={ isDisabled ? null : handleOpenDropdown }\n className={ itemClassNames }\n onClick={ handleClick } // update flex row data\n ref={ ref }\n >\n { getMenuButtonContent() }\n { isSelected && (\n <>\n <FlexSpacer />\n <IconContainer icon={ settings.dropdownMenu.icons.acceptIcon } cx={ css.selectedMark } />\n </>\n ) }\n </div>\n );\n});\n\nexport function DropdownMenuSplitter(props: IHasCX) {\n return (\n <div className={ cx(props.cx, css.splitterRoot) }>\n <hr className={ css.splitter } />\n </div>\n );\n}\n\ninterface IDropdownMenuHeader extends IHasCX, IHasCaption {}\n\nexport function DropdownMenuHeader(props: IDropdownMenuHeader) {\n return (\n <div className={ cx('uui-dropdown-menu-header', props.cx, css.headerRoot) }>\n <span className={ css.header }>{ props.caption }</span>\n </div>\n );\n}\n\ninterface IDropdownSubMenu extends IHasChildren, IHasCaption, IHasIcon, IDropdownMenuItemProps {\n openOnHover?: boolean;\n}\n\nexport function DropdownSubMenu(props: IDropdownSubMenu) {\n const subMenuMiddleware: DropdownProps['middleware'] = [\n offset(({ placement }) => {\n if (\n placement === 'right-start'\n || placement === 'left-start'\n ) {\n return { crossAxis: -6, mainAxis: 0 };\n } else {\n return { crossAxis: 6, mainAxis: 0 };\n }\n }),\n ];\n\n const isRtl = getDir() === 'rtl';\n\n return (\n <Dropdown\n openOnHover={ props.openOnHover || true }\n closeOnMouseLeave=\"boundary\"\n openDelay={ 400 }\n closeDelay={ 400 }\n placement={ isRtl ? 'left-start' : 'right-start' }\n middleware={ subMenuMiddleware }\n renderBody={ (dropdownProps) => !props.isDisabled && (<DropdownMenuBody closeOnKey={ IDropdownControlKeys.LEFT_ARROW } { ...props } { ...dropdownProps } />) }\n renderTarget={ ({ toggleDropdownOpening, ...targetProps }) => (\n <DropdownMenuButton\n cx={ cx(isRtl ? css.submenuRootItemRtl : css.submenuRootItem) }\n icon={ settings.dropdownMenu.icons.dropdownIcon }\n iconPosition=\"right\"\n isDropdown={ true }\n toggleDropdownOpening={ toggleDropdownOpening }\n { ...props }\n { ...targetProps }\n />\n ) }\n />\n );\n}\n\ninterface IDropdownMenuSwitchButton extends IHasCX, IHasCaption, IHasIcon, IDisableable, IAnalyticableClick, IClickable {\n onValueChange: (value: boolean) => void;\n isSelected: boolean;\n}\n\nexport function DropdownMenuSwitchButton(props: IDropdownMenuSwitchButton) {\n const context = useContext(UuiContext);\n\n const {\n icon, caption, isDisabled, isSelected, onValueChange,\n } = props;\n\n const onHandleValueChange = (value: boolean) => {\n if (isDisabled || !onValueChange) return;\n onValueChange(value);\n context.uuiAnalytics.sendEvent(props.clickAnalyticsEvent);\n };\n\n const handleKeySelect = (e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === IDropdownControlKeys.ENTER) {\n onHandleValueChange(!isSelected);\n }\n };\n\n return (\n <div\n className={ cx(\n props.cx,\n css.itemRoot,\n isDisabled && uuiMod.disabled,\n (!isDisabled || onValueChange) && uuiMarkers.clickable,\n ) }\n onClick={ () => onHandleValueChange(!isSelected) }\n role=\"menuitem\"\n onKeyDown={ handleKeySelect }\n tabIndex={ isDisabled ? -1 : 0 }\n >\n { icon && <IconContainer icon={ icon } cx={ css.iconBefore } /> }\n <Text>{ caption }</Text>\n <FlexSpacer />\n <Switch value={ isSelected } tabIndex={ -1 } onValueChange={ onHandleValueChange } />\n </div>\n );\n}\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './Accordion.module.scss';\n\ninterface AccordionMods {\n /**\n * Defines component displaying mode.\n * @default 'block'\n */\n mode?: 'block' | 'inline';\n /*\n * Defines component horizontal padding.\n */\n padding?: '0' | '6' | '12' | '18';\n}\n\nexport interface AccordionModsOverride {}\n\n/** Represents the properties of the Accordion component. */\nexport type AccordionProps = Overwrite<AccordionMods, AccordionModsOverride> & uuiComponents.AccordionProps;\n\nfunction applyAccordionMods(mods: AccordionProps) {\n return [\n css.root,\n css[`mode-${mods.mode || 'block'}`],\n mods.padding && css['padding-' + mods.padding],\n ];\n}\n\nexport const Accordion = withMods<uuiComponents.AccordionProps, AccordionProps>(uuiComponents.Accordion, applyAccordionMods, (mods) => ({\n dropdownIcon: mods.dropdownIcon !== null && settings.accordion.icons.dropdownIcon,\n}));\n","import css from './FlexRow.module.scss';\nimport * as uuiCore from '@epam/uui-core';\nimport { FlexCell as uuiFlexCell } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\n\ntype FlexCellMods = {};\n\n/** Represents the properties of the FlexCell component. */\nexport type FlexCellProps = uuiCore.FlexCellProps & FlexCellMods;\n\nexport const FlexCell = withMods<uuiCore.FlexCellProps, FlexCellProps>(uuiFlexCell, () => [css.flexCell]);\n","import React, { forwardRef } from 'react';\nimport {\n devLogger,\n FlexRowProps as uuiFlexRowProps,\n isEventTargetInsideClickable,\n uuiMarkers,\n cx, Overwrite,\n} from '@epam/uui-core';\n\nimport { settings } from '../../../settings';\n\nimport css from './FlexRow.module.scss';\n\nexport interface FlexRowMods {\n /**\n * Defines row size\n * @default '36'\n */\n size?: null | '24' | '30' | '36' | '42' | '48';\n /** Pass true, to enable row top border */\n borderTop?: boolean;\n /** Pass true, to enable row bottom border */\n borderBottom?: boolean;\n /** Defines row margin */\n margin?: '12' | '24';\n /** Defines horizontal row padding */\n padding?: '6' | '12' | '18' | '24';\n /**\n * @deprecated\n * The `spacing` property is deprecated and will be removed in future versions. Please use `columnGap` instead.\n * Defines row spacing\n * */\n spacing?: '6' | '12' | '18';\n /** Pass true, to show a top shadow */\n topShadow?: boolean;\n /** Defines vertical row padding */\n vPadding?: '12' | '18' | '24' | '36' | '48';\n /** Flexbox column gap property [Flexbox Guide](https://css-tricks.com/snippets/css/a-guide-to-flexbox/#aa-gap-row-gap-column-gap) */\n columnGap?: number | '6' | '12' | '18' | '24' | '36';\n /** Flexbox row gap property [Flexbox Guide](https://css-tricks.com/snippets/css/a-guide-to-flexbox/#aa-gap-row-gap-column-gap) */\n rowGap?: number | '6' | '12' | '18' | '24' | '36';\n /** Defines row background */\n background?: 'surface-main';\n}\n\nexport interface FlexRowModsOverride {}\n\n/** Represents the properties of the FlexRow component. */\nexport interface FlexRowProps extends uuiFlexRowProps, Overwrite<FlexRowMods, FlexRowModsOverride> {}\n\nexport const FlexRow = forwardRef<HTMLDivElement, FlexRowProps>((props, ref) => {\n if (__DEV__) {\n if (props.spacing) {\n devLogger.warn('[FlexRow]: The `spacing` property is deprecated and will be removed in future versions. Please use `columnGap` instead.');\n }\n }\n\n const classNames = cx([\n css.root,\n 'uui-flex-row',\n props.onClick && uuiMarkers.clickable,\n props.cx,\n props.size !== null && 'uui-size-' + (props.size || settings.flexRow.sizes.default),\n props.alignItems && css.alignItems,\n props.justifyContent && css.justifyContent,\n props.padding && css.padding,\n props.vPadding && css.vPadding,\n props.margin && css.margin,\n props.topShadow && css.topShadow,\n props.borderBottom && css.borderBottom,\n props.borderTop && css.borderTop,\n props.columnGap && css.columnGap,\n props.rowGap && css.rowGap,\n props.spacing && css.spacing,\n props.background && `uui-flex-row-bg-${props.background}`,\n ]);\n\n let alignItemsValue = props.alignItems;\n if (alignItemsValue === 'top') {\n alignItemsValue = 'flex-start';\n } else if (alignItemsValue === 'bottom') {\n alignItemsValue = 'flex-end';\n }\n\n const style = {\n ...(props.alignItems && { '--uui-flex-row-align-items': alignItemsValue }),\n ...(props.justifyContent && { '--uui-flex-row-justify-content': props.justifyContent }),\n ...(props.columnGap && { '--uui-flex-row-column-gap': `${props.columnGap}px` }),\n ...(props.rowGap && { '--uui-flex-row-row-gap': `${props.rowGap}px` }),\n ...(props.padding && { '--uui-flex-row-padding': `${props.padding}px` }),\n ...(props.vPadding && { '--uui-flex-row-v-padding': `${props.vPadding}px` }),\n ...(props.margin && { '--uui-flex-row-margin': `${props.margin}px` }),\n ...(props.spacing && { '--uui-flex-row-spacing': `${props.spacing}px` }),\n };\n\n return (\n <div\n ref={ ref }\n onClick={ props.onClick ? (e) => !isEventTargetInsideClickable(e) && props.onClick(e) : undefined }\n className={ classNames }\n { ...props.rawProps }\n style={ {\n ...style,\n ...props.rawProps?.style,\n } }\n >\n {props.children}\n </div>\n );\n});\n","import { withMods, VPanelProps } from '@epam/uui-core';\nimport { VPanel } from '@epam/uui-components';\nimport css from './Panel.module.scss';\n\ninterface PanelMods {\n /*\n * Pass true to show a shadow.\n */\n shadow?: boolean;\n /*\n * Defines component margin.\n */\n margin?: '24';\n /*\n * Defines component background.\n */\n background?: 'surface-main';\n}\n\n/** Represents the properties of the Panel component. */\nexport type PanelProps = VPanelProps & PanelMods;\n\nexport const Panel = withMods<VPanelProps, PanelProps>(VPanel, (props) => [\n 'uui-panel',\n css.root,\n props.shadow && css.shadow,\n props.margin && css['margin-' + props.margin],\n props.background && css[`uui-${props.background}`],\n]);\n","import { Overwrite, withMods, Icon } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { Tooltip } from '../overlays/Tooltip';\nimport { settings } from '../../settings';\n\nimport css from './LabeledInput.module.scss';\n\ninterface LabeledInputMods {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n}\n\nexport interface LabeledInputModsOverride {}\n\n/** Represents the properties of the LabeledInput component. */\nexport interface LabeledInputProps extends uuiComponents.LabeledInputProps, Overwrite<LabeledInputMods, LabeledInputModsOverride> {}\n\nfunction applyLabeledInputMods(mods: LabeledInputMods) {\n return [\n 'uui-labeled-input',\n css.root,\n 'uui-size-' + (mods.size || settings.labeledInput.sizes.default),\n ];\n}\n\nfunction getInfoIconForSize(size: LabeledInputProps['size']): Icon {\n return size <= '30'\n ? settings.labeledInput.icons.fillInfoIcon\n : settings.labeledInput.icons.infoIcon;\n}\n\nfunction applyLabeledInputProps(props: LabeledInputProps) {\n return {\n Tooltip: props.Tooltip || Tooltip,\n infoIcon: props.infoIcon || getInfoIconForSize(props.size),\n };\n}\n\nexport const LabeledInput = withMods<uuiComponents.LabeledInputProps, LabeledInputProps>(\n uuiComponents.LabeledInput,\n applyLabeledInputMods,\n applyLabeledInputProps,\n);\n","import { cx, directionMode, ICanBeReadonly, ICanFocus, IDisableable, IEditable, IHasCX, IHasDirection, IHasForwardedRef, IHasRawProps } from '@epam/uui-core';\nimport { RadioInput, RadioInputProps } from '../inputs';\nimport css from './RadioGroup.module.scss';\nimport * as React from 'react';\n\nexport interface RadioGroupItem<TValue> extends IDisableable, Omit<RadioInputProps, 'id' | 'onValueChange' | 'value' | 'name'> {\n /** RadioInput label. Can be a string, or React.ReactNode */\n name?: React.ReactNode;\n /** Render callback for checkbox label\n * If omitted, 'name' prop value will be rendered\n */\n renderName?: () => React.ReactNode;\n /** Item ID to put into selection */\n id: TValue;\n}\n\nexport interface RadioGroupProps<TValue>\n extends IHasCX,\n IEditable<TValue>,\n IDisableable,\n IHasDirection,\n ICanBeReadonly,\n IHasRawProps<React.FieldsetHTMLAttributes<HTMLFieldSetElement>>,\n IHasForwardedRef<HTMLFieldSetElement>,\n ICanFocus<HTMLFieldSetElement> {\n /** Array of checkbox items to be rendered in group */\n items: RadioGroupItem<TValue>[];\n /** Defines group components size */\n size?: RadioInputProps['size'];\n /** Defines native HTML name attribute for each group member */\n name?: string;\n}\n\nexport function RadioGroup<TValue>(props: RadioGroupProps<TValue>) {\n const direction = props.direction || 'vertical';\n\n const handleChange = (newVal: TValue) => {\n if (newVal !== props.value) {\n props.onValueChange(newVal);\n }\n };\n\n return (\n <fieldset\n ref={ props.forwardedRef }\n className={ cx(css.root, directionMode[direction], props.cx) }\n onFocus={ props.onFocus }\n onBlur={ props.onBlur }\n { ...props.rawProps }\n >\n { props.items.map((i) => {\n const { id, name, renderName, ...restItemProps } = i;\n return (\n <RadioInput\n name={ props.name }\n renderLabel={ i.renderName ? i.renderName : () => i.name }\n value={ props.value === i.id }\n onValueChange={ () => handleChange(i.id) }\n isDisabled={ props.isDisabled || i.isDisabled }\n isReadonly={ props.isReadonly }\n isInvalid={ props.isInvalid }\n isRequired={ props.isRequired }\n key={ i.id.toString() }\n size={ props.size || i.size }\n { ...restItemProps }\n />\n );\n }) }\n </fieldset>\n );\n}\n","import React, {\n forwardRef,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport cx from 'classnames';\nimport { useOverlayScrollbars } from 'overlayscrollbars-react';\nimport type { ScrollbarsAutoHideBehavior } from 'overlayscrollbars';\nimport { IHasCX, IHasRawProps, useScrollShadows } from '@epam/uui-core';\nimport css from './ScrollBars.module.scss';\nimport './ScrollBars.scss';\n\nexport type ScrollbarsApi = {\n /** Reference to the scrollbar container element */\n container: HTMLElement | null;\n /** Reference to the scrollable view element */\n view: HTMLElement | null;\n};\n\nexport type ScrollbarProps = IHasCX & IHasRawProps<React.HTMLAttributes<HTMLDivElement>> & {\n /** Callback fired when scroll position changes */\n onScroll?: React.UIEventHandler<any>;\n /**\n * The scrollbars auto hide behavior\n * - 'never' - The scrollbars are always hidden.\n * - 'scroll' - The scrollbars are hidden unless the user scrolls.\n * - 'move' - The scrollbars are hidden unless the pointer moves in the host element or the user scrolls.\n * - 'leave' - The scrollbars are hidden if the pointer leaves the host element or unless the user scrolls.\n * @default 'never'\n */\n autoHide?: ScrollbarsAutoHideBehavior;\n /**\n * Delay in milliseconds before scrollbars hide after scrolling stops\n * @default 1300\n */\n autoHideDelay?: number;\n /**\n * Visual effect to show at the top when content is scrolled down\n * - 'line': shows a thin line border\n * - 'shadow': shows a gradient shadow\n * - 'none': no visual effect\n * @default 'none'\n */\n overflowTopEffect?: 'line' | 'shadow' | 'none';\n /**\n * Visual effect to show at the bottom when content can be scrolled down\n * - 'line': shows a thin line border\n * - 'shadow': shows a gradient shadow\n * - 'none': no visual effect\n * @default 'none'\n */\n overflowBottomEffect?: 'line' | 'shadow' | 'none';\n children?: ReactNode | undefined;\n};\n\nenum uuiScrollbars {\n uuiShadowTop = 'uui-shadow-top',\n uuiShadowBottom = 'uui-shadow-bottom',\n uuiLineTop = 'uui-line-top',\n uuiLineBottom = 'uui-line-bottom'\n}\n\nexport const ScrollBars = forwardRef<ScrollbarsApi, ScrollbarProps>((props, ref) => {\n const {\n cx: outerCx,\n children,\n overflowTopEffect = 'none',\n overflowBottomEffect = 'none',\n\n onScroll,\n\n autoHide = 'never',\n autoHideDelay,\n rawProps,\n ...rest\n } = props;\n const [shadowElements, setShadowElements] = useState<{ host: HTMLElement | null, viewport: HTMLElement | null }>({\n host: null,\n viewport: null,\n });\n\n const hostRef = useRef<HTMLDivElement | null>(null);\n const viewportRef = useRef<HTMLElement | null>(null);\n const containerRef = useRef<HTMLElement | null>(null);\n\n const [initialize, osInstance] = useOverlayScrollbars({\n options: {\n scrollbars: {\n theme: 'uui-scroll-bars',\n autoHide: autoHide,\n autoHideDelay: typeof autoHideDelay === 'number' ? autoHideDelay : undefined,\n },\n },\n events: {\n scroll: (_inst, ev) => {\n onScroll?.(ev as unknown as React.UIEvent<ScrollbarsApi>);\n },\n },\n });\n\n useEffect(() => {\n const host = hostRef.current;\n const vp = viewportRef.current;\n if (!host || !vp) return;\n\n initialize({\n target: host,\n elements: {\n viewport: vp,\n content: vp,\n },\n });\n\n return () => {\n osInstance()?.destroy();\n };\n }, [initialize, osInstance]);\n\n useEffect(() => {\n const instance = osInstance();\n if (!instance) return;\n\n const elements = instance.elements();\n setShadowElements({\n host: elements.host,\n viewport: elements.viewport,\n });\n }, [osInstance]);\n\n useScrollShadows(shadowElements.host, shadowElements.viewport);\n\n useImperativeHandle(ref, (): ScrollbarsApi => {\n return {\n container: containerRef.current,\n view: viewportRef.current,\n };\n }, []);\n\n return (\n <div\n ref={ hostRef }\n className={ cx(\n css.root,\n outerCx,\n 'uui-scroll-bars',\n overflowTopEffect === 'shadow' && uuiScrollbars.uuiShadowTop,\n overflowBottomEffect === 'shadow' && uuiScrollbars.uuiShadowBottom,\n overflowTopEffect === 'line' && uuiScrollbars.uuiLineTop,\n overflowBottomEffect === 'line' && uuiScrollbars.uuiLineBottom,\n ) }\n { ...rest }\n data-overlayscrollbars-initialize=\"\"\n >\n <div\n className={ css.viewport }\n data-overlayscrollbars-contents=\"\"\n ref={ (node) => { viewportRef.current = node; } }\n { ...rawProps }\n >\n {children}\n </div>\n </div>\n );\n});\n\nScrollBars.displayName = 'ScrollBars';\n","import React, { HTMLAttributes } from 'react';\nimport {\n IHasCX, IEditable, VirtualListState, IHasRawProps, useVirtualList, cx, UseVirtualListProps,\n} from '@epam/uui-core';\nimport { Blocker } from './Blocker';\nimport { ScrollBars } from './ScrollBars';\nimport type { ScrollbarsApi, ScrollbarProps } from './ScrollBars';\nimport css from './VirtualList.module.scss';\n\nexport interface VirtualListRenderRowsParams<ListContainer extends HTMLElement = any> {\n listContainerRef: React.MutableRefObject<ListContainer>;\n estimatedHeight: number;\n offsetY: number;\n}\ntype VirtualListRenderRows<List extends HTMLElement = any> = {\n rows?: React.ReactNode[];\n renderRows: (config: VirtualListRenderRowsParams<List>) => React.ReactNode;\n} | {\n rows: React.ReactNode[];\n renderRows?: (config: VirtualListRenderRowsParams<List>) => React.ReactNode;\n};\n\ninterface BaseVirtualListProps\n extends IHasCX,\n IEditable<VirtualListState>,\n IHasRawProps<HTMLAttributes<HTMLDivElement>>,\n Pick<UseVirtualListProps, 'rowsCount' | 'rowsSelector' | 'onScroll'>,\n Pick<ScrollbarProps, 'overflowTopEffect' | 'overflowBottomEffect'> {\n /** HTML role attribute to place on list container */\n role?: React.HTMLAttributes<HTMLDivElement>['role'];\n /** Pass true, to enable Blocker while list loading */\n isLoading?: boolean;\n /**\n * Render callback for virtual list loading blocker\n * If omitted, default UUI `Blocker` component will be rendered\n */\n renderBlocker?: (props: { isLoading: boolean }) => React.ReactNode;\n}\n\nexport type VirtualListProps<List extends HTMLElement = any> = BaseVirtualListProps & VirtualListRenderRows<List>;\n\nexport const VirtualList = React.forwardRef<ScrollbarsApi, VirtualListProps>((props, ref) => {\n const {\n listContainerRef, offsetY, handleScroll, estimatedHeight, scrollContainerRef,\n } = useVirtualList({\n value: props.value,\n onValueChange: props.onValueChange,\n onScroll: props.onScroll,\n rowsCount: props.rowsCount,\n rowsSelector: props.rowsSelector,\n });\n\n React.useImperativeHandle(ref, () => scrollContainerRef.current, [scrollContainerRef.current]);\n\n const renderRows = () =>\n props.renderRows?.({\n listContainerRef, estimatedHeight, offsetY,\n }) || (\n <div className={ css.listContainer } style={ { minHeight: `${estimatedHeight}px` } }>\n <div ref={ listContainerRef } role={ props.role } style={ { marginTop: offsetY } }>\n {props.rows}\n </div>\n </div>\n );\n\n const scrollBarsRef = React.useCallback((scrollbars: ScrollbarsApi) => {\n if (!scrollbars?.view) return;\n scrollContainerRef.current = scrollbars.view;\n }, []);\n\n return (\n <ScrollBars\n cx={ cx(css.scrollContainer, props.cx) }\n onScroll={ handleScroll }\n ref={ scrollBarsRef }\n rawProps={ props.rawProps }\n overflowTopEffect={ props.overflowTopEffect }\n overflowBottomEffect={ props.overflowBottomEffect }\n >\n {renderRows()}\n <Blocker isEnabled={ props.isLoading } />\n </ScrollBars>\n );\n});\n","import * as uuiComponents from '@epam/uui-components';\nimport type { Overwrite } from '@epam/uui-core';\nimport { withMods } from '@epam/uui-core';\nimport { settings } from '../../settings';\n\ninterface RichTextViewMods {\n /**\n * Defines component size.\n * @default '14'\n */\n size?: '12' | '14' | '16';\n}\n\nexport interface RichTextViewModsOverride {}\n\nexport interface RichTextViewProps extends uuiComponents.RichTextViewProps, Overwrite<RichTextViewMods, RichTextViewModsOverride> {}\n\nexport const RichTextView = withMods<uuiComponents.RichTextViewProps, RichTextViewProps>(\n uuiComponents.RichTextView,\n (mods: RichTextViewMods) => ['uui-typography', `uui-typography-size-${mods.size || settings.richTextView.sizes.default}`],\n);\n","import * as React from 'react';\nimport {\n IHasCX,\n DataRowProps,\n IDataSourceView,\n cx,\n DataSourceState,\n} from '@epam/uui-core';\nimport { VerticalTabButton } from '../buttons';\nimport { VirtualList } from './VirtualList';\nimport { useMemo } from 'react';\nimport { TextPlaceholder } from '../typography';\n\n/**\n * Properties for a Tree component\n */\nexport interface TreeProps<TItem, TId> extends IHasCX {\n /**\n * View to get data for the tree. Use dataSource.useView(...) to get the view.\n */\n view: IDataSourceView<TItem, TId, any>;\n /**\n * Render callback for tree row.\n * If not provided, VerticalTabButton will be used by default.\n */\n renderRow?: (row: DataRowProps<TItem, TId>) => React.ReactNode;\n /**\n * Size for default VerticalTabButton renderer.\n * Default: '36'\n */\n size?: '30' | '36' | '48';\n /**\n * DataSourceState state\n */\n value: DataSourceState;\n /**\n * Callback to handle changes in DataSourceState.\n */\n onValueChange: React.Dispatch<React.SetStateAction<DataSourceState<Record<string, any>, any>>>;\n /**\n * Function to get the caption for each item.\n * @param item\n */\n getCaption: (item: TItem) => string;\n /**\n * Optional function to render additional elements in the row.\n * @param row\n */\n renderAddons?: (row: DataRowProps<TItem, TId>) => React.ReactNode;\n}\n\nfunction TreeRowRenderer<TItem, TId = string>(props: {\n row: DataRowProps<TItem, TId>;\n size: '30' | '36' | '48';\n getCaption: (item: TItem) => string;\n renderAddons?: (row: DataRowProps<TItem, TId>) => React.ReactNode;\n}) {\n const { row, size } = props;\n const handleClick = React.useCallback(() => {\n const cb = row.onClick || row.onSelect;\n if (cb && !row.isDisabled) {\n cb(row);\n }\n }, [row]);\n const handleFold = React.useCallback(() => row.onFold && row.onFold(row), [row]);\n const renderAddons = React.useCallback(() => props.renderAddons && props.renderAddons(row), [props.renderAddons, row]);\n const isActive = row.isSelected;\n const getCaption = React.useCallback((value: TItem): string => {\n return props.getCaption(value);\n }, [props.getCaption]);\n\n return (\n <VerticalTabButton\n { ...row }\n isActive={ isActive }\n caption={ row.isLoading ? <TextPlaceholder /> : getCaption(row.value) }\n size={ size }\n onClick={ (row.onClick || row.onSelect) ? handleClick : undefined }\n link={ row.link }\n onFold={ row.onFold ? handleFold : undefined }\n weight={ (row.isChildrenSelected || row.isSelected || isActive) ? 'semibold' : 'regular' }\n renderAddons={ renderAddons }\n />\n );\n}\n\nconst MemoizedTreeRowRenderer = React.memo(TreeRowRenderer) as typeof TreeRowRenderer;\n\nexport function Tree<TItem, TId = string>(props: TreeProps<TItem, TId>) {\n const {\n view,\n renderRow,\n size = '36',\n cx: propsCx,\n value,\n onValueChange,\n } = props;\n\n const rows = view.getVisibleRows();\n const rowsCount = view.getListProps().rowsCount ?? rows.length;\n\n const renderRowFunction = renderRow || (({ key, ...row }: DataRowProps<TItem, TId>) => (\n <MemoizedTreeRowRenderer\n key={ key }\n row={ row }\n size={ size }\n getCaption={ props.getCaption }\n renderAddons={ props.renderAddons }\n />\n ));\n\n const renderedRows = useMemo(\n () => rows.map((row) => renderRowFunction(row)),\n [rows, renderRowFunction, size],\n );\n\n return (\n <VirtualList\n value={ value }\n onValueChange={ onValueChange }\n rowsCount={ rowsCount }\n rows={ renderedRows }\n cx={ cx(propsCx) }\n role=\"tree\"\n />\n );\n}\n","import * as React from 'react';\nimport { cx, directionMode, ICanBeInvalid, ICanBeReadonly, IDisableable, IEditable, IHasCX, IHasDirection, IHasForwardedRef, IHasRawProps } from '@epam/uui-core';\nimport { Checkbox, CheckboxProps } from '../inputs';\nimport css from './CheckboxGroup.module.scss';\n\ninterface CheckboxGroupItem<TValue> extends Omit<CheckboxProps, 'id' | 'onValueChange' | 'value'> {\n /** Checkbox label. Can be a string, or React.ReactNode */\n name?: React.ReactNode;\n /** Item ID to put into selection */\n id: TValue;\n /** Render callback for checkbox label.\n * If omitted, 'name' prop value will be rendered.\n */\n renderName?: () => React.ReactNode;\n}\n\nexport interface CheckboxGroupProps<TValue>\n extends ICanBeInvalid,\n IHasCX,\n IEditable<TValue[]>,\n IDisableable,\n IHasDirection,\n ICanBeReadonly,\n IHasRawProps<React.FieldsetHTMLAttributes<HTMLFieldSetElement>>,\n IHasForwardedRef<HTMLFieldSetElement> {\n /** Array of checkbox items to be rendered in group */\n items: CheckboxGroupItem<TValue>[];\n /** Defines group components size */\n size?: CheckboxProps['size'];\n}\n\nexport function CheckboxGroup<TValue>(props: CheckboxGroupProps<TValue>) {\n const currentValue = props.value || [];\n const direction = props.direction || 'vertical';\n\n const handleChange = (selected: boolean, newVal: TValue) => {\n let newSelection;\n const actualValue = props.value || [];\n\n if (selected) {\n newSelection = actualValue.concat([newVal]);\n } else {\n newSelection = actualValue.filter((i) => i !== newVal);\n }\n\n props.onValueChange(newSelection);\n };\n\n return (\n <fieldset\n ref={ props.forwardedRef }\n className={ cx(css.root, directionMode[direction], props.cx) }\n { ...props.rawProps }\n >\n { props.items.map((i) => {\n const { id, name, renderName, ...restItemProps } = i;\n return (\n <Checkbox\n renderLabel={ i.renderName ? i.renderName : () => i.name }\n value={ currentValue.indexOf(i.id) !== -1 }\n onValueChange={ (selected) => handleChange(selected, i.id) }\n isDisabled={ props.isDisabled }\n isReadonly={ props.isReadonly }\n isInvalid={ props.isInvalid }\n isRequired={ props.isRequired }\n key={ i.id.toString() }\n size={ props.size || i.size }\n { ...restItemProps }\n />\n );\n }) }\n </fieldset>\n );\n}\n","import { type IControlled } from '@epam/uui-core';\nimport React, { forwardRef, type KeyboardEvent, type KeyboardEventHandler, ForwardedRef } from 'react';\nimport { TabButton, TabButtonProps } from '../buttons/TabButton';\nimport { FlexRow, FlexRowProps } from './FlexItems';\n\ntype TabId = string;\n\ntype TabElement = | HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement;\n\nexport type TabsItemProps = TabButtonProps & {\n /** Ref to the tab button. */\n ref?: ForwardedRef<TabElement>;\n /** ID of the tab button. There should be only one element with such ID on a page. */\n id: TabId;\n};\n\nexport interface TabsProps extends IControlled<TabId>, FlexRowProps {\n /** `TabButton` props with required `id` field. */\n items: Array<TabsItemProps>;\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>((props, ref) => {\n const { items, value, onValueChange, borderBottom = true, rawProps, ...otherProps } = props;\n\n if (items.length === 0) {\n return null;\n }\n\n const tabLastIndex = items.length - 1;\n\n const getTabCurrentIndex = (tabIdCurrent: TabId): number => {\n return items.findIndex((tabProps) => {\n return tabProps.id === tabIdCurrent;\n });\n };\n\n const moveToTabWithIndex = (tabIndex: number): void => {\n /*\n `id`-s provided in `items` are assigned to the tabs.\n Unless users manually broke this connection,\n the index calculation will be correct,\n and the tab element will be present in the DOM.\n */\n const tab = items.at(tabIndex)!;\n const tabElement = document.getElementById(tab.id)!;\n\n tabElement.focus();\n };\n\n const moveToPreviousTab = (tabIdCurrent: TabId): void => {\n const tabCurrentIndex = getTabCurrentIndex(tabIdCurrent);\n\n const tabIndexNext = tabCurrentIndex === 0 ? tabLastIndex : tabCurrentIndex - 1;\n\n moveToTabWithIndex(tabIndexNext);\n };\n\n const moveToNextTab = (tabIdCurrent: TabId): void => {\n const tabCurrentIndex = getTabCurrentIndex(tabIdCurrent);\n\n const tabIndexNext = tabCurrentIndex === tabLastIndex ? 0 : tabCurrentIndex + 1;\n\n moveToTabWithIndex(tabIndexNext);\n };\n\n const onKeyDown: KeyboardEventHandler = (event) => {\n const focusedTabIdCurrent = (event.target as TabElement).id;\n\n // https://www.w3.org/WAI/ARIA/apg/patterns/tabs/#keyboardinteraction\n switch (event.code) {\n case 'ArrowLeft': {\n moveToPreviousTab(focusedTabIdCurrent);\n\n break;\n }\n\n case 'ArrowRight': {\n moveToNextTab(focusedTabIdCurrent);\n\n break;\n }\n\n case 'Home': {\n moveToTabWithIndex(0);\n\n break;\n }\n\n case 'End': {\n moveToTabWithIndex(tabLastIndex);\n\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return (\n <FlexRow\n ref={ ref }\n borderBottom={ borderBottom }\n rawProps={ {\n role: 'tablist',\n 'aria-orientation': 'horizontal',\n ...rawProps,\n } }\n { ...otherProps }\n >\n {\n items.map((tabProps) => {\n const { id } = tabProps;\n\n const handleOnClick = (): void => {\n onValueChange(id);\n\n tabProps.onClick?.();\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLAnchorElement> & KeyboardEvent<HTMLButtonElement> & KeyboardEvent<HTMLSpanElement>): void => {\n onKeyDown(event);\n\n tabProps.rawProps?.onKeyDown?.(event);\n };\n\n const isActive = id === value;\n const tabIndex = isActive ? undefined : -1;\n\n return (\n <TabButton\n key={ id }\n isActive={ isActive }\n tabIndex={ tabIndex }\n { ...tabProps }\n onClick={ handleOnClick }\n rawProps={ {\n id,\n 'aria-selected': isActive,\n ...tabProps.rawProps,\n onKeyDown: handleOnKeyDown,\n } }\n />\n );\n })\n }\n </FlexRow>\n );\n});\n\nTabs.displayName = 'Tabs';\n","import React from 'react';\nimport cx from 'classnames';\nimport {\n withMods,\n ModalFooterCoreProps,\n ModalWindowProps as uuiModalWindowProps,\n ModalBlockerProps,\n ModalHeaderCoreProps,\n isMobile,\n Overwrite,\n} from '@epam/uui-core';\nimport { ModalBlocker as uuiModalBlocker, ModalWindow as uuiModalWindow } from '@epam/uui-components';\nimport { FlexSpacer, FlexCell } from '../layout';\nimport { IconButton } from '../buttons';\nimport { settings } from '../../settings';\n\nimport css from './Modals.module.scss';\n\nexport const ModalBlocker = withMods<ModalBlockerProps, ModalBlockerProps>(uuiModalBlocker, () => [css.modalBlocker]);\n\ninterface ModalWindowMods {\n /**\n * Defines component width.\n * @default '420px'\n */\n width?: number | string;\n /**\n * Defines component height.\n * @default 'auto'\n */\n height?: number | string;\n /**\n * Defines component max-height.\n * @default '80vh'\n */\n maxHeight?: number | string;\n}\n\nexport interface ModalWindowCoreProps extends uuiModalWindowProps {}\n\nexport interface ModalWindowProps extends ModalWindowCoreProps, ModalWindowMods {}\n\nexport const ModalWindow = withMods<uuiModalWindowProps, ModalWindowProps>(\n uuiModalWindow,\n () => [css.root, css.modal],\n (props) => {\n const width = props.width;\n const height = props.height || 'auto';\n const maxHeight = isMobile() ? 'var(--uui-modals-mobile-max-height)' : (props.maxHeight || 'var(--uui-modals-max-height)');\n return {\n style: {\n ...props.style,\n width,\n height,\n maxHeight,\n },\n };\n },\n);\n\nexport interface ModalHeaderMods {\n /** Pass true, to enable row bottom border */\n borderBottom?: boolean;\n}\n\nexport interface ModalHeaderModsOverride {}\n\nexport interface ModalHeaderProps extends ModalHeaderCoreProps, Overwrite<ModalHeaderMods, ModalHeaderModsOverride> {}\n\nexport function ModalHeader(props: ModalHeaderProps) {\n return (\n <div\n className={ cx(\n css.root,\n css.modalHeader,\n 'uui-modal-header',\n props.borderBottom && css.borderBottom,\n props.cx,\n ) }\n { ...props.rawProps }\n style={ {\n ...props.rawProps?.style,\n } }\n >\n {props.title && (\n <div className={ cx('uui-modal-title', 'uui-typography') }>\n {props.title}\n </div>\n )}\n {props.children}\n {props.onClose && <FlexSpacer />}\n {props.onClose && (\n <FlexCell shrink={ 0 } width=\"auto\">\n <IconButton rawProps={ { 'aria-label': 'Close modal' } } icon={ settings.modal.icons.closeIcon } onClick={ props.onClose } />\n </FlexCell>\n )}\n </div>\n );\n}\n\nexport interface ModalFooterMods {\n /** Pass true, to enable row top border */\n borderTop?: boolean;\n}\n\nexport interface ModalFooterModsOverride {}\n\nexport interface ModalFooterProps extends ModalFooterCoreProps, Overwrite<ModalFooterMods, ModalFooterModsOverride> {}\n\nexport function ModalFooter(props: ModalFooterProps) {\n return (\n <div\n className={ cx(\n css.root,\n css.modalFooter,\n 'uui-modal-footer',\n props.borderTop && css.borderTop,\n props.cx,\n ) }\n { ...props.rawProps }\n style={ { \n ...props.rawProps?.style,\n } }\n >\n {props.children}\n </div>\n );\n}\n","import { ReactNode } from 'react';\nimport { i18n as uuiI18n } from '@epam/uui-core';\n\nconst TREE_SHAKEABLE_INIT = () => ({\n ...uuiI18n,\n dataPickerBody: {\n searchPlaceholder: 'Search',\n noRecordsMessage: 'No records found',\n noRecordsSubTitle: 'Check your spelling, or search for a different keyword',\n typeSearchToLoadMessage: 'Type search to load items',\n },\n pickerModal: {\n headerTitle: 'Please select',\n searchPlaceholder: 'Type text for quick search',\n cancelButton: 'Cancel',\n selectButton: 'Select',\n clearButton: 'CLEAR',\n clearAllButton: 'CLEAR ALL',\n selectAllButton: 'SELECT ALL',\n },\n pickerInput: {\n showOnlySelectedLabel: 'Show only selected',\n clearSelectionButton: 'CLEAR ALL',\n clearSelectionButtonSingle: 'CLEAR',\n selectAllButton: 'SELECT ALL',\n doneButton: 'DONE',\n },\n notificationCard: {\n closeAllNotificationsButton: 'CLOSE ALL NOTIFICATIONS',\n },\n form: {\n notifications: {\n actionButtonCaption: 'Restore',\n unsavedChangesMessage: 'You have unsaved changes. Click Restore button if you would like to recover the data',\n },\n modals: {\n beforeLeaveMessage: 'Your data may be lost. Do you want to save data?',\n discardButton: 'Discard',\n saveButton: 'Save',\n },\n },\n rangeDatePicker: {\n pickerPlaceholderFrom: 'From',\n pickerPlaceholderTo: 'To',\n },\n tables: {\n noResultsBlock: {\n title: 'No results found',\n message: 'We can’t find any item matching your request',\n },\n columnsConfigurationModal: {\n applyButton: 'Apply',\n cancelButton: 'Cancel',\n selectAllButton: 'Select all',\n clearAllButton: 'Clear all',\n checkAllButton: 'Check All',\n uncheckAllButton: 'Uncheck All',\n configureColumnsTitle: 'Configure columns',\n pinnedToTheLeftSubgroupTitle: 'Pinned to the left',\n pinnedToTheRightSubgroupTitle: 'Pinned to the right',\n notPinnedSubgroupTitle: 'Not pinned',\n resetToDefaultButton: 'Reset to Default',\n displayedSectionTitle: 'Displayed in table',\n hiddenSectionTitle: 'Hidden in table',\n searchPlaceholder: 'Search by column name',\n noResultsFound: {\n title: 'No results found',\n subTitle: 'We can’t find any item matching your request',\n },\n enableAtLeastOneColumnMessage: 'Please enable at least one column',\n pinColumnToTheLeftButton: 'Pin column to left',\n pinColumnToTheRightButton: 'Pin column to right',\n unPinColumnButton: 'Unpin column',\n lockedColumnPinButton: 'You cannot unpin this column',\n },\n columnHeader: {\n collapseAllTooltip: 'Collapse All',\n expandAllTooltip: 'Expand All',\n },\n },\n pickerFilterHeader: {\n sortAscending: 'Sort Ascending',\n sortDescending: 'Sort Descending',\n },\n filterToolbar: {\n addCaption: 'Add filter',\n datePicker: {\n placeholder: 'Select date',\n removeCaption: 'REMOVE FILTER',\n clearCaption: 'CLEAR',\n },\n rangeDatePicker: {\n emptyPickerPlaceholder: 'Select period',\n emptyPlaceholderFrom: 'Select From',\n emptyPlaceholderTo: 'Select To',\n clearCaption: 'CLEAR',\n },\n pickerInput: {\n itemsPlaceholder: 'items',\n },\n },\n presetPanel: {\n addCaption: 'Add Preset',\n },\n confirmationModal: {\n discardButton: 'Discard',\n saveButton: 'Save',\n },\n fileUpload: {\n labelStart: 'Drop files to attach or',\n browse: 'browse',\n labelEnd: 'your local files',\n },\n fileCard: {\n fileSizeProgress: ' of ',\n failedUploadErrorMessage: 'Upload failed',\n },\n errorHandler: {\n errorPageConfig: {\n notFound: {\n title: 'Oooops! We couldn’t find this page',\n subtitle: 'Sorry for the inconvenience.',\n },\n permissionDenied: {\n title: 'You have no permissions!',\n subtitle: 'Sorry for the inconvenience.',\n },\n serverError: {\n title: '500 Error! Something went wrong',\n subtitle: 'Sorry for the inconvenience, we’ll get it fixed.',\n },\n serviceUnavailable: {\n title: 'The page request was canceled, because it took too long to complete',\n subtitle: 'Sorry for the inconvenience, we’ll get it fixed.',\n },\n default: {\n title: 'Something went wrong',\n subtitle: 'Sorry for the inconvenience, we’ll get it fixed.',\n },\n },\n recoveryMessageConfig: {\n 'auth-lost': {\n title: 'Your session has expired.',\n subtitle: 'Attempting to log you in.',\n },\n 'connection-lost': {\n title: 'Network connection down',\n subtitle: 'Please check your network connection.',\n },\n maintenance: {\n title: 'Server maintenance',\n subtitle: 'We apologize for the inconvenience. Our site is currently under maintenance. Will come back as soon as possible.',\n },\n 'server-overload': {\n title: 'Server overloaded',\n subtitle: 'We are trying to recover. Please wait.',\n },\n },\n supportMessage: undefined as ReactNode,\n },\n});\n\nexport const i18n = TREE_SHAKEABLE_INIT();\n","import React from 'react';\nimport cx from 'classnames';\nimport { useUuiContext } from '@epam/uui-core';\nimport type { INotification, Icon, IHasChildren, IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport { IconButton, LinkButton } from '../buttons';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './NotificationCard.module.scss';\n\ninterface NotificationAction extends IHasRawProps<React.ButtonHTMLAttributes<HTMLButtonElement>> {\n /** Defines NotificationAction name. */\n name: string;\n /** Called when action is clicked */\n action: () => void;\n}\n\nexport interface NotificationCardCoreProps extends INotification, IHasChildren, IHasCX, IHasRawProps<React.HTMLAttributes<HTMLDivElement>> {\n /** Array of Notification actions. If provided will be displayed as LinkButtons in the end of notification. */\n actions?: NotificationAction[];\n /** NotificationCard icon */\n icon?: Icon;\n}\n\ninterface NotificationMods {\n /** NotificationCard color */\n color?: 'info' | 'success' | 'warning' | 'error';\n}\n\nexport interface NotificationCardProps extends NotificationCardCoreProps, NotificationMods {}\n\nexport const NotificationCard = React.forwardRef<HTMLDivElement, NotificationCardProps>((props, ref) => {\n const notificationCardNode = React.useRef(null);\n\n React.useImperativeHandle(ref, () => notificationCardNode.current, [notificationCardNode.current]);\n\n React.useLayoutEffect(() => {\n notificationCardNode.current?.addEventListener('mouseenter', props.clearTimer);\n notificationCardNode.current?.addEventListener('mouseleave', props.refreshTimer);\n return () => {\n notificationCardNode.current?.removeEventListener('mouseenter', props.clearTimer);\n notificationCardNode.current?.removeEventListener('mouseleave', props.refreshTimer);\n };\n }, []);\n\n return (\n <div\n role=\"alert\"\n className={ cx('uui-notification_card', props.color && `uui-color-${props.color}`, css.root, props.cx) }\n ref={ notificationCardNode }\n { ...props.rawProps }\n >\n <div className={ css.mainPath }>\n { props.icon && (\n <div className={ css.iconWrapper }>\n <IconContainer\n size={ settings.notificationCard.sizes.icon }\n icon={ props.icon }\n />\n </div>\n ) }\n <div className={ css.content }>\n { props.children }\n { props.actions && (\n <div className={ css.actionWrapper }>\n { props.actions.map((action) => (\n <LinkButton\n key={ action.name }\n caption={ action.name }\n onClick={ action.action }\n cx={ css.actionLink }\n size={ settings.notificationCard.sizes.action }\n rawProps={ action.rawProps }\n />\n )) }\n </div>\n ) }\n </div>\n { props.onClose && (\n <div className={ cx(css.closeWrapper, 'uui-notification_card-close_icon') }>\n <IconButton\n icon={ settings.notificationCard.icons.closeIcon }\n color=\"neutral\"\n onClick={ props.onClose }\n cx={ css.closeIcon }\n />\n </div>\n ) }\n </div>\n </div>\n );\n});\n\nexport const WarningNotification = React.forwardRef<HTMLDivElement, NotificationCardCoreProps>((props, ref) => (\n <NotificationCard icon={ settings.notificationCard.icons.warningIcon } color=\"warning\" { ...props } ref={ ref } cx={ props.cx } />\n));\n\nexport const SuccessNotification = React.forwardRef<HTMLDivElement, NotificationCardCoreProps>((props, ref) => (\n <NotificationCard icon={ settings.notificationCard.icons.successIcon } color=\"success\" { ...props } ref={ ref } cx={ props.cx } />\n));\n\nexport const HintNotification = React.forwardRef<HTMLDivElement, NotificationCardCoreProps>((props, ref) => (\n <NotificationCard icon={ settings.notificationCard.icons.hintIcon } color=\"info\" { ...props } ref={ ref } cx={ props.cx } />\n));\n\nexport const ErrorNotification = React.forwardRef<HTMLDivElement, NotificationCardCoreProps>((props, ref) => (\n <NotificationCard icon={ settings.notificationCard.icons.errorIcon } color=\"error\" { ...props } ref={ ref } cx={ props.cx } />\n));\n\nexport function ClearNotification() {\n const uuiCtx = useUuiContext();\n return (\n <div className={ cx(css.clearNotifications, 'uui-clear-notifications') }>\n <LinkButton\n caption={ i18n.notificationCard.closeAllNotificationsButton }\n onClick={ () => uuiCtx.uuiNotifications.clearAll() }\n />\n </div>\n );\n}\n","import * as React from 'react';\nimport { IModal } from '@epam/uui-core';\nimport { Button } from '../buttons';\nimport { Panel, ScrollBars } from '../layout';\nimport { ModalBlocker, ModalWindow, ModalHeader, ModalFooter } from './Modals';\nimport { i18n } from '../../i18n';\n\nimport css from './ConfirmationModal.module.scss';\n\nexport interface ConfirmationModalWindowProps extends IModal<any> {\n /** Confirmation modal title */\n caption: any;\n /** Confirmation modal content */\n bodyContent?: any;\n /** Pass true, to hide cancel button */\n hideCancelButton?: boolean;\n}\n\nexport class ConfirmationModal extends React.Component<ConfirmationModalWindowProps> {\n render() {\n let bodyContent;\n\n if (this.props.bodyContent) {\n bodyContent = <Panel background=\"surface-main\" margin=\"24\">{this.props.bodyContent}</Panel>;\n }\n\n return (\n <ModalBlocker { ...this.props }>\n <ModalWindow width={ 420 }>\n <ModalHeader borderBottom title={ this.props.caption } onClose={ () => this.props.abort() } />\n <ScrollBars>{bodyContent}</ScrollBars>\n <ModalFooter cx={ css.footer }>\n {this.props.hideCancelButton || (\n <Button caption={ i18n.form.modals.discardButton } onClick={ () => this.props.success(false) } fill=\"outline\" color=\"secondary\" />\n )}\n <Button caption={ i18n.form.modals.saveButton } onClick={ () => this.props.success(true) } color=\"primary\" />\n </ModalFooter>\n </ModalWindow>\n </ModalBlocker>\n );\n }\n}\n","import * as React from 'react';\nimport { NotificationOperation, useUuiContext } from '@epam/uui-core';\nimport { SnackbarProps as UuiSnackbarProps, Snackbar as UuiSnackbar } from '@epam/uui-components';\nimport { ClearNotification } from './NotificationCard';\nimport { useEffect, useReducer } from 'react';\n\nexport interface SnackbarProps extends UuiSnackbarProps {}\n\nexport function Snackbar(props: SnackbarProps) {\n const uuiCtx = useUuiContext();\n const forceUpdate = useReliableForceUpdate();\n\n useEffect(() => uuiCtx.uuiNotifications.subscribe(() => forceUpdate()), []);\n\n let items: NotificationOperation[] = uuiCtx.uuiNotifications.getNotifications().slice().reverse();\n\n // add button for clear notification list\n if (items.length > 1) {\n const clearOperation: NotificationOperation = {\n component: ClearNotification,\n props: { id: 111555, key: 'clearNotification' },\n config: { position: items[0].config.position, duration: 'forever' },\n\n };\n items = [clearOperation].concat(items);\n }\n\n return <UuiSnackbar forwardedRef={ props.forwardedRef } notifications={ items } />;\n}\n\n/**\n * https://legacy.reactjs.org/docs/hooks-faq.html#is-there-something-like-forceupdate\n */\nfunction useReliableForceUpdate() {\n const red = useReducer((x) => x + 1, 0);\n return red[1];\n}\n","import { uuiDayjs, Dayjs } from '../../helpers/dayJsHelper';\nimport { RangeDatePickerInputType, RangeDatePickerValue } from '@epam/uui-core';\n\nexport const defaultFormat = 'MMM D, YYYY';\nexport const valueFormat = 'YYYY-MM-DD';\n\nexport const supportedDateFormats = (format?: string) => {\n return [\n ...(format ? [format] : []), 'MM/DD/YYYY', 'DD-MM-YYYY', 'DD.MM.YYYY', 'DDMMYYYY', 'YYYY/MM/DD', 'YYYY-MM-DD', 'YYYY.MM.DD', 'MMM D, YYYY', 'D/M/YYYY', 'YYYY/M/D',\n ];\n};\n\nexport const uuiDatePickerBodyBase = {\n container: 'uui-datepicker-container',\n} as const;\n\nexport const getNewMonth = (value: string | Dayjs | null) => {\n return uuiDayjs.dayjs(value, valueFormat).isValid() ? uuiDayjs.dayjs(value, valueFormat) : uuiDayjs.dayjs().startOf('day');\n};\n\nexport const defaultRangeValue: RangeDatePickerValue = {\n from: null,\n to: null,\n};\n\nexport const getDisplayedMonth = (selectedDate: RangeDatePickerValue, focus: RangeDatePickerInputType, initialViewMonth: string | undefined) => {\n if (selectedDate.from || selectedDate.to) {\n return getDisplayedMonthBySelection(selectedDate, focus);\n } else if (initialViewMonth) {\n return getNewMonth(`${initialViewMonth}-01`);\n }\n return uuiDayjs.dayjs();\n};\n\nexport const getDisplayedMonthBySelection = (selectedDate: RangeDatePickerValue, focus: RangeDatePickerInputType) => {\n if (selectedDate.from && selectedDate.to && focus) {\n return uuiDayjs.dayjs(selectedDate[focus]);\n } else if (selectedDate.from) {\n return uuiDayjs.dayjs(selectedDate?.from);\n } else if (selectedDate.to) {\n return uuiDayjs.dayjs(selectedDate?.to);\n }\n return uuiDayjs.dayjs();\n};\n\nexport const isValidDate = (input: string | null, format: string, filter?:(day: Dayjs) => boolean): boolean | undefined => {\n const parsedDate = uuiDayjs.dayjs(input, supportedDateFormats(format), true);\n return filter ? parsedDate.isValid() && filter(parsedDate) : parsedDate.isValid();\n};\n\nexport const isValidRange = (range: RangeDatePickerValue) => {\n const from = uuiDayjs.dayjs(range.from);\n const to = uuiDayjs.dayjs(range.to);\n return from.isValid() && to.isValid()\n ? from.valueOf() <= to.valueOf() && to.valueOf() >= from.valueOf()\n : true;\n};\n\nexport const getWithFrom = (selectedDate: RangeDatePickerValue, newValue: string | null, preventEmpty: boolean) => {\n if (uuiDayjs.dayjs(newValue).valueOf() <= uuiDayjs.dayjs(selectedDate.to).valueOf()) {\n // update range\n return {\n from: newValue,\n to: selectedDate.to,\n };\n } else {\n // new range value\n return {\n from: newValue,\n to: preventEmpty ? newValue : null,\n };\n }\n};\n\nexport const getWithTo = (selectedDate:RangeDatePickerValue, newValue: string | null, preventEmpty: boolean) => {\n if (!selectedDate.from) {\n // started on \"to\" input\n return {\n from: null,\n to: newValue,\n };\n } else if (uuiDayjs.dayjs(newValue).valueOf() >= uuiDayjs.dayjs(selectedDate.from).valueOf()) {\n // range is valid\n return {\n from: selectedDate.from,\n to: newValue,\n };\n } else {\n // range is invalid\n return {\n from: newValue,\n to: preventEmpty ? newValue : null,\n };\n }\n};\n\nexport const toValueDateRangeFormat = (value: RangeDatePickerValue, format?: string): RangeDatePickerValue => {\n const from = value.from;\n const to = value.to;\n\n const fromObj = uuiDayjs.dayjs(from, supportedDateFormats(format), true);\n const toObj = uuiDayjs.dayjs(to, supportedDateFormats(format), true);\n\n return {\n from: from && fromObj.isValid() ? uuiDayjs.dayjs(from, supportedDateFormats(format), true).format(valueFormat) : null,\n to: to && toObj.isValid() ? uuiDayjs.dayjs(to, supportedDateFormats(format), true).format(valueFormat) : null,\n };\n};\n\nexport const toCustomDateRangeFormat = (value: RangeDatePickerValue, format?: string): RangeDatePickerValue => {\n const from = value.from;\n const to = value.to;\n const customFormat = format || defaultFormat;\n\n const fromObj = uuiDayjs.dayjs(from, supportedDateFormats(format), true);\n const toObj = uuiDayjs.dayjs(to, supportedDateFormats(format), true);\n\n return {\n from: from && fromObj.isValid() ? uuiDayjs.dayjs(from, supportedDateFormats(format), true).format(customFormat) : null,\n to: to && toObj.isValid() ? uuiDayjs.dayjs(to, supportedDateFormats(format), true).format(customFormat) : null,\n };\n};\n\nexport const toValueDateFormat = (value: string | null, format?: string): string | null => {\n return value ? uuiDayjs.dayjs(value, supportedDateFormats(format), true).format(valueFormat) : null;\n};\n\nexport const toCustomDateFormat = (value: string | null, format?: string): string | null => {\n const customFormat = format || defaultFormat;\n const dayjsObj = uuiDayjs.dayjs(value, supportedDateFormats(format), true);\n return dayjsObj.isValid() ? dayjsObj.format(customFormat) : null;\n};\n\nexport const getPrevMonth = (currentDate: Dayjs) => {\n return currentDate.subtract(1, 'month');\n};\n\nexport const getNextMonth = (currentDate: Dayjs) => {\n return currentDate.add(1, 'month');\n};\n\nexport const getPrevYear = (currentDate: Dayjs) => {\n return currentDate.subtract(1, 'year');\n};\n\nexport const getNextYear = (currentDate: Dayjs) => {\n return currentDate.add(1, 'year');\n};\n\nexport const getPrevYearsList = (currentDate: Dayjs) => {\n return currentDate.subtract(16, 'year');\n};\n\nexport const getNextYearsList = (currentDate: Dayjs) => {\n return currentDate.add(16, 'year');\n};\n\nexport const isValidAndInFilter = (\n dateValue: RangeDatePickerValue,\n inputType: 'from' | 'to',\n filter?: (d: Dayjs) => boolean,\n): boolean => {\n if (!dateValue[inputType]) return false;\n if (!isValidRange(dateValue)) return false;\n return !(filter && filter(uuiDayjs.dayjs(dateValue[inputType])) === false);\n};\n","import * as React from 'react';\nimport { Icon, IDisableable, IHasCX } from '@epam/uui-core';\nimport cx from 'classnames';\nimport css from './DatePickerHeader.module.scss';\nimport { uuiDayjs, Dayjs } from '../../helpers/dayJsHelper';\nimport { Button } from '../buttons';\nimport { ViewType } from './types';\nimport {\n getPrevMonth, getPrevYear, getPrevYearsList, getNextMonth, getNextYear, getNextYearsList,\n} from './helpers';\nimport { settings } from '../../settings';\n\nexport const uuiHeader = {\n container: 'uui-datepicker-header-container',\n headerNav: 'uui-datepicker-header-nav',\n navTitle: 'uui-datepicker-header-nav-title',\n navIconRight: 'uui-datepicker-header-nav-icon-right',\n navIconLeft: 'uui-datepicker-header-nav-icon-left',\n};\n\ninterface DatePickerHeaderValue {\n view: ViewType;\n month: Dayjs;\n}\n\nexport interface DatePickerHeaderProps extends IHasCX, IDisableable {\n value: DatePickerHeaderValue;\n onValueChange: (value: DatePickerHeaderValue) => void;\n /*\n * Navigation icon for the left navigation icon in header.\n * Usually it has a default implementation in skins, so providing this is only necessary if you want to replace the default icon.\n */\n navIconLeft?: Icon;\n /*\n * Navigation icon for the right navigation icon in header.\n * Usually it has a default implementation in skins, so providing this is only necessary if you want to replace the default icon.\n */\n navIconRight?: Icon;\n}\n\nconst MIN_SOBER_YEAR = 1000;\nconst MAX_SOBER_YEAR = 2200;\n\nconst isYearWithinSoberRange = (value: Dayjs) => {\n const year = value.year();\n return year >= MIN_SOBER_YEAR && year <= MAX_SOBER_YEAR;\n};\n\nexport function DatePickerHeader({\n navIconLeft, navIconRight, value: { month, view }, onValueChange, isDisabled,\n}: DatePickerHeaderProps) {\n const onSetMonth = (newMonth: Dayjs) => {\n onValueChange({\n view,\n month: newMonth,\n });\n };\n\n const onSetView = (newView: ViewType) => {\n onValueChange({\n view: newView,\n month,\n });\n };\n\n const onLeftNavigationArrow = () => {\n switch (view) {\n case 'DAY_SELECTION':\n onSetMonth(getPrevMonth(month));\n break;\n case 'MONTH_SELECTION':\n onSetMonth(getPrevYear(month));\n break;\n case 'YEAR_SELECTION':\n onSetMonth(getPrevYearsList(month));\n break;\n }\n };\n\n const onRightNavigationArrow = () => {\n switch (view) {\n case 'DAY_SELECTION':\n onSetMonth(getNextMonth(month));\n break;\n case 'MONTH_SELECTION':\n onSetMonth(getNextYear(month));\n break;\n case 'YEAR_SELECTION':\n onSetMonth(getNextYearsList(month));\n break;\n }\n };\n\n const onCaptionClick = (newView: ViewType) => {\n let nextView: ViewType;\n switch (newView) {\n case 'DAY_SELECTION':\n nextView = 'MONTH_SELECTION';\n break;\n case 'MONTH_SELECTION':\n nextView = 'YEAR_SELECTION';\n break;\n case 'YEAR_SELECTION':\n nextView = 'DAY_SELECTION';\n break;\n }\n\n onSetView(nextView);\n };\n\n const title = React.useMemo(\n () => {\n const monthSubstr = view !== 'MONTH_SELECTION'\n ? uuiDayjs.dayjs.months()[month.month()]\n : '';\n return `${monthSubstr} ${month.year()}`;\n },\n [view, month],\n );\n\n const disablePrev = view === 'YEAR_SELECTION' && !isYearWithinSoberRange(getPrevYearsList(month));\n const disableNext = view === 'YEAR_SELECTION' && !isYearWithinSoberRange(getNextYearsList(month));\n\n return (\n <div className={ cx(css.root, uuiHeader.container, cx) }>\n <header className={ uuiHeader.headerNav }>\n <Button\n icon={ navIconLeft || settings.datePicker.icons.body.prevIcon }\n color=\"secondary\"\n fill=\"ghost\"\n cx={ uuiHeader.navIconLeft }\n onClick={ !isDisabled && (() => onLeftNavigationArrow()) }\n isDisabled={ disablePrev }\n />\n <Button\n caption={ title }\n fill=\"ghost\"\n cx={ uuiHeader.navTitle }\n onClick={ !isDisabled && (() => onCaptionClick(view)) }\n />\n <Button\n icon={ navIconRight || settings.datePicker.icons.body.nextIcon }\n color=\"secondary\"\n fill=\"ghost\"\n cx={ uuiHeader.navIconRight }\n onClick={ !isDisabled && (() => onRightNavigationArrow()) }\n isDisabled={ disableNext }\n />\n </header>\n </div>\n );\n}\n","import { CalendarProps, Calendar as uuiCalendar } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport { Dayjs } from '../../helpers/dayJsHelper';\nimport { settings } from '../../settings';\n\nimport css from './Calendar.module.scss';\n\nexport function applyDateSelectionMods() {\n return [css.root, `uui-size-${settings.datePicker.sizes.body}`];\n}\n\nexport const Calendar = withMods<CalendarProps<Dayjs>, CalendarProps<Dayjs>>(uuiCalendar, applyDateSelectionMods);\n","import React, { forwardRef, useEffect, useMemo, useState } from 'react';\nimport {\n IControlled,\n cx,\n} from '@epam/uui-core';\nimport { MonthSelection, YearSelection } from '@epam/uui-components';\nimport { DatePickerHeader } from './DatePickerHeader';\nimport { Calendar } from './Calendar';\nimport { CommonDatePickerBodyProps, ViewType } from './types';\nimport {\n getNewMonth, uuiDatePickerBodyBase, valueFormat,\n} from './helpers';\nimport { Dayjs, uuiDayjs } from '../../helpers/dayJsHelper';\nimport { settings } from '../../settings';\n\nimport css from './DatePickerBody.module.scss';\n\nexport interface DatePickerBodyProps extends CommonDatePickerBodyProps, IControlled<string | null> {\n /**\n * Manually handles holidays\n */\n isHoliday?: (day: Dayjs) => boolean;\n /**\n * Controls the initially displayed month and year when the picker opens (format: 'YYYY-MM').\n * If not specified, defaults to the current month.\n */\n initialViewMonth?: string;\n}\n\nexport const uuiDatePickerBody = {\n wrapper: 'uui-datepicker-body-wrapper',\n} as const;\n\nexport const DatePickerBody = forwardRef(DatePickerBodyComp);\n\nfunction DatePickerBodyComp(props: DatePickerBodyProps, ref: React.ForwardedRef<HTMLDivElement>) {\n const { value, onValueChange, initialViewMonth } = props;\n const initialViewDate = value || (initialViewMonth ? `${initialViewMonth}-01` : '');\n const [month, setMonth] = useState<Dayjs>(getNewMonth(initialViewDate));\n const [view, setView] = useState<ViewType>('DAY_SELECTION');\n\n // sync updated props with internal state\n useEffect(() => {\n setMonth(getNewMonth(initialViewDate));\n setView('DAY_SELECTION');\n }, [value, setMonth]);\n\n return (\n <StatelessDatePickerBody\n ref={ ref }\n { ...props }\n month={ month }\n view={ view }\n onValueChange={ onValueChange }\n onMonthChange={ (m) => setMonth(m) }\n onViewChange={ (v) => setView(v) }\n />\n );\n}\n\nexport interface StatelessDatePickerBodyValue<TSelection> {\n value: TSelection | null;\n month: Dayjs;\n view: ViewType;\n}\n\nexport interface StatelessDatePickerBodyProps extends CommonDatePickerBodyProps, StatelessDatePickerBodyValue<string> {\n onValueChange: (value: string | null) => void;\n onMonthChange: (m: Dayjs) => void;\n onViewChange: (v: ViewType) => void;\n isHoliday?: (day: Dayjs) => boolean;\n}\n\nexport const StatelessDatePickerBody = forwardRef(StatelessDatePickerBodyComp);\n\nfunction StatelessDatePickerBodyComp({\n renderDay,\n isHoliday,\n cx: classes,\n filter,\n rawProps,\n value,\n month,\n view,\n onValueChange,\n onMonthChange,\n onViewChange,\n isDisabled,\n}: StatelessDatePickerBodyProps, ref: React.ForwardedRef<HTMLDivElement>) {\n const selectedDate = useMemo(() => uuiDayjs.dayjs(value), [value]);\n\n const onMonthClick = (newDate: Dayjs) => {\n onMonthChange(newDate);\n onViewChange('DAY_SELECTION');\n };\n\n const onYearClick = (newDate: Dayjs) => {\n onMonthChange(newDate);\n onViewChange('MONTH_SELECTION');\n };\n\n const onDayClick = (day: Dayjs) => {\n if (!filter || filter(day)) {\n onValueChange(day.format(valueFormat));\n }\n };\n\n const getView = () => {\n switch (view) {\n case 'MONTH_SELECTION':\n return (\n <MonthSelection\n selectedDate={ selectedDate }\n value={ month }\n onValueChange={ onMonthClick }\n />\n );\n case 'YEAR_SELECTION':\n return (\n <YearSelection\n selectedDate={ selectedDate }\n value={ month }\n onValueChange={ onYearClick }\n />\n );\n case 'DAY_SELECTION':\n return (\n <Calendar\n value={ selectedDate }\n month={ month }\n onValueChange={ onDayClick }\n filter={ filter }\n renderDay={ renderDay }\n isHoliday={ isHoliday }\n isDisabled={ isDisabled }\n />\n );\n }\n };\n\n return (\n <div\n ref={ ref }\n className={ cx(uuiDatePickerBodyBase.container, `uui-size-${settings.datePicker.sizes.body}`, classes) }\n { ...rawProps }\n >\n <div className={ cx(css.root, uuiDatePickerBody.wrapper) }>\n <DatePickerHeader\n value={ {\n view,\n month,\n } }\n onValueChange={ (newValue) => {\n onMonthChange(newValue.month);\n onViewChange(newValue.view);\n } }\n isDisabled={ isDisabled }\n />\n {getView()}\n </div>\n </div>\n );\n}\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { offset } from '@floating-ui/react';\nimport {\n DatePickerProps as CoreDatePickerProps, DropdownBodyProps, cx, useUuiContext, uuiMod, IDropdownTogglerProps, Overwrite,\n} from '@epam/uui-core';\nimport { Dropdown } from '@epam/uui-components';\nimport { TextInput, TextInputProps } from '../inputs';\nimport { EditMode, IHasEditMode } from '../types';\nimport { DropdownContainer } from '../overlays';\nimport { DatePickerBody } from './DatePickerBody';\nimport {\n defaultFormat, isValidDate, toCustomDateFormat, toValueDateFormat,\n} from './helpers';\nimport { settings } from '../../settings';\n\nconst defaultMode = EditMode.FORM;\n\ntype DatePickerMods = {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\nexport interface DatePickerModsOverride {}\n\n/**\n * Represents the properties of the DatePicker component\n */\nexport interface DatePickerProps extends CoreDatePickerProps, IHasEditMode, Overwrite<DatePickerMods, DatePickerModsOverride> {}\n\nexport function DatePickerComponent(props: DatePickerProps, ref: React.ForwardedRef<HTMLElement>) {\n const { format = defaultFormat, value, size = settings.datePicker.sizes.input } = props;\n const context = useUuiContext();\n const [inputValue, setInputValue] = useState(toCustomDateFormat(value, format));\n const [isBodyOpen, setBodyIsOpen] = useState(false);\n\n useEffect(() => {\n setInputValue(toCustomDateFormat(value, format));\n }, [value, setInputValue]);\n\n const onValueChange = (newValue: string | null) => {\n if (value !== newValue) {\n props.onValueChange(newValue);\n\n if (props.getValueChangeAnalyticsEvent) {\n const event = props.getValueChangeAnalyticsEvent(newValue, value);\n context.uuiAnalytics.sendEvent(event);\n }\n }\n };\n\n const onBodyValueChange = (newValue: string | null) => {\n setInputValue(toCustomDateFormat(newValue, format));\n onValueChange(newValue);\n setBodyIsOpen(false);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n props.onBlur?.(e);\n\n if (isValidDate(inputValue, format, props.filter)) {\n setInputValue(toCustomDateFormat(inputValue, format));\n onValueChange(toValueDateFormat(inputValue, format));\n } else {\n const newValue = props.preventEmpty ? value : null;\n setInputValue(toCustomDateFormat(newValue, format));\n onValueChange(newValue);\n }\n };\n\n const onInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n setBodyIsOpen(true);\n e.preventDefault();\n }\n };\n\n const renderInput = (renderProps: IDropdownTogglerProps & { cx?: any }) => {\n const allowClear = !props.disableClear && !!inputValue && !props.preventEmpty;\n return (\n <TextInput\n { ...renderProps }\n isDropdown={ false }\n cx={ cx(props.inputCx, isBodyOpen && uuiMod.focus) }\n icon={ props.mode !== EditMode.CELL ? settings.datePicker.icons.input.calendarIcon : undefined }\n iconPosition={ props.iconPosition || 'left' }\n placeholder={ props.placeholder ? props.placeholder : format }\n size={ size as TextInputProps['size'] }\n value={ inputValue || undefined }\n onValueChange={ (v) => {\n setInputValue(v || '');\n } }\n onCancel={ allowClear ? () => {\n if (!props.disableClear && !!inputValue) {\n onValueChange(null);\n }\n } : undefined }\n isInvalid={ props.isInvalid }\n isDisabled={ props.isDisabled }\n isReadonly={ props.isReadonly }\n tabIndex={ props.isReadonly || props.isDisabled ? -1 : 0 }\n onFocus={ (e) => {\n props.onFocus?.(e);\n } }\n onKeyDown={ onInputKeyDown }\n onBlur={ onBlur }\n mode={ props.mode || defaultMode }\n rawProps={ props.rawProps?.input }\n id={ props.id }\n />\n );\n };\n\n const renderBody = useMemo(() => (renderProps: DropdownBodyProps) => {\n return (\n <DropdownContainer { ...renderProps }>\n <DatePickerBody\n value={ value }\n onValueChange={ onBodyValueChange }\n cx={ cx(props.bodyCx) }\n filter={ props.filter }\n isHoliday={ props.isHoliday }\n renderDay={ props.renderDay }\n rawProps={ props.rawProps?.body }\n initialViewMonth={ props.initialViewMonth }\n />\n {props.renderFooter?.()}\n </DropdownContainer>\n );\n }, [value, onBodyValueChange]);\n\n return (\n <Dropdown\n value={ isBodyOpen }\n middleware={ [offset(6)] }\n placement={ props.placement }\n ref={ ref }\n onValueChange={ (v) => {\n setBodyIsOpen(v);\n } }\n renderTarget={ (renderProps) => {\n return props.renderTarget?.(renderProps) || renderInput(renderProps);\n } }\n renderBody={ renderBody }\n />\n );\n}\n\nexport const DatePicker = React.forwardRef(DatePickerComponent) as\n (props: DatePickerProps & { ref?: React.ForwardedRef<HTMLElement> }) => ReturnType<typeof DatePickerComponent>;\n","import React, { forwardRef, useEffect, useState, type JSX } from 'react';\nimport { IEditable, cx, uuiMod, IHasCX, IClickable, IHasRawProps, RangeDatePickerValue, RangeDatePickerInputType } from '@epam/uui-core';\nimport { ReactComponent as CancelIcon } from '@epam/assets/icons/navigation-close-outline.svg';\nimport { TextInput } from '../inputs';\nimport { toCustomDateRangeFormat, toValueDateRangeFormat, isValidAndInFilter } from './helpers';\nimport type { RangeDatePickerProps } from './RangeDatePicker';\n\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './RangeDatePickerInput.module.scss';\n\n/**\n * Represents RangeDatePickerInputProps\n */\nexport interface RangeDatePickerInputProps\n extends IEditable<RangeDatePickerValue>,\n IHasCX,\n IClickable,\n Pick<RangeDatePickerProps, 'getPlaceholder' | 'disableClear' | 'filter' | 'id' | 'format' | 'size' | 'preventEmptyFromDate' | 'preventEmptyToDate'> {\n /**\n * rawProps as HTML attributes\n */\n rawProps?: {\n /**\n * Any HTML attributes (native or 'data-') to put on 'from' input\n */\n from?: IHasRawProps<React.HTMLAttributes<HTMLDivElement>>['rawProps'];\n /**\n * Any HTML attributes (native or 'data-') to put on 'to' input\n */\n to?: IHasRawProps<React.HTMLAttributes<HTMLDivElement>>['rawProps'];\n };\n /**\n * Currently setting date\n */\n inFocus: RangeDatePickerInputType,\n /**\n * Handles focus event on input element\n */\n onFocusInput: (event: React.FocusEvent<HTMLInputElement>, inputType: RangeDatePickerInputType) => void;\n /**\n * Handles blur event on input element\n */\n onBlurInput?: (event: React.FocusEvent<HTMLInputElement, Element>, inputType: RangeDatePickerInputType) => void;\n\n /** Called on keyDown event.\n Can be used to provide your own handlers.\n */\n onKeyDown?(e: React.KeyboardEvent<HTMLDivElement>): void;\n}\n\nexport const RangeDatePickerInput = forwardRef<HTMLDivElement, RangeDatePickerInputProps>(({\n isDisabled,\n isInvalid,\n isReadonly,\n size,\n disableClear,\n rawProps,\n value,\n inFocus,\n format,\n onValueChange,\n onFocusInput,\n onBlurInput,\n onClick,\n getPlaceholder,\n filter,\n onKeyDown,\n preventEmptyFromDate,\n preventEmptyToDate,\n id,\n cx: classes,\n}, ref): JSX.Element => {\n const [inputValue, setInputValue] = useState<RangeDatePickerValue>(\n toCustomDateRangeFormat(value, format),\n );\n\n useEffect(() => {\n setInputValue(toCustomDateRangeFormat(value, format));\n }, [format, value, setInputValue]);\n\n const onInputChange = (newValue: string, inputType: 'from' | 'to') => {\n const updatedInputValue = {\n ...inputValue,\n [inputType]: newValue,\n };\n\n setInputValue(updatedInputValue);\n\n const selectedDate = toValueDateRangeFormat(updatedInputValue, format);\n\n if (isValidAndInFilter(selectedDate, inputType, filter)) {\n onValueChange(selectedDate);\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>, inputType: RangeDatePickerInputType) => {\n onFocusInput(event, inputType);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>, inputType: 'from' | 'to') => {\n onBlurInput?.(event, inputType);\n\n const canBeEmpty = {\n from: !preventEmptyFromDate,\n to: !preventEmptyToDate,\n };\n\n const selectedDate = toValueDateRangeFormat(inputValue, format);\n\n // If the new value is null and the input can't be empty, set the value to the last selected value\n if (selectedDate[inputType] === null && !canBeEmpty[inputType]) {\n selectedDate[inputType] = value[inputType];\n }\n\n if (isValidAndInFilter(selectedDate, inputType, filter)) {\n setInputValue(toCustomDateRangeFormat(selectedDate, format));\n onValueChange(selectedDate);\n } else {\n const newInputValue = !canBeEmpty[inputType] ? toCustomDateRangeFormat(value, format)[inputType] : null;\n const newValue = !canBeEmpty[inputType] ? value[inputType] : null;\n\n setInputValue({\n ...inputValue,\n [inputType]: newInputValue,\n });\n onValueChange({\n ...selectedDate,\n [inputType]: newValue,\n });\n }\n };\n\n const onInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onClick();\n e.preventDefault();\n }\n };\n\n const onClear = () => {\n const newValue = {\n from: preventEmptyFromDate ? value.from : null,\n to: preventEmptyToDate ? value.to : null,\n };\n\n onValueChange(newValue);\n };\n\n const clearAllowed = !disableClear && !isReadonly && !isDisabled\n && !(preventEmptyFromDate && preventEmptyToDate)\n && ((value.from && !preventEmptyFromDate) || (value.to && !preventEmptyToDate));\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n ref={ ref }\n className={ cx(\n `uui-size-${size || settings.rangeDatePicker.sizes.default}`,\n 'uui-range-date-picker',\n classes,\n css.root,\n isDisabled && uuiMod.disabled,\n isReadonly && uuiMod.readonly,\n isInvalid && uuiMod.invalid,\n inFocus && uuiMod.focus,\n ) }\n onKeyDown={ onKeyDown }\n >\n <TextInput\n icon={ settings.rangeDatePicker.icons.input.calendarIcon }\n cx={ cx(css.dateInput, inFocus === 'from' && uuiMod.focus) }\n size={ size || settings.rangeDatePicker.sizes.default }\n placeholder={ getPlaceholder ? getPlaceholder('from') : i18n.rangeDatePicker.pickerPlaceholderFrom }\n value={ inputValue.from || undefined }\n onValueChange={ (v) => onInputChange(v || '', 'from') }\n onFocus={ (event) => handleFocus(event, 'from') }\n onBlur={ (event) => handleBlur(event, 'from') }\n isInvalid={ isInvalid }\n isDisabled={ isDisabled }\n isReadonly={ isReadonly }\n isDropdown={ false }\n rawProps={ rawProps?.from }\n onClick={ onClick }\n onKeyDown={ onInputKeyDown }\n id={ id }\n />\n <div className={ css.separator } />\n <TextInput\n cx={ cx(css.dateInput, inFocus === 'to' && uuiMod.focus) }\n placeholder={ getPlaceholder ? getPlaceholder('to') : i18n.rangeDatePicker.pickerPlaceholderTo }\n size={ size || settings.rangeDatePicker.sizes.default }\n value={ inputValue.to || undefined }\n icon={ clearAllowed && CancelIcon }\n iconPosition=\"right\"\n iconLabel=\"Clear selected date range\"\n onIconClick={ onClear }\n onValueChange={ (v) => onInputChange(v || '', 'to') }\n onFocus={ (e) => handleFocus(e, 'to') }\n onBlur={ (e) => handleBlur(e, 'to') }\n isInvalid={ isInvalid }\n isDisabled={ isDisabled }\n isReadonly={ isReadonly }\n isDropdown={ false }\n rawProps={ rawProps?.to }\n onClick={ onClick }\n onKeyDown={ onInputKeyDown }\n />\n </div>\n );\n});\n","import * as React from 'react';\nimport {\n IHasCX, cx, IHasRawProps, IHasForwardedRef,\n} from '@epam/uui-core';\nimport { LinkButton } from '../buttons';\n\nimport css from './CalendarPresets.module.scss';\nimport { settings } from '../../settings';\n\nexport const uuiPresets = {\n container: 'uui-presets-container',\n header: 'uui-presets-header',\n item: 'uui-presets-item',\n} as const;\n\nexport type RangeDatePickerPresets = {\n /**\n * Preset config\n */\n [key: string]: {\n /**\n * Name of the preset to display in rangeDatePicker body\n */\n name: React.ReactNode;\n /**\n * A pure function that gets range value which will be applied by preset selection\n */\n getRange: () => RangeDatePickerPresetValue;\n };\n};\n\n/**\n * Represents RangeDatePickerPresetValue\n */\nexport interface RangeDatePickerPresetValue {\n /**\n * Range from value\n */\n from?: string;\n /**\n * Range to value\n */\n to?: string;\n /**\n * Preset order in presets list\n */\n order?: number;\n}\n\nexport interface CalendarPresetsProps extends IHasCX, IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IHasForwardedRef<HTMLDivElement> {\n presets: RangeDatePickerPresets;\n onPresetSet: (nV: RangeDatePickerPresetValue) => void;\n}\n\nconst getPresets = (presets: RangeDatePickerPresets) => {\n return Object.keys(presets).map((key) => ({\n ...presets[key].getRange(),\n name: presets[key].name,\n key,\n })).sort((a, b) => a.order - b.order);\n};\n\nexport function CalendarPresets(props: CalendarPresetsProps) {\n return (\n <div\n ref={ props.forwardedRef }\n className={ cx(uuiPresets.container, css.root, props.cx) }\n { ...props.rawProps }\n >\n <div className={ uuiPresets.header }>Presets</div>\n {getPresets(props.presets).map((item) => (\n <LinkButton\n key={ item.key }\n caption={ item.name }\n onClick={ () => props.onPresetSet(item) }\n size={ settings.rangeDatePicker.sizes.preset }\n />\n ))}\n </div>\n );\n}\n","import React, { forwardRef, useState, type JSX } from 'react';\nimport cx from 'classnames';\nimport {\n IControlled,\n RangeDatePickerPresets,\n DayProps,\n RangeDatePickerInputType,\n RangeDatePickerValue,\n RangeDatePickerProps, useLayoutEffectSafeForSsr,\n} from '@epam/uui-core';\nimport { uuiDaySelection, Day } from '@epam/uui-components';\nimport { FlexCell, FlexRow } from '../layout';\nimport { CalendarPresets } from './CalendarPresets';\nimport { StatelessDatePickerBody, StatelessDatePickerBodyValue } from './DatePickerBody';\n\nimport type { Dayjs } from '../../helpers/dayJsHelper';\nimport { uuiDayjs } from '../../helpers/dayJsHelper';\nimport {\n defaultRangeValue, getDisplayedMonth, getWithFrom, getWithTo, uuiDatePickerBodyBase, valueFormat,\n} from './helpers';\nimport type { CommonDatePickerBodyProps, ViewType } from './types';\n\nimport css from './RangeDatePickerBody.module.scss';\n\nexport const uuiRangeDatePickerBody = {\n inRange: 'uui-range-datepicker-in-range',\n firstDayInRangeWrapper: 'uui-range-datepicker-first-day-in-range-wrapper',\n lastDayInRangeWrapper: 'uui-range-datepicker-last-day-in-range-wrapper',\n separator: 'uui-range-datepicker-separator',\n} as const;\n\nexport const rangeDatePickerPresets: RangeDatePickerPresets = {\n today: {\n name: 'Today',\n getRange: () => ({\n from: uuiDayjs.dayjs().toString(),\n to: uuiDayjs.dayjs().toString(),\n order: 1,\n }),\n },\n thisWeek: {\n name: 'This Week',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('isoWeek').toString(),\n to: uuiDayjs.dayjs().endOf('isoWeek').toString(),\n order: 2,\n }),\n },\n lastWeek: {\n name: 'Last Week',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('isoWeek').subtract(1, 'week').toString(),\n to: uuiDayjs.dayjs().endOf('isoWeek').subtract(1, 'week').toString(),\n order: 3,\n }),\n },\n thisMonth: {\n name: 'This Month',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('month').toString(),\n to: uuiDayjs.dayjs().endOf('month').toString(),\n order: 4,\n }),\n },\n lastMonth: {\n name: 'Last Month',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('month').subtract(1, 'month').toString(),\n to: uuiDayjs.dayjs().subtract(1, 'month').endOf('month').toString(),\n order: 5,\n }),\n },\n last3Month: {\n name: 'Last 3 Months',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('month').subtract(3, 'month').toString(),\n to: uuiDayjs.dayjs().subtract(1, 'month').endOf('month').toString(),\n order: 6,\n }),\n },\n thisYear: {\n name: 'This Year',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('year').toString(),\n to: uuiDayjs.dayjs().endOf('year').toString(),\n order: 7,\n }),\n },\n lastYear: {\n name: 'Last Year',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('year').subtract(1, 'year').toString(),\n to: uuiDayjs.dayjs().subtract(1, 'year').endOf('year').toString(),\n order: 8,\n }),\n },\n};\n\ninterface DayState {\n inRange: boolean;\n isFirst: boolean;\n isLast: boolean;\n}\n\n/**\n * Represents date picker body value\n */\nexport interface RangeDatePickerBodyValue<TSelection> {\n /**\n * Currently setting date\n */\n inFocus: RangeDatePickerInputType;\n /**\n * Date currently set\n */\n selectedDate: TSelection;\n}\n\nexport interface RangeDatePickerBodyProps<T> extends CommonDatePickerBodyProps, Pick<RangeDatePickerProps, 'preventEmptyToDate' | 'preventEmptyFromDate' | 'initialViewMonth'>, IControlled<RangeDatePickerBodyValue<T>> {\n renderFooter?(): React.ReactNode;\n isHoliday?: (day: Dayjs) => boolean;\n}\n\nexport const RangeDatePickerBody = forwardRef(RangeDatePickerBodyComp);\n\nfunction RangeDatePickerBodyComp(props: RangeDatePickerBodyProps<RangeDatePickerValue | null>, ref: React.ForwardedRef<HTMLDivElement>): JSX.Element {\n const { value: _value, filter, initialViewMonth } = props;\n const {\n selectedDate: _selectedDate, inFocus,\n } = _value;\n const selectedDate = _selectedDate || defaultRangeValue; // also handles null in comparison to default value\n\n const [view, setView] = useState<ViewType>('DAY_SELECTION');\n const [disabledPanel, setDisabledPanel] = useState<'left' | 'right' | null>(null);\n const [month, setMonth] = useState(() => {\n return getDisplayedMonth(selectedDate, inFocus, initialViewMonth);\n });\n\n const getRange = (newValue: string | null) => {\n if (!filter || filter(uuiDayjs.dayjs(newValue))) {\n if (inFocus === 'from') {\n return getWithFrom(selectedDate, newValue, props.preventEmptyFromDate);\n }\n if (inFocus === 'to') {\n return getWithTo(selectedDate, newValue, props.preventEmptyToDate);\n }\n }\n };\n\n const onBodyValueChange = (v: string | null) => {\n // selectedDate can be null, other params should always have values\n const newRange = v ? getRange(v) : selectedDate;\n\n let newInFocus: RangeDatePickerInputType = null;\n const fromChanged = selectedDate.from !== newRange?.from;\n const toChanged = selectedDate.to !== newRange?.to;\n if (inFocus === 'from' && fromChanged) {\n newInFocus = 'to';\n } else if (inFocus === 'to' && toChanged && !fromChanged) { // for the case when we change the value \"to\" less than the value \"from\" and do not want to get stuck on the focus \"from\"\n newInFocus = 'from';\n }\n\n props.onValueChange({\n selectedDate: newRange ? newRange : selectedDate,\n inFocus: newInFocus ?? inFocus,\n });\n };\n\n const renderDay = (renderProps: DayProps): JSX.Element => {\n const { inRange, isFirst, isLast } = getDayState(renderProps.value, selectedDate);\n return (\n <Day\n { ...renderProps }\n cx={ getDayCX({ inRange, isFirst, isLast }) }\n rawProps={ {\n ...renderProps.rawProps,\n 'aria-selected': (isFirst || isLast || inRange) ? 'true' : undefined,\n } }\n />\n );\n };\n\n const from: StatelessDatePickerBodyValue<string> = {\n month,\n view: disabledPanel === 'right' ? view : 'DAY_SELECTION',\n value: null,\n };\n\n const to: StatelessDatePickerBodyValue<string> = {\n view: disabledPanel === 'left' ? view : 'DAY_SELECTION',\n month: month.add(1, 'month'),\n value: null,\n };\n\n const renderPresets = (presets: RangeDatePickerPresets) => {\n return (\n <React.Fragment>\n <div className={ uuiRangeDatePickerBody.separator } />\n <CalendarPresets\n onPresetSet={ (presetVal) => {\n // enable day if smth other were selected\n setView('DAY_SELECTION');\n setDisabledPanel(null);\n setMonth(uuiDayjs.dayjs(presetVal.from));\n props.onValueChange({\n inFocus: props.value.inFocus,\n selectedDate: {\n from: presetVal.from ? uuiDayjs.dayjs(presetVal.from).format(valueFormat) : undefined,\n to: presetVal.to ? uuiDayjs.dayjs(presetVal.to).format(valueFormat) : undefined,\n },\n });\n } }\n presets={ presets }\n />\n </React.Fragment>\n );\n };\n\n useLayoutEffectSafeForSsr(() => {\n const monthToSet = getDisplayedMonth(selectedDate, inFocus, initialViewMonth);\n // To avoid re-rendering the body if the current month being displayed is equal to or greater than 1\n const shouldNotIgnoreUpdate = !(uuiDayjs.dayjs(month).isSame(monthToSet, 'month') || uuiDayjs.dayjs(month).add(1, 'month').isSame(monthToSet, 'month'));\n if (shouldNotIgnoreUpdate) {\n setMonth(monthToSet);\n }\n }, [selectedDate]);\n\n return (\n <div\n ref={ ref }\n className={ cx(css.root, uuiDatePickerBodyBase.container, props.cx) }\n { ...props.rawProps }\n aria-multiselectable=\"true\"\n >\n <FlexRow\n cx={ [view === 'DAY_SELECTION' && css.daySelection, css.container] }\n alignItems=\"top\"\n >\n <FlexCell width=\"auto\">\n <FlexRow>\n <FlexRow\n cx={ css.bodesWrapper }\n alignItems=\"top\"\n >\n <StatelessDatePickerBody\n key=\"date-picker-body-left\"\n cx={ cx(css.fromPicker) }\n { ...from }\n onValueChange={ (v) => onBodyValueChange(v) }\n onMonthChange={ (m) => {\n setMonth(m);\n } }\n onViewChange={ (v) => {\n setView(v);\n setDisabledPanel(v !== 'DAY_SELECTION' ? 'right' : null);\n } }\n filter={ props.filter }\n isHoliday={ props.isHoliday }\n renderDay={ props.renderDay || renderDay }\n isDisabled={ disabledPanel === 'left' }\n />\n <StatelessDatePickerBody\n key=\"date-picker-body-right\"\n cx={ cx(css.toPicker) }\n { ...to }\n onValueChange={ (v) => onBodyValueChange(v) }\n onMonthChange={ (m) => {\n setMonth(m.subtract(1, 'month'));\n } }\n onViewChange={ (v) => {\n setView(v);\n setDisabledPanel(v !== 'DAY_SELECTION' ? 'left' : null);\n } }\n filter={ props.filter }\n renderDay={ props.renderDay || renderDay }\n isHoliday={ props.isHoliday }\n isDisabled={ disabledPanel === 'right' }\n />\n {view !== 'DAY_SELECTION' && (\n <div\n style={ {\n left: disabledPanel === 'right' ? '50%' : undefined,\n right: disabledPanel === 'left' ? '50%' : undefined,\n } }\n className={ css.blocker }\n />\n )}\n </FlexRow>\n {props.presets && renderPresets(props.presets)}\n </FlexRow>\n {props.renderFooter && props.renderFooter()}\n </FlexCell>\n </FlexRow>\n </div>\n );\n}\n\nconst getDayCX = ({ inRange, isFirst, isLast }: DayState): string[] => {\n return [\n cx(\n inRange && uuiRangeDatePickerBody.inRange,\n isFirst && uuiRangeDatePickerBody.firstDayInRangeWrapper,\n !inRange && isFirst && uuiRangeDatePickerBody.lastDayInRangeWrapper,\n isLast && uuiRangeDatePickerBody.lastDayInRangeWrapper,\n !inRange && isLast && uuiRangeDatePickerBody.firstDayInRangeWrapper,\n (isFirst || isLast) && uuiDaySelection.selectedDay,\n ),\n ];\n};\n\nconst getDayState = (day: Dayjs, selectedDate: RangeDatePickerValue): DayState => {\n const dayValue = day.valueOf();\n const fromValue = selectedDate?.from\n ? uuiDayjs.dayjs(selectedDate.from).valueOf() : null;\n const toValue = selectedDate?.to\n ? uuiDayjs.dayjs(selectedDate.to).valueOf() : null;\n\n const inRange = fromValue\n && toValue\n && dayValue >= fromValue\n && dayValue <= toValue\n && fromValue !== toValue;\n const isFirst = dayValue === fromValue;\n const isLast = dayValue === toValue;\n\n return {\n inRange,\n isFirst,\n isLast,\n };\n};\n","import React, { useImperativeHandle, useState, type JSX } from 'react';\nimport cx from 'classnames';\nimport { offset } from '@floating-ui/react';\nimport type { RangeDatePickerProps as CoreRangeDatePickerProps, DropdownBodyProps, Overwrite, RangeDatePickerValue, RangeDatePickerInputType } from '@epam/uui-core';\nimport { useUuiContext } from '@epam/uui-core';\nimport { Dropdown } from '@epam/uui-components';\nimport { DropdownContainer } from '../overlays';\nimport { FlexRow } from '../layout';\nimport { RangeDatePickerBody, RangeDatePickerBodyValue } from './RangeDatePickerBody';\nimport { RangeDatePickerInput } from './RangeDatePickerInput';\nimport { defaultFormat, defaultRangeValue } from './helpers';\nimport { settings } from '../../settings';\n\nimport css from './RangeDatePicker.module.scss';\n\nexport interface RangeDatePickerModsOverride {}\n\ntype RangeDatePickerMods = {\n /**\n * Defines component size.\n */\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\n/**\n * Represents the properties of the RangeDatePicker component\n */\nexport interface RangeDatePickerProps extends CoreRangeDatePickerProps, Overwrite<RangeDatePickerMods, RangeDatePickerModsOverride> {}\n\nfunction RangeDatePickerComponent(props: RangeDatePickerProps, ref: React.ForwardedRef<HTMLElement>): JSX.Element {\n const { value: _value, format = defaultFormat, size = settings.rangeDatePicker.sizes.default } = props;\n const value = _value || defaultRangeValue; // also handles null in comparison to default value\n\n const context = useUuiContext();\n const [isOpen, setIsOpen] = useState(false);\n const [inFocus, setInFocus] = useState<RangeDatePickerInputType>(null);\n\n const targetRef = React.useRef<HTMLDivElement>(null);\n\n useImperativeHandle(ref, () => targetRef.current);\n\n const onValueChange = (newValue: RangeDatePickerValue) => {\n const fromChanged = value?.from !== newValue?.from;\n const toChanged = value?.to !== newValue?.to;\n if (fromChanged || toChanged) {\n props.onValueChange(newValue);\n if (props.getValueChangeAnalyticsEvent) {\n const event = props.getValueChangeAnalyticsEvent(newValue, value);\n context.uuiAnalytics.sendEvent(event);\n }\n }\n };\n\n const onOpenChange = (newIsOpen: boolean) => {\n setIsOpen(newIsOpen);\n props.onOpenChange?.(newIsOpen);\n if (!inFocus && newIsOpen) {\n setInFocus('from');\n if (targetRef.current) {\n const inputElement = targetRef.current.querySelector<HTMLInputElement>('.uui-input');\n inputElement?.focus();\n }\n }\n };\n\n const onBodyValueChange = (newValue: RangeDatePickerBodyValue<RangeDatePickerValue>) => {\n setInFocus(newValue.inFocus ?? inFocus);\n onValueChange(newValue.selectedDate);\n\n const toChanged = value.to !== newValue.selectedDate.to;\n const closeBody = newValue.selectedDate.from && newValue.selectedDate.to\n && inFocus === 'to'\n && toChanged;\n\n if (closeBody) {\n onOpenChange(false);\n }\n };\n\n const renderBody = (renderProps: DropdownBodyProps): JSX.Element => {\n return (\n <DropdownContainer\n { ...renderProps }\n cx={ cx(css.dropdownContainer) }\n shards={ [targetRef] }\n returnFocus={ true }\n >\n <FlexRow>\n <RangeDatePickerBody\n cx={ cx(props.bodyCx) }\n value={ {\n selectedDate: _value,\n inFocus,\n } }\n onValueChange={ onBodyValueChange }\n filter={ props.filter }\n presets={ props.presets }\n renderDay={ props.renderDay }\n renderFooter={ () => {\n return props.renderFooter?.(value);\n } }\n isHoliday={ props.isHoliday }\n rawProps={ props.rawProps?.body }\n preventEmptyToDate={ props.preventEmptyToDate }\n preventEmptyFromDate={ props.preventEmptyFromDate }\n initialViewMonth={ props.initialViewMonth }\n />\n </FlexRow>\n </DropdownContainer>\n );\n };\n\n const handleEscape = (e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Escape' && isOpen) {\n e.preventDefault();\n onOpenChange(false);\n }\n };\n\n return (\n <Dropdown\n renderTarget={ (renderProps) => {\n return props.renderTarget?.(renderProps) || (\n <RangeDatePickerInput\n id={ props.id }\n ref={ (node) => { (renderProps as any).ref(node); targetRef.current = node; } }\n cx={ props.inputCx }\n onClick={ () => renderProps.toggleDropdownOpening(true) }\n isDisabled={ props.isDisabled }\n isInvalid={ props.isInvalid }\n isReadonly={ props.isReadonly }\n size={ size as RangeDatePickerProps['size'] }\n getPlaceholder={ props.getPlaceholder }\n disableClear={ props.disableClear }\n rawProps={ props.rawProps }\n inFocus={ inFocus }\n value={ value }\n format={ format }\n filter={ props.filter }\n onValueChange={ onValueChange }\n onFocusInput={ (e, type) => {\n props.onFocus?.(e, type);\n setInFocus(type);\n } }\n onBlurInput={ (e, type) => { props.onBlur?.(e, type); !isOpen && setInFocus(null); } }\n onKeyDown={ handleEscape }\n preventEmptyFromDate={ props.preventEmptyFromDate }\n preventEmptyToDate={ props.preventEmptyToDate }\n />\n );\n } }\n renderBody={ (renderProps) => renderBody(renderProps) }\n onValueChange={ (v) => onOpenChange(v) }\n value={ isOpen }\n middleware={ [offset(6)] }\n placement={ props.placement }\n ref={ ref }\n />\n );\n}\n\nexport const RangeDatePicker = React.forwardRef(RangeDatePickerComponent) as\n (props: RangeDatePickerProps & { ref?: React.ForwardedRef<HTMLElement> }) => ReturnType<typeof RangeDatePickerComponent>;\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { DndActorRenderParams, IHasCX } from '@epam/uui-core';\nimport css from './DropMarker.module.scss';\n\ninterface DropMarkerProps extends DndActorRenderParams, IHasCX {\n /**\n * Pass 'true' to enable Blocker.\n */\n enableBlocker?: boolean;\n}\n\nexport function DropMarker(props: DropMarkerProps) {\n return props.isDndInProgress\n ? (\n <>\n { props.enableBlocker && <div className={ css.blocker } /> }\n <div className={ cx([\n css.root,\n css.marker,\n css[props.position],\n props?.cx,\n ]) }\n />\n </>\n )\n : null;\n}\n","import React from 'react';\n\ninterface HighlightRange {\n from: number;\n to: number;\n isHighlighted: boolean;\n}\n\nconst mergeHighlightRanges = (ranges: HighlightRange[]) => {\n const mergedRanges: HighlightRange[] = [];\n ranges.forEach((range) => {\n if (!mergedRanges.length) {\n mergedRanges.push({ ...range, isHighlighted: true });\n }\n\n const lastRange = mergedRanges[mergedRanges.length - 1];\n if (range.from >= lastRange.from && range.from <= lastRange.to && range.to > lastRange.to) {\n lastRange.to = range.to;\n }\n\n if (lastRange.to < range.from) {\n mergedRanges.push({ ...range, isHighlighted: true });\n }\n });\n\n return mergedRanges;\n};\n\nconst addNotHighlightedRanges = (ranges: HighlightRange[], str: string) => {\n const allRanges: HighlightRange[] = [];\n ranges.forEach((range, index) => {\n if (index === 0 && range.from !== 0) {\n allRanges.push({ from: 0, to: range.from, isHighlighted: false });\n }\n const prevRange = ranges[index - 1];\n if (prevRange && prevRange.to < range.from) {\n allRanges.push({ from: prevRange.to, to: range.from, isHighlighted: false });\n }\n\n allRanges.push(range);\n const lastIndex = ranges.length - 1;\n if (index === lastIndex && range.to < str.length) {\n allRanges.push({ from: range.to, to: str.length, isHighlighted: false });\n }\n });\n return allRanges;\n};\n\nexport const getHighlightRanges = (str: string, search: string) => {\n const words = search\n .split(' ')\n .filter(Boolean)\n .map((word) => word.trim().replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')) // esape regex characters inside the string\n .map((word) => new RegExp(word, 'ig'));\n const matches = words.flatMap((word) => [...str.matchAll(word)]);\n\n const ranges = matches\n .map((match) => ({ from: match.index, to: match[0].length + match.index, isHighlighted: true }))\n .sort((range1, range2) => range1.from - range2.from);\n\n if (!ranges) {\n return [];\n }\n\n const mergedRanges = mergeHighlightRanges(ranges);\n return addNotHighlightedRanges(mergedRanges, str);\n};\n\nconst getDecoratedText = (str: string, ranges: HighlightRange[]) => \n ranges.map((range, index) => {\n const rangeStr = str.substring(range.from, range.to);\n return (\n <span\n key={ `${rangeStr}-${index}` }\n { ...(range.isHighlighted ? { className: 'uui-highlight' } : {}) }\n >\n {rangeStr}\n </span>\n );\n });\n\nexport const getHighlightedSearchMatches = (str: string, search?: string) => {\n if (!search || !str) {\n return str;\n }\n \n const ranges = getHighlightRanges(str, search);\n if (!ranges.length) {\n return str;\n }\n \n return getDecoratedText(str, ranges);\n};\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { DataRowProps, DataSourceState, Icon, Overwrite } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport { FlexCell, FlexRow } from '../layout';\nimport { Avatar } from '../widgets';\nimport { getHighlightedSearchMatches } from './highlight';\nimport { settings } from '../../settings';\n\nimport css from './PickerItem.module.scss';\n\nexport interface PickerItemModsOverride {}\n\ninterface PickerItemMods {\n /**\n * Defines component size.\n */\n size?: '24' | '30' | '36' | '42' | '48';\n}\n\nexport interface PickerItemProps<TItem, TId> extends Overwrite<PickerItemMods, PickerItemModsOverride>,\n DataRowProps<TItem, TId> {\n /** Path to the user avatar.\n * If omitted, no avatar will be rendered.\n * * */\n avatarUrl?: string;\n /** Icon to render in picker row.\n * If omitted, nothing will be rendered.\n * */\n icon?: Icon;\n /** Row title */\n title?: string;\n /** Row subtitle. Will be rendered as a second line, below the title */\n subtitle?: string;\n /** DataSourceState of the Picker.\n * Usually provided via renderItem callback params\n * */\n dataSourceState?: DataSourceState;\n /**\n * Enables highlighting of the items' text with search-matching results.\n * @default true\n * */\n highlightSearchMatches?: boolean;\n}\n\nexport function PickerItem<TItem, TId>(props: PickerItemProps<TItem, TId>) {\n const {\n highlightSearchMatches = true,\n size, avatarUrl, isLoading, isDisabled, icon,\n } = props;\n\n const itemSize = size || settings.pickerInput.sizes.body.row;\n const isMultiline = !!(props.title && props.subtitle);\n\n const { search } = props.dataSourceState ?? {};\n const title = highlightSearchMatches ? getHighlightedSearchMatches(props.title, search) : props.title;\n\n return (\n <FlexCell width=\"auto\" cx={ [css.root, 'uui-picker_input-item', 'uui-typography', props.cx] }>\n <FlexRow\n size={ itemSize }\n cx={ [isMultiline && css.multiline, css.columnGap] }\n rawProps={ { style: { '--uui-picker_item-vertical-padding': `${settings.pickerInput.sizes.body.itemVerticalPaddingMap[itemSize]}px` } as React.CSSProperties } }\n >\n { avatarUrl && (\n <Avatar\n isLoading={ isLoading }\n img={ avatarUrl }\n size={ getAvatarSize(itemSize, isMultiline) }\n />\n ) }\n { icon && <IconContainer icon={ icon } /> }\n <FlexCell width=\"auto\">\n { title && (\n <div className={ cx(css.title, isDisabled && css.disabled, `uui-size-${itemSize}`) }>\n { title }\n </div>\n ) }\n { props.subtitle && (\n <div className={ cx(css.subtitle, isDisabled && css.disabled, `uui-size-${itemSize}`) }>\n { props.subtitle }\n </div>\n ) }\n </FlexCell>\n </FlexRow>\n </FlexCell>\n );\n}\n\nfunction getAvatarSize(size: PickerItemProps<unknown, unknown>['size'], isMultiline: boolean) {\n return settings.pickerInput.sizes.body[isMultiline ? 'itemAvatarMultilineMap' : 'itemAvatarMap'][size];\n}\n","import * as React from 'react';\nimport { useCallback } from 'react';\nimport { cx, DataRowProps, DataSourceState, FlattenSearchResultsConfig, Icon, isEventTargetInsideClickable, Overwrite, uuiMarkers, uuiMod } from '@epam/uui-core';\nimport { FlexSpacer, IconContainer } from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './DataPickerRow.module.scss';\nimport { PickerItem } from './PickerItem';\nimport type { PickerInputProps } from './PickerInput';\nimport { Text } from '../typography';\nimport { FlexCell } from '../layout';\nimport { DataRowAddons } from '../widgets';\n\nexport interface DataPickerRowModsOverride {\n}\n\ninterface DataPickerRowMods {\n size?: '24' | '30' | '36' | '42' | '48';\n padding?: '12' | '24';\n alignActions?: 'top' | 'center';\n}\n\nexport interface DataPickerRowProps<TItem, TId> extends Overwrite<DataPickerRowMods, DataPickerRowModsOverride>, DataRowProps<TItem, TId>,\n Pick<PickerInputProps<TItem, TId>, 'renderRow' | 'highlightSearchMatches' | 'getName'>, FlattenSearchResultsConfig {\n /** Render callback for part of the content part of the row - between left addons and right select icon.\n * If omitted, default `PickerItem` component will be rendered.\n */\n renderItem?: (item: TItem, rowProps: DataRowProps<TItem, TId>, dataSourceState?: DataSourceState) => React.ReactNode;\n /** DataSourceState of the Picker.\n * Usually provided via renderRow callback params\n * */\n dataSourceState?: DataSourceState;\n /** A pure function that gets entity name from entity object */\n getName: (item: TItem) => string;\n}\n\nexport function DataPickerRow<TItem, TId>(props: DataPickerRowProps<TItem, TId>) {\n const rowNode = React.useRef<HTMLDivElement>(null);\n\n const handleMouseEnter = useCallback(() => {\n props.onFocus && props.onFocus(props.index);\n }, [props.onFocus, props.index]);\n\n React.useEffect(() => {\n if (props.onFocus) {\n rowNode.current?.addEventListener('mouseenter', handleMouseEnter);\n }\n return () => {\n rowNode.current?.removeEventListener('mouseenter', handleMouseEnter);\n };\n }, [props.onFocus, handleMouseEnter]);\n\n const handleFocus = () => {\n // If this row gets focus but is not the focused row, make it focused\n if (!props.isFocused && props.onFocus) {\n props.onFocus(props.index);\n }\n };\n\n const getSubtitle = ({ path }: DataRowProps<TItem, TId>) => {\n if (!props.dataSourceState?.search) return;\n\n return path\n .map(({ value }) => props.getName(value))\n .filter(Boolean)\n .join(' / ');\n };\n\n const renderRowItem = (item: TItem, rowProps: DataRowProps<TItem, TId>) => {\n if (props.renderItem) {\n return props.renderItem(item, rowProps, props.dataSourceState);\n }\n\n return (\n <PickerItem\n title={ props.getName(item) }\n size={ props.size || settings.pickerInput.sizes.body.row }\n dataSourceState={ props.dataSourceState }\n highlightSearchMatches={ props.highlightSearchMatches }\n { ...(props.flattenSearchResults ? { subtitle: getSubtitle(rowProps) } : {}) }\n { ...rowProps }\n />\n );\n };\n\n const renderContent = () => {\n let content: React.ReactNode;\n\n if (props.isLoading) {\n content = settings.pickerInput.renderPlaceholder({ rowSize: props.size });\n } else if (props.isUnknown) {\n content = (\n <Text size={ props.size }>\n Unknown\n </Text>\n );\n } else {\n const SelectIcon = (typeof settings.pickerInput.icons.body.selectIcon === 'function'\n ? settings.pickerInput.icons.body.selectIcon(props.size)\n : settings.pickerInput.icons.body.selectIcon) as Icon;\n\n content = (\n <>\n {renderRowItem(props.value, props)}\n <FlexSpacer />\n {(props.isChildrenSelected || props.isSelected) && (\n <div className={ cx(css.iconWrapper, 'uui-picker_input-row-select_icon', uuiMod.selected) }>\n <IconContainer\n size={ settings.pickerInput.sizes.body.selectIconMap[props.size] }\n icon={ SelectIcon }\n cx={ props.isChildrenSelected ? css.iconDefault : css.selectedMark }\n rawProps={ { 'aria-label': props.isChildrenSelected\n ? 'Child is selected'\n : 'Selected' } }\n />\n </div>\n )}\n </>\n );\n }\n\n return (\n <FlexCell\n grow={ 1 }\n width={ 0 }\n minWidth={ 0 }\n cx={ css.rowContent }\n >\n <DataRowAddons size={ props.size } rowProps={ props } tabIndex={ -1 } />\n <div className={ css.contentWrapper }>\n {content}\n </div>\n </FlexCell>\n );\n };\n\n const clickHandler = props.onClick || props.onSelect || props.onFold || props.onCheck;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div\n onClick={ clickHandler && ((e) => !isEventTargetInsideClickable(e) && clickHandler(props)) }\n onFocus={ handleFocus }\n role=\"option\"\n aria-busy={ props.isLoading }\n aria-posinset={ props.index + 1 }\n aria-checked={ props.checkbox?.isVisible ? props.isChecked : null }\n aria-selected={ props.isSelectable ? props.isSelected : null }\n tabIndex={ -1 }\n ref={ rowNode }\n id={ props.rowKey }\n className={ cx(\n css.pickerRow,\n 'uui-picker_input-row',\n `uui-size-${props.size || settings.pickerInput.sizes.body.row}`,\n css[`align-widgets-${props.alignActions || 'top'}`],\n clickHandler && props.isFocused && uuiMod.focus,\n clickHandler && uuiMarkers.clickable,\n props.cx,\n ) }\n style={ props.padding && {\n '--uui-data_picker-horizontal-padding': `${props.padding}px`,\n } as React.CSSProperties }\n { ...props.rawProps }\n >\n {renderContent()}\n </div>\n );\n}\n","import React, { useEffect, useMemo } from 'react';\nimport {\n DataSourceState, isMobile, cx, Overwrite, IDropdownBodyProps, devLogger, DataSourceListProps, IEditable,\n IHasRawProps, usePrevious, DataRowProps, FlattenSearchResultsConfig,\n} from '@epam/uui-core';\nimport { FlexCell } from '@epam/uui-components';\nimport { SearchInput } from '../inputs';\nimport { FlexRow, VirtualList } from '../layout';\nimport { Text } from '../typography';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\nimport css from './DataPickerBody.module.scss';\nimport isEqual from 'react-fast-compare';\nimport { DataPickerRow } from './DataPickerRow';\nimport type { PickerInputProps } from './PickerInput';\nimport { MoveFocusInside } from 'react-focus-lock';\n\nexport interface DataPickerBodyModsOverride {}\n\ninterface DataPickerBodyMods {\n searchSize?: PickerInputProps<any, any>['size'];\n}\n\nexport interface DataPickerBodyProps<TItem = unknown, TId = unknown> extends Overwrite<DataPickerBodyMods, DataPickerBodyModsOverride>,\n Pick<PickerInputProps<TItem, TId>, 'size' | 'renderRow' | 'highlightSearchMatches' | 'getName' | 'minCharsToSearch' | 'renderEmpty' | 'renderNotFound' | 'fixedBodyPosition' | 'searchDebounceDelay'>,\n FlattenSearchResultsConfig, DataSourceListProps, IEditable<DataSourceState>, IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IDropdownBodyProps {\n maxHeight?: number;\n selectionMode?: 'single' | 'multi';\n maxWidth?: number;\n onKeyDown?(e: React.KeyboardEvent<HTMLElement>): void;\n rows: DataRowProps<TItem, TId>[];\n showSearch?: boolean | 'auto';\n /** A pure function that gets entity name from entity object */\n getName: (item: TItem) => string;\n /**\n * Pass false, to disable search input autofocus\n * @default true\n * */\n autoFocusSearch?: boolean;\n}\n\nexport function DataPickerBody<TItem, TId>({ highlightSearchMatches = true, autoFocusSearch = true, ...props }:DataPickerBodyProps<TItem, TId>) {\n const prevProps = usePrevious(props);\n const showSearch = props.showSearch === 'auto' ? props.totalCount > 10 : Boolean(props.showSearch);\n const [isKeyboardNavigation, setIsKeyboardNavigation] = React.useState(false);\n\n useEffect(() => {\n if (props.rows.length !== prevProps?.rows.length || (!isEqual(prevProps?.value.checked, props.value.checked) && !props.fixedBodyPosition)) {\n props.scheduleUpdate?.();\n }\n }, [props.rows, prevProps, props.value.checked, props.fixedBodyPosition]);\n\n const searchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n props.onKeyDown?.(e);\n };\n\n const handleVirtualListFocus = (e: React.FocusEvent<HTMLElement>) => {\n // Only set keyboard navigation if focus came from keyboard (Tab key)\n // Check if the focus event was triggered by keyboard navigation\n const isKeyboardFocus = e.target === e.currentTarget;\n if (isKeyboardFocus) {\n setIsKeyboardNavigation(true);\n }\n };\n\n const handleVirtualListBlur = (e: React.FocusEvent<HTMLElement>) => {\n // Check if focus is moving outside the virtual list\n const relatedTarget = e.relatedTarget as HTMLElement;\n const currentTarget = e.currentTarget;\n\n if (relatedTarget && !currentTarget.contains(relatedTarget)) {\n // Focus is leaving the virtual list, hide visual focus but keep focusedIndex for navigation \"by circle\"\n setIsKeyboardNavigation(false);\n }\n };\n\n const {\n focusedIndex,\n topIndex,\n } = props.value;\n\n const focusedRowId = useMemo((): string => {\n // No need to make unnecessary calculations.\n if (!props.showSearch) {\n return '';\n }\n\n const focusedRow = props.rows.at(focusedIndex - topIndex);\n\n if (!focusedRow) {\n return '';\n }\n\n return focusedRow.rowKey;\n }, [props.showSearch, focusedIndex, topIndex]);\n\n const renderEmpty = () => {\n const search = props.value.search;\n\n if (props.renderEmpty) {\n return props.renderEmpty({\n minCharsToSearch: props.minCharsToSearch,\n onClose: props.onClose,\n search: search,\n });\n }\n\n if (props.minCharsToSearch && search.length < props.minCharsToSearch) {\n return (\n <FlexCell cx={ css.noData } grow={ 1 } textAlign=\"center\">\n <Text size={ props.searchSize }>{i18n.dataPickerBody.typeSearchToLoadMessage}</Text>\n </FlexCell>\n );\n }\n\n if (props.rows.length === 0) {\n if (props.renderNotFound) {\n if (__DEV__) {\n devLogger.warn('[PickerInput]: renderNotFound prop is deprecated. Please use renderEmpty prop instead.');\n }\n\n return props.renderNotFound({\n onClose: props.onClose,\n search: search,\n });\n }\n\n return (\n <FlexCell cx={ css.noData } grow={ 1 } textAlign=\"center\">\n <Text size={ props.searchSize }>{i18n.dataPickerBody.noRecordsMessage}</Text>\n </FlexCell>\n );\n }\n };\n\n const getRowSize = () => {\n if (isMobile()) {\n return settings.pickerInput.sizes.body.mobileRow;\n }\n\n return props.size || settings.pickerInput.sizes.body.row;\n };\n\n const renderRow = (row: DataRowProps<TItem, TId>, dsState: DataSourceState) => {\n const pickerRowProps = {\n ...row,\n getName: props.getName,\n cx: cx(\n row.cx,\n isKeyboardNavigation && row.isFocused && 'uui-focus',\n isKeyboardNavigation && row.isFocused && 'uui-keyboard-focus',\n ),\n };\n\n return props.renderRow ? (\n props.renderRow(pickerRowProps, dsState)\n ) : (\n <DataPickerRow\n { ...pickerRowProps }\n key={ row.rowKey }\n size={ getRowSize() }\n flattenSearchResults={ props.flattenSearchResults }\n highlightSearchMatches={ highlightSearchMatches }\n dataSourceState={ dsState }\n getName={ props.getName }\n />\n );\n };\n\n const renderSearchInput = () => {\n return (\n <SearchInput\n placeholder={ i18n.dataPickerBody.searchPlaceholder }\n value={ props.value.search }\n onValueChange={ (newVal) => props.onValueChange({ ...props.value, search: newVal }) }\n onKeyDown={ searchKeyDown }\n size={ searchSize }\n debounceDelay={ props.searchDebounceDelay }\n rawProps={ {\n dir: 'auto',\n 'aria-activedescendant': focusedRowId,\n } }\n />\n );\n };\n\n const searchSize = isMobile()\n ? settings.pickerInput.sizes.body.mobileSearchInput\n : settings.pickerInput.sizes.body.getSearchSize({ pickerSize: props.searchSize });\n\n const renderedDataRows = useMemo(() => props.rows.map((row) => renderRow(row, props.value)), [props.rows, props.value, isKeyboardNavigation]);\n return (\n <>\n {showSearch && (\n <div key=\"search\" className={ cx(css.searchWrapper, 'uui-picker_input-body-search') }>\n <FlexCell grow={ 1 }>\n { autoFocusSearch ? <MoveFocusInside>{ renderSearchInput() }</MoveFocusInside> : renderSearchInput() }\n </FlexCell>\n </div>\n )}\n <FlexRow\n key=\"body\"\n cx={ cx('uui-picker_input-body') }\n rawProps={ { style: { maxHeight: props.maxHeight, maxWidth: props.maxWidth }, tabIndex: -1 } }\n >\n { props.rows.length === 0 && props.value.topIndex === 0\n // We need to also ensure that topIndex === 0, because we can have state were there is no rows but topIndex > 0, in case when we scrolled lover than we have rows\n // we fix this state on next render and shouldn't show empty state.\n ? renderEmpty() : (\n <VirtualList\n value={ props.value }\n onValueChange={ props.onValueChange }\n rows={ renderedDataRows }\n role=\"listbox\"\n rawProps={ {\n 'aria-multiselectable': props.selectionMode === 'multi' ? true : null,\n 'aria-orientation': 'vertical',\n tabIndex: 0,\n onKeyDown: props.onKeyDown,\n onFocus: handleVirtualListFocus,\n onBlur: handleVirtualListBlur,\n ...props.rawProps,\n } }\n rowsCount={ props.rowsCount }\n isLoading={ props.isReloading }\n renderBlocker={ settings.pickerInput.renderBlocker }\n overflowTopEffect={ showSearch ? 'line' : 'none' }\n overflowBottomEffect=\"line\"\n />\n )}\n </FlexRow>\n </>\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport cx from 'classnames';\nimport { isMobile, Overwrite, PickerFooterProps } from '@epam/uui-core';\nimport { i18n } from '../../i18n';\nimport { Switch } from '../inputs';\nimport { FlexCell, FlexRow, FlexSpacer } from '../layout';\nimport { LinkButton } from '../buttons';\nimport type { SizeMod } from '../types';\nimport { settings } from '../../settings';\n\nimport './DataPickerFooter.module.scss';\n\nexport interface DataPickerFooterModsOverride {\n}\n\ninterface DataPickerFooterMods extends SizeMod {\n}\n\nexport type DataPickerFooterProps<TItem, TId> = Overwrite<DataPickerFooterMods, DataPickerFooterModsOverride> & PickerFooterProps<TItem, TId> & {\n selectionMode: 'single' | 'multi';\n};\n\nfunction DataPickerFooterImpl<TItem, TId>(props: PropsWithChildren<DataPickerFooterProps<TItem, TId>>) {\n const {\n search,\n clearSelection,\n view,\n showSelected,\n selectionMode,\n isSearchTooShort,\n } = props;\n\n const size = isMobile() ? settings.pickerInput.sizes.body.mobileFooterLinkButton : props.size;\n const hasSelection = view.getSelectedRowsCount() > 0;\n const rowsCount = view.getListProps().rowsCount;\n\n const isSinglePicker = selectionMode === 'single';\n\n const clearAllText = i18n.pickerInput.clearSelectionButton;\n const clearSingleText = i18n.pickerInput.clearSelectionButtonSingle;\n const selectAllText = i18n.pickerInput.selectAllButton;\n\n const isSearching = search?.length;\n const hideFooter = (rowsCount === 0 && !hasSelection) || isSearching || (isSinglePicker && props.disableClear);\n\n const showClear = !props.disableClear && (isSinglePicker ? true : (!view.selectAll || hasSelection));\n\n return !hideFooter && (\n <FlexRow cx={ cx('uui-picker_input-footer', props.cx) }>\n {!isSinglePicker && !isSearchTooShort && ( // Show this switch only for multi mode and when some rows rendered\n <Switch\n size={ settings.pickerInput.sizes.body.footerSwitchMap[props.size] }\n value={ showSelected.value }\n isDisabled={ !hasSelection }\n onValueChange={ showSelected.onValueChange }\n label={ i18n.pickerInput.showOnlySelectedLabel }\n />\n )}\n\n <FlexSpacer />\n\n <FlexCell width=\"auto\" alignSelf=\"center\">\n {view.selectAll && !hasSelection && (\n <LinkButton\n key=\"SelectAll/ClearAll\" // We use the same key for these buttons, because we need to leave focus on it after click, so we need to react doesn't remount it.\n size={ size }\n caption={ selectAllText }\n onClick={ () => view.selectAll.onValueChange(true) }\n />\n )}\n { showClear && (\n <LinkButton\n key=\"SelectAll/ClearAll\" // We use the same key for these buttons, because we need to leave focus on it after click, so we need to react doesn't remount it. Basically it's the same button, but with different caption.\n size={ size }\n caption={ isSinglePicker ? clearSingleText : clearAllText }\n onClick={ clearSelection }\n isDisabled={ !hasSelection }\n />\n )}\n </FlexCell>\n </FlexRow>\n );\n}\n\nexport const DataPickerFooter = React.memo(DataPickerFooterImpl);\n","import React from 'react';\nimport { IconButton } from '../buttons';\nimport { FlexRow } from '../layout';\nimport { settings } from '../../settings';\n\nimport css from './DataPickerHeader.module.scss';\n\ninterface DataPickerHeaderProps {\n title?: string;\n close?: () => void;\n}\n\nconst DataPickerMobileHeaderImpl: React.FC<DataPickerHeaderProps> = (props) => {\n const title = props.title && typeof props.title === 'string' ? props.title.charAt(0).toUpperCase() + props.title.slice(1) : '';\n\n return (\n <FlexRow alignItems=\"center\" borderBottom cx={ [css.header, 'uui-picker_input-body-header'] }>\n <div className={ css.title }>\n {title}\n </div>\n <IconButton\n icon={ settings.pickerInput.icons.body.pickerBodyMobileHeaderCloseIcon }\n onClick={ () => props.close?.() }\n cx={ css.close }\n />\n </FlexRow>\n );\n};\n\nexport const DataPickerMobileHeader = React.memo(DataPickerMobileHeaderImpl);\n","import React, { ReactNode } from 'react';\nimport type { IDropdownBodyProps, IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { isMobile } from '@epam/uui-core';\nimport { LinkButton } from '../buttons';\nimport { DataPickerMobileHeader } from './DataPickerMobileHeader';\nimport { DropdownContainer, DropdownContainerProps } from '../overlays';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './PickerBodyMobileView.module.scss';\n\nexport interface IMobileDropdownWrapperProps extends IHasCX, IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IDropdownBodyProps, Pick<DropdownContainerProps, 'shards'> {\n /**\n * Children of the dropdown container.\n */\n children: ReactNode;\n /**\n * Title of the dropdown container.\n */\n title?: string;\n /**\n * Callback for keyboard events.\n */\n onKeyDown?(e: React.KeyboardEvent<HTMLElement>): void;\n /**\n * Whether to lock focus on the dropdown container.\n */\n focusLock?: boolean;\n /**\n * Width of the dropdown container.\n */\n width?: number | 'auto';\n /**\n * Maximum width of the dropdown container.\n * @default 'auto'\n */\n maxWidth?: number | 'auto';\n /**\n * Maximum height of the dropdown container.\n * @default 'auto'\n */\n maxHeight?: number;\n}\n\nexport const PickerBodyMobileView: React.FC<IMobileDropdownWrapperProps> = (props) => {\n const isMobileView = isMobile();\n const maxWidth = isMobileView ? 'auto' : props.maxWidth;\n const maxHeight = isMobileView ? 'auto' : props.maxHeight;\n\n return (\n <DropdownContainer\n { ...props }\n maxWidth={ maxWidth }\n maxHeight={ maxHeight }\n cx={ [css.container, props.cx] }\n autoFocus={ false }\n >\n {isMobileView && <DataPickerMobileHeader title={ props.title } close={ props.onClose } />}\n\n {props.children}\n\n {isMobileView && (\n <LinkButton\n caption={ i18n.pickerInput.doneButton }\n onClick={ () => props.onClose?.() }\n cx={ css.done }\n size={ settings.pickerInput.sizes.body.mobileFooterLinkButton }\n />\n )}\n </DropdownContainer>\n );\n};\n","import React, { useMemo } from 'react';\nimport { IHasCaption, PickerBaseOptions, PickerRenderRowParams } from '@epam/uui-core';\nimport { IconContainer, PickerModalArrayProps, PickerModalOptions, PickerModalScalarProps, handleDataSourceKeyboard, usePickerModal } from '@epam/uui-components';\nimport { DataPickerRow } from './DataPickerRow';\nimport { Text } from '../typography';\nimport { FlexRow, FlexCell, FlexSpacer } from '../layout';\nimport {\n ModalBlocker, ModalWindow, ModalHeader, ModalFooter,\n} from '../overlays';\nimport { LinkButton, Button } from '../buttons';\nimport { SearchInput, Switch } from '../inputs';\nimport { DataPickerBody } from './DataPickerBody';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './PickerModal.module.scss';\nimport { MoveFocusInside } from 'react-focus-lock';\n\nexport type PickerModalProps<TItem, TId> = PickerBaseOptions<TItem, TId> &\nIHasCaption &\n(PickerModalScalarProps<TId, TItem> | PickerModalArrayProps<TId, TItem>) &\nPickerModalOptions<TItem, TId>;\n\nexport function PickerModal<TItem, TId>(props: PickerModalProps<TItem, TId>) {\n const {\n view,\n selection,\n dataSourceStateLens,\n dataSourceState,\n getName,\n clearSelection,\n getRows,\n getListProps,\n getFooterProps,\n isSingleSelect,\n handleDataSourceValueChange,\n } = usePickerModal<TItem, TId>(props);\n const isSearching = dataSourceState.search && dataSourceState.search.length > 0;\n\n const renderRow = (rowProps: PickerRenderRowParams<TItem, TId>) => {\n return props.renderRow ? (\n props.renderRow(rowProps, dataSourceState)\n ) : (\n <DataPickerRow\n { ...rowProps }\n key={ rowProps.rowKey }\n size={ settings.pickerInput.sizes.body.row }\n flattenSearchResults={ view.getConfig().flattenSearchResults }\n dataSourceState={ dataSourceState }\n getName={ getName }\n />\n );\n };\n\n const renderFooter = () => {\n const hasSelection = view.getSelectedRowsCount() > 0;\n const rowsCount = view.getListProps().rowsCount;\n const isEmptyRowsAndHasNoSelection = (rowsCount === 0 || !hasSelection);\n const showClear = !props.disableClear && (isSingleSelect() ? true : (!view.selectAll || hasSelection));\n const isClearDisabled = isSearching || isEmptyRowsAndHasNoSelection;\n\n return (\n <>\n {view.selectAll && !hasSelection && (\n <LinkButton\n caption={ i18n.pickerModal.selectAllButton }\n onClick={ () => view.selectAll.onValueChange(true) }\n />\n )}\n {showClear && (\n <LinkButton\n caption={ isSingleSelect() ? i18n.pickerModal.clearButton : i18n.pickerModal.clearAllButton }\n onClick={ () => clearSelection() }\n isDisabled={ isClearDisabled }\n />\n )}\n <FlexSpacer />\n <Button fill=\"outline\" color=\"secondary\" caption={ i18n.pickerModal.cancelButton } onClick={ () => props.abort() } />\n <Button color=\"primary\" caption={ i18n.pickerModal.selectButton } onClick={ () => props.success(selection as any) } />\n </>\n );\n };\n\n const renderNotFound = () => {\n return props.renderNotFound ? (\n props.renderNotFound({ search: dataSourceState.search, onClose: () => props.success(null) })\n ) : (\n <div className={ css.noFoundModalContainer }>\n <IconContainer cx={ css.noFoundModalContainerIcon } icon={ settings.pickerInput.icons.body.modalNotFoundSearchIcon } />\n <Text cx={ css.noFoundModalContainerText } fontWeight=\"600\" fontSize=\"16\" lineHeight=\"24\" color=\"primary\">\n {i18n.dataPickerBody.noRecordsMessage}\n </Text>\n <Text cx={ css.noFoundModalContainerText } fontSize=\"12\" lineHeight=\"18\" color=\"primary\">\n {i18n.dataPickerBody.noRecordsSubTitle}\n </Text>\n </div>\n );\n };\n\n const dataRows = getRows();\n\n const {\n focusedIndex,\n topIndex,\n } = dataSourceState;\n\n const focusedRowId = useMemo((): string => {\n const focusedRow = dataRows.at(focusedIndex - topIndex);\n\n if (!focusedRow) {\n return '';\n }\n\n return focusedRow.rowKey;\n }, [focusedIndex, topIndex]);\n\n const onKeyDownHandler = (e: React.KeyboardEvent) => {\n handleDataSourceKeyboard(\n {\n value: dataSourceState,\n onValueChange: handleDataSourceValueChange,\n listView: view,\n rows: dataRows,\n searchPosition: 'body',\n },\n e,\n );\n };\n\n return (\n <ModalBlocker { ...props }>\n <ModalWindow width={ 600 } height={ 700 } cx={ css.body }>\n <ModalHeader title={ props.caption || i18n.pickerModal.headerTitle } onClose={ () => props.abort() } />\n <FlexCell cx={ css.subHeaderWrapper }>\n <FlexRow vPadding=\"24\">\n <MoveFocusInside className={ css.search }>\n <SearchInput\n { ...dataSourceStateLens.prop('search').toProps() }\n onKeyDown={ onKeyDownHandler }\n placeholder={ i18n.pickerModal.searchPlaceholder }\n rawProps={ {\n dir: 'auto',\n 'aria-activedescendant': focusedRowId,\n } }\n />\n </MoveFocusInside>\n </FlexRow>\n {!isSingleSelect() && (\n <Switch\n cx={ css.switch }\n size={ settings.pickerInput.sizes.body.footerSwitchMap[settings.pickerInput.sizes.body.row] }\n { ...getFooterProps().showSelected }\n isDisabled={ isSearching || view.getSelectedRowsCount() < 1 }\n label=\"Show only selected\"\n />\n )}\n {props.renderFilter && <FlexCell grow={ 2 }>{props.renderFilter(dataSourceStateLens.prop('filter').toProps())}</FlexCell>}\n </FlexCell>\n <DataPickerBody\n { ...getListProps() }\n value={ dataSourceState }\n onValueChange={ handleDataSourceValueChange }\n showSearch={ false }\n getName={ getName }\n rows={ dataRows }\n renderRow={ renderRow }\n renderEmpty={ renderNotFound }\n size={ settings.pickerInput.sizes.body.row }\n onKeyDown={ onKeyDownHandler }\n />\n <ModalFooter>\n {props.renderFooter ? props.renderFooter(getFooterProps()) : renderFooter()}\n </ModalFooter>\n </ModalWindow>\n </ModalBlocker>\n );\n}\n","import * as React from 'react';\nimport { PickerTogglerRenderItemParams } from '@epam/uui-components';\nimport { Overwrite } from '@epam/uui-core';\nimport type { ControlSize } from '../types';\nimport { Tag, TagProps } from '../widgets/Tag';\nimport { Tooltip } from '../overlays';\nimport { TextPlaceholder } from '../typography';\nimport { settings } from '../../settings';\n\nimport css from './PickerTogglerTag.module.scss';\n\nexport interface PickerTogglerTagModsOverride {}\n\ninterface PickerTogglerTagMods {\n /** Defines component size */\n size?: ControlSize;\n}\n\nexport interface PickerTogglerTagProps<TItem, TId> extends Overwrite<PickerTogglerTagMods, PickerTogglerTagModsOverride>, PickerTogglerRenderItemParams<TItem, TId>, Omit<TagProps, 'size'> {\n getName: (item: TItem) => string;\n}\n\nexport const PickerTogglerTag = React.forwardRef((props: PickerTogglerTagProps<any, any>, ref: React.Ref<HTMLElement>) => {\n const tagProps = {\n ...props,\n tabIndex: -1,\n size: settings.pickerInput.sizes.toggler.tagMap[props.size],\n caption: props.rowProps?.isLoading ? <TextPlaceholder /> : props.caption,\n };\n\n if (props.isCollapsed) {\n const collapsedRows = props.collapsedRows.map((row) => props.getName(row.value)).join(', ');\n return (\n <Tooltip\n key=\"selected\"\n content={ collapsedRows }\n closeDelay={ 150 }\n closeOnMouseLeave=\"boundary\"\n cx={ css.tooltip }\n >\n <Tag ref={ ref } rawProps={ { role: 'option' } } { ...tagProps } cx={ css.noShrink } />\n </Tooltip>\n );\n } else {\n return <Tag ref={ ref } rawProps={ { role: 'option' } } { ...tagProps } />;\n }\n});\n","import * as React from 'react';\nimport { Overwrite } from '@epam/uui-core';\nimport { PickerToggler as UuiPickerToggler, PickerTogglerProps as UuiPickerTogglerProps } from '@epam/uui-components';\nimport { PickerTogglerTag, PickerTogglerTagProps } from './PickerTogglerTag';\nimport type { IHasEditMode } from '../types';\nimport { EditMode } from '../types';\nimport { settings } from '../../settings';\n\nimport css from './PickerToggler.module.scss';\n\nimport type { JSX } from 'react';\n\nconst defaultMode = EditMode.FORM;\n\nexport interface PickerTogglerModsOverride {}\n\nexport interface PickerTogglerMods extends IHasEditMode {\n /**\n * Defines component size\n * @default 36\n */\n size?: '24' | '30' | '36' | '42' | '48';\n}\n\nexport type PickerTogglerProps<TItem, TId> = UuiPickerTogglerProps<TItem, TId> & Overwrite<PickerTogglerMods, PickerTogglerModsOverride>;\n\nfunction applyPickerTogglerMods(mods: PickerTogglerMods) {\n return [\n css.root,\n 'uui-picker_toggler',\n `uui-size-${mods.size || settings.pickerInput.sizes.toggler.default}`,\n 'uui-control-mode-' + (mods.mode || defaultMode),\n ];\n}\n\nfunction PickerTogglerComponent<TItem, TId>(\n props: PickerTogglerProps<TItem, TId>,\n ref: React.ForwardedRef<HTMLElement>,\n): JSX.Element {\n const renderItem = (itemProps: PickerTogglerTagProps<TItem, TId>) => {\n const itemPropsWithSize = { ...itemProps, size: props.size || settings.pickerInput.sizes.toggler.tag };\n if (!!props.renderItem) {\n return props.renderItem(itemPropsWithSize);\n }\n\n return (\n <PickerTogglerTag\n { ...itemPropsWithSize }\n key={ itemProps.isCollapsed ? 'collapsed_tag' : itemProps.rowProps?.id as string }\n getName={ props.getName }\n />\n );\n };\n\n return (\n <UuiPickerToggler\n { ...props }\n ref={ ref }\n cx={ [applyPickerTogglerMods(props), props.cx] }\n renderItem={ renderItem }\n getName={ props.getName }\n cancelIcon={ settings.pickerInput.icons.toggler.clearIcon }\n dropdownIcon={ settings.pickerInput.icons.toggler.dropdownIcon }\n />\n );\n}\n\nexport const PickerToggler = React.forwardRef(PickerTogglerComponent) as\n <TItem, TId>(props: PickerTogglerProps<TItem, TId>) => ReturnType<typeof PickerTogglerComponent>;\n","import React, { useContext, useImperativeHandle, useMemo, useRef, type JSX } from 'react';\nimport { Middleware, offset } from '@floating-ui/react';\nimport {\n DropdownBodyProps, IEditableDebouncer, PickerInputElement, isMobile, Overwrite,\n PickerInputBaseProps, UuiContext, mobilePositioning, type DropdownProps,\n} from '@epam/uui-core';\nimport { PickerTogglerRenderItemParams, PickerTogglerProps, usePickerInput } from '@epam/uui-components';\nimport { Dropdown } from '../overlays/Dropdown';\nimport { PickerModal } from './PickerModal';\nimport { PickerToggler, PickerTogglerMods } from './PickerToggler';\nimport { PickerBodyMobileView } from './PickerBodyMobileView';\nimport { DataPickerBody } from './DataPickerBody';\nimport { DataPickerFooter } from './DataPickerFooter';\nimport { EditMode, IHasEditMode, SizeMod } from '../types';\nimport { settings } from '../../settings';\n\nexport interface PickerInputModsOverride {}\n\ninterface PickerInputMods extends SizeMod {}\n\nexport type PickerInputProps<TItem, TId> = Overwrite<PickerInputMods, PickerInputModsOverride> & IHasEditMode & PickerInputBaseProps<TItem, TId> & Pick<DropdownProps, 'closeBodyOnTogglerHidden'> & {\n /**\n * Render callback for picker toggler selection tag\n * If omitted, default `PickerTogglerTag` component will be rendered\n */\n renderTag?: (props: PickerTogglerRenderItemParams<TItem, TId>) => JSX.Element;\n\n /** Replaces default 'toggler' - an input to which Picker attaches dropdown */\n renderToggler?: (props: PickerTogglerProps<TItem, TId>) => React.ReactNode;\n};\n\nfunction PickerInputComponent<TItem, TId>(props: PickerInputProps<TItem, TId>, ref: React.ForwardedRef<PickerInputElement>) {\n const context = useContext(UuiContext);\n\n const middleware: Middleware[] = useMemo(() => [offset(6), mobilePositioning], []);\n\n const toggleModalOpening = () => {\n const { renderFooter, rawProps, ...restProps } = props;\n context.uuiModals\n .show((modalProps) => (\n <PickerModal<TItem, TId>\n { ...restProps }\n { ...modalProps }\n rawProps={ rawProps?.body }\n caption={ getPlaceholder() }\n initialValue={ props.value as any }\n selectionMode={ props.selectionMode }\n valueType={ props.valueType }\n />\n ))\n .then((newSelection) => {\n handleSelectionValueChange(newSelection);\n })\n .catch(() => {});\n };\n\n const {\n view,\n getName,\n getPlaceholder,\n handleSelectionValueChange,\n getTogglerProps,\n getRows,\n handleTogglerSearchChange,\n toggleBodyOpening,\n dataSourceState,\n handleDataSourceValueChange,\n getFooterProps,\n getListProps,\n shouldShowBody,\n getSearchPosition,\n closePickerBody,\n openPickerBody,\n handlePickerInputKeyboard,\n } = usePickerInput<TItem, TId, PickerInputProps<TItem, TId>>({ ...props, toggleModalOpening });\n\n const togglerRef = useRef(null);\n\n useImperativeHandle(ref, () => {\n if (togglerRef.current) {\n togglerRef.current.closePickerBody = closePickerBody;\n togglerRef.current.openPickerBody = openPickerBody;\n }\n\n return togglerRef.current;\n }, [closePickerBody, openPickerBody]);\n\n const getTogglerMods = (): PickerTogglerMods => {\n return {\n size: props.size,\n mode: props.mode ? props.mode : EditMode.FORM,\n };\n };\n\n const rows = getRows();\n\n const renderTarget = (targetProps: PickerTogglerProps<TItem, TId>) => {\n const renderTargetFn = props.renderToggler || ((props) => <PickerToggler { ...props } />);\n\n return (\n <IEditableDebouncer\n value={ targetProps.value }\n onValueChange={ handleTogglerSearchChange }\n debounceDelay={ props.searchDebounceDelay }\n render={ (editableProps) => renderTargetFn({\n ...getTogglerMods(),\n ...targetProps,\n ...editableProps,\n onKeyDown: (e) => handlePickerInputKeyboard(rows, e, editableProps.value),\n }) }\n />\n );\n };\n\n const renderFooter = () => {\n const footerProps = getFooterProps();\n\n return props.renderFooter\n ? props.renderFooter(footerProps)\n : <DataPickerFooter { ...footerProps } size={ props.size || settings.pickerInput.sizes.body.row } />;\n };\n\n const renderBody = (dropdownProps: DropdownBodyProps) => {\n const bodyHeight = isMobile() ? document.documentElement.clientHeight : props.dropdownHeight || settings.pickerInput.sizes.body.maxHeight;\n const minBodyWidth = props.minBodyWidth || settings.pickerInput.sizes.body.minWidth;\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLElement>) => handlePickerInputKeyboard(rows, e);\n\n return (\n <PickerBodyMobileView\n title={ props.entityName }\n onClose={ () => toggleBodyOpening(false) }\n cx={ [props.bodyCx, 'uui-picker_input-body-wrapper'] }\n width={ dropdownProps.togglerWidth > minBodyWidth ? dropdownProps.togglerWidth : minBodyWidth }\n focusLock={ true }\n shards={ getSearchPosition() === 'input' ? [togglerRef] : undefined }\n >\n <DataPickerBody\n { ...dropdownProps }\n { ...getListProps() }\n showSearch={ getSearchPosition() === 'body' }\n getName={ getName }\n value={ dataSourceState }\n onValueChange={ handleDataSourceValueChange }\n rows={ rows }\n maxHeight={ bodyHeight }\n searchSize={ props.size }\n selectionMode={ props.selectionMode }\n renderNotFound={ props.renderNotFound }\n renderEmpty={ props.renderEmpty }\n renderRow={ props.renderRow }\n onKeyDown={ onKeyDown }\n minCharsToSearch={ props.minCharsToSearch }\n fixedBodyPosition={ props.fixedBodyPosition }\n searchDebounceDelay={ props.searchDebounceDelay }\n rawProps={ props.rawProps?.body }\n highlightSearchMatches={ props.highlightSearchMatches }\n flattenSearchResults={ view.getConfig().flattenSearchResults }\n />\n { renderFooter() }\n </PickerBodyMobileView>\n );\n };\n\n const renderItem = props.renderTag ? props.renderTag : null;\n return (\n <Dropdown\n renderTarget={ (dropdownProps) => {\n const targetProps = getTogglerProps();\n return renderTarget({ ...dropdownProps, ...targetProps, renderItem });\n } }\n renderBody={ (bodyProps) => renderBody(bodyProps) }\n value={ shouldShowBody() }\n onValueChange={ !props.isDisabled && toggleBodyOpening }\n placement={ props.dropdownPlacement }\n middleware={ middleware }\n closeBodyOnTogglerHidden={ isMobile() ? false : props.closeBodyOnTogglerHidden }\n portalTarget={ props.portalTarget }\n ref={ togglerRef }\n />\n );\n}\n\nexport const PickerInput = React.forwardRef(PickerInputComponent) as\n <TItem, TId>(props: PickerInputProps<TItem, TId> & { ref?: React.ForwardedRef<PickerInputElement> }) => ReturnType<typeof PickerInputComponent>;\n","import React from 'react';\nimport { DataRowProps } from '@epam/uui-core';\nimport { Checkbox, RadioInput } from '../inputs';\nimport { TextPlaceholder } from '../typography';\n\nimport css from './PickerListItem.module.scss';\n\nexport interface PickerListItemProps<TItem, TId> extends DataRowProps<TItem, TId> {\n /** A pure function that gets entity name from entity object.\n Default: (item) => item.name.\n */\n getName(item: TItem): string;\n}\n\nexport function PickerListRow<TItem, TId>(props: PickerListItemProps<TItem, TId>) {\n let label: any;\n\n if (props.isLoading) {\n label = <TextPlaceholder wordsCount={ 2 } />;\n } else {\n label = props.getName(props.value);\n }\n\n let component: any;\n\n if (props.checkbox) {\n component = (\n <Checkbox\n { ...props.checkbox }\n isDisabled={ props.isLoading || props.checkbox.isDisabled || props.isDisabled }\n label={ label }\n value={ props.isChecked }\n onValueChange={ () => props.onCheck(props) }\n />\n );\n } else {\n component = (\n <RadioInput\n label={ label }\n value={ props.isSelected }\n isDisabled={ props.isLoading || !props.isSelectable || props.isDisabled }\n onValueChange={ () => props.onSelect(props) }\n />\n );\n }\n\n return (\n <div\n role=\"option\"\n aria-selected={ props.isSelectable ? props.isSelected : undefined }\n aria-busy={ props.isLoading }\n aria-posinset={ props.index + 1 }\n { ...(props.checkbox?.isVisible && { 'aria-checked': props.isChecked }) }\n className={ css.row }\n >\n {component}\n </div>\n );\n}\n","import React from 'react';\nimport cx from 'classnames';\nimport { DataRowProps, IClickable, IDisableable, IHasCaption, IHasPlaceholder, Overwrite } from '@epam/uui-core';\nimport { PickerListBaseProps, PickerModalOptions, usePickerList } from '@epam/uui-components';\nimport { SizeMod } from '../types';\nimport { Text } from '../typography';\nimport { PickerListRow } from './PickerListRow';\nimport { PickerModal } from './PickerModal';\nimport { LinkButton } from '../buttons';\n\nimport css from './PickerList.module.scss';\n\nexport interface PickerListModsOverride {}\n\ninterface PickerListMods extends SizeMod {}\n\nexport type PickerListProps<TItem, TId> = Overwrite<PickerListMods, PickerListModsOverride> &\nIHasPlaceholder & PickerModalOptions<TItem, TId> & PickerListBaseProps<TItem, TId> & {\n renderModalToggler?(props: IClickable & IHasCaption & IDisableable, selection: DataRowProps<TItem, TId>[]): React.ReactNode;\n noOptionsMessage?: React.ReactNode;\n};\n\nexport function PickerList<TItem, TId>(props: PickerListProps<TItem, TId>) {\n const {\n context,\n view,\n onlySelectedView,\n getName,\n getEntityName,\n appendLastSelected,\n getSelectedIdsArray,\n buildRowsList,\n getMaxDefaultItems,\n getModalTogglerCaption,\n } = usePickerList<TItem, TId, PickerListProps<TItem, TId>>(props);\n\n const defaultListRenderRow = (row: DataRowProps<TItem, TId>) => {\n return <PickerListRow getName={ (item) => getName(item) } { ...row } key={ row.rowKey } />;\n };\n\n const handleShowPicker = () => {\n context.uuiModals\n .show((modalProps) => (\n <PickerModal<TItem, TId>\n { ...modalProps }\n { ...props }\n caption={ props.placeholder || `Please select ${getEntityName() ? getEntityName() : ''}` }\n initialValue={ props.value as any }\n selectionMode={ props.selectionMode }\n valueType={ props.valueType }\n />\n ))\n .then((value: any) => {\n appendLastSelected([...getSelectedIdsArray(value)]);\n props.onValueChange(value);\n })\n .catch(() => {});\n };\n\n const defaultRenderToggler = (props: IClickable) => <LinkButton caption=\"Show all\" { ...props } />;\n\n const viewProps = view.getListProps();\n const selectedRows = onlySelectedView.getVisibleRows();\n const rows = buildRowsList();\n const showPicker = viewProps.totalCount == null || viewProps.totalCount > getMaxDefaultItems();\n const renderToggler = props.renderModalToggler || defaultRenderToggler;\n const renderRow = props.renderListRow || defaultListRenderRow;\n\n return (\n <div className={ cx('uui-picker-list', css.root) }>\n {!rows.length\n && (props.noOptionsMessage || (\n <Text color=\"secondary\" size={ props.size }>\n No options available\n </Text>\n ))}\n {rows.map((row) => renderRow({ ...row, isDisabled: props.isDisabled }))}\n {showPicker\n && renderToggler(\n {\n onClick: handleShowPicker,\n caption: getModalTogglerCaption(viewProps.totalCount, view.getSelectedRowsCount()),\n isDisabled: props.isDisabled,\n },\n selectedRows,\n )}\n </div>\n );\n}\n","import * as React from 'react';\nimport {\n DataTableCellProps as UuiCoreDataTableCellProps,\n Overwrite,\n uuiMod,\n} from '@epam/uui-core';\nimport { DataTableCell as UuiDataTableCell } from '@epam/uui-components';\nimport { DataRowAddons, DataRowAddonsProps } from '../widgets';\nimport type { DataTableCellMods } from './types';\nimport { Text } from '../typography';\nimport { Tooltip } from '../overlays';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableCell.module.scss';\n\nexport interface DataTableCellModsOverride {}\n\nexport interface DataTableCellProps<TItem, TId, TCellValue> extends\n UuiCoreDataTableCellProps<TItem, TId, TCellValue>, Pick<DataRowAddonsProps<TItem, TId>, 'renderDragHandle'>, Overwrite<DataTableCellMods, DataTableCellModsOverride> {\n}\n\nexport function DataTableCell<TItem, TId, TCellValue>(initialProps : DataTableCellProps<TItem, TId, TCellValue>) {\n const props = { ...initialProps };\n\n if (props.isFirstColumn) {\n props.addons = <DataRowAddons size={ props.size } { ...props } />;\n }\n\n props.renderPlaceholder = props.renderPlaceholder\n || (() => settings.dataTable.renderPlaceholder({ rowSize: props.size }));\n\n props.renderUnknown = props.renderUnknown\n || (() => (\n <Text key=\"t\" size={ props.size }>\n Unknown\n </Text>\n ));\n\n props.renderTooltip = (tooltipProps) => <Tooltip color=\"critical\" { ...tooltipProps } />;\n\n const isEditable = !!props.onValueChange;\n\n const getLeftPadding = () => {\n const { rowProps: { isLoading }, columnsGap, isFirstColumn } = props;\n\n if (isFirstColumn && isEditable && !isLoading) return 'var(--uui-dt-cell-padding)';\n if (isEditable && !isLoading) return '0px';\n if (columnsGap) return isFirstColumn ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-cell-padding${isFirstColumn ? '-edge' : ''})`;\n };\n\n const getRightPadding = () => {\n const { rowProps: { isLoading }, columnsGap, isLastColumn } = props;\n\n if (isEditable && !isLoading) return '0px';\n if (columnsGap) return isLastColumn ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-cell-padding${isLastColumn ? '-edge' : ''})`;\n };\n\n props.cx = [\n 'data-table-cell',\n css.root,\n props.cx,\n 'uui-size-' + (props.size || settings.dataTable.sizes.body.row),\n props.isFirstColumn && 'uui-dt-first-column',\n props.isLastColumn && 'uui-dt-last-column',\n css[`align-widgets-${props.alignActions || 'top'}`],\n (props.border || isEditable) && 'uui-dt-vertical-cell-border',\n props.isDisabled && uuiMod.disabled,\n props.isReadonly && uuiMod.readonly,\n ];\n\n props.style = {\n '--uui-dt-cell-padding-start': getLeftPadding(),\n '--uui-dt-cell-padding-end': getRightPadding(),\n } as React.CSSProperties;\n\n return <UuiDataTableCell { ...props } />;\n}\n","import * as React from 'react';\nimport { withMods, DataTableCellProps, DataTableRowProps as CoreDataTableRowProps, Overwrite } from '@epam/uui-core';\nimport { DataTableRow as uuiDataTableRow } from '@epam/uui-components';\nimport { DataTableCell } from './DataTableCell';\nimport { DropMarker } from '../dnd';\nimport type { DataTableRowMods } from './types';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableRow.module.scss';\n\n// Here we define a single instance of the renderCell function to make DataTableRow#shouldComponentUpdate work.\n// As we need our mods to style the cell properly, we extract them from DataTableCellProps.rowProps, which is a hack, but it's reliable enough.\nexport const renderCell = (props: DataTableCellProps) => {\n const mods = props.rowProps as DataTableRowMods & DataTableRowProps;\n return <DataTableCell { ...props } key={ props.key } size={ mods.size } columnsGap={ mods.columnsGap } />;\n};\n\nexport const renderDropMarkers: DataTableRowProps['renderDropMarkers'] = ({ ref, ...props }) => <DropMarker { ...props } enableBlocker={ true } />;\n\nexport const propsMods = { renderCell, renderDropMarkers };\n\nexport interface DataTableRowModsOverride {}\n\nexport type DataTableRowProps = CoreDataTableRowProps & Overwrite<DataTableRowMods, DataTableRowModsOverride>;\n\nexport const DataTableRow = withMods<CoreDataTableRowProps, DataTableRowProps>(\n uuiDataTableRow,\n ({ borderBottom = true, size }) => {\n return [\n css.root, 'uui-dt-vars', borderBottom && 'uui-dt-row-border', `uui-size-${size || settings.dataTable.sizes.body.row}`,\n ];\n },\n () => propsMods,\n);\n","import React, { useCallback } from 'react';\nimport { cx, SortDirection } from '@epam/uui-core';\nimport { FlexCell } from '../../layout';\nimport { DropdownMenuButton } from '../../overlays';\nimport { i18n } from '../../../i18n';\nimport { settings } from '../../../settings';\n\nimport css from './SortingPanel.module.scss';\n\nexport interface SortingPanelProps {\n sortDirection: SortDirection;\n onSort(dir: SortDirection): void;\n}\n\nconst SortingPanelImpl: React.FC<SortingPanelProps> = ({ sortDirection, onSort }) => {\n const sortAsc = useCallback(() => onSort(sortDirection === 'asc' ? undefined : 'asc'), [onSort]);\n const sortDesc = useCallback(() => onSort(sortDirection === 'desc' ? undefined : 'desc'), [onSort]);\n\n return (\n <FlexCell cx={ cx(css.sortingPanelContainer, 'uui-dropdownMenu-body') }>\n <DropdownMenuButton\n isActive={ sortDirection === 'asc' }\n caption={ i18n.pickerFilterHeader.sortAscending }\n icon={ settings.dataTable.icons.header.ascSortIcon }\n onClick={ sortAsc }\n />\n <DropdownMenuButton\n isActive={ sortDirection === 'desc' }\n caption={ i18n.pickerFilterHeader.sortDescending }\n icon={ settings.dataTable.icons.header.descSortIcon }\n onClick={ sortDesc }\n />\n </FlexCell>\n );\n};\n\nexport const SortingPanel = React.memo(SortingPanelImpl);\n","import React, { useCallback, useMemo } from 'react';\nimport {\n IDropdownToggler,\n DropdownBodyProps,\n mobilePositioning,\n} from '@epam/uui-core';\nimport { Middleware, offset } from '@floating-ui/react';\nimport { Dropdown } from '@epam/uui-components';\nimport { PickerBodyMobileView } from '../../pickers';\nimport { SortingPanel, SortingPanelProps } from './SortingPanel';\n\ntype ColumnHeaderDropdownProps = SortingPanelProps & {\n isOpen: boolean;\n isSortable: boolean;\n renderTarget: (props: IDropdownToggler) => React.ReactNode;\n renderFilter?: (dropdownProps: DropdownBodyProps) => React.ReactNode;\n onOpenChange(nV: boolean): void;\n title: string;\n};\n\nconst ColumnHeaderDropdownImpl: React.FC<ColumnHeaderDropdownProps> = (props) => {\n const middleware: Middleware[] = useMemo(\n () => [offset(1), mobilePositioning],\n [],\n );\n\n const closeDropdown = useCallback(() => props.onOpenChange(false), [props.onOpenChange]);\n\n return (\n <Dropdown\n renderTarget={ props.renderTarget }\n renderBody={ (dropdownProps) => (\n <PickerBodyMobileView width={ 280 } maxWidth=\"auto\" title={ props.title } onClose={ closeDropdown }>\n {props.isSortable && <SortingPanel sortDirection={ props.sortDirection } onSort={ props.onSort } />}\n {props.renderFilter(dropdownProps)}\n </PickerBodyMobileView>\n ) }\n middleware={ middleware }\n value={ props.isOpen }\n onValueChange={ props.onOpenChange }\n />\n );\n};\n\nexport const ColumnHeaderDropdown = React.memo(ColumnHeaderDropdownImpl);\n","import * as React from 'react';\nimport {\n cx, DataColumnProps, DataTableHeaderCellProps as UuiCoreDataTableHeaderCellProps, IDropdownTogglerProps, Overwrite, uuiDataTableHeaderCell, uuiMarkers,\n} from '@epam/uui-core';\nimport {\n ControlIcon,\n DataTableCellContainer,\n DataTableHeaderCell as UuiDataTableHeaderCell,\n HeaderCellContentProps,\n} from '@epam/uui-components';\nimport { ColumnHeaderDropdown } from './ColumnHeaderDropdown';\nimport type { DataTableHeaderCellMods } from './types';\nimport { IconButton } from '../buttons';\nimport { Checkbox } from '../inputs';\nimport { Tooltip } from '../overlays';\nimport { Text } from '../typography';\n\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableHeaderCell.module.scss';\n\ninterface DataTableHeaderCellState {\n isDropdownOpen: boolean;\n}\n\nexport interface DataTableHeaderCellModsOverride {\n}\n\nexport interface DataTableHeaderCellProps<TItem, TId> extends\n UuiCoreDataTableHeaderCellProps<TItem, TId>,\n Overwrite<DataTableHeaderCellMods, DataTableHeaderCellModsOverride> {}\n\nexport class DataTableHeaderCell<TItem, TId> extends React.Component<DataTableHeaderCellProps<TItem, TId>, DataTableHeaderCellState> {\n state: DataTableHeaderCellState = {\n isDropdownOpen: null,\n };\n\n getTooltipContent = (column: DataColumnProps<TItem, TId>) => (\n <div className={ cx(css.cellTooltipWrapper, uuiDataTableHeaderCell.uuiTableHeaderCaptionTooltip) }>\n <Text cx={ [css.cellTooltipText, css.tooltipCaption] }>\n { column.caption }\n </Text>\n { column.info && (\n <Text cx={ [css.cellTooltipText, css.tooltipInfo] }>\n { column.info }\n </Text>\n ) }\n </div>\n );\n\n getColumnCaption = (props: HeaderCellContentProps, dropdownProps?: IDropdownTogglerProps) => {\n const renderTooltip = this.props.column.renderTooltip || this.getTooltipContent;\n const captionCx = cx([\n css.caption,\n this.props.textCase === 'upper' && css.upperCase,\n uuiDataTableHeaderCell.uuiTableHeaderCaption,\n 'uui-typography-inline',\n this.props.size >= '48' && css.truncate,\n ]);\n\n const handleFilterOpen = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n dropdownProps.onClick(e);\n e.preventDefault();\n }\n };\n\n const handleSort = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n props.toggleSort(e);\n e.preventDefault();\n }\n };\n\n return (\n <div\n className={ cx(css.captionWrapper, css['align-' + this.props.column.textAlign], uuiDataTableHeaderCell.uuiTableHeaderCaptionWrapper) }\n >\n <Tooltip\n placement=\"top\"\n color=\"inverted\"\n content={ renderTooltip(this.props.column) }\n cx={ [css.cellTooltip, 'uui-dt-header-tooltip'] }\n openDelay={ 600 }\n closeOnMouseLeave=\"boundary\"\n >\n <div key=\"text\" className={ captionCx }>\n { this.props.column.caption }\n </div>\n </Tooltip>\n { this.props.column.isSortable && (!this.props.column.renderFilter || this.props.sortDirection) && (\n <ControlIcon\n key=\"sort\"\n cx={ cx(css.icon, css.sortIcon, !this.props.sortDirection && css.sortInActive, uuiDataTableHeaderCell.uuiTableHeaderSortIcon) }\n icon={ settings.dataTable.icons.header[this.props.sortDirection === 'desc' ? 'descSortIcon' : this.props.sortDirection === 'asc' ? 'ascSortIcon' : 'defaultSortIcon'] }\n onKeyDown={ !this.props.column.renderFilter ? handleSort : undefined }\n />\n ) }\n { this.props.isFilterActive && (\n <IconButton\n key=\"filter\"\n cx={ cx(css.icon, !this.props.sortDirection && css.filterIcon, uuiDataTableHeaderCell.uuiTableHeaderFilterIcon) }\n color=\"neutral\"\n icon={ settings.dataTable.icons.header.filterIcon }\n />\n ) }\n { this.props.column.renderFilter && (\n <ControlIcon\n key=\"dropdown\"\n cx={ cx(css.icon, css.dropdownIcon, uuiDataTableHeaderCell.uuiTableHeaderDropdownIcon) }\n icon={ settings.dataTable.icons.header[this.state.isDropdownOpen ? 'openedDropdownIcon' : 'dropdownIcon'] }\n onKeyDown={ handleFilterOpen }\n />\n ) }\n </div>\n );\n };\n\n renderHeaderCheckbox = () => {\n if (this.props.selectAll && this.props.isFirstColumn) {\n return (\n <Checkbox\n size={ settings.dataTable.sizes.body.checkboxMap[this.props.size] }\n { ...this.props.selectAll }\n cx={ cx(css.checkbox, uuiDataTableHeaderCell.uuiTableHeaderCheckbox) }\n />\n );\n }\n };\n\n renderFoldAllIcon = () => {\n if (this.props.isFirstColumn && this.props.showFoldAll) {\n return (\n <Tooltip content={\n this.props.areAllFolded\n ? i18n.tables.columnHeader.expandAllTooltip\n : i18n.tables.columnHeader.collapseAllTooltip\n }\n >\n <ControlIcon\n cx={ cx(css.icon, css.foldAllIcon, uuiDataTableHeaderCell.uuiTableHeaderFoldAllIcon) }\n icon={ settings.dataTable.icons.header[this.props.areAllFolded ? 'unfoldIcon' : 'foldIcon'] }\n onClick={ this.props.onFoldAll }\n rawProps={ {\n 'aria-label': this.props.areAllFolded ? 'Expand All' : 'Collapse All',\n 'aria-expanded': !!this.props.areAllFolded,\n } }\n />\n </Tooltip>\n );\n }\n };\n\n renderResizingMarker = (props: HeaderCellContentProps) => {\n return (\n <div\n role=\"separator\"\n onMouseDown={ props.onResizeStart }\n className={ cx(css.resizingMarker, uuiMarkers.draggable, uuiMarkers.clickable) }\n />\n );\n };\n\n getLeftPadding = () => {\n const { columnsGap, isFirstColumn } = this.props;\n\n if (columnsGap) return isFirstColumn ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-header-cell-padding${isFirstColumn ? '-edge' : ''})`;\n };\n\n getRightPadding = () => {\n const { columnsGap, isLastColumn } = this.props;\n\n if (columnsGap) return isLastColumn ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-header-cell-padding${isLastColumn ? '-edge' : ''})`;\n };\n\n getResizingMarkerWidth = () => {\n const { columnsGap } = this.props;\n return columnsGap ? `${+columnsGap / 2}px` : 'var(--uui-resize-marker-width)';\n };\n\n renderCellContent = (props: HeaderCellContentProps, dropdownProps?: IDropdownTogglerProps) => {\n const isResizable = this.props.column.allowResizing ?? this.props.allowColumnsResizing;\n const onClickEvent = !props.isResizing && (!this.props.column.renderFilter ? props.toggleSort : dropdownProps?.onClick);\n\n const computeStyles = {\n '--uui-dt-header-cell-icon-size': `${settings.dataTable.sizes.header.iconMap[this.props.size || settings.dataTable.sizes.header.row]}px`,\n '--uui-dt-header-cell-padding-start': this.getLeftPadding(),\n '--uui-dt-header-cell-padding-end': this.getRightPadding(),\n '--uui-dt-header-cell-resizing-marker-width': this.getResizingMarkerWidth(),\n } as React.CSSProperties;\n\n return (\n <DataTableCellContainer\n column={ this.props.column }\n ref={ (ref) => {\n (props.ref as React.RefCallback<HTMLElement>)(ref);\n (dropdownProps?.ref as React.RefCallback<HTMLElement>)?.(ref);\n } }\n cx={ cx(\n uuiDataTableHeaderCell.uuiTableHeaderCell,\n (this.props.column.isSortable || this.props.isDropdown) && uuiMarkers.clickable,\n css.root,\n `uui-size-${this.props.size || settings.dataTable.sizes.header.row}`,\n this.props.isFirstColumn && 'uui-dt-header-first-column',\n this.props.isLastColumn && 'uui-dt-header-last-column',\n this.props.column.fix && css['pinned-' + this.props.column.fix],\n isResizable && uuiMarkers.resizable,\n props.isDraggable && css.draggable,\n props.isDragGhost && css.ghost,\n props.isDraggedOut && css.isDraggedOut,\n props.isDndInProgress && css['dnd-marker-' + props.position],\n ) }\n onClick={ onClickEvent }\n rawProps={ {\n role: 'columnheader',\n 'aria-sort': this.props.sortDirection === 'asc' ? 'ascending' : this.props.sortDirection ? 'descending' : 'none',\n ...props.eventHandlers,\n } }\n style={ computeStyles }\n >\n { this.renderHeaderCheckbox() }\n { this.renderFoldAllIcon() }\n { this.getColumnCaption(props, dropdownProps) }\n { isResizable && this.renderResizingMarker(props) }\n </DataTableCellContainer>\n );\n };\n\n renderCellWithFilter = (props: HeaderCellContentProps) => (\n <ColumnHeaderDropdown\n isOpen={ this.state.isDropdownOpen }\n isSortable={ this.props.column.isSortable }\n renderTarget={ (dropdownProps) => this.renderCellContent(props, dropdownProps) }\n renderFilter={ this.props.renderFilter }\n onSort={ this.props.onSort }\n sortDirection={ this.props.sortDirection }\n onOpenChange={ (isDropdownOpen) => this.setState({ isDropdownOpen }) }\n title={ this.props.column.caption as string }\n />\n );\n\n render() {\n if (this.props.column.renderHeaderCell) {\n return this.props.column.renderHeaderCell(this.props);\n }\n\n return (\n <UuiDataTableHeaderCell\n { ...this.props }\n renderCellContent={ this.props.column.renderFilter ? this.renderCellWithFilter : this.renderCellContent }\n />\n );\n }\n}\n","import * as React from 'react';\nimport { cx, DataColumnGroupProps, DataTableHeaderGroupCellProps, Overwrite, uuiDataTableHeaderGroupCell } from '@epam/uui-core';\nimport { DataTableCellContainer } from '@epam/uui-components';\nimport type { DataTableHeaderCellMods } from './types';\nimport { Tooltip } from '../overlays';\nimport { Text } from '../typography';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableHeaderGroupCell.module.scss';\n\nexport interface DataTableHeaderGroupCellModsOverride {\n}\n\nexport class DataTableHeaderGroupCell extends\n React.Component<\n DataTableHeaderGroupCellProps & Overwrite<DataTableHeaderCellMods,\n DataTableHeaderGroupCellModsOverride>\n > {\n getTooltipContent = (column: DataColumnGroupProps) => (\n <div className={ cx(css.groupCellTooltipWrapper, uuiDataTableHeaderGroupCell.uuiTableHeaderGroupCaptionTooltip) }>\n <Text cx={ [css.groupCellTooltipText, css.tooltipCaption] }>\n { column.caption }\n </Text>\n { column.info && (\n <Text cx={ [css.groupCellTooltipText, css.tooltipInfo] }>\n { column.info }\n </Text>\n ) }\n </div>\n );\n\n getColumnCaption = () => {\n const renderTooltip = this.props.group.renderTooltip || this.getTooltipContent;\n const captionCx = cx(\n css.caption,\n this.props.textCase === 'upper' && css.upperCase,\n uuiDataTableHeaderGroupCell.uuiTableHeaderGroupCaption,\n 'uui-typography-inline',\n this.props.size >= '48' && css.truncate,\n );\n\n return (\n <div\n className={ cx(css.captionWrapper, css['align-' + this.props.group.textAlign], uuiDataTableHeaderGroupCell.uuiTableHeaderGroupCaptionWrapper) }\n >\n <Tooltip\n placement=\"top\"\n color=\"inverted\"\n content={ renderTooltip(this.props.group) }\n cx={ css.groupCellTooltip }\n openDelay={ 600 }\n >\n <div key=\"text\" className={ captionCx }>\n { this.props.group.caption }\n </div>\n </Tooltip>\n </div>\n );\n };\n\n getLeftPadding = () => {\n const { columnsGap, isFirstCell } = this.props;\n\n if (columnsGap) return isFirstCell ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-header-group-cell-padding${isFirstCell ? '-edge' : ''})`;\n };\n\n getRightPadding = () => {\n const { columnsGap, isLastCell } = this.props;\n\n if (columnsGap) return isLastCell ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-header-group-cell-padding${isLastCell ? '-edge' : ''})`;\n };\n\n render() {\n if (this.props.group.renderHeaderCell) {\n return this.props.group.renderHeaderCell(this.props);\n }\n\n const computeStyles = {\n '--uui-dt-header-group-cell-padding-start': this.getLeftPadding(),\n '--uui-dt-header-group-cell-padding-end': this.getRightPadding(),\n } as React.CSSProperties;\n\n return (\n <DataTableCellContainer\n column={ this.props.group }\n cx={ cx(\n uuiDataTableHeaderGroupCell.uuiTableHeaderGroupCell,\n css.root,\n `uui-size-${this.props.size || settings.dataTable.sizes.header.row}`,\n this.props.isFirstCell && 'uui-dt-header-first-column',\n this.props.isLastCell && 'uui-dt-header-last-column',\n ) }\n rawProps={ { role: 'columnheader' } }\n style={ computeStyles }\n >\n { this.getColumnCaption() }\n </DataTableCellContainer>\n );\n }\n}\n","import * as React from 'react';\nimport { DataTableHeaderRowProps as CoreDataTableHeaderRowProps, withMods } from '@epam/uui-core';\nimport { ControlIcon, DataTableHeaderRow as uuiDataTableHeaderRow } from '@epam/uui-components';\nimport { DataTableHeaderCell } from './DataTableHeaderCell';\nimport { DataTableHeaderGroupCell } from './DataTableHeaderGroupCell';\nimport type { DataTableHeaderRowMods } from './types';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableHeaderRow.module.scss';\n\nexport type DataTableHeaderRowProps = CoreDataTableHeaderRowProps & DataTableHeaderRowMods;\nexport const DataTableHeaderRow = withMods<CoreDataTableHeaderRowProps, DataTableHeaderRowProps>(\n uuiDataTableHeaderRow,\n () => [css.root, 'uui-dt-vars'],\n (mods) => {\n return ({\n renderCell: (props) => (\n <DataTableHeaderCell\n { ...props }\n size={ mods.size }\n textCase={ mods.textCase || 'normal' }\n key={ props.column.key }\n columnsGap={ mods.columnsGap }\n />\n ),\n renderGroupCell: (props) => (\n <DataTableHeaderGroupCell\n { ...props }\n size={ mods.size }\n textCase={ mods.textCase || 'normal' }\n key={ props.key }\n columnsGap={ mods.columnsGap }\n />\n ),\n renderConfigButton: () => (\n <ControlIcon\n key=\"configuration\"\n onClick={ mods.onConfigButtonClick }\n size={ settings.dataTable.sizes.header.iconMap[mods.size || settings.dataTable.sizes.header.row] }\n cx={ ['config-icon'] }\n icon={ settings.dataTable.icons.header.configIcon }\n />\n ),\n });\n },\n);\n","import type { DataQueryFilter, FilterPredicate } from '@epam/uui-core';\n\nexport const normalizeFilterWithPredicates = <TFilter,>(filter: TFilter) => {\n if (!filter) {\n return {};\n }\n const result: DataQueryFilter<TFilter> = filter;\n const keys = Object.keys(filter) as (keyof TFilter)[];\n for (let n = 0; n < keys.length; n++) {\n const key = keys[n];\n const filterValue: any = filter[key];\n if (filterValue && typeof filterValue === 'object') {\n if (Object.keys(filterValue).length === 0) {\n delete filter[key];\n continue;\n }\n if ('from' in filterValue && 'to' in filterValue) {\n continue;\n }\n if ('in' in filterValue && (!Array.isArray(filterValue.in) || !filterValue.in.length)) {\n delete filter[key];\n }\n if ('nin' in filterValue && (!Array.isArray(filterValue.nin) || !filterValue.nin.length)) {\n delete filter[key];\n }\n if ('inRange' in filterValue) {\n if (!filterValue.inRange || (!filterValue.inRange.from && !filterValue.inRange.to)) {\n delete filter[key];\n }\n }\n if ('notInRange' in filterValue) {\n if (!filterValue.notInRange || (!filterValue.notInRange.from && !filterValue.notInRange.to)) {\n delete filter[key];\n }\n }\n Object.keys(filterValue).forEach((predicate) => {\n if (filterValue[predicate] === null || filterValue[predicate] === undefined) {\n delete filter[key];\n }\n });\n }\n }\n return result;\n};\n\nexport const getValue = (predicate: keyof FilterPredicate<any>, value: any) => predicate ? value?.[predicate] : value;\n","import React, { useEffect } from 'react';\nimport { FilterPredicate, FilterPredicateName, IFilterPredicate } from '@epam/uui-core';\nimport { settings } from '../../settings';\nimport { MultiSwitch } from '../inputs';\nimport { getValue } from './helpers/predicateHelpers';\n\ninterface IPredicatesHeaderProps {\n predicates: IFilterPredicate[];\n predicate: keyof FilterPredicate<any>;\n type: 'singlePicker' | 'multiPicker' | 'datePicker' | 'numeric' | 'rangeDatePicker' | 'custom';\n onValueChange: (newValue: any) => void;\n value: unknown;\n setPredicate: React.Dispatch<React.SetStateAction<keyof FilterPredicate<any>>>;\n}\n\nexport function FilterPredicatePanel(props: IPredicatesHeaderProps) {\n if (!props.predicates) return null;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n // This effect needs when the filter dropdown was closed and opened again\n if (props.predicates && props.value && Object.keys(props.value).length > 0) {\n const predicateFromValue = Object.keys(props.value)[0];\n if (predicateFromValue !== props.predicate) {\n props.setPredicate(predicateFromValue as FilterPredicateName);\n }\n }\n }, [props.value]);\n\n const changePredicate = (val: FilterPredicateName) => {\n const isInRange = (p: FilterPredicateName) => p === 'inRange' || p === 'notInRange';\n if (props.type === 'numeric') {\n let predicateValue = { [val]: getValue(props.predicate, props.value) };\n\n if (isInRange(val) && !isInRange(props.predicate as FilterPredicateName)) {\n // from simple predicate -> to Range\n predicateValue = { [val]: { from: null, to: null } };\n } else if (!isInRange(val) && isInRange(props.predicate as FilterPredicateName)) {\n // from Range -> to simple predicate\n predicateValue = { [val]: null };\n }\n props.onValueChange(predicateValue);\n } else {\n props.onValueChange({ [val]: getValue(props.predicate, props.value) });\n }\n props.setPredicate(val);\n };\n\n return (\n <MultiSwitch\n items={ props.predicates?.map((i) => ({ id: i.predicate, caption: i.name })) }\n value={ props.predicate }\n onValueChange={ changePredicate }\n size={ settings.filtersPanel.sizes.pickerBodyMultiSwitch }\n />\n );\n}\n","export const UUI_FILTERS_PANEL_ADD_BUTTON = 'uui-filters-panel-add-button';\nexport const UUI_FILTERS_PANEL_ADD_BUTTON_BODY = 'uui-filters-panel-add-button-body';\nexport const UUI_FILTERS_PANEL_ITEM_BODY = 'uui-filters-panel-item-body';\nexport const UUI_FILTERS_PANEL_ITEM_TOGGLER = 'uui-filters-panel-item-toggler';\nexport const UUI_FILTERS_PANEL_ITEM_TOGGLER_TITLE = 'uui-filters-panel-item-toggler-title';\nexport const UUI_FILTERS_PANEL_ITEM_TOGGLER_SELECTION = 'uui-filters-panel-item-toggler-selection';\nexport const UUI_FILTERS_PANEL_ITEM_TOGGLER_POSTFIX = 'uui-filters-panel-item-toggler-postfix';\nexport const UUI_FILTERS_PANEL_BODY_FOOTER = 'uui-filters-panel-item-footer';\n","import { FilterPredicateName, IFilterItemBodyProps } from '@epam/uui-core';\nimport React, { useState } from 'react';\nimport { DropdownContainer, FilterItemBody, getDefaultPredicate } from '../index';\nimport { FilterPredicatePanel } from './FilterPredicatePanel';\nimport { UUI_FILTERS_PANEL_ITEM_BODY } from './constants';\nimport { getValue } from './helpers/predicateHelpers';\nimport css from './FiltersPanelItem.module.scss';\n\nexport function FilterColumnBody(props: IFilterItemBodyProps<any>) {\n const [predicate, setPredicate] = useState<FilterPredicateName>(getDefaultPredicate(props.predicates, props.value));\n\n const onValueChange = (value: any) => {\n if (props.predicates) {\n props.onValueChange({ [predicate]: value });\n } else {\n props.onValueChange(value);\n }\n };\n\n const renderHeader = () => {\n const panelProps = {\n predicates: props.predicates,\n predicate,\n type: props.type,\n onValueChange: props.onValueChange,\n value: props.value,\n setPredicate,\n };\n\n return props.predicates?.length > 0 && (\n <div className={ css.header }>\n <FilterPredicatePanel { ...panelProps } />\n </div>\n );\n };\n\n return (\n <DropdownContainer style={ { minWidth: '360px' } } cx={ [css.body, UUI_FILTERS_PANEL_ITEM_BODY] } { ...props } focusLock={ false }>\n {renderHeader()}\n <FilterItemBody\n { ...props }\n selectedPredicate={ predicate }\n value={ getValue(predicate, props.value) }\n onValueChange={ onValueChange }\n />\n </DropdownContainer>\n );\n}\n","import React, { useCallback, useMemo } from 'react';\nimport { DataColumnProps, ILens, TableFiltersConfig, IDropdownBodyProps } from '@epam/uui-core';\nimport { FilterColumnBody } from '../components/filters/FilterColumnBody';\nimport { normalizeFilterWithPredicates } from '../components/filters/helpers/predicateHelpers';\n\nexport const useColumnsWithFilters = <TFilter extends Record<string, any>>(initialColumns: DataColumnProps[], filters: TableFiltersConfig<TFilter>[] | undefined) => {\n const makeFilterRenderCallback = useCallback<(key: string) => (lens: ILens<TFilter>, dropdownProps: IDropdownBodyProps) => React.ReactNode>\n ((key) => function (filterLens, dropdownProps) {\n const filter = filters?.find((f) => f.columnKey === key);\n if (!filter) return null;\n\n const props = filterLens\n .onChange((oldFilter: TFilter, newFilter: TFilter) => normalizeFilterWithPredicates(newFilter) as TFilter)\n .prop(filter.field)\n .toProps();\n\n return <FilterColumnBody { ...props } { ...filter } { ...dropdownProps } />;\n }, [filters]);\n\n const columns = useMemo(() => {\n if (filters) {\n const filterKeys = filters.map((f) => f.columnKey);\n const newColumns = (initialColumns.map((column) => {\n if (filterKeys.includes(column.key)) {\n return {\n ...column,\n renderFilter: makeFilterRenderCallback(column.key),\n };\n } else {\n return column;\n }\n }));\n return newColumns;\n }\n return initialColumns;\n }, [filters, initialColumns]);\n\n return columns;\n};\n","import * as React from 'react';\nimport type { Icon } from '@epam/uui-core';\nimport { cx } from '@epam/uui-core';\nimport { IconButton } from '../../buttons';\nimport { Tooltip } from '../../overlays';\nimport { i18n } from '../../../i18n';\nimport { settings } from '../../../settings';\n\nimport css from './PinIconButton.module.scss';\n\ntype TPinPosition = 'left' | 'right' | undefined;\ninterface IPinIconButton {\n pinPosition: TPinPosition;\n canUnpin: boolean;\n onTogglePin: (pinPosition: TPinPosition) => void;\n}\n\nexport function PinIconButton(props: IPinIconButton) {\n const i18nLocal = i18n.tables.columnsConfigurationModal;\n const {\n onTogglePin, pinPosition, canUnpin,\n } = props;\n const isPinned = !!pinPosition;\n const isPinnedAlways = isPinned && !canUnpin;\n\n let pinUnpinNode: React.ReactNode;\n\n if (isPinned) {\n const unpinIcon = getUnpinIcon({ isPinnedAlways, pinPosition })!;\n const iconTooltip = isPinnedAlways ? i18nLocal.lockedColumnPinButton : i18nLocal.unPinColumnButton;\n const unpinClickHandler = isPinnedAlways ? undefined : () => onTogglePin(undefined);\n pinUnpinNode = (\n <Tooltip\n content={ iconTooltip }\n placement=\"bottom\"\n color=\"inverted\"\n >\n <IconButton\n cx={ cx(!isPinnedAlways && css.unpinIcon, css.pinTogglerIcon) }\n icon={ unpinIcon }\n onClick={ unpinClickHandler }\n isDisabled={ isPinnedAlways }\n color=\"primary\"\n rawProps={ {\n 'aria-description': iconTooltip,\n 'aria-label': 'Unpin Button',\n } }\n />\n </Tooltip>\n );\n } else {\n pinUnpinNode = (\n <>\n <Tooltip\n content={ i18nLocal.pinColumnToTheLeftButton }\n placement=\"bottom\"\n color=\"inverted\"\n >\n <IconButton\n cx={ css.pinTogglerIcon }\n icon={ settings.dataTable.icons.columnsConfigurationModal.pinLeftIcon }\n onClick={ () => onTogglePin('left') }\n isDisabled={ isPinnedAlways }\n rawProps={ {\n 'aria-description': i18nLocal.pinColumnToTheLeftButton,\n 'aria-label': 'Pin left button',\n } }\n />\n </Tooltip>\n <Tooltip\n content={ i18nLocal.pinColumnToTheRightButton }\n placement=\"bottom\"\n color=\"inverted\"\n >\n <IconButton\n cx={ css.pinTogglerIcon }\n icon={ settings.dataTable.icons.columnsConfigurationModal.pinRightIcon }\n onClick={ () => onTogglePin('right') }\n isDisabled={ isPinnedAlways }\n rawProps={ {\n 'aria-description': i18nLocal.pinColumnToTheRightButton,\n 'aria-label': 'Pin right button',\n } }\n />\n </Tooltip>\n </>\n );\n }\n\n return pinUnpinNode;\n}\n\nfunction getUnpinIcon(params: { isPinnedAlways: boolean, pinPosition: TPinPosition }): Icon | undefined {\n const { isPinnedAlways, pinPosition } = params;\n if (isPinnedAlways) {\n return settings.dataTable.icons.columnsConfigurationModal.lockIcon;\n }\n switch (pinPosition) {\n case 'left': {\n return settings.dataTable.icons.columnsConfigurationModal.pinLeftIcon;\n }\n case 'right': {\n return settings.dataTable.icons.columnsConfigurationModal.pinRightIcon;\n }\n default: {\n return;\n }\n }\n}\n","import * as React from 'react';\nimport { cx, DataColumnProps, DndActor, DndActorRenderParams, uuiDndState } from '@epam/uui-core';\nimport { DragHandle, ColumnsConfigurationRowProps } from '@epam/uui-components';\nimport { FlexRow } from '../../layout';\nimport { Checkbox } from '../../inputs';\nimport { DropMarker } from '../../dnd';\nimport { PinIconButton } from './PinIconButton';\nimport { settings } from '../../../settings';\n\nimport css from './ColumnRow.module.scss';\n\nexport interface ColumnRowProps<TItem, TId, TFilter> {\n column: ColumnsConfigurationRowProps;\n renderItem?: (column: DataColumnProps<TItem, TId, TFilter>) => React.ReactNode;\n}\n\nexport const ColumnRow = React.memo(function ColumnRow(props: ColumnRowProps<any, any, any>) {\n const { column } = props;\n const {\n toggleVisibility, togglePin, onCanAcceptDrop, onDrop, columnConfig, isDndAllowed, isPinnedAlways, columnGroup,\n } = column;\n const { isVisible, fix } = columnConfig;\n const pinPosition = fix || (isPinnedAlways ? 'left' : undefined);\n const isPinned = !!pinPosition;\n const data = { column, columnConfig };\n\n const getColumnCaption = () => {\n if (props.renderItem) {\n return props.renderItem(props.column);\n }\n\n if (column.group) {\n return `${column.caption}/${columnGroup.caption}`;\n } else {\n return column.caption;\n }\n };\n\n const renderContent = (dndActorParams: DndActorRenderParams) => {\n const wrapperClasses = cx(\n css.rowWrapper,\n !isPinned && css.notPinned,\n dndActorParams.isDragGhost && uuiDndState.dragGhost,\n 'uui-dt-columns-config-row',\n );\n\n const { onTouchStart, onPointerDown, ...restEventHandlers } = dndActorParams.eventHandlers;\n\n const { ref, ...dndActorPropsWithoutRef } = dndActorParams;\n\n return (\n <FlexRow\n size={ settings.dataTable.sizes.columnsConfigurationModal.columnRow }\n cx={ wrapperClasses }\n ref={ dndActorParams.ref }\n rawProps={ { ...restEventHandlers } }\n alignItems=\"top\"\n >\n <DragHandle\n dragHandleIcon={ settings.dataTable.icons.columnsConfigurationModal.dragIndicator }\n rawProps={ { onTouchStart, onPointerDown } }\n isDisabled={ !isDndAllowed }\n cx={ cx(css.dragHandle, !isDndAllowed && css.dndDisabled) }\n />\n <Checkbox\n key={ column.key }\n label={ getColumnCaption() }\n value={ isVisible }\n onValueChange={ toggleVisibility }\n isReadonly={ column.isAlwaysVisible || column.isLocked }\n cx={ css.checkbox }\n />\n <FlexRow\n size={ null }\n cx={ css.pinIconButton }\n >\n <PinIconButton pinPosition={ pinPosition } canUnpin={ !isPinnedAlways } onTogglePin={ togglePin } />\n </FlexRow>\n <DropMarker { ...dndActorPropsWithoutRef } />\n </FlexRow>\n );\n };\n\n return (\n <DndActor\n key={ column.key }\n srcData={ isDndAllowed && data }\n dstData={ data }\n canAcceptDrop={ onCanAcceptDrop }\n onDrop={ onDrop }\n render={ renderContent }\n />\n );\n});\n","import * as React from 'react';\nimport { useCallback, useMemo, useState } from 'react';\n\nimport { ColumnsConfig, cx, DataColumnProps, IModal } from '@epam/uui-core';\nimport { Accordion, ColumnsConfigurationRowProps, IconContainer, useColumnsConfiguration } from '@epam/uui-components';\n\nimport { FlexRow, FlexSpacer, Panel, ScrollBars } from '../../layout';\nimport { Button, LinkButton } from '../../buttons';\nimport { Dropdown, DropdownMenuBody, DropdownMenuButton, ModalBlocker, ModalFooter, ModalHeader, ModalWindow, Tooltip } from '../../overlays';\nimport { Text } from '../../typography';\nimport { CountIndicator } from '../../widgets';\nimport { SearchInput } from '../../inputs';\nimport { ColumnRow } from './ColumnRow';\n\nimport { i18n as uuiI18n } from '../../../i18n';\nimport { settings } from '../../../settings';\n\nimport css from './ColumnsConfigurationModal.module.scss';\nimport { DataTableProps } from '../DataTable';\n\nexport interface ColumnsConfigurationModalProps<TItem, TId, TFilter> extends Pick<DataTableProps<TItem, TId>, 'columnGroups'>, IModal<ColumnsConfig> {\n columnsConfig?: ColumnsConfig;\n defaultConfig: ColumnsConfig;\n columns: DataColumnProps<TItem, TId, TFilter>[];\n renderItem?: (column: DataColumnProps<TItem, TId, TFilter>) => React.ReactNode;\n getSearchFields?: (column: DataColumnProps<TItem, TId, TFilter>) => string[];\n}\n\nconst renderGroupTitle = (title: string, amount: number) => (\n <FlexRow\n cx={ css.group }\n >\n <Text\n size=\"none\"\n cx={ css.groupTitle }\n >\n {title}\n </Text>\n <CountIndicator\n caption={ amount }\n color=\"neutral\"\n size={ settings.dataTable.sizes.columnsConfigurationModal.countIndicator }\n />\n <FlexSpacer />\n </FlexRow>\n);\n\nexport function ColumnsConfigurationModal<TItem, TId, TFilter>(props: ColumnsConfigurationModalProps<TItem, TId, TFilter>) {\n const i18n = uuiI18n.tables.columnsConfigurationModal;\n\n const { columns, columnsConfig: initialColumnsConfig, defaultConfig, ...modalProps } = props;\n const {\n groupedColumns, searchValue, columnsConfig, reset, checkAll, uncheckAll, setSearchValue, hasAnySelectedColumns,\n } = useColumnsConfiguration({\n initialColumnsConfig,\n columns,\n defaultConfig,\n getSearchFields: props.getSearchFields,\n columnGroups: props.columnGroups,\n });\n const apply = useCallback(() => modalProps.success(columnsConfig), [columnsConfig, modalProps]);\n const close = useCallback(() => modalProps.abort(), [modalProps]);\n const isNoData = useMemo(() => Object.values(groupedColumns).every((v) => !v.length), [groupedColumns]);\n\n const renderVisible = () => {\n const amountPinnedLeft = groupedColumns.displayedPinnedLeft.length;\n const amountPinnedRight = groupedColumns.displayedPinnedRight.length;\n const amountUnPinned = groupedColumns.displayedUnpinned.length;\n const totalAmountOfVisibleColumns = amountPinnedLeft + amountUnPinned + amountPinnedRight;\n\n if (!totalAmountOfVisibleColumns) {\n return null;\n }\n const hasDividerBelowPinnedLeft = !!(amountPinnedLeft && amountUnPinned);\n const hasDividerAbovePinnedRight = !!(amountPinnedRight && amountUnPinned);\n const divider = (\n <FlexRow\n size={ null }\n cx={ css.hDivider }\n />\n );\n\n return (\n <>\n {renderGroupTitle(i18n.displayedSectionTitle, totalAmountOfVisibleColumns)}\n <SubGroup renderItem={ props.renderItem } title={ i18n.pinnedToTheLeftSubgroupTitle } items={ groupedColumns.displayedPinnedLeft } />\n {hasDividerBelowPinnedLeft && divider}\n <SubGroup renderItem={ props.renderItem } title={ i18n.notPinnedSubgroupTitle } items={ groupedColumns.displayedUnpinned } />\n {hasDividerAbovePinnedRight && divider}\n <SubGroup renderItem={ props.renderItem } title={ i18n.pinnedToTheRightSubgroupTitle } items={ groupedColumns.displayedPinnedRight } />\n </>\n );\n };\n const renderHidden = () => {\n const items = groupedColumns.hidden;\n const title = renderGroupTitle(i18n.hiddenSectionTitle, items.length);\n if (!items.length) {\n return null;\n }\n return (\n <>\n { title }\n <SubGroup renderItem={ props.renderItem } items={ items } />\n </>\n );\n };\n\n const applyButton = <Button caption={ i18n.applyButton } isDisabled={ !hasAnySelectedColumns } color=\"primary\" onClick={ apply } />;\n\n return (\n <ModalBlocker { ...modalProps }>\n <ModalWindow cx={ [css.root, 'uui-columns-config-modal'] } height=\"95dvh\" maxHeight=\"95dvh\">\n <ModalHeader title={ i18n.configureColumnsTitle } onClose={ close } />\n <FlexRow\n borderBottom={ true }\n cx={ css.searchArea }\n >\n <SearchInput\n size={ settings.dataTable.sizes.columnsConfigurationModal.searchInput }\n value={ searchValue }\n onValueChange={ setSearchValue }\n placeholder={ i18n.searchPlaceholder }\n />\n <Dropdown\n closeOnTargetClick={ true }\n renderBody={ () => (\n <DropdownMenuBody minWidth={ 100 }>\n <DropdownMenuButton caption={ i18n.clearAllButton } onClick={ uncheckAll } />\n <DropdownMenuButton caption={ i18n.selectAllButton } onClick={ checkAll } />\n </DropdownMenuBody>\n ) }\n renderTarget={ (props) => (\n <Button\n { ...props }\n fill=\"none\"\n icon={ settings.dataTable.icons.columnsConfigurationModal.menuIcon }\n size={ settings.dataTable.sizes.columnsConfigurationModal.menuButton }\n color=\"secondary\"\n isDropdown={ false }\n />\n ) }\n />\n </FlexRow>\n <Panel background=\"surface-main\" cx={ css.mainPanel }>\n <ScrollBars>\n {renderVisible()}\n {renderHidden()}\n {isNoData && (\n <FlexRow cx={ css.noData }>\n <Text cx={ css.noDataTitle }>\n {i18n.noResultsFound.title}\n </Text>\n <Text cx={ css.noDataSubTitle }>\n {i18n.noResultsFound.subTitle}\n </Text>\n </FlexRow>\n )}\n </ScrollBars>\n </Panel>\n <ModalFooter borderTop>\n <LinkButton\n icon={ settings.dataTable.icons.columnsConfigurationModal.resetIcon }\n caption={ i18n.resetToDefaultButton }\n onClick={ reset }\n />\n <FlexSpacer />\n <Button fill=\"none\" color=\"secondary\" caption={ i18n.cancelButton } onClick={ close } />\n {!hasAnySelectedColumns ? (\n <Tooltip content={ i18n.enableAtLeastOneColumnMessage } placement=\"top-end\" color=\"critical\">\n {applyButton}\n </Tooltip>\n ) : (\n applyButton\n )}\n </ModalFooter>\n </ModalWindow>\n </ModalBlocker>\n );\n}\n\nfunction SubGroup(props: { items: ColumnsConfigurationRowProps[]; renderItem: (column: DataColumnProps) => React.ReactNode; title?: React.ReactNode }) {\n const [isExpanded, setIsExpanded] = useState<boolean>(true);\n const { title, items, renderItem } = props;\n const isCollapsible = !!title;\n\n if (items.length) {\n const content = (\n <FlexRow\n cx={ css.groupItems }\n size={ settings.dataTable.sizes.columnsConfigurationModal.columnRow }\n >\n {items.map((c) => (\n <ColumnRow column={ c } key={ c.key } renderItem={ renderItem } />\n ))}\n </FlexRow>\n );\n if (isCollapsible) {\n const renderTitle = (isOpened: boolean) => {\n const toggleIcon = settings.dataTable.icons.columnsConfigurationModal[isOpened ? 'expandedIcon' : 'collapsedIcon'];\n return (\n <FlexRow\n cx={ cx(css.subgroup) }\n >\n <IconContainer\n icon={ toggleIcon }\n />\n <Text\n size=\"none\"\n color=\"tertiary\"\n cx={ css.subgroupTitle }\n >\n { title }\n </Text>\n </FlexRow>\n );\n };\n return (\n <Accordion\n value={ isExpanded }\n onValueChange={ setIsExpanded }\n renderTitle={ renderTitle }\n cx={ css.subgroupAccordion }\n >\n { content }\n </Accordion>\n );\n }\n return content;\n }\n return null;\n}\n","import { DataRowProps } from '@epam/uui-core';\n\nexport const getChildrenAndRest = <TItem, TId>(row: DataRowProps<TItem, TId>, rows: DataRowProps<TItem, TId>[]) => {\n const firstNotChildIndex = rows.findIndex((other) => other.depth < row.depth || (row.depth === other.depth && other.isPinned));\n if (firstNotChildIndex === -1) {\n return [rows, []];\n }\n if (firstNotChildIndex === 0) {\n return [[], rows];\n }\n\n const children = rows.slice(0, firstNotChildIndex);\n const rest = rows.slice(firstNotChildIndex, rows.length);\n return [children, rest];\n};\n","import React, { useRef, type JSX } from 'react';\nimport { DataRowProps } from '@epam/uui-core';\nimport { getChildrenAndRest } from './utils';\n\nimport css from './DataRowsContainer.module.scss';\n\ninterface DataRowsGroupProps<TItem, TId> {\n row: DataRowProps<TItem, TId>;\n childRows: DataRowProps<TItem, TId>[];\n renderRow: (props: DataRowProps<TItem, TId>) => React.ReactNode;\n top: number;\n}\n\nexport interface DataRowsGroupsProps<TItem, TId> {\n rows: DataRowProps<TItem, TId>[],\n renderRow: (props: DataRowProps<TItem, TId>) => React.ReactNode;\n top: number;\n}\n\nfunction DataRowsGroup<TItem, TId>({\n row,\n childRows,\n renderRow,\n top = 1,\n}: DataRowsGroupProps<TItem, TId>) {\n const rowRef = useRef<HTMLDivElement>(undefined);\n const childrenPinnedTop = row.isPinned ? (top + (rowRef.current?.clientHeight ?? 0)) : top;\n return ( \n <div className={ css.group } key={ row.rowKey }>\n <div\n className={ row.isPinned ? css.stickyHeader : css.header }\n // Gaps between pinned parents should be removed by -1 from top height.\n // Otherwise, sometimes top value is rounded top.\n style={ { zIndex: row.depth + 10, top: top - 1 } }\n ref={ rowRef }\n >\n {renderRow(row)}\n </div>\n {childRows.length > 0 && (\n <div>\n <DataRowsGroups rows={ childRows } renderRow={ renderRow } top={ childrenPinnedTop } />\n </div>\n )}\n </div>\n );\n}\n\nexport const renderRows = <TItem, TId>(\n rows: DataRowProps<TItem, TId>[],\n renderRow: (props: DataRowProps<TItem, TId>) => React.ReactNode,\n top?: number,\n): React.ReactNode[] => {\n if (!rows.length) return [];\n\n const [row, ...rest] = rows;\n \n if (!rest.length) {\n return [renderRow(row)];\n }\n const [next] = rest;\n if (next.depth <= row.depth && !row.isPinned) {\n return [renderRow(row)].concat(renderRows(rest, renderRow, top));\n }\n \n const [children, otherRows] = getChildrenAndRest(row, rest);\n const group: React.ReactNode = (\n <DataRowsGroup \n row={ row } \n childRows={ children }\n renderRow={ renderRow }\n top={ top }\n key={ row.rowKey }\n />\n );\n\n return [group].concat(renderRows(otherRows, renderRow, top) as JSX.Element[]);\n};\n\nexport function DataRowsGroups<TItem, TId>({\n rows,\n renderRow,\n top = 1,\n}: DataRowsGroupsProps<TItem, TId>) {\n const rowsWithGroups = renderRows(rows, renderRow, top);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return (<>{ rowsWithGroups }</>);\n}\n","import React from 'react';\nimport cx from 'classnames';\nimport type { DataRowProps } from '@epam/uui-core';\nimport type { VirtualListRenderRowsParams } from '../../layout';\nimport { DataRowsGroups } from './DataRowsGroups';\n\nimport css from './DataRowsContainer.module.scss';\n\nexport interface DataRowsContainerProps<TItem, TId, List extends HTMLDivElement = any> extends VirtualListRenderRowsParams<List> {\n rows: DataRowProps<TItem, TId>[];\n renderRow: (row: DataRowProps<TItem, TId>) => React.ReactNode;\n headerRef?: React.MutableRefObject<HTMLDivElement>;\n}\n\nexport function DataRowsContainer<TItem, TId, List extends HTMLDivElement = any>({\n estimatedHeight, listContainerRef, offsetY, rows, renderRow, headerRef,\n}: DataRowsContainerProps<TItem, TId, List>) {\n return (\n <div className={ cx(css.listContainer, 'uui-dt-data_row_container') } style={ { minHeight: `${estimatedHeight}px` } }>\n <div ref={ listContainerRef } role=\"rowgroup\" style={ { marginTop: offsetY } }>\n <DataRowsGroups\n rows={ rows }\n renderRow={ renderRow }\n top={ headerRef?.current?.clientHeight }\n />\n </div>\n </div>\n );\n}\n","import * as React from 'react';\nimport {\n ColumnsConfig, DataRowProps, useUuiContext, uuiScrollShadows, useColumnsConfig, IEditable, DataTableState, DataTableColumnsConfigOptions,\n DataSourceListProps, DataColumnProps, cx, TableFiltersConfig, DataTableRowProps, DataTableSelectedCellData, Overwrite,\n DataColumnGroupProps, IHasCX,\n} from '@epam/uui-core';\nimport { IconContainer, DataTableSelectionProvider, DataTableFocusManager, DataTableFocusProvider } from '@epam/uui-components';\nimport { useColumnsWithFilters } from '../../helpers';\nimport { DataTableHeaderRow } from './DataTableHeaderRow';\nimport { DataTableRow } from './DataTableRow';\nimport { Text } from '../typography';\nimport { VirtualList, VirtualListRenderRowsParams, VirtualListProps, ScrollBars } from '../layout';\nimport { ColumnsConfigurationModal, ColumnsConfigurationModalProps } from './columnsConfigurationModal';\nimport { DataRowsContainer } from './DataRowsContainer';\nimport type { DataTableMods, DataTableRowMods } from './types';\n\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTable.module.scss';\n\ninterface DataTableCoreProps<TItem, TId, TFilter = any> extends IEditable<DataTableState>, IHasCX, DataSourceListProps, DataTableColumnsConfigOptions, Pick<VirtualListProps, 'onScroll'> {\n /** Callback to get rows that will be rendered in table */\n getRows?(): DataRowProps<TItem, TId>[];\n\n /** Rows that should be rendered in table */\n rows?: DataRowProps<TItem, TId>[];\n\n /** Array of all possible column groups for the table */\n columnGroups?: DataColumnGroupProps[];\n\n /** Array of all possible columns for the table */\n columns: DataColumnProps<TItem, TId>[];\n\n /** Render callback for the table row.\n * If omitted, default DataTableRow implementation will be rendered.\n * */\n renderRow?(props: DataTableRowProps<TItem, TId>): React.ReactNode;\n\n /** Render callback for the 'No results' block. Will be rendered when table doesn't have rows for displaying, e.g. after search applying.\n * If omitted, default implementation will be rendered.\n * */\n renderNoResultsBlock?(): React.ReactNode;\n\n /** Pass true to enable the column configuration button in the last column header. On this button click will show the columns configuration modal.\n * Note that you need to have at least one column fixed to the right for proper display\n * */\n showColumnsConfig?: boolean;\n\n /** Array of filters to be added to the column header.\n * For each filter, you need to specify the `columnKey` of the column where it will be attached.\n * */\n filters?: TableFiltersConfig<any>[];\n\n /** Called when cell content is copied to other cells via the DataTable cell copying mechanism.\n * This callback is typically used to update the state according to the changes.\n * To enable cell copying, provide the canCopy prop for the column.\n * */\n onCopy?: (copyFrom: DataTableSelectedCellData<TItem, TId, TFilter>, selectedCells: DataTableSelectedCellData<TItem, TId, TFilter>[]) => void;\n\n /** Render callback for column configuration modal.\n * If omitted, default `ColumnsConfigurationModal` implementation will be rendered.\n */\n renderColumnsConfigurationModal?: (props: ColumnsConfigurationModalProps<TItem, TId, TFilter>) => React.ReactNode;\n\n /**\n * Focus manipulation manager in tables.\n */\n dataTableFocusManager?: DataTableFocusManager<TId>;\n\n /**\n * Enables collapse/expand all functionality.\n * */\n showFoldAll?: boolean;\n\n /**\n * Pass true to disable rows virtualization.\n * This will disable rows virtualization and remove inner vertical scrollbar from the table\n *\n * Note: A table without virtualization could cause performance issues.\n * Some DataTable features, like sticky header, pinned rows, and scroll to row, will not work with disabled virtualization\n */\n disableVirtualization?: boolean;\n}\n\nexport interface DataTableModsOverride {}\n\nexport interface DataTableProps<TItem, TId> extends React.PropsWithChildren<DataTableCoreProps<TItem, TId> & Overwrite<DataTableMods, DataTableModsOverride>> {}\n\nexport function DataTable<TItem, TId>(props: DataTableProps<TItem, TId>) {\n const { uuiModals } = useUuiContext();\n const headerRef = React.useRef<HTMLDivElement>(undefined);\n const columnsWithFilters = useColumnsWithFilters(props.columns, props.filters);\n const { columns, config, defaultConfig } = useColumnsConfig(columnsWithFilters, props.value?.columnsConfig);\n\n const defaultRenderRow = React.useCallback((rowProps: DataRowProps<TItem, TId> & DataTableRowMods) => {\n return (\n <DataTableRow\n size={ props.size || settings.dataTable.sizes.body.row }\n columnsGap={ props.columnsGap }\n borderBottom={ props.border }\n { ...rowProps }\n key={ rowProps.rowKey }\n cx={ css.cell }\n />\n );\n }, []);\n\n const renderRow = (row: DataRowProps<TItem, TId>) => (props.renderRow ?? defaultRenderRow)({ ...row, columns });\n const rows = props.getRows?.() ?? props.rows ?? [];\n\n const renderNoResultsBlock = React.useCallback(() => {\n return (\n <div className={ css.noResults }>\n {props.renderNoResultsBlock ? (\n props.renderNoResultsBlock?.()\n ) : (\n <>\n <IconContainer cx={ css.icon } icon={ settings.dataTable.icons.emptyTable } />\n <Text cx={ css.title } fontSize=\"24\" lineHeight=\"30\" color=\"primary\" fontWeight=\"600\">\n {i18n.tables.noResultsBlock.title}\n </Text>\n <Text fontSize=\"16\" lineHeight=\"24\" color=\"primary\">\n {i18n.tables.noResultsBlock.message}\n </Text>\n </>\n )}\n </div>\n );\n }, [props.renderNoResultsBlock]);\n\n const onConfigurationButtonClick = React.useCallback(() => {\n const configProps = { columns: props.columns, columnsConfig: { ...config }, defaultConfig };\n\n uuiModals\n .show<ColumnsConfig>((modalProps) => {\n return (\n props.renderColumnsConfigurationModal\n ? props.renderColumnsConfigurationModal({ ...configProps, ...modalProps })\n : (\n <ColumnsConfigurationModal\n { ...modalProps }\n columns={ props.columns }\n columnGroups={ props.columnGroups }\n columnsConfig={ config }\n defaultConfig={ defaultConfig }\n />\n )\n );\n })\n .then((columnsConfig) => props.onValueChange({ ...props.value, columnsConfig }))\n .catch(() => null);\n }, [\n props.columns, config, defaultConfig, props.value, props.onValueChange, props.renderColumnsConfigurationModal,\n ]);\n\n const renderTableBody = React.useCallback(\n (params?: VirtualListRenderRowsParams) => (\n <>\n <div className={ cx(css.stickyHeader, 'uui-dt-sticky_header') } ref={ headerRef }>\n <DataTableHeaderRow\n columns={ columns }\n columnGroups={ props.columnGroups }\n onConfigButtonClick={ props.showColumnsConfig && onConfigurationButtonClick }\n selectAll={ props.selectAll }\n size={ props.headerSize || settings.dataTable.sizes.header.row }\n textCase={ props.headerTextCase }\n allowColumnsReordering={ props.allowColumnsReordering }\n allowColumnsResizing={ props.allowColumnsResizing }\n showFoldAll={ props.showFoldAll }\n value={ { ...props.value, columnsConfig: config } }\n onValueChange={ props.onValueChange }\n columnsGap={ props.columnsGap }\n cx={ uuiScrollShadows.top }\n />\n </div>\n {props.exactRowsCount !== 0 ? (\n <DataRowsContainer\n headerRef={ headerRef }\n listContainerRef={ params?.listContainerRef }\n estimatedHeight={ params?.estimatedHeight }\n offsetY={ params?.offsetY }\n renderRow={ renderRow }\n rows={ rows }\n />\n ) : (\n renderNoResultsBlock?.()\n )}\n </>\n ),\n [\n props, columns, rows, renderNoResultsBlock, onConfigurationButtonClick,\n ],\n );\n\n const classes = cx(css.root, props.cx, 'uui-dt-vars', 'uui-data_table');\n const rawProps = {\n role: 'table',\n 'aria-colcount': columns.length,\n 'aria-rowcount': props.rowsCount,\n };\n\n return (\n <DataTableSelectionProvider onCopy={ props.onCopy } rows={ rows } columns={ columns }>\n <DataTableFocusProvider dataTableFocusManager={ props.dataTableFocusManager }>\n {\n props.disableVirtualization === true\n ? (\n <ScrollBars { ...rawProps } cx={ classes }>\n { renderTableBody() }\n </ScrollBars>\n )\n : (\n <VirtualList\n value={ props.value }\n onValueChange={ props.onValueChange }\n onScroll={ props.onScroll }\n rowsCount={ props.rowsCount }\n renderRows={ renderTableBody }\n cx={ classes }\n isLoading={ props.isReloading }\n rowsSelector=\"[role=row]\"\n rawProps={ rawProps }\n />\n )\n }\n\n </DataTableFocusProvider>\n </DataTableSelectionProvider>\n );\n}\n","import * as React from 'react';\nimport cx from 'classnames';\nimport type { IDisableable, IDropdownTogglerProps, IHasCX } from '@epam/uui-core';\nimport { isEventTargetInsideClickable, uuiElement, uuiMarkers, uuiMod } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport type { FiltersPanelProps } from './FiltersPanel';\nimport {\n UUI_FILTERS_PANEL_ITEM_TOGGLER, UUI_FILTERS_PANEL_ITEM_TOGGLER_POSTFIX,\n UUI_FILTERS_PANEL_ITEM_TOGGLER_SELECTION, UUI_FILTERS_PANEL_ITEM_TOGGLER_TITLE,\n} from './constants';\nimport { settings } from '../../settings';\n\nimport css from './FilterPanelItemToggler.module.scss';\n\nimport type { JSX } from 'react';\n\nexport interface FilterToolbarItemTogglerProps extends IDropdownTogglerProps, IDisableable, IHasCX, Pick<FiltersPanelProps<any>, 'size'> {\n selection?: React.ReactNode[];\n postfix?: string | null | JSX.Element;\n title?: string;\n maxWidth?: number;\n predicateName: string | null;\n}\n\nexport const FilterPanelItemToggler = React.forwardRef<HTMLDivElement, FilterToolbarItemTogglerProps>((props, ref) => {\n const togglerPickerOpened = (e: React.MouseEvent<HTMLDivElement>) => {\n if (props.isDisabled) return;\n e.preventDefault();\n !isEventTargetInsideClickable(e) && props.onClick?.();\n };\n\n const onKeyDownHandler = (e: React.KeyboardEvent<HTMLElement>) => {\n if (props.isDisabled) return;\n\n if (e.key === 'Enter' && !props.isOpen) {\n e.preventDefault();\n props.toggleDropdownOpening(true);\n }\n\n if (e.key === 'Escape' && props.isOpen) {\n e.preventDefault();\n props.toggleDropdownOpening(false);\n }\n };\n\n const getTitle = props.predicateName ? `${props.title} ${props.predicateName}` : `${props.title}${props.selection ? ':' : ''}`;\n\n const getSelectionText = () => props.selection.map((i, index) => (\n <React.Fragment key={ `${i}${index}` }>\n <div className={ cx(css.selection, UUI_FILTERS_PANEL_ITEM_TOGGLER_SELECTION) }>{ i }</div>\n { (props.postfix || index !== props.selection.length - 1) && <span>, </span> }\n </React.Fragment>\n ));\n\n return (\n <div\n style={ { maxWidth: `${props.maxWidth ? props.maxWidth + 'px' : 'auto'}` } }\n role=\"button\"\n tabIndex= { props.isDisabled ? -1 : 0 }\n onKeyDown={ onKeyDownHandler }\n className={ cx(\n UUI_FILTERS_PANEL_ITEM_TOGGLER,\n css.root,\n uuiElement.inputBox,\n uuiMarkers.clickable,\n props.isOpen && uuiMod.opened,\n props.selection?.length > 0 && uuiMarkers.hasValue,\n `uui-size-${props.size || settings.pickerInput.sizes.toggler.default}`,\n props.cx,\n ) }\n onClick={ togglerPickerOpened }\n ref={ ref }\n >\n <div className={ css.titleWrapper }>\n <div className={ cx(css.title, UUI_FILTERS_PANEL_ITEM_TOGGLER_TITLE) }>{getTitle}</div>\n {\n props.selection && (\n <div className={ css.textWrapper }>\n { getSelectionText() }\n {props.postfix && (\n <div className={ cx(css.postfix, UUI_FILTERS_PANEL_ITEM_TOGGLER_POSTFIX) }>\n {props.postfix}\n </div>\n )}\n </div>\n )\n }\n </div>\n {!props.isDisabled && <IconContainer icon={ settings.filtersPanel.icons.itemDropdownIcon } flipY={ props.isOpen } cx=\"uui-icon-dropdown\" />}\n </div>\n );\n});\n","import { FilterPredicate, IFilterPredicate } from '@epam/uui-core';\n\ntype defaultPredicateName = 'numeric' | 'multiPicker' | 'rangeDatePicker';\n\nexport const defaultPredicates: Record<defaultPredicateName, IFilterPredicate[]> = {\n numeric: [\n { predicate: 'eq', name: '=', isDefault: true }, { predicate: 'neq', name: '≠' }, { predicate: 'lte', name: '≤' }, { predicate: 'gte', name: '≥' }, { predicate: 'inRange', name: 'In Range' },\n ],\n multiPicker: [{ predicate: 'in', name: 'is', isDefault: true }, { predicate: 'nin', name: 'is not' }],\n rangeDatePicker: [{ predicate: 'inRange', name: 'In Range', isDefault: true }, { predicate: 'notInRange', name: 'Not in Range' }],\n};\n\nexport const getDefaultPredicate = (predicates: IFilterPredicate[], value: unknown): keyof FilterPredicate<any> => {\n if (!predicates) {\n return null;\n }\n return (Object.keys(value || {})[0] as keyof FilterPredicate<any>)\n || predicates.find((i) => i.isDefault)?.predicate\n || predicates?.[0].predicate as keyof FilterPredicate<any>;\n};\n","import * as React from 'react';\nimport type { DropdownBodyProps, PickerFilterConfig, PickerInputBaseProps, DataSourceState } from '@epam/uui-core';\nimport { isMobile, usePrevious } from '@epam/uui-core';\nimport { handleDataSourceKeyboard, usePickerApi, useShowSelected } from '@epam/uui-components';\nimport { DataPickerBody, DataPickerFooter } from '../pickers';\nimport { settings } from '../../settings';\nimport { useState } from 'react';\nimport { UUI_FILTERS_PANEL_BODY_FOOTER } from './constants';\n\nconst pickerHeight = 300;\n\ntype FilterPickerBodyProps<TItem, TId> = DropdownBodyProps & PickerInputBaseProps<TItem, TId> & PickerFilterConfig<any> & {\n showSearch?: boolean;\n};\n\nexport function FilterPickerBody<TItem, TId>({\n highlightSearchMatches = true,\n ...restProps\n}: FilterPickerBodyProps<TItem, TId>) {\n const props = { ...restProps, highlightSearchMatches };\n\n const [dsState, setDsState] = useState<DataSourceState>({\n focusedIndex: 0,\n topIndex: 0,\n visibleCount: 20,\n checked: [],\n });\n\n const { showSelected, setShowSelected } = useShowSelected({ dataSourceState: dsState });\n\n const {\n view,\n getName,\n dataSourceState,\n getListProps,\n handleDataSourceValueChange,\n clearSelection,\n } = usePickerApi<TItem, TId>({ ...props, dataSourceState: dsState, setDataSourceState: setDsState, showSelectedOnly: showSelected });\n\n const prevValue = usePrevious(props.value);\n const prevOpened = usePrevious(props.isOpen);\n\n React.useLayoutEffect(() => {\n if (prevOpened === props.isOpen && props.isOpen\n && prevValue !== props.value && props.value !== props.emptyValue\n && props.selectionMode === 'single'\n ) {\n props.onClose();\n }\n }, [props.value]);\n\n const renderFooter = () => {\n const footerProps = {\n view,\n showSelected: {\n value: showSelected,\n onValueChange: setShowSelected,\n },\n clearSelection,\n selectionMode: props.selectionMode,\n selection: props.value,\n search: dataSourceState.search,\n disableClear: props.disableClear,\n };\n\n return props.renderFooter\n ? props.renderFooter(footerProps)\n : <DataPickerFooter { ...footerProps } cx={ UUI_FILTERS_PANEL_BODY_FOOTER } size={ settings.pickerInput.sizes.body.row } />;\n };\n\n const renderBody = () => {\n const rows = view.getVisibleRows();\n const maxHeight = isMobile() ? document.documentElement.clientHeight : props.maxBodyHeight || pickerHeight;\n const maxWidth = isMobile() ? undefined : 360;\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLElement>) => handleDataSourceKeyboard({\n value: dataSourceState,\n onValueChange: handleDataSourceValueChange,\n listView: view,\n searchPosition: 'body',\n rows,\n }, e);\n\n return (\n <>\n <DataPickerBody\n { ...getListProps() }\n selectionMode={ props.selectionMode }\n rows={ rows }\n maxHeight={ maxHeight }\n maxWidth={ maxWidth }\n searchSize={ settings.pickerInput.sizes.body.row }\n showSearch={ props.showSearch ?? true }\n getName={ getName }\n value={ dataSourceState }\n onValueChange={ handleDataSourceValueChange }\n renderRow={ props.renderRow }\n onKeyDown={ onKeyDown }\n minCharsToSearch={ props.minCharsToSearch }\n searchDebounceDelay={ props.searchDebounceDelay }\n rawProps={ props.rawProps?.body }\n highlightSearchMatches={ props.highlightSearchMatches }\n flattenSearchResults={ view.getConfig().flattenSearchResults }\n autoFocusSearch={ false }\n />\n {renderFooter()}\n </>\n );\n };\n\n return renderBody();\n}\n","import React from 'react';\nimport { FlexRow, FlexSpacer, FlexCell } from '../layout';\nimport { LinkButton } from '../buttons';\nimport { Text } from '../typography';\nimport { i18n } from '../../i18n';\nimport { uuiDayjs } from '../../helpers/dayJsHelper';\nimport { FilterDatePickerBodyFooterProps } from '@epam/uui-core';\nimport './FilterDatePickerBodyFooter.module.scss';\n\nconst UUI_FILTERS_PANEL_DTP_FOOTER = 'uui-filters-panel-dtp-footer';\n\nexport function FilterDatePickerBodyFooter({ value, onValueChange }: FilterDatePickerBodyFooterProps) {\n return (\n <FlexCell alignSelf=\"stretch\">\n <FlexRow cx={ UUI_FILTERS_PANEL_DTP_FOOTER }>\n <Text>{value ? uuiDayjs.dayjs(value).format('MMM DD, YYYY') : ''}</Text>\n <FlexSpacer />\n <LinkButton\n isDisabled={ !value }\n caption={ i18n.filterToolbar.datePicker.clearCaption }\n onClick={ () => onValueChange(undefined) }\n />\n </FlexRow>\n </FlexCell>\n );\n}\n","import React, { Fragment } from 'react';\nimport { IDropdownBodyProps, useUuiContext, FilterDatePickerBodyFooterProps, DatePickerFilterConfig } from '@epam/uui-core';\nimport { FlexRow } from '../layout';\nimport { DatePickerProps } from '../datePickers';\nimport { DatePickerBody } from '../datePickers';\nimport { FilterDatePickerBodyFooter } from './FilterDatePickerBodyFooter';\n\n/**\n * Represents the properties of the FiterDatePicker\n */\nexport interface FilterDatePickerProps extends\n Omit<DatePickerProps, 'renderFooter'>, IDropdownBodyProps, Pick<DatePickerFilterConfig<any>, 'renderFooter'> {}\n\nexport function FilterDatePickerBody(props: FilterDatePickerProps) {\n const { value } = props;\n const context = useUuiContext();\n\n const handleValueChange = (newValue: string | null) => {\n props.onValueChange(newValue);\n\n if (props.getValueChangeAnalyticsEvent) {\n const event = props.getValueChangeAnalyticsEvent(newValue, value);\n context.uuiAnalytics.sendEvent(event);\n }\n if (newValue) {\n props.onClose?.();\n }\n };\n\n const handleBodyChange = (newValue: string) => {\n if (newValue && value !== newValue) {\n handleValueChange(newValue);\n }\n };\n\n function renderFooter() {\n const footerProps: FilterDatePickerBodyFooterProps = {\n value,\n onValueChange: handleValueChange,\n };\n\n return props.renderFooter ? props.renderFooter(footerProps) : <FilterDatePickerBodyFooter { ...footerProps } />;\n }\n\n return (\n <Fragment>\n <FlexRow borderBottom={ true }>\n <DatePickerBody\n filter={ props.filter }\n value={ value }\n onValueChange={ handleBodyChange }\n renderDay={ props.renderDay }\n isHoliday={ props.isHoliday }\n rawProps={ props.rawProps?.body }\n />\n </FlexRow>\n { renderFooter() }\n </Fragment>\n );\n}\n","import React from 'react';\nimport { FlexRow, FlexSpacer, FlexCell } from '../layout';\nimport { i18n } from '../../i18n';\nimport { FilterRangeDatePickerBodyFooterProps } from '@epam/uui-core';\nimport { RangeDatePickerInput } from '../datePickers';\nimport { settings } from '../../settings';\nimport { LinkButton } from '../buttons';\nimport './FilterRangeDatePickerBodyFooter.module.scss';\n\nconst UUI_FILTERS_PANEL_RDTP_FOOTER = 'uui-filters-panel-rdtp-footer';\n\nexport function FilterRangeDatePickerBodyFooter(props: FilterRangeDatePickerBodyFooterProps) {\n const shouldShowClearButton = (!props.preventEmptyToDate || !props.preventEmptyFromDate) && !props.disableClear;\n\n return (\n <FlexCell alignSelf=\"stretch\">\n <FlexRow\n cx={ UUI_FILTERS_PANEL_RDTP_FOOTER }\n >\n <RangeDatePickerInput\n size={ settings.filtersPanel.sizes.rangeDatePickerInput }\n disableClear={ props.disableClear }\n inFocus={ props.inFocus }\n format={ props.format }\n value={ props.value }\n onValueChange={ props.onValueChange }\n onFocusInput={ (event, inputType) => {\n if (props.onFocus) {\n props.onFocus(event, inputType);\n }\n props.setInFocus(inputType);\n } }\n onBlurInput={ props.onBlur }\n preventEmptyFromDate={ props.preventEmptyFromDate }\n preventEmptyToDate={ props.preventEmptyToDate }\n />\n <FlexSpacer />\n { shouldShowClearButton && (\n <LinkButton\n isDisabled={ !props.value.from && !props.value.to }\n caption={ i18n.filterToolbar.rangeDatePicker.clearCaption }\n onClick={ props.onClear }\n />\n ) }\n </FlexRow>\n </FlexCell>\n );\n}\n","import React, { Fragment, useState } from 'react';\nimport { IDropdownBodyProps, useUuiContext, RangeDatePickerInputType, RangeDatePickerValue, RangeDatePickerFilterConfig } from '@epam/uui-core';\nimport { FlexRow } from '../layout';\nimport { defaultFormat, defaultRangeValue } from '../datePickers/helpers';\nimport type {\n RangeDatePickerBodyValue, RangeDatePickerProps,\n} from '../datePickers';\nimport { RangeDatePickerBody } from '../datePickers';\nimport { FilterRangeDatePickerBodyFooter } from './FilterRangeDatePickerBodyFooter';\n\nexport interface FilterRangeDatePickerProps extends\n Omit<RangeDatePickerProps, 'renderFooter'>, IDropdownBodyProps, Pick<RangeDatePickerFilterConfig<any>, 'renderFooter'> {}\n\nexport function FilterRangeDatePickerBody(props: FilterRangeDatePickerProps) {\n const { value: _value, format = defaultFormat } = props;\n const value = _value || defaultRangeValue; // also handles null in comparison to default value\n const context = useUuiContext();\n\n const onOpenChange = (newIsOpen: boolean) => {\n if (!newIsOpen) {\n props.onClose?.();\n }\n props.onOpenChange?.(newIsOpen);\n };\n\n const [inFocus, setInFocus] = useState<RangeDatePickerInputType>('from');\n\n const onValueChange = (newValue: RangeDatePickerValue) => {\n const fromChanged = value?.from !== newValue?.from;\n const toChanged = value?.to !== newValue?.to;\n if (fromChanged || toChanged) {\n props.onValueChange(newValue);\n if (props.getValueChangeAnalyticsEvent) {\n const event = props.getValueChangeAnalyticsEvent(newValue, value);\n context.uuiAnalytics.sendEvent(event);\n }\n }\n };\n\n const onBodyValueChange = (newValue: RangeDatePickerBodyValue<RangeDatePickerValue>) => {\n setInFocus(newValue.inFocus ?? inFocus);\n onValueChange(newValue.selectedDate);\n\n const toChanged = value.to !== newValue.selectedDate.to;\n const closeBody = newValue.selectedDate.from && newValue.selectedDate.to\n && inFocus === 'to'\n && toChanged;\n\n if (closeBody) {\n onOpenChange(false);\n }\n };\n\n const onClear = () => {\n const newValue = {\n from: props.preventEmptyFromDate ? value.from : null,\n to: props.preventEmptyToDate ? value.to : null,\n };\n\n onValueChange(newValue);\n };\n\n function renderFooter() {\n const footerProps = {\n value,\n onValueChange,\n format: format,\n disableClear: props.disableClear,\n preventEmptyFromDate: props.preventEmptyFromDate,\n preventEmptyToDate: props.preventEmptyToDate,\n onFocus: props.onFocus,\n onBlur: props.onBlur,\n inFocus,\n setInFocus,\n onClear,\n };\n\n return props.renderFooter ? props.renderFooter(footerProps) : <FilterRangeDatePickerBodyFooter { ...footerProps } />;\n }\n\n return (\n <Fragment>\n <FlexRow borderBottom={ true }>\n <RangeDatePickerBody\n value={ {\n selectedDate: value,\n inFocus,\n } }\n onValueChange={ onBodyValueChange }\n filter={ props.filter }\n presets={ props.presets }\n />\n </FlexRow>\n { renderFooter() }\n </Fragment>\n );\n}\n","import React from 'react';\nimport { DropdownBodyProps, isMobile } from '@epam/uui-core';\nimport { FlexSpacer } from '@epam/uui-components';\nimport { NumericInput } from '../inputs';\nimport { FlexCell, FlexRow } from '../layout';\nimport { LinkButton } from '../buttons';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './FilterNumericBody.module.scss';\n\ninterface INumericRangeValue {\n /**\n * Defines range value 'from'\n */\n from: number | null;\n /**\n * Defines range value 'to'\n */\n to: number | null;\n}\n\ninterface IFilterNumericBodyProps extends DropdownBodyProps {\n /**\n * Called when numeric body value needs to be changed\n */\n onValueChange: (value: number | INumericRangeValue) => void;\n /**\n * Defines numeric body value\n */\n value: undefined | number | INumericRangeValue;\n /**\n * Defines the selected predicate\n */\n selectedPredicate?: string;\n}\n\nexport function FilterNumericBody(props: IFilterNumericBodyProps) {\n const isInRangePredicate = props?.selectedPredicate === 'inRange' || props?.selectedPredicate === 'notInRange';\n const isWrongRange = (from: number | undefined, to: number | undefined) => {\n if (!to && to !== 0) return false;\n return from > to;\n };\n\n const rangeValueHandler = (type: 'from' | 'to') => (val: number) => {\n const value = props.value as INumericRangeValue;\n switch (type) {\n case 'from': {\n props.onValueChange({\n from: val,\n to: value?.to ?? null,\n });\n break;\n }\n case 'to': {\n props.onValueChange({\n from: value?.from ?? null,\n to: val,\n });\n break;\n }\n }\n };\n\n const renderFooter = () => {\n const clearSelection = () => {\n if (isInRangePredicate) {\n props.onValueChange({\n from: undefined,\n to: undefined,\n });\n } else {\n props.onValueChange(undefined);\n }\n };\n\n const isClearDisabled = typeof props.value !== 'number' && typeof props.value !== 'object';\n\n return (\n <FlexRow padding=\"12\">\n <FlexSpacer />\n <FlexCell width=\"auto\" alignSelf=\"center\">\n <LinkButton\n isDisabled={ isClearDisabled }\n size={ settings.filtersPanel.sizes[isMobile() ? 'mobileFooterLinkButton' : 'footerLinkButton'] }\n caption={ i18n.pickerInput.clearSelectionButtonSingle }\n onClick={ clearSelection }\n />\n </FlexCell>\n </FlexRow>\n );\n };\n\n if (isInRangePredicate) {\n const value = props.value as INumericRangeValue;\n return (\n <div>\n <FlexRow\n padding=\"12\"\n alignItems=\"center\"\n columnGap=\"12\"\n borderBottom={ true }\n cx={ css.container }\n >\n <FlexCell width=\"100%\">\n <NumericInput\n size={ settings.filtersPanel.sizes.default }\n value={ value?.from ?? null }\n onValueChange={ rangeValueHandler('from') }\n placeholder=\"Min\"\n formatOptions={ { maximumFractionDigits: 2 } }\n />\n </FlexCell>\n <FlexCell width=\"100%\">\n <NumericInput\n size={ settings.filtersPanel.sizes.default }\n value={ value?.to ?? null }\n onValueChange={ rangeValueHandler('to') }\n placeholder=\"Max\"\n formatOptions={ { maximumFractionDigits: 2 } }\n isInvalid={ isWrongRange(value?.from, value?.to) }\n />\n </FlexCell>\n </FlexRow>\n {renderFooter()}\n </div>\n );\n }\n\n return (\n <div>\n <FlexRow\n padding=\"12\"\n alignItems=\"center\"\n borderBottom={ true }\n cx={ css.container }\n >\n <FlexCell width={ 130 }>\n <NumericInput\n size={ settings.filtersPanel.sizes.default }\n value={ typeof props.value === 'number' ? props.value : null }\n onValueChange={ props.onValueChange }\n placeholder=\"Enter a number\"\n formatOptions={ { maximumFractionDigits: 2 } }\n />\n </FlexCell>\n </FlexRow>\n {renderFooter()}\n </div>\n );\n}\n","import React from 'react';\nimport { IFilterItemBodyProps } from '@epam/uui-core';\nimport { FilterPickerBody } from './FilterPickerBody';\nimport { FilterDatePickerBody } from './FilterDatePickerBody';\nimport { FilterRangeDatePickerBody } from './FilterRangeDatePickerBody';\nimport { FilterNumericBody } from './FilterNumericBody';\n\nexport function FilterItemBody(props: IFilterItemBodyProps<any>) {\n switch (props.type) {\n case 'singlePicker':\n return <FilterPickerBody { ...props } selectionMode=\"single\" valueType=\"id\" />;\n case 'numeric':\n return <FilterNumericBody { ...props } />;\n case 'multiPicker':\n return <FilterPickerBody { ...props } selectionMode=\"multi\" valueType=\"id\" />;\n case 'datePicker':\n return <FilterDatePickerBody { ...props } format={ props.format || 'DD/MM/YYYY' } />;\n case 'rangeDatePicker':\n return <FilterRangeDatePickerBody { ...props } format={ props.format || 'DD/MM/YYYY' } value={ props.value || { from: null, to: null } } />;\n case 'custom':\n return props.render(props);\n }\n}\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { Middleware, offset } from '@floating-ui/react';\nimport { DropdownBodyProps, TableFiltersConfig, IDropdownToggler, IEditable,\n isMobile, FilterPredicateName, getSeparatedValue, DataRowProps, PickerFilterConfig,\n useForceUpdate, IDataSource, DataSourceState, mobilePositioning,\n} from '@epam/uui-core';\nimport { Dropdown } from '@epam/uui-components';\nimport cx from 'classnames';\nimport { uuiDayjs } from '../../helpers/dayJsHelper';\nimport { i18n } from '../../i18n';\nimport { FilterPanelItemToggler } from './FilterPanelItemToggler';\nimport { LinkButton } from '../buttons';\nimport { settings } from '../../settings';\nimport { FilterPredicatePanel } from './FilterPredicatePanel';\nimport { getDefaultPredicate } from './defaultPredicates';\nimport { getValue } from './helpers/predicateHelpers';\nimport { PickerBodyMobileView } from '../pickers';\nimport { UUI_FILTERS_PANEL_ITEM_BODY } from './constants';\nimport { FilterItemBody } from './FilterItemBody';\nimport { DropdownContainer } from '../overlays';\nimport css from './FiltersPanelItem.module.scss';\n\nexport type FiltersToolbarItemProps = TableFiltersConfig<any> &\nIEditable<any> & {\n autoFocus?: boolean;\n removeFilter?: (field: any) => void;\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\nfunction useView(props: FiltersToolbarItemProps, value: any) {\n const forceUpdate = useForceUpdate();\n\n let useViewFn: IDataSource<any, any, any>['useView'];\n const dataSourceState: DataSourceState = {};\n if (props.type === 'singlePicker' || props.type === 'multiPicker') {\n useViewFn = props.dataSource.useView.bind(props.dataSource);\n if (props.type === 'singlePicker') {\n dataSourceState.selectedId = value;\n }\n\n if (props.type === 'multiPicker') {\n dataSourceState.checked = value;\n }\n }\n\n return useViewFn?.(dataSourceState, forceUpdate, { showSelectedOnly: true });\n}\n\nfunction FiltersToolbarItemImpl(props: FiltersToolbarItemProps) {\n const { maxCount = 2 } = props;\n const isPickersType = props?.type === 'multiPicker' || props?.type === 'singlePicker';\n const isMobileScreen = isMobile();\n const hideHeaderTitle = isPickersType && isMobileScreen;\n\n const floatingMiddleware: Middleware[] = useMemo(() => {\n const middleware: Middleware[] = [\n offset(() => {\n return isPickersType && isMobileScreen ? 0 : 6;\n }),\n ];\n\n if (isPickersType && isMobileScreen) {\n middleware.push(mobilePositioning);\n }\n\n return middleware;\n }, [isPickersType]);\n\n const [isOpen, isOpenChange] = useState(props.autoFocus);\n const [predicate, setPredicate] = useState<FilterPredicateName>(getDefaultPredicate(props.predicates, props.value));\n\n const predicateName: string = React.useMemo(\n () => predicate && props.predicates.find((p) => p.predicate === predicate).name,\n [predicate],\n );\n\n const onValueChange = (value: any) => {\n if (props.predicates) {\n props.onValueChange({ [predicate]: value });\n } else {\n props.onValueChange(value);\n }\n };\n\n useEffect(() => {\n // This effect needs when the filter dropdown was closed and opened again\n if (props.predicates && props.value && Object.keys(props.value).length > 0) {\n const predicateFromValue = Object.keys(props.value)[0];\n if (predicateFromValue !== predicate) {\n setPredicate(predicateFromValue as FilterPredicateName);\n }\n }\n }, [props.value]);\n\n const removeOnclickHandler = () => {\n props.removeFilter(props.field);\n };\n\n const renderHeader = (hideTitle: boolean) => (\n <div className={ cx(css.header, isPickersType && (props.showSearch ?? css.withSearch)) }>\n {props.predicates ? (\n <FilterPredicatePanel\n predicates={ props.predicates }\n predicate={ predicate }\n type={ props.type }\n onValueChange={ props.onValueChange }\n value={ props.value }\n setPredicate={ setPredicate }\n />\n ) : (\n !hideTitle && (\n <div className={ css.title }>\n {props.title}\n </div>\n )\n )}\n {!props?.isAlwaysVisible && (\n <LinkButton\n cx={ css.removeButton }\n caption={ i18n.filterToolbar.datePicker.removeCaption }\n onClick={ removeOnclickHandler }\n size={ settings.filtersPanel.sizes.pickerBodyLinkButton }\n icon={ settings.filtersPanel.icons.pickerBodyRemoveIcon }\n />\n )}\n </div>\n );\n\n const renderBody = (dropdownProps: DropdownBodyProps) => {\n return isPickersType ? (\n <PickerBodyMobileView\n { ...dropdownProps }\n cx={ [css.body, UUI_FILTERS_PANEL_ITEM_BODY] }\n title={ props.title }\n width={ settings.filtersPanel.sizes.pickerBodyMinWidth }\n onClose={ () => isOpenChange(false) }\n >\n { renderHeader(hideHeaderTitle) }\n <FilterItemBody\n { ...props }\n { ...dropdownProps }\n selectedPredicate={ predicate }\n value={ getValue(predicate, props.value) }\n onValueChange={ onValueChange }\n />\n </PickerBodyMobileView>\n ) : (\n <DropdownContainer cx={ [css.body, UUI_FILTERS_PANEL_ITEM_BODY] } { ...dropdownProps }>\n { renderHeader(hideHeaderTitle) }\n <FilterItemBody\n { ...props }\n { ...dropdownProps }\n selectedPredicate={ predicate }\n value={ getValue(predicate, props.value) }\n onValueChange={ onValueChange }\n />\n </DropdownContainer>\n );\n };\n\n const getPickerItemName = (item: DataRowProps<any, any>, config: PickerFilterConfig<any>) => {\n if (item.isLoading) {\n return settings.filtersPanel.renderPlaceholder();\n }\n\n if (item.isUnknown) {\n return 'Unknown';\n }\n\n return config.getName ? config.getName(item.value) : item.value.name;\n };\n\n const view = useView(props, getValue(predicate, props.value));\n\n const getTogglerValue = () => {\n const currentValue = getValue(predicate, props.value);\n const defaultFormat = 'MMM DD, YYYY';\n\n switch (props.type) {\n case 'multiPicker': {\n let isLoading = false;\n const selection = currentValue\n ? currentValue?.slice(0, maxCount).map((i: any) => {\n const item = view.getById(i, null);\n isLoading = item?.isLoading;\n return getPickerItemName(item, props);\n })\n : currentValue;\n\n const postfix = (!isLoading && currentValue?.length > maxCount) ? ` +${(currentValue.length - maxCount).toString()} ${i18n.filterToolbar.pickerInput.itemsPlaceholder}` : null;\n return { selection, postfix };\n }\n case 'numeric': {\n const isRangePredicate = predicate === 'inRange' || predicate === 'notInRange';\n const decimalFormat = (val: number) => getSeparatedValue(val, { maximumFractionDigits: 2 });\n if ((isRangePredicate && !currentValue) || (!isRangePredicate && !currentValue && currentValue !== 0)) {\n return { selection: undefined };\n }\n const selection = isRangePredicate\n ? `${!currentValue?.from && currentValue?.from !== 0 ? 'Min' : decimalFormat(currentValue?.from)} - ${\n !currentValue?.to && currentValue?.to !== 0 ? 'Max' : decimalFormat(currentValue?.to)\n }`\n : `${!currentValue && currentValue !== 0 ? 'ALL' : decimalFormat(currentValue)}`;\n return { selection: [selection] };\n }\n case 'singlePicker': {\n if (currentValue === null || currentValue === undefined) {\n return { selection: undefined };\n }\n\n const item = view.getById(currentValue, null);\n const selection = getPickerItemName(item, props);\n\n return { selection: [selection] };\n }\n case 'datePicker': {\n return { selection: currentValue ? [uuiDayjs.dayjs(currentValue).format(props.format || defaultFormat)] : currentValue };\n }\n case 'rangeDatePicker': {\n if (!currentValue || (!currentValue.from && !currentValue.to)) {\n return { selection: undefined };\n }\n const currentValueFrom = currentValue?.from\n ? uuiDayjs.dayjs(currentValue?.from).format(props.format || defaultFormat)\n : i18n.filterToolbar.rangeDatePicker.emptyPlaceholderFrom;\n const currentValueTo = currentValue?.to\n ? uuiDayjs.dayjs(currentValue?.to).format(props.format || defaultFormat)\n : i18n.filterToolbar.rangeDatePicker.emptyPlaceholderTo;\n const selection = `${currentValueFrom} - ${currentValueTo}`;\n return { selection: [selection] };\n }\n case 'custom': {\n const value = props.getTogglerValue(props);\n return { selection: value !== undefined ? [value] : undefined };\n }\n }\n };\n\n const getTogglerWidth = () => {\n if (props.togglerWidth) return props.togglerWidth;\n\n return props.type === 'datePicker' || props.type === 'rangeDatePicker' ? null : 300;\n };\n\n const renderTarget = (dropdownProps: IDropdownToggler) => (\n <FilterPanelItemToggler\n { ...dropdownProps }\n { ...getTogglerValue() }\n title={ props.title }\n predicateName={ props.value ? predicateName : null }\n maxWidth={ getTogglerWidth() }\n size={ props.size }\n />\n );\n\n return (\n <Dropdown\n renderTarget={ renderTarget }\n renderBody={ renderBody }\n closeBodyOnTogglerHidden={ !isMobile() }\n value={ isOpen }\n onValueChange={ isOpenChange }\n middleware={ floatingMiddleware }\n />\n );\n}\n\nexport const FiltersPanelItem = React.memo(FiltersToolbarItemImpl);\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { i18n } from '../../i18n';\nimport { Button } from '../buttons';\nimport { PickerInput, DataPickerRow } from '../pickers';\nimport type { DataRowOptions, TableFiltersConfig, FiltersConfig,\n DataTableState, PickerInputElement, Overwrite } from '@epam/uui-core';\nimport { getOrderBetween, useArrayDataSource, orderBy } from '@epam/uui-core';\nimport { PickerTogglerProps, FlexCell } from '@epam/uui-components';\nimport { FiltersPanelItem } from './FiltersPanelItem';\nimport { UUI_FILTERS_PANEL_ADD_BUTTON, UUI_FILTERS_PANEL_ADD_BUTTON_BODY } from './constants';\nimport { settings } from '../../settings';\nimport { normalizeFilterWithPredicates } from './helpers/predicateHelpers';\n\nexport interface FiltersPanelModsOverride {}\n\ninterface FiltersPanelMods {\n /**\n * Defines size(height) of FilterPanel and filters togglers\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n}\n\nexport interface FiltersPanelProps<TFilter> extends\n Overwrite<FiltersPanelMods, FiltersPanelModsOverride> {\n /** Filters config to get data how to render filters */\n filters: TableFiltersConfig<TFilter>[];\n /** Current state value of the table(list) */\n tableState: DataTableState;\n /** Called when state needs to be changed */\n setTableState: (newState: DataTableState) => void;\n}\n\nfunction FiltersToolbarImpl<TFilter extends object>(props: FiltersPanelProps<TFilter>) {\n const { filters, tableState, setTableState, size = (settings.filtersPanel.sizes.default) } = props;\n const [newFilterId, setNewFilterId] = useState(null);\n\n const pickerInputRef = useRef<PickerInputElement>(null);\n\n const dataSource = useArrayDataSource(\n {\n items: filters,\n getId: (item) => item.field,\n },\n [],\n );\n\n const onFiltersChange = (updatedFilters: TableFiltersConfig<TFilter>[]) => {\n const newConfig: FiltersConfig = {};\n const newFilter: any = {};\n\n const filtersConfig = Object.values(tableState.filtersConfig ?? {});\n const sortedOrders = orderBy(filtersConfig, ({ order }) => order);\n let lastItemOrder: string | null = sortedOrders?.length ? sortedOrders[sortedOrders.length - 1]?.order : null;\n\n updatedFilters.forEach((filter) => {\n let order = tableState?.filtersConfig?.[filter?.field]?.order;\n if (!order) {\n order = getOrderBetween(lastItemOrder, null);\n lastItemOrder = order;\n }\n\n newConfig[filter.field] = { isVisible: true, order: order };\n\n // Remove unselected filters from filter object\n if (tableState.filter) {\n newFilter[filter.field] = tableState.filter[filter.field];\n }\n });\n\n setTableState({\n ...tableState,\n filtersConfig: newConfig,\n filter: newFilter,\n });\n };\n\n const handleFilterChange = (newFilter: TFilter, field: string | number | symbol) => {\n const filter = normalizeFilterWithPredicates({ ...tableState.filter, [field]: newFilter });\n setTableState({\n ...tableState,\n filter: filter,\n });\n };\n\n const removeFilter = (field: any) => {\n const filterConfig = { ...tableState.filtersConfig };\n delete filterConfig[field];\n const filter = { ...tableState.filter };\n delete filter[field];\n\n const newTableState: DataTableState = {\n ...tableState,\n filtersConfig: filterConfig,\n filter: filter,\n };\n setTableState({ ...newTableState });\n };\n\n const selectedFilters = useMemo(() => {\n const filtersConfig = tableState.filtersConfig || {};\n return filters.filter((filter) => {\n return filter.isAlwaysVisible || (filtersConfig[filter?.field] ? filtersConfig[filter?.field].isVisible : false);\n });\n }, [tableState.filtersConfig, filters]);\n\n const sortedActiveFilters = useMemo(() => {\n return orderBy(selectedFilters, (f) => tableState.filtersConfig?.[f.field]?.order);\n }, [filters, tableState.filtersConfig]);\n\n const renderAddFilterToggler = useCallback((togglerProps: PickerTogglerProps) => {\n return (\n <Button\n size={ size }\n onClick={ togglerProps.onClick }\n ref={ togglerProps.ref }\n caption={ i18n.filterToolbar.addCaption }\n icon={ settings.filtersPanel.icons.addFilterIcon }\n iconPosition=\"left\"\n fill=\"ghost\"\n color=\"primary\"\n cx={ UUI_FILTERS_PANEL_ADD_BUTTON }\n />\n );\n }, []);\n\n const getRowOptions = useCallback(\n (item: TableFiltersConfig<TFilter>): DataRowOptions<TableFiltersConfig<TFilter>, keyof TFilter> => ({\n isDisabled: item.isAlwaysVisible,\n checkbox: {\n isVisible: true,\n isDisabled: item.isAlwaysVisible,\n },\n\n }),\n [],\n );\n\n const isAllFiltersAlwaysVisible = props.filters.every((i) => i.isAlwaysVisible);\n\n useEffect(() => {\n if (sortedActiveFilters.length && newFilterId && sortedActiveFilters.find(({ field }) => field === newFilterId)) {\n // PickerInput should be closed after filterId update and opening the filter's body.\n // Otherwise, the focus will be not set in the search input of the filter's body.\n pickerInputRef.current?.closePickerBody?.();\n\n // Reset new filter id, after first render with autofocus\n setNewFilterId(null);\n }\n }, [newFilterId, sortedActiveFilters]);\n\n return (\n <>\n {sortedActiveFilters.map((f) => (\n <FlexCell width=\"auto\" key={ f.field as string }>\n <FiltersPanelItem\n { ...f }\n value={ tableState.filter?.[f.field] }\n onValueChange={ (newFilter: TFilter) => handleFilterChange(newFilter, f.field) }\n key={ f.field as string }\n autoFocus={ newFilterId === f.field }\n removeFilter={ removeFilter }\n size={ size }\n />\n </FlexCell>\n ))}\n {!isAllFiltersAlwaysVisible && (\n <PickerInput\n dataSource={ dataSource }\n value={ selectedFilters }\n onValueChange={ onFiltersChange }\n selectionMode=\"multi\"\n valueType=\"entity\"\n renderRow={ (props) => (\n <DataPickerRow\n { ...props }\n padding=\"12\"\n key={ props.key }\n onCheck={ (row) => {\n props.onCheck && props.onCheck(row);\n setNewFilterId(row.value.field);\n } }\n />\n ) }\n getName={ (i) => i.title }\n renderToggler={ renderAddFilterToggler }\n emptyValue={ [] }\n getRowOptions={ getRowOptions }\n fixedBodyPosition={ true }\n size={ size }\n bodyCx={ UUI_FILTERS_PANEL_ADD_BUTTON_BODY }\n ref={ pickerInputRef }\n />\n )}\n </>\n );\n}\n\nexport const FiltersPanel = React.memo(FiltersToolbarImpl) as typeof FiltersToolbarImpl;\n","import React, { useCallback } from 'react';\nimport { offset } from '@floating-ui/react';\nimport type { IPresetsApi, IDropdownToggler, ITablePreset, DataTableState, DropdownBodyProps } from '@epam/uui-core';\nimport { useUuiContext } from '@epam/uui-core';\nimport { Dropdown, DropdownMenuBody, DropdownMenuButton, SuccessNotification, DropdownMenuSplitter } from '../../overlays';\nimport { IconButton } from '../../buttons';\nimport { settings } from '../../../settings';\n\nimport css from './PresetActionsDropdown.module.scss';\n\ninterface ITubButtonDropdownProps extends Omit<IPresetsApi, 'presets'> {\n preset: ITablePreset;\n addPreset: () => void;\n tableState: DataTableState;\n renamePreset: () => void;\n onCopyLink?: ((tableState: DataTableState) => void) | null;\n}\n\nexport function PresetActionsDropdown(props: ITubButtonDropdownProps) {\n const { uuiNotifications } = useUuiContext();\n\n const successNotificationHandler = useCallback((text: string) => {\n uuiNotifications\n .show(\n (props) => (\n <SuccessNotification { ...props }>\n <div className=\"uui-presets-panel-notification-text\">\n {text}\n </div>\n </SuccessNotification>\n ),\n { duration: 3 },\n )\n .catch(() => null);\n }, []);\n\n const copyUrlToClipboard = useCallback(async (): Promise<void> => {\n const isPresetChanged = props.activePresetId === props.preset.id && props.hasPresetChanged(props.preset);\n const preset = isPresetChanged ? { ...props.preset, ...props.tableState } : props.preset;\n const link = props.getPresetLink(preset);\n await navigator.clipboard.writeText(link);\n successNotificationHandler('Link copied!');\n }, [props.activePresetId, props.preset, props.hasPresetChanged, props.getPresetLink, props.tableState]);\n\n const onCopyLink = props.onCopyLink ? props.onCopyLink : copyUrlToClipboard;\n\n const saveInCurrent = useCallback(\n async (preset: ITablePreset) => {\n const newPreset: ITablePreset = {\n ...preset,\n filter: props.tableState.filter,\n sorting: props.tableState.sorting,\n columnsConfig: props.tableState.columnsConfig,\n filtersConfig: props.tableState.filtersConfig,\n viewState: props.tableState.viewState,\n };\n await props.updatePreset(newPreset);\n successNotificationHandler('Changes saved!');\n },\n [\n props.tableState.filter, props.tableState.columnsConfig, props.tableState.filtersConfig,\n ],\n );\n\n const saveInCurrentHandler = useCallback(() => {\n saveInCurrent(props.preset);\n }, [props.preset]);\n\n const discardAllChangesHandler = useCallback(() => {\n props.choosePreset(props.preset);\n }, [props.preset]);\n\n const duplicateHandler = useCallback(() => {\n props.duplicatePreset(props.preset);\n }, [props.preset]);\n\n const deleteHandler = useCallback(async () => {\n await props.deletePreset(props.preset);\n }, [\n props.activePresetId, props.deletePreset, props.preset,\n ]);\n\n const renderBody = (dropdownProps: DropdownBodyProps): React.ReactNode => {\n const isReadonlyPreset = props.preset.isReadonly;\n const isPresetChanged = props.activePresetId === props.preset.id && props.hasPresetChanged(props.preset);\n const isRenameAvailable = props.preset.id === props.activePresetId && !isReadonlyPreset;\n\n return (\n <DropdownMenuBody { ...dropdownProps }>\n { isPresetChanged && (\n <>\n {!isReadonlyPreset && (\n <DropdownMenuButton\n key={ `${props.preset.id}-save-in-current` }\n icon={ settings.presetsPanel.icons.saveInCurrentIcon }\n caption=\"Save in current\"\n onClick={ () => { dropdownProps.onClose(); saveInCurrentHandler(); } }\n />\n )}\n <DropdownMenuButton\n key={ `${props.preset.id}-save-as-new` }\n icon={ settings.presetsPanel.icons.saveAsNewIcon }\n caption=\"Save as new\"\n // We add setTimeout to call addPreset after dropdown will be closed, since dropdown has focus lock, and it broke autofocus on add new preset input\n onClick={ () => { dropdownProps.onClose(); setTimeout(() => props.addPreset(), 0); } }\n />\n <DropdownMenuButton\n key={ `${props.preset.id}-discard` }\n icon={ settings.presetsPanel.icons.discardChangesIcon }\n caption=\"Discard all changes\"\n onClick={ () => { dropdownProps.onClose(); discardAllChangesHandler(); } }\n />\n <DropdownMenuSplitter key=\"discard-splitter\" />\n </>\n )}\n { isRenameAvailable && (\n <DropdownMenuButton\n key={ `${props.preset.id}-rename` }\n icon={ settings.presetsPanel.icons.renameIcon }\n caption=\"Rename\"\n onClick={ props.renamePreset }\n />\n )}\n { !isPresetChanged && (\n <DropdownMenuButton\n key={ `${props.preset.id}-duplicate` }\n icon={ settings.presetsPanel.icons.copyIcon }\n caption=\"Duplicate\"\n onClick={ () => { dropdownProps.onClose(); duplicateHandler(); } }\n />\n )}\n {props.onCopyLink !== null && (\n <DropdownMenuButton\n key={ `${props.preset.id}-copyLink` }\n icon={ settings.presetsPanel.icons.copyLinkIcon }\n caption=\"Copy Link\"\n onClick={ onCopyLink }\n />\n )}\n {!isReadonlyPreset && (\n <>\n <DropdownMenuSplitter key=\"delete-splitter\" />\n <DropdownMenuButton\n icon={ settings.presetsPanel.icons.deleteIcon }\n caption=\"Delete\"\n cx={ css.deleteButton }\n onClick={ deleteHandler }\n />\n </>\n )}\n </DropdownMenuBody>\n );\n };\n\n const renderTarget = useCallback((dropdownProps: IDropdownToggler) => {\n return (\n <IconButton\n cx={ [css.tabButton, dropdownProps.isOpen && css.targetOpen] }\n color={ props.preset.id === props.activePresetId ? 'primary' : 'neutral' }\n { ...dropdownProps }\n icon={ settings.presetsPanel.icons.menuIcon }\n size={ settings.presetsPanel.sizes.dropdownTargetIconButton }\n />\n );\n }, []);\n\n return (\n <Dropdown renderBody={ renderBody } renderTarget={ renderTarget } placement=\"bottom-end\" middleware={ [offset(22)] } />\n );\n}\n","export const UUI_PRESETS_PANEL_ADD_BUTTON = 'uui-presets-panel-add-button';\nexport const UUI_PRESETS_PANEL_MORE_BUTTON = 'uui-presets-panel-more-button';\nexport const UUI_PRESETS_PANEL_INPUT = 'uui-presets-panel-input';\nexport const UUI_PRESETS_PANEL_PRESET = 'uui-presets-panel-preset';\n","import React, { useCallback, useState } from 'react';\nimport type { ITablePreset } from '@epam/uui-core';\nimport { TextInput } from '../../inputs';\nimport { FlexCell } from '../../layout';\nimport { UUI_PRESETS_PANEL_INPUT } from './constants';\n\nimport css from './PresetInput.module.scss';\n\ninterface IPresetInputProps {\n onCancel: () => void;\n onSuccess?: (name: string) => Promise<any>;\n preset?: ITablePreset;\n}\n\nexport function PresetInput(props: IPresetInputProps) {\n const [presetCaption, setPresetCaption] = useState(props.preset?.name || '');\n const [readonly, setReadonly] = useState(false);\n\n const cancelActionHandler = useCallback(() => {\n setPresetCaption('');\n props.onCancel();\n }, [props.onCancel]);\n\n const acceptActionHandler = useCallback(async () => {\n setReadonly(() => true);\n if (presetCaption) {\n await props.onSuccess(presetCaption);\n }\n props.onCancel();\n setReadonly(() => false);\n }, [presetCaption]);\n\n const newPresetOnBlurHandler = useCallback(() => {\n if (presetCaption.length) {\n return;\n }\n props.onCancel();\n }, [presetCaption.length, props.onCancel]);\n\n return (\n <FlexCell cx={ [css.presetInputCell, UUI_PRESETS_PANEL_INPUT] } minWidth={ 180 }>\n <TextInput\n cx={ css.presetInput }\n onValueChange={ setPresetCaption }\n value={ presetCaption }\n onCancel={ cancelActionHandler }\n onAccept={ acceptActionHandler }\n onBlur={ newPresetOnBlurHandler }\n autoFocus\n maxLength={ 50 }\n isReadonly={ readonly }\n />\n </FlexCell>\n );\n}\n","import React, { useCallback, useState } from 'react';\nimport type { DataTableState, IPresetsApi, ITablePreset } from '@epam/uui-core';\nimport { TabButton } from '../../buttons';\nimport { PresetActionsDropdown } from './PresetActionsDropdown';\nimport { PresetInput } from './PresetInput';\nimport { FlexCell } from '../../layout';\nimport { UUI_PRESETS_PANEL_PRESET } from './constants';\nimport { settings } from '../../../settings';\n\nimport css from './Preset.module.scss';\n\ninterface IPresetProps extends Omit<IPresetsApi, 'presets'> {\n preset: ITablePreset;\n addPreset: () => void;\n tableState: DataTableState;\n onCopyLink?: ((tableState: DataTableState) => void) | null;\n}\n\nexport function Preset(props: IPresetProps) {\n const [isRenamePreset, setIsRenamePreset] = useState<Boolean>(false);\n const choosePresetHandler = useCallback(() => props.choosePreset(props.preset), [props]);\n\n const cancelRenamePreset = useCallback(() => {\n setIsRenamePreset(() => false);\n }, []);\n\n const setPresetForRename = useCallback(() => {\n if (!isRenamePreset) {\n setIsRenamePreset(() => true);\n }\n }, []);\n\n const handlePresetRename = useCallback(\n (name: string) => {\n const newPreset: ITablePreset = {\n ...props.preset,\n name: name,\n };\n return props.updatePreset(newPreset);\n },\n [props.preset],\n );\n\n const isPresetActive = props.activePresetId === props.preset.id;\n\n const PresetActionsDropdownComponent = useCallback(\n () => <PresetActionsDropdown renamePreset={ setPresetForRename } { ...props } />,\n [props.preset, props.tableState, props.activePresetId],\n );\n\n return (\n <FlexCell key={ props.preset.id } alignSelf=\"center\" width=\"auto\">\n {isRenamePreset ? (\n <PresetInput\n onCancel={ cancelRenamePreset }\n onSuccess={ handlePresetRename }\n preset={ props.preset }\n />\n ) : (\n <TabButton\n caption={ props.preset.name }\n onClick={ !isPresetActive && choosePresetHandler }\n cx={ [css.preset, isPresetActive && css.activePreset, UUI_PRESETS_PANEL_PRESET] }\n size={ settings.presetsPanel.sizes.tabButton }\n withNotify={ isPresetActive && props.hasPresetChanged(props.preset) }\n icon={ PresetActionsDropdownComponent }\n iconPosition=\"right\"\n isActive={ isPresetActive }\n />\n )}\n </FlexCell>\n );\n}\n","import React, { useCallback, useState } from 'react';\nimport { i18n } from '../../../i18n';\nimport type { DataTableState, IHasRawProps, IPresetsApi, ITablePreset } from '@epam/uui-core';\nimport { orderBy } from '@epam/uui-core';\nimport type { AdaptiveItemProps } from '@epam/uui-components';\nimport { AdaptivePanel } from '@epam/uui-components';\nimport { Button } from '../../buttons';\nimport { FlexCell, FlexRow, ScrollBars } from '../../layout';\nimport { Dropdown, DropdownMenuBody, DropdownMenuButton } from '../../overlays';\nimport { Preset } from './Preset';\nimport { PresetInput } from './PresetInput';\nimport { UUI_PRESETS_PANEL_ADD_BUTTON, UUI_PRESETS_PANEL_MORE_BUTTON } from './constants';\nimport { settings } from '../../../settings';\n\nimport css from './PresetsPanel.module.scss';\n\nexport interface PresetsPanelProps extends IPresetsApi, IHasRawProps<React.HTMLAttributes<HTMLDivElement>> {\n /** Current state value of the table(list) */\n tableState: DataTableState;\n /** Optional: custom logic for Copy Link action, if null, \"Copy Link\" button will be hidden */\n onCopyLink?: ((tableState: DataTableState) => void) | null;\n}\n\ntype PresetAdaptiveItem = AdaptiveItemProps<{ preset?: ITablePreset }>;\n\nexport function PresetsPanel(props: PresetsPanelProps) {\n const [isAddingPreset, setIsAddingPreset] = useState(false);\n\n const setAddingPreset = useCallback(() => {\n setIsAddingPreset(true);\n }, []);\n\n const cancelAddingPreset = useCallback(() => {\n setIsAddingPreset(false);\n }, []);\n\n const { presets, ...presetApi } = props;\n\n const renderPreset = (preset: ITablePreset) => {\n return <Preset key={ preset.id } preset={ preset } addPreset={ setAddingPreset } { ...presetApi } />;\n };\n\n const renderAddPresetButton = useCallback(() => {\n return (\n <div key=\"addingPresetBlock\" className={ css.addPresetContainer }>\n {!isAddingPreset ? (\n <Button\n cx={ UUI_PRESETS_PANEL_ADD_BUTTON }\n onClick={ setAddingPreset }\n caption={ i18n.presetPanel.addCaption }\n icon={ settings.presetsPanel.icons.addIcon }\n iconPosition=\"left\"\n fill=\"ghost\"\n color=\"primary\"\n />\n ) : (\n <PresetInput\n onCancel={ cancelAddingPreset }\n onSuccess={ props.createNewPreset }\n />\n )}\n </div>\n );\n }, [isAddingPreset]);\n\n const onPresetDropdownSelect = (preset: PresetAdaptiveItem) => {\n props.choosePreset(preset.preset);\n };\n\n const renderMoreButtonDropdown = (item: PresetAdaptiveItem, hiddenItems: PresetAdaptiveItem[]) => {\n return (\n <Dropdown\n key=\"more\"\n renderTarget={ (props) => (\n <FlexRow>\n <div className={ css.divider } />\n <Button\n cx={ UUI_PRESETS_PANEL_MORE_BUTTON }\n fill=\"ghost\"\n color=\"secondary\"\n caption={ `${hiddenItems?.length || ''} more` }\n { ...props }\n />\n </FlexRow>\n ) }\n renderBody={ (propsBody) => (\n <DropdownMenuBody minWidth={ 230 } maxHeight={ 300 } { ...propsBody }>\n <ScrollBars>\n {hiddenItems.map((hiddenItem) => (\n <DropdownMenuButton\n key={ hiddenItem.preset.id }\n onClick={ () => onPresetDropdownSelect(hiddenItem) }\n caption={ hiddenItem.preset.name }\n icon={ !hiddenItem.preset.isReadonly && settings.presetsPanel.icons.deleteIcon }\n iconPosition=\"right\"\n cx={ css.dropdownDeleteIcon }\n onIconClick={ !hiddenItem.preset.isReadonly && (() => props.deletePreset(hiddenItem.preset)) }\n />\n ))}\n </ScrollBars>\n </DropdownMenuBody>\n ) }\n />\n );\n };\n\n const getPresetPriority = (preset: ITablePreset, index: number) => {\n return preset.id === props.activePresetId ? 100499 : 1000 - index;\n };\n\n const getPanelItems = (): PresetAdaptiveItem[] => {\n return [\n ...orderBy(props.presets, ({ order }) => order)\n .map((preset, index) => ({\n id: preset.id.toString(),\n render: () => renderPreset(preset),\n priority: getPresetPriority(preset, index),\n preset: preset,\n })),\n {\n id: 'collapsedContainer', render: renderMoreButtonDropdown, priority: 100501, collapsedContainer: true,\n },\n { id: 'addPreset', render: renderAddPresetButton, priority: 100501 },\n ];\n };\n\n return (\n <FlexCell grow={ 1 } minWidth={ 310 } rawProps={ props.rawProps }>\n <FlexRow size={ null } columnGap=\"12\" cx={ css.presetsWrapper }>\n <AdaptivePanel items={ getPanelItems() } />\n </FlexRow>\n </FlexCell>\n );\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M2 5h20v2H2V5zm0 12h15v2H2v-2zm0-6h20v2H2v-2z\"/></svg>","import { withMods } from '@epam/uui-core';\nimport cx from 'classnames';\nimport { Burger as uuiBurger, BurgerProps } from '@epam/uui-components';\nimport css from './Burger.module.scss';\nimport { ReactComponent as BurgerIcon } from '@epam/assets/icons/navigation-open_side_menu-outline.svg';\nimport { ReactComponent as CrossIcon } from '@epam/assets/icons/navigation-close-outline.svg';\n\nfunction applyBurgerMods() {\n return [cx(css.root, 'uui-burger')];\n}\n\nexport const Burger = withMods<BurgerProps, BurgerProps>(uuiBurger, applyBurgerMods, () => ({\n burgerIcon: BurgerIcon,\n crossIcon: CrossIcon,\n burgerContentCx: css.burgerContent,\n}));\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M7 10l5 5 5-5H7z\" clip-rule=\"evenodd\"/></svg>","import React from 'react';\nimport { IHasIcon, IDropdownToggler, ICanBeActive, useIsActive, uuiMod } from '@epam/uui-core';\nimport { Button, ButtonProps } from '@epam/uui-components';\nimport { ReactComponent as SvgTriangle } from '@epam/assets/icons/navigation-arrow_down-outline.svg';\nimport css from './BurgerButton.module.scss';\n\ninterface BurgerButtonMods extends IHasIcon, IDropdownToggler {\n /*\n * Defines component type.\n */\n type?: 'primary' | 'secondary';\n /*\n * Defines components' indent.\n */\n indentLevel?: number;\n}\n\nexport type BurgerButtonProps = ButtonProps & BurgerButtonMods & ICanBeActive;\n\nfunction applyBurgerButtonMods(props: BurgerButtonProps) {\n return [\n css.root,\n 'uui-main_menu-burger-button',\n css['button-' + (props.type || 'primary')],\n css['indent-' + (props.indentLevel || 0)],\n props.isActive && uuiMod.active,\n props.isDropdown && css.dropdown,\n props.icon && css.hasIcon,\n ];\n}\n\nexport const BurgerButton = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, BurgerButtonProps>((props, ref) => {\n const { isActive } = useIsActive({\n isLinkActive: props.isLinkActive,\n link: props.link,\n isActive: props.isActive,\n });\n\n return (\n <Button\n { ...props }\n ref={ ref }\n cx={ applyBurgerButtonMods({ ...props, isActive }) }\n rawProps={ {\n ...props.rawProps,\n role: 'menuitem',\n } }\n dropdownIcon={ SvgTriangle }\n />\n );\n});\n","import * as React from 'react';\nimport { TextInput, TextInputProps } from '@epam/uui-components';\nimport { ReactComponent as LensIcon } from '@epam/assets/icons/action-search-outline.svg';\nimport { ReactComponent as CancelIcon } from '@epam/assets/icons/navigation-close-outline.svg';\nimport css from './BurgerSearch.module.scss';\nimport cx from 'classnames';\n\ninterface BurgerSearchProps extends TextInputProps {}\n\nexport function BurgerSearch(props: BurgerSearchProps) {\n return (\n <TextInput\n cx={ cx(css.searchInput, 'uui-main_menu-burger-search') }\n iconPosition=\"left\"\n icon={ LensIcon }\n placeholder={ props.placeholder }\n value={ props.value }\n onValueChange={ props.onValueChange }\n onCancel={ props.onCancel }\n cancelIcon={ props.value && CancelIcon }\n />\n );\n}\n","import * as React from 'react';\nimport cx from 'classnames';\nimport css from './BurgerGroupHeader.module.scss';\n\ninterface BurgerGroupHeaderProps {\n /*\n * Defines component caption.\n */\n caption: string;\n}\n\nexport function BurgerGroupHeader(props: BurgerGroupHeaderProps) {\n return (\n <div className={ cx(css.root, css.groupHeader, 'uui-burger-group-header') }>\n <hr className={ css.line } />\n <span className={ css.groupName }>{props.caption}</span>\n </div>\n );\n}\n","import * as React from 'react';\nimport {\n IAdaptiveItem,\n ICanBeActive,\n Icon,\n IDropdownToggler,\n IHasCaption,\n IHasIcon,\n useIsActive,\n uuiElement, uuiMod,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { CountIndicator } from '../../widgets/CountIndicator';\nimport { ReactComponent as SvgTriangle } from '@epam/assets/icons/navigation-chevron_down-outline.svg';\nimport css from './MainMenuButton.module.scss';\n\ninterface MainMenuButtonMods {\n /**\n * Defines component type. The primary button leads to the main pages of the site, and the secondary to the others.\n */\n type?: 'primary' | 'secondary';\n}\n\nexport type MainMenuButtonProps = MainMenuButtonMods & IAdaptiveItem & IDropdownToggler & Omit<ClickableComponentProps, 'isDisabled'>\n& IHasIcon & IHasCaption & ICanBeActive & {\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /** Count value to be placed in component */\n count?: React.ReactNode;\n};\n\nexport const MainMenuButton = React.forwardRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement, MainMenuButtonProps>((props, ref) => {\n const { type, ...clickableProps } = props;\n\n const { isActive } = useIsActive({\n isLinkActive: props.isLinkActive,\n link: props.link,\n isActive: props.isActive,\n });\n\n return (\n <Clickable\n { ...clickableProps }\n rawProps={ {\n 'aria-expanded': props.isOpen,\n 'aria-current': isActive\n ? 'page'\n : undefined,\n ...props.rawProps,\n } }\n cx={ [\n css.root,\n css['type-' + (type || 'primary')],\n isActive && uuiMod.active,\n props.cx,\n ] }\n ref={ ref }\n >\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ props.onIconClick }\n />\n ) }\n { props.caption && (\n <div className={ uuiElement.caption }>\n { props.caption }\n </div>\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n caption={ props.count }\n color=\"neutral\"\n size=\"18\"\n />\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ props.onIconClick } />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ SvgTriangle } flipY={ props.isOpen } />\n )}\n </Clickable>\n );\n});\n","import React, { KeyboardEvent } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport cx from 'classnames';\nimport { Dropdown, MainMenuDropdownProps } from '@epam/uui-components';\nimport { MainMenuButton } from './MainMenuButton';\nimport css from './MainMenuDropdown.module.scss';\n\nexport function MainMenuDropdown(props: MainMenuDropdownProps) {\n const handleEscape = (e: KeyboardEvent<HTMLElement>, onClose: () => void, isOpen: boolean) => {\n if (e.key === 'Escape' && isOpen) {\n onClose();\n }\n };\n\n return (\n <Dropdown\n renderTarget={ (dropdownProps) => (\n <MainMenuButton\n caption={ props.caption }\n { ...dropdownProps }\n rawProps={ {\n 'aria-haspopup': 'menu',\n ...props.rawProps,\n } }\n isActive={ props.isActive }\n isDropdown\n />\n ) }\n renderBody={ (dropdownBodyProps) => (\n <FocusLock\n returnFocus\n persistentFocus\n lockProps={ {\n onKeyDown: (e: KeyboardEvent<HTMLElement>) => handleEscape(e, dropdownBodyProps.onClose, dropdownBodyProps.isOpen),\n } }\n >\n <div\n className={ cx(css.dropdownBody, 'uui-main_menu-dropdown', props.cx) }\n role=\"menu\"\n >\n {props.renderBody({ ...dropdownBodyProps })}\n </div>\n </FocusLock>\n ) }\n placement=\"bottom-start\"\n />\n );\n}\n","import css from './MainMenu.module.scss';\nimport { withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { Burger } from './Burger';\nimport { MainMenuDropdown } from './MainMenuDropdown';\n\nfunction applyMainMenuMods() {\n return [\n css.root,\n 'uui-main_menu',\n ];\n}\n\nexport type MainMenuProps = uuiComponents.MainMenuProps;\n\nexport const MainMenu = withMods<uuiComponents.MainMenuProps, MainMenuProps>(\n uuiComponents.MainMenu,\n applyMainMenuMods,\n (props) => ({\n Burger,\n MainMenuDropdown,\n ...props,\n }),\n);\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M12 10.85a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm-10.666 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333-6a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm-10.666 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333 12a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm-10.666 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666z\" clip-rule=\"evenodd\"/></svg>","import * as React from 'react';\nimport cx from 'classnames';\nimport { IAdaptiveItem, IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport { ReactComponent as GlobalMenuIcon } from '@epam/assets/icons/navigation-global_menu-outline-outline.svg';\nimport css from './GlobalMenu.module.scss';\n\n/** Represents the properties of the GlobalMenu component. */\nexport interface GlobalMenuProps extends IAdaptiveItem, IHasCX, IHasRawProps<React.HTMLAttributes<HTMLButtonElement>> {}\n\nexport const GlobalMenu = React.forwardRef<HTMLButtonElement, GlobalMenuProps>((props, ref) => (\n <button ref={ ref } id=\"global_menu_toggle\" className={ cx(css.globalMenuBtn, props.cx) } { ...props.rawProps }>\n <IconContainer size={ 36 } icon={ GlobalMenuIcon } cx={ css.globalMenuIcon } />\n </button>\n));\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IAdaptiveItem, IDropdownToggler, Icon, IHasCX, uuiMarkers, IClickable, IHasRawProps } from '@epam/uui-core';\nimport { IconContainer, Avatar } from '@epam/uui-components';\nimport { ReactComponent as FoldingArrow } from '@epam/assets/icons/navigation-chevron_down-outline.svg';\nimport css from './MainMenuAvatar.module.scss';\n\n/** Represents the properties of the MainMenuAvatar component. */\nexport interface MainMenuAvatarProps extends IClickable, IAdaptiveItem, IDropdownToggler, IHasCX, IHasRawProps<React.ButtonHTMLAttributes<HTMLButtonElement>> {\n avatarUrl?: string;\n icon?: Icon;\n}\n\nexport const MainMenuAvatar = React.forwardRef<HTMLButtonElement, MainMenuAvatarProps>((props, ref) => (\n <button\n ref={ ref }\n className={ cx(css.container, props.isDropdown && css.dropdown, props.isOpen && css.open, props.onClick && uuiMarkers.clickable, props.cx) }\n onClick={ props.onClick }\n { ...props.rawProps }\n >\n <Avatar size=\"36\" img={ props.avatarUrl } />\n {props.icon && <IconContainer icon={ props.icon } />}\n {props.isDropdown && (\n <div>\n <IconContainer size={ 18 } icon={ FoldingArrow } flipY={ props.isOpen } cx={ css.foldingArrow } />\n </div>\n )}\n </button>\n));\n","import * as React from 'react';\nimport { TextInputProps, TextInput } from '@epam/uui-components';\nimport { ReactComponent as LensIcon } from '@epam/assets/icons/action-search-outline.svg';\nimport { ReactComponent as CancelIcon } from '@epam/assets/icons/navigation-close-outline.svg';\nimport { cx, IAdaptiveItem, IEditableDebouncer } from '@epam/uui-core';\nimport css from './MainMenuSearch.module.scss';\n\n/** Represents the properties of the MainMenuSearch component. */\nexport interface MainMenuSearchProps extends TextInputProps, IAdaptiveItem {}\n\nexport const MainMenuSearch = React.forwardRef<HTMLInputElement, MainMenuSearchProps>((props, ref) => (\n <IEditableDebouncer\n { ...props }\n render={ (iEditable) => (\n <TextInput\n iconPosition=\"left\"\n icon={ LensIcon }\n cancelIcon={ props.value?.length > 0 && CancelIcon }\n { ...props }\n { ...iEditable }\n ref={ ref }\n cx={ cx(css.searchInput, props.cx) }\n { ...props.rawProps }\n />\n ) }\n />\n));\n","import * as React from 'react';\nimport { Icon, IAdaptiveItem, cx } from '@epam/uui-core';\nimport { ButtonProps } from '@epam/uui-components';\nimport { IconButton } from '../../buttons';\nimport css from './MainMenuIcon.module.scss';\n\n/** Represents the properties of the MainMenuIcon component. */\nexport type MainMenuIconProps = ButtonProps & IAdaptiveItem & {\n /*\n * Defines component icon.\n */\n icon: Icon;\n};\n\nexport const MainMenuIcon = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, MainMenuIconProps>((props, ref) => (\n <IconButton ref={ ref } icon={ props.icon } cx={ cx(props.cx, css.container) } { ...props } />\n));\n","import { Anchor as uuiAnchor, AnchorProps } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport css from './Anchor.module.scss';\n\nexport const Anchor = withMods<AnchorProps, AnchorProps>(uuiAnchor, () => [css.root]);\n","import * as React from 'react';\nimport {\n Form as UuiForm, FormProps, useUuiContext, INotification,\n} from '@epam/uui-core';\nimport { Text, RichTextView } from '../typography';\nimport { ConfirmationModal, WarningNotification } from '../overlays';\nimport { i18n } from '../../i18n';\n\nexport function Form<T>(props: FormProps<T>) {\n const context = useUuiContext();\n\n const beforeLeave = React.useCallback((): Promise<boolean> => {\n return context.uuiModals.show<boolean>((modalProps) => <ConfirmationModal caption={ i18n.form.modals.beforeLeaveMessage } { ...modalProps } />);\n }, [context.uuiModals]);\n\n const loadUnsavedChanges = (): Promise<void> => {\n return context.uuiNotifications\n .show(\n (props: INotification) => (\n <WarningNotification\n { ...props }\n actions={ [\n {\n name: i18n.form.notifications.actionButtonCaption,\n action: props.onSuccess,\n },\n ] }\n >\n <RichTextView>\n <Text>{i18n.form.notifications.unsavedChangesMessage}</Text>\n </RichTextView>\n </WarningNotification>\n ),\n { duration: 5, position: 'bot-left' },\n );\n };\n\n return <UuiForm<T> loadUnsavedChanges={ loadUnsavedChanges } beforeLeave={ beforeLeave } { ...props } />;\n}\n","import React, { useCallback } from 'react';\nimport {\n useUuiContext, UseFormProps, useForm as uuiUseForm, INotification,\n} from '@epam/uui-core';\nimport { WarningNotification } from '../overlays';\nimport { Text, RichTextView } from '../typography';\nimport { ConfirmationModal } from '../overlays/ConfirmationModal';\nimport { i18n } from '../../i18n';\n\nexport function useForm<T>(props: UseFormProps<T>) {\n const context = useUuiContext();\n\n const beforeLeave = useCallback((): Promise<boolean> => {\n return context.uuiModals.show<boolean>((modalProps) => <ConfirmationModal caption={ i18n.form.modals.beforeLeaveMessage } { ...modalProps } />);\n }, [context.uuiModals]);\n\n const loadUnsavedChanges = (): Promise<void> => {\n return context.uuiNotifications.show(\n (props: INotification) => (\n <WarningNotification\n { ...props }\n actions={ [\n {\n name: i18n.form.notifications.actionButtonCaption,\n action: props.onSuccess,\n },\n ] }\n >\n <RichTextView>\n <Text>{i18n.form.notifications.unsavedChangesMessage}</Text>\n </RichTextView>\n </WarningNotification>\n ),\n { duration: 5, position: 'bot-left' },\n );\n };\n\n return uuiUseForm({ beforeLeave, loadUnsavedChanges, ...props });\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M14 13v4h-4v-4H7l5-5 5 5m2.35-2.97A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.03A6.004 6.004 0 006 20h13a5 5 0 005-5c0-2.64-2.05-4.78-4.65-4.97z\" clip-rule=\"evenodd\"/></svg>","import * as React from 'react';\nimport { cx, IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { DropSpot as UuiDropSpot, DropSpotRenderParams, UploadFileToggler } from '@epam/uui-components';\nimport { FlexRow, IconContainer } from '../layout';\nimport { LinkButton } from '../buttons';\nimport { RichTextView, Text } from '../typography';\nimport { ReactComponent as ShapeIcon } from '@epam/assets/icons/file-cloud_upload-fill.svg';\nimport { i18n } from '../../i18n';\nimport css from './DropSpot.module.scss';\n\nexport interface DropSpotProps extends IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IHasCX {\n /**\n * Defines the infoText. InfoText is additional information that can be rendered at the bottom of the AttachmentArea.\n */\n infoText?: React.ReactNode;\n /**\n * Called when files was added to the DropSpot.\n */\n onUploadFiles(files: File[]): any;\n /**\n * Hint for expected file type in file upload controls. See {@link https://developer.mozilla.org/en-US/docs/web/html/element/input#accept} for details\n */\n accept?: string;\n /**\n * Whether to allow single or multiple values. See {@link https://developer.mozilla.org/en-US/docs/web/html/element/input#multiple} for details\n */\n single?: boolean;\n}\n\nexport function DropSpot(props: DropSpotProps) {\n const getInfoText = typeof props.infoText === 'string'\n ? (\n <Text lineHeight=\"24\" size=\"24\" fontSize=\"14\" color=\"tertiary\">\n {props.infoText}\n </Text>\n ) : props?.infoText;\n\n const renderAttachmentArea = (params: DropSpotRenderParams) => {\n return (\n <div className={ cx(css.root, props.cx, params.isDragStart && css.dropStart, params.isDraggingOver && css.dropOver) } { ...props.rawProps }>\n <div { ...params.eventHandlers } className={ css.dropArea }>\n <FlexRow size=\"24\">\n <IconContainer icon={ ShapeIcon } cx={ css.iconBlue } />\n <Text lineHeight=\"24\" size=\"24\" fontSize=\"14\" cx={ css.dropCaption }>\n {i18n.fileUpload.labelStart}\n </Text>\n <UploadFileToggler\n onFilesAdded={ props.onUploadFiles }\n render={ (props) => (\n <RichTextView>\n <LinkButton caption={ i18n.fileUpload.browse } { ...props } cx={ css.link } />\n </RichTextView>\n ) }\n accept={ props.accept }\n single={ props.single }\n />\n </FlexRow>\n {getInfoText}\n </div>\n </div>\n );\n };\n\n return <UuiDropSpot render={ renderAttachmentArea } onFilesDropped={ props.onUploadFiles } />;\n}\n","import * as React from 'react';\nimport { IHasCX, IHasRawProps } from '@epam/uui-core';\nimport css from './SvgCircleProgress.module.scss';\n\ninterface SvgCircleProgressProps extends IHasCX, IHasRawProps<React.SVGAttributes<SVGSVGElement>> {\n /*\n * Defines component size.\n */\n size: number;\n /*\n * Defines progress in numbers.\n */\n progress: number;\n}\n\nexport const SvgCircleProgress = React.forwardRef<SVGSVGElement, SvgCircleProgressProps>((props, ref) => {\n const outsetRadius = props.size / 2 - 1;\n const insetRadius = props.size / 2 - 3;\n const circumference = insetRadius * Math.PI;\n\n return (\n <svg className={ css.root } width={ props.size } height={ props.size } ref={ ref } { ...props.rawProps }>\n <circle\n strokeDasharray={ circumference }\n strokeDashoffset={ circumference - (props.progress / 100) * circumference }\n strokeWidth={ insetRadius }\n fill=\"transparent\"\n r={ insetRadius / 2 }\n cx={ props.size / 2 }\n cy={ props.size / 2 }\n />\n <circle\n strokeWidth={ 1 }\n fill=\"transparent\"\n r={ outsetRadius }\n cx={ props.size / 2 }\n cy={ props.size / 2 }\n />\n </svg>\n );\n});\n","import * as React from 'react';\nimport { i18n } from '../../i18n';\nimport { cx, FileUploadResponse, formatBytes, IClickable, IHasCX, uuiMod } from '@epam/uui-core';\nimport { SvgCircleProgress } from './SvgCircleProgress';\nimport { IconContainer } from '@epam/uui-components';\nimport { FlexCell, FlexRow } from '../layout';\nimport { IconButton } from '../buttons';\nimport { Text } from '../typography';\nimport { Tooltip } from '../overlays';\nimport { settings } from '../../settings';\n\nimport css from './FileCard.module.scss';\n\nexport interface FileCardItem extends Partial<File & FileUploadResponse> {\n /**\n * Defines upload progress. It should be numbered value in range from 0 to 100', where 100 means that file fully loaded.\n */\n progress?: number;\n /**\n * Callback to handle aborted event which fired when a request has been aborted.\n * See {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort_event} for details\n */\n abortXHR?: () => void;\n}\n\nexport interface FileCardProps extends IClickable, IHasCX {\n /** Defines file card item */\n file: FileCardItem;\n /**\n * Defines card width\n * @default '100%'\n */\n width?: number;\n}\n\nexport const FileCard = React.forwardRef<HTMLDivElement, FileCardProps>((props, ref) => {\n const [isLoadingShow, setIsLoadingShow] = React.useState<boolean>(true);\n\n const { file } = props;\n\n const getIcon = (extension: string) => {\n switch (extension) {\n case 'doc':\n case 'docx':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.docIcon } cx={ css.docColor } />;\n case 'xls':\n case 'xlsx':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.exelIcon } cx={ css.xlsColor } />;\n case 'pdf':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.pdfIcon } cx={ css.pdfColor } />;\n case 'gif':\n case 'jpg':\n case 'jpeg':\n case 'svg':\n case 'png':\n case 'webp':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.imgIcon } cx={ css.imgColor } />;\n case 'avi':\n case 'mov':\n case 'mp4':\n case 'wmw':\n case 'mkv':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.videoIcon } cx={ css.movColor } />;\n case 'csv':\n case 'xml':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.tableIcon } cx={ css.defaultColor } />;\n case 'rtf':\n case 'txt':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.textIcon } cx={ css.defaultColor } />;\n case 'eml':\n case 'emlx':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.mailIcon } cx={ css.defaultColor } />;\n default:\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.fileIcon } cx={ css.defaultColor } />;\n }\n };\n\n const {\n cx: componentCx,\n width,\n file: {\n progress, size, name, extension, error, abortXHR,\n },\n onClick,\n } = props;\n const fileExtension = extension || name?.split('.').pop();\n const fileName = name?.split('.').slice(0, -1).join('');\n const isLoading = progress < 100;\n const isCrossShow = ((!isLoadingShow && isLoading) || !isLoading) && onClick;\n\n const mouseLeaveHandler = (e: React.MouseEvent) => {\n e.stopPropagation();\n setIsLoadingShow(() => true);\n };\n\n const mouseEnterHandler = (e: React.MouseEvent) => {\n e.stopPropagation();\n setIsLoadingShow(() => false);\n };\n\n const renderErrorContent = () => (\n <Tooltip\n content={ file.error.message }\n placement=\"bottom-start\"\n >\n <div\n className={ css.errorBlock }\n aria-description={ file.error.message }\n aria-label=\"File Upload Error\"\n >\n <IconContainer icon={ settings.fileCard.icons.errorIcon } size={ 12 } />\n {i18n.fileCard.failedUploadErrorMessage}\n </div>\n </Tooltip>\n );\n\n const renderSuccessfulContent = () => (\n <Text size=\"none\" fontSize=\"14\" lineHeight=\"18\" color=\"tertiary\">\n {fileExtension && `${fileExtension.toUpperCase()}, `}\n {isLoading && formatBytes((size / 100) * progress, 2, false) + i18n.fileCard.fileSizeProgress}\n {formatBytes(size)}\n </Text>\n );\n\n const removeHandler = () => {\n progress && progress < 100 && abortXHR();\n onClick();\n };\n\n return (\n <FlexCell\n ref={ ref }\n cx={ cx(css.root, 'uui-file_card', (isLoading || error?.isError) && uuiMod.loading, componentCx, error?.isError && uuiMod.error) }\n minWidth={ width }\n width={ !width ? '100%' : undefined }\n >\n <FlexRow alignItems=\"top\" columnGap=\"6\">\n {fileExtension && getIcon(fileExtension)}\n <FlexCell width=\"100%\">\n <Text size=\"none\" fontSize=\"14\" lineHeight=\"18\" color={ (progress < 100 || error?.isError) ? 'tertiary' : 'primary' } cx={ css.fileName }>\n {fileName}\n </Text>\n {error?.isError ? renderErrorContent() : renderSuccessfulContent()}\n </FlexCell>\n <div className={ cx(css.iconsBlock) } onMouseEnter={ mouseEnterHandler } onMouseLeave={ mouseLeaveHandler }>\n {isLoadingShow && isLoading && <SvgCircleProgress progress={ progress } size={ 18 } />}\n {isCrossShow && <IconButton icon={ settings.fileCard.icons.closeIcon } onClick={ removeHandler } />}\n </div>\n </FlexRow>\n </FlexCell>\n );\n});\n","import { ApiRecoveryReason } from '@epam/uui-core';\nimport { i18n } from '../../i18n';\n\nexport const getRecoveryMessageConfig: () => Record<ApiRecoveryReason, { title: string; subtitle: string }> = () => ({\n 'auth-lost': i18n.errorHandler.recoveryMessageConfig['auth-lost'],\n 'connection-lost': i18n.errorHandler.recoveryMessageConfig['connection-lost'],\n maintenance: i18n.errorHandler.recoveryMessageConfig.maintenance,\n 'server-overload': i18n.errorHandler.recoveryMessageConfig['server-overload'],\n});\n\nexport const getErrorPageConfig = () => ({\n notFound: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/404.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/404.svg',\n title: i18n.errorHandler.errorPageConfig.notFound.title,\n subtitle: i18n.errorHandler.errorPageConfig.notFound.subtitle,\n },\n permissionDenied: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/403.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/403.svg',\n title: i18n.errorHandler.errorPageConfig.permissionDenied.title,\n subtitle: i18n.errorHandler.errorPageConfig.permissionDenied.subtitle,\n },\n serverError: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/500.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/500.svg',\n title: i18n.errorHandler.errorPageConfig.serverError.title,\n subtitle: i18n.errorHandler.errorPageConfig.serverError.subtitle,\n supportLink: i18n.errorHandler.supportMessage,\n },\n serviceUnavailable: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/503.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/503.svg',\n title: i18n.errorHandler.errorPageConfig.serviceUnavailable.title,\n subtitle: i18n.errorHandler.errorPageConfig.serviceUnavailable.subtitle,\n supportLink: i18n.errorHandler.supportMessage,\n },\n default: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/Something went wrong.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/Something went wrong.svg',\n title: i18n.errorHandler.errorPageConfig.default.title,\n subtitle: i18n.errorHandler.errorPageConfig.default.subtitle,\n supportLink: i18n.errorHandler.supportMessage,\n },\n});\n","import React from 'react';\nimport { IHasCX, isMobile, cx, ErrorPageInfo } from '@epam/uui-core';\nimport css from './ErrorPage.module.scss';\n\ninterface ErrorPageProps extends ErrorPageInfo, IHasCX {}\n\nexport const ErrorPage: React.FC<ErrorPageProps> = (props) => {\n const isMobileScreen = isMobile();\n\n return (\n <div className={ cx(css.container, props.cx) }>\n <div className={ cx('uui-error-content', 'uui-typography') }>\n <img className=\"uui-error-image\" src={ isMobileScreen && props.mobileImageUrl ? props.mobileImageUrl : props.imageUrl } alt=\"ERROR OCCURRED!\" />\n <div className=\"uui-error-title\">{props.title}</div>\n <div className=\"uui-error-subtitle\">{props.subtitle}</div>\n { props?.supportLink && <div className=\"uui-error-support-link\">{props?.supportLink}</div> }\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport type { ApiCallInfo, IHasCX, INotification, UuiRecoveryErrorInfo, IHasChildren, ErrorPageInfo } from '@epam/uui-core';\nimport { useUuiContext, useUuiError, UuiError } from '@epam/uui-core';\nimport { ErrorCatch } from '@epam/uui-components';\nimport { FlexCell, FlexRow } from '../layout';\nimport { ModalWindow, ModalBlocker, ModalHeader, ErrorNotification } from '../overlays';\nimport { Anchor } from '../navigation';\nimport { Spinner } from '../widgets';\nimport { Text, RichTextView } from '../typography';\nimport { getErrorPageConfig, getRecoveryMessageConfig } from './config';\nimport { ErrorPage } from './ErrorPage';\n\nimport css from './ErrorHandler.module.scss';\n\nexport interface ErrorHandlerProps extends IHasCX, IHasChildren {\n /** Pure function to get error info for display based on error.\n * If omitted, error info from default config will be used.\n */\n getErrorInfo?: (uuiError: UuiError | Error | ApiCallInfo, defaultErrorInfo: ErrorPageInfo) => ErrorPageInfo;\n /** Callback to handle notification error.\n * If omitted, default implementation with ErrorNotification will be used.\n * */\n onNotificationError?: (errors: ApiCallInfo) => void;\n}\n\nexport function ErrorHandler(props: ErrorHandlerProps) {\n const { uuiNotifications, uuiModals, uuiApi } = useUuiContext();\n const { errorType, errorInfo } = useUuiError({\n getErrorInfo: props.getErrorInfo,\n options: { errorConfig: getErrorPageConfig(), recoveryConfig: getRecoveryMessageConfig() },\n });\n const isAuthLost = uuiApi.recoveryReason === 'auth-lost';\n\n const showNotifications = (errors: ApiCallInfo[]) => {\n errors.forEach((c) => {\n if (props.onNotificationError) {\n props.onNotificationError(c);\n } else {\n uuiNotifications.show((notificationProps: INotification) => (\n <ErrorNotification { ...notificationProps }>\n <Text>\n {c.responseData && c.responseData.errorMessage}\n </Text>\n </ErrorNotification>\n ));\n }\n c.dismissError();\n });\n };\n\n const renderRecoveryBlocker = (errorInform: UuiRecoveryErrorInfo) => {\n const { title, subtitle } = errorInform;\n\n return (\n <ModalBlocker key=\"recovery-blocker\" cx={ css.modalBlocker } isActive={ true } zIndex={ 100500 } success={ () => {} } abort={ () => {} }>\n <ModalWindow>\n <ModalHeader borderBottom title={ title } />\n <Spinner cx={ css.recoverySpinner } />\n <FlexRow cx={ css.recoveryMessage }>\n <FlexCell grow={ 1 }>\n <RichTextView>{subtitle}</RichTextView>\n { isAuthLost && (\n <Text color=\"tertiary\">\n We have redirected you to the login page, if the page didn't open, please click on this\n { ' ' }\n <Anchor href={ uuiApi.apiReloginPath } target=\"_blank\">\n link\n </Anchor>\n .\n </Text>\n ) }\n </FlexCell>\n </FlexRow>\n </ModalWindow>\n </ModalBlocker>\n );\n };\n\n const renderErrorPage = (errorInform: ErrorPageInfo) => {\n return <ErrorPage cx={ props.cx } { ...errorInform } />;\n };\n\n if (errorType === 'error') {\n uuiModals.closeAll();\n return renderErrorPage(errorInfo as ErrorPageInfo);\n }\n\n if (errorType === 'notification') {\n showNotifications(errorInfo as ApiCallInfo[]);\n }\n\n return (\n <ErrorCatch>\n {props.children}\n {errorType === 'recovery' && renderRecoveryBlocker(errorInfo as UuiRecoveryErrorInfo)}\n </ErrorCatch>\n );\n}\n"],"names":["_path","_extends","ForwardRef","_path2","css","uuiSpinner","uuiBlocker","DropdownIcon","CrossIcon","FillInfoIcon","SuccessIcon","WarningIcon","ErrorIcon","CheckIcon","PartlySelectIcon","React","EmptyTableIcon","ConfigIcon","AscSortIcon","DescSortIcon","DefaultSortIcon","FilterIcon","OpenedDropdownIcon","FoldIcon","UnfoldIcon","DragIndicatorIcon","LockIcon","PinLeftIcon","PinRightIcon","RightArrowIcon","MenuIcon","ResetIcon","LeftArrowIcon","CalendarIcon","DocIcon","ExelIcon","PdfIcon","ImgIcon","VideoIcon","TableIcon","TextIcon","MailIcon","FileIcon","AddIcon","RemoveIcon","InfoIcon","HintIcon","BoldSelectIcon","NotFoundSearchIcon","CopyIcon","CopyLinkIcon","DiscardChangesIcon","RenameIcon","SaveAsNewIcon","DotIcon","FilledStarIcon","SearchIcon","cx","uuiAvatarStack","UuiPaginator","uui","uuiRadioInput","DEFAULT_MODE","uuiTextInput","uuiControlGroup","uuiNumericInput","types.EditMode","uuiTextArea","TREE_SHAKEABLE_INIT","ArrowIcon","NumericInput","TextInput","Dropdown","uuiInputAddon","uuiSlider","uuiDropdown","Text","Anchor","uuiFlexCell","uuiModalBlocker","uuiModalWindow","uuiI18n","UuiSnackbar","uuiCalendar","defaultMode","CancelIcon","FlexCell","UuiPickerToggler","UuiDataTableCell","uuiDataTableRow","UuiDataTableHeaderCell","uuiDataTableHeaderRow","i18n","Accordion","uuiBurger","BurgerIcon","Button","SvgTriangle","LensIcon","GlobalMenuIcon","FoldingArrow","uuiAnchor","UuiForm","uuiUseForm","ShapeIcon","UuiDropSpot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["rollup://@epam/uui/./epam-assets/icons/navigation-close-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-chevron_down-outline.svg","rollup://@epam/uui/./epam-assets/icons/notification-done-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-minus-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-search-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-calendar-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-info-outline.svg","rollup://@epam/uui/./epam-assets/icons/notification-info-fill.svg","rollup://@epam/uui/./icons/pictures/empty-table.svg","rollup://@epam/uui/./epam-assets/icons/table-sort_asc-outline.svg","rollup://@epam/uui/./epam-assets/icons/table-sort_desc-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-drag_indicator-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-more_vert-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-refresh-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-lock-fill.svg","rollup://@epam/uui/./epam-assets/icons/table-group_column_left-fill.svg","rollup://@epam/uui/./epam-assets/icons/table-group_column_right-fill.svg","rollup://@epam/uui/./epam-assets/icons/table-swap-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-filtration-fill.svg","rollup://@epam/uui/./epam-assets/icons/navigation-chevron_up-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-collapse_all-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-expand_all-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-settings-fill.svg","rollup://@epam/uui/./epam-assets/icons/navigation-chevron_left-outline.svg","rollup://@epam/uui/./epam-assets/icons/navigation-chevron_right-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-add-outline.svg","rollup://@epam/uui/./epam-assets/icons/notification-done-fill.svg","rollup://@epam/uui/./epam-assets/icons/radio_dot-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-help-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-check-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-warning-fill.svg","rollup://@epam/uui/./epam-assets/icons/notification-error-fill.svg","rollup://@epam/uui/./epam-assets/icons/action-delete-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-link-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-edit-fill.svg","rollup://@epam/uui/./epam-assets/icons/action-copy_content-outline.svg","rollup://@epam/uui/./epam-assets/icons/content-edit_undo-outline.svg","rollup://@epam/uui/./epam-assets/icons/action-save-outline.svg","rollup://@epam/uui/./epam-assets/icons/file-file_word-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_excel-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_pdf-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_image-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_video-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_table-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_text-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file_eml-fill.svg","rollup://@epam/uui/./epam-assets/icons/file-file-fill.svg","rollup://@epam/uui/./icons/star-filled.svg","rollup://@epam/uui/./icons/pictures/search-with-background.svg","rollup://@epam/uui/./components/widgets/Spinner.tsx","rollup://@epam/uui/./components/typography/TextPlaceholder.tsx","rollup://@epam/uui/./components/typography/Text.tsx","rollup://@epam/uui/./components/layout/Blocker.tsx","rollup://@epam/uui/./settings.tsx","rollup://@epam/uui/./components/buttons/Button.tsx","rollup://@epam/uui/./components/buttons/IconButton.tsx","rollup://@epam/uui/./components/buttons/helper.ts","rollup://@epam/uui/./components/buttons/LinkButton.tsx","rollup://@epam/uui/./components/widgets/CountIndicator.tsx","rollup://@epam/uui/./components/buttons/TabButton.tsx","rollup://@epam/uui/./components/widgets/AvatarStack.tsx","rollup://@epam/uui/./components/widgets/Badge.tsx","rollup://@epam/uui/./components/widgets/Tag.tsx","rollup://@epam/uui/./components/widgets/Paginator.tsx","rollup://@epam/uui/./components/widgets/IndeterminateBar.tsx","rollup://@epam/uui/./components/widgets/ProgressBar.tsx","rollup://@epam/uui/./components/widgets/IndicatorBar.tsx","rollup://@epam/uui/./components/widgets/StatusIndicator.tsx","rollup://@epam/uui/./components/inputs/Checkbox.tsx","rollup://@epam/uui/./components/inputs/RadioInput.tsx","rollup://@epam/uui/./components/inputs/Switch.tsx","rollup://@epam/uui/./components/types.ts","rollup://@epam/uui/./components/inputs/TextInput.tsx","rollup://@epam/uui/./components/layout/ControlGroup.tsx","rollup://@epam/uui/./components/inputs/MultiSwitch.tsx","rollup://@epam/uui/./components/inputs/NumericInput.tsx","rollup://@epam/uui/./components/inputs/TextArea.tsx","rollup://@epam/uui/./helpers/dayJsHelper.ts","rollup://@epam/uui/./components/overlays/DropdownContainer.tsx","rollup://@epam/uui/./components/inputs/timePicker/TimePickerBody.tsx","rollup://@epam/uui/./components/inputs/timePicker/parseTimeHelper.ts","rollup://@epam/uui/./components/inputs/timePicker/TimePicker.tsx","rollup://@epam/uui/./components/inputs/InputAddon.tsx","rollup://@epam/uui/./components/inputs/Slider.tsx","rollup://@epam/uui/./components/overlays/Tooltip.tsx","rollup://@epam/uui/./components/inputs/Rating.tsx","rollup://@epam/uui/./components/widgets/DataRowAddons.tsx","rollup://@epam/uui/./components/buttons/VerticalTabButton.tsx","rollup://@epam/uui/./components/overlays/Alert.tsx","rollup://@epam/uui/./components/overlays/Dropdown.tsx","rollup://@epam/uui/./components/overlays/DropdownMenu.tsx","rollup://@epam/uui/./components/layout/Accordion.tsx","rollup://@epam/uui/./components/layout/FlexItems/FlexCell.tsx","rollup://@epam/uui/./components/layout/FlexItems/FlexRow.tsx","rollup://@epam/uui/./components/layout/FlexItems/Panel.tsx","rollup://@epam/uui/./components/layout/LabeledInput.tsx","rollup://@epam/uui/./components/layout/RadioGroup.tsx","rollup://@epam/uui/./components/layout/ScrollBars.tsx","rollup://@epam/uui/./components/layout/VirtualList.tsx","rollup://@epam/uui/./components/typography/RichTextView.tsx","rollup://@epam/uui/./components/layout/Tree.tsx","rollup://@epam/uui/./components/layout/CheckboxGroup.tsx","rollup://@epam/uui/./components/layout/Tabs.tsx","rollup://@epam/uui/./components/overlays/Modals.tsx","rollup://@epam/uui/./i18n.ts","rollup://@epam/uui/./components/overlays/NotificationCard.tsx","rollup://@epam/uui/./components/overlays/ConfirmationModal.tsx","rollup://@epam/uui/./components/overlays/Snackbar.tsx","rollup://@epam/uui/./components/datePickers/helpers.ts","rollup://@epam/uui/./components/datePickers/DatePickerHeader.tsx","rollup://@epam/uui/./components/datePickers/Calendar.tsx","rollup://@epam/uui/./components/datePickers/DatePickerBody.tsx","rollup://@epam/uui/./components/datePickers/DatePicker.tsx","rollup://@epam/uui/./components/datePickers/RangeDatePickerInput.tsx","rollup://@epam/uui/./components/datePickers/CalendarPresets.tsx","rollup://@epam/uui/./components/datePickers/RangeDatePickerBody.tsx","rollup://@epam/uui/./components/datePickers/RangeDatePicker.tsx","rollup://@epam/uui/./components/dnd/DropMarker.tsx","rollup://@epam/uui/./components/pickers/highlight.tsx","rollup://@epam/uui/./components/pickers/PickerItem.tsx","rollup://@epam/uui/./components/pickers/DataPickerRow.tsx","rollup://@epam/uui/./components/pickers/DataPickerBody.tsx","rollup://@epam/uui/./components/pickers/DataPickerFooter.tsx","rollup://@epam/uui/./components/pickers/DataPickerMobileHeader.tsx","rollup://@epam/uui/./components/pickers/PickerBodyMobileView.tsx","rollup://@epam/uui/./components/pickers/PickerModal.tsx","rollup://@epam/uui/./components/pickers/PickerTogglerTag.tsx","rollup://@epam/uui/./components/pickers/PickerToggler.tsx","rollup://@epam/uui/./components/pickers/PickerInput.tsx","rollup://@epam/uui/./components/pickers/PickerListRow.tsx","rollup://@epam/uui/./components/pickers/PickerList.tsx","rollup://@epam/uui/./components/tables/DataTableCell.tsx","rollup://@epam/uui/./components/tables/DataTableRow.tsx","rollup://@epam/uui/./components/tables/ColumnHeaderDropdown/SortingPanel.tsx","rollup://@epam/uui/./components/tables/ColumnHeaderDropdown/ColumnHeaderDropdown.tsx","rollup://@epam/uui/./components/tables/DataTableHeaderCell.tsx","rollup://@epam/uui/./components/tables/DataTableHeaderGroupCell.tsx","rollup://@epam/uui/./components/tables/DataTableHeaderRow.tsx","rollup://@epam/uui/./components/filters/helpers/predicateHelpers.ts","rollup://@epam/uui/./components/filters/FilterPredicatePanel.tsx","rollup://@epam/uui/./components/filters/constants.ts","rollup://@epam/uui/./components/filters/FilterColumnBody.tsx","rollup://@epam/uui/./helpers/useColumnsWithFilters.tsx","rollup://@epam/uui/./components/tables/columnsConfigurationModal/PinIconButton.tsx","rollup://@epam/uui/./components/tables/columnsConfigurationModal/ColumnRow.tsx","rollup://@epam/uui/./components/tables/columnsConfigurationModal/ColumnsConfigurationModal.tsx","rollup://@epam/uui/./components/tables/DataRowsContainer/utils.ts","rollup://@epam/uui/./components/tables/DataRowsContainer/DataRowsGroups.tsx","rollup://@epam/uui/./components/tables/DataRowsContainer/DataRowsContainer.tsx","rollup://@epam/uui/./components/tables/DataTable.tsx","rollup://@epam/uui/./components/filters/FilterPanelItemToggler.tsx","rollup://@epam/uui/./components/filters/defaultPredicates.ts","rollup://@epam/uui/./components/filters/FilterPickerBody.tsx","rollup://@epam/uui/./components/filters/FilterDatePickerBodyFooter.tsx","rollup://@epam/uui/./components/filters/FilterDatePickerBody.tsx","rollup://@epam/uui/./components/filters/FilterRangeDatePickerBodyFooter.tsx","rollup://@epam/uui/./components/filters/FilterRangeDatePickerBody.tsx","rollup://@epam/uui/./components/filters/FilterNumericBody.tsx","rollup://@epam/uui/./components/filters/FilterItemBody.tsx","rollup://@epam/uui/./components/filters/FiltersPanelItem.tsx","rollup://@epam/uui/./components/filters/FiltersPanel.tsx","rollup://@epam/uui/./components/filters/PresetPanel/PresetActionsDropdown.tsx","rollup://@epam/uui/./components/filters/PresetPanel/constants.ts","rollup://@epam/uui/./components/filters/PresetPanel/PresetInput.tsx","rollup://@epam/uui/./components/filters/PresetPanel/Preset.tsx","rollup://@epam/uui/./components/filters/PresetPanel/PresetsPanel.tsx","rollup://@epam/uui/./epam-assets/icons/navigation-open_side_menu-outline.svg","rollup://@epam/uui/./components/navigation/MainMenu/Burger/Burger.tsx","rollup://@epam/uui/./epam-assets/icons/navigation-arrow_down-outline.svg","rollup://@epam/uui/./components/navigation/MainMenu/Burger/BurgerButton.tsx","rollup://@epam/uui/./components/navigation/MainMenu/Burger/BurgerSearch.tsx","rollup://@epam/uui/./components/navigation/MainMenu/Burger/BurgerGroupHeader.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuButton.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuDropdown.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenu.tsx","rollup://@epam/uui/./epam-assets/icons/navigation-global_menu-outline-outline.svg","rollup://@epam/uui/./components/navigation/MainMenu/GlobalMenu.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuAvatar.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuSearch.tsx","rollup://@epam/uui/./components/navigation/MainMenu/MainMenuIcon.tsx","rollup://@epam/uui/./components/navigation/Anchor.tsx","rollup://@epam/uui/./components/forms/Form.tsx","rollup://@epam/uui/./components/forms/useForm.tsx","rollup://@epam/uui/./epam-assets/icons/file-cloud_upload-fill.svg","rollup://@epam/uui/./components/fileUpload/DropSpot.tsx","rollup://@epam/uui/./components/fileUpload/SvgCircleProgress.tsx","rollup://@epam/uui/./components/fileUpload/FileCard.tsx","rollup://@epam/uui/./components/errors/config.ts","rollup://@epam/uui/./components/errors/ErrorPage.tsx","rollup://@epam/uui/./components/errors/ErrorHandler.tsx"],"sourcesContent":["<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6.4 19L5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6L6.4 19z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5.414 8.086L4 9.5l8 8 8-8-1.414-1.414L12 14.672 5.414 8.086z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M20.503 7.4l-1.778-1.78-9.175 9.176-4.275-4.275L3.496 12.3l6.054 6.053L20.503 7.4z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19 10.5H5v3h14v-3z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M17.32 15.906L21.414 20 20 21.414l-4.094-4.094a8 8 0 111.414-1.414zM11 17a6 6 0 100-12 6 6 0 000 12z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 22a1.93 1.93 0 01-1.413-.587A1.928 1.928 0 013 20V6c0-.55.196-1.02.587-1.412A1.927 1.927 0 015 4h1V2h2v2h8V2h2v2h1c.55 0 1.021.196 1.413.588.391.391.587.862.587 1.412v14a1.93 1.93 0 01-.587 1.413A1.928 1.928 0 0119 22H5zm0-2h14V10H5v10z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\" clip-rule=\"evenodd\"/></svg>","<svg width=\"232\" height=\"180\" viewBox=\"0 0 232 180\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_18395_59719)\">\n<path d=\"M150.585 1.53517C49.4828 -11.4952 27.4814 61.8041 45.7256 97.4814C56.3063 118.171 6.08421 168.273 63.469 178.949C91.007 184.072 99.469 165.608 125.902 168.294C161.302 171.894 274.069 163.564 214.251 89.3793C182.538 50.0441 215.277 9.8731 150.585 1.53517Z\" fill=\"#F5F6FA\"/>\n<path d=\"M58.069 136.51L57.4152 140.748L56.1449 135.368C52.511 133.312 48.6687 131.647 44.6828 130.403L44.6001 136.039L42.0552 129.646C37.599 128.459 33.0114 127.836 28.4001 127.792L29.1035 133.97L25.7476 127.862C21.5969 128.045 17.4922 128.808 13.5532 130.13L15.8828 133.655C15.8828 133.655 13.7104 132.058 11.7987 130.759C7.88682 132.286 4.23309 134.406 0.965576 137.044C4.81029 140.948 9.02138 144.473 13.5407 147.571C16.0235 146.934 18.6676 146.292 18.6676 146.292L15.407 148.829C19.5741 151.589 24.0276 153.891 28.6897 155.694C31.0359 154.341 34.1063 152.425 34.1063 152.425L30.5518 156.356C35.5104 158.097 40.7505 158.897 46.0028 158.715L50.2607 154.502L48.5642 158.503C55.5656 157.655 62.7076 154.601 69.5145 148.159C67.8925 144.29 63.7463 140.086 58.069 136.51Z\" fill=\"#9BDEFF\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.557158 136.978C0.593748 136.752 0.806281 136.599 1.03186 136.636L69.5808 147.754C69.8064 147.791 69.9596 148.003 69.923 148.229C69.8864 148.455 69.6739 148.608 69.4483 148.571L0.899362 137.453C0.673779 137.416 0.520569 137.203 0.557158 136.978Z\" fill=\"white\"/>\n<path d=\"M174.887 125.586H86.7863C84.0346 125.586 81.407 123.352 81.407 120.6V27.5339C81.407 24.7822 84.0511 22.5684 86.7863 22.5684H174.887C177.639 22.5684 180.287 24.7987 180.287 27.5339V120.6C180.287 123.352 177.655 125.586 174.887 125.586Z\" fill=\"#9BDEFF\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M86.7863 22.9821C84.2352 22.9821 81.8208 25.0527 81.8208 27.5339V120.6C81.8208 123.084 84.2218 125.172 86.7863 125.172H174.887C177.469 125.172 179.873 123.083 179.873 120.6V27.5339C179.873 25.0696 177.455 22.9821 174.887 22.9821H86.7863ZM80.9932 27.5339C80.9932 24.5115 83.867 22.1545 86.7863 22.1545H174.887C177.822 22.1545 180.701 24.5278 180.701 27.5339V120.6C180.701 123.621 177.841 126 174.887 126H86.7863C83.8473 126 80.9932 123.619 80.9932 120.6V27.5339Z\" fill=\"#1D1E26\"/>\n<mask id=\"mask0_18395_59719\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"81\" y=\"22\" width=\"100\" height=\"104\">\n<path d=\"M174.887 125.586H86.7863C84.0346 125.586 81.407 123.352 81.407 120.6V27.5339C81.407 24.7822 84.0511 22.5684 86.7863 22.5684H174.887C177.639 22.5684 180.287 24.7987 180.287 27.5339V120.6C180.287 123.352 177.655 125.586 174.887 125.586Z\" fill=\"#9BDEFF\"/>\n</mask>\n<g mask=\"url(#mask0_18395_59719)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M69.8168 99.2466C69.9778 99.0844 70.2398 99.0834 70.402 99.2443L121.282 149.727C121.444 149.888 121.445 150.15 121.284 150.312C121.123 150.474 120.861 150.476 120.699 150.315L69.8191 99.8318C69.6569 99.6708 69.6559 99.4088 69.8168 99.2466Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M72.8017 28.407C73.0074 28.3073 73.2549 28.3932 73.3546 28.5988L136.955 159.771C137.054 159.977 136.968 160.224 136.763 160.324C136.557 160.424 136.31 160.338 136.21 160.132L72.6099 28.9599C72.5102 28.7543 72.5961 28.5067 72.8017 28.407Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M142.576 6.51548C142.759 6.65121 142.798 6.91029 142.663 7.09415L60.1854 118.818C60.0497 119.002 59.7906 119.041 59.6068 118.905C59.4229 118.77 59.3839 118.511 59.5196 118.327L141.997 6.60263C142.133 6.41877 142.392 6.37975 142.576 6.51548Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M197.977 60.314C198.158 60.4538 198.191 60.7136 198.052 60.8945L121.318 160.205C121.178 160.386 120.918 160.419 120.737 160.279C120.557 160.14 120.523 159.88 120.663 159.699L197.397 60.3885C197.537 60.2076 197.796 60.1743 197.977 60.314Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M192.316 43.4397C192.447 43.6273 192.401 43.8852 192.213 44.0157L60.0888 135.878C59.9011 136.008 59.6433 135.962 59.5128 135.774C59.3823 135.587 59.4287 135.329 59.6163 135.198L191.74 43.3362C191.928 43.2057 192.186 43.2521 192.316 43.4397Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M91.9658 11.5323C92.1213 11.3648 92.3831 11.3551 92.5506 11.5106L221.803 131.511C221.97 131.666 221.98 131.928 221.825 132.095C221.669 132.263 221.407 132.273 221.24 132.117L91.9875 12.1171C91.82 11.9616 91.8103 11.6998 91.9658 11.5323Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M75.2324 2.76882C75.4286 2.65174 75.6827 2.71593 75.7997 2.91219L169.354 159.74C169.471 159.936 169.407 160.19 169.211 160.307C169.015 160.424 168.761 160.36 168.643 160.164L75.089 3.33617C74.9719 3.13991 75.0361 2.8859 75.2324 2.76882Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M125.643 0.328922C125.816 0.179147 126.077 0.19766 126.227 0.37027L198.037 83.1289C198.187 83.3015 198.168 83.5628 197.995 83.7126C197.823 83.8624 197.561 83.8439 197.412 83.6713L125.602 0.912651C125.452 0.74004 125.471 0.478696 125.643 0.328922Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M67.271 75.3686C67.3646 75.1601 67.6094 75.067 67.8179 75.1605L224.563 145.505C224.771 145.599 224.864 145.844 224.771 146.052C224.677 146.261 224.432 146.354 224.224 146.26L67.4791 75.9156C67.2706 75.822 67.1774 75.5771 67.271 75.3686Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M159.279 8.9379C159.497 9.00902 159.615 9.24273 159.544 9.45992L101.278 187.391C101.206 187.608 100.973 187.727 100.756 187.655C100.538 187.584 100.42 187.351 100.491 187.133L158.757 9.20237C158.828 8.98518 159.062 8.86678 159.279 8.9379Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M86.7863 22.9821C84.2352 22.9821 81.8208 25.0527 81.8208 27.5339V120.6C81.8208 123.084 84.2218 125.172 86.7863 125.172H174.887C177.469 125.172 179.873 123.083 179.873 120.6V27.5339C179.873 25.0696 177.455 22.9821 174.887 22.9821H86.7863ZM80.9932 27.5339C80.9932 24.5115 83.867 22.1545 86.7863 22.1545H174.887C177.822 22.1545 180.701 24.5278 180.701 27.5339V120.6C180.701 123.621 177.841 126 174.887 126H86.7863C83.8473 126 80.9932 123.619 80.9932 120.6V27.5339Z\" fill=\"#1D1E26\"/>\n</g>\n<path d=\"M180.287 30.8276H81.3904V27.1035C81.3904 25.7866 81.9135 24.5236 82.8447 23.5923C83.776 22.6611 85.039 22.138 86.3559 22.138H175.301C175.955 22.1353 176.602 22.2617 177.207 22.51C177.812 22.7583 178.362 23.1237 178.825 23.585C179.289 24.0464 179.656 24.5947 179.907 25.1985C180.158 25.8023 180.287 26.4497 180.287 27.1035V30.8276Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M177.05 22.8928C176.496 22.6651 175.902 22.5492 175.302 22.5517L175.301 22.5518H86.3559C85.1487 22.5518 83.9909 23.0313 83.1373 23.8849C82.2837 24.7385 81.8041 25.8963 81.8041 27.1035V30.4138H179.873V27.1035C179.873 26.5041 179.755 25.9107 179.525 25.3572C179.295 24.8037 178.958 24.3011 178.533 23.8782C178.109 23.4553 177.605 23.1204 177.05 22.8928ZM175.3 21.7242C176.008 21.7213 176.709 21.8583 177.364 22.1272C178.02 22.3962 178.615 22.792 179.117 23.2918C179.619 23.7916 180.017 24.3856 180.289 25.0397C180.561 25.6938 180.701 26.3952 180.701 27.1035V30.8276C180.701 31.0561 180.515 31.2414 180.287 31.2414H81.3904C81.1618 31.2414 80.9766 31.0561 80.9766 30.8276V27.1035C80.9766 25.6768 81.5433 24.3085 82.5521 23.2997C83.5609 22.2909 84.9292 21.7242 86.3559 21.7242H175.3Z\" fill=\"#1D1E26\"/>\n<path d=\"M87.3242 28.2166C88.3183 28.2166 89.1242 27.4107 89.1242 26.4166C89.1242 25.4225 88.3183 24.6166 87.3242 24.6166C86.3301 24.6166 85.5242 25.4225 85.5242 26.4166C85.5242 27.4107 86.3301 28.2166 87.3242 28.2166Z\" fill=\"#1D1E26\"/>\n<path d=\"M93.5974 28.2166C94.5915 28.2166 95.3974 27.4107 95.3974 26.4166C95.3974 25.4225 94.5915 24.6166 93.5974 24.6166C92.6033 24.6166 91.7974 25.4225 91.7974 26.4166C91.7974 27.4107 92.6033 28.2166 93.5974 28.2166Z\" fill=\"#1D1E26\"/>\n<path d=\"M99.8664 28.2166C100.861 28.2166 101.666 27.4107 101.666 26.4166C101.666 25.4225 100.861 24.6166 99.8664 24.6166C98.8723 24.6166 98.0664 25.4225 98.0664 26.4166C98.0664 27.4107 98.8723 28.2166 99.8664 28.2166Z\" fill=\"#1D1E26\"/>\n<path d=\"M151.71 47.8055H63.6139C60.8601 47.8055 58.6277 50.0379 58.6277 52.7918V145.854C58.6277 148.608 60.8601 150.84 63.6139 150.84H151.71C154.464 150.84 156.697 148.608 156.697 145.854V52.7918C156.697 50.0379 154.464 47.8055 151.71 47.8055Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M63.6139 48.2193C61.0886 48.2193 59.0415 50.2664 59.0415 52.7917V145.854C59.0415 148.379 61.0886 150.426 63.6139 150.426H151.71C154.236 150.426 156.283 148.379 156.283 145.854V52.7917C156.283 50.2665 154.236 48.2193 151.71 48.2193H63.6139ZM58.2139 52.7917C58.2139 49.8094 60.6315 47.3917 63.6139 47.3917H151.71C154.693 47.3917 157.11 49.8094 157.11 52.7917V145.854C157.11 148.836 154.693 151.254 151.71 151.254H63.6139C60.6315 151.254 58.2139 148.836 58.2139 145.854V52.7917Z\" fill=\"#1D1E26\"/>\n<path d=\"M157.11 56.0814H58.2139V52.3572C58.2193 51.0384 58.7471 49.7755 59.6816 48.8448C60.6161 47.9142 61.8812 47.3917 63.2001 47.3917H152.124C153.443 47.3928 154.707 47.9156 155.641 48.846C156.576 49.7764 157.104 51.0387 157.11 52.3572V56.0814Z\" fill=\"#008ACE\"/>\n<path d=\"M64.5656 53.4745C65.5597 53.4745 66.3656 52.6686 66.3656 51.6745C66.3656 50.6804 65.5597 49.8745 64.5656 49.8745C63.5715 49.8745 62.7656 50.6804 62.7656 51.6745C62.7656 52.6686 63.5715 53.4745 64.5656 53.4745Z\" fill=\"#1D1E26\"/>\n<path d=\"M70.8347 53.4745C71.8288 53.4745 72.6347 52.6686 72.6347 51.6745C72.6347 50.6804 71.8288 49.8745 70.8347 49.8745C69.8406 49.8745 69.0347 50.6804 69.0347 51.6745C69.0347 52.6686 69.8406 53.4745 70.8347 53.4745Z\" fill=\"#1D1E26\"/>\n<path d=\"M77.1035 53.4745C78.0976 53.4745 78.9035 52.6686 78.9035 51.6745C78.9035 50.6804 78.0976 49.8745 77.1035 49.8745C76.1094 49.8745 75.3035 50.6804 75.3035 51.6745C75.3035 52.6686 76.1094 53.4745 77.1035 53.4745Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M48.9677 36.0668C49.1342 35.9103 49.396 35.9183 49.5526 36.0848L56.5581 43.533C56.7147 43.6995 56.7067 43.9614 56.5402 44.118C56.3737 44.2745 56.1119 44.2665 55.9553 44.1L48.9498 36.6518C48.7932 36.4853 48.8012 36.2234 48.9677 36.0668Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M46.9893 44.0467C47.0907 43.8419 47.3389 43.7581 47.5438 43.8595L53.8127 46.9629C54.0175 47.0643 54.1014 47.3125 54 47.5173C53.8986 47.7221 53.6504 47.806 53.4456 47.7046L47.1766 44.6011C46.9718 44.4997 46.8879 44.2515 46.9893 44.0467Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M183.97 9.36573C184.179 9.45733 184.275 9.70132 184.183 9.91069L181.287 16.5314C181.195 16.7407 180.951 16.8362 180.742 16.7446C180.532 16.653 180.437 16.409 180.528 16.1997L183.425 9.57897C183.517 9.3696 183.761 9.27413 183.97 9.36573Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M192.373 9.86607C192.534 10.0277 192.534 10.2897 192.373 10.4513L184.097 18.7271C183.935 18.8887 183.673 18.8887 183.512 18.7271C183.35 18.5655 183.35 18.3035 183.512 18.1419L191.787 9.86607C191.949 9.70447 192.211 9.70447 192.373 9.86607Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M192.464 19.1084C192.549 19.3206 192.446 19.5614 192.234 19.6462L186.027 22.129C185.815 22.2139 185.574 22.1107 185.489 21.8985C185.404 21.6863 185.507 21.4455 185.719 21.3606L191.926 18.8779C192.139 18.793 192.379 18.8962 192.464 19.1084Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M182.977 54.8483C183.205 54.8483 183.39 55.0335 183.39 55.2621V113.607C183.39 113.835 183.205 114.021 182.977 114.021C182.748 114.021 182.563 113.835 182.563 113.607V55.2621C182.563 55.0335 182.748 54.8483 182.977 54.8483Z\" fill=\"#1D1E26\"/>\n<path d=\"M133.371 157.945C156.567 157.945 175.371 139.141 175.371 115.945C175.371 92.7489 156.567 73.9448 133.371 73.9448C110.175 73.9448 91.3711 92.7489 91.3711 115.945C91.3711 139.141 110.175 157.945 133.371 157.945Z\" fill=\"#008ACE\"/>\n<path d=\"M133.371 149.669C151.996 149.669 167.095 134.57 167.095 115.945C167.095 97.3195 151.996 82.2207 133.371 82.2207C114.746 82.2207 99.647 97.3195 99.647 115.945C99.647 134.57 114.746 149.669 133.371 149.669Z\" fill=\"white\"/>\n<path d=\"M117.312 113.565C119.414 113.565 121.119 111.861 121.119 109.759C121.119 107.656 119.414 105.952 117.312 105.952C115.209 105.952 113.505 107.656 113.505 109.759C113.505 111.861 115.209 113.565 117.312 113.565Z\" fill=\"#1D1E26\"/>\n<path d=\"M149.435 113.565C151.537 113.565 153.241 111.861 153.241 109.759C153.241 107.656 151.537 105.952 149.435 105.952C147.332 105.952 145.628 107.656 145.628 109.759C145.628 111.861 147.332 113.565 149.435 113.565Z\" fill=\"#1D1E26\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M133.38 123.952C128.788 123.952 124.855 126.211 122.912 129.375C122.673 129.765 122.164 129.886 121.774 129.647C121.385 129.408 121.263 128.899 121.502 128.509C123.772 124.812 128.264 122.297 133.38 122.297C138.488 122.297 143.026 124.782 145.262 128.517C145.497 128.909 145.369 129.417 144.977 129.652C144.585 129.887 144.077 129.759 143.842 129.367C141.94 126.191 137.979 123.952 133.38 123.952Z\" fill=\"#1D1E26\"/>\n<path d=\"M170.965 137.356L163.143 147.133L164.811 148.467L172.633 138.69L170.965 137.356Z\" fill=\"#1D1E26\"/>\n<path d=\"M200.774 163.345C201.353 165.488 197.443 170.197 195.221 170.284C188.186 170.561 166.491 146.371 166.491 146.371L170.931 140.818C170.931 140.818 199.053 156.96 200.774 163.345Z\" fill=\"#9BDEFF\"/>\n<path d=\"M204.424 178.378C207.861 178.378 210.647 175.592 210.647 172.154C210.647 168.717 207.861 165.931 204.424 165.931C200.987 165.931 198.2 168.717 198.2 172.154C198.2 175.592 200.987 178.378 204.424 178.378Z\" fill=\"#9BDEFF\"/>\n<path d=\"M199.586 168.269C200.428 167.216 201.59 166.468 202.897 166.138L200.774 164.441C200.31 166.51 197.815 169.436 195.937 170.131L198.233 171.968C198.268 170.621 198.743 169.321 199.586 168.269Z\" fill=\"#1D1E26\"/>\n<path d=\"M72.3572 138.314L68.8566 141.269L71.5793 135.952C70.0281 131.588 68.0314 127.397 65.6207 123.443L61.6069 127.957L63.9862 120.881C61.1562 116.625 57.8216 112.726 54.0552 109.27L50.331 114.819L51.8703 107.371C48.3402 104.459 44.428 102.043 40.2428 100.192L39.6759 104.797C39.6759 104.797 39.0014 101.901 38.3434 99.4179C34.0793 97.7763 29.5883 96.7994 25.0276 96.5214C25.4616 102.553 26.4604 108.531 28.011 114.377C30.4938 115.688 33.1297 117.128 33.1297 117.128L28.669 116.781C30.1583 122.107 32.1997 127.263 34.76 132.166C37.6566 132.803 41.5048 133.519 41.5048 133.519L35.8276 134.069C38.6993 139.034 42.32 143.669 46.8966 147.418L53.3476 147.149L49.1559 149.139C55.5117 153.629 63.5269 156.439 73.6359 156.244C75.0345 151.912 74.5379 145.428 72.3572 138.314Z\" fill=\"#008ACE\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M24.7292 96.184C24.9064 96.0397 25.1671 96.0664 25.3114 96.2436L73.9569 155.995C74.1012 156.173 74.0745 156.433 73.8972 156.577C73.72 156.722 73.4594 156.695 73.3151 156.518L24.6696 96.7661C24.5253 96.5889 24.552 96.3283 24.7292 96.184Z\" fill=\"white\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_18395_59719\">\n<rect width=\"230.897\" height=\"180\" fill=\"white\" transform=\"translate(0.551758)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M11 21V6.825L9.4 8.4 8 7l4-4 4 4-1.4 1.4L13 6.825V21h-2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13 3v14.175l1.6-1.575L16 17l-4 4-4-4 1.4-1.4 1.6 1.575V3h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9 20c-.55 0-1.02-.196-1.412-.587A1.927 1.927 0 017 18c0-.55.196-1.021.588-1.413A1.925 1.925 0 019 16c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413s-.196 1.021-.587 1.413A1.928 1.928 0 019 20zm6 0c-.55 0-1.02-.196-1.412-.587A1.927 1.927 0 0113 18c0-.55.196-1.021.588-1.413A1.925 1.925 0 0115 16c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413s-.196 1.021-.587 1.413A1.928 1.928 0 0115 20zm-6-6c-.55 0-1.02-.196-1.412-.588A1.923 1.923 0 017 12c0-.55.196-1.021.588-1.413A1.925 1.925 0 019 10c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413s-.196 1.02-.587 1.412A1.927 1.927 0 019 14zm6 0c-.55 0-1.02-.196-1.412-.588A1.923 1.923 0 0113 12c0-.55.196-1.021.588-1.413A1.925 1.925 0 0115 10c.55 0 1.021.196 1.413.587.391.392.587.863.587 1.413s-.196 1.02-.587 1.412A1.927 1.927 0 0115 14zM9 8c-.55 0-1.02-.196-1.412-.588A1.923 1.923 0 017 6c0-.55.196-1.02.588-1.412A1.923 1.923 0 019 4c.55 0 1.021.196 1.413.588.391.391.587.862.587 1.412 0 .55-.196 1.02-.587 1.412A1.927 1.927 0 019 8zm6 0c-.55 0-1.02-.196-1.412-.588A1.923 1.923 0 0113 6c0-.55.196-1.02.588-1.412A1.923 1.923 0 0115 4c.55 0 1.021.196 1.413.588.391.391.587.862.587 1.412 0 .55-.196 1.02-.587 1.412A1.927 1.927 0 0115 8z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M12 20c-2.233 0-4.125-.775-5.675-2.325C4.775 16.125 4 14.233 4 12c0-2.233.775-4.125 2.325-5.675C7.875 4.775 9.767 4 12 4c1.15 0 2.25.238 3.3.713A7.617 7.617 0 0118 6.75V4h2v7h-7V9h4.2a5.837 5.837 0 00-2.187-2.2A5.93 5.93 0 0012 6c-1.667 0-3.083.583-4.25 1.75C6.583 8.917 6 10.333 6 12c0 1.667.583 3.083 1.75 4.25C8.917 17.417 10.333 18 12 18a5.863 5.863 0 003.475-1.1A5.81 5.81 0 0017.65 14h2.1c-.467 1.767-1.417 3.208-2.85 4.325S13.833 20 12 20z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M12 18a2 2 0 100-4 2 2 0 000 4zM7 9V7a5 5 0 0110 0v2h1a2 2 0 012 2v10a2 2 0 01-2 2H6a2 2 0 01-2-2V11a2 2 0 012-2h1zm2 0h6V7a3 3 0 10-6 0v2z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5 3a2 2 0 00-2 2v14a2 2 0 002 2h6V3H5z\"/><path fill-rule=\"evenodd\" d=\"M13 21V3h6a2 2 0 012 2v14a2 2 0 01-2 2h-6zm2-16h4v14h-4V5z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13 3h6a2 2 0 012 2v14a2 2 0 01-2 2h-6V3z\"/><path fill-rule=\"evenodd\" d=\"M9 5H5v14h4V5zM5 3a2 2 0 00-2 2v14a2 2 0 002 2h6V3H5z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M7 6.825V20h2V6.825L10.6 8.4 12 7 8 3 4 7l1.4 1.4L7 6.825zm10 10.35V4h-2v13.175L13.4 15.6 12 17l4 4 4-4-1.4-1.4-1.6 1.575z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M14 13v8l-4-2v-6L2.95 4h18.1L14 13z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M18.586 15.914L20 14.5l-8-8-8 8 1.414 1.414L12 9.328l6.586 6.586z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M16.5 4.414L15.086 3 12 6.086 8.914 3 7.5 4.414l4.5 4.5 4.5-4.5zM9 13v-2h6v2H9zm6.086 8l1.414-1.414-4.5-4.5-4.5 4.5L8.914 21 12 17.914 15.086 21z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M16.5 7.5l-1.414 1.414L12 5.828 8.914 8.914 7.5 7.5 12 3l4.5 4.5zM9 13v-2h6v2H9zm6.086 2.086L16.5 16.5 12 21l-4.5-4.5 1.414-1.414L12 18.17l3.086-3.085z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9.25 22l-.4-3.2a3.771 3.771 0 01-.612-.3 8.194 8.194 0 01-.563-.375L4.7 19.375l-2.75-4.75 2.575-1.95a2.39 2.39 0 01-.025-.338v-.675c0-.108.009-.22.025-.337L1.95 9.375l2.75-4.75 2.975 1.25c.184-.133.375-.258.575-.375.2-.117.4-.217.6-.3l.4-3.2h5.5l.4 3.2c.217.083.421.183.613.3.191.117.379.242.562.375l2.975-1.25 2.75 4.75-2.575 1.95c.017.117.025.229.025.337v.675c0 .109-.017.221-.05.338l2.575 1.95-2.75 4.75-2.95-1.25a6.826 6.826 0 01-.575.375c-.2.117-.4.217-.6.3l-.4 3.2h-5.5zm2.8-6.5c.967 0 1.792-.342 2.475-1.025A3.372 3.372 0 0015.55 12c0-.967-.341-1.792-1.025-2.475A3.372 3.372 0 0012.05 8.5c-.983 0-1.813.342-2.488 1.025A3.394 3.394 0 008.55 12c0 .967.338 1.792 1.012 2.475.676.683 1.505 1.025 2.488 1.025z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M15.914 5.414L14.5 4l-8 8 8 8 1.414-1.414L9.328 12l6.586-6.586z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M8.086 18.586L9.5 20l8-8-8-8-1.414 1.414L14.672 12l-6.586 6.586z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M13.286 3h-2.572v7.714H3v2.572h7.714V21h2.572v-7.714H21v-2.572h-7.714V3z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M2 12l3.077-3.2 4.615 4.8L18.923 4 22 7.2 9.692 20 2 12z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M12 19a7 7 0 100-14 7 7 0 000 14z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M11.95 18c.35 0 .646-.121.888-.363.241-.241.362-.537.362-.887s-.12-.646-.362-.887a1.208 1.208 0 00-.888-.363c-.35 0-.646.121-.888.363a1.206 1.206 0 00-.362.887c0 .35.12.646.362.887.242.242.538.363.888.363zm-.9-3.85h1.85c0-.55.063-.983.188-1.3.125-.317.479-.75 1.062-1.3a7.483 7.483 0 001.025-1.238c.25-.391.375-.862.375-1.412 0-.933-.342-1.65-1.025-2.15-.683-.5-1.492-.75-2.425-.75-.95 0-1.72.25-2.312.75-.592.5-1.005 1.1-1.238 1.8l1.65.65c.083-.3.271-.625.563-.975.291-.35.737-.525 1.337-.525.533 0 .933.146 1.2.437.267.292.4.613.4.963 0 .333-.1.646-.3.937-.2.292-.45.563-.75.813-.733.65-1.183 1.142-1.35 1.475-.167.333-.25.942-.25 1.825zM12 22a9.733 9.733 0 01-3.9-.788 10.092 10.092 0 01-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.733 9.733 0 012 12a9.74 9.74 0 01.788-3.9 10.092 10.092 0 012.137-3.175c.9-.9 1.958-1.613 3.175-2.138A9.743 9.743 0 0112 2a9.74 9.74 0 013.9.787 10.105 10.105 0 013.175 2.138c.9.9 1.612 1.958 2.137 3.175A9.733 9.733 0 0122 12a9.733 9.733 0 01-.788 3.9 10.092 10.092 0 01-2.137 3.175c-.9.9-1.958 1.612-3.175 2.137A9.733 9.733 0 0112 22z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10.6 16.6l7.05-7.05-1.4-1.4-5.65 5.65-2.85-2.85-1.4 1.4 4.25 4.25zM12 22a9.733 9.733 0 01-3.9-.788 10.092 10.092 0 01-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.733 9.733 0 012 12a9.74 9.74 0 01.788-3.9 10.092 10.092 0 012.137-3.175c.9-.9 1.958-1.613 3.175-2.138A9.743 9.743 0 0112 2a9.74 9.74 0 013.9.787 10.105 10.105 0 013.175 2.138c.9.9 1.612 1.958 2.137 3.175A9.733 9.733 0 0122 12a9.733 9.733 0 01-.788 3.9 10.092 10.092 0 01-2.137 3.175c-.9.9-1.958 1.612-3.175 2.137A9.733 9.733 0 0112 22z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M1 21L12 2l11 19H1zm11-3a.968.968 0 00.713-.288A.967.967 0 0013 17a.967.967 0 00-.287-.712A.968.968 0 0012 16a.965.965 0 00-.712.288A.965.965 0 0011 17c0 .283.096.52.288.712A.965.965 0 0012 18zm-1-3h2v-5h-2v5z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M12 17a.968.968 0 00.713-.288A.967.967 0 0013 16a.97.97 0 00-.287-.713A.97.97 0 0012 15a.967.967 0 00-.712.287A.968.968 0 0011 16c0 .283.096.52.288.712A.965.965 0 0012 17zm-1-4h2V7h-2v6zm1 9a9.733 9.733 0 01-3.9-.788 10.092 10.092 0 01-3.175-2.137c-.9-.9-1.612-1.958-2.137-3.175A9.733 9.733 0 012 12a9.74 9.74 0 01.788-3.9 10.092 10.092 0 012.137-3.175c.9-.9 1.958-1.613 3.175-2.138A9.743 9.743 0 0112 2a9.74 9.74 0 013.9.787 10.105 10.105 0 013.175 2.138c.9.9 1.612 1.958 2.137 3.175A9.733 9.733 0 0122 12a9.733 9.733 0 01-.788 3.9 10.092 10.092 0 01-2.137 3.175c-.9.9-1.958 1.612-3.175 2.137A9.733 9.733 0 0112 22z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M9 3v1H4v2h1v13a2 2 0 002 2h10a2 2 0 002-2V6h1V4h-5V3H9zM7 6h10v13H7V6zm2 2v9h2V8H9zm4 0v9h2V8h-2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M12 4.93A5 5 0 0119.07 12l-1.06 1.06c.12-.85.022-1.725-.295-2.534a3 3 0 00-4.302-4.182l-2.828 2.828a3 3 0 00-.07 4.17l.07.073-1.415 1.414a5 5 0 010-7.071L12 4.929z\"/><path d=\"M4.93 12l.989-.99a5.018 5.018 0 00.297 2.54 3 3 0 004.37 4.107l2.829-2.828a3 3 0 00-.828-4.83l1.464-1.463a5 5 0 01.778 7.707L12 19.071a5 5 0 01-7.07-7.07z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M19.3 8.925l-4.25-4.2 1.4-1.4a1.92 1.92 0 011.413-.575 1.92 1.92 0 011.412.575l1.4 1.4c.383.383.583.846.6 1.388a1.806 1.806 0 01-.55 1.387L19.3 8.925zM17.85 10.4L7.25 21H3v-4.25l10.6-10.6 4.25 4.25z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M19 19H9V9h10M9 7a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2V9a2 2 0 00-2-2H9zm5-4H5a2 2 0 00-2 2v9h2V5h9V3z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M22.5 15a8.71 8.71 0 00-.712-3.513 9.158 9.158 0 00-1.926-2.85 9.152 9.152 0 00-2.85-1.925A8.709 8.709 0 0013.5 6a8.71 8.71 0 00-3.513.712 9.167 9.167 0 00-2.85 1.925 9.154 9.154 0 00-1.924 2.85A8.705 8.705 0 004.5 15v.15L2.95 13.6 1.5 15l4 4 4-4-1.45-1.4-1.55 1.55V15c0-1.95.679-3.604 2.037-4.962C9.896 8.679 11.55 8 13.5 8c1.95 0 3.604.68 4.962 2.038C19.821 11.396 20.5 13.05 20.5 15h2z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M17 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6V6z\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6zm1.2 18h-1.4L12 13.2 10.2 20H8.8l-2.2-9h1.5l1.4 6.8 1.8-6.8h1.3l1.8 6.8 1.4-6.8h1.5l-2.1 9zM13 9V3.5L18.5 9H13z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6zm2 16l-1.5 1.5L12 17l-2.5 2.5L8 18l2.5-2.5L8 13l1.5-1.5L12 14l2.5-2.5L16 13l-2.5 2.5L16 18zm-3-9V3.5L18.5 9H13z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M13 9h5.5L13 3.5V9zM6 2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4a2 2 0 012-2zm4.1 9.4c-.02.04-.29 1.76-2.1 4.69 0 0-3.5 1.82-2.67 3.18.67 1.08 2.32-.04 3.74-2.68 0 0 1.82-.64 4.24-.82 0 0 3.86 1.73 4.39-.11.52-1.86-3.06-1.44-3.7-1.25 0 0-2-1.35-2.5-3.21 0 0 1.14-3.95-.61-3.9-1.75.05-1.09 3.13-.79 4.1zm.81 1.04c.03.01.47 1.21 1.89 2.46 0 0-2.33.46-3.39.9 0 0 1-1.73 1.5-3.36zm3.93 2.72c.58-.16 2.33.15 2.26.48-.06.33-2.26-.48-2.26-.48zM7.77 17c-.53 1.24-1.44 2-1.67 2-.23 0 .7-1.6 1.67-2zm3.14-6.93c0-.07-.36-2.2 0-2.15.54.08 0 2.08 0 2.15z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M13 9h5.5L13 3.5V9zM6 2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4c0-1.11.89-2 2-2zm0 18h12v-8l-4 4-2-2-6 6zM8 9a2 2 0 100 4 2 2 0 000-4z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M14 15l-5 3v-6l5 3z\"/><path fill-rule=\"evenodd\" d=\"M4 4c0-1.11.89-2 2-2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm9-.5V9h5.5L13 3.5zM8 10v10l8-5-8-5z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6zM9 19H6v-2h3v2zm0-3H6v-2h3v2zm0-3H6v-2h3v2zm4 6h-3v-2h3v2zm0-3h-3v-2h3v2zm0-3h-3v-2h3v2zm0-4V3.5L18.5 9H13z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M13 9h5.5L13 3.5V9zM6 2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4c0-1.11.89-2 2-2zm9 16v-2H6v2h9zm3-4v-2H6v2h12z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M4 4c0-1.11.89-2 2-2h8l6 6v12a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm9-.5V9h5.5L13 3.5zM7 18v-4.732l5 3.333 5-3.333V18a1 1 0 01-1 1H8a1 1 0 01-1-1zm5-2.6l4.688-3.126A.997.997 0 0016 12H8a.997.997 0 00-.688.274L12 15.399z\" clip-rule=\"evenodd\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M6 22c-.55 0-1.02-.196-1.412-.587A1.927 1.927 0 014 20V4c0-.55.196-1.021.588-1.413A1.925 1.925 0 016 2h8l6 6v12a1.93 1.93 0 01-.587 1.413A1.928 1.928 0 0118 22H6zm7-13h5l-5-5v5z\"/></svg>","<svg width=\"24px\" height=\"24px\" version=\"1.1\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <polygon points=\"8.9167 8.2676 12.01 2 15.103 8.2676 22.02 9.2727 17.015 14.151 18.197 21.04 12.01 17.788 5.8235 21.04 7.005 14.151 2 9.2727\" fill-rule=\"evenodd\"/>\n</svg>\n","<svg width=\"66\" height=\"67\" viewBox=\"0 0 66 67\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M0 33.5C0 15.2746 14.7746 0.5 33 0.5C51.2254 0.5 66 15.2746 66 33.5C66 51.7254 51.2254 66.5 33 66.5C14.7746 66.5 0 51.7254 0 33.5Z\" fill=\"#EBEDF5\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M42.3098 40.3349L49.4749 47.5L47 49.9749L39.8349 42.8098C37.4642 44.6526 34.4852 45.75 31.25 45.75C23.518 45.75 17.25 39.482 17.25 31.75C17.25 24.018 23.518 17.75 31.25 17.75C38.982 17.75 45.25 24.018 45.25 31.75C45.25 34.9852 44.1526 37.9642 42.3098 40.3349ZM31.25 42.25C37.049 42.25 41.75 37.549 41.75 31.75C41.75 25.951 37.049 21.25 31.25 21.25C25.451 21.25 20.75 25.951 20.75 31.75C20.75 37.549 25.451 42.25 31.25 42.25Z\" fill=\"#6C6F80\"/>\n</svg>\n","import { Spinner as uuiSpinner, SpinnerProps as uuiSpinnerProps } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport css from './Spinner.module.scss';\n\nexport type SpinnerProps = uuiSpinnerProps;\n\nfunction applySpinnerMods() {\n return [css.root, 'uui-spinner'];\n}\n\nexport const Spinner = withMods<uuiSpinnerProps, uuiSpinnerProps>(uuiSpinner, applySpinnerMods);\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IHasCX, IHasRawProps } from '@epam/uui-core';\nimport css from './TextPlaceholder.module.scss';\nimport { PropsWithChildren } from 'react';\n\nexport interface ITextPlaceholderProps extends IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IHasCX {\n /** Number of placeholder worlds to render in block */\n wordsCount?: number;\n /** Pass true, to turn off the placeholder animation */\n isNotAnimated?: boolean;\n}\n\nexport type TextPlaceholderProps = PropsWithChildren<ITextPlaceholderProps>;\n\nexport const TextPlaceholder: React.FunctionComponent<PropsWithChildren<ITextPlaceholderProps>> = (props) => {\n const pattern = ' ';\n const text = React.useMemo(() => {\n const words = [];\n for (let i = 0; i < (props.wordsCount || 1); i++) {\n const lengthWord = Math.floor(Math.random() * 10 + 8);\n words.push(pattern.repeat(lengthWord));\n }\n return words;\n }, [props.wordsCount]);\n\n return (\n <div aria-busy={ true } className={ cx(css.root, 'uui-text-placeholder') } { ...props.rawProps }>\n {text.map((it: string, index: number) => (\n <span\n key={ index }\n className={ cx([\n props.cx, css.loadingWord, !props.isNotAnimated && css.animatedLoading,\n ]) }\n dangerouslySetInnerHTML={ { __html: it } }\n />\n ))}\n </div>\n );\n};\n","import type { Overwrite } from '@epam/uui-core';\nimport { withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './Text.module.scss';\n\ntype TextColor = 'info' | 'warning' | 'critical' | 'success' | 'primary' | 'secondary' | 'tertiary' | 'disabled' | 'white';\ntype TextSize = 'none' | '18' | '24' | '30' | '36' | '42' | '48';\ntype TextFontStyle = 'normal' | 'italic';\ntype TextFontWeight = '200' | '300' | '400' | '600' | '700' | '900';\n\ninterface TextMods {\n /**\n * Defines text color.\n * @default 'primary'\n */\n color?: TextColor;\n /**\n * Defines size(height) of text block, to align text by its baseline with other components of the same size.\n * Used to calculate line-height and vertical paddings so that the sum of their values be equal size value(size = vPaddings/2 + lineHeight)\n * Pass 'none' to disable it.\n * @default '36'\n */\n size?: TextSize;\n /** Defines text line-height\n * Provide number or string value without 'px'\n * */\n lineHeight?: number | string;\n /** Defines text font-size\n * Provide number or string value without 'px'\n * */\n fontSize?: number | string;\n /**\n * Defines text font weight value\n * @default '400'\n */\n fontWeight?: TextFontWeight;\n /**\n * Determines the style of the text font.\n * @default 'normal'\n */\n fontStyle?: TextFontStyle;\n}\n\nexport interface TextCoreProps extends uuiComponents.TextProps {}\n\nexport interface TextModsOverride {}\n\nexport interface TextProps extends uuiComponents.TextProps, Overwrite<TextMods, TextModsOverride> {}\n\nfunction applyTextMods(mods: TextProps) {\n return [\n css.root,\n 'uui-text',\n `uui-size-${mods.size || settings.text.sizes.default}`,\n (mods.size !== 'none' || mods.lineHeight) && css.lineHeight,\n (mods.size !== 'none' || mods.fontSize) && css.fontSize,\n `uui-color-${mods.color || 'primary'}`,\n `uui-font-weight-${mods.fontWeight || '400'}`,\n `uui-font-style-${mods.fontStyle || 'normal'}`,\n 'uui-typography-inline',\n ];\n}\n\nexport const Text = withMods<uuiComponents.TextProps, TextProps>(\n uuiComponents.Text,\n applyTextMods,\n (props) => {\n const style: any = props?.rawProps?.style ? { ...props.rawProps.style } : {};\n\n props.fontSize && (style['--uui-text-font-size'] = `${props.fontSize}px`);\n props.lineHeight && (style['--uui-text-line-height'] = `${props.lineHeight}px`);\n\n return {\n rawProps: {\n ...props?.rawProps,\n style: style,\n },\n };\n },\n);\n","import { withMods } from '@epam/uui-core';\nimport { Blocker as uuiBlocker, BlockerProps } from '@epam/uui-components';\nimport css from './Blocker.module.scss';\nimport { settings } from '../../settings';\n\nexport const Blocker = withMods<BlockerProps, BlockerProps>(\n uuiBlocker,\n () => [css.root],\n () => ({ renderSpinner: settings.blocker.renderSpinner }),\n);\n","import React from 'react';\nimport { ReactComponent as CrossIcon } from '@epam/assets/icons/navigation-close-outline.svg';\nimport { ReactComponent as DropdownIcon } from '@epam/assets/icons/navigation-chevron_down-outline.svg';\nimport { ReactComponent as CheckIcon } from '@epam/assets/icons/notification-done-outline.svg';\nimport { ReactComponent as PartlySelectIcon } from '@epam/assets/icons/content-minus-outline.svg';\nimport { ReactComponent as SearchIcon } from '@epam/assets/icons/action-search-outline.svg';\nimport { ReactComponent as CalendarIcon } from '@epam/assets/icons/action-calendar-fill.svg';\nimport { ReactComponent as InfoIcon } from '@epam/assets/icons/notification-info-outline.svg';\nimport { ReactComponent as FillInfoIcon } from '@epam/assets/icons/notification-info-fill.svg';\nimport { ReactComponent as EmptyTableIcon } from './icons/pictures/empty-table.svg';\nimport { ReactComponent as AscSortIcon } from '@epam/assets/icons/table-sort_asc-outline.svg';\nimport { ReactComponent as DescSortIcon } from '@epam/assets/icons/table-sort_desc-outline.svg';\nimport { ReactComponent as DragIndicatorIcon } from '@epam/assets/icons/action-drag_indicator-outline.svg';\nimport { ReactComponent as MenuIcon } from '@epam/assets/icons/navigation-more_vert-outline.svg';\nimport { ReactComponent as ResetIcon } from '@epam/assets/icons/navigation-refresh-outline.svg';\nimport { ReactComponent as LockIcon } from '@epam/assets/icons/action-lock-fill.svg';\nimport { ReactComponent as PinLeftIcon } from '@epam/assets/icons/table-group_column_left-fill.svg';\nimport { ReactComponent as PinRightIcon } from '@epam/assets/icons/table-group_column_right-fill.svg';\nimport { ReactComponent as DefaultSortIcon } from '@epam/assets/icons/table-swap-outline.svg';\nimport { ReactComponent as FilterIcon } from '@epam/assets/icons/content-filtration-fill.svg';\nimport { ReactComponent as OpenedDropdownIcon } from '@epam/assets/icons/navigation-chevron_up-outline.svg';\nimport { ReactComponent as FoldIcon } from '@epam/assets/icons/navigation-collapse_all-outline.svg';\nimport { ReactComponent as UnfoldIcon } from '@epam/assets/icons/navigation-expand_all-outline.svg';\nimport { ReactComponent as ConfigIcon } from '@epam/assets/icons/action-settings-fill.svg';\nimport { ReactComponent as LeftArrowIcon } from '@epam/assets/icons/navigation-chevron_left-outline.svg';\nimport { ReactComponent as RightArrowIcon } from '@epam/assets/icons/navigation-chevron_right-outline.svg';\nimport { ReactComponent as AddIcon } from '@epam/assets/icons/action-add-outline.svg';\nimport { ReactComponent as BoldSelectIcon } from '@epam/assets/icons/notification-done-fill.svg';\nimport { ReactComponent as DotIcon } from '@epam/assets/icons/radio_dot-fill.svg';\nimport { ReactComponent as HintIcon } from '@epam/assets/icons/notification-help-fill.svg';\nimport { ReactComponent as SuccessIcon } from '@epam/assets/icons/notification-check-fill.svg';\nimport { ReactComponent as WarningIcon } from '@epam/assets/icons/notification-warning-fill.svg';\nimport { ReactComponent as ErrorIcon } from '@epam/assets/icons/notification-error-fill.svg';\nimport { ReactComponent as RemoveIcon } from '@epam/assets/icons/action-delete-outline.svg';\nimport { ReactComponent as CopyLinkIcon } from '@epam/assets/icons/content-link-outline.svg';\nimport { ReactComponent as RenameIcon } from '@epam/assets/icons/content-edit-fill.svg';\nimport { ReactComponent as CopyIcon } from '@epam/assets/icons/action-copy_content-outline.svg';\nimport { ReactComponent as DiscardChangesIcon } from '@epam/assets/icons/content-edit_undo-outline.svg';\nimport { ReactComponent as SaveAsNewIcon } from '@epam/assets/icons/action-save-outline.svg';\n\nimport { ReactComponent as DocIcon } from '@epam/assets/icons/file-file_word-fill.svg';\nimport { ReactComponent as ExelIcon } from '@epam/assets/icons/file-file_excel-fill.svg';\nimport { ReactComponent as PdfIcon } from '@epam/assets/icons/file-file_pdf-fill.svg';\nimport { ReactComponent as ImgIcon } from '@epam/assets/icons/file-file_image-fill.svg';\nimport { ReactComponent as VideoIcon } from '@epam/assets/icons/file-file_video-fill.svg';\nimport { ReactComponent as TableIcon } from '@epam/assets/icons/file-file_table-fill.svg';\nimport { ReactComponent as TextIcon } from '@epam/assets/icons/file-file_text-fill.svg';\nimport { ReactComponent as MailIcon } from '@epam/assets/icons/file-file_eml-fill.svg';\nimport { ReactComponent as FileIcon } from '@epam/assets/icons/file-file-fill.svg';\n\nimport { ReactComponent as FilledStarIcon } from './icons/star-filled.svg';\nimport { ReactComponent as NotFoundSearchIcon } from './icons/pictures/search-with-background.svg';\n\nimport type { Icon } from '@epam/uui-core';\nimport type { AvatarProps, BlockerProps } from '@epam/uui-components';\nimport type {\n AlertProps, LinkButtonProps, BadgeProps, CountIndicatorProps, ButtonProps, CheckboxProps,\n DataTableHeaderRowProps, DataTableHeaderCellProps, DataTableRowProps,\n SearchInputProps, FlexRowProps, TextProps, DatePickerProps, FiltersPanelProps,\n DataPickerRowProps, PickerItemProps, DataPickerFooterProps, LabeledInputProps, NumericInputProps,\n PickerTogglerProps, PickerTogglerTagProps, TagProps, SwitchProps, RangeDatePickerProps, RadioInputProps,\n RatingProps, RichTextViewProps, DataRowAddonsProps, StatusIndicatorProps, TabButtonProps, VerticalTabButtonProps, TextAreaProps,\n TextInputProps, PickerInputProps, MultiSwitchProps, RangeDatePickerInputProps, IconButtonProps, VirtualListProps,\n} from './components';\nimport { Spinner } from './components/widgets/Spinner';\nimport { TextPlaceholder } from './components/typography/TextPlaceholder';\nimport { Text } from './components/typography/Text';\nimport { Blocker } from './components/layout/Blocker';\n\ntype Sizes<S extends string | number | symbol, T> = {\n [size in S]: T;\n};\n\ninterface AccordionIcons {\n dropdownIcon: Icon;\n}\n\ninterface AccordionSettings {\n icons: AccordionIcons;\n}\n\nconst accordionSettings: AccordionSettings = {\n icons: {\n dropdownIcon: DropdownIcon,\n },\n};\n\ninterface AlertIcons {\n closeIcon: Icon;\n infoIcon: Icon;\n successIcon: Icon;\n warningIcon: Icon;\n errorIcon: Icon;\n}\n\ninterface AlertSizes {\n default: AlertProps['size'];\n actionMap: Sizes<AlertProps['size'], LinkButtonProps['size']>;\n}\n\ninterface AlertSettings {\n icons: AlertIcons;\n sizes: AlertSizes;\n}\n\nconst alertSettings: AlertSettings = {\n icons: {\n closeIcon: CrossIcon,\n infoIcon: FillInfoIcon,\n successIcon: SuccessIcon,\n warningIcon: WarningIcon,\n errorIcon: ErrorIcon,\n },\n sizes: {\n default: '48',\n actionMap: {\n 36: '24',\n 48: '30',\n },\n },\n};\n\ninterface BadgeIcons {\n dropdownIcon: Icon;\n}\n\ninterface BadgeSizes {\n default: BadgeProps['size'];\n countIndicatorMap: Sizes<BadgeProps['size'], CountIndicatorProps['size']>;\n}\n\ninterface BadgeSettings {\n icons: BadgeIcons;\n sizes: BadgeSizes;\n}\nconst badgeSettings: BadgeSettings = {\n icons: {\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n countIndicatorMap: {\n 18: '12',\n 24: '18',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n },\n },\n};\n\ninterface ButtonIcons {\n clearIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface ButtonSizes {\n default: ButtonProps['size'];\n}\n\ninterface ButtonSettings {\n icons: ButtonIcons;\n sizes: ButtonSizes;\n}\n\nconst buttonSettings: ButtonSettings = {\n icons: {\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n },\n};\n\ninterface CheckboxIcons {\n checkIcon: Icon;\n indeterminateIcon: Icon;\n}\n\ninterface CheckboxSizes {\n default: CheckboxProps['size'];\n}\n\ninterface CheckboxSettings {\n icons: CheckboxIcons;\n sizes: CheckboxSizes;\n}\n\nconst checkboxSettings: CheckboxSettings = {\n icons: {\n checkIcon: CheckIcon,\n indeterminateIcon: PartlySelectIcon,\n },\n sizes: {\n default: '18',\n },\n};\n\ninterface CountIndicatorSizes {\n default: CountIndicatorProps['size'];\n}\n\ninterface CountIndicatorSettings {\n sizes: CountIndicatorSizes;\n}\n\nconst countIndicatorSettings: CountIndicatorSettings = {\n sizes: {\n default: '24',\n },\n};\n\ninterface DataTableIcons {\n emptyTable: Icon;\n header: {\n configIcon: Icon;\n ascSortIcon: Icon;\n descSortIcon: Icon;\n defaultSortIcon: Icon;\n filterIcon: Icon;\n dropdownIcon: Icon;\n openedDropdownIcon: Icon;\n foldIcon: Icon;\n unfoldIcon: Icon;\n };\n body: {\n foldingIcon: Icon,\n };\n columnsConfigurationModal: {\n dragIndicator: Icon;\n lockIcon: Icon;\n pinLeftIcon: Icon;\n pinRightIcon: Icon;\n menuIcon: Icon;\n resetIcon: Icon;\n expandedIcon: Icon;\n collapsedIcon: Icon;\n };\n}\n\ninterface DataTableSizes {\n columnsConfigurationModal: {\n columnRow: FlexRowProps['size'];\n countIndicator: CountIndicatorProps['size'];\n menuButton: ButtonProps['size'];\n searchInput: SearchInputProps['size'];\n };\n header: {\n row: DataTableHeaderRowProps['size'];\n iconMap: Sizes<DataTableHeaderCellProps<unknown, unknown>['size'], string>;\n };\n body: {\n row: DataTableRowProps['size'];\n checkboxMap: Sizes<DataRowAddonsProps<unknown, unknown>['size'], CheckboxProps['size']>;\n iconMap: Sizes<DataRowAddonsProps<unknown, unknown>['size'], number | string>;\n indentUnitMap: Sizes<DataRowAddonsProps<unknown, unknown>['size'], number>;\n indentWidthMap: Sizes<DataRowAddonsProps<unknown, unknown>['size'], number>;\n };\n}\n\ninterface DataTableSettings {\n icons: DataTableIcons;\n sizes: DataTableSizes;\n renderPlaceholder?: (props: { rowSize: DataTableRowProps['size'] }) => React.ReactNode;\n}\n\nconst dataTableSettings: DataTableSettings = {\n renderPlaceholder: (props) => <Text size={ props.rowSize }><TextPlaceholder /></Text>,\n icons: {\n emptyTable: EmptyTableIcon,\n header: {\n configIcon: ConfigIcon,\n ascSortIcon: AscSortIcon,\n descSortIcon: DescSortIcon,\n defaultSortIcon: DefaultSortIcon,\n filterIcon: FilterIcon,\n dropdownIcon: DropdownIcon,\n openedDropdownIcon: OpenedDropdownIcon,\n foldIcon: FoldIcon,\n unfoldIcon: UnfoldIcon,\n },\n body: {\n foldingIcon: DropdownIcon,\n },\n columnsConfigurationModal: {\n dragIndicator: DragIndicatorIcon,\n lockIcon: LockIcon,\n pinLeftIcon: PinLeftIcon,\n pinRightIcon: PinRightIcon,\n collapsedIcon: RightArrowIcon,\n expandedIcon: DropdownIcon,\n menuIcon: MenuIcon,\n resetIcon: ResetIcon,\n },\n },\n sizes: {\n header: {\n row: '36',\n iconMap: {\n 36: '18',\n 48: '18',\n 60: '18',\n },\n },\n body: {\n row: '36',\n checkboxMap: {\n 24: '12',\n 30: '18',\n 36: '18',\n 42: '18',\n 48: '18',\n 60: '18',\n },\n iconMap: {\n 24: '12',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n 60: '24',\n },\n indentUnitMap: {\n 24: 6,\n 30: 12,\n 36: 12,\n 42: 24,\n 48: 24,\n 60: 24,\n },\n indentWidthMap: {\n 24: 12,\n 30: 18,\n 36: 18,\n 42: 24,\n 48: 24,\n 60: 24,\n },\n },\n columnsConfigurationModal: {\n columnRow: '30',\n countIndicator: '18',\n menuButton: '30',\n searchInput: '30',\n },\n },\n};\n\ninterface DropdownMenuIcons {\n acceptIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface DropdownMenuSettings {\n icons: DropdownMenuIcons;\n}\n\nconst dropdownMenuSettings: DropdownMenuSettings = {\n icons: {\n acceptIcon: CheckIcon,\n dropdownIcon: DropdownIcon,\n },\n};\n\ninterface DatePickerIcons {\n body: {\n prevIcon: Icon;\n nextIcon: Icon;\n };\n input: {\n calendarIcon: Icon;\n };\n}\n\ninterface DatePickerSizes {\n input: DatePickerProps['size'];\n body: DatePickerProps['size'];\n}\n\ninterface DatePickerSettings {\n icons: DatePickerIcons;\n sizes: DatePickerSizes;\n}\n\nconst datePickerSettings: DatePickerSettings = {\n icons: {\n body: {\n prevIcon: LeftArrowIcon,\n nextIcon: RightArrowIcon,\n },\n input: {\n calendarIcon: CalendarIcon,\n },\n },\n sizes: {\n body: '36',\n input: '36',\n },\n};\n\ninterface FileCardIcons {\n docIcon: Icon,\n exelIcon: Icon,\n pdfIcon: Icon,\n imgIcon: Icon,\n videoIcon: Icon,\n tableIcon: Icon,\n textIcon: Icon,\n mailIcon: Icon,\n fileIcon: Icon,\n closeIcon: Icon,\n errorIcon: Icon,\n}\n\ninterface FileCardSettings {\n icons: FileCardIcons,\n}\n\nconst fileCardSettings: FileCardSettings = {\n icons: {\n docIcon: DocIcon,\n exelIcon: ExelIcon,\n pdfIcon: PdfIcon,\n imgIcon: ImgIcon,\n videoIcon: VideoIcon,\n tableIcon: TableIcon,\n textIcon: TextIcon,\n mailIcon: MailIcon,\n fileIcon: FileIcon,\n closeIcon: CrossIcon,\n errorIcon: ErrorIcon,\n },\n};\n\ninterface FlexRowSizes {\n default: FlexRowProps['size'];\n}\n\ninterface FlexRowSettings {\n sizes: FlexRowSizes;\n}\n\nconst flexRowSettings: FlexRowSettings = {\n sizes: {\n default: '36',\n },\n};\n\ninterface FiltersPanelIcons {\n addFilterIcon: Icon;\n itemDropdownIcon: Icon;\n pickerBodyRemoveIcon: Icon;\n}\n\ninterface FiltersPanelSizes {\n default: FiltersPanelProps<unknown>['size'];\n footerLinkButton: LinkButtonProps['size'];\n mobileFooterLinkButton: LinkButtonProps['size'];\n pickerBodyMultiSwitch: MultiSwitchProps['size'];\n pickerBodyLinkButton: LinkButtonProps['size'];\n pickerBodyMinWidth: number;\n rangeDatePickerInput: RangeDatePickerInputProps['size'];\n}\n\ninterface FiltersPanelSettings {\n icons: FiltersPanelIcons;\n sizes: FiltersPanelSizes;\n renderPlaceholder: () => React.ReactNode;\n}\n\nconst filtersPanelSettings: FiltersPanelSettings = {\n renderPlaceholder: () => <TextPlaceholder />,\n icons: {\n addFilterIcon: AddIcon,\n itemDropdownIcon: DropdownIcon,\n pickerBodyRemoveIcon: RemoveIcon,\n },\n sizes: {\n default: '36',\n footerLinkButton: '36',\n mobileFooterLinkButton: '48',\n pickerBodyMultiSwitch: '24',\n pickerBodyLinkButton: '24',\n pickerBodyMinWidth: 360,\n rangeDatePickerInput: '30',\n },\n};\n\ninterface IconButtonSettings {\n icons: {\n dropdownIcon: Icon;\n }\n}\n\nconst iconButtonSettings: IconButtonSettings = {\n icons: {\n dropdownIcon: DropdownIcon,\n },\n};\n\ninterface LabeledInputIcons {\n infoIcon: Icon;\n fillInfoIcon: Icon;\n}\n\ninterface LabeledInputSizes {\n default: LabeledInputProps['size'];\n}\n\ninterface LabeledInputSettings {\n icons: LabeledInputIcons;\n sizes: LabeledInputSizes;\n}\n\nconst labeledInputSettings: LabeledInputSettings = {\n icons: {\n infoIcon: InfoIcon,\n fillInfoIcon: FillInfoIcon,\n },\n sizes: {\n default: '36',\n },\n};\n\ninterface LinkButtonIcons {\n dropdownIcon: Icon;\n}\n\ninterface LinkButtonSizes {\n default: LinkButtonProps['size'];\n}\n\ninterface LinkButtonSettings {\n icons: LinkButtonIcons;\n sizes: LinkButtonSizes;\n weight: LinkButtonProps['weight'];\n}\n\nconst linkButtonSettings: LinkButtonSettings = {\n icons: {\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n },\n weight: 'semibold',\n};\n\ninterface ModalIcons {\n closeIcon: Icon;\n}\n\ninterface ModalSettings {\n icons: ModalIcons;\n}\n\nconst modalSettings: ModalSettings = {\n icons: {\n closeIcon: CrossIcon,\n },\n};\n\ninterface NotificationCardIcons {\n closeIcon: Icon;\n hintIcon: Icon;\n successIcon: Icon;\n warningIcon: Icon;\n errorIcon: Icon;\n}\n\ninterface NotificationCardSizes {\n action: LinkButtonProps['size'];\n icon: number;\n}\n\ninterface NotificationCardSettings {\n icons: NotificationCardIcons;\n sizes: NotificationCardSizes;\n}\n\nconst notificationCardSettings: NotificationCardSettings = {\n icons: {\n closeIcon: CrossIcon,\n hintIcon: HintIcon,\n successIcon: SuccessIcon,\n warningIcon: WarningIcon,\n errorIcon: ErrorIcon,\n },\n sizes: {\n action: '30',\n icon: 24,\n },\n};\n\ninterface NumericInputIcons {\n arrowIcon: Icon;\n}\n\ninterface NumericInputSizes {\n default: NumericInputProps['size'];\n}\n\ninterface NumericInputSettings {\n icons: NumericInputIcons;\n sizes: NumericInputSizes;\n}\n\nconst numericInputSettings: NumericInputSettings = {\n icons: {\n arrowIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n },\n};\n\ninterface PaginatorIcons {\n leftArrowIcon: Icon;\n rightArrowIcon: Icon;\n}\n\ninterface PaginatorSizes {\n default: ButtonProps['size'];\n}\n\ninterface PaginatorSettings {\n icons: PaginatorIcons;\n sizes: PaginatorSizes;\n}\n\nconst paginatorSettings: PaginatorSettings = {\n icons: {\n leftArrowIcon: LeftArrowIcon,\n rightArrowIcon: RightArrowIcon,\n },\n sizes: {\n default: '30',\n },\n};\n\ntype SelectIconType = Icon | ((size: DataPickerRowProps<unknown, unknown>['size']) => Icon);\n\ninterface PickerInputIcons {\n toggler: {\n clearIcon: Icon;\n dropdownIcon: Icon;\n },\n body: {\n selectIcon: SelectIconType;\n pickerBodyMobileHeaderCloseIcon: Icon;\n modalNotFoundSearchIcon: Icon;\n }\n}\n\ninterface PickerInputSizes {\n toggler: {\n default: PickerTogglerProps<unknown, unknown>['size'];\n tag: PickerTogglerTagProps<unknown, unknown>['size'];\n tagMap: Sizes<PickerTogglerTagProps<unknown, unknown>['size'], TagProps['size']>;\n };\n body: {\n maxHeight: number;\n minWidth: number;\n row: DataPickerRowProps<unknown, unknown>['size'];\n itemAvatarMap: Sizes<PickerItemProps<unknown, unknown>['size'], AvatarProps['size']>;\n itemAvatarMultilineMap: Sizes<PickerItemProps<unknown, unknown>['size'], AvatarProps['size']>;\n itemVerticalPaddingMap: Sizes<PickerItemProps<unknown, unknown>['size'], string>;\n selectIconMap: Sizes<DataPickerRowProps<unknown, unknown>['size'], string>;\n footerSwitchMap: Sizes<DataPickerFooterProps<unknown, unknown>['size'], SwitchProps['size']>;\n mobileFooterLinkButton: LinkButtonProps['size'];\n mobileRow: DataPickerRowProps<unknown, unknown>['size'];\n getSearchSize: (props: { pickerSize: PickerInputProps<unknown, unknown>['size'] }) => SearchInputProps['size'];\n mobileSearchInput: SearchInputProps['size'];\n };\n}\n\ninterface PickerInputSettings {\n icons: PickerInputIcons;\n sizes: PickerInputSizes;\n renderPlaceholder?: (props: { rowSize: DataPickerRowProps<unknown, unknown>['size'] }) => React.ReactNode;\n renderBlocker?: VirtualListProps['renderBlocker'];\n}\n\nconst pickerInputSettings: PickerInputSettings = {\n renderPlaceholder: (props) => <Text size={ props.rowSize }><TextPlaceholder /></Text>,\n renderBlocker: (props) => <Blocker isEnabled={ props.isLoading } />,\n icons: {\n toggler: {\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n },\n body: {\n selectIcon: (size: DataPickerRowProps<unknown, unknown>['size']) => size < '30' ? BoldSelectIcon : CheckIcon,\n pickerBodyMobileHeaderCloseIcon: CrossIcon,\n modalNotFoundSearchIcon: NotFoundSearchIcon,\n },\n },\n sizes: {\n toggler: {\n default: '36',\n tag: '36',\n tagMap: {\n 24: '18',\n 30: '18',\n 36: '24',\n 42: '30',\n 48: '36',\n },\n },\n body: {\n maxHeight: 300,\n minWidth: 360,\n row: '36',\n itemAvatarMap: {\n 24: '18',\n 30: '24',\n 36: '30',\n 42: '36',\n 48: '36',\n },\n itemAvatarMultilineMap: {\n 24: '30',\n 30: '30',\n 36: '36',\n 42: '42',\n 48: '48',\n },\n itemVerticalPaddingMap: {\n 24: '3',\n 30: '6',\n 36: '9',\n 42: '6',\n 48: '9',\n },\n selectIconMap: {\n 24: '12',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n },\n footerSwitchMap: {\n 24: '12',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n },\n mobileFooterLinkButton: '48',\n mobileRow: '48',\n mobileSearchInput: '48',\n getSearchSize: ({ pickerSize }) => {\n return pickerSize;\n },\n },\n },\n};\n\ninterface PresetPanelIcons {\n addIcon: Icon;\n copyIcon: Icon;\n copyLinkIcon: Icon;\n deleteIcon: Icon;\n discardChangesIcon: Icon;\n renameIcon: Icon;\n menuIcon: Icon;\n saveAsNewIcon: Icon;\n saveInCurrentIcon: Icon;\n}\n\ninterface PresetPanelSizes {\n tabButton: TabButtonProps['size'];\n dropdownTargetIconButton: IconButtonProps['size'];\n}\n\ninterface PresetsPanelSettings {\n icons: PresetPanelIcons;\n sizes: PresetPanelSizes;\n}\n\nconst presetsPanelSettings: PresetsPanelSettings = {\n icons: {\n addIcon: AddIcon,\n copyIcon: CopyIcon,\n copyLinkIcon: CopyLinkIcon,\n deleteIcon: RemoveIcon,\n discardChangesIcon: DiscardChangesIcon,\n menuIcon: MenuIcon,\n renameIcon: RenameIcon,\n saveAsNewIcon: SaveAsNewIcon,\n saveInCurrentIcon: ResetIcon,\n },\n sizes: {\n tabButton: '60',\n dropdownTargetIconButton: '18',\n },\n};\n\ninterface RadioInputIcons {\n dotIcon: Icon;\n}\n\ninterface RadioInputSizes {\n default: RadioInputProps['size'];\n}\n\ninterface RadioInputSettings {\n icons: RadioInputIcons;\n sizes: RadioInputSizes;\n}\n\nconst radioInputSettings: RadioInputSettings = {\n icons: {\n dotIcon: DotIcon,\n },\n sizes: {\n default: '18',\n },\n};\n\ninterface RangeDatePickerIcons {\n input: {\n calendarIcon: Icon;\n }\n}\n\ninterface RangeDatePickerSizes {\n default: RangeDatePickerProps['size'];\n preset: LinkButtonProps['size'];\n}\n\ninterface RangeDatePickerSettings {\n icons: RangeDatePickerIcons;\n sizes: RangeDatePickerSizes;\n}\n\nconst rangeDatePickerSettings: RangeDatePickerSettings = {\n icons: {\n input: {\n calendarIcon: CalendarIcon,\n },\n },\n sizes: {\n default: '36',\n preset: '24',\n },\n};\n\ninterface RatingIcons {\n filledRatingIcon: Icon;\n emptyRatingIcon: Icon;\n}\n\ninterface RatingSizes {\n default: RatingProps['size'];\n}\n\ninterface RatingSettings {\n icons: RatingIcons;\n sizes: RatingSizes;\n}\n\nconst ratingSettings: RatingSettings = {\n icons: {\n filledRatingIcon: FilledStarIcon,\n emptyRatingIcon: FilledStarIcon,\n },\n sizes: {\n default: 18,\n },\n};\n\ninterface RichTextViewSizes {\n default: RichTextViewProps['size'];\n}\n\ninterface RichTextViewSettings {\n sizes: RichTextViewSizes;\n}\n\nconst richTextViewSettings: RichTextViewSettings = {\n sizes: {\n default: '14',\n },\n};\n\ninterface StatusIndicatorSizes {\n default: StatusIndicatorProps['size'];\n}\n\ninterface StatusIndicatorSettings {\n sizes: StatusIndicatorSizes;\n}\n\nconst statusIndicatorSettings: StatusIndicatorSettings = {\n sizes: {\n default: '24',\n },\n};\n\ninterface SwitchSizes {\n default: SwitchProps['size'];\n}\n\ninterface SwitchSettings {\n sizes: SwitchSizes;\n}\n\nconst switchSettings: SwitchSettings = {\n sizes: {\n default: '18',\n },\n};\n\ninterface TabButtonIcons {\n clearIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface TabButtonSizes {\n default: TabButtonProps['size'];\n countIndicatorMap: Sizes<TabButtonProps['size'], CountIndicatorProps['size']>;\n}\n\ninterface TabButtonSettings {\n icons: TabButtonIcons;\n sizes: TabButtonSizes;\n}\n\nconst tabButtonSettings: TabButtonSettings = {\n icons: {\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '48',\n countIndicatorMap: {\n 36: '18',\n 48: '18',\n 60: '18',\n },\n },\n};\n\ninterface VerticalTabButtonIcons {\n clearIcon: Icon;\n foldingIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface VerticalTabButtonSizes {\n default: VerticalTabButtonProps<unknown, unknown>['size'];\n countIndicatorMap: Sizes<VerticalTabButtonProps<unknown, unknown>['size'], CountIndicatorProps['size']>;\n}\n\ninterface VerticalTabButtonSettings {\n icons: VerticalTabButtonIcons;\n sizes: VerticalTabButtonSizes;\n weight: VerticalTabButtonProps<unknown, unknown>['weight'];\n}\n\nconst verticalTabButtonSettings: VerticalTabButtonSettings = {\n icons: {\n clearIcon: CrossIcon,\n foldingIcon: DropdownIcon,\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '48',\n countIndicatorMap: {\n 30: '18',\n 36: '18',\n 48: '18',\n },\n },\n weight: 'semibold',\n};\n\ninterface TagIcons {\n clearIcon: Icon;\n dropdownIcon: Icon;\n}\n\ninterface TagSizes {\n default: TagProps['size'];\n countIndicatorMap: Sizes<TagProps['size'], CountIndicatorProps['size']>;\n}\n\ninterface TagSettings {\n icons: TagIcons;\n sizes: TagSizes;\n}\n\nconst tagSettings: TagSettings = {\n icons: {\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n },\n sizes: {\n default: '36',\n countIndicatorMap: {\n 18: '12',\n 24: '18',\n 30: '18',\n 36: '18',\n 42: '24',\n 48: '24',\n },\n },\n};\n\ninterface TextSettings {\n sizes: {\n default: TextProps['size'];\n };\n}\n\nconst textSettings: TextSettings = {\n sizes: {\n default: '36',\n },\n};\n\ninterface TextAreaSizes {\n default: TextAreaProps['size'];\n}\n\ninterface TextAreaSettings {\n sizes: TextAreaSizes;\n}\n\nconst textAreaSettings: TextAreaSettings = {\n sizes: {\n default: '36',\n },\n};\n\ninterface TextInputIcons {\n acceptIcon: Icon,\n clearIcon: Icon,\n dropdownIcon: Icon,\n searchIcon: Icon,\n}\n\ninterface TextInputSizes {\n default: TextInputProps['size'];\n}\n\ninterface TextInputSettings {\n icons: TextInputIcons;\n sizes: TextInputSizes;\n}\n\nconst textInputSettings: TextInputSettings = {\n icons: {\n acceptIcon: CheckIcon,\n clearIcon: CrossIcon,\n dropdownIcon: DropdownIcon,\n searchIcon: SearchIcon,\n },\n sizes: {\n default: '36',\n },\n};\n\ninterface BlockerSettings {\n renderSpinner?: BlockerProps['renderSpinner']\n}\n\nconst blockerSettings: BlockerSettings = {\n renderSpinner: () => <Spinner />,\n};\n\nexport const settings = {\n accordion: accordionSettings,\n alert: alertSettings,\n badge: badgeSettings,\n button: buttonSettings,\n blocker: blockerSettings,\n checkbox: checkboxSettings,\n countIndicator: countIndicatorSettings,\n dataTable: dataTableSettings,\n datePicker: datePickerSettings,\n dropdownMenu: dropdownMenuSettings,\n flexRow: flexRowSettings,\n fileCard: fileCardSettings,\n filtersPanel: filtersPanelSettings,\n iconButton: iconButtonSettings,\n labeledInput: labeledInputSettings,\n linkButton: linkButtonSettings,\n modal: modalSettings,\n notificationCard: notificationCardSettings,\n numericInput: numericInputSettings,\n paginator: paginatorSettings,\n pickerInput: pickerInputSettings,\n presetsPanel: presetsPanelSettings,\n radioInput: radioInputSettings,\n rangeDatePicker: rangeDatePickerSettings,\n rating: ratingSettings,\n richTextView: richTextViewSettings,\n statusIndicator: statusIndicatorSettings,\n switch: switchSettings,\n tabButton: tabButtonSettings,\n verticalTabButton: verticalTabButtonSettings,\n tag: tagSettings,\n text: textSettings,\n textArea: textAreaSettings,\n textInput: textInputSettings,\n};\n\nexport type Settings = typeof settings;\n\ntype DeepPartial<T> = T extends object ? {\n [P in keyof T]? : DeepPartial<T[P]>\n} : T;\n\nexport type PartialSettings = DeepPartial<Settings>;\n","import * as uuiComponents from '@epam/uui-components';\nimport type { Overwrite } from '@epam/uui-core';\nimport { withMods } from '@epam/uui-core';\nimport type { ControlSize } from '../types';\nimport { settings } from '../../settings';\nimport css from './Button.module.scss';\n\ntype ButtonMods = {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '18' | ControlSize | '60';\n /**\n * Defines component fill style.\n * @default 'solid'\n */\n fill?: 'solid' | 'outline' | 'ghost' | 'none';\n /**\n * Defines component color.\n * @default 'primary'\n */\n color?: 'accent' | 'primary' | 'critical' | 'secondary' | 'neutral' | 'white';\n};\nexport interface ButtonModsOverride {}\n\n/** Represents the 'Core properties' for the Button component. */\nexport type ButtonCoreProps = uuiComponents.ButtonProps;\n\n/** Represents the props for a Button component. */\nexport interface ButtonProps extends ButtonCoreProps, Overwrite<ButtonMods, ButtonModsOverride> {}\n\nfunction applyButtonMods(mods: ButtonProps) {\n return [\n css.root,\n 'uui-button',\n `uui-fill-${mods.fill || 'solid'}`,\n `uui-color-${mods.color || 'primary'}`,\n `uui-size-${mods.size || settings.button.sizes.default}`,\n ];\n}\n\nexport const Button = withMods<uuiComponents.ButtonProps, ButtonProps>(\n uuiComponents.Button,\n applyButtonMods,\n () => {\n return {\n dropdownIcon: settings.button.icons.dropdownIcon,\n clearIcon: settings.button.icons.clearIcon,\n };\n },\n);\n","import * as uuiComponents from '@epam/uui-components';\nimport { withMods, Overwrite, devLogger } from '@epam/uui-core';\nimport { settings } from '../../settings';\n\nimport css from './IconButton.module.scss';\n\ninterface IconButtonMods {\n /**\n * Defines component color.\n * @default 'neutral'\n */\n color?: 'info' | 'success' | 'error' | 'primary' | 'accent' | 'critical' | 'warning' | 'secondary' | 'neutral' | 'white';\n\n /**\n * Defines component size.\n */\n size?: '18' | '24' | '30' | '36';\n}\n\n/** Represents the Core properties of the IconButton component. */\nexport type IconButtonCoreProps = Omit<uuiComponents.IconButtonProps, 'size'>;\n\nexport interface IconButtonModsOverride {}\n\n/** Represents the properties of the IconButton component. */\nexport interface IconButtonProps extends IconButtonCoreProps, Overwrite<IconButtonMods, IconButtonModsOverride> {}\n\nfunction applyIconButtonMods(props: IconButtonProps) {\n return ['uui-icon_button', `uui-color-${props.color || 'neutral'}`, css.root];\n}\n\nexport const IconButton = withMods<uuiComponents.IconButtonProps, IconButtonProps>(\n uuiComponents.IconButton,\n applyIconButtonMods,\n (props) => {\n const isDeprecated = ['info', 'success', 'error', 'warning'].includes(props.color);\n if (__DEV__ && isDeprecated) {\n devLogger.warnAboutDeprecatedPropValue<IconButtonProps, 'color'>({\n component: 'IconButton',\n propName: 'color',\n propValue: props.color,\n condition: () => isDeprecated,\n });\n }\n return {\n dropdownIcon: props.dropdownIcon || settings.iconButton.icons.dropdownIcon,\n };\n },\n);\n","import { ButtonProps } from '@epam/uui-components';\n\nexport function getIconClass(props: ButtonProps) {\n const classList = {\n 'has-left-icon': false,\n 'has-right-icon': false,\n };\n\n if (props.onClear) {\n classList['has-right-icon'] = true;\n }\n\n if (props.isDropdown) {\n classList['has-right-icon'] = true;\n }\n\n if (props.icon) {\n classList[props.iconPosition !== 'right' ? 'has-left-icon' : 'has-right-icon'] = true;\n }\n\n return [classList['has-left-icon'] ? 'uui-has-left-icon' : 'uui-no-left-icon', classList['has-right-icon'] ? 'uui-has-right-icon' : 'uui-no-right-icon'];\n}\n","import * as React from 'react';\nimport cx from 'classnames';\nimport {\n Icon,\n devLogger,\n IDropdownToggler,\n IHasCaption,\n IHasIcon,\n uuiElement,\n Overwrite,\n ICanBeActive,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { getIconClass } from './helper';\nimport * as types from '../types';\nimport { settings } from '../../settings';\n\nimport css from './LinkButton.module.scss';\n\nconst DEFAULT_COLOR = 'primary';\n\ninterface LinkButtonMods {\n /**\n * Defines component color\n * @default 'primary'\n */\n color?: 'primary' | 'secondary' | 'accent' | 'critical' | 'white' | 'contrast';\n\n /**\n * Defines component size.\n * @default '36'\n */\n size?: types.ControlSize | '42';\n}\n\n/** Represents the Core properties of the LinkButton component. */\nexport interface LinkButtonCoreProps extends ClickableComponentProps, IDropdownToggler, IHasIcon, IHasCaption, ICanBeActive {\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /**\n * Defines component font-weight\n * @default 'semibold'\n */\n weight?: 'semibold' | 'regular';\n /**\n * Defines component underline style\n */\n underline?: 'solid' | 'dashed';\n}\n\nexport interface LinkButtonModsOverride {}\n\n/** Represents the properties of the LinkButton component. */\nexport interface LinkButtonProps extends LinkButtonCoreProps, Overwrite<LinkButtonMods, LinkButtonModsOverride> {}\n\nexport const LinkButton = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, LinkButtonProps>((props, ref) => {\n if (__DEV__ && props.color === 'contrast') {\n devLogger.warnAboutDeprecatedPropValue<LinkButtonProps, 'color'>({\n component: 'LinkButton',\n propName: 'color',\n propValue: props.color,\n propValueUseInstead: 'white',\n condition: () => props.color === 'contrast',\n });\n }\n\n const rootStyles = [\n 'uui-link_button',\n css.root,\n `uui-size-${props.size || settings.linkButton.sizes.default}`,\n ...getIconClass(props),\n `uui-color-${props.color || DEFAULT_COLOR}`,\n props.cx,\n ];\n\n const captionStyles = cx(\n uuiElement.caption,\n props.underline && `uui-underline-${props.underline}`,\n `uui-link-button-weight-${props.weight || settings.linkButton.weight}`,\n );\n\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.linkButton.icons.dropdownIcon;\n\n return (\n <Clickable\n { ...props }\n type=\"button\"\n cx={ rootStyles }\n ref={ ref }\n >\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ !props.isDisabled ? props.onIconClick : undefined }\n />\n ) }\n { props.caption && (\n <div className={ captionStyles }>{ props.caption }</div>\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ !props.isDisabled ? props.onIconClick : undefined } />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ DropdownIcon } flipY={ props.isOpen } />\n ) }\n </Clickable>\n );\n});\n","import React, { forwardRef } from 'react';\nimport cx from 'classnames';\nimport type { IHasCaption, IHasCX, Overwrite } from '@epam/uui-core';\nimport { settings } from '../../settings';\n\nimport css from './CountIndicator.module.scss';\n\ntype CountIndicatorMods = {\n /**\n * Defines component color.\n */\n color: 'neutral' | 'white' | 'info' | 'success' | 'warning' | 'critical';\n /**\n * Defines component size.\n * @default '24'\n */\n size?: '12' | '18' | '24';\n};\n\nexport interface CountIndicatorModsOverride {}\n\nexport type CountIndicatorCoreProps = IHasCaption & IHasCX;\n\nexport type CountIndicatorProps = CountIndicatorCoreProps & Overwrite<CountIndicatorMods, CountIndicatorModsOverride>;\n\nexport const CountIndicator = forwardRef<HTMLDivElement, CountIndicatorProps>((props, ref) => {\n return (\n <div\n ref={ ref }\n className={ cx([\n css.root,\n 'uui-count_indicator',\n `uui-size-${props.size || settings.countIndicator.sizes.default}`,\n props.color && `uui-color-${props.color}`,\n props.cx,\n ]) }\n >\n { props.caption }\n </div>\n );\n});\n","import React from 'react';\nimport {\n cx,\n Icon,\n IDropdownToggler,\n IHasCaption,\n IHasIcon,\n uuiElement,\n uuiMarkers,\n Overwrite,\n ICanBeActive, useIsActive, uuiMod,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { getIconClass } from './helper';\nimport { CountIndicator } from '../widgets/CountIndicator';\nimport { settings } from '../../settings';\n\nimport css from './TabButton.module.scss';\n\ntype TabButtonMods = {\n /**\n * Defines component size.\n * @default '48'\n */\n size?: '36' | '48' | '60';\n /** Defines is the component showing Notify */\n withNotify?: boolean;\n};\n\nexport interface TabButtonModsOverride {}\n\n/** Represents the properties of a TabButton component. */\nexport interface TabButtonProps extends Overwrite<TabButtonMods, TabButtonModsOverride>, ClickableComponentProps, IDropdownToggler, IHasIcon, IHasCaption, ICanBeActive {\n /** Call to clear toggler value */\n onClear?(e?: any): void;\n /** Icon for clear value button (usually cross) */\n clearIcon?: Icon;\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /** Count value to be placed in component */\n count?: React.ReactNode;\n}\n\nexport const TabButton = React.forwardRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement, TabButtonProps>((props, refExternal) => {\n const refLocal = React.useRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement | null>(null);\n const ref = refExternal ?? refLocal;\n\n const { isActive } = useIsActive({\n isLinkActive: props.isLinkActive,\n link: props.link,\n isActive: props.isActive,\n });\n\n const styles = [\n isActive && uuiMod.active,\n css.root,\n 'uui-tab-button',\n `uui-size-${props.size || settings.tabButton.sizes.default}`,\n ...getIconClass(props),\n props.cx,\n ];\n\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.tabButton.icons.dropdownIcon;\n const ClearIcon = props.clearIcon ? props.clearIcon : settings.tabButton.icons.clearIcon;\n\n const handleOnKeyDown = (event: React.KeyboardEvent<HTMLAnchorElement> & React.KeyboardEvent<HTMLButtonElement> & React.KeyboardEvent<HTMLSpanElement>): void => {\n props.rawProps?.onKeyDown?.(event);\n\n const isLink = (\n props.link !== undefined\n || props.href !== undefined\n );\n\n if (\n isLink\n && event.code === 'Space'\n && typeof ref != 'function'\n ) {\n ref.current?.click();\n }\n };\n\n return (\n <Clickable\n { ...props }\n rawProps={ {\n role: 'tab',\n 'aria-haspopup': props.isDropdown,\n 'aria-expanded': props.isOpen,\n ...props.rawProps,\n onKeyDown: handleOnKeyDown,\n } }\n cx={ styles }\n ref={ ref }\n >\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ !props.isDisabled ? props.onIconClick : undefined }\n />\n ) }\n { (props.caption || props.withNotify) && (\n <div className={ cx(uuiElement.caption) }>\n { props.caption }\n { props.withNotify && <div className={ css.withNotify } /> }\n </div>\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ !props.isDisabled ? props.onIconClick : undefined } />\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n color=\"neutral\"\n size={ settings.tabButton.sizes.countIndicatorMap[props.size || settings.tabButton.sizes.default] }\n caption={ props.count }\n />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ DropdownIcon } flipY={ props.isOpen } />\n )}\n { props.onClear && !props.isDisabled && (\n <IconContainer cx={ uuiMarkers.clickable } icon={ ClearIcon } onClick={ props.onClear } />\n ) }\n </Clickable>\n );\n});\n","import { AvatarStack as uuiAvatarStack, AvatarStackProps } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport css from './AvatarStack.module.scss';\n\nexport const AvatarStack = withMods<AvatarStackProps, AvatarStackProps>(uuiAvatarStack, () => [css.root]);\n","import React from 'react';\nimport {\n Icon, IDropdownToggler, IHasCaption, IHasIcon, Overwrite, uuiElement,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { CountIndicator } from './CountIndicator';\n\nimport { settings } from '../../settings';\nimport css from './Badge.module.scss';\n\nconst DEFAULT_FILL = 'solid';\n\ntype BadgeMods = {\n /** Defines component color. */\n color?: 'info' | 'success' | 'warning' | 'critical' | 'neutral';\n /**\n * Defines component fill style.\n * @default 'solid'\n */\n fill?: 'solid' | 'outline';\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '18' | '24' | '30' | '36' | '42' | '48';\n};\n\nexport interface BadgeModsOverride {}\n\nexport interface BadgeCoreProps extends ClickableComponentProps, IDropdownToggler, IHasIcon, IHasCaption {\n /** Pass true to display an indicator. It shows only if fill = 'outline'. */\n indicator?: boolean;\n /**\n * Position of the icon (left of right)\n * @default 'left'\n */\n iconPosition?: 'left' | 'right';\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /** Count value to be placed in component */\n count?: React.ReactNode;\n}\n\n/** Represents the properties of a Badge component. */\nexport interface BadgeProps extends BadgeCoreProps, Overwrite<BadgeMods, BadgeModsOverride> {}\n\nfunction applyBadgeMods(mods: BadgeProps) {\n return [\n 'uui-badge',\n css.root,\n `uui-size-${mods.size || settings.badge.sizes.default}`,\n `uui-fill-${mods.fill || DEFAULT_FILL}`,\n `uui-color-${mods.color || 'info'}`,\n ];\n}\n\nexport const Badge = React.forwardRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement, BadgeProps>((props, ref) => {\n const styles = [applyBadgeMods(props), props.cx];\n\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.badge.icons.dropdownIcon;\n\n return (\n <Clickable\n { ...props }\n rawProps={ {\n 'aria-haspopup': props.isDropdown,\n 'aria-expanded': props.isOpen,\n ...props.rawProps,\n } }\n cx={ styles }\n ref={ ref }\n >\n {(props.indicator && props.fill === 'outline') && (\n <div className=\"uui-indicator\"></div>\n )}\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ !props.isDisabled ? props.onIconClick : undefined }\n />\n ) }\n { props.caption && (\n <div className={ uuiElement.caption }>\n { props.caption }\n </div>\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n key=\"count-indicator\"\n color={ null }\n size={ settings.badge.sizes.countIndicatorMap[props.size || settings.badge.sizes.default] }\n caption={ props.count }\n />\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ !props.isDisabled ? props.onIconClick : undefined } />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ DropdownIcon } flipY={ props.isOpen } />\n )}\n </Clickable>\n );\n});\n","import React from 'react';\nimport {\n Icon, IDropdownToggler, IHasCaption, IHasIcon, Overwrite, uuiElement,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, ControlIcon } from '@epam/uui-components';\nimport { CountIndicator } from './CountIndicator';\nimport { settings } from '../../settings';\n\nimport css from './Tag.module.scss';\n\ninterface TagMods {\n /**\n * Defines component color.\n * @default 'neutral'\n */\n color?: 'info' | 'success' | 'warning' | 'critical' | 'neutral';\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '18' | '24' | '30' | '36' | '42' | '48';\n}\n\nexport interface TagModsOverride {}\n\n/** Represents the Core properties of the Tag component. */\nexport type TagCoreProps = ClickableComponentProps & IDropdownToggler & IHasIcon & IHasCaption & {\n /**\n * Defines component fill style.\n * @default 'solid'\n */\n fill?: 'solid' | 'outline';\n /** Call to clear toggler value */\n onClear?(e?: any): void;\n /** Icon for clear value button (usually cross) */\n clearIcon?: Icon;\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /** Count value to be placed in component */\n count?: React.ReactNode;\n};\n\n/** Represents the properties of the Tag component. */\nexport interface TagProps extends TagCoreProps, Overwrite<TagMods, TagModsOverride> {}\n\nfunction applyTagMods(props: TagProps) {\n return [\n css.root,\n `uui-size-${props.size || settings.tag.sizes.default}`,\n `uui-color-${props.color || 'neutral'}`,\n `uui-fill-${props.fill || 'solid'}`,\n 'uui-tag',\n ];\n}\n\nexport const Tag = React.forwardRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement, TagProps>((props, ref) => {\n const styles = [applyTagMods(props), props.cx];\n\n const ClearIcon = props.clearIcon ? props.clearIcon : settings.tag.icons.clearIcon;\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.tag.icons.dropdownIcon;\n\n const icon = (\n <ControlIcon\n icon={ props.icon }\n onClick={ props.onIconClick }\n isDisabled={ props.isDisabled }\n rawProps={ {\n 'aria-label': 'Icon in input',\n } }\n />\n );\n\n return (\n <Clickable\n { ...props }\n rawProps={ {\n 'aria-haspopup': props.isDropdown,\n 'aria-expanded': props.isOpen,\n ...props.rawProps,\n } }\n cx={ styles }\n ref={ ref }\n >\n { props.iconPosition !== 'right' && icon }\n { props.caption && (\n <div className={ uuiElement.caption }>\n { props.caption }\n </div>\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n color={ (!props.color || props.color === 'neutral') ? 'white' : props.color }\n size={ settings.tag.sizes.countIndicatorMap[(props.size || settings.tag.sizes.default)] }\n caption={ props.count }\n />\n ) }\n { props.iconPosition === 'right' && icon }\n { props.isDropdown && (\n <ControlIcon icon={ DropdownIcon } flipY={ props.isOpen } />\n )}\n { props.onClear && !props.isDisabled && (\n <ControlIcon\n cx=\"uui-icon-cancel\"\n icon={ ClearIcon }\n onClick={ props.onClear }\n rawProps={ {\n 'aria-label': 'Remove tag',\n } }\n />\n ) }\n </Clickable>\n );\n});\n","import React from 'react';\nimport cx from 'classnames';\nimport type { Overwrite } from '@epam/uui-core';\nimport { Paginator as UuiPaginator, PaginatorRenderParams, PaginatorProps as UuiPaginatorProps } from '@epam/uui-components';\nimport { Button } from '../buttons/Button';\nimport { settings } from '../../settings';\n\nimport css from './Paginator.module.scss';\n\nexport interface PaginatorModsOverride {}\n\ninterface PaginatorMods {\n /**\n * Defines component size\n * @default '30'\n * */\n size?: '24' | '30';\n}\n\nexport interface PaginatorProps extends UuiPaginatorProps, Overwrite<PaginatorMods, PaginatorModsOverride> {}\n\nexport function Paginator(props: PaginatorProps) {\n const renderPaginator = (params: PaginatorRenderParams) => (\n <nav role=\"navigation\" className={ cx('uui-paginator', `uui-size-${props.size || settings.paginator.sizes.default}`) } { ...params.rawProps }>\n <ul\n className={ css.root }\n >\n <li>\n <Button\n size={ props.size || settings.paginator.sizes.default }\n icon={ settings.paginator.icons.leftArrowIcon }\n onClick={ params.goToPrev }\n isDisabled={ params.isFirst || props.isDisabled }\n fill=\"outline\"\n color=\"secondary\"\n rawProps={ {\n 'aria-label': 'Previous page',\n } }\n />\n </li>\n {params.pages.map((page, index) => {\n if (page.type === 'spacer') {\n return (\n <li\n key={ `${index}_spacer` }\n >\n <Button\n cx={ cx(css.spacer, css.page) }\n size={ props.size || settings.paginator.sizes.default }\n caption=\"...\"\n fill=\"ghost\"\n color=\"secondary\"\n tabIndex={ -1 }\n isDisabled={ props.isDisabled }\n />\n </li>\n );\n } else {\n return (\n <li\n key={ page.pageNumber }\n >\n <Button\n cx={ cx(css[`mode-${!page.isActive && 'ghost'}`], css.page) }\n size={ props.size || settings.paginator.sizes.default }\n caption={ page.pageNumber }\n onClick={ () => page.onClick?.() }\n rawProps={ { 'aria-current': page.isActive } }\n fill={ (page.isActive && 'outline') || 'ghost' }\n color=\"primary\"\n isDisabled={ props.isDisabled }\n />\n </li>\n );\n }\n })}\n <li>\n <Button\n size={ props.size || settings.paginator.sizes.default }\n icon={ settings.paginator.icons.rightArrowIcon }\n onClick={ params.goToNext }\n isDisabled={ params.isLast || props.isDisabled }\n fill=\"outline\"\n color=\"secondary\"\n rawProps={ {\n 'aria-label': 'Next page',\n } }\n />\n </li>\n </ul>\n </nav>\n );\n\n return <UuiPaginator { ...props } render={ renderPaginator } />;\n}\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IHasCX } from '@epam/uui-core';\nimport css from './IndeterminateBar.module.scss';\n\nexport interface IndeterminateBarMods extends IHasCX {\n /** Component size */\n size?: '12' | '18' | '24';\n}\n\nexport const IndeterminateBar = React.forwardRef<HTMLDivElement, IndeterminateBarMods>((props, ref) => {\n return (\n <div ref={ ref } className={ cx('uui-indeterminate_bar', props.cx, css.root, css[`size-${props.size || 12}`]) }>\n <div className={ cx(css.progressBar) } />\n </div>\n );\n});\n","import * as uui from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport css from './ProgressBar.module.scss';\n\nconst DEFAULT_SIZE = '12';\n\ninterface ProgressBarMods {\n /**\n * Defines component size.\n * @default '12'\n */\n size?: '12' | '18' | '24';\n /**\n * To show ProgressBar with striped animation. The striped progress bar has no label.\n */\n striped?: boolean;\n}\n\nexport type ProgressBarProps = uui.ProgressBarProps & ProgressBarMods;\n\nfunction applyProgressBarMods(mods: ProgressBarMods) {\n const size = mods.size || DEFAULT_SIZE;\n\n return [\n css.root,\n css[`size-${size}`],\n mods.striped && css.striped,\n ];\n}\n\nexport const ProgressBar = withMods<uui.ProgressBarProps, ProgressBarProps>(\n uui.ProgressBar,\n applyProgressBarMods,\n (props) => ({\n hideLabel: props.hideLabel || props.striped,\n }),\n);\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { ProgressBar } from './ProgressBar';\nimport { IndeterminateBar } from './IndeterminateBar';\nimport css from './IndicatorBar.module.scss';\n\ninterface IIndicatorProps extends IHasCX, IHasRawProps<HTMLDivElement> {\n progress?: number;\n}\n\nexport const IndicatorBar = React.forwardRef<HTMLDivElement, IIndicatorProps>((props, ref) => {\n const { progress } = props;\n\n return progress || progress === 0 ? (\n <ProgressBar ref={ ref } progress={ progress } cx={ cx(css.root, props.cx) } hideLabel />\n ) : (\n <IndeterminateBar ref={ ref } cx={ cx(css.root, props.cx) } />\n );\n});\n","import React, { forwardRef } from 'react';\nimport cx from 'classnames';\nimport type { IHasCX, Overwrite } from '@epam/uui-core';\nimport { settings } from '../../settings';\n\nimport css from './StatusIndicator.module.scss';\n\ntype StatusIndicatorColor = 'neutral' | 'info' | 'success' | 'warning' | 'critical';\n\ntype StatusIndicatorMods = {\n /**\n * Component color.\n * @default 'neutral'\n */\n color?: StatusIndicatorColor;\n};\n\nexport interface StatusIndicatorModsOverride {}\n\nexport type StatusIndicatorCoreProps = IHasCX & {\n /**\n * Component size. If omitted, 24 size will be used.\n * @default '24'\n */\n size?: '24' | '18' | '12';\n /**\n * Fill mode, solid is used by default\n * @default 'solid'\n */\n fill?: 'solid' | 'outline';\n /** Component caption. */\n caption: string;\n};\n\nexport type StatusIndicatorProps = StatusIndicatorCoreProps & Overwrite<StatusIndicatorMods, StatusIndicatorModsOverride>;\n\nexport const StatusIndicator = forwardRef<HTMLDivElement, StatusIndicatorProps>((props, ref) => {\n return (\n <div\n ref={ ref }\n className={ cx([\n css.root,\n `uui-size-${props.size || settings.statusIndicator.sizes.default}`,\n 'uui-status_indicator',\n `uui-color-${props.color || 'neutral'}`,\n `uui-fill-${props.fill || 'solid'}`,\n props.cx,\n ]) }\n >\n <div className=\"uui-status_indicator-dot\"></div>\n <p className=\"uui-status_indicator-caption\">{props.caption}</p>\n </div>\n );\n});\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './Checkbox.module.scss';\n\ninterface CheckboxMods {\n /**\n * Defines component size.\n * @default '18'\n */\n size?: '12' | '18';\n /**\n * Defines the different edit modes.\n * @default 'form'\n */\n mode?: 'form' | 'cell';\n}\n\nexport interface CheckboxModsOverride {}\n\n/** Represents the properties of the Checkbox component. */\nexport interface CheckboxProps extends uuiComponents.CheckboxProps, Overwrite<CheckboxMods, CheckboxModsOverride> {}\n\nfunction applyCheckboxMods(mods: CheckboxMods) {\n return [\n css.root,\n `uui-size-${mods.size || settings.checkbox.sizes.default}`,\n 'uui-control-mode-' + (mods.mode || 'form'),\n 'uui-color-primary',\n ];\n}\n\nconst applyUUICheckboxProps = (props: CheckboxProps) => {\n return {\n icon: props.icon ? props.icon : settings.checkbox.icons.checkIcon,\n indeterminateIcon: props.indeterminateIcon ? props.indeterminateIcon : settings.checkbox.icons.indeterminateIcon,\n };\n};\n\nexport const Checkbox = withMods<uuiComponents.CheckboxProps, CheckboxProps>(\n uuiComponents.Checkbox,\n applyCheckboxMods,\n applyUUICheckboxProps,\n);\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport { RadioInput as uuiRadioInput, RadioInputProps as uuiRadioInputProps } from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './RadioInput.module.scss';\n\ntype RadioInputMods = {\n /**\n * Defines component size.\n * @default '18'\n */\n size?: '12' | '18';\n};\n\nexport interface RadioInputModsOverride {}\n\n/** Represents the properties of a RadioInput component. */\nexport interface RadioInputProps extends uuiRadioInputProps, Overwrite<RadioInputMods, RadioInputModsOverride> {}\n\nfunction applyRadioInputMods(mods: RadioInputProps) {\n return [\n css.root,\n `uui-size-${mods.size || settings.radioInput.sizes.default}`,\n 'uui-radio-input-container',\n 'uui-color-primary',\n ];\n}\n\nexport const RadioInput = withMods<uuiRadioInputProps, RadioInputProps>(\n uuiRadioInput,\n applyRadioInputMods,\n (props) => ({ icon: props.icon ? props.icon : settings.radioInput.icons.dotIcon }),\n);\n","import { withMods } from '@epam/uui-core';\nimport type { Overwrite } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './Switch.module.scss';\n\ninterface SwitchMods {\n /**\n * Defines component size.\n * @default '18'\n */\n size?: '12' | '18' | '24';\n}\n\nexport interface SwitchModsOverride {}\n\n/** Represents the properties of the Switch component. */\nexport interface SwitchProps extends uuiComponents.SwitchProps, Overwrite<SwitchMods, SwitchModsOverride> {}\n\nfunction applySwitchMods(mods: SwitchProps) {\n return [\n css.root,\n `uui-size-${mods.size || settings.switch.sizes.default}`,\n 'uui-color-primary',\n ];\n}\n\nexport const Switch = withMods<uuiComponents.SwitchProps, SwitchProps>(uuiComponents.Switch, applySwitchMods);\n","/**\n * Defines the size of a control.\n */\nexport type ControlSize = '24' | '30' | '36' | '42' | '48';\n\nexport interface SizeMod {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: ControlSize;\n}\n\n/** Component can adjust visuals for different contexts: forms, tables cells, on in WYSIWYG UX */\nexport interface IHasEditMode {\n /**\n * Visual mode for component:\n * - form: default visuals, to use in forms.\n * - cell: adjust to embed as table cell editor: no borders, no focus (it is applied by DataCell)\n * - inline: adjust for WYSIWYG UX. Backgrounds removed. Borders appear only on hover.\n */\n mode?: 'form' | 'cell' | 'inline';\n}\n\n/**\n * Defines the different edit modes.\n */\nexport enum EditMode {\n /** Defines edit mode for form */\n FORM = 'form',\n /** Defines edit mode for cell in tables */\n CELL = 'cell',\n /** Defines edit mode for inline elements */\n INLINE = 'inline'\n}\n","import React from 'react';\nimport { withMods, IEditableDebouncer, IEditableDebouncerOptions, Overwrite } from '@epam/uui-core';\nimport { TextInput as uuiTextInput, TextInputProps as CoreTextInputProps } from '@epam/uui-components';\nimport { IHasEditMode, EditMode, ControlSize } from '../types';\nimport { settings } from '../../settings';\n\nimport css from './TextInput.module.scss';\n\nconst DEFAULT_MODE = EditMode.FORM;\n\ntype TextInputMods = IHasEditMode & {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: ControlSize | '60';\n};\n\nexport interface TextInputModsOverride {}\n\nfunction applyTextInputMods(mods: CoreTextInputProps & TextInputMods) {\n return [\n css.root,\n `uui-size-${mods.size || settings.textInput.sizes.default}`,\n 'uui-control-mode-' + (mods.mode || DEFAULT_MODE),\n ];\n}\n\n/** Represents the properties for a TextInput component. */\nexport interface TextInputProps extends CoreTextInputProps, Overwrite<TextInputMods, TextInputModsOverride> {}\n\n/** Represents the properties for a SearchInput component. */\nexport interface SearchInputProps extends TextInputProps, IEditableDebouncerOptions {}\n\nexport const TextInput = withMods<CoreTextInputProps, TextInputProps>(uuiTextInput, applyTextInputMods, () => ({\n acceptIcon: settings.textInput.icons.acceptIcon,\n cancelIcon: settings.textInput.icons.clearIcon,\n dropdownIcon: settings.textInput.icons.dropdownIcon,\n}));\n\nexport const SearchInput = React.forwardRef<HTMLInputElement, SearchInputProps>((props, ref) => {\n // analytics events are sending in IEditableDebouncer, so we need to avoid sending events in TextInput\n const { ...textInputProps } = props;\n delete textInputProps.getValueChangeAnalyticsEvent;\n\n return (\n <IEditableDebouncer\n { ...props }\n render={ (iEditable) => {\n const defaultOnCancel = () => iEditable.onValueChange('');\n\n return (\n <TextInput\n icon={ settings.textInput.icons.searchIcon }\n onCancel={ props.onCancel ?? defaultOnCancel }\n type=\"search\"\n inputMode=\"search\"\n ref={ ref }\n { ...textInputProps }\n { ...iEditable }\n />\n );\n } }\n />\n );\n});\n","import css from './ControlGroup.module.scss';\nimport { withMods } from '@epam/uui-core';\nimport { ControlGroup as uuiControlGroup, ControlGroupProps } from '@epam/uui-components';\n\nexport const ControlGroup = withMods<ControlGroupProps, ControlGroupProps>(uuiControlGroup, () => [css.root, 'uui-control-group']);\n","import * as React from 'react';\nimport { IEditable, IHasRawProps, Overwrite } from '@epam/uui-core';\nimport { ControlGroup } from '../layout/ControlGroup';\nimport { Button, ButtonProps } from '../buttons';\n\nimport type { JSX } from 'react';\n\ntype MultiSwitchItem = ButtonProps & {\n /**\n * Defines the id of MultiSwitchItem.\n */\n id: any;\n};\n\ninterface MultiSwitchMods {\n /**\n * Defines component color.\n * @default 'primary'\n */\n color?: 'primary' | 'secondary';\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48' | '60';\n}\n\nexport interface MultiSwitchModsOverride {}\n\n/** Represents the 'Core properties' for the MultiSwitch component. */\nexport type MultiSwitchCoreProps<TValue> = IEditable<TValue> & IHasRawProps<React.HTMLAttributes<HTMLDivElement>> & {\n /**\n * Defines an array of MultiSwitchItems.\n */\n items: MultiSwitchItem[];\n};\n\n/** Represents the properties for the MultiSwitch component. */\nexport type MultiSwitchProps<TValue = unknown> = MultiSwitchCoreProps<TValue> & Overwrite<MultiSwitchMods, MultiSwitchModsOverride>;\n\nfunction MultiSwitchComponent<TValue>(props: MultiSwitchProps<TValue>, ref: React.ForwardedRef<HTMLDivElement>) {\n return (\n <ControlGroup\n ref={ ref }\n rawProps={ {\n ...props.rawProps,\n role: 'tablist',\n 'aria-invalid': props.isInvalid,\n 'aria-required': props.isRequired,\n 'aria-disabled': props.isDisabled,\n 'aria-readonly': props.isReadonly,\n } }\n >\n {props.items.map((item, index) => (\n <Button\n { ...props }\n { ...item }\n isDisabled={ props.isDisabled }\n key={ index + '-' + item.id }\n onClick={ !props.isReadonly && (() => props.onValueChange(item.id)) }\n fill={ props.value === item.id ? 'solid' : 'outline' }\n color={ props.color }\n size={ props.size }\n rawProps={ { 'aria-current': props.value === item.id, role: 'tab' } }\n />\n ))}\n </ControlGroup>\n );\n}\n\nexport const MultiSwitch = React.forwardRef(MultiSwitchComponent) as <TValue>(props: MultiSwitchProps<TValue>) => JSX.Element;\n","import { withMods, Overwrite } from '@epam/uui-core';\nimport { NumericInput as uuiNumericInput, NumericInputProps as uuiNumericInputProps } from '@epam/uui-components';\nimport { EditMode, IHasEditMode } from '../types';\nimport { settings } from '../../settings';\n\nimport textInputCss from './TextInput.module.scss';\nimport css from './NumericInput.module.scss';\n\nconst DEFAULT_MODE = EditMode.FORM;\n\ntype NumericInputMods = IHasEditMode & {\n /**\n * Defines component size\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\nexport interface NumericInputModsOverride {}\n\nfunction applyNumericInputMods(mods: NumericInputMods) {\n return [\n textInputCss.root,\n css.root,\n `uui-size-${mods.size || settings.numericInput.sizes.default}`,\n 'uui-control-mode-' + (mods.mode || DEFAULT_MODE),\n ];\n}\n\n/** Represents the properties of a NumericInput component. */\nexport interface NumericInputProps extends uuiNumericInputProps, Overwrite<NumericInputMods, NumericInputModsOverride> {}\n\nexport const NumericInput = withMods<uuiNumericInputProps, NumericInputProps>(\n uuiNumericInput,\n applyNumericInputMods,\n (props) => {\n return {\n upIcon: settings.numericInput.icons.arrowIcon,\n downIcon: settings.numericInput.icons.arrowIcon,\n align: props.align ?? (props.mode === 'cell' ? 'right' : 'left'),\n disableArrows: props.disableArrows ?? props.mode === 'cell',\n };\n },\n);\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport { TextArea as uuiTextArea, TextAreaProps as uuiTextAreaProps } from '@epam/uui-components';\nimport * as types from '../types';\nimport { settings } from '../../settings';\n\nimport css from './TextArea.module.scss';\n\nconst DEFAULT_MODE = types.EditMode.FORM;\n\ntype TextAreaMods = types.IHasEditMode & {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\nexport interface TextAreaModsOverride {}\n\nfunction applyTextAreaMods(mods: TextAreaMods) {\n return [\n css.root,\n 'uui-textarea',\n 'uui-size-' + (mods.size || settings.textArea.sizes.default),\n 'uui-control-mode-' + (mods.mode || DEFAULT_MODE),\n ];\n}\n\n/** Represents the properties of a TextArea component. */\nexport interface TextAreaProps extends uuiTextAreaProps, Overwrite<TextAreaMods, TextAreaModsOverride> {}\n\nexport const TextArea = withMods<uuiTextAreaProps, TextAreaProps>(\n uuiTextArea,\n applyTextAreaMods,\n (props) => {\n return {\n autoSize: props.mode === types.EditMode.CELL ? true : props.autoSize,\n };\n },\n);\n","/* eslint-disable no-restricted-imports */\nimport dayjs from 'dayjs';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport localeData from 'dayjs/plugin/localeData.js';\nimport isToday from 'dayjs/plugin/isToday.js';\nimport updateLocale from 'dayjs/plugin/updateLocale.js';\nimport objectSupport from 'dayjs/plugin/objectSupport';\nimport customParseFormat from 'dayjs/plugin/customParseFormat.js';\nimport isoWeek from 'dayjs/plugin/isoWeek.js';\n\nexport type { Dayjs } from 'dayjs';\n\nexport const uuiDayjs = TREE_SHAKEABLE_INIT();\n\nfunction TREE_SHAKEABLE_INIT() {\n let extended = false;\n return {\n get dayjs() {\n if (!extended) {\n dayjs.extend(isSameOrBefore);\n dayjs.extend(isSameOrAfter);\n //\n dayjs.extend(isToday);\n //\n dayjs.extend(localeData);\n dayjs.extend(updateLocale);\n dayjs.extend(objectSupport);\n dayjs.extend(customParseFormat);\n dayjs.extend(isoWeek);\n extended = true;\n }\n return dayjs;\n },\n };\n}\n","import { withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport css from './DropdownContainer.module.scss';\n\ninterface DropdownContainerMods {\n /**\n * Defines vertical padding.\n */\n vPadding?: '6' | '12' | '18' | '24' | '30' | '48';\n /**\n * Defines horizontal padding.\n */\n padding?: '6' | '12' | '18' | '24' | '30';\n}\n\n/** Represents the properties of a DropdownContainer component. */\nexport interface DropdownContainerProps extends uuiComponents.DropdownContainerProps, DropdownContainerMods {}\n\nfunction applyDropdownContainerMods(mods: DropdownContainerMods) {\n return [\n css.root,\n mods.vPadding && `vPadding-${mods.vPadding}`,\n mods.padding && `padding-${mods.padding}`,\n ];\n}\n\nexport const DropdownContainer = withMods<uuiComponents.DropdownContainerProps, DropdownContainerProps>(uuiComponents.DropdownContainer, applyDropdownContainerMods);\n","import * as React from 'react';\nimport { cx } from '@epam/uui-core';\nimport { IconContainer, NumericInput, TextInput } from '@epam/uui-components';\nimport { uuiDayjs } from '../../../helpers/dayJsHelper';\nimport type { Dayjs } from '../../../helpers/dayJsHelper';\nimport { TimePickerBodyProps } from './types';\nimport { ReactComponent as ArrowIcon } from '@epam/assets/icons/navigation-chevron_down-outline.svg';\nimport css from './TimePicker.module.scss';\n\nexport const uuiTimePicker = {\n container: 'uui-timepicker-container',\n iconUp: 'uui-timepicker-icon-up',\n iconDown: 'uui-timepicker-icon-down',\n input: 'uui-timepicker-input',\n elementContainer: 'uui-timepicker-item',\n} as const;\n\nconst MIN_MINUTES: number = 0;\nconst MAX_MINUTES: number = 59;\nconst FORMAT_12H: number = 12;\n\nexport function TimePickerBody(props: TimePickerBodyProps) {\n const MIN_HOURS = props.format === FORMAT_12H ? 1 : 0;\n const MAX_HOURS = props.format || FORMAT_12H;\n\n const setValue = (newTime: Dayjs) => {\n props.onValueChange({ hours: newTime.hour(), minutes: newTime.minute() });\n };\n\n const onHoursChange = (newHours: number) => {\n setValue(uuiDayjs.dayjs().set(props.value).hour(newHours));\n };\n\n const onMinutesChange = (newMinutes: number) => {\n setValue(uuiDayjs.dayjs().set(props.value).minute(newMinutes));\n };\n\n const onTimeTypeChange = () => {\n setValue(uuiDayjs.dayjs().set(props.value).add(12, 'h'));\n };\n\n const handleMinutesUpClick = () => {\n const minutesStep: number = props.minutesStep || 5;\n const value: Dayjs = uuiDayjs.dayjs().set(props.value);\n const minutesToAdd: number = minutesStep - (value.minute() % minutesStep);\n onMinutesChange(value.add(minutesToAdd, 'm').minute());\n };\n\n const handleMinutesDownClick = () => {\n const minutesStep: number = props.minutesStep || 5;\n const value: Dayjs = uuiDayjs.dayjs().set(props.value);\n const minutesToSubtract: number = value.minute() % minutesStep === 0 ? minutesStep : value.minute() % minutesStep;\n onMinutesChange(value.subtract(minutesToSubtract, 'm').minute());\n };\n\n return (\n <div className={ cx(css.root, uuiTimePicker.container, props.cx) } ref={ props.forwardedRef } { ...props.rawProps }>\n <div className={ css.ltrAlways }>\n <div className={ uuiTimePicker.elementContainer }>\n <IconContainer\n size={ 18 }\n rawProps={ { 'aria-label': 'Increment hours' } }\n cx={ uuiTimePicker.iconUp }\n icon={ ArrowIcon }\n onClick={ () => onHoursChange(uuiDayjs.dayjs().set(props.value).add(1, 'h').hour()) }\n />\n <NumericInput\n cx={ uuiTimePicker.input }\n onValueChange={ onHoursChange }\n value={\n +(uuiDayjs.dayjs()\n .set(props.value)\n .format(MAX_HOURS === FORMAT_12H ? 'hh' : 'HH'))\n }\n isReadonly={ true }\n min={ MIN_HOURS }\n max={ MAX_HOURS }\n />\n <IconContainer\n size={ 18 }\n rawProps={ { 'aria-label': 'Decrement hours' } }\n cx={ uuiTimePicker.iconDown }\n icon={ ArrowIcon }\n onClick={ () => onHoursChange(uuiDayjs.dayjs().set(props.value).subtract(1, 'h').hour()) }\n />\n </div>\n <div className={ uuiTimePicker.elementContainer }>\n <IconContainer\n size={ 18 }\n rawProps={ { 'aria-label': 'Increment minutes' } }\n cx={ uuiTimePicker.iconUp }\n icon={ ArrowIcon }\n onClick={ handleMinutesUpClick }\n />\n <NumericInput\n cx={ uuiTimePicker.input }\n onValueChange={ onMinutesChange }\n value={ +uuiDayjs.dayjs().set(props.value).format('m') }\n isReadonly={ true }\n min={ MIN_MINUTES }\n max={ MAX_MINUTES }\n />\n <IconContainer\n size={ 18 }\n rawProps={ { 'aria-label': 'Decrement minutes' } }\n cx={ uuiTimePicker.iconDown }\n icon={ ArrowIcon }\n onClick={ handleMinutesDownClick }\n />\n </div>\n </div>\n { MAX_HOURS === FORMAT_12H && (\n <div className={ uuiTimePicker.elementContainer }>\n <IconContainer\n size={ 18 }\n cx={ uuiTimePicker.iconUp }\n icon={ ArrowIcon }\n onClick={ onTimeTypeChange }\n />\n <TextInput\n cx={ uuiTimePicker.input }\n onValueChange={ () => {\n } }\n isReadonly={ true }\n value={ uuiDayjs.dayjs().set(props.value).format('A') }\n />\n <IconContainer\n size={ 18 }\n cx={ uuiTimePicker.iconDown }\n icon={ ArrowIcon }\n onClick={ onTimeTypeChange }\n />\n </div>\n ) }\n </div>\n );\n}\n","export const getMeridian = (newValue: string, format: 'HH:mm' | 'hh:mm A'): false | 'AM' | 'PM' => {\n if (format === 'hh:mm A') {\n if (newValue.toLowerCase().includes('p') && newValue.toLowerCase().includes('a')) {\n return newValue.toLowerCase().indexOf('p') < newValue.toLowerCase().indexOf('a') ? 'PM' : 'AM';\n }\n return newValue.toLowerCase().includes('p') ? 'PM' : 'AM';\n }\n return false;\n};\n\nexport const parseTimeNumbers = (value: string, separator: number): { hours: number, minutes: number } => {\n let hours: number, minutes: number;\n const timeNumbers = value.replace(/\\D/gi, '');\n\n switch (separator) {\n case 0:\n hours = 0;\n minutes = parseInt(timeNumbers.trim().slice(0, 2));\n break;\n case 1:\n hours = parseInt(timeNumbers.slice(0, 1));\n minutes = parseInt(timeNumbers.slice(1, 3));\n break;\n default:\n hours = parseInt(timeNumbers.slice(0, 2));\n minutes = parseInt(timeNumbers.slice(2, 4));\n }\n return { hours, minutes };\n};\n\nexport const formatTime = (hours: number, minutes: number, meridian: 'AM' | 'PM' | false, format: 'HH:mm' | 'hh:mm A'): string => {\n const normalizeHours = (h: number) => Number.isNaN(h) ? '00' : h.toString().padStart(2, '0');\n const normalizeMinutes = (m: number) => Number.isNaN(m) ? '00' : m.toString().padStart(2, '0');\n\n if (meridian && normalizeHours(hours) === '00' && normalizeMinutes(minutes) === '00') {\n return '';\n }\n\n let hoursResult = Number.parseInt(normalizeHours(hours));\n let meridianResult = meridian;\n\n if ((format === 'hh:mm A') && hoursResult > 12) {\n hoursResult -= 12;\n meridianResult = 'PM';\n }\n\n if ((format === 'hh:mm A') && hoursResult === 0) {\n hoursResult = 12;\n }\n\n const time = `${normalizeHours(hoursResult)}:${normalizeMinutes(minutes)}`;\n\n return meridianResult ? time.concat(` ${meridianResult}`) : time;\n};\n","import React, { useEffect, useState } from 'react';\nimport { offset } from '@floating-ui/react';\nimport { Dropdown } from '@epam/uui-components';\nimport { DropdownBodyProps, IDropdownTogglerProps } from '@epam/uui-core';\nimport { uuiDayjs } from '../../../helpers/dayJsHelper';\nimport { DropdownContainer } from '../../overlays/DropdownContainer';\nimport { TextInput } from '../TextInput';\nimport { TimePickerBody } from './TimePickerBody';\nimport { EditMode } from '../../types';\nimport type { TimePickerProps, TimePickerValue } from './types';\nimport { formatTime, getMeridian, parseTimeNumbers } from './parseTimeHelper';\nimport css from './TimePicker.module.scss';\nimport isEqual from 'react-fast-compare';\n\nconst DEFAULT_MODE = EditMode.FORM;\n\nconst valueToTimeString = (value: TimePickerValue, format: TimePickerProps['format']) => {\n if (value === null || (value?.hours === null && value?.minutes === null)) return null;\n return uuiDayjs.dayjs()\n .set(value)\n .format(format === 24 ? 'HH:mm' : 'hh:mm A');\n};\n\nexport function TimePickerComponent(props: TimePickerProps, ref: React.ForwardedRef<HTMLElement>) {\n const [state, setState] = useState(\n {\n isOpen: false,\n value: valueToTimeString(props.value, props.format),\n inputValue: valueToTimeString(props.value, props.format),\n },\n );\n\n const targetRef = React.useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (valueToTimeString(props.value, props.format) !== state.value) {\n const stringValue = valueToTimeString(props.value, props.format);\n setState((prevState) => ({\n ...prevState,\n value: stringValue,\n inputValue: stringValue,\n }));\n }\n }, [props.value, props.format]);\n\n const getFormat = () => props.format === 24 ? 'HH:mm' : 'hh:mm A';\n\n const isTimeValid = (newValue: string) => uuiDayjs.dayjs(newValue, getFormat(), true).isValid();\n\n const formatStringTimeToObject = (stringTime: string | null) => {\n if (stringTime) {\n const value = uuiDayjs.dayjs(stringTime, getFormat(), true);\n return { hours: value.hour(), minutes: value.minute() };\n }\n return { hours: null, minutes: null };\n };\n\n const onClear = () => {\n props.onValueChange(null);\n setState((prevState) => ({ ...prevState, value: null, inputValue: null }));\n };\n\n const onToggle = (value: boolean) => {\n setState((prevState) => ({ ...prevState, isOpen: value }));\n };\n\n const saveTime = (newTime: string) => {\n setState((prevState) => ({ ...prevState, inputValue: newTime }));\n const newValue = formatStringTimeToObject(newTime);\n\n if (!isEqual(props.value, newValue)) {\n props.onValueChange(formatStringTimeToObject(newTime));\n }\n };\n\n const getTimeFromInputValue = (newValue: string) => {\n const trimmedNewValue = newValue.trimStart();\n const separator = trimmedNewValue.search(/\\D/);\n const meridian = getMeridian(trimmedNewValue, getFormat());\n const { hours, minutes } = parseTimeNumbers(trimmedNewValue, separator);\n return formatTime(hours, minutes, meridian, getFormat());\n };\n\n const handleBodyValueChange = (newValue: TimePickerValue) => {\n const inputValue = valueToTimeString(newValue, props.format);\n saveTime(inputValue);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n props.onFocus?.(e);\n };\n\n const handleInputChange = (newValue: string) => {\n setState((prevState) => ({ ...prevState, inputValue: newValue }));\n\n if (newValue) {\n const result = getTimeFromInputValue(newValue);\n if (isTimeValid(result)) {\n setState((prevState) => ({ ...prevState, value: result }));\n }\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n props.onBlur?.(e);\n\n if (state.value === '' || state.inputValue === '') {\n props.onValueChange(null);\n setState((prevState) => ({ ...prevState, value: null, inputValue: null }));\n } else {\n saveTime(state.value);\n }\n };\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onToggle(true);\n }\n\n if (e.key === 'Escape' && state.isOpen) {\n e.preventDefault();\n e.stopPropagation();\n onToggle(false);\n }\n };\n\n const renderInput = (inputProps: IDropdownTogglerProps) => {\n return (\n <TextInput\n { ...inputProps }\n size={ props.size }\n isDisabled={ props.isDisabled }\n isReadonly={ props.isReadonly }\n isInvalid={ props.isInvalid }\n cx={ [css.root, css.timepickerInput, props.inputCx] }\n value={ state.inputValue }\n onValueChange={ handleInputChange }\n onCancel={ !props.disableClear && onClear }\n onKeyDown={ onKeyDown }\n onFocus={ handleFocus }\n onBlur={ handleBlur }\n isDropdown={ false }\n placeholder={ props.placeholder ? props.placeholder : getFormat() }\n mode={ props.mode || DEFAULT_MODE }\n rawProps={ props.rawProps?.input }\n ref={ (node) => {\n targetRef.current = node;\n if (typeof inputProps.ref === 'function') {\n inputProps.ref(node);\n } else if (inputProps.ref && 'current' in inputProps.ref) {\n inputProps.ref.current = node;\n }\n } }\n />\n );\n };\n\n const renderBody = (bodyProps: DropdownBodyProps) => {\n const { forwardedRef, onValueChange, ...timePickerBodyProps } = props;\n\n return (\n !props.isDisabled && !props.isReadonly && (\n <DropdownContainer { ...bodyProps } shards={ [targetRef] }>\n <TimePickerBody\n { ...timePickerBodyProps }\n onValueChange={ handleBodyValueChange }\n value={ formatStringTimeToObject(state.value) }\n rawProps={ props.rawProps?.body }\n cx={ props.bodyCx }\n\n />\n </DropdownContainer>\n )\n );\n };\n\n return (\n <Dropdown\n renderTarget={ (targetProps) => (props.renderTarget ? props.renderTarget(targetProps) : renderInput(targetProps)) }\n renderBody={ (bodyProps) => !props.isDisabled && !props.isReadonly && renderBody(bodyProps) }\n onValueChange={ !props.isDisabled && !props.isReadonly ? onToggle : null }\n value={ state.isOpen }\n middleware={ [offset(6)] }\n ref={ ref }\n />\n );\n}\n\nexport const TimePicker = React.forwardRef(TimePickerComponent);\n","import { withMods } from '@epam/uui-core';\nimport { InputAddon as uuiInputAddon, InputAddonProps as uuiInputAddonProps } from '@epam/uui-components';\nimport css from './InputAddon.module.scss';\n\nfunction applyInputAddonMods() {\n return [\n css.root,\n ];\n}\n\nexport const InputAddon = withMods<uuiInputAddonProps, uuiInputAddonProps>(uuiInputAddon, applyInputAddonMods);\n","import { Slider as uuiSlider, SliderProps as uuiSliderProps } from '@epam/uui-components';\nimport css from './Slider.module.scss';\nimport { withMods } from '@epam/uui-core';\n\nexport interface SliderProps extends uuiSliderProps {}\n\nfunction applySliderMods() {\n return [css.root, 'uui-color-neutral'];\n}\n\nexport const Slider = withMods<SliderProps, SliderProps>(uuiSlider, applySliderMods);\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport css from './Tooltip.module.scss';\n\ninterface TooltipMods {\n /**\n * Tooltip color\n * @default 'inverted'\n */\n color?: 'neutral' | 'inverted' | 'critical';\n}\n\nexport interface TooltipCoreProps extends uuiComponents.TooltipProps {}\n\nexport interface TooltipModsOverride {}\n\nexport interface TooltipProps extends TooltipCoreProps, Overwrite<TooltipMods, TooltipModsOverride> {}\n\nfunction applyTooltipMods(mods: TooltipMods) {\n return [\n css.root,\n `uui-color-${mods.color || 'inverted'}`,\n ];\n}\n\nexport const Tooltip = withMods<TooltipProps, TooltipProps>(uuiComponents.Tooltip, applyTooltipMods);\n","import { Icon, Overwrite, withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { Tooltip } from '../overlays/Tooltip';\nimport { settings } from '../../settings';\n\nimport css from './Rating.module.scss';\n\ninterface RatingMods {\n /**\n * Rating icon can be changed according to your needs.\n * Icon can be a React element (usually an SVG element).\n */\n icon?: Icon;\n /**\n * Defines component size.\n * @default '18'\n */\n size?: 18 | 24 | 30;\n}\nexport interface RatingModsOverride {}\n\n/** Represents the 'Core properties' for the Rating component. */\nexport type RatingCoreProps = Omit<uuiComponents.RatingProps, 'filledStarIcon' | 'emptyStarIcon' | 'renderRating' | 'from' | 'to'>;\n\n/** Represents the properties for the Rating component. */\nexport interface RatingProps extends RatingCoreProps, Overwrite<RatingMods, RatingModsOverride> {}\n\nfunction applyRatingMods(mods: RatingProps) {\n return [\n css.root,\n `uui-size-${mods.size || settings.rating.sizes.default}`,\n ];\n}\n\nexport const Rating = withMods<uuiComponents.RatingProps, RatingProps>(\n uuiComponents.Rating,\n applyRatingMods,\n (props) => ({\n filledStarIcon: props.icon || settings.rating.icons.filledRatingIcon,\n emptyStarIcon: props.icon || settings.rating.icons.emptyRatingIcon,\n Tooltip,\n }),\n);\n","import React from 'react';\nimport cx from 'classnames';\nimport { uuiElement, uuiMarkers, DataRowProps, DndEventHandlers, Overwrite } from '@epam/uui-core';\nimport { DragHandle, ControlIcon } from '@epam/uui-components';\nimport { Checkbox } from '../inputs';\nimport type { ControlSize } from '../types';\nimport { settings } from '../../settings';\n\nimport css from './DataRowAddons.module.scss';\n\ninterface DataRowAddonsMods {\n /** Controls size. */\n size?: ControlSize | '60';\n}\n\nexport interface DataRowAddonsModsOverride {}\n\ninterface DragHandleRenderProps<TItem, TId> {\n /** DataRowProps object for the row where an addon is placed. */\n rowProps: DataRowProps<TItem, TId>;\n /**\n * Drag'n'drop marker event handlers.\n */\n eventHandlers?: DndEventHandlers;\n}\n\ninterface DataRowAddonsCoreProps<TItem, TId> {\n /** DataRowProps object for the row where an addon is placed. */\n rowProps: DataRowProps<TItem, TId>;\n /** HTML tabIndex attribute to set on the cell. */\n tabIndex?: React.HTMLAttributes<HTMLElement>['tabIndex'];\n /**\n * Drag'n'drop marker event handlers.\n */\n eventHandlers?: DndEventHandlers;\n /** Render callback for drag handle aria.\n **\n * If omitted, the default implementation with DragHandle component will be rendered.\n */\n renderDragHandle?: (props: DragHandleRenderProps<TItem, TId>) => React.ReactNode;\n}\n\n/**\n * Props of DataRowAddons.\n */\nexport interface DataRowAddonsProps<TItem, TId> extends DataRowAddonsCoreProps<TItem, TId>, Overwrite<DataRowAddonsMods, DataRowAddonsModsOverride> {}\n\nexport function DataRowAddons<TItem, TId>(props: DataRowAddonsProps<TItem, TId>) {\n const row = props.rowProps;\n const getIndent = () => {\n return (row.indent - 1) * settings.dataTable.sizes.body.indentUnitMap[props.size || settings.dataTable.sizes.body.row];\n };\n\n const getWidth = () => {\n return settings.dataTable.sizes.body.indentWidthMap[props.size || settings.dataTable.sizes.body.row];\n };\n\n const renderDragHandle = () => {\n if (props.renderDragHandle) {\n return props.renderDragHandle({ rowProps: props.rowProps, eventHandlers: props.eventHandlers });\n }\n return (\n <div key=\"dh\" className={ cx(css.dragHandleWrapper, row.indent > 0 && css.withIndent) } style={ { width: row.indent > 0 ? (getIndent() + getWidth()) : 0 } } { ...props.eventHandlers }>\n <DragHandle cx={ css.dragHandle } />\n </div>\n );\n };\n\n const handleFold = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n row.onFold(row);\n }\n };\n\n return (\n <>\n {\n row.dnd?.srcData && renderDragHandle()\n }\n {row?.checkbox?.isVisible && (\n <Checkbox\n key=\"cb\"\n cx=\"uui-dr_addons-checkbox\"\n tabIndex={ props.tabIndex }\n size={ settings.dataTable.sizes.body.checkboxMap[props.size] }\n value={ row.isChecked }\n indeterminate={ !row.isChecked && row.isChildrenChecked }\n onValueChange={ () => row.onCheck?.(row) }\n isDisabled={ row.checkbox.isDisabled }\n isInvalid={ row.checkbox.isInvalid }\n />\n )}\n {row.indent > 0 && (\n <div\n key=\"fold\"\n className={ cx('uui-dr_addons-indent', `uui-size-${props.size || settings.dataTable.sizes.body.row}`) }\n style={ { marginInlineStart: getIndent(), width: getWidth() } }\n >\n {row.isFoldable && (\n <ControlIcon\n rawProps={ {\n 'aria-label': row.isFolded ? 'Unfold' : 'Fold',\n role: 'button',\n } }\n key=\"icon\"\n icon={ settings.dataTable.icons.body.foldingIcon }\n cx={ [\n uuiElement.foldingArrow, uuiMarkers.clickable, css.iconContainer,\n ] }\n rotate={ row.isFolded ? '90ccw' : '0' }\n onClick={ () => row.onFold(row) }\n onKeyDown={ handleFold }\n size={ settings.dataTable.sizes.body.iconMap[props.size || settings.dataTable.sizes.body.row] }\n tabIndex={ props.tabIndex }\n />\n )}\n </div>\n )}\n </>\n );\n}\n","import React, { CSSProperties } from 'react';\nimport {\n cx,\n IHasCaption,\n IHasIcon,\n uuiElement,\n Overwrite,\n DataRowProps,\n uuiMarkers,\n uuiMod,\n useIsActive,\n ICanBeActive,\n devLogger, Icon,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { getIconClass } from './helper';\nimport { settings } from '../../settings';\n\nimport css from './VerticalTabButton.module.scss';\nimport { CountIndicator } from '../widgets';\n\ntype VerticalTabButtonMods = {\n /**\n * Defines component size.\n * @default '48'\n */\n size?: '30' | '36' | '48';\n /**\n * Defines component font-weight\n * @default 'semibold'\n */\n weight?: 'semibold' | 'regular';\n};\n\nexport interface VerticalTabButtonModsOverride {}\n\n/** Represents the properties of a VerticalTabButton component. */\nexport type VerticalTabButtonProps<TItem, TId> = Partial<Pick<DataRowProps<TItem, TId>, 'indent' | 'isFolded' | 'isFoldable'>> & Overwrite<VerticalTabButtonMods, VerticalTabButtonModsOverride> & ClickableComponentProps & IHasIcon & IHasCaption & ICanBeActive & {\n /**\n * Defines callback for rendering additional actions and items in the VerticalTabButton.\n */\n renderAddons?: () => React.ReactNode;\n /** Defines is the component showing Notify */\n withNotify?: boolean;\n /**\n * Handles folding change.\n */\n onFold?: () => void;\n /**\n * When isDropdown=true, indicate that dropdown is open with chevron icon\n */\n isOpen?: boolean;\n /**\n * Shows chevron icon, enabling component to act as dropdown toggler\n */\n isDropdown?: boolean;\n /**\n * Icon for dropdown toggler\n */\n dropdownIcon?: Icon;\n /**\n * @deprecated\n * Call to clear toggler value\n */\n onClear?(e?: any): void;\n /**\n * @deprecated\n * Icon for clear value button (usually cross)\n */\n clearIcon?: Icon;\n /**\n * @deprecated\n * Count value to be placed in component\n */\n count?: React.ReactNode;\n};\n\nfunction VerticalTabButtonComponent<TItem, TId>(\n props: VerticalTabButtonProps<TItem, TId>,\n ref: React.ForwardedRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement>,\n) {\n const { isActive } = useIsActive({\n isLinkActive: props.isLinkActive,\n link: props.link,\n isActive: props.isActive,\n });\n\n const styles = [\n css.root,\n 'uui-vertical-tab-button',\n `uui-size-${props.size || settings.verticalTabButton.sizes.default}`,\n isActive && uuiMod.active,\n props.indent > 0 && css.noLeftPadding,\n !props.onClick && props.onFold && css.onlyFoldable,\n ...getIconClass(props),\n props.cx,\n ];\n\n if (props.count !== undefined && props.count !== null) {\n devLogger.warn('VerticalTabButton: count prop is deprecated. Use renderAddons prop instead.');\n }\n\n if (props.onClear !== undefined && props.onClear !== null) {\n devLogger.warn('VerticalTabButton: onClear prop is deprecated. Use renderAddons prop instead.');\n }\n\n if (props.clearIcon !== undefined && props.clearIcon !== null) {\n devLogger.warn('VerticalTabButton: clearIcon prop is deprecated. Use renderAddons prop instead.');\n }\n\n const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.verticalTabButton.icons.dropdownIcon;\n const ClearIcon = props.clearIcon ? props.clearIcon : settings.verticalTabButton.icons.clearIcon;\n\n return (\n <Clickable\n { ...props }\n onClick={ props.onClick || props.onFold }\n rawProps={ {\n role: 'tab',\n ...props.rawProps,\n } }\n cx={ styles }\n ref={ ref }\n >\n {props.indent > 0 && (\n <div\n key=\"fold\"\n className={ cx(css.foldingArea, props.onFold && uuiMarkers.clickable) }\n style={ { '--uui-folding-indent': `${props.indent - 1}` } as CSSProperties }\n onClick={ props.onFold }\n >\n {props.isFoldable && (\n <IconContainer\n rawProps={ {\n 'aria-label': props.isFolded ? 'Unfold' : 'Fold',\n role: 'button',\n } }\n key=\"icon\"\n icon={ settings.verticalTabButton.icons.foldingIcon }\n cx={ [\n uuiElement.foldingArrow, css.iconContainer,\n ] }\n rotate={ props.isFolded ? '90ccw' : '0' }\n size={ settings.dataTable.sizes.body.iconMap[props.size || settings.dataTable.sizes.body.row] }\n />\n )}\n </div>\n )}\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ !props.isDisabled ? props.onIconClick : undefined }\n />\n ) }\n { (props.caption || props.withNotify) && (\n <div className={ css.captionWrapper }>\n { props.caption && <div className={ cx(uuiElement.caption, `uui-vertical-tab-button-weight-${props.weight || settings.verticalTabButton.weight}`) }>{ props.caption }</div> }\n { props.withNotify && <div className={ css.withNotify } /> }\n </div>\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ !props.isDisabled ? props.onIconClick : undefined } />\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n color=\"neutral\"\n size={ settings.verticalTabButton.sizes.countIndicatorMap[props.size || settings.verticalTabButton.sizes.default] }\n caption={ props.count }\n />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ DropdownIcon } flipY={ props.isOpen } />\n )}\n { props.onClear && !props.isDisabled && (\n <IconContainer cx={ uuiMarkers.clickable } icon={ ClearIcon } onClick={ props.onClear } />\n ) }\n { props.renderAddons && props.renderAddons() }\n </Clickable>\n );\n}\n\nexport const VerticalTabButton = React.forwardRef(VerticalTabButtonComponent) as\n <TItem, TId>(props: VerticalTabButtonProps<TItem, TId> & { ref?: React.ForwardedRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement> }) =>\n ReturnType<typeof VerticalTabButtonComponent>;\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IHasChildren, IHasCX, Icon, IHasRawProps, Overwrite } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport { IconButton, LinkButton } from '../buttons';\nimport { settings } from '../../settings';\n\nimport css from './Alert.module.scss';\n\ninterface AlertNotificationAction {\n /*\n * Defines notification action name.\n */\n name: string;\n /*\n * Called when action is clicked\n */\n action: () => void;\n}\n\ninterface AlertMods {\n /** Alert color */\n color: 'info' | 'success' | 'warning' | 'error';\n}\n\nexport interface AlertModsOverride {}\n\nexport interface AlertCoreProps extends IHasChildren, IHasCX, IHasRawProps<React.HTMLAttributes<HTMLDivElement>> {\n /** List of actions to display in the alert. Each action has name and 'action' callback */\n actions?: AlertNotificationAction[];\n /** When specified, a close icon is rendered. onClose callback will be called on clicking the close icon */\n onClose?(): void;\n /** An optional icon to show on the left of the alert */\n icon?: Icon;\n /**\n * Component size. If omitted, 48 size will be used.\n * @default '48'\n */\n size?: '36' | '48';\n}\n\n/** Represents the properties of the Alert component. */\nexport interface AlertProps extends AlertCoreProps, Overwrite<AlertMods, AlertModsOverride> {}\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>((props, ref) => (\n <div\n role=\"alert\"\n ref={ ref }\n className={\n cx(\n 'uui-alert',\n css.root,\n props.color && `uui-color-${props.color}`,\n props.cx,\n `uui-size-${props.size || settings.alert.sizes.default}`,\n )\n }\n { ...props.rawProps }\n >\n <div className={ css.mainPath }>\n <div className={ css.contentWrapper }>\n {props.icon && (\n <div className={ css.iconWrapper }>\n <IconContainer icon={ props.icon } cx={ css.icon } />\n </div>\n )}\n <div className={ css.content }>\n {props.children}\n {props.actions && (\n <div className={ css.actionWrapper }>\n {props.actions.map((action) => (\n <LinkButton\n caption={ action.name }\n onClick={ action.action }\n key={ action.name }\n cx={ css.actionLink }\n size={ settings.alert.sizes.actionMap[props.size || settings.alert.sizes.default] }\n />\n ))}\n </div>\n )}\n </div>\n </div>\n {props.onClose && <IconButton icon={ settings.alert.icons.closeIcon } color=\"neutral\" onClick={ props.onClose } cx={ css.closeIcon } />}\n </div>\n </div>\n));\n\nexport const WarningAlert = React.forwardRef<HTMLDivElement, Omit<AlertProps, 'color'>>((props, ref) => <Alert icon={ settings.alert.icons.warningIcon } color=\"warning\" ref={ ref } { ...props } />);\n\nexport const SuccessAlert = React.forwardRef<HTMLDivElement, Omit<AlertProps, 'color'>>((props, ref) => <Alert icon={ settings.alert.icons.successIcon } color=\"success\" ref={ ref } { ...props } />);\n\nexport const HintAlert = React.forwardRef<HTMLDivElement, Omit<AlertProps, 'color'>>((props, ref) => <Alert icon={ settings.alert.icons.infoIcon } color=\"info\" ref={ ref } { ...props } />);\n\nexport const ErrorAlert = React.forwardRef<HTMLDivElement, Omit<AlertProps, 'color'>>((props, ref) => <Alert icon={ settings.alert.icons.errorIcon } color=\"error\" ref={ ref } { ...props } />);\n","import { Dropdown as uuiDropdown } from '@epam/uui-components';\nimport type { DropdownProps } from '@epam/uui-core';\nimport { withMods } from '@epam/uui-core';\n\nexport const Dropdown = withMods<DropdownProps, DropdownProps>(uuiDropdown);\n","import React, { useRef, useContext, useState } from 'react';\nimport { offset } from '@floating-ui/react';\nimport {\n cx,\n withMods,\n uuiMod,\n UuiContext,\n IHasChildren,\n VPanelProps,\n IHasIcon,\n ICanRedirect,\n IHasCaption,\n IDisableable,\n IAnalyticableClick,\n IHasCX,\n IClickable,\n DropdownBodyProps,\n IDropdownTogglerProps,\n DropdownProps,\n getDir,\n uuiMarkers,\n isEventTargetInsideClickable,\n} from '@epam/uui-core';\nimport { Text, Anchor, IconContainer, Dropdown, FlexSpacer } from '@epam/uui-components';\nimport type { DropdownContainerProps } from '@epam/uui-components';\nimport { DropdownContainer } from './DropdownContainer';\nimport { Switch } from '../inputs/Switch';\nimport { IconButton } from '../buttons';\nimport { settings } from '../../settings';\n\nimport css from './DropdownMenu.module.scss';\n\nexport interface IDropdownMenuItemProps extends IDropdownTogglerProps, IHasCaption, IHasIcon, ICanRedirect, IHasCX, IDisableable, IAnalyticableClick {\n isSelected?: boolean;\n isActive?: boolean;\n indent?: boolean;\n}\n\nexport interface DropdownMenuContainerProps extends VPanelProps, IHasChildren, DropdownBodyProps, Pick<DropdownContainerProps, 'focusLock' | 'maxHeight'> {\n closeOnKey?: React.KeyboardEvent<HTMLElement>['key'];\n minWidth?: number;\n}\n\nexport enum IDropdownControlKeys {\n ENTER = 'Enter',\n ESCAPE = 'Escape',\n LEFT_ARROW = 'ArrowLeft',\n RIGHT_ARROW = 'ArrowRight',\n UP_ARROW = 'ArrowUp',\n DOWN_ARROW = 'ArrowDown'\n}\n\nfunction DropdownMenuContainer(props: DropdownMenuContainerProps) {\n const menuRef = useRef<HTMLElement>(null);\n const [currentlyFocused, setFocused] = useState<number>(0);\n\n const getMenuItems = (): HTMLElement[] => {\n if (!menuRef.current) return [];\n return Array.from(menuRef.current.querySelectorAll(`[role=\"menuitem\"]:not(.${uuiMod.disabled})`));\n };\n\n const changeFocus = (nextFocusedIndex: number) => {\n const menuItems = getMenuItems();\n if (menuItems.length > 0 && nextFocusedIndex >= 0 && nextFocusedIndex < menuItems.length) {\n setFocused(nextFocusedIndex);\n const targetItem = menuItems[nextFocusedIndex];\n targetItem.focus();\n }\n };\n\n const handleArrowKeys = (e: React.KeyboardEvent<HTMLElement>) => {\n const menuItems = getMenuItems();\n const lastMenuItemsIndex = menuItems.length - 1;\n\n if (e.key === IDropdownControlKeys.UP_ARROW) {\n changeFocus(currentlyFocused > 0 ? currentlyFocused - 1 : lastMenuItemsIndex);\n e.stopPropagation(); // TODO: need improvement to track event only for current overlay\n e.preventDefault();\n } else if (e.key === IDropdownControlKeys.DOWN_ARROW) {\n changeFocus(currentlyFocused < lastMenuItemsIndex ? currentlyFocused + 1 : 0);\n e.stopPropagation(); // TODO: need improvement to track event only for current overlay\n e.preventDefault();\n } else if (e.key === props.closeOnKey && props.onClose) {\n e.stopPropagation(); // TODO: need improvement to track event only for current overlay\n props.onClose();\n }\n };\n\n return (\n <DropdownContainer\n { ...props }\n rawProps={ { ...props.rawProps, role: 'menu' } }\n ref={ menuRef }\n width={ props.minWidth }\n lockProps={ { onKeyDown: handleArrowKeys } }\n cx={ [props.cx] }\n />\n );\n}\n\nexport const DropdownMenuBody = withMods<DropdownMenuContainerProps, DropdownMenuContainerProps>(\n DropdownMenuContainer,\n () => ['uui-dropdownMenu-body'],\n (props) => {\n return ({ closeOnKey: IDropdownControlKeys.ESCAPE, ...props });\n },\n);\n\nexport const DropdownMenuButton = React.forwardRef<any, IDropdownMenuItemProps>((props, ref) => {\n const context = useContext(UuiContext);\n\n const {\n icon, iconPosition, onIconClick, caption, isDisabled, isSelected, isActive, link, href, onClick, toggleDropdownOpening, isDropdown, isOpen, target,\n } = props;\n\n const handleClick = (event: React.MouseEvent<HTMLElement>) => {\n if (isDisabled || !onClick) return;\n !isEventTargetInsideClickable(event) && onClick(event);\n context.uuiAnalytics.sendEvent(props.clickAnalyticsEvent);\n };\n\n const handleOpenDropdown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.key === IDropdownControlKeys.RIGHT_ARROW && isDropdown) {\n toggleDropdownOpening(true);\n } else if (event.key === IDropdownControlKeys.ENTER && onClick) {\n onClick(event);\n // Fix bug when click event is triggered after Enter key.\n // Tricky case when modal window is opened from dropdown menu and click on modal header cross is triggered, that leads to modal close.\n // https://github.com/epam/UUI/issues/2754\n event.preventDefault();\n }\n };\n\n const getMenuButtonContent = () => {\n const isIconBefore = Boolean(icon && iconPosition !== 'right');\n const isIconAfter = Boolean(icon && iconPosition === 'right');\n const iconElement = (\n <IconButton\n icon={ icon }\n color={ isActive ? 'primary' : 'neutral' }\n onClick={ onIconClick }\n isDisabled={ isDisabled }\n cx={ cx(css.icon, iconPosition === 'right' ? css.iconAfter : css.iconBefore) }\n />\n );\n\n return (\n <>\n { isIconBefore && iconElement }\n <Text cx={ props.indent && css.indent }>{ caption }</Text>\n { isIconAfter && (\n <>\n <FlexSpacer />\n { iconElement }\n </>\n ) }\n </>\n );\n };\n\n const isAnchor = Boolean(link || href);\n\n const itemClassNames = cx(\n props.cx,\n css.itemRoot,\n isDisabled && uuiMod.disabled,\n isActive && uuiMod.active,\n isOpen && uuiMod.opened,\n (!isDisabled && onClick) && uuiMarkers.clickable,\n );\n\n return isAnchor ? (\n <Anchor\n cx={ cx(css.link, itemClassNames) }\n link={ link }\n href={ href }\n rawProps={ { role: 'menuitem', tabIndex: isDisabled ? -1 : 0 } }\n onClick={ handleClick }\n isDisabled={ isDisabled }\n target={ target }\n >\n { getMenuButtonContent() }\n </Anchor>\n ) : (\n <div\n tabIndex={ isDisabled ? -1 : 0 }\n role=\"menuitem\"\n onKeyDown={ isDisabled ? null : handleOpenDropdown }\n className={ itemClassNames }\n onClick={ handleClick } // update flex row data\n ref={ ref }\n >\n { getMenuButtonContent() }\n { isSelected && (\n <>\n <FlexSpacer />\n <IconContainer icon={ settings.dropdownMenu.icons.acceptIcon } cx={ css.selectedMark } />\n </>\n ) }\n </div>\n );\n});\n\nexport function DropdownMenuSplitter(props: IHasCX) {\n return (\n <div className={ cx(props.cx, css.splitterRoot) }>\n <hr className={ css.splitter } />\n </div>\n );\n}\n\ninterface IDropdownMenuHeader extends IHasCX, IHasCaption {}\n\nexport function DropdownMenuHeader(props: IDropdownMenuHeader) {\n return (\n <div className={ cx('uui-dropdown-menu-header', props.cx, css.headerRoot) }>\n <span className={ css.header }>{ props.caption }</span>\n </div>\n );\n}\n\ninterface IDropdownSubMenu extends IHasChildren, IHasCaption, IHasIcon, IDropdownMenuItemProps {\n openOnHover?: boolean;\n}\n\nexport function DropdownSubMenu(props: IDropdownSubMenu) {\n const subMenuMiddleware: DropdownProps['middleware'] = [\n offset(({ placement }) => {\n if (\n placement === 'right-start'\n || placement === 'left-start'\n ) {\n return { crossAxis: -6, mainAxis: 0 };\n } else {\n return { crossAxis: 6, mainAxis: 0 };\n }\n }),\n ];\n\n const isRtl = getDir() === 'rtl';\n\n return (\n <Dropdown\n openOnHover={ props.openOnHover || true }\n closeOnMouseLeave=\"boundary\"\n openDelay={ 400 }\n closeDelay={ 400 }\n placement={ isRtl ? 'left-start' : 'right-start' }\n middleware={ subMenuMiddleware }\n renderBody={ (dropdownProps) => !props.isDisabled && (<DropdownMenuBody closeOnKey={ IDropdownControlKeys.LEFT_ARROW } { ...props } { ...dropdownProps } />) }\n renderTarget={ ({ toggleDropdownOpening, ...targetProps }) => (\n <DropdownMenuButton\n cx={ cx(isRtl ? css.submenuRootItemRtl : css.submenuRootItem) }\n icon={ settings.dropdownMenu.icons.dropdownIcon }\n iconPosition=\"right\"\n isDropdown={ true }\n toggleDropdownOpening={ toggleDropdownOpening }\n { ...props }\n { ...targetProps }\n />\n ) }\n />\n );\n}\n\ninterface IDropdownMenuSwitchButton extends IHasCX, IHasCaption, IHasIcon, IDisableable, IAnalyticableClick, IClickable {\n onValueChange: (value: boolean) => void;\n isSelected: boolean;\n}\n\nexport function DropdownMenuSwitchButton(props: IDropdownMenuSwitchButton) {\n const context = useContext(UuiContext);\n\n const {\n icon, caption, isDisabled, isSelected, onValueChange,\n } = props;\n\n const onHandleValueChange = (value: boolean) => {\n if (isDisabled || !onValueChange) return;\n onValueChange(value);\n context.uuiAnalytics.sendEvent(props.clickAnalyticsEvent);\n };\n\n const handleKeySelect = (e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === IDropdownControlKeys.ENTER) {\n onHandleValueChange(!isSelected);\n }\n };\n\n return (\n <div\n className={ cx(\n props.cx,\n css.itemRoot,\n isDisabled && uuiMod.disabled,\n (!isDisabled || onValueChange) && uuiMarkers.clickable,\n ) }\n onClick={ () => onHandleValueChange(!isSelected) }\n role=\"menuitem\"\n onKeyDown={ handleKeySelect }\n tabIndex={ isDisabled ? -1 : 0 }\n >\n { icon && <IconContainer icon={ icon } cx={ css.iconBefore } /> }\n <Text>{ caption }</Text>\n <FlexSpacer />\n <Switch value={ isSelected } tabIndex={ -1 } onValueChange={ onHandleValueChange } />\n </div>\n );\n}\n","import { Overwrite, withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './Accordion.module.scss';\n\ninterface AccordionMods {\n /**\n * Defines component displaying mode.\n * @default 'block'\n */\n mode?: 'block' | 'inline';\n /*\n * Defines component horizontal padding.\n */\n padding?: '0' | '6' | '12' | '18';\n}\n\nexport interface AccordionModsOverride {}\n\n/** Represents the properties of the Accordion component. */\nexport type AccordionProps = Overwrite<AccordionMods, AccordionModsOverride> & uuiComponents.AccordionProps;\n\nfunction applyAccordionMods(mods: AccordionProps) {\n return [\n css.root,\n css[`mode-${mods.mode || 'block'}`],\n mods.padding && css['padding-' + mods.padding],\n ];\n}\n\nexport const Accordion = withMods<uuiComponents.AccordionProps, AccordionProps>(uuiComponents.Accordion, applyAccordionMods, (mods) => ({\n dropdownIcon: mods.dropdownIcon !== null && settings.accordion.icons.dropdownIcon,\n}));\n","import css from './FlexRow.module.scss';\nimport * as uuiCore from '@epam/uui-core';\nimport { FlexCell as uuiFlexCell } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\n\ntype FlexCellMods = {};\n\n/** Represents the properties of the FlexCell component. */\nexport type FlexCellProps = uuiCore.FlexCellProps & FlexCellMods;\n\nexport const FlexCell = withMods<uuiCore.FlexCellProps, FlexCellProps>(uuiFlexCell, () => [css.flexCell]);\n","import React, { forwardRef } from 'react';\nimport {\n devLogger,\n FlexRowProps as uuiFlexRowProps,\n isEventTargetInsideClickable,\n uuiMarkers,\n cx, Overwrite,\n} from '@epam/uui-core';\n\nimport { settings } from '../../../settings';\n\nimport css from './FlexRow.module.scss';\n\nexport interface FlexRowMods {\n /**\n * Defines row size\n * @default '36'\n */\n size?: null | '24' | '30' | '36' | '42' | '48';\n /** Pass true, to enable row top border */\n borderTop?: boolean;\n /** Pass true, to enable row bottom border */\n borderBottom?: boolean;\n /** Defines row margin */\n margin?: '12' | '24';\n /** Defines horizontal row padding */\n padding?: '6' | '12' | '18' | '24';\n /**\n * @deprecated\n * The `spacing` property is deprecated and will be removed in future versions. Please use `columnGap` instead.\n * Defines row spacing\n * */\n spacing?: '6' | '12' | '18';\n /** Pass true, to show a top shadow */\n topShadow?: boolean;\n /** Defines vertical row padding */\n vPadding?: '12' | '18' | '24' | '36' | '48';\n /** Flexbox column gap property [Flexbox Guide](https://css-tricks.com/snippets/css/a-guide-to-flexbox/#aa-gap-row-gap-column-gap) */\n columnGap?: number | '6' | '12' | '18' | '24' | '36';\n /** Flexbox row gap property [Flexbox Guide](https://css-tricks.com/snippets/css/a-guide-to-flexbox/#aa-gap-row-gap-column-gap) */\n rowGap?: number | '6' | '12' | '18' | '24' | '36';\n /** Defines row background */\n background?: 'surface-main';\n}\n\nexport interface FlexRowModsOverride {}\n\n/** Represents the properties of the FlexRow component. */\nexport interface FlexRowProps extends uuiFlexRowProps, Overwrite<FlexRowMods, FlexRowModsOverride> {}\n\nexport const FlexRow = forwardRef<HTMLDivElement, FlexRowProps>((props, ref) => {\n if (__DEV__) {\n if (props.spacing) {\n devLogger.warn('[FlexRow]: The `spacing` property is deprecated and will be removed in future versions. Please use `columnGap` instead.');\n }\n }\n\n const classNames = cx([\n css.root,\n 'uui-flex-row',\n props.onClick && uuiMarkers.clickable,\n props.cx,\n props.size !== null && 'uui-size-' + (props.size || settings.flexRow.sizes.default),\n props.alignItems && css.alignItems,\n props.justifyContent && css.justifyContent,\n props.padding && css.padding,\n props.vPadding && css.vPadding,\n props.margin && css.margin,\n props.topShadow && css.topShadow,\n props.borderBottom && css.borderBottom,\n props.borderTop && css.borderTop,\n props.columnGap && css.columnGap,\n props.rowGap && css.rowGap,\n props.spacing && css.spacing,\n props.background && `uui-flex-row-bg-${props.background}`,\n ]);\n\n let alignItemsValue = props.alignItems;\n if (alignItemsValue === 'top') {\n alignItemsValue = 'flex-start';\n } else if (alignItemsValue === 'bottom') {\n alignItemsValue = 'flex-end';\n }\n\n const style = {\n ...(props.alignItems && { '--uui-flex-row-align-items': alignItemsValue }),\n ...(props.justifyContent && { '--uui-flex-row-justify-content': props.justifyContent }),\n ...(props.columnGap && { '--uui-flex-row-column-gap': `${props.columnGap}px` }),\n ...(props.rowGap && { '--uui-flex-row-row-gap': `${props.rowGap}px` }),\n ...(props.padding && { '--uui-flex-row-padding': `${props.padding}px` }),\n ...(props.vPadding && { '--uui-flex-row-v-padding': `${props.vPadding}px` }),\n ...(props.margin && { '--uui-flex-row-margin': `${props.margin}px` }),\n ...(props.spacing && { '--uui-flex-row-spacing': `${props.spacing}px` }),\n };\n\n return (\n <div\n ref={ ref }\n onClick={ props.onClick ? (e) => !isEventTargetInsideClickable(e) && props.onClick(e) : undefined }\n className={ classNames }\n { ...props.rawProps }\n style={ {\n ...style,\n ...props.rawProps?.style,\n } }\n >\n {props.children}\n </div>\n );\n});\n","import { withMods, VPanelProps } from '@epam/uui-core';\nimport { VPanel } from '@epam/uui-components';\nimport css from './Panel.module.scss';\n\ninterface PanelMods {\n /*\n * Pass true to show a shadow.\n */\n shadow?: boolean;\n /*\n * Defines component margin.\n */\n margin?: '24';\n /*\n * Defines component background.\n */\n background?: 'surface-main';\n}\n\n/** Represents the properties of the Panel component. */\nexport type PanelProps = VPanelProps & PanelMods;\n\nexport const Panel = withMods<VPanelProps, PanelProps>(VPanel, (props) => [\n 'uui-panel',\n css.root,\n props.shadow && css.shadow,\n props.margin && css['margin-' + props.margin],\n props.background && css[`uui-${props.background}`],\n]);\n","import { Overwrite, withMods, Icon } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { Tooltip } from '../overlays/Tooltip';\nimport { settings } from '../../settings';\n\nimport css from './LabeledInput.module.scss';\n\ninterface LabeledInputMods {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n}\n\nexport interface LabeledInputModsOverride {}\n\n/** Represents the properties of the LabeledInput component. */\nexport interface LabeledInputProps extends uuiComponents.LabeledInputProps, Overwrite<LabeledInputMods, LabeledInputModsOverride> {}\n\nfunction applyLabeledInputMods(mods: LabeledInputMods) {\n return [\n 'uui-labeled-input',\n css.root,\n 'uui-size-' + (mods.size || settings.labeledInput.sizes.default),\n ];\n}\n\nfunction getInfoIconForSize(size: LabeledInputProps['size']): Icon {\n return size <= '30'\n ? settings.labeledInput.icons.fillInfoIcon\n : settings.labeledInput.icons.infoIcon;\n}\n\nfunction applyLabeledInputProps(props: LabeledInputProps) {\n return {\n Tooltip: props.Tooltip || Tooltip,\n infoIcon: props.infoIcon || getInfoIconForSize(props.size),\n };\n}\n\nexport const LabeledInput = withMods<uuiComponents.LabeledInputProps, LabeledInputProps>(\n uuiComponents.LabeledInput,\n applyLabeledInputMods,\n applyLabeledInputProps,\n);\n","import { cx, directionMode, ICanBeReadonly, ICanFocus, IDisableable, IEditable, IHasCX, IHasDirection, IHasForwardedRef, IHasRawProps } from '@epam/uui-core';\nimport { RadioInput, RadioInputProps } from '../inputs';\nimport css from './RadioGroup.module.scss';\nimport * as React from 'react';\n\nexport interface RadioGroupItem<TValue> extends IDisableable, Omit<RadioInputProps, 'id' | 'onValueChange' | 'value' | 'name'> {\n /** RadioInput label. Can be a string, or React.ReactNode */\n name?: React.ReactNode;\n /** Render callback for checkbox label\n * If omitted, 'name' prop value will be rendered\n */\n renderName?: () => React.ReactNode;\n /** Item ID to put into selection */\n id: TValue;\n}\n\nexport interface RadioGroupProps<TValue>\n extends IHasCX,\n IEditable<TValue>,\n IDisableable,\n IHasDirection,\n ICanBeReadonly,\n IHasRawProps<React.FieldsetHTMLAttributes<HTMLFieldSetElement>>,\n IHasForwardedRef<HTMLFieldSetElement>,\n ICanFocus<HTMLFieldSetElement> {\n /** Array of checkbox items to be rendered in group */\n items: RadioGroupItem<TValue>[];\n /** Defines group components size */\n size?: RadioInputProps['size'];\n /** Defines native HTML name attribute for each group member */\n name?: string;\n}\n\nexport function RadioGroup<TValue>(props: RadioGroupProps<TValue>) {\n const direction = props.direction || 'vertical';\n\n const handleChange = (newVal: TValue) => {\n if (newVal !== props.value) {\n props.onValueChange(newVal);\n }\n };\n\n return (\n <fieldset\n ref={ props.forwardedRef }\n className={ cx(css.root, directionMode[direction], props.cx) }\n onFocus={ props.onFocus }\n onBlur={ props.onBlur }\n { ...props.rawProps }\n >\n { props.items.map((i) => {\n const { id, name, renderName, ...restItemProps } = i;\n return (\n <RadioInput\n name={ props.name }\n renderLabel={ i.renderName ? i.renderName : () => i.name }\n value={ props.value === i.id }\n onValueChange={ () => handleChange(i.id) }\n isDisabled={ props.isDisabled || i.isDisabled }\n isReadonly={ props.isReadonly }\n isInvalid={ props.isInvalid }\n isRequired={ props.isRequired }\n key={ i.id.toString() }\n size={ props.size || i.size }\n { ...restItemProps }\n />\n );\n }) }\n </fieldset>\n );\n}\n","import React, {\n forwardRef,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport cx from 'classnames';\nimport { useOverlayScrollbars } from 'overlayscrollbars-react';\nimport type { ScrollbarsAutoHideBehavior } from 'overlayscrollbars';\nimport { IHasCX, IHasRawProps, useScrollShadows } from '@epam/uui-core';\nimport css from './ScrollBars.module.scss';\nimport './ScrollBars.scss';\n\nexport type ScrollbarsApi = {\n /** Reference to the scrollbar container element */\n container: HTMLElement | null;\n /** Reference to the scrollable view element */\n view: HTMLElement | null;\n};\n\nexport type ScrollbarProps = IHasCX & IHasRawProps<React.HTMLAttributes<HTMLDivElement>> & {\n /** Callback fired when scroll position changes */\n onScroll?: React.UIEventHandler<any>;\n /**\n * The scrollbars auto hide behavior\n * - 'never' - The scrollbars are always hidden.\n * - 'scroll' - The scrollbars are hidden unless the user scrolls.\n * - 'move' - The scrollbars are hidden unless the pointer moves in the host element or the user scrolls.\n * - 'leave' - The scrollbars are hidden if the pointer leaves the host element or unless the user scrolls.\n * @default 'never'\n */\n autoHide?: ScrollbarsAutoHideBehavior;\n /**\n * Delay in milliseconds before scrollbars hide after scrolling stops\n * @default 1300\n */\n autoHideDelay?: number;\n /**\n * Visual effect to show at the top when content is scrolled down\n * - 'line': shows a thin line border\n * - 'shadow': shows a gradient shadow\n * - 'none': no visual effect\n * @default 'none'\n */\n overflowTopEffect?: 'line' | 'shadow' | 'none';\n /**\n * Visual effect to show at the bottom when content can be scrolled down\n * - 'line': shows a thin line border\n * - 'shadow': shows a gradient shadow\n * - 'none': no visual effect\n * @default 'none'\n */\n overflowBottomEffect?: 'line' | 'shadow' | 'none';\n children?: ReactNode | undefined;\n};\n\nenum uuiScrollbars {\n uuiShadowTop = 'uui-shadow-top',\n uuiShadowBottom = 'uui-shadow-bottom',\n uuiLineTop = 'uui-line-top',\n uuiLineBottom = 'uui-line-bottom'\n}\n\nexport const ScrollBars = forwardRef<ScrollbarsApi, ScrollbarProps>((props, ref) => {\n const {\n cx: outerCx,\n children,\n overflowTopEffect = 'none',\n overflowBottomEffect = 'none',\n\n onScroll,\n\n autoHide = 'never',\n autoHideDelay,\n rawProps,\n ...rest\n } = props;\n const [shadowElements, setShadowElements] = useState<{ host: HTMLElement | null, viewport: HTMLElement | null }>({\n host: null,\n viewport: null,\n });\n\n const hostRef = useRef<HTMLDivElement | null>(null);\n const viewportRef = useRef<HTMLElement | null>(null);\n const containerRef = useRef<HTMLElement | null>(null);\n\n const [initialize, osInstance] = useOverlayScrollbars({\n options: {\n scrollbars: {\n theme: 'uui-scroll-bars',\n autoHide: autoHide,\n autoHideDelay: typeof autoHideDelay === 'number' ? autoHideDelay : undefined,\n },\n },\n events: {\n scroll: (_inst, ev) => {\n onScroll?.(ev as unknown as React.UIEvent<ScrollbarsApi>);\n },\n },\n });\n\n useEffect(() => {\n const host = hostRef.current;\n const vp = viewportRef.current;\n if (!host || !vp) return;\n\n initialize({\n target: host,\n elements: {\n viewport: vp,\n content: vp,\n },\n });\n\n return () => {\n osInstance()?.destroy();\n };\n }, [initialize, osInstance]);\n\n useEffect(() => {\n const instance = osInstance();\n if (!instance) return;\n\n const elements = instance.elements();\n setShadowElements({\n host: elements.host,\n viewport: elements.viewport,\n });\n }, [osInstance]);\n\n useScrollShadows(shadowElements.host, shadowElements.viewport);\n\n useImperativeHandle(ref, (): ScrollbarsApi => {\n return {\n container: containerRef.current,\n view: viewportRef.current,\n };\n }, []);\n\n return (\n <div\n ref={ hostRef }\n className={ cx(\n css.root,\n outerCx,\n 'uui-scroll-bars',\n overflowTopEffect === 'shadow' && uuiScrollbars.uuiShadowTop,\n overflowBottomEffect === 'shadow' && uuiScrollbars.uuiShadowBottom,\n overflowTopEffect === 'line' && uuiScrollbars.uuiLineTop,\n overflowBottomEffect === 'line' && uuiScrollbars.uuiLineBottom,\n ) }\n { ...rest }\n data-overlayscrollbars-initialize=\"\"\n >\n <div\n className={ css.viewport }\n data-overlayscrollbars-contents=\"\"\n ref={ (node) => { viewportRef.current = node; } }\n { ...rawProps }\n >\n {children}\n </div>\n </div>\n );\n});\n\nScrollBars.displayName = 'ScrollBars';\n","import React, { HTMLAttributes } from 'react';\nimport {\n IHasCX, IEditable, VirtualListState, IHasRawProps, useVirtualList, cx, UseVirtualListProps,\n} from '@epam/uui-core';\nimport { Blocker } from './Blocker';\nimport { ScrollBars } from './ScrollBars';\nimport type { ScrollbarsApi, ScrollbarProps } from './ScrollBars';\nimport css from './VirtualList.module.scss';\n\nexport interface VirtualListRenderRowsParams<ListContainer extends HTMLElement = any> {\n listContainerRef: React.MutableRefObject<ListContainer>;\n estimatedHeight: number;\n offsetY: number;\n}\ntype VirtualListRenderRows<List extends HTMLElement = any> = {\n rows?: React.ReactNode[];\n renderRows: (config: VirtualListRenderRowsParams<List>) => React.ReactNode;\n} | {\n rows: React.ReactNode[];\n renderRows?: (config: VirtualListRenderRowsParams<List>) => React.ReactNode;\n};\n\ninterface BaseVirtualListProps\n extends IHasCX,\n IEditable<VirtualListState>,\n IHasRawProps<HTMLAttributes<HTMLDivElement>>,\n Pick<UseVirtualListProps, 'rowsCount' | 'rowsSelector' | 'onScroll'>,\n Pick<ScrollbarProps, 'overflowTopEffect' | 'overflowBottomEffect'> {\n /** HTML role attribute to place on list container */\n role?: React.HTMLAttributes<HTMLDivElement>['role'];\n /** Pass true, to enable Blocker while list loading */\n isLoading?: boolean;\n /**\n * Render callback for virtual list loading blocker\n * If omitted, default UUI `Blocker` component will be rendered\n */\n renderBlocker?: (props: { isLoading: boolean }) => React.ReactNode;\n}\n\nexport type VirtualListProps<List extends HTMLElement = any> = BaseVirtualListProps & VirtualListRenderRows<List>;\n\nexport const VirtualList = React.forwardRef<ScrollbarsApi, VirtualListProps>((props, ref) => {\n const {\n listContainerRef, offsetY, handleScroll, estimatedHeight, scrollContainerRef,\n } = useVirtualList({\n value: props.value,\n onValueChange: props.onValueChange,\n onScroll: props.onScroll,\n rowsCount: props.rowsCount,\n rowsSelector: props.rowsSelector,\n });\n\n React.useImperativeHandle(ref, () => scrollContainerRef.current, [scrollContainerRef.current]);\n\n const renderRows = () =>\n props.renderRows?.({\n listContainerRef, estimatedHeight, offsetY,\n }) || (\n <div className={ css.listContainer } style={ { minHeight: `${estimatedHeight}px` } }>\n <div ref={ listContainerRef } role={ props.role } style={ { marginTop: offsetY } }>\n {props.rows}\n </div>\n </div>\n );\n\n const scrollBarsRef = React.useCallback((scrollbars: ScrollbarsApi) => {\n if (!scrollbars?.view) return;\n scrollContainerRef.current = scrollbars.view;\n }, []);\n\n return (\n <ScrollBars\n cx={ cx(css.scrollContainer, props.cx) }\n onScroll={ handleScroll }\n ref={ scrollBarsRef }\n rawProps={ props.rawProps }\n overflowTopEffect={ props.overflowTopEffect }\n overflowBottomEffect={ props.overflowBottomEffect }\n >\n {renderRows()}\n <Blocker isEnabled={ props.isLoading } />\n </ScrollBars>\n );\n});\n","import * as uuiComponents from '@epam/uui-components';\nimport type { Overwrite } from '@epam/uui-core';\nimport { withMods } from '@epam/uui-core';\nimport { settings } from '../../settings';\n\ninterface RichTextViewMods {\n /**\n * Defines component size.\n * @default '14'\n */\n size?: '12' | '14' | '16';\n}\n\nexport interface RichTextViewModsOverride {}\n\nexport interface RichTextViewProps extends uuiComponents.RichTextViewProps, Overwrite<RichTextViewMods, RichTextViewModsOverride> {}\n\nexport const RichTextView = withMods<uuiComponents.RichTextViewProps, RichTextViewProps>(\n uuiComponents.RichTextView,\n (mods: RichTextViewMods) => ['uui-typography', `uui-typography-size-${mods.size || settings.richTextView.sizes.default}`],\n);\n","import * as React from 'react';\nimport {\n IHasCX,\n DataRowProps,\n IDataSourceView,\n cx,\n DataSourceState,\n} from '@epam/uui-core';\nimport { VerticalTabButton } from '../buttons';\nimport { VirtualList } from './VirtualList';\nimport { useMemo } from 'react';\nimport { TextPlaceholder } from '../typography';\n\n/**\n * Properties for a Tree component\n */\nexport interface TreeProps<TItem, TId> extends IHasCX {\n /**\n * View to get data for the tree. Use dataSource.useView(...) to get the view.\n */\n view: IDataSourceView<TItem, TId, any>;\n /**\n * Render callback for tree row.\n * If not provided, VerticalTabButton will be used by default.\n */\n renderRow?: (row: DataRowProps<TItem, TId>) => React.ReactNode;\n /**\n * Size for default VerticalTabButton renderer.\n * Default: '36'\n */\n size?: '30' | '36' | '48';\n /**\n * DataSourceState state\n */\n value: DataSourceState;\n /**\n * Callback to handle changes in DataSourceState.\n */\n onValueChange: React.Dispatch<React.SetStateAction<DataSourceState<Record<string, any>, any>>>;\n /**\n * Function to get the caption for each item.\n * @param item\n */\n getCaption: (item: TItem) => string;\n /**\n * Optional function to render additional elements in the row.\n * @param row\n */\n renderAddons?: (row: DataRowProps<TItem, TId>) => React.ReactNode;\n}\n\nfunction TreeRowRenderer<TItem, TId = string>(props: {\n row: DataRowProps<TItem, TId>;\n size: '30' | '36' | '48';\n getCaption: (item: TItem) => string;\n renderAddons?: (row: DataRowProps<TItem, TId>) => React.ReactNode;\n}) {\n const { row, size } = props;\n const handleClick = React.useCallback(() => {\n const cb = row.onClick || row.onSelect;\n if (cb && !row.isDisabled) {\n cb(row);\n }\n }, [row]);\n const handleFold = React.useCallback(() => row.onFold && row.onFold(row), [row]);\n const renderAddons = React.useCallback(() => props.renderAddons && props.renderAddons(row), [props.renderAddons, row]);\n const isActive = row.isSelected;\n const getCaption = React.useCallback((value: TItem): string => {\n return props.getCaption(value);\n }, [props.getCaption]);\n\n return (\n <VerticalTabButton\n { ...row }\n isActive={ isActive }\n caption={ row.isLoading ? <TextPlaceholder /> : getCaption(row.value) }\n size={ size }\n onClick={ (row.onClick || row.onSelect) ? handleClick : undefined }\n link={ row.link }\n onFold={ row.onFold ? handleFold : undefined }\n weight={ (row.isChildrenSelected || row.isSelected || isActive) ? 'semibold' : 'regular' }\n renderAddons={ renderAddons }\n />\n );\n}\n\nconst MemoizedTreeRowRenderer = React.memo(TreeRowRenderer) as typeof TreeRowRenderer;\n\nexport function Tree<TItem, TId = string>(props: TreeProps<TItem, TId>) {\n const {\n view,\n renderRow,\n size = '36',\n cx: propsCx,\n value,\n onValueChange,\n } = props;\n\n const rows = view.getVisibleRows();\n const rowsCount = view.getListProps().rowsCount ?? rows.length;\n\n const renderRowFunction = renderRow || (({ key, ...row }: DataRowProps<TItem, TId>) => (\n <MemoizedTreeRowRenderer\n key={ key }\n row={ row }\n size={ size }\n getCaption={ props.getCaption }\n renderAddons={ props.renderAddons }\n />\n ));\n\n const renderedRows = useMemo(\n () => rows.map((row) => renderRowFunction(row)),\n [rows, renderRowFunction, size],\n );\n\n return (\n <VirtualList\n value={ value }\n onValueChange={ onValueChange }\n rowsCount={ rowsCount }\n rows={ renderedRows }\n cx={ cx(propsCx) }\n role=\"tree\"\n />\n );\n}\n","import * as React from 'react';\nimport { cx, directionMode, ICanBeInvalid, ICanBeReadonly, IDisableable, IEditable, IHasCX, IHasDirection, IHasForwardedRef, IHasRawProps } from '@epam/uui-core';\nimport { Checkbox, CheckboxProps } from '../inputs';\nimport css from './CheckboxGroup.module.scss';\n\ninterface CheckboxGroupItem<TValue> extends Omit<CheckboxProps, 'id' | 'onValueChange' | 'value'> {\n /** Checkbox label. Can be a string, or React.ReactNode */\n name?: React.ReactNode;\n /** Item ID to put into selection */\n id: TValue;\n /** Render callback for checkbox label.\n * If omitted, 'name' prop value will be rendered.\n */\n renderName?: () => React.ReactNode;\n}\n\nexport interface CheckboxGroupProps<TValue>\n extends ICanBeInvalid,\n IHasCX,\n IEditable<TValue[]>,\n IDisableable,\n IHasDirection,\n ICanBeReadonly,\n IHasRawProps<React.FieldsetHTMLAttributes<HTMLFieldSetElement>>,\n IHasForwardedRef<HTMLFieldSetElement> {\n /** Array of checkbox items to be rendered in group */\n items: CheckboxGroupItem<TValue>[];\n /** Defines group components size */\n size?: CheckboxProps['size'];\n}\n\nexport function CheckboxGroup<TValue>(props: CheckboxGroupProps<TValue>) {\n const currentValue = props.value || [];\n const direction = props.direction || 'vertical';\n\n const handleChange = (selected: boolean, newVal: TValue) => {\n let newSelection;\n const actualValue = props.value || [];\n\n if (selected) {\n newSelection = actualValue.concat([newVal]);\n } else {\n newSelection = actualValue.filter((i) => i !== newVal);\n }\n\n props.onValueChange(newSelection);\n };\n\n return (\n <fieldset\n ref={ props.forwardedRef }\n className={ cx(css.root, directionMode[direction], props.cx) }\n { ...props.rawProps }\n >\n { props.items.map((i) => {\n const { id, name, renderName, ...restItemProps } = i;\n return (\n <Checkbox\n renderLabel={ i.renderName ? i.renderName : () => i.name }\n value={ currentValue.indexOf(i.id) !== -1 }\n onValueChange={ (selected) => handleChange(selected, i.id) }\n isDisabled={ props.isDisabled }\n isReadonly={ props.isReadonly }\n isInvalid={ props.isInvalid }\n isRequired={ props.isRequired }\n key={ i.id.toString() }\n size={ props.size || i.size }\n { ...restItemProps }\n />\n );\n }) }\n </fieldset>\n );\n}\n","import { type IControlled } from '@epam/uui-core';\nimport React, { forwardRef, type KeyboardEvent, type KeyboardEventHandler, ForwardedRef } from 'react';\nimport { TabButton, TabButtonProps } from '../buttons/TabButton';\nimport { FlexRow, FlexRowProps } from './FlexItems';\n\ntype TabId = string;\n\ntype TabElement = | HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement;\n\nexport type TabsItemProps = TabButtonProps & {\n /** Ref to the tab button. */\n ref?: ForwardedRef<TabElement>;\n /** ID of the tab button. There should be only one element with such ID on a page. */\n id: TabId;\n};\n\nexport interface TabsProps extends IControlled<TabId>, FlexRowProps {\n /** `TabButton` props with required `id` field. */\n items: Array<TabsItemProps>;\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>((props, ref) => {\n const { items, value, onValueChange, borderBottom = true, rawProps, ...otherProps } = props;\n\n if (items.length === 0) {\n return null;\n }\n\n const tabLastIndex = items.length - 1;\n\n const getTabCurrentIndex = (tabIdCurrent: TabId): number => {\n return items.findIndex((tabProps) => {\n return tabProps.id === tabIdCurrent;\n });\n };\n\n const moveToTabWithIndex = (tabIndex: number): void => {\n /*\n `id`-s provided in `items` are assigned to the tabs.\n Unless users manually broke this connection,\n the index calculation will be correct,\n and the tab element will be present in the DOM.\n */\n const tab = items.at(tabIndex)!;\n const tabElement = document.getElementById(tab.id)!;\n\n tabElement.focus();\n };\n\n const moveToPreviousTab = (tabIdCurrent: TabId): void => {\n const tabCurrentIndex = getTabCurrentIndex(tabIdCurrent);\n\n const tabIndexNext = tabCurrentIndex === 0 ? tabLastIndex : tabCurrentIndex - 1;\n\n moveToTabWithIndex(tabIndexNext);\n };\n\n const moveToNextTab = (tabIdCurrent: TabId): void => {\n const tabCurrentIndex = getTabCurrentIndex(tabIdCurrent);\n\n const tabIndexNext = tabCurrentIndex === tabLastIndex ? 0 : tabCurrentIndex + 1;\n\n moveToTabWithIndex(tabIndexNext);\n };\n\n const onKeyDown: KeyboardEventHandler = (event) => {\n const focusedTabIdCurrent = (event.target as TabElement).id;\n\n // https://www.w3.org/WAI/ARIA/apg/patterns/tabs/#keyboardinteraction\n switch (event.code) {\n case 'ArrowLeft': {\n moveToPreviousTab(focusedTabIdCurrent);\n\n break;\n }\n\n case 'ArrowRight': {\n moveToNextTab(focusedTabIdCurrent);\n\n break;\n }\n\n case 'Home': {\n moveToTabWithIndex(0);\n\n break;\n }\n\n case 'End': {\n moveToTabWithIndex(tabLastIndex);\n\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return (\n <FlexRow\n ref={ ref }\n borderBottom={ borderBottom }\n rawProps={ {\n role: 'tablist',\n 'aria-orientation': 'horizontal',\n ...rawProps,\n } }\n { ...otherProps }\n >\n {\n items.map((tabProps) => {\n const { id } = tabProps;\n\n const handleOnClick = (): void => {\n onValueChange(id);\n\n tabProps.onClick?.();\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLAnchorElement> & KeyboardEvent<HTMLButtonElement> & KeyboardEvent<HTMLSpanElement>): void => {\n onKeyDown(event);\n\n tabProps.rawProps?.onKeyDown?.(event);\n };\n\n const isActive = id === value;\n const tabIndex = isActive ? undefined : -1;\n\n return (\n <TabButton\n key={ id }\n isActive={ isActive }\n tabIndex={ tabIndex }\n { ...tabProps }\n onClick={ handleOnClick }\n rawProps={ {\n id,\n 'aria-selected': isActive,\n ...tabProps.rawProps,\n onKeyDown: handleOnKeyDown,\n } }\n />\n );\n })\n }\n </FlexRow>\n );\n});\n\nTabs.displayName = 'Tabs';\n","import React from 'react';\nimport cx from 'classnames';\nimport {\n withMods,\n ModalFooterCoreProps,\n ModalWindowProps as uuiModalWindowProps,\n ModalBlockerProps,\n ModalHeaderCoreProps,\n isMobile,\n Overwrite,\n} from '@epam/uui-core';\nimport { ModalBlocker as uuiModalBlocker, ModalWindow as uuiModalWindow } from '@epam/uui-components';\nimport { FlexSpacer, FlexCell } from '../layout';\nimport { IconButton } from '../buttons';\nimport { settings } from '../../settings';\n\nimport css from './Modals.module.scss';\n\nexport const ModalBlocker = withMods<ModalBlockerProps, ModalBlockerProps>(uuiModalBlocker, () => [css.modalBlocker]);\n\ninterface ModalWindowMods {\n /**\n * Defines component width.\n * @default '420px'\n */\n width?: number | string;\n /**\n * Defines component height.\n * @default 'auto'\n */\n height?: number | string;\n /**\n * Defines component max-height.\n * @default '80vh'\n */\n maxHeight?: number | string;\n}\n\nexport interface ModalWindowCoreProps extends uuiModalWindowProps {}\n\nexport interface ModalWindowProps extends ModalWindowCoreProps, ModalWindowMods {}\n\nexport const ModalWindow = withMods<uuiModalWindowProps, ModalWindowProps>(\n uuiModalWindow,\n () => [css.root, css.modal],\n (props) => {\n const width = props.width;\n const height = props.height || 'auto';\n const maxHeight = isMobile() ? 'var(--uui-modals-mobile-max-height)' : (props.maxHeight || 'var(--uui-modals-max-height)');\n return {\n style: {\n ...props.style,\n width,\n height,\n maxHeight,\n },\n };\n },\n);\n\nexport interface ModalHeaderMods {\n /** Pass true, to enable row bottom border */\n borderBottom?: boolean;\n}\n\nexport interface ModalHeaderModsOverride {}\n\nexport interface ModalHeaderProps extends ModalHeaderCoreProps, Overwrite<ModalHeaderMods, ModalHeaderModsOverride> {}\n\nexport function ModalHeader(props: ModalHeaderProps) {\n return (\n <div\n className={ cx(\n css.root,\n css.modalHeader,\n 'uui-modal-header',\n props.borderBottom && css.borderBottom,\n props.cx,\n ) }\n { ...props.rawProps }\n style={ {\n ...props.rawProps?.style,\n } }\n >\n {props.title && (\n <div className={ cx('uui-modal-title', 'uui-typography') }>\n {props.title}\n </div>\n )}\n {props.children}\n {props.onClose && <FlexSpacer />}\n {props.onClose && (\n <FlexCell shrink={ 0 } width=\"auto\">\n <IconButton rawProps={ { 'aria-label': 'Close modal' } } icon={ settings.modal.icons.closeIcon } onClick={ props.onClose } />\n </FlexCell>\n )}\n </div>\n );\n}\n\nexport interface ModalFooterMods {\n /** Pass true, to enable row top border */\n borderTop?: boolean;\n}\n\nexport interface ModalFooterModsOverride {}\n\nexport interface ModalFooterProps extends ModalFooterCoreProps, Overwrite<ModalFooterMods, ModalFooterModsOverride> {}\n\nexport function ModalFooter(props: ModalFooterProps) {\n return (\n <div\n className={ cx(\n css.root,\n css.modalFooter,\n 'uui-modal-footer',\n props.borderTop && css.borderTop,\n props.cx,\n ) }\n { ...props.rawProps }\n style={ { \n ...props.rawProps?.style,\n } }\n >\n {props.children}\n </div>\n );\n}\n","import { ReactNode } from 'react';\nimport { i18n as uuiI18n } from '@epam/uui-core';\n\nconst TREE_SHAKEABLE_INIT = () => ({\n ...uuiI18n,\n dataPickerBody: {\n searchPlaceholder: 'Search',\n noRecordsMessage: 'No records found',\n noRecordsSubTitle: 'Check your spelling, or search for a different keyword',\n typeSearchToLoadMessage: 'Type search to load items',\n },\n pickerModal: {\n headerTitle: 'Please select',\n searchPlaceholder: 'Type text for quick search',\n cancelButton: 'Cancel',\n selectButton: 'Select',\n clearButton: 'CLEAR',\n clearAllButton: 'CLEAR ALL',\n selectAllButton: 'SELECT ALL',\n },\n pickerInput: {\n showOnlySelectedLabel: 'Show only selected',\n clearSelectionButton: 'CLEAR ALL',\n clearSelectionButtonSingle: 'CLEAR',\n selectAllButton: 'SELECT ALL',\n doneButton: 'DONE',\n },\n notificationCard: {\n closeAllNotificationsButton: 'CLOSE ALL NOTIFICATIONS',\n },\n form: {\n notifications: {\n actionButtonCaption: 'Restore',\n unsavedChangesMessage: 'You have unsaved changes. Click Restore button if you would like to recover the data',\n },\n modals: {\n beforeLeaveMessage: 'Your data may be lost. Do you want to save data?',\n discardButton: 'Discard',\n saveButton: 'Save',\n },\n },\n rangeDatePicker: {\n pickerPlaceholderFrom: 'From',\n pickerPlaceholderTo: 'To',\n },\n tables: {\n noResultsBlock: {\n title: 'No results found',\n message: 'We can’t find any item matching your request',\n },\n columnsConfigurationModal: {\n applyButton: 'Apply',\n cancelButton: 'Cancel',\n selectAllButton: 'Select all',\n clearAllButton: 'Clear all',\n checkAllButton: 'Check All',\n uncheckAllButton: 'Uncheck All',\n configureColumnsTitle: 'Configure columns',\n pinnedToTheLeftSubgroupTitle: 'Pinned to the left',\n pinnedToTheRightSubgroupTitle: 'Pinned to the right',\n notPinnedSubgroupTitle: 'Not pinned',\n resetToDefaultButton: 'Reset to Default',\n displayedSectionTitle: 'Displayed in table',\n hiddenSectionTitle: 'Hidden in table',\n searchPlaceholder: 'Search by column name',\n noResultsFound: {\n title: 'No results found',\n subTitle: 'We can’t find any item matching your request',\n },\n enableAtLeastOneColumnMessage: 'Please enable at least one column',\n pinColumnToTheLeftButton: 'Pin column to left',\n pinColumnToTheRightButton: 'Pin column to right',\n unPinColumnButton: 'Unpin column',\n lockedColumnPinButton: 'You cannot unpin this column',\n },\n columnHeader: {\n collapseAllTooltip: 'Collapse All',\n expandAllTooltip: 'Expand All',\n },\n },\n pickerFilterHeader: {\n sortAscending: 'Sort Ascending',\n sortDescending: 'Sort Descending',\n },\n filterToolbar: {\n addCaption: 'Add filter',\n datePicker: {\n placeholder: 'Select date',\n removeCaption: 'REMOVE FILTER',\n clearCaption: 'CLEAR',\n },\n rangeDatePicker: {\n emptyPickerPlaceholder: 'Select period',\n emptyPlaceholderFrom: 'Select From',\n emptyPlaceholderTo: 'Select To',\n clearCaption: 'CLEAR',\n },\n pickerInput: {\n itemsPlaceholder: 'items',\n },\n },\n presetPanel: {\n addCaption: 'Add Preset',\n },\n confirmationModal: {\n discardButton: 'Discard',\n saveButton: 'Save',\n },\n fileUpload: {\n labelStart: 'Drop files to attach or',\n browse: 'browse',\n labelEnd: 'your local files',\n },\n fileCard: {\n fileSizeProgress: ' of ',\n failedUploadErrorMessage: 'Upload failed',\n },\n errorHandler: {\n errorPageConfig: {\n notFound: {\n title: 'Oooops! We couldn’t find this page',\n subtitle: 'Sorry for the inconvenience.',\n },\n permissionDenied: {\n title: 'You have no permissions!',\n subtitle: 'Sorry for the inconvenience.',\n },\n serverError: {\n title: '500 Error! Something went wrong',\n subtitle: 'Sorry for the inconvenience, we’ll get it fixed.',\n },\n serviceUnavailable: {\n title: 'The page request was canceled, because it took too long to complete',\n subtitle: 'Sorry for the inconvenience, we’ll get it fixed.',\n },\n default: {\n title: 'Something went wrong',\n subtitle: 'Sorry for the inconvenience, we’ll get it fixed.',\n },\n },\n recoveryMessageConfig: {\n 'auth-lost': {\n title: 'Your session has expired.',\n subtitle: 'Attempting to log you in.',\n },\n 'connection-lost': {\n title: 'Network connection down',\n subtitle: 'Please check your network connection.',\n },\n maintenance: {\n title: 'Server maintenance',\n subtitle: 'We apologize for the inconvenience. Our site is currently under maintenance. Will come back as soon as possible.',\n },\n 'server-overload': {\n title: 'Server overloaded',\n subtitle: 'We are trying to recover. Please wait.',\n },\n },\n supportMessage: undefined as ReactNode,\n },\n});\n\nexport const i18n = TREE_SHAKEABLE_INIT();\n","import React from 'react';\nimport cx from 'classnames';\nimport { useUuiContext } from '@epam/uui-core';\nimport type { INotification, Icon, IHasChildren, IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport { IconButton, LinkButton } from '../buttons';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './NotificationCard.module.scss';\n\ninterface NotificationAction extends IHasRawProps<React.ButtonHTMLAttributes<HTMLButtonElement>> {\n /** Defines NotificationAction name. */\n name: string;\n /** Called when action is clicked */\n action: () => void;\n}\n\nexport interface NotificationCardCoreProps extends INotification, IHasChildren, IHasCX, IHasRawProps<React.HTMLAttributes<HTMLDivElement>> {\n /** Array of Notification actions. If provided will be displayed as LinkButtons in the end of notification. */\n actions?: NotificationAction[];\n /** NotificationCard icon */\n icon?: Icon;\n}\n\ninterface NotificationMods {\n /** NotificationCard color */\n color?: 'info' | 'success' | 'warning' | 'error';\n}\n\nexport interface NotificationCardProps extends NotificationCardCoreProps, NotificationMods {}\n\nexport const NotificationCard = React.forwardRef<HTMLDivElement, NotificationCardProps>((props, ref) => {\n const notificationCardNode = React.useRef(null);\n\n React.useImperativeHandle(ref, () => notificationCardNode.current, [notificationCardNode.current]);\n\n React.useLayoutEffect(() => {\n notificationCardNode.current?.addEventListener('mouseenter', props.clearTimer);\n notificationCardNode.current?.addEventListener('mouseleave', props.refreshTimer);\n return () => {\n notificationCardNode.current?.removeEventListener('mouseenter', props.clearTimer);\n notificationCardNode.current?.removeEventListener('mouseleave', props.refreshTimer);\n };\n }, []);\n\n return (\n <div\n role=\"alert\"\n className={ cx('uui-notification_card', props.color && `uui-color-${props.color}`, css.root, props.cx) }\n ref={ notificationCardNode }\n { ...props.rawProps }\n >\n <div className={ css.mainPath }>\n { props.icon && (\n <div className={ css.iconWrapper }>\n <IconContainer\n size={ settings.notificationCard.sizes.icon }\n icon={ props.icon }\n />\n </div>\n ) }\n <div className={ css.content }>\n { props.children }\n { props.actions && (\n <div className={ css.actionWrapper }>\n { props.actions.map((action) => (\n <LinkButton\n key={ action.name }\n caption={ action.name }\n onClick={ action.action }\n cx={ css.actionLink }\n size={ settings.notificationCard.sizes.action }\n rawProps={ action.rawProps }\n />\n )) }\n </div>\n ) }\n </div>\n { props.onClose && (\n <div className={ cx(css.closeWrapper, 'uui-notification_card-close_icon') }>\n <IconButton\n icon={ settings.notificationCard.icons.closeIcon }\n color=\"neutral\"\n onClick={ props.onClose }\n cx={ css.closeIcon }\n />\n </div>\n ) }\n </div>\n </div>\n );\n});\n\nexport const WarningNotification = React.forwardRef<HTMLDivElement, NotificationCardCoreProps>((props, ref) => (\n <NotificationCard icon={ settings.notificationCard.icons.warningIcon } color=\"warning\" { ...props } ref={ ref } cx={ props.cx } />\n));\n\nexport const SuccessNotification = React.forwardRef<HTMLDivElement, NotificationCardCoreProps>((props, ref) => (\n <NotificationCard icon={ settings.notificationCard.icons.successIcon } color=\"success\" { ...props } ref={ ref } cx={ props.cx } />\n));\n\nexport const HintNotification = React.forwardRef<HTMLDivElement, NotificationCardCoreProps>((props, ref) => (\n <NotificationCard icon={ settings.notificationCard.icons.hintIcon } color=\"info\" { ...props } ref={ ref } cx={ props.cx } />\n));\n\nexport const ErrorNotification = React.forwardRef<HTMLDivElement, NotificationCardCoreProps>((props, ref) => (\n <NotificationCard icon={ settings.notificationCard.icons.errorIcon } color=\"error\" { ...props } ref={ ref } cx={ props.cx } />\n));\n\nexport function ClearNotification() {\n const uuiCtx = useUuiContext();\n return (\n <div className={ cx(css.clearNotifications, 'uui-clear-notifications') }>\n <LinkButton\n caption={ i18n.notificationCard.closeAllNotificationsButton }\n onClick={ () => uuiCtx.uuiNotifications.clearAll() }\n />\n </div>\n );\n}\n","import * as React from 'react';\nimport { IModal } from '@epam/uui-core';\nimport { Button } from '../buttons';\nimport { Panel, ScrollBars } from '../layout';\nimport { ModalBlocker, ModalWindow, ModalHeader, ModalFooter } from './Modals';\nimport { i18n } from '../../i18n';\n\nimport css from './ConfirmationModal.module.scss';\n\nexport interface ConfirmationModalWindowProps extends IModal<any> {\n /** Confirmation modal title */\n caption: any;\n /** Confirmation modal content */\n bodyContent?: any;\n /** Pass true, to hide cancel button */\n hideCancelButton?: boolean;\n}\n\nexport class ConfirmationModal extends React.Component<ConfirmationModalWindowProps> {\n render() {\n let bodyContent;\n\n if (this.props.bodyContent) {\n bodyContent = <Panel background=\"surface-main\" margin=\"24\">{this.props.bodyContent}</Panel>;\n }\n\n return (\n <ModalBlocker { ...this.props }>\n <ModalWindow width={ 420 }>\n <ModalHeader borderBottom title={ this.props.caption } onClose={ () => this.props.abort() } />\n <ScrollBars>{bodyContent}</ScrollBars>\n <ModalFooter cx={ css.footer }>\n {this.props.hideCancelButton || (\n <Button caption={ i18n.form.modals.discardButton } onClick={ () => this.props.success(false) } fill=\"outline\" color=\"secondary\" />\n )}\n <Button caption={ i18n.form.modals.saveButton } onClick={ () => this.props.success(true) } color=\"primary\" />\n </ModalFooter>\n </ModalWindow>\n </ModalBlocker>\n );\n }\n}\n","import * as React from 'react';\nimport { NotificationOperation, useUuiContext } from '@epam/uui-core';\nimport { SnackbarProps as UuiSnackbarProps, Snackbar as UuiSnackbar } from '@epam/uui-components';\nimport { ClearNotification } from './NotificationCard';\nimport { useEffect, useReducer } from 'react';\n\nexport interface SnackbarProps extends UuiSnackbarProps {}\n\nexport function Snackbar(props: SnackbarProps) {\n const uuiCtx = useUuiContext();\n const forceUpdate = useReliableForceUpdate();\n\n useEffect(() => uuiCtx.uuiNotifications.subscribe(() => forceUpdate()), []);\n\n let items: NotificationOperation[] = uuiCtx.uuiNotifications.getNotifications().slice().reverse();\n\n // add button for clear notification list\n if (items.length > 1) {\n const clearOperation: NotificationOperation = {\n component: ClearNotification,\n props: { id: 111555, key: 'clearNotification' },\n config: { position: items[0].config.position, duration: 'forever' },\n\n };\n items = [clearOperation].concat(items);\n }\n\n return <UuiSnackbar forwardedRef={ props.forwardedRef } notifications={ items } />;\n}\n\n/**\n * https://legacy.reactjs.org/docs/hooks-faq.html#is-there-something-like-forceupdate\n */\nfunction useReliableForceUpdate() {\n const red = useReducer((x) => x + 1, 0);\n return red[1];\n}\n","import { uuiDayjs, Dayjs } from '../../helpers/dayJsHelper';\nimport { RangeDatePickerInputType, RangeDatePickerValue } from '@epam/uui-core';\n\nexport const defaultFormat = 'MMM D, YYYY';\nexport const valueFormat = 'YYYY-MM-DD';\n\nexport const supportedDateFormats = (format?: string) => {\n return [\n ...(format ? [format] : []), 'MM/DD/YYYY', 'DD-MM-YYYY', 'DD.MM.YYYY', 'DDMMYYYY', 'YYYY/MM/DD', 'YYYY-MM-DD', 'YYYY.MM.DD', 'MMM D, YYYY', 'D/M/YYYY', 'YYYY/M/D',\n ];\n};\n\nexport const uuiDatePickerBodyBase = {\n container: 'uui-datepicker-container',\n} as const;\n\nexport const getNewMonth = (value: string | Dayjs | null) => {\n return uuiDayjs.dayjs(value, valueFormat).isValid() ? uuiDayjs.dayjs(value, valueFormat) : uuiDayjs.dayjs().startOf('day');\n};\n\nexport const defaultRangeValue: RangeDatePickerValue = {\n from: null,\n to: null,\n};\n\nexport const getDisplayedMonth = (selectedDate: RangeDatePickerValue, focus: RangeDatePickerInputType, initialViewMonth: string | undefined) => {\n if (selectedDate.from || selectedDate.to) {\n return getDisplayedMonthBySelection(selectedDate, focus);\n } else if (initialViewMonth) {\n return getNewMonth(`${initialViewMonth}-01`);\n }\n return uuiDayjs.dayjs();\n};\n\nexport const getDisplayedMonthBySelection = (selectedDate: RangeDatePickerValue, focus: RangeDatePickerInputType) => {\n if (selectedDate.from && selectedDate.to && focus) {\n return uuiDayjs.dayjs(selectedDate[focus]);\n } else if (selectedDate.from) {\n return uuiDayjs.dayjs(selectedDate?.from);\n } else if (selectedDate.to) {\n return uuiDayjs.dayjs(selectedDate?.to);\n }\n return uuiDayjs.dayjs();\n};\n\nexport const isValidDate = (input: string | null, format: string, filter?:(day: Dayjs) => boolean): boolean | undefined => {\n const parsedDate = uuiDayjs.dayjs(input, supportedDateFormats(format), true);\n return filter ? parsedDate.isValid() && filter(parsedDate) : parsedDate.isValid();\n};\n\nexport const isValidRange = (range: RangeDatePickerValue) => {\n const from = uuiDayjs.dayjs(range.from);\n const to = uuiDayjs.dayjs(range.to);\n return from.isValid() && to.isValid()\n ? from.valueOf() <= to.valueOf() && to.valueOf() >= from.valueOf()\n : true;\n};\n\nexport const getWithFrom = (selectedDate: RangeDatePickerValue, newValue: string | null, preventEmpty: boolean) => {\n if (uuiDayjs.dayjs(newValue).valueOf() <= uuiDayjs.dayjs(selectedDate.to).valueOf()) {\n // update range\n return {\n from: newValue,\n to: selectedDate.to,\n };\n } else {\n // new range value\n return {\n from: newValue,\n to: preventEmpty ? newValue : null,\n };\n }\n};\n\nexport const getWithTo = (selectedDate:RangeDatePickerValue, newValue: string | null, preventEmpty: boolean) => {\n if (!selectedDate.from) {\n // started on \"to\" input\n return {\n from: null,\n to: newValue,\n };\n } else if (uuiDayjs.dayjs(newValue).valueOf() >= uuiDayjs.dayjs(selectedDate.from).valueOf()) {\n // range is valid\n return {\n from: selectedDate.from,\n to: newValue,\n };\n } else {\n // range is invalid\n return {\n from: newValue,\n to: preventEmpty ? newValue : null,\n };\n }\n};\n\nexport const toValueDateRangeFormat = (value: RangeDatePickerValue, format?: string): RangeDatePickerValue => {\n const from = value.from;\n const to = value.to;\n\n const fromObj = uuiDayjs.dayjs(from, supportedDateFormats(format), true);\n const toObj = uuiDayjs.dayjs(to, supportedDateFormats(format), true);\n\n return {\n from: from && fromObj.isValid() ? uuiDayjs.dayjs(from, supportedDateFormats(format), true).format(valueFormat) : null,\n to: to && toObj.isValid() ? uuiDayjs.dayjs(to, supportedDateFormats(format), true).format(valueFormat) : null,\n };\n};\n\nexport const toCustomDateRangeFormat = (value: RangeDatePickerValue, format?: string): RangeDatePickerValue => {\n const from = value.from;\n const to = value.to;\n const customFormat = format || defaultFormat;\n\n const fromObj = uuiDayjs.dayjs(from, supportedDateFormats(format), true);\n const toObj = uuiDayjs.dayjs(to, supportedDateFormats(format), true);\n\n return {\n from: from && fromObj.isValid() ? uuiDayjs.dayjs(from, supportedDateFormats(format), true).format(customFormat) : null,\n to: to && toObj.isValid() ? uuiDayjs.dayjs(to, supportedDateFormats(format), true).format(customFormat) : null,\n };\n};\n\nexport const toValueDateFormat = (value: string | null, format?: string): string | null => {\n return value ? uuiDayjs.dayjs(value, supportedDateFormats(format), true).format(valueFormat) : null;\n};\n\nexport const toCustomDateFormat = (value: string | null, format?: string): string | null => {\n const customFormat = format || defaultFormat;\n const dayjsObj = uuiDayjs.dayjs(value, supportedDateFormats(format), true);\n return dayjsObj.isValid() ? dayjsObj.format(customFormat) : null;\n};\n\nexport const getPrevMonth = (currentDate: Dayjs) => {\n return currentDate.subtract(1, 'month');\n};\n\nexport const getNextMonth = (currentDate: Dayjs) => {\n return currentDate.add(1, 'month');\n};\n\nexport const getPrevYear = (currentDate: Dayjs) => {\n return currentDate.subtract(1, 'year');\n};\n\nexport const getNextYear = (currentDate: Dayjs) => {\n return currentDate.add(1, 'year');\n};\n\nexport const getPrevYearsList = (currentDate: Dayjs) => {\n return currentDate.subtract(16, 'year');\n};\n\nexport const getNextYearsList = (currentDate: Dayjs) => {\n return currentDate.add(16, 'year');\n};\n\nexport const isValidAndInFilter = (\n dateValue: RangeDatePickerValue,\n inputType: 'from' | 'to',\n filter?: (d: Dayjs) => boolean,\n): boolean => {\n if (!dateValue[inputType]) return false;\n if (!isValidRange(dateValue)) return false;\n return !(filter && filter(uuiDayjs.dayjs(dateValue[inputType])) === false);\n};\n","import * as React from 'react';\nimport { Icon, IDisableable, IHasCX } from '@epam/uui-core';\nimport cx from 'classnames';\nimport css from './DatePickerHeader.module.scss';\nimport { uuiDayjs, Dayjs } from '../../helpers/dayJsHelper';\nimport { Button } from '../buttons';\nimport { ViewType } from './types';\nimport {\n getPrevMonth, getPrevYear, getPrevYearsList, getNextMonth, getNextYear, getNextYearsList,\n} from './helpers';\nimport { settings } from '../../settings';\n\nexport const uuiHeader = {\n container: 'uui-datepicker-header-container',\n headerNav: 'uui-datepicker-header-nav',\n navTitle: 'uui-datepicker-header-nav-title',\n navIconRight: 'uui-datepicker-header-nav-icon-right',\n navIconLeft: 'uui-datepicker-header-nav-icon-left',\n};\n\ninterface DatePickerHeaderValue {\n view: ViewType;\n month: Dayjs;\n}\n\nexport interface DatePickerHeaderProps extends IHasCX, IDisableable {\n value: DatePickerHeaderValue;\n onValueChange: (value: DatePickerHeaderValue) => void;\n /*\n * Navigation icon for the left navigation icon in header.\n * Usually it has a default implementation in skins, so providing this is only necessary if you want to replace the default icon.\n */\n navIconLeft?: Icon;\n /*\n * Navigation icon for the right navigation icon in header.\n * Usually it has a default implementation in skins, so providing this is only necessary if you want to replace the default icon.\n */\n navIconRight?: Icon;\n}\n\nconst MIN_SOBER_YEAR = 1000;\nconst MAX_SOBER_YEAR = 2200;\n\nconst isYearWithinSoberRange = (value: Dayjs) => {\n const year = value.year();\n return year >= MIN_SOBER_YEAR && year <= MAX_SOBER_YEAR;\n};\n\nexport function DatePickerHeader({\n navIconLeft, navIconRight, value: { month, view }, onValueChange, isDisabled,\n}: DatePickerHeaderProps) {\n const onSetMonth = (newMonth: Dayjs) => {\n onValueChange({\n view,\n month: newMonth,\n });\n };\n\n const onSetView = (newView: ViewType) => {\n onValueChange({\n view: newView,\n month,\n });\n };\n\n const onLeftNavigationArrow = () => {\n switch (view) {\n case 'DAY_SELECTION':\n onSetMonth(getPrevMonth(month));\n break;\n case 'MONTH_SELECTION':\n onSetMonth(getPrevYear(month));\n break;\n case 'YEAR_SELECTION':\n onSetMonth(getPrevYearsList(month));\n break;\n }\n };\n\n const onRightNavigationArrow = () => {\n switch (view) {\n case 'DAY_SELECTION':\n onSetMonth(getNextMonth(month));\n break;\n case 'MONTH_SELECTION':\n onSetMonth(getNextYear(month));\n break;\n case 'YEAR_SELECTION':\n onSetMonth(getNextYearsList(month));\n break;\n }\n };\n\n const onCaptionClick = (newView: ViewType) => {\n let nextView: ViewType;\n switch (newView) {\n case 'DAY_SELECTION':\n nextView = 'MONTH_SELECTION';\n break;\n case 'MONTH_SELECTION':\n nextView = 'YEAR_SELECTION';\n break;\n case 'YEAR_SELECTION':\n nextView = 'DAY_SELECTION';\n break;\n }\n\n onSetView(nextView);\n };\n\n const title = React.useMemo(\n () => {\n const monthSubstr = view !== 'MONTH_SELECTION'\n ? uuiDayjs.dayjs.months()[month.month()]\n : '';\n return `${monthSubstr} ${month.year()}`;\n },\n [view, month],\n );\n\n const disablePrev = view === 'YEAR_SELECTION' && !isYearWithinSoberRange(getPrevYearsList(month));\n const disableNext = view === 'YEAR_SELECTION' && !isYearWithinSoberRange(getNextYearsList(month));\n\n return (\n <div className={ cx(css.root, uuiHeader.container, cx) }>\n <header className={ uuiHeader.headerNav }>\n <Button\n icon={ navIconLeft || settings.datePicker.icons.body.prevIcon }\n color=\"secondary\"\n fill=\"ghost\"\n cx={ uuiHeader.navIconLeft }\n onClick={ !isDisabled && (() => onLeftNavigationArrow()) }\n isDisabled={ disablePrev }\n />\n <Button\n caption={ title }\n fill=\"ghost\"\n cx={ uuiHeader.navTitle }\n onClick={ !isDisabled && (() => onCaptionClick(view)) }\n />\n <Button\n icon={ navIconRight || settings.datePicker.icons.body.nextIcon }\n color=\"secondary\"\n fill=\"ghost\"\n cx={ uuiHeader.navIconRight }\n onClick={ !isDisabled && (() => onRightNavigationArrow()) }\n isDisabled={ disableNext }\n />\n </header>\n </div>\n );\n}\n","import { CalendarProps, Calendar as uuiCalendar } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport { Dayjs } from '../../helpers/dayJsHelper';\nimport { settings } from '../../settings';\n\nimport css from './Calendar.module.scss';\n\nexport function applyDateSelectionMods() {\n return [css.root, `uui-size-${settings.datePicker.sizes.body}`];\n}\n\nexport const Calendar = withMods<CalendarProps<Dayjs>, CalendarProps<Dayjs>>(uuiCalendar, applyDateSelectionMods);\n","import React, { forwardRef, useEffect, useMemo, useState } from 'react';\nimport {\n IControlled,\n cx,\n} from '@epam/uui-core';\nimport { MonthSelection, YearSelection } from '@epam/uui-components';\nimport { DatePickerHeader } from './DatePickerHeader';\nimport { Calendar } from './Calendar';\nimport { CommonDatePickerBodyProps, ViewType } from './types';\nimport {\n getNewMonth, uuiDatePickerBodyBase, valueFormat,\n} from './helpers';\nimport { Dayjs, uuiDayjs } from '../../helpers/dayJsHelper';\nimport { settings } from '../../settings';\n\nimport css from './DatePickerBody.module.scss';\n\nexport interface DatePickerBodyProps extends CommonDatePickerBodyProps, IControlled<string | null> {\n /**\n * Manually handles holidays\n */\n isHoliday?: (day: Dayjs) => boolean;\n /**\n * Controls the initially displayed month and year when the picker opens (format: 'YYYY-MM').\n * If not specified, defaults to the current month.\n */\n initialViewMonth?: string;\n}\n\nexport const uuiDatePickerBody = {\n wrapper: 'uui-datepicker-body-wrapper',\n} as const;\n\nexport const DatePickerBody = forwardRef(DatePickerBodyComp);\n\nfunction DatePickerBodyComp(props: DatePickerBodyProps, ref: React.ForwardedRef<HTMLDivElement>) {\n const { value, onValueChange, initialViewMonth } = props;\n const initialViewDate = value || (initialViewMonth ? `${initialViewMonth}-01` : '');\n const [month, setMonth] = useState<Dayjs>(getNewMonth(initialViewDate));\n const [view, setView] = useState<ViewType>('DAY_SELECTION');\n\n // sync updated props with internal state\n useEffect(() => {\n setMonth(getNewMonth(initialViewDate));\n setView('DAY_SELECTION');\n }, [value, setMonth]);\n\n return (\n <StatelessDatePickerBody\n ref={ ref }\n { ...props }\n month={ month }\n view={ view }\n onValueChange={ onValueChange }\n onMonthChange={ (m) => setMonth(m) }\n onViewChange={ (v) => setView(v) }\n />\n );\n}\n\nexport interface StatelessDatePickerBodyValue<TSelection> {\n value: TSelection | null;\n month: Dayjs;\n view: ViewType;\n}\n\nexport interface StatelessDatePickerBodyProps extends CommonDatePickerBodyProps, StatelessDatePickerBodyValue<string> {\n onValueChange: (value: string | null) => void;\n onMonthChange: (m: Dayjs) => void;\n onViewChange: (v: ViewType) => void;\n isHoliday?: (day: Dayjs) => boolean;\n}\n\nexport const StatelessDatePickerBody = forwardRef(StatelessDatePickerBodyComp);\n\nfunction StatelessDatePickerBodyComp({\n renderDay,\n isHoliday,\n cx: classes,\n filter,\n rawProps,\n value,\n month,\n view,\n onValueChange,\n onMonthChange,\n onViewChange,\n isDisabled,\n}: StatelessDatePickerBodyProps, ref: React.ForwardedRef<HTMLDivElement>) {\n const selectedDate = useMemo(() => uuiDayjs.dayjs(value), [value]);\n\n const onMonthClick = (newDate: Dayjs) => {\n onMonthChange(newDate);\n onViewChange('DAY_SELECTION');\n };\n\n const onYearClick = (newDate: Dayjs) => {\n onMonthChange(newDate);\n onViewChange('MONTH_SELECTION');\n };\n\n const onDayClick = (day: Dayjs) => {\n if (!filter || filter(day)) {\n onValueChange(day.format(valueFormat));\n }\n };\n\n const getView = () => {\n switch (view) {\n case 'MONTH_SELECTION':\n return (\n <MonthSelection\n selectedDate={ selectedDate }\n value={ month }\n onValueChange={ onMonthClick }\n />\n );\n case 'YEAR_SELECTION':\n return (\n <YearSelection\n selectedDate={ selectedDate }\n value={ month }\n onValueChange={ onYearClick }\n />\n );\n case 'DAY_SELECTION':\n return (\n <Calendar\n value={ selectedDate }\n month={ month }\n onValueChange={ onDayClick }\n filter={ filter }\n renderDay={ renderDay }\n isHoliday={ isHoliday }\n isDisabled={ isDisabled }\n />\n );\n }\n };\n\n return (\n <div\n ref={ ref }\n className={ cx(uuiDatePickerBodyBase.container, `uui-size-${settings.datePicker.sizes.body}`, classes) }\n { ...rawProps }\n >\n <div className={ cx(css.root, uuiDatePickerBody.wrapper) }>\n <DatePickerHeader\n value={ {\n view,\n month,\n } }\n onValueChange={ (newValue) => {\n onMonthChange(newValue.month);\n onViewChange(newValue.view);\n } }\n isDisabled={ isDisabled }\n />\n {getView()}\n </div>\n </div>\n );\n}\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { offset } from '@floating-ui/react';\nimport {\n DatePickerProps as CoreDatePickerProps, DropdownBodyProps, cx, useUuiContext, uuiMod, IDropdownTogglerProps, Overwrite,\n} from '@epam/uui-core';\nimport { Dropdown } from '@epam/uui-components';\nimport { TextInput, TextInputProps } from '../inputs';\nimport { EditMode, IHasEditMode } from '../types';\nimport { DropdownContainer } from '../overlays';\nimport { DatePickerBody } from './DatePickerBody';\nimport {\n defaultFormat, isValidDate, toCustomDateFormat, toValueDateFormat,\n} from './helpers';\nimport { settings } from '../../settings';\n\nconst defaultMode = EditMode.FORM;\n\ntype DatePickerMods = {\n /**\n * Defines component size.\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\nexport interface DatePickerModsOverride {}\n\n/**\n * Represents the properties of the DatePicker component\n */\nexport interface DatePickerProps extends CoreDatePickerProps, IHasEditMode, Overwrite<DatePickerMods, DatePickerModsOverride> {}\n\nexport function DatePickerComponent(props: DatePickerProps, ref: React.ForwardedRef<HTMLElement>) {\n const { format = defaultFormat, value, size = settings.datePicker.sizes.input } = props;\n const context = useUuiContext();\n const [inputValue, setInputValue] = useState(toCustomDateFormat(value, format));\n const [isBodyOpen, setBodyIsOpen] = useState(false);\n\n useEffect(() => {\n setInputValue(toCustomDateFormat(value, format));\n }, [value, setInputValue]);\n\n const onValueChange = (newValue: string | null) => {\n if (value !== newValue) {\n props.onValueChange(newValue);\n\n if (props.getValueChangeAnalyticsEvent) {\n const event = props.getValueChangeAnalyticsEvent(newValue, value);\n context.uuiAnalytics.sendEvent(event);\n }\n }\n };\n\n const onBodyValueChange = (newValue: string | null) => {\n setInputValue(toCustomDateFormat(newValue, format));\n onValueChange(newValue);\n setBodyIsOpen(false);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n props.onBlur?.(e);\n\n if (isValidDate(inputValue, format, props.filter)) {\n setInputValue(toCustomDateFormat(inputValue, format));\n onValueChange(toValueDateFormat(inputValue, format));\n } else {\n const newValue = props.preventEmpty ? value : null;\n setInputValue(toCustomDateFormat(newValue, format));\n onValueChange(newValue);\n }\n };\n\n const onInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n setBodyIsOpen(true);\n e.preventDefault();\n }\n };\n\n const renderInput = (renderProps: IDropdownTogglerProps & { cx?: any }) => {\n const allowClear = !props.disableClear && !!inputValue && !props.preventEmpty;\n return (\n <TextInput\n { ...renderProps }\n isDropdown={ false }\n cx={ cx(props.inputCx, isBodyOpen && uuiMod.focus) }\n icon={ props.mode !== EditMode.CELL ? settings.datePicker.icons.input.calendarIcon : undefined }\n iconPosition={ props.iconPosition || 'left' }\n placeholder={ props.placeholder ? props.placeholder : format }\n size={ size as TextInputProps['size'] }\n value={ inputValue || undefined }\n onValueChange={ (v) => {\n setInputValue(v || '');\n } }\n onCancel={ allowClear ? () => {\n if (!props.disableClear && !!inputValue) {\n onValueChange(null);\n }\n } : undefined }\n isInvalid={ props.isInvalid }\n isDisabled={ props.isDisabled }\n isReadonly={ props.isReadonly }\n tabIndex={ props.isReadonly || props.isDisabled ? -1 : 0 }\n onFocus={ (e) => {\n props.onFocus?.(e);\n } }\n onKeyDown={ onInputKeyDown }\n onBlur={ onBlur }\n mode={ props.mode || defaultMode }\n rawProps={ props.rawProps?.input }\n id={ props.id }\n />\n );\n };\n\n const renderBody = useMemo(() => (renderProps: DropdownBodyProps) => {\n return (\n <DropdownContainer { ...renderProps }>\n <DatePickerBody\n value={ value }\n onValueChange={ onBodyValueChange }\n cx={ cx(props.bodyCx) }\n filter={ props.filter }\n isHoliday={ props.isHoliday }\n renderDay={ props.renderDay }\n rawProps={ props.rawProps?.body }\n initialViewMonth={ props.initialViewMonth }\n />\n {props.renderFooter?.()}\n </DropdownContainer>\n );\n }, [value, onBodyValueChange]);\n\n return (\n <Dropdown\n value={ isBodyOpen }\n middleware={ [offset(6)] }\n placement={ props.placement }\n ref={ ref }\n onValueChange={ (v) => {\n setBodyIsOpen(v);\n } }\n renderTarget={ (renderProps) => {\n return props.renderTarget?.(renderProps) || renderInput(renderProps);\n } }\n renderBody={ renderBody }\n />\n );\n}\n\nexport const DatePicker = React.forwardRef(DatePickerComponent) as\n (props: DatePickerProps & { ref?: React.ForwardedRef<HTMLElement> }) => ReturnType<typeof DatePickerComponent>;\n","import React, { forwardRef, useEffect, useState, type JSX } from 'react';\nimport { IEditable, cx, uuiMod, IHasCX, IClickable, IHasRawProps, RangeDatePickerValue, RangeDatePickerInputType } from '@epam/uui-core';\nimport { ReactComponent as CancelIcon } from '@epam/assets/icons/navigation-close-outline.svg';\nimport { TextInput } from '../inputs';\nimport { toCustomDateRangeFormat, toValueDateRangeFormat, isValidAndInFilter } from './helpers';\nimport type { RangeDatePickerProps } from './RangeDatePicker';\n\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './RangeDatePickerInput.module.scss';\n\n/**\n * Represents RangeDatePickerInputProps\n */\nexport interface RangeDatePickerInputProps\n extends IEditable<RangeDatePickerValue>,\n IHasCX,\n IClickable,\n Pick<RangeDatePickerProps, 'getPlaceholder' | 'disableClear' | 'filter' | 'id' | 'format' | 'size' | 'preventEmptyFromDate' | 'preventEmptyToDate'> {\n /**\n * rawProps as HTML attributes\n */\n rawProps?: {\n /**\n * Any HTML attributes (native or 'data-') to put on 'from' input\n */\n from?: IHasRawProps<React.HTMLAttributes<HTMLDivElement>>['rawProps'];\n /**\n * Any HTML attributes (native or 'data-') to put on 'to' input\n */\n to?: IHasRawProps<React.HTMLAttributes<HTMLDivElement>>['rawProps'];\n };\n /**\n * Currently setting date\n */\n inFocus: RangeDatePickerInputType,\n /**\n * Handles focus event on input element\n */\n onFocusInput: (event: React.FocusEvent<HTMLInputElement>, inputType: RangeDatePickerInputType) => void;\n /**\n * Handles blur event on input element\n */\n onBlurInput?: (event: React.FocusEvent<HTMLInputElement, Element>, inputType: RangeDatePickerInputType) => void;\n\n /** Called on keyDown event.\n Can be used to provide your own handlers.\n */\n onKeyDown?(e: React.KeyboardEvent<HTMLDivElement>): void;\n}\n\nexport const RangeDatePickerInput = forwardRef<HTMLDivElement, RangeDatePickerInputProps>(({\n isDisabled,\n isInvalid,\n isReadonly,\n size,\n disableClear,\n rawProps,\n value,\n inFocus,\n format,\n onValueChange,\n onFocusInput,\n onBlurInput,\n onClick,\n getPlaceholder,\n filter,\n onKeyDown,\n preventEmptyFromDate,\n preventEmptyToDate,\n id,\n cx: classes,\n}, ref): JSX.Element => {\n const [inputValue, setInputValue] = useState<RangeDatePickerValue>(\n toCustomDateRangeFormat(value, format),\n );\n\n useEffect(() => {\n setInputValue(toCustomDateRangeFormat(value, format));\n }, [format, value, setInputValue]);\n\n const onInputChange = (newValue: string, inputType: 'from' | 'to') => {\n const updatedInputValue = {\n ...inputValue,\n [inputType]: newValue,\n };\n\n setInputValue(updatedInputValue);\n\n const selectedDate = toValueDateRangeFormat(updatedInputValue, format);\n\n if (isValidAndInFilter(selectedDate, inputType, filter)) {\n onValueChange(selectedDate);\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>, inputType: RangeDatePickerInputType) => {\n onFocusInput(event, inputType);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>, inputType: 'from' | 'to') => {\n onBlurInput?.(event, inputType);\n\n const canBeEmpty = {\n from: !preventEmptyFromDate,\n to: !preventEmptyToDate,\n };\n\n const selectedDate = toValueDateRangeFormat(inputValue, format);\n\n // If the new value is null and the input can't be empty, set the value to the last selected value\n if (selectedDate[inputType] === null && !canBeEmpty[inputType]) {\n selectedDate[inputType] = value[inputType];\n }\n\n if (isValidAndInFilter(selectedDate, inputType, filter)) {\n setInputValue(toCustomDateRangeFormat(selectedDate, format));\n onValueChange(selectedDate);\n } else {\n const newInputValue = !canBeEmpty[inputType] ? toCustomDateRangeFormat(value, format)[inputType] : null;\n const newValue = !canBeEmpty[inputType] ? value[inputType] : null;\n\n setInputValue({\n ...inputValue,\n [inputType]: newInputValue,\n });\n onValueChange({\n ...selectedDate,\n [inputType]: newValue,\n });\n }\n };\n\n const onInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onClick();\n e.preventDefault();\n }\n };\n\n const onClear = () => {\n const newValue = {\n from: preventEmptyFromDate ? value.from : null,\n to: preventEmptyToDate ? value.to : null,\n };\n\n onValueChange(newValue);\n };\n\n const clearAllowed = !disableClear && !isReadonly && !isDisabled\n && !(preventEmptyFromDate && preventEmptyToDate)\n && ((value.from && !preventEmptyFromDate) || (value.to && !preventEmptyToDate));\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n ref={ ref }\n className={ cx(\n `uui-size-${size || settings.rangeDatePicker.sizes.default}`,\n 'uui-range-date-picker',\n classes,\n css.root,\n isDisabled && uuiMod.disabled,\n isReadonly && uuiMod.readonly,\n isInvalid && uuiMod.invalid,\n inFocus && uuiMod.focus,\n ) }\n onKeyDown={ onKeyDown }\n >\n <TextInput\n icon={ settings.rangeDatePicker.icons.input.calendarIcon }\n cx={ cx(css.dateInput, inFocus === 'from' && uuiMod.focus) }\n size={ size || settings.rangeDatePicker.sizes.default }\n placeholder={ getPlaceholder ? getPlaceholder('from') : i18n.rangeDatePicker.pickerPlaceholderFrom }\n value={ inputValue.from || undefined }\n onValueChange={ (v) => onInputChange(v || '', 'from') }\n onFocus={ (event) => handleFocus(event, 'from') }\n onBlur={ (event) => handleBlur(event, 'from') }\n isInvalid={ isInvalid }\n isDisabled={ isDisabled }\n isReadonly={ isReadonly }\n isDropdown={ false }\n rawProps={ rawProps?.from }\n onClick={ onClick }\n onKeyDown={ onInputKeyDown }\n id={ id }\n />\n <div className={ css.separator } />\n <TextInput\n cx={ cx(css.dateInput, inFocus === 'to' && uuiMod.focus) }\n placeholder={ getPlaceholder ? getPlaceholder('to') : i18n.rangeDatePicker.pickerPlaceholderTo }\n size={ size || settings.rangeDatePicker.sizes.default }\n value={ inputValue.to || undefined }\n icon={ clearAllowed && CancelIcon }\n iconPosition=\"right\"\n iconLabel=\"Clear selected date range\"\n onIconClick={ onClear }\n onValueChange={ (v) => onInputChange(v || '', 'to') }\n onFocus={ (e) => handleFocus(e, 'to') }\n onBlur={ (e) => handleBlur(e, 'to') }\n isInvalid={ isInvalid }\n isDisabled={ isDisabled }\n isReadonly={ isReadonly }\n isDropdown={ false }\n rawProps={ rawProps?.to }\n onClick={ onClick }\n onKeyDown={ onInputKeyDown }\n />\n </div>\n );\n});\n","import * as React from 'react';\nimport {\n IHasCX, cx, IHasRawProps, IHasForwardedRef,\n} from '@epam/uui-core';\nimport { LinkButton } from '../buttons';\n\nimport css from './CalendarPresets.module.scss';\nimport { settings } from '../../settings';\n\nexport const uuiPresets = {\n container: 'uui-presets-container',\n header: 'uui-presets-header',\n item: 'uui-presets-item',\n} as const;\n\nexport type RangeDatePickerPresets = {\n /**\n * Preset config\n */\n [key: string]: {\n /**\n * Name of the preset to display in rangeDatePicker body\n */\n name: React.ReactNode;\n /**\n * A pure function that gets range value which will be applied by preset selection\n */\n getRange: () => RangeDatePickerPresetValue;\n };\n};\n\n/**\n * Represents RangeDatePickerPresetValue\n */\nexport interface RangeDatePickerPresetValue {\n /**\n * Range from value\n */\n from?: string;\n /**\n * Range to value\n */\n to?: string;\n /**\n * Preset order in presets list\n */\n order?: number;\n}\n\nexport interface CalendarPresetsProps extends IHasCX, IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IHasForwardedRef<HTMLDivElement> {\n presets: RangeDatePickerPresets;\n onPresetSet: (nV: RangeDatePickerPresetValue) => void;\n}\n\nconst getPresets = (presets: RangeDatePickerPresets) => {\n return Object.keys(presets).map((key) => ({\n ...presets[key].getRange(),\n name: presets[key].name,\n key,\n })).sort((a, b) => a.order - b.order);\n};\n\nexport function CalendarPresets(props: CalendarPresetsProps) {\n return (\n <div\n ref={ props.forwardedRef }\n className={ cx(uuiPresets.container, css.root, props.cx) }\n { ...props.rawProps }\n >\n <div className={ uuiPresets.header }>Presets</div>\n {getPresets(props.presets).map((item) => (\n <LinkButton\n key={ item.key }\n caption={ item.name }\n onClick={ () => props.onPresetSet(item) }\n size={ settings.rangeDatePicker.sizes.preset }\n />\n ))}\n </div>\n );\n}\n","import React, { forwardRef, useState, type JSX } from 'react';\nimport cx from 'classnames';\nimport {\n IControlled,\n RangeDatePickerPresets,\n DayProps,\n RangeDatePickerInputType,\n RangeDatePickerValue,\n RangeDatePickerProps, useLayoutEffectSafeForSsr,\n} from '@epam/uui-core';\nimport { uuiDaySelection, Day } from '@epam/uui-components';\nimport { FlexCell, FlexRow } from '../layout';\nimport { CalendarPresets } from './CalendarPresets';\nimport { StatelessDatePickerBody, StatelessDatePickerBodyValue } from './DatePickerBody';\n\nimport type { Dayjs } from '../../helpers/dayJsHelper';\nimport { uuiDayjs } from '../../helpers/dayJsHelper';\nimport {\n defaultRangeValue, getDisplayedMonth, getWithFrom, getWithTo, uuiDatePickerBodyBase, valueFormat,\n} from './helpers';\nimport type { CommonDatePickerBodyProps, ViewType } from './types';\n\nimport css from './RangeDatePickerBody.module.scss';\n\nexport const uuiRangeDatePickerBody = {\n inRange: 'uui-range-datepicker-in-range',\n firstDayInRangeWrapper: 'uui-range-datepicker-first-day-in-range-wrapper',\n lastDayInRangeWrapper: 'uui-range-datepicker-last-day-in-range-wrapper',\n separator: 'uui-range-datepicker-separator',\n} as const;\n\nexport const rangeDatePickerPresets: RangeDatePickerPresets = {\n today: {\n name: 'Today',\n getRange: () => ({\n from: uuiDayjs.dayjs().toString(),\n to: uuiDayjs.dayjs().toString(),\n order: 1,\n }),\n },\n thisWeek: {\n name: 'This Week',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('isoWeek').toString(),\n to: uuiDayjs.dayjs().endOf('isoWeek').toString(),\n order: 2,\n }),\n },\n lastWeek: {\n name: 'Last Week',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('isoWeek').subtract(1, 'week').toString(),\n to: uuiDayjs.dayjs().endOf('isoWeek').subtract(1, 'week').toString(),\n order: 3,\n }),\n },\n thisMonth: {\n name: 'This Month',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('month').toString(),\n to: uuiDayjs.dayjs().endOf('month').toString(),\n order: 4,\n }),\n },\n lastMonth: {\n name: 'Last Month',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('month').subtract(1, 'month').toString(),\n to: uuiDayjs.dayjs().subtract(1, 'month').endOf('month').toString(),\n order: 5,\n }),\n },\n last3Month: {\n name: 'Last 3 Months',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('month').subtract(3, 'month').toString(),\n to: uuiDayjs.dayjs().subtract(1, 'month').endOf('month').toString(),\n order: 6,\n }),\n },\n thisYear: {\n name: 'This Year',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('year').toString(),\n to: uuiDayjs.dayjs().endOf('year').toString(),\n order: 7,\n }),\n },\n lastYear: {\n name: 'Last Year',\n getRange: () => ({\n from: uuiDayjs.dayjs().startOf('year').subtract(1, 'year').toString(),\n to: uuiDayjs.dayjs().subtract(1, 'year').endOf('year').toString(),\n order: 8,\n }),\n },\n};\n\ninterface DayState {\n inRange: boolean;\n isFirst: boolean;\n isLast: boolean;\n}\n\n/**\n * Represents date picker body value\n */\nexport interface RangeDatePickerBodyValue<TSelection> {\n /**\n * Currently setting date\n */\n inFocus: RangeDatePickerInputType;\n /**\n * Date currently set\n */\n selectedDate: TSelection;\n}\n\nexport interface RangeDatePickerBodyProps<T> extends CommonDatePickerBodyProps, Pick<RangeDatePickerProps, 'preventEmptyToDate' | 'preventEmptyFromDate' | 'initialViewMonth'>, IControlled<RangeDatePickerBodyValue<T>> {\n renderFooter?(): React.ReactNode;\n isHoliday?: (day: Dayjs) => boolean;\n}\n\nexport const RangeDatePickerBody = forwardRef(RangeDatePickerBodyComp);\n\nfunction RangeDatePickerBodyComp(props: RangeDatePickerBodyProps<RangeDatePickerValue | null>, ref: React.ForwardedRef<HTMLDivElement>): JSX.Element {\n const { value: _value, filter, initialViewMonth } = props;\n const {\n selectedDate: _selectedDate, inFocus,\n } = _value;\n const selectedDate = _selectedDate || defaultRangeValue; // also handles null in comparison to default value\n\n const [view, setView] = useState<ViewType>('DAY_SELECTION');\n const [disabledPanel, setDisabledPanel] = useState<'left' | 'right' | null>(null);\n const [month, setMonth] = useState(() => {\n return getDisplayedMonth(selectedDate, inFocus, initialViewMonth);\n });\n\n const getRange = (newValue: string | null) => {\n if (!filter || filter(uuiDayjs.dayjs(newValue))) {\n if (inFocus === 'from') {\n return getWithFrom(selectedDate, newValue, props.preventEmptyFromDate);\n }\n if (inFocus === 'to') {\n return getWithTo(selectedDate, newValue, props.preventEmptyToDate);\n }\n }\n };\n\n const onBodyValueChange = (v: string | null) => {\n // selectedDate can be null, other params should always have values\n const newRange = v ? getRange(v) : selectedDate;\n\n let newInFocus: RangeDatePickerInputType = null;\n const fromChanged = selectedDate.from !== newRange?.from;\n const toChanged = selectedDate.to !== newRange?.to;\n if (inFocus === 'from' && fromChanged) {\n newInFocus = 'to';\n } else if (inFocus === 'to' && toChanged && !fromChanged) { // for the case when we change the value \"to\" less than the value \"from\" and do not want to get stuck on the focus \"from\"\n newInFocus = 'from';\n }\n\n props.onValueChange({\n selectedDate: newRange ? newRange : selectedDate,\n inFocus: newInFocus ?? inFocus,\n });\n };\n\n const renderDay = (renderProps: DayProps): JSX.Element => {\n const { inRange, isFirst, isLast } = getDayState(renderProps.value, selectedDate);\n return (\n <Day\n { ...renderProps }\n cx={ getDayCX({ inRange, isFirst, isLast }) }\n rawProps={ {\n ...renderProps.rawProps,\n 'aria-selected': (isFirst || isLast || inRange) ? 'true' : undefined,\n } }\n />\n );\n };\n\n const from: StatelessDatePickerBodyValue<string> = {\n month,\n view: disabledPanel === 'right' ? view : 'DAY_SELECTION',\n value: null,\n };\n\n const to: StatelessDatePickerBodyValue<string> = {\n view: disabledPanel === 'left' ? view : 'DAY_SELECTION',\n month: month.add(1, 'month'),\n value: null,\n };\n\n const renderPresets = (presets: RangeDatePickerPresets) => {\n return (\n <React.Fragment>\n <div className={ uuiRangeDatePickerBody.separator } />\n <CalendarPresets\n onPresetSet={ (presetVal) => {\n // enable day if smth other were selected\n setView('DAY_SELECTION');\n setDisabledPanel(null);\n setMonth(uuiDayjs.dayjs(presetVal.from));\n props.onValueChange({\n inFocus: props.value.inFocus,\n selectedDate: {\n from: presetVal.from ? uuiDayjs.dayjs(presetVal.from).format(valueFormat) : undefined,\n to: presetVal.to ? uuiDayjs.dayjs(presetVal.to).format(valueFormat) : undefined,\n },\n });\n } }\n presets={ presets }\n />\n </React.Fragment>\n );\n };\n\n useLayoutEffectSafeForSsr(() => {\n const monthToSet = getDisplayedMonth(selectedDate, inFocus, initialViewMonth);\n // To avoid re-rendering the body if the current month being displayed is equal to or greater than 1\n const shouldNotIgnoreUpdate = !(uuiDayjs.dayjs(month).isSame(monthToSet, 'month') || uuiDayjs.dayjs(month).add(1, 'month').isSame(monthToSet, 'month'));\n if (shouldNotIgnoreUpdate) {\n setMonth(monthToSet);\n }\n }, [selectedDate]);\n\n return (\n <div\n ref={ ref }\n className={ cx(css.root, uuiDatePickerBodyBase.container, props.cx) }\n { ...props.rawProps }\n aria-multiselectable=\"true\"\n >\n <FlexRow\n cx={ [view === 'DAY_SELECTION' && css.daySelection, css.container] }\n alignItems=\"top\"\n >\n <FlexCell width=\"auto\">\n <FlexRow>\n <FlexRow\n cx={ css.bodesWrapper }\n alignItems=\"top\"\n >\n <StatelessDatePickerBody\n key=\"date-picker-body-left\"\n cx={ cx(css.fromPicker) }\n { ...from }\n onValueChange={ (v) => onBodyValueChange(v) }\n onMonthChange={ (m) => {\n setMonth(m);\n } }\n onViewChange={ (v) => {\n setView(v);\n setDisabledPanel(v !== 'DAY_SELECTION' ? 'right' : null);\n } }\n filter={ props.filter }\n isHoliday={ props.isHoliday }\n renderDay={ props.renderDay || renderDay }\n isDisabled={ disabledPanel === 'left' }\n />\n <StatelessDatePickerBody\n key=\"date-picker-body-right\"\n cx={ cx(css.toPicker) }\n { ...to }\n onValueChange={ (v) => onBodyValueChange(v) }\n onMonthChange={ (m) => {\n setMonth(m.subtract(1, 'month'));\n } }\n onViewChange={ (v) => {\n setView(v);\n setDisabledPanel(v !== 'DAY_SELECTION' ? 'left' : null);\n } }\n filter={ props.filter }\n renderDay={ props.renderDay || renderDay }\n isHoliday={ props.isHoliday }\n isDisabled={ disabledPanel === 'right' }\n />\n {view !== 'DAY_SELECTION' && (\n <div\n style={ {\n left: disabledPanel === 'right' ? '50%' : undefined,\n right: disabledPanel === 'left' ? '50%' : undefined,\n } }\n className={ css.blocker }\n />\n )}\n </FlexRow>\n {props.presets && renderPresets(props.presets)}\n </FlexRow>\n {props.renderFooter && props.renderFooter()}\n </FlexCell>\n </FlexRow>\n </div>\n );\n}\n\nconst getDayCX = ({ inRange, isFirst, isLast }: DayState): string[] => {\n return [\n cx(\n inRange && uuiRangeDatePickerBody.inRange,\n isFirst && uuiRangeDatePickerBody.firstDayInRangeWrapper,\n !inRange && isFirst && uuiRangeDatePickerBody.lastDayInRangeWrapper,\n isLast && uuiRangeDatePickerBody.lastDayInRangeWrapper,\n !inRange && isLast && uuiRangeDatePickerBody.firstDayInRangeWrapper,\n (isFirst || isLast) && uuiDaySelection.selectedDay,\n ),\n ];\n};\n\nconst getDayState = (day: Dayjs, selectedDate: RangeDatePickerValue): DayState => {\n const dayValue = day.valueOf();\n const fromValue = selectedDate?.from\n ? uuiDayjs.dayjs(selectedDate.from).valueOf() : null;\n const toValue = selectedDate?.to\n ? uuiDayjs.dayjs(selectedDate.to).valueOf() : null;\n\n const inRange = fromValue\n && toValue\n && dayValue >= fromValue\n && dayValue <= toValue\n && fromValue !== toValue;\n const isFirst = dayValue === fromValue;\n const isLast = dayValue === toValue;\n\n return {\n inRange,\n isFirst,\n isLast,\n };\n};\n","import React, { useImperativeHandle, useState, type JSX } from 'react';\nimport cx from 'classnames';\nimport { offset } from '@floating-ui/react';\nimport type { RangeDatePickerProps as CoreRangeDatePickerProps, DropdownBodyProps, Overwrite, RangeDatePickerValue, RangeDatePickerInputType } from '@epam/uui-core';\nimport { useUuiContext } from '@epam/uui-core';\nimport { Dropdown } from '@epam/uui-components';\nimport { DropdownContainer } from '../overlays';\nimport { FlexRow } from '../layout';\nimport { RangeDatePickerBody, RangeDatePickerBodyValue } from './RangeDatePickerBody';\nimport { RangeDatePickerInput } from './RangeDatePickerInput';\nimport { defaultFormat, defaultRangeValue } from './helpers';\nimport { settings } from '../../settings';\n\nimport css from './RangeDatePicker.module.scss';\n\nexport interface RangeDatePickerModsOverride {}\n\ntype RangeDatePickerMods = {\n /**\n * Defines component size.\n */\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\n/**\n * Represents the properties of the RangeDatePicker component\n */\nexport interface RangeDatePickerProps extends CoreRangeDatePickerProps, Overwrite<RangeDatePickerMods, RangeDatePickerModsOverride> {}\n\nfunction RangeDatePickerComponent(props: RangeDatePickerProps, ref: React.ForwardedRef<HTMLElement>): JSX.Element {\n const { value: _value, format = defaultFormat, size = settings.rangeDatePicker.sizes.default } = props;\n const value = _value || defaultRangeValue; // also handles null in comparison to default value\n\n const context = useUuiContext();\n const [isOpen, setIsOpen] = useState(false);\n const [inFocus, setInFocus] = useState<RangeDatePickerInputType>(null);\n\n const targetRef = React.useRef<HTMLDivElement>(null);\n\n useImperativeHandle(ref, () => targetRef.current);\n\n const onValueChange = (newValue: RangeDatePickerValue) => {\n const fromChanged = value?.from !== newValue?.from;\n const toChanged = value?.to !== newValue?.to;\n if (fromChanged || toChanged) {\n props.onValueChange(newValue);\n if (props.getValueChangeAnalyticsEvent) {\n const event = props.getValueChangeAnalyticsEvent(newValue, value);\n context.uuiAnalytics.sendEvent(event);\n }\n }\n };\n\n const onOpenChange = (newIsOpen: boolean) => {\n setIsOpen(newIsOpen);\n props.onOpenChange?.(newIsOpen);\n if (!inFocus && newIsOpen) {\n setInFocus('from');\n if (targetRef.current) {\n const inputElement = targetRef.current.querySelector<HTMLInputElement>('.uui-input');\n inputElement?.focus();\n }\n }\n };\n\n const onBodyValueChange = (newValue: RangeDatePickerBodyValue<RangeDatePickerValue>) => {\n setInFocus(newValue.inFocus ?? inFocus);\n onValueChange(newValue.selectedDate);\n\n const toChanged = value.to !== newValue.selectedDate.to;\n const closeBody = newValue.selectedDate.from && newValue.selectedDate.to\n && inFocus === 'to'\n && toChanged;\n\n if (closeBody) {\n onOpenChange(false);\n }\n };\n\n const renderBody = (renderProps: DropdownBodyProps): JSX.Element => {\n return (\n <DropdownContainer\n { ...renderProps }\n cx={ cx(css.dropdownContainer) }\n shards={ [targetRef] }\n returnFocus={ true }\n >\n <FlexRow>\n <RangeDatePickerBody\n cx={ cx(props.bodyCx) }\n value={ {\n selectedDate: _value,\n inFocus,\n } }\n onValueChange={ onBodyValueChange }\n filter={ props.filter }\n presets={ props.presets }\n renderDay={ props.renderDay }\n renderFooter={ () => {\n return props.renderFooter?.(value);\n } }\n isHoliday={ props.isHoliday }\n rawProps={ props.rawProps?.body }\n preventEmptyToDate={ props.preventEmptyToDate }\n preventEmptyFromDate={ props.preventEmptyFromDate }\n initialViewMonth={ props.initialViewMonth }\n />\n </FlexRow>\n </DropdownContainer>\n );\n };\n\n const handleEscape = (e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Escape' && isOpen) {\n e.preventDefault();\n onOpenChange(false);\n }\n };\n\n return (\n <Dropdown\n renderTarget={ (renderProps) => {\n return props.renderTarget?.(renderProps) || (\n <RangeDatePickerInput\n id={ props.id }\n ref={ (node) => { (renderProps as any).ref(node); targetRef.current = node; } }\n cx={ props.inputCx }\n onClick={ () => renderProps.toggleDropdownOpening(true) }\n isDisabled={ props.isDisabled }\n isInvalid={ props.isInvalid }\n isReadonly={ props.isReadonly }\n size={ size as RangeDatePickerProps['size'] }\n getPlaceholder={ props.getPlaceholder }\n disableClear={ props.disableClear }\n rawProps={ props.rawProps }\n inFocus={ inFocus }\n value={ value }\n format={ format }\n filter={ props.filter }\n onValueChange={ onValueChange }\n onFocusInput={ (e, type) => {\n props.onFocus?.(e, type);\n setInFocus(type);\n } }\n onBlurInput={ (e, type) => { props.onBlur?.(e, type); !isOpen && setInFocus(null); } }\n onKeyDown={ handleEscape }\n preventEmptyFromDate={ props.preventEmptyFromDate }\n preventEmptyToDate={ props.preventEmptyToDate }\n />\n );\n } }\n renderBody={ (renderProps) => renderBody(renderProps) }\n onValueChange={ (v) => onOpenChange(v) }\n value={ isOpen }\n middleware={ [offset(6)] }\n placement={ props.placement }\n ref={ ref }\n />\n );\n}\n\nexport const RangeDatePicker = React.forwardRef(RangeDatePickerComponent) as\n (props: RangeDatePickerProps & { ref?: React.ForwardedRef<HTMLElement> }) => ReturnType<typeof RangeDatePickerComponent>;\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { DndActorRenderParams, IHasCX } from '@epam/uui-core';\nimport css from './DropMarker.module.scss';\n\ninterface DropMarkerProps extends DndActorRenderParams, IHasCX {\n /**\n * Pass 'true' to enable Blocker.\n */\n enableBlocker?: boolean;\n}\n\nexport function DropMarker(props: DropMarkerProps) {\n return props.isDndInProgress\n ? (\n <>\n { props.enableBlocker && <div className={ css.blocker } /> }\n <div className={ cx([\n css.root,\n css.marker,\n css[props.position],\n props?.cx,\n ]) }\n />\n </>\n )\n : null;\n}\n","import React from 'react';\n\ninterface HighlightRange {\n from: number;\n to: number;\n isHighlighted: boolean;\n}\n\nconst mergeHighlightRanges = (ranges: HighlightRange[]) => {\n const mergedRanges: HighlightRange[] = [];\n ranges.forEach((range) => {\n if (!mergedRanges.length) {\n mergedRanges.push({ ...range, isHighlighted: true });\n }\n\n const lastRange = mergedRanges[mergedRanges.length - 1];\n if (range.from >= lastRange.from && range.from <= lastRange.to && range.to > lastRange.to) {\n lastRange.to = range.to;\n }\n\n if (lastRange.to < range.from) {\n mergedRanges.push({ ...range, isHighlighted: true });\n }\n });\n\n return mergedRanges;\n};\n\nconst addNotHighlightedRanges = (ranges: HighlightRange[], str: string) => {\n const allRanges: HighlightRange[] = [];\n ranges.forEach((range, index) => {\n if (index === 0 && range.from !== 0) {\n allRanges.push({ from: 0, to: range.from, isHighlighted: false });\n }\n const prevRange = ranges[index - 1];\n if (prevRange && prevRange.to < range.from) {\n allRanges.push({ from: prevRange.to, to: range.from, isHighlighted: false });\n }\n\n allRanges.push(range);\n const lastIndex = ranges.length - 1;\n if (index === lastIndex && range.to < str.length) {\n allRanges.push({ from: range.to, to: str.length, isHighlighted: false });\n }\n });\n return allRanges;\n};\n\nexport const getHighlightRanges = (str: string, search: string) => {\n const words = search\n .split(' ')\n .filter(Boolean)\n .map((word) => word.trim().replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')) // esape regex characters inside the string\n .map((word) => new RegExp(word, 'ig'));\n const matches = words.flatMap((word) => [...str.matchAll(word)]);\n\n const ranges = matches\n .map((match) => ({ from: match.index, to: match[0].length + match.index, isHighlighted: true }))\n .sort((range1, range2) => range1.from - range2.from);\n\n if (!ranges) {\n return [];\n }\n\n const mergedRanges = mergeHighlightRanges(ranges);\n return addNotHighlightedRanges(mergedRanges, str);\n};\n\nconst getDecoratedText = (str: string, ranges: HighlightRange[]) => \n ranges.map((range, index) => {\n const rangeStr = str.substring(range.from, range.to);\n return (\n <span\n key={ `${rangeStr}-${index}` }\n { ...(range.isHighlighted ? { className: 'uui-highlight' } : {}) }\n >\n {rangeStr}\n </span>\n );\n });\n\nexport const getHighlightedSearchMatches = (str: string, search?: string) => {\n if (!search || !str) {\n return str;\n }\n \n const ranges = getHighlightRanges(str, search);\n if (!ranges.length) {\n return str;\n }\n \n return getDecoratedText(str, ranges);\n};\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { DataRowProps, DataSourceState, Icon, Overwrite } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport { FlexCell, FlexRow } from '../layout';\nimport { Avatar } from '../widgets';\nimport { getHighlightedSearchMatches } from './highlight';\nimport { settings } from '../../settings';\n\nimport css from './PickerItem.module.scss';\n\nexport interface PickerItemModsOverride {}\n\ninterface PickerItemMods {\n /**\n * Defines component size.\n */\n size?: '24' | '30' | '36' | '42' | '48';\n}\n\nexport interface PickerItemProps<TItem, TId> extends Overwrite<PickerItemMods, PickerItemModsOverride>,\n DataRowProps<TItem, TId> {\n /** Path to the user avatar.\n * If omitted, no avatar will be rendered.\n * * */\n avatarUrl?: string;\n /** Icon to render in picker row.\n * If omitted, nothing will be rendered.\n * */\n icon?: Icon;\n /** Row title */\n title?: string;\n /** Row subtitle. Will be rendered as a second line, below the title */\n subtitle?: string;\n /** DataSourceState of the Picker.\n * Usually provided via renderItem callback params\n * */\n dataSourceState?: DataSourceState;\n /**\n * Enables highlighting of the items' text with search-matching results.\n * @default true\n * */\n highlightSearchMatches?: boolean;\n}\n\nexport function PickerItem<TItem, TId>(props: PickerItemProps<TItem, TId>) {\n const {\n highlightSearchMatches = true,\n size, avatarUrl, isLoading, isDisabled, icon,\n } = props;\n\n const itemSize = size || settings.pickerInput.sizes.body.row;\n const isMultiline = !!(props.title && props.subtitle);\n\n const { search } = props.dataSourceState ?? {};\n const title = highlightSearchMatches ? getHighlightedSearchMatches(props.title, search) : props.title;\n\n return (\n <FlexCell width=\"auto\" cx={ [css.root, 'uui-picker_input-item', 'uui-typography', props.cx] }>\n <FlexRow\n size={ itemSize }\n cx={ [isMultiline && css.multiline, css.columnGap] }\n rawProps={ { style: { '--uui-picker_item-vertical-padding': `${settings.pickerInput.sizes.body.itemVerticalPaddingMap[itemSize]}px` } as React.CSSProperties } }\n >\n { avatarUrl && (\n <Avatar\n isLoading={ isLoading }\n img={ avatarUrl }\n size={ getAvatarSize(itemSize, isMultiline) }\n />\n ) }\n { icon && <IconContainer icon={ icon } /> }\n <FlexCell width=\"auto\">\n { title && (\n <div className={ cx(css.title, isDisabled && css.disabled, `uui-size-${itemSize}`) }>\n { title }\n </div>\n ) }\n { props.subtitle && (\n <div className={ cx(css.subtitle, isDisabled && css.disabled, `uui-size-${itemSize}`) }>\n { props.subtitle }\n </div>\n ) }\n </FlexCell>\n </FlexRow>\n </FlexCell>\n );\n}\n\nfunction getAvatarSize(size: PickerItemProps<unknown, unknown>['size'], isMultiline: boolean) {\n return settings.pickerInput.sizes.body[isMultiline ? 'itemAvatarMultilineMap' : 'itemAvatarMap'][size];\n}\n","import * as React from 'react';\nimport { useCallback } from 'react';\nimport { cx, DataRowProps, DataSourceState, FlattenSearchResultsConfig, Icon, isEventTargetInsideClickable, Overwrite, uuiMarkers, uuiMod } from '@epam/uui-core';\nimport { FlexSpacer, IconContainer } from '@epam/uui-components';\nimport { settings } from '../../settings';\n\nimport css from './DataPickerRow.module.scss';\nimport { PickerItem } from './PickerItem';\nimport type { PickerInputProps } from './PickerInput';\nimport { Text } from '../typography';\nimport { FlexCell } from '../layout';\nimport { DataRowAddons } from '../widgets';\n\nexport interface DataPickerRowModsOverride {\n}\n\ninterface DataPickerRowMods {\n size?: '24' | '30' | '36' | '42' | '48';\n padding?: '12' | '24';\n alignActions?: 'top' | 'center';\n}\n\nexport interface DataPickerRowProps<TItem, TId> extends Overwrite<DataPickerRowMods, DataPickerRowModsOverride>, DataRowProps<TItem, TId>,\n Pick<PickerInputProps<TItem, TId>, 'renderRow' | 'highlightSearchMatches' | 'getName'>, FlattenSearchResultsConfig {\n /** Render callback for part of the content part of the row - between left addons and right select icon.\n * If omitted, default `PickerItem` component will be rendered.\n */\n renderItem?: (item: TItem, rowProps: DataRowProps<TItem, TId>, dataSourceState?: DataSourceState) => React.ReactNode;\n /** DataSourceState of the Picker.\n * Usually provided via renderRow callback params\n * */\n dataSourceState?: DataSourceState;\n /** A pure function that gets entity name from entity object */\n getName: (item: TItem) => string;\n}\n\nexport function DataPickerRow<TItem, TId>(props: DataPickerRowProps<TItem, TId>) {\n const rowNode = React.useRef<HTMLDivElement>(null);\n\n const handleMouseEnter = useCallback(() => {\n props.onFocus && props.onFocus(props.index);\n }, [props.onFocus, props.index]);\n\n React.useEffect(() => {\n if (props.onFocus) {\n rowNode.current?.addEventListener('mouseenter', handleMouseEnter);\n }\n return () => {\n rowNode.current?.removeEventListener('mouseenter', handleMouseEnter);\n };\n }, [props.onFocus, handleMouseEnter]);\n\n const handleFocus = () => {\n // If this row gets focus but is not the focused row, make it focused\n if (!props.isFocused && props.onFocus) {\n props.onFocus(props.index);\n }\n };\n\n const getSubtitle = ({ path }: DataRowProps<TItem, TId>) => {\n if (!props.dataSourceState?.search) return;\n\n return path\n .map(({ value }) => props.getName(value))\n .filter(Boolean)\n .join(' / ');\n };\n\n const renderRowItem = (item: TItem, rowProps: DataRowProps<TItem, TId>) => {\n if (props.renderItem) {\n return props.renderItem(item, rowProps, props.dataSourceState);\n }\n\n return (\n <PickerItem\n title={ props.getName(item) }\n size={ props.size || settings.pickerInput.sizes.body.row }\n dataSourceState={ props.dataSourceState }\n highlightSearchMatches={ props.highlightSearchMatches }\n { ...(props.flattenSearchResults ? { subtitle: getSubtitle(rowProps) } : {}) }\n { ...rowProps }\n />\n );\n };\n\n const renderContent = () => {\n let content: React.ReactNode;\n\n if (props.isLoading) {\n content = settings.pickerInput.renderPlaceholder({ rowSize: props.size });\n } else if (props.isUnknown) {\n content = (\n <Text size={ props.size }>\n Unknown\n </Text>\n );\n } else {\n const SelectIcon = (typeof settings.pickerInput.icons.body.selectIcon === 'function'\n ? settings.pickerInput.icons.body.selectIcon(props.size)\n : settings.pickerInput.icons.body.selectIcon) as Icon;\n\n content = (\n <>\n {renderRowItem(props.value, props)}\n <FlexSpacer />\n {(props.isChildrenSelected || props.isSelected) && (\n <div className={ cx(css.iconWrapper, 'uui-picker_input-row-select_icon', uuiMod.selected) }>\n <IconContainer\n size={ settings.pickerInput.sizes.body.selectIconMap[props.size] }\n icon={ SelectIcon }\n cx={ props.isChildrenSelected ? css.iconDefault : css.selectedMark }\n rawProps={ { 'aria-label': props.isChildrenSelected\n ? 'Child is selected'\n : 'Selected' } }\n />\n </div>\n )}\n </>\n );\n }\n\n return (\n <FlexCell\n grow={ 1 }\n width={ 0 }\n minWidth={ 0 }\n cx={ css.rowContent }\n >\n <DataRowAddons size={ props.size } rowProps={ props } tabIndex={ -1 } />\n <div className={ css.contentWrapper }>\n {content}\n </div>\n </FlexCell>\n );\n };\n\n const clickHandler = props.onClick || props.onSelect || props.onFold || props.onCheck;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div\n onClick={ clickHandler && ((e) => !isEventTargetInsideClickable(e) && clickHandler(props)) }\n onFocus={ handleFocus }\n role=\"option\"\n aria-busy={ props.isLoading }\n aria-posinset={ props.index + 1 }\n aria-checked={ props.checkbox?.isVisible ? props.isChecked : null }\n aria-selected={ props.isSelectable ? props.isSelected : null }\n tabIndex={ -1 }\n ref={ rowNode }\n id={ props.rowKey }\n className={ cx(\n css.pickerRow,\n 'uui-picker_input-row',\n `uui-size-${props.size || settings.pickerInput.sizes.body.row}`,\n css[`align-widgets-${props.alignActions || 'top'}`],\n clickHandler && props.isFocused && uuiMod.focus,\n clickHandler && uuiMarkers.clickable,\n props.cx,\n ) }\n style={ props.padding && {\n '--uui-data_picker-horizontal-padding': `${props.padding}px`,\n } as React.CSSProperties }\n { ...props.rawProps }\n >\n {renderContent()}\n </div>\n );\n}\n","import React, { useEffect, useMemo } from 'react';\nimport {\n DataSourceState, isMobile, cx, Overwrite, IDropdownBodyProps, devLogger, DataSourceListProps, IEditable,\n IHasRawProps, usePrevious, DataRowProps, FlattenSearchResultsConfig,\n} from '@epam/uui-core';\nimport { FlexCell } from '@epam/uui-components';\nimport { SearchInput } from '../inputs';\nimport { FlexRow, VirtualList } from '../layout';\nimport { Text } from '../typography';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\nimport css from './DataPickerBody.module.scss';\nimport isEqual from 'react-fast-compare';\nimport { DataPickerRow } from './DataPickerRow';\nimport type { PickerInputProps } from './PickerInput';\nimport { MoveFocusInside } from 'react-focus-lock';\n\nexport interface DataPickerBodyModsOverride {}\n\ninterface DataPickerBodyMods {\n searchSize?: PickerInputProps<any, any>['size'];\n}\n\nexport interface DataPickerBodyProps<TItem = unknown, TId = unknown> extends Overwrite<DataPickerBodyMods, DataPickerBodyModsOverride>,\n Pick<PickerInputProps<TItem, TId>, 'size' | 'renderRow' | 'highlightSearchMatches' | 'getName' | 'minCharsToSearch' | 'renderEmpty' | 'renderNotFound' | 'fixedBodyPosition' | 'searchDebounceDelay'>,\n FlattenSearchResultsConfig, DataSourceListProps, IEditable<DataSourceState>, IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IDropdownBodyProps {\n maxHeight?: number;\n selectionMode?: 'single' | 'multi';\n maxWidth?: number;\n onKeyDown?(e: React.KeyboardEvent<HTMLElement>): void;\n rows: DataRowProps<TItem, TId>[];\n showSearch?: boolean | 'auto';\n /** A pure function that gets entity name from entity object */\n getName: (item: TItem) => string;\n /**\n * Pass false, to disable search input autofocus\n * @default true\n * */\n autoFocusSearch?: boolean;\n}\n\nexport function DataPickerBody<TItem, TId>({ highlightSearchMatches = true, autoFocusSearch = true, ...props }:DataPickerBodyProps<TItem, TId>) {\n const prevProps = usePrevious(props);\n const showSearch = props.showSearch === 'auto' ? props.totalCount > 10 : Boolean(props.showSearch);\n const [isKeyboardNavigation, setIsKeyboardNavigation] = React.useState(false);\n\n useEffect(() => {\n if (props.rows.length !== prevProps?.rows.length || (!isEqual(prevProps?.value.checked, props.value.checked) && !props.fixedBodyPosition)) {\n props.scheduleUpdate?.();\n }\n }, [props.rows, prevProps, props.value.checked, props.fixedBodyPosition]);\n\n const searchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n props.onKeyDown?.(e);\n };\n\n const handleVirtualListFocus = (e: React.FocusEvent<HTMLElement>) => {\n // Only set keyboard navigation if focus came from keyboard (Tab key)\n // Check if the focus event was triggered by keyboard navigation\n const isKeyboardFocus = e.target === e.currentTarget;\n if (isKeyboardFocus) {\n setIsKeyboardNavigation(true);\n }\n };\n\n const handleVirtualListBlur = (e: React.FocusEvent<HTMLElement>) => {\n // Check if focus is moving outside the virtual list\n const relatedTarget = e.relatedTarget as HTMLElement;\n const currentTarget = e.currentTarget;\n\n if (relatedTarget && !currentTarget.contains(relatedTarget)) {\n // Focus is leaving the virtual list, hide visual focus but keep focusedIndex for navigation \"by circle\"\n setIsKeyboardNavigation(false);\n }\n };\n\n const {\n focusedIndex,\n topIndex,\n } = props.value;\n\n const focusedRowId = useMemo((): string => {\n // No need to make unnecessary calculations.\n if (!props.showSearch) {\n return '';\n }\n\n const focusedRow = props.rows.at(focusedIndex - topIndex);\n\n if (!focusedRow) {\n return '';\n }\n\n return focusedRow.rowKey;\n }, [props.showSearch, focusedIndex, topIndex]);\n\n const renderEmpty = () => {\n const search = props.value.search;\n\n if (props.renderEmpty) {\n return props.renderEmpty({\n minCharsToSearch: props.minCharsToSearch,\n onClose: props.onClose,\n search: search,\n });\n }\n\n if (props.minCharsToSearch && search.length < props.minCharsToSearch) {\n return (\n <FlexCell cx={ css.noData } grow={ 1 } textAlign=\"center\">\n <Text size={ props.searchSize }>{i18n.dataPickerBody.typeSearchToLoadMessage}</Text>\n </FlexCell>\n );\n }\n\n if (props.rows.length === 0) {\n if (props.renderNotFound) {\n if (__DEV__) {\n devLogger.warn('[PickerInput]: renderNotFound prop is deprecated. Please use renderEmpty prop instead.');\n }\n\n return props.renderNotFound({\n onClose: props.onClose,\n search: search,\n });\n }\n\n return (\n <FlexCell cx={ css.noData } grow={ 1 } textAlign=\"center\">\n <Text size={ props.searchSize }>{i18n.dataPickerBody.noRecordsMessage}</Text>\n </FlexCell>\n );\n }\n };\n\n const getRowSize = () => {\n if (isMobile()) {\n return settings.pickerInput.sizes.body.mobileRow;\n }\n\n return props.size || settings.pickerInput.sizes.body.row;\n };\n\n const renderRow = (row: DataRowProps<TItem, TId>, dsState: DataSourceState) => {\n const pickerRowProps = {\n ...row,\n getName: props.getName,\n cx: cx(\n row.cx,\n isKeyboardNavigation && row.isFocused && 'uui-focus',\n isKeyboardNavigation && row.isFocused && 'uui-keyboard-focus',\n ),\n };\n\n return props.renderRow ? (\n props.renderRow(pickerRowProps, dsState)\n ) : (\n <DataPickerRow\n { ...pickerRowProps }\n key={ row.rowKey }\n size={ getRowSize() }\n flattenSearchResults={ props.flattenSearchResults }\n highlightSearchMatches={ highlightSearchMatches }\n dataSourceState={ dsState }\n getName={ props.getName }\n />\n );\n };\n\n const renderSearchInput = () => {\n return (\n <SearchInput\n placeholder={ i18n.dataPickerBody.searchPlaceholder }\n value={ props.value.search }\n onValueChange={ (newVal) => props.onValueChange({ ...props.value, search: newVal }) }\n onKeyDown={ searchKeyDown }\n size={ searchSize }\n debounceDelay={ props.searchDebounceDelay }\n rawProps={ {\n dir: 'auto',\n 'aria-activedescendant': focusedRowId,\n } }\n />\n );\n };\n\n const searchSize = isMobile()\n ? settings.pickerInput.sizes.body.mobileSearchInput\n : settings.pickerInput.sizes.body.getSearchSize({ pickerSize: props.searchSize });\n\n const renderedDataRows = useMemo(() => props.rows.map((row) => renderRow(row, props.value)), [props.rows, props.value, isKeyboardNavigation]);\n return (\n <>\n {showSearch && (\n <div key=\"search\" className={ cx(css.searchWrapper, 'uui-picker_input-body-search') }>\n <FlexCell grow={ 1 }>\n { autoFocusSearch ? <MoveFocusInside>{ renderSearchInput() }</MoveFocusInside> : renderSearchInput() }\n </FlexCell>\n </div>\n )}\n <FlexRow\n key=\"body\"\n cx={ cx('uui-picker_input-body') }\n rawProps={ { style: { maxHeight: props.maxHeight, maxWidth: props.maxWidth }, tabIndex: -1 } }\n >\n { props.rows.length === 0 && props.value.topIndex === 0\n // We need to also ensure that topIndex === 0, because we can have state were there is no rows but topIndex > 0, in case when we scrolled lover than we have rows\n // we fix this state on next render and shouldn't show empty state.\n ? renderEmpty() : (\n <VirtualList\n value={ props.value }\n onValueChange={ props.onValueChange }\n rows={ renderedDataRows }\n role=\"listbox\"\n cx={ css.root }\n rawProps={ {\n 'aria-multiselectable': props.selectionMode === 'multi' ? true : null,\n 'aria-orientation': 'vertical',\n tabIndex: 0,\n onKeyDown: props.onKeyDown,\n onFocus: handleVirtualListFocus,\n onBlur: handleVirtualListBlur,\n ...props.rawProps,\n } }\n rowsCount={ props.rowsCount }\n isLoading={ props.isReloading }\n renderBlocker={ settings.pickerInput.renderBlocker }\n overflowTopEffect={ showSearch ? 'line' : 'none' }\n overflowBottomEffect=\"line\"\n />\n )}\n </FlexRow>\n </>\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport cx from 'classnames';\nimport { isMobile, Overwrite, PickerFooterProps } from '@epam/uui-core';\nimport { i18n } from '../../i18n';\nimport { Switch } from '../inputs';\nimport { FlexCell, FlexRow, FlexSpacer } from '../layout';\nimport { LinkButton } from '../buttons';\nimport type { SizeMod } from '../types';\nimport { settings } from '../../settings';\n\nimport './DataPickerFooter.module.scss';\n\nexport interface DataPickerFooterModsOverride {\n}\n\ninterface DataPickerFooterMods extends SizeMod {\n}\n\nexport type DataPickerFooterProps<TItem, TId> = Overwrite<DataPickerFooterMods, DataPickerFooterModsOverride> & PickerFooterProps<TItem, TId> & {\n selectionMode: 'single' | 'multi';\n};\n\nfunction DataPickerFooterImpl<TItem, TId>(props: PropsWithChildren<DataPickerFooterProps<TItem, TId>>) {\n const {\n search,\n clearSelection,\n view,\n showSelected,\n selectionMode,\n isSearchTooShort,\n } = props;\n\n const size = isMobile() ? settings.pickerInput.sizes.body.mobileFooterLinkButton : props.size;\n const hasSelection = view.getSelectedRowsCount() > 0;\n const rowsCount = view.getListProps().rowsCount;\n\n const isSinglePicker = selectionMode === 'single';\n\n const clearAllText = i18n.pickerInput.clearSelectionButton;\n const clearSingleText = i18n.pickerInput.clearSelectionButtonSingle;\n const selectAllText = i18n.pickerInput.selectAllButton;\n\n const isSearching = search?.length;\n const hideFooter = (rowsCount === 0 && !hasSelection) || isSearching || (isSinglePicker && props.disableClear);\n\n const showClear = !props.disableClear && (isSinglePicker ? true : (!view.selectAll || hasSelection));\n\n return !hideFooter && (\n <FlexRow cx={ cx('uui-picker_input-footer', props.cx) }>\n {!isSinglePicker && !isSearchTooShort && ( // Show this switch only for multi mode and when some rows rendered\n <Switch\n size={ settings.pickerInput.sizes.body.footerSwitchMap[props.size] }\n value={ showSelected.value }\n isDisabled={ !hasSelection }\n onValueChange={ showSelected.onValueChange }\n label={ i18n.pickerInput.showOnlySelectedLabel }\n />\n )}\n\n <FlexSpacer />\n\n <FlexCell width=\"auto\" alignSelf=\"center\">\n {view.selectAll && !hasSelection && (\n <LinkButton\n key=\"SelectAll/ClearAll\" // We use the same key for these buttons, because we need to leave focus on it after click, so we need to react doesn't remount it.\n size={ size }\n caption={ selectAllText }\n onClick={ () => view.selectAll.onValueChange(true) }\n />\n )}\n { showClear && (\n <LinkButton\n key=\"SelectAll/ClearAll\" // We use the same key for these buttons, because we need to leave focus on it after click, so we need to react doesn't remount it. Basically it's the same button, but with different caption.\n size={ size }\n caption={ isSinglePicker ? clearSingleText : clearAllText }\n onClick={ clearSelection }\n isDisabled={ !hasSelection }\n />\n )}\n </FlexCell>\n </FlexRow>\n );\n}\n\nexport const DataPickerFooter = React.memo(DataPickerFooterImpl);\n","import React from 'react';\nimport { IconButton } from '../buttons';\nimport { FlexRow } from '../layout';\nimport { settings } from '../../settings';\n\nimport css from './DataPickerHeader.module.scss';\n\ninterface DataPickerHeaderProps {\n title?: string;\n close?: () => void;\n}\n\nconst DataPickerMobileHeaderImpl: React.FC<DataPickerHeaderProps> = (props) => {\n const title = props.title && typeof props.title === 'string' ? props.title.charAt(0).toUpperCase() + props.title.slice(1) : '';\n\n return (\n <FlexRow alignItems=\"center\" borderBottom cx={ [css.header, 'uui-picker_input-body-header'] }>\n <div className={ css.title }>\n {title}\n </div>\n <IconButton\n icon={ settings.pickerInput.icons.body.pickerBodyMobileHeaderCloseIcon }\n onClick={ () => props.close?.() }\n cx={ css.close }\n />\n </FlexRow>\n );\n};\n\nexport const DataPickerMobileHeader = React.memo(DataPickerMobileHeaderImpl);\n","import React, { ReactNode } from 'react';\nimport type { IDropdownBodyProps, IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { isMobile } from '@epam/uui-core';\nimport { LinkButton } from '../buttons';\nimport { DataPickerMobileHeader } from './DataPickerMobileHeader';\nimport { DropdownContainer, DropdownContainerProps } from '../overlays';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './PickerBodyMobileView.module.scss';\n\nexport interface IMobileDropdownWrapperProps extends IHasCX, IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IDropdownBodyProps, Pick<DropdownContainerProps, 'shards'> {\n /**\n * Children of the dropdown container.\n */\n children: ReactNode;\n /**\n * Title of the dropdown container.\n */\n title?: string;\n /**\n * Callback for keyboard events.\n */\n onKeyDown?(e: React.KeyboardEvent<HTMLElement>): void;\n /**\n * Whether to lock focus on the dropdown container.\n */\n focusLock?: boolean;\n /**\n * Width of the dropdown container.\n */\n width?: number | 'auto';\n /**\n * Maximum width of the dropdown container.\n * @default 'auto'\n */\n maxWidth?: number | 'auto';\n /**\n * Maximum height of the dropdown container.\n * @default 'auto'\n */\n maxHeight?: number;\n}\n\nexport const PickerBodyMobileView: React.FC<IMobileDropdownWrapperProps> = (props) => {\n const isMobileView = isMobile();\n const maxWidth = isMobileView ? 'auto' : props.maxWidth;\n const maxHeight = isMobileView ? 'auto' : props.maxHeight;\n\n return (\n <DropdownContainer\n { ...props }\n maxWidth={ maxWidth }\n maxHeight={ maxHeight }\n cx={ [css.container, props.cx] }\n autoFocus={ false }\n >\n {isMobileView && <DataPickerMobileHeader title={ props.title } close={ props.onClose } />}\n\n {props.children}\n\n {isMobileView && (\n <LinkButton\n caption={ i18n.pickerInput.doneButton }\n onClick={ () => props.onClose?.() }\n cx={ css.done }\n size={ settings.pickerInput.sizes.body.mobileFooterLinkButton }\n />\n )}\n </DropdownContainer>\n );\n};\n","import React, { useMemo } from 'react';\nimport { IHasCaption, PickerBaseOptions, PickerRenderRowParams } from '@epam/uui-core';\nimport { IconContainer, PickerModalArrayProps, PickerModalOptions, PickerModalScalarProps, handleDataSourceKeyboard, usePickerModal } from '@epam/uui-components';\nimport { DataPickerRow } from './DataPickerRow';\nimport { Text } from '../typography';\nimport { FlexRow, FlexCell, FlexSpacer } from '../layout';\nimport {\n ModalBlocker, ModalWindow, ModalHeader, ModalFooter,\n} from '../overlays';\nimport { LinkButton, Button } from '../buttons';\nimport { SearchInput, Switch } from '../inputs';\nimport { DataPickerBody } from './DataPickerBody';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './PickerModal.module.scss';\nimport { MoveFocusInside } from 'react-focus-lock';\n\nexport type PickerModalProps<TItem, TId> = PickerBaseOptions<TItem, TId> &\nIHasCaption &\n(PickerModalScalarProps<TId, TItem> | PickerModalArrayProps<TId, TItem>) &\nPickerModalOptions<TItem, TId>;\n\nexport function PickerModal<TItem, TId>(props: PickerModalProps<TItem, TId>) {\n const {\n view,\n selection,\n dataSourceStateLens,\n dataSourceState,\n getName,\n clearSelection,\n getRows,\n getListProps,\n getFooterProps,\n isSingleSelect,\n handleDataSourceValueChange,\n } = usePickerModal<TItem, TId>(props);\n const isSearching = dataSourceState.search && dataSourceState.search.length > 0;\n\n const renderRow = (rowProps: PickerRenderRowParams<TItem, TId>) => {\n return props.renderRow ? (\n props.renderRow(rowProps, dataSourceState)\n ) : (\n <DataPickerRow\n { ...rowProps }\n key={ rowProps.rowKey }\n size={ settings.pickerInput.sizes.body.row }\n flattenSearchResults={ view.getConfig().flattenSearchResults }\n dataSourceState={ dataSourceState }\n getName={ getName }\n />\n );\n };\n\n const renderFooter = () => {\n const hasSelection = view.getSelectedRowsCount() > 0;\n const rowsCount = view.getListProps().rowsCount;\n const isEmptyRowsAndHasNoSelection = (rowsCount === 0 || !hasSelection);\n const showClear = !props.disableClear && (isSingleSelect() ? true : (!view.selectAll || hasSelection));\n const isClearDisabled = isSearching || isEmptyRowsAndHasNoSelection;\n\n return (\n <>\n {view.selectAll && !hasSelection && (\n <LinkButton\n caption={ i18n.pickerModal.selectAllButton }\n onClick={ () => view.selectAll.onValueChange(true) }\n />\n )}\n {showClear && (\n <LinkButton\n caption={ isSingleSelect() ? i18n.pickerModal.clearButton : i18n.pickerModal.clearAllButton }\n onClick={ () => clearSelection() }\n isDisabled={ isClearDisabled }\n />\n )}\n <FlexSpacer />\n <Button fill=\"outline\" color=\"secondary\" caption={ i18n.pickerModal.cancelButton } onClick={ () => props.abort() } />\n <Button color=\"primary\" caption={ i18n.pickerModal.selectButton } onClick={ () => props.success(selection as any) } />\n </>\n );\n };\n\n const renderNotFound = () => {\n return props.renderNotFound ? (\n props.renderNotFound({ search: dataSourceState.search, onClose: () => props.success(null) })\n ) : (\n <div className={ css.noFoundModalContainer }>\n <IconContainer cx={ css.noFoundModalContainerIcon } icon={ settings.pickerInput.icons.body.modalNotFoundSearchIcon } />\n <Text cx={ css.noFoundModalContainerText } fontWeight=\"600\" fontSize=\"16\" lineHeight=\"24\" color=\"primary\">\n {i18n.dataPickerBody.noRecordsMessage}\n </Text>\n <Text cx={ css.noFoundModalContainerText } fontSize=\"12\" lineHeight=\"18\" color=\"primary\">\n {i18n.dataPickerBody.noRecordsSubTitle}\n </Text>\n </div>\n );\n };\n\n const dataRows = getRows();\n\n const {\n focusedIndex,\n topIndex,\n } = dataSourceState;\n\n const focusedRowId = useMemo((): string => {\n const focusedRow = dataRows.at(focusedIndex - topIndex);\n\n if (!focusedRow) {\n return '';\n }\n\n return focusedRow.rowKey;\n }, [focusedIndex, topIndex]);\n\n const onKeyDownHandler = (e: React.KeyboardEvent) => {\n handleDataSourceKeyboard(\n {\n value: dataSourceState,\n onValueChange: handleDataSourceValueChange,\n listView: view,\n rows: dataRows,\n searchPosition: 'body',\n },\n e,\n );\n };\n\n return (\n <ModalBlocker { ...props }>\n <ModalWindow width={ 600 } height={ 700 } cx={ css.body }>\n <ModalHeader title={ props.caption || i18n.pickerModal.headerTitle } onClose={ () => props.abort() } />\n <FlexCell cx={ css.subHeaderWrapper }>\n <FlexRow vPadding=\"24\">\n <MoveFocusInside className={ css.search }>\n <SearchInput\n { ...dataSourceStateLens.prop('search').toProps() }\n onKeyDown={ onKeyDownHandler }\n placeholder={ i18n.pickerModal.searchPlaceholder }\n rawProps={ {\n dir: 'auto',\n 'aria-activedescendant': focusedRowId,\n } }\n />\n </MoveFocusInside>\n </FlexRow>\n {!isSingleSelect() && (\n <Switch\n cx={ css.switch }\n size={ settings.pickerInput.sizes.body.footerSwitchMap[settings.pickerInput.sizes.body.row] }\n { ...getFooterProps().showSelected }\n isDisabled={ isSearching || view.getSelectedRowsCount() < 1 }\n label=\"Show only selected\"\n />\n )}\n {props.renderFilter && <FlexCell grow={ 2 }>{props.renderFilter(dataSourceStateLens.prop('filter').toProps())}</FlexCell>}\n </FlexCell>\n <DataPickerBody\n { ...getListProps() }\n value={ dataSourceState }\n onValueChange={ handleDataSourceValueChange }\n showSearch={ false }\n getName={ getName }\n rows={ dataRows }\n renderRow={ renderRow }\n renderEmpty={ renderNotFound }\n size={ settings.pickerInput.sizes.body.row }\n onKeyDown={ onKeyDownHandler }\n />\n <ModalFooter>\n {props.renderFooter ? props.renderFooter(getFooterProps()) : renderFooter()}\n </ModalFooter>\n </ModalWindow>\n </ModalBlocker>\n );\n}\n","import * as React from 'react';\nimport { PickerTogglerRenderItemParams } from '@epam/uui-components';\nimport { Overwrite } from '@epam/uui-core';\nimport type { ControlSize } from '../types';\nimport { Tag, TagProps } from '../widgets/Tag';\nimport { Tooltip } from '../overlays';\nimport { TextPlaceholder } from '../typography';\nimport { settings } from '../../settings';\n\nimport css from './PickerTogglerTag.module.scss';\n\nexport interface PickerTogglerTagModsOverride {}\n\ninterface PickerTogglerTagMods {\n /** Defines component size */\n size?: ControlSize;\n}\n\nexport interface PickerTogglerTagProps<TItem, TId> extends Overwrite<PickerTogglerTagMods, PickerTogglerTagModsOverride>, PickerTogglerRenderItemParams<TItem, TId>, Omit<TagProps, 'size'> {\n getName: (item: TItem) => string;\n}\n\nexport const PickerTogglerTag = React.forwardRef((props: PickerTogglerTagProps<any, any>, ref: React.Ref<HTMLElement>) => {\n const tagProps = {\n ...props,\n tabIndex: -1,\n size: settings.pickerInput.sizes.toggler.tagMap[props.size],\n caption: props.rowProps?.isLoading ? <TextPlaceholder /> : props.caption,\n };\n\n if (props.isCollapsed) {\n const collapsedRows = props.collapsedRows.map((row) => props.getName(row.value)).join(', ');\n return (\n <Tooltip\n key=\"selected\"\n content={ collapsedRows }\n closeDelay={ 150 }\n closeOnMouseLeave=\"boundary\"\n cx={ css.tooltip }\n >\n <Tag ref={ ref } rawProps={ { role: 'option' } } { ...tagProps } cx={ css.noShrink } />\n </Tooltip>\n );\n } else {\n return <Tag ref={ ref } rawProps={ { role: 'option' } } { ...tagProps } />;\n }\n});\n","import * as React from 'react';\nimport { Overwrite } from '@epam/uui-core';\nimport { PickerToggler as UuiPickerToggler, PickerTogglerProps as UuiPickerTogglerProps } from '@epam/uui-components';\nimport { PickerTogglerTag, PickerTogglerTagProps } from './PickerTogglerTag';\nimport type { IHasEditMode } from '../types';\nimport { EditMode } from '../types';\nimport { settings } from '../../settings';\n\nimport css from './PickerToggler.module.scss';\n\nimport type { JSX } from 'react';\n\nconst defaultMode = EditMode.FORM;\n\nexport interface PickerTogglerModsOverride {}\n\nexport interface PickerTogglerMods extends IHasEditMode {\n /**\n * Defines component size\n * @default 36\n */\n size?: '24' | '30' | '36' | '42' | '48';\n}\n\nexport type PickerTogglerProps<TItem, TId> = UuiPickerTogglerProps<TItem, TId> & Overwrite<PickerTogglerMods, PickerTogglerModsOverride>;\n\nfunction applyPickerTogglerMods(mods: PickerTogglerMods) {\n return [\n css.root,\n 'uui-picker_toggler',\n `uui-size-${mods.size || settings.pickerInput.sizes.toggler.default}`,\n 'uui-control-mode-' + (mods.mode || defaultMode),\n ];\n}\n\nfunction PickerTogglerComponent<TItem, TId>(\n props: PickerTogglerProps<TItem, TId>,\n ref: React.ForwardedRef<HTMLElement>,\n): JSX.Element {\n const renderItem = (itemProps: PickerTogglerTagProps<TItem, TId>) => {\n const itemPropsWithSize = { ...itemProps, size: props.size || settings.pickerInput.sizes.toggler.tag };\n if (!!props.renderItem) {\n return props.renderItem(itemPropsWithSize);\n }\n\n return (\n <PickerTogglerTag\n { ...itemPropsWithSize }\n key={ itemProps.isCollapsed ? 'collapsed_tag' : itemProps.rowProps?.id as string }\n getName={ props.getName }\n />\n );\n };\n\n return (\n <UuiPickerToggler\n { ...props }\n ref={ ref }\n cx={ [applyPickerTogglerMods(props), props.cx] }\n renderItem={ renderItem }\n getName={ props.getName }\n cancelIcon={ settings.pickerInput.icons.toggler.clearIcon }\n dropdownIcon={ settings.pickerInput.icons.toggler.dropdownIcon }\n />\n );\n}\n\nexport const PickerToggler = React.forwardRef(PickerTogglerComponent) as\n <TItem, TId>(props: PickerTogglerProps<TItem, TId>) => ReturnType<typeof PickerTogglerComponent>;\n","import React, { useContext, useImperativeHandle, useMemo, useRef, type JSX } from 'react';\nimport { Middleware, offset } from '@floating-ui/react';\nimport {\n DropdownBodyProps, IEditableDebouncer, PickerInputElement, isMobile, Overwrite,\n PickerInputBaseProps, UuiContext, mobilePositioning, type DropdownProps,\n} from '@epam/uui-core';\nimport { PickerTogglerRenderItemParams, PickerTogglerProps, usePickerInput } from '@epam/uui-components';\nimport { Dropdown } from '../overlays/Dropdown';\nimport { PickerModal } from './PickerModal';\nimport { PickerToggler, PickerTogglerMods } from './PickerToggler';\nimport { PickerBodyMobileView } from './PickerBodyMobileView';\nimport { DataPickerBody } from './DataPickerBody';\nimport { DataPickerFooter } from './DataPickerFooter';\nimport { EditMode, IHasEditMode, SizeMod } from '../types';\nimport { settings } from '../../settings';\n\nexport interface PickerInputModsOverride {}\n\ninterface PickerInputMods extends SizeMod {}\n\nexport type PickerInputProps<TItem, TId> = Overwrite<PickerInputMods, PickerInputModsOverride> & IHasEditMode & PickerInputBaseProps<TItem, TId> & Pick<DropdownProps, 'closeBodyOnTogglerHidden'> & {\n /**\n * Render callback for picker toggler selection tag\n * If omitted, default `PickerTogglerTag` component will be rendered\n */\n renderTag?: (props: PickerTogglerRenderItemParams<TItem, TId>) => JSX.Element;\n\n /** Replaces default 'toggler' - an input to which Picker attaches dropdown */\n renderToggler?: (props: PickerTogglerProps<TItem, TId>) => React.ReactNode;\n};\n\nfunction PickerInputComponent<TItem, TId>(props: PickerInputProps<TItem, TId>, ref: React.ForwardedRef<PickerInputElement>) {\n const context = useContext(UuiContext);\n\n const middleware: Middleware[] = useMemo(() => [offset(6), mobilePositioning], []);\n\n const toggleModalOpening = () => {\n const { renderFooter, rawProps, ...restProps } = props;\n context.uuiModals\n .show((modalProps) => (\n <PickerModal<TItem, TId>\n { ...restProps }\n { ...modalProps }\n rawProps={ rawProps?.body }\n caption={ getPlaceholder() }\n initialValue={ props.value as any }\n selectionMode={ props.selectionMode }\n valueType={ props.valueType }\n />\n ))\n .then((newSelection) => {\n handleSelectionValueChange(newSelection);\n })\n .catch(() => {});\n };\n\n const {\n view,\n getName,\n getPlaceholder,\n handleSelectionValueChange,\n getTogglerProps,\n getRows,\n handleTogglerSearchChange,\n toggleBodyOpening,\n dataSourceState,\n handleDataSourceValueChange,\n getFooterProps,\n getListProps,\n shouldShowBody,\n getSearchPosition,\n closePickerBody,\n openPickerBody,\n handlePickerInputKeyboard,\n } = usePickerInput<TItem, TId, PickerInputProps<TItem, TId>>({ ...props, toggleModalOpening });\n\n const togglerRef = useRef(null);\n\n useImperativeHandle(ref, () => {\n if (togglerRef.current) {\n togglerRef.current.closePickerBody = closePickerBody;\n togglerRef.current.openPickerBody = openPickerBody;\n }\n\n return togglerRef.current;\n }, [closePickerBody, openPickerBody]);\n\n const getTogglerMods = (): PickerTogglerMods => {\n return {\n size: props.size,\n mode: props.mode ? props.mode : EditMode.FORM,\n };\n };\n\n const rows = getRows();\n\n const renderTarget = (targetProps: PickerTogglerProps<TItem, TId>) => {\n const renderTargetFn = props.renderToggler || ((props) => <PickerToggler { ...props } />);\n\n return (\n <IEditableDebouncer\n value={ targetProps.value }\n onValueChange={ handleTogglerSearchChange }\n debounceDelay={ props.searchDebounceDelay }\n render={ (editableProps) => renderTargetFn({\n ...getTogglerMods(),\n ...targetProps,\n ...editableProps,\n onKeyDown: (e) => handlePickerInputKeyboard(rows, e, editableProps.value),\n }) }\n />\n );\n };\n\n const renderFooter = () => {\n const footerProps = getFooterProps();\n\n return props.renderFooter\n ? props.renderFooter(footerProps)\n : <DataPickerFooter { ...footerProps } size={ props.size || settings.pickerInput.sizes.body.row } />;\n };\n\n const renderBody = (dropdownProps: DropdownBodyProps) => {\n const bodyHeight = isMobile() ? document.documentElement.clientHeight : props.dropdownHeight || settings.pickerInput.sizes.body.maxHeight;\n const minBodyWidth = props.minBodyWidth || settings.pickerInput.sizes.body.minWidth;\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLElement>) => handlePickerInputKeyboard(rows, e);\n\n return (\n <PickerBodyMobileView\n title={ props.entityName }\n onClose={ () => toggleBodyOpening(false) }\n cx={ [props.bodyCx, 'uui-picker_input-body-wrapper'] }\n width={ dropdownProps.togglerWidth > minBodyWidth ? dropdownProps.togglerWidth : minBodyWidth }\n focusLock={ true }\n shards={ getSearchPosition() === 'input' ? [togglerRef] : undefined }\n rawProps={ { 'aria-modal': true } }\n >\n <DataPickerBody\n { ...dropdownProps }\n { ...getListProps() }\n showSearch={ getSearchPosition() === 'body' }\n getName={ getName }\n value={ dataSourceState }\n onValueChange={ handleDataSourceValueChange }\n rows={ rows }\n maxHeight={ bodyHeight }\n searchSize={ props.size }\n selectionMode={ props.selectionMode }\n renderNotFound={ props.renderNotFound }\n renderEmpty={ props.renderEmpty }\n renderRow={ props.renderRow }\n onKeyDown={ onKeyDown }\n minCharsToSearch={ props.minCharsToSearch }\n fixedBodyPosition={ props.fixedBodyPosition }\n searchDebounceDelay={ props.searchDebounceDelay }\n rawProps={ props.rawProps?.body }\n highlightSearchMatches={ props.highlightSearchMatches }\n flattenSearchResults={ view.getConfig().flattenSearchResults }\n />\n { renderFooter() }\n </PickerBodyMobileView>\n );\n };\n\n const renderItem = props.renderTag ? props.renderTag : null;\n return (\n <Dropdown\n renderTarget={ (dropdownProps) => {\n const targetProps = getTogglerProps();\n return renderTarget({ ...dropdownProps, ...targetProps, renderItem });\n } }\n renderBody={ (bodyProps) => renderBody(bodyProps) }\n value={ shouldShowBody() }\n onValueChange={ !props.isDisabled && toggleBodyOpening }\n placement={ props.dropdownPlacement }\n middleware={ middleware }\n closeBodyOnTogglerHidden={ isMobile() ? false : props.closeBodyOnTogglerHidden }\n portalTarget={ props.portalTarget }\n ref={ togglerRef }\n />\n );\n}\n\nexport const PickerInput = React.forwardRef(PickerInputComponent) as\n <TItem, TId>(props: PickerInputProps<TItem, TId> & { ref?: React.ForwardedRef<PickerInputElement> }) => ReturnType<typeof PickerInputComponent>;\n","import React from 'react';\nimport { DataRowProps } from '@epam/uui-core';\nimport { Checkbox, RadioInput } from '../inputs';\nimport { TextPlaceholder } from '../typography';\n\nimport css from './PickerListItem.module.scss';\n\nexport interface PickerListItemProps<TItem, TId> extends DataRowProps<TItem, TId> {\n /** A pure function that gets entity name from entity object.\n Default: (item) => item.name.\n */\n getName(item: TItem): string;\n}\n\nexport function PickerListRow<TItem, TId>(props: PickerListItemProps<TItem, TId>) {\n let label: any;\n\n if (props.isLoading) {\n label = <TextPlaceholder wordsCount={ 2 } />;\n } else {\n label = props.getName(props.value);\n }\n\n let component: any;\n\n if (props.checkbox) {\n component = (\n <Checkbox\n { ...props.checkbox }\n isDisabled={ props.isLoading || props.checkbox.isDisabled || props.isDisabled }\n label={ label }\n value={ props.isChecked }\n onValueChange={ () => props.onCheck(props) }\n />\n );\n } else {\n component = (\n <RadioInput\n label={ label }\n value={ props.isSelected }\n isDisabled={ props.isLoading || !props.isSelectable || props.isDisabled }\n onValueChange={ () => props.onSelect(props) }\n />\n );\n }\n\n return (\n <div\n role=\"option\"\n aria-selected={ props.isSelectable ? props.isSelected : undefined }\n aria-busy={ props.isLoading }\n aria-posinset={ props.index + 1 }\n { ...(props.checkbox?.isVisible && { 'aria-checked': props.isChecked }) }\n className={ css.row }\n >\n {component}\n </div>\n );\n}\n","import React from 'react';\nimport cx from 'classnames';\nimport { DataRowProps, IClickable, IDisableable, IHasCaption, IHasPlaceholder, Overwrite } from '@epam/uui-core';\nimport { PickerListBaseProps, PickerModalOptions, usePickerList } from '@epam/uui-components';\nimport { SizeMod } from '../types';\nimport { Text } from '../typography';\nimport { PickerListRow } from './PickerListRow';\nimport { PickerModal } from './PickerModal';\nimport { LinkButton } from '../buttons';\n\nimport css from './PickerList.module.scss';\n\nexport interface PickerListModsOverride {}\n\ninterface PickerListMods extends SizeMod {}\n\nexport type PickerListProps<TItem, TId> = Overwrite<PickerListMods, PickerListModsOverride> &\nIHasPlaceholder & PickerModalOptions<TItem, TId> & PickerListBaseProps<TItem, TId> & {\n renderModalToggler?(props: IClickable & IHasCaption & IDisableable, selection: DataRowProps<TItem, TId>[]): React.ReactNode;\n noOptionsMessage?: React.ReactNode;\n};\n\nexport function PickerList<TItem, TId>(props: PickerListProps<TItem, TId>) {\n const {\n context,\n view,\n onlySelectedView,\n getName,\n getEntityName,\n appendLastSelected,\n getSelectedIdsArray,\n buildRowsList,\n getMaxDefaultItems,\n getModalTogglerCaption,\n } = usePickerList<TItem, TId, PickerListProps<TItem, TId>>(props);\n\n const defaultListRenderRow = (row: DataRowProps<TItem, TId>) => {\n return <PickerListRow getName={ (item) => getName(item) } { ...row } key={ row.rowKey } />;\n };\n\n const handleShowPicker = () => {\n context.uuiModals\n .show((modalProps) => (\n <PickerModal<TItem, TId>\n { ...modalProps }\n { ...props }\n caption={ props.placeholder || `Please select ${getEntityName() ? getEntityName() : ''}` }\n initialValue={ props.value as any }\n selectionMode={ props.selectionMode }\n valueType={ props.valueType }\n />\n ))\n .then((value: any) => {\n appendLastSelected([...getSelectedIdsArray(value)]);\n props.onValueChange(value);\n })\n .catch(() => {});\n };\n\n const defaultRenderToggler = (props: IClickable) => <LinkButton caption=\"Show all\" { ...props } />;\n\n const viewProps = view.getListProps();\n const selectedRows = onlySelectedView.getVisibleRows();\n const rows = buildRowsList();\n const showPicker = viewProps.totalCount == null || viewProps.totalCount > getMaxDefaultItems();\n const renderToggler = props.renderModalToggler || defaultRenderToggler;\n const renderRow = props.renderListRow || defaultListRenderRow;\n\n return (\n <div className={ cx('uui-picker-list', css.root) }>\n {!rows.length\n && (props.noOptionsMessage || (\n <Text color=\"secondary\" size={ props.size }>\n No options available\n </Text>\n ))}\n {rows.map((row) => renderRow({ ...row, isDisabled: props.isDisabled }))}\n {showPicker\n && renderToggler(\n {\n onClick: handleShowPicker,\n caption: getModalTogglerCaption(viewProps.totalCount, view.getSelectedRowsCount()),\n isDisabled: props.isDisabled,\n },\n selectedRows,\n )}\n </div>\n );\n}\n","import * as React from 'react';\nimport {\n DataTableCellProps as UuiCoreDataTableCellProps,\n Overwrite,\n uuiMod,\n} from '@epam/uui-core';\nimport { DataTableCell as UuiDataTableCell } from '@epam/uui-components';\nimport { DataRowAddons, DataRowAddonsProps } from '../widgets';\nimport type { DataTableCellMods } from './types';\nimport { Text } from '../typography';\nimport { Tooltip } from '../overlays';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableCell.module.scss';\n\nexport interface DataTableCellModsOverride {}\n\nexport interface DataTableCellProps<TItem, TId, TCellValue> extends\n UuiCoreDataTableCellProps<TItem, TId, TCellValue>, Pick<DataRowAddonsProps<TItem, TId>, 'renderDragHandle'>, Overwrite<DataTableCellMods, DataTableCellModsOverride> {\n}\n\nexport function DataTableCell<TItem, TId, TCellValue>(initialProps : DataTableCellProps<TItem, TId, TCellValue>) {\n const props = { ...initialProps };\n\n if (props.isFirstColumn) {\n props.addons = <DataRowAddons size={ props.size } { ...props } />;\n }\n\n props.renderPlaceholder = props.renderPlaceholder\n || (() => settings.dataTable.renderPlaceholder({ rowSize: props.size }));\n\n props.renderUnknown = props.renderUnknown\n || (() => (\n <Text key=\"t\" size={ props.size }>\n Unknown\n </Text>\n ));\n\n props.renderTooltip = (tooltipProps) => <Tooltip color=\"critical\" { ...tooltipProps } />;\n\n const isEditable = !!props.onValueChange;\n\n const getLeftPadding = () => {\n const { rowProps: { isLoading }, columnsGap, isFirstColumn } = props;\n\n if (isFirstColumn && isEditable && !isLoading) return 'var(--uui-dt-cell-padding)';\n if (isEditable && !isLoading) return '0px';\n if (columnsGap) return isFirstColumn ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-cell-padding${isFirstColumn ? '-edge' : ''})`;\n };\n\n const getRightPadding = () => {\n const { rowProps: { isLoading }, columnsGap, isLastColumn } = props;\n\n if (isEditable && !isLoading) return '0px';\n if (columnsGap) return isLastColumn ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-cell-padding${isLastColumn ? '-edge' : ''})`;\n };\n\n props.cx = [\n 'data-table-cell',\n css.root,\n props.cx,\n 'uui-size-' + (props.size || settings.dataTable.sizes.body.row),\n props.isFirstColumn && 'uui-dt-first-column',\n props.isLastColumn && 'uui-dt-last-column',\n css[`align-widgets-${props.alignActions || 'top'}`],\n (props.border || isEditable) && 'uui-dt-vertical-cell-border',\n props.isDisabled && uuiMod.disabled,\n props.isReadonly && uuiMod.readonly,\n ];\n\n props.style = {\n '--uui-dt-cell-padding-start': getLeftPadding(),\n '--uui-dt-cell-padding-end': getRightPadding(),\n } as React.CSSProperties;\n\n return <UuiDataTableCell { ...props } />;\n}\n","import * as React from 'react';\nimport { withMods, DataTableCellProps, DataTableRowProps as CoreDataTableRowProps, Overwrite } from '@epam/uui-core';\nimport { DataTableRow as uuiDataTableRow } from '@epam/uui-components';\nimport { DataTableCell } from './DataTableCell';\nimport { DropMarker } from '../dnd';\nimport type { DataTableRowMods } from './types';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableRow.module.scss';\n\n// Here we define a single instance of the renderCell function to make DataTableRow#shouldComponentUpdate work.\n// As we need our mods to style the cell properly, we extract them from DataTableCellProps.rowProps, which is a hack, but it's reliable enough.\nexport const renderCell = (props: DataTableCellProps) => {\n const mods = props.rowProps as DataTableRowMods & DataTableRowProps;\n return <DataTableCell { ...props } key={ props.key } size={ mods.size } columnsGap={ mods.columnsGap } />;\n};\n\nexport const renderDropMarkers: DataTableRowProps['renderDropMarkers'] = ({ ref, ...props }) => <DropMarker { ...props } enableBlocker={ true } />;\n\nexport const propsMods = { renderCell, renderDropMarkers };\n\nexport interface DataTableRowModsOverride {}\n\nexport type DataTableRowProps = CoreDataTableRowProps & Overwrite<DataTableRowMods, DataTableRowModsOverride>;\n\nexport const DataTableRow = withMods<CoreDataTableRowProps, DataTableRowProps>(\n uuiDataTableRow,\n ({ borderBottom = true, size }) => {\n return [\n css.root, 'uui-dt-vars', borderBottom && 'uui-dt-row-border', `uui-size-${size || settings.dataTable.sizes.body.row}`,\n ];\n },\n () => propsMods,\n);\n","import React, { useCallback } from 'react';\nimport { cx, SortDirection } from '@epam/uui-core';\nimport { FlexCell } from '../../layout';\nimport { DropdownMenuButton } from '../../overlays';\nimport { i18n } from '../../../i18n';\nimport { settings } from '../../../settings';\n\nimport css from './SortingPanel.module.scss';\n\nexport interface SortingPanelProps {\n sortDirection: SortDirection;\n onSort(dir: SortDirection): void;\n}\n\nconst SortingPanelImpl: React.FC<SortingPanelProps> = ({ sortDirection, onSort }) => {\n const sortAsc = useCallback(() => onSort(sortDirection === 'asc' ? undefined : 'asc'), [onSort]);\n const sortDesc = useCallback(() => onSort(sortDirection === 'desc' ? undefined : 'desc'), [onSort]);\n\n return (\n <FlexCell cx={ cx(css.sortingPanelContainer, 'uui-dropdownMenu-body') }>\n <DropdownMenuButton\n isActive={ sortDirection === 'asc' }\n caption={ i18n.pickerFilterHeader.sortAscending }\n icon={ settings.dataTable.icons.header.ascSortIcon }\n onClick={ sortAsc }\n />\n <DropdownMenuButton\n isActive={ sortDirection === 'desc' }\n caption={ i18n.pickerFilterHeader.sortDescending }\n icon={ settings.dataTable.icons.header.descSortIcon }\n onClick={ sortDesc }\n />\n </FlexCell>\n );\n};\n\nexport const SortingPanel = React.memo(SortingPanelImpl);\n","import React, { useCallback, useMemo } from 'react';\nimport {\n IDropdownToggler,\n DropdownBodyProps,\n mobilePositioning,\n} from '@epam/uui-core';\nimport { Middleware, offset } from '@floating-ui/react';\nimport { Dropdown } from '@epam/uui-components';\nimport { PickerBodyMobileView } from '../../pickers';\nimport { SortingPanel, SortingPanelProps } from './SortingPanel';\n\ntype ColumnHeaderDropdownProps = SortingPanelProps & {\n isOpen: boolean;\n isSortable: boolean;\n renderTarget: (props: IDropdownToggler) => React.ReactNode;\n renderFilter?: (dropdownProps: DropdownBodyProps) => React.ReactNode;\n onOpenChange(nV: boolean): void;\n title: string;\n};\n\nconst ColumnHeaderDropdownImpl: React.FC<ColumnHeaderDropdownProps> = (props) => {\n const middleware: Middleware[] = useMemo(\n () => [offset(1), mobilePositioning],\n [],\n );\n\n const closeDropdown = useCallback(() => props.onOpenChange(false), [props.onOpenChange]);\n\n return (\n <Dropdown\n renderTarget={ props.renderTarget }\n renderBody={ (dropdownProps) => (\n <PickerBodyMobileView\n width={ 280 }\n maxWidth=\"auto\"\n title={ props.title }\n onClose={ closeDropdown }\n rawProps={ { 'aria-modal': true } }\n >\n {props.isSortable && <SortingPanel sortDirection={ props.sortDirection } onSort={ props.onSort } />}\n {props.renderFilter(dropdownProps)}\n </PickerBodyMobileView>\n ) }\n middleware={ middleware }\n value={ props.isOpen }\n onValueChange={ props.onOpenChange }\n />\n );\n};\n\nexport const ColumnHeaderDropdown = React.memo(ColumnHeaderDropdownImpl);\n","import * as React from 'react';\nimport {\n cx, DataColumnProps, DataTableHeaderCellProps as UuiCoreDataTableHeaderCellProps, IDropdownTogglerProps, Overwrite, uuiDataTableHeaderCell, uuiMarkers,\n} from '@epam/uui-core';\nimport {\n ControlIcon,\n DataTableCellContainer,\n DataTableHeaderCell as UuiDataTableHeaderCell,\n HeaderCellContentProps,\n} from '@epam/uui-components';\nimport { ColumnHeaderDropdown } from './ColumnHeaderDropdown';\nimport type { DataTableHeaderCellMods } from './types';\nimport { IconButton } from '../buttons';\nimport { Checkbox } from '../inputs';\nimport { Tooltip } from '../overlays';\nimport { Text } from '../typography';\n\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableHeaderCell.module.scss';\n\ninterface DataTableHeaderCellState {\n isDropdownOpen: boolean;\n}\n\nexport interface DataTableHeaderCellModsOverride {\n}\n\nexport interface DataTableHeaderCellProps<TItem, TId> extends\n UuiCoreDataTableHeaderCellProps<TItem, TId>,\n Overwrite<DataTableHeaderCellMods, DataTableHeaderCellModsOverride> {}\n\nexport class DataTableHeaderCell<TItem, TId> extends React.Component<DataTableHeaderCellProps<TItem, TId>, DataTableHeaderCellState> {\n state: DataTableHeaderCellState = {\n isDropdownOpen: null,\n };\n\n getTooltipContent = (column: DataColumnProps<TItem, TId>) => (\n <div className={ cx(css.cellTooltipWrapper, uuiDataTableHeaderCell.uuiTableHeaderCaptionTooltip) }>\n <Text cx={ [css.cellTooltipText, css.tooltipCaption] }>\n { column.caption }\n </Text>\n { column.info && (\n <Text cx={ [css.cellTooltipText, css.tooltipInfo] }>\n { column.info }\n </Text>\n ) }\n </div>\n );\n\n getColumnCaption = (props: HeaderCellContentProps, dropdownProps?: IDropdownTogglerProps) => {\n const renderTooltip = this.props.column.renderTooltip || this.getTooltipContent;\n const captionCx = cx([\n css.caption,\n this.props.textCase === 'upper' && css.upperCase,\n uuiDataTableHeaderCell.uuiTableHeaderCaption,\n 'uui-typography-inline',\n this.props.size >= '48' && css.truncate,\n ]);\n\n const handleFilterOpen = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n dropdownProps.onClick(e);\n e.preventDefault();\n }\n };\n\n const handleSort = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n props.toggleSort(e);\n e.preventDefault();\n }\n };\n\n return (\n <div\n className={ cx(css.captionWrapper, css['align-' + this.props.column.textAlign], uuiDataTableHeaderCell.uuiTableHeaderCaptionWrapper) }\n >\n <Tooltip\n placement=\"top\"\n color=\"inverted\"\n content={ renderTooltip(this.props.column) }\n cx={ [css.cellTooltip, 'uui-dt-header-tooltip'] }\n openDelay={ 600 }\n closeOnMouseLeave=\"boundary\"\n >\n <div key=\"text\" className={ captionCx }>\n { this.props.column.caption }\n </div>\n </Tooltip>\n { this.props.column.isSortable && (!this.props.column.renderFilter || this.props.sortDirection) && (\n <ControlIcon\n key=\"sort\"\n cx={ cx(css.icon, css.sortIcon, !this.props.sortDirection && css.sortInActive, uuiDataTableHeaderCell.uuiTableHeaderSortIcon) }\n icon={ settings.dataTable.icons.header[this.props.sortDirection === 'desc' ? 'descSortIcon' : this.props.sortDirection === 'asc' ? 'ascSortIcon' : 'defaultSortIcon'] }\n onKeyDown={ !this.props.column.renderFilter ? handleSort : undefined }\n />\n ) }\n { this.props.isFilterActive && (\n <IconButton\n key=\"filter\"\n cx={ cx(css.icon, !this.props.sortDirection && css.filterIcon, uuiDataTableHeaderCell.uuiTableHeaderFilterIcon) }\n color=\"neutral\"\n icon={ settings.dataTable.icons.header.filterIcon }\n />\n ) }\n { this.props.column.renderFilter && (\n <ControlIcon\n key=\"dropdown\"\n cx={ cx(css.icon, css.dropdownIcon, uuiDataTableHeaderCell.uuiTableHeaderDropdownIcon) }\n icon={ settings.dataTable.icons.header[this.state.isDropdownOpen ? 'openedDropdownIcon' : 'dropdownIcon'] }\n onKeyDown={ handleFilterOpen }\n />\n ) }\n </div>\n );\n };\n\n renderHeaderCheckbox = () => {\n if (this.props.selectAll && this.props.isFirstColumn) {\n return (\n <Checkbox\n size={ settings.dataTable.sizes.body.checkboxMap[this.props.size] }\n rawProps={ { 'aria-label': 'Select All' } }\n { ...this.props.selectAll }\n cx={ cx(css.checkbox, uuiDataTableHeaderCell.uuiTableHeaderCheckbox) }\n />\n );\n }\n };\n\n renderFoldAllIcon = () => {\n if (this.props.isFirstColumn && this.props.showFoldAll) {\n return (\n <Tooltip content={\n this.props.areAllFolded\n ? i18n.tables.columnHeader.expandAllTooltip\n : i18n.tables.columnHeader.collapseAllTooltip\n }\n >\n <ControlIcon\n cx={ cx(css.icon, css.foldAllIcon, uuiDataTableHeaderCell.uuiTableHeaderFoldAllIcon) }\n icon={ settings.dataTable.icons.header[this.props.areAllFolded ? 'unfoldIcon' : 'foldIcon'] }\n onClick={ this.props.onFoldAll }\n rawProps={ {\n 'aria-label': this.props.areAllFolded ? 'Expand All' : 'Collapse All',\n 'aria-expanded': !!this.props.areAllFolded,\n } }\n />\n </Tooltip>\n );\n }\n };\n\n renderResizingMarker = (props: HeaderCellContentProps) => {\n return (\n <div\n role=\"separator\"\n onMouseDown={ props.onResizeStart }\n className={ cx(css.resizingMarker, uuiMarkers.draggable, uuiMarkers.clickable) }\n />\n );\n };\n\n getLeftPadding = () => {\n const { columnsGap, isFirstColumn } = this.props;\n\n if (columnsGap) return isFirstColumn ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-header-cell-padding${isFirstColumn ? '-edge' : ''})`;\n };\n\n getRightPadding = () => {\n const { columnsGap, isLastColumn } = this.props;\n\n if (columnsGap) return isLastColumn ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-header-cell-padding${isLastColumn ? '-edge' : ''})`;\n };\n\n getResizingMarkerWidth = () => {\n const { columnsGap } = this.props;\n return columnsGap ? `${+columnsGap / 2}px` : 'var(--uui-resize-marker-width)';\n };\n\n renderCellContent = (props: HeaderCellContentProps, dropdownProps?: IDropdownTogglerProps) => {\n const isResizable = this.props.column.allowResizing ?? this.props.allowColumnsResizing;\n const onClickEvent = !props.isResizing && (!this.props.column.renderFilter ? props.toggleSort : dropdownProps?.onClick);\n\n const computeStyles = {\n '--uui-dt-header-cell-icon-size': `${settings.dataTable.sizes.header.iconMap[this.props.size || settings.dataTable.sizes.header.row]}px`,\n '--uui-dt-header-cell-padding-start': this.getLeftPadding(),\n '--uui-dt-header-cell-padding-end': this.getRightPadding(),\n '--uui-dt-header-cell-resizing-marker-width': this.getResizingMarkerWidth(),\n } as React.CSSProperties;\n\n return (\n <DataTableCellContainer\n column={ this.props.column }\n ref={ (ref) => {\n (props.ref as React.RefCallback<HTMLElement>)(ref);\n (dropdownProps?.ref as React.RefCallback<HTMLElement>)?.(ref);\n } }\n cx={ cx(\n uuiDataTableHeaderCell.uuiTableHeaderCell,\n (this.props.column.isSortable || this.props.isDropdown) && uuiMarkers.clickable,\n css.root,\n `uui-size-${this.props.size || settings.dataTable.sizes.header.row}`,\n this.props.isFirstColumn && 'uui-dt-header-first-column',\n this.props.isLastColumn && 'uui-dt-header-last-column',\n this.props.column.fix && css['pinned-' + this.props.column.fix],\n isResizable && uuiMarkers.resizable,\n props.isDraggable && css.draggable,\n props.isDragGhost && css.ghost,\n props.isDraggedOut && css.isDraggedOut,\n props.isDndInProgress && css['dnd-marker-' + props.position],\n ) }\n onClick={ onClickEvent }\n rawProps={ {\n role: 'columnheader',\n 'aria-sort': this.props.sortDirection === 'asc' ? 'ascending' : this.props.sortDirection ? 'descending' : 'none',\n ...props.eventHandlers,\n } }\n style={ computeStyles }\n >\n { this.renderHeaderCheckbox() }\n { this.renderFoldAllIcon() }\n { this.getColumnCaption(props, dropdownProps) }\n { isResizable && this.renderResizingMarker(props) }\n </DataTableCellContainer>\n );\n };\n\n renderCellWithFilter = (props: HeaderCellContentProps) => (\n <ColumnHeaderDropdown\n isOpen={ this.state.isDropdownOpen }\n isSortable={ this.props.column.isSortable }\n renderTarget={ (dropdownProps) => this.renderCellContent(props, dropdownProps) }\n renderFilter={ this.props.renderFilter }\n onSort={ this.props.onSort }\n sortDirection={ this.props.sortDirection }\n onOpenChange={ (isDropdownOpen) => this.setState({ isDropdownOpen }) }\n title={ this.props.column.caption as string }\n />\n );\n\n render() {\n if (this.props.column.renderHeaderCell) {\n return this.props.column.renderHeaderCell(this.props);\n }\n\n return (\n <UuiDataTableHeaderCell\n { ...this.props }\n renderCellContent={ this.props.column.renderFilter ? this.renderCellWithFilter : this.renderCellContent }\n />\n );\n }\n}\n","import * as React from 'react';\nimport { cx, DataColumnGroupProps, DataTableHeaderGroupCellProps, Overwrite, uuiDataTableHeaderGroupCell } from '@epam/uui-core';\nimport { DataTableCellContainer } from '@epam/uui-components';\nimport type { DataTableHeaderCellMods } from './types';\nimport { Tooltip } from '../overlays';\nimport { Text } from '../typography';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableHeaderGroupCell.module.scss';\n\nexport interface DataTableHeaderGroupCellModsOverride {\n}\n\nexport class DataTableHeaderGroupCell extends\n React.Component<\n DataTableHeaderGroupCellProps & Overwrite<DataTableHeaderCellMods,\n DataTableHeaderGroupCellModsOverride>\n > {\n getTooltipContent = (column: DataColumnGroupProps) => (\n <div className={ cx(css.groupCellTooltipWrapper, uuiDataTableHeaderGroupCell.uuiTableHeaderGroupCaptionTooltip) }>\n <Text cx={ [css.groupCellTooltipText, css.tooltipCaption] }>\n { column.caption }\n </Text>\n { column.info && (\n <Text cx={ [css.groupCellTooltipText, css.tooltipInfo] }>\n { column.info }\n </Text>\n ) }\n </div>\n );\n\n getColumnCaption = () => {\n const renderTooltip = this.props.group.renderTooltip || this.getTooltipContent;\n const captionCx = cx(\n css.caption,\n this.props.textCase === 'upper' && css.upperCase,\n uuiDataTableHeaderGroupCell.uuiTableHeaderGroupCaption,\n 'uui-typography-inline',\n this.props.size >= '48' && css.truncate,\n );\n\n return (\n <div\n className={ cx(css.captionWrapper, css['align-' + this.props.group.textAlign], uuiDataTableHeaderGroupCell.uuiTableHeaderGroupCaptionWrapper) }\n >\n <Tooltip\n placement=\"top\"\n color=\"inverted\"\n content={ renderTooltip(this.props.group) }\n cx={ css.groupCellTooltip }\n openDelay={ 600 }\n >\n <div key=\"text\" className={ captionCx }>\n { this.props.group.caption }\n </div>\n </Tooltip>\n </div>\n );\n };\n\n getLeftPadding = () => {\n const { columnsGap, isFirstCell } = this.props;\n\n if (columnsGap) return isFirstCell ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-header-group-cell-padding${isFirstCell ? '-edge' : ''})`;\n };\n\n getRightPadding = () => {\n const { columnsGap, isLastCell } = this.props;\n\n if (columnsGap) return isLastCell ? `${columnsGap}px` : `${+columnsGap / 2}px`;\n return `var(--uui-dt-header-group-cell-padding${isLastCell ? '-edge' : ''})`;\n };\n\n render() {\n if (this.props.group.renderHeaderCell) {\n return this.props.group.renderHeaderCell(this.props);\n }\n\n const computeStyles = {\n '--uui-dt-header-group-cell-padding-start': this.getLeftPadding(),\n '--uui-dt-header-group-cell-padding-end': this.getRightPadding(),\n } as React.CSSProperties;\n\n return (\n <DataTableCellContainer\n column={ this.props.group }\n cx={ cx(\n uuiDataTableHeaderGroupCell.uuiTableHeaderGroupCell,\n css.root,\n `uui-size-${this.props.size || settings.dataTable.sizes.header.row}`,\n this.props.isFirstCell && 'uui-dt-header-first-column',\n this.props.isLastCell && 'uui-dt-header-last-column',\n ) }\n rawProps={ { role: 'columnheader' } }\n style={ computeStyles }\n >\n { this.getColumnCaption() }\n </DataTableCellContainer>\n );\n }\n}\n","import * as React from 'react';\nimport { DataTableHeaderRowProps as CoreDataTableHeaderRowProps, withMods } from '@epam/uui-core';\nimport { ControlIcon, DataTableHeaderRow as uuiDataTableHeaderRow } from '@epam/uui-components';\nimport { DataTableHeaderCell } from './DataTableHeaderCell';\nimport { DataTableHeaderGroupCell } from './DataTableHeaderGroupCell';\nimport type { DataTableHeaderRowMods } from './types';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTableHeaderRow.module.scss';\n\nexport type DataTableHeaderRowProps = CoreDataTableHeaderRowProps & DataTableHeaderRowMods;\nexport const DataTableHeaderRow = withMods<CoreDataTableHeaderRowProps, DataTableHeaderRowProps>(\n uuiDataTableHeaderRow,\n () => [css.root, 'uui-dt-vars'],\n (mods) => {\n return ({\n renderCell: (props) => (\n <DataTableHeaderCell\n { ...props }\n size={ mods.size }\n textCase={ mods.textCase || 'normal' }\n key={ props.column.key }\n columnsGap={ mods.columnsGap }\n />\n ),\n renderGroupCell: (props) => (\n <DataTableHeaderGroupCell\n { ...props }\n size={ mods.size }\n textCase={ mods.textCase || 'normal' }\n key={ props.key }\n columnsGap={ mods.columnsGap }\n />\n ),\n renderConfigButton: () => (\n <ControlIcon\n key=\"configuration\"\n onClick={ mods.onConfigButtonClick }\n size={ settings.dataTable.sizes.header.iconMap[mods.size || settings.dataTable.sizes.header.row] }\n cx={ ['config-icon'] }\n icon={ settings.dataTable.icons.header.configIcon }\n rawProps={ {\n 'aria-label': 'Configure columns',\n } }\n />\n ),\n });\n },\n);\n","import type { DataQueryFilter, FilterPredicate } from '@epam/uui-core';\n\nexport const normalizeFilterWithPredicates = <TFilter,>(filter: TFilter) => {\n if (!filter) {\n return {};\n }\n const result: DataQueryFilter<TFilter> = filter;\n const keys = Object.keys(filter) as (keyof TFilter)[];\n for (let n = 0; n < keys.length; n++) {\n const key = keys[n];\n const filterValue: any = filter[key];\n if (filterValue && typeof filterValue === 'object') {\n if (Object.keys(filterValue).length === 0) {\n delete filter[key];\n continue;\n }\n if ('from' in filterValue && 'to' in filterValue) {\n continue;\n }\n if ('in' in filterValue && (!Array.isArray(filterValue.in) || !filterValue.in.length)) {\n delete filter[key];\n }\n if ('nin' in filterValue && (!Array.isArray(filterValue.nin) || !filterValue.nin.length)) {\n delete filter[key];\n }\n if ('inRange' in filterValue) {\n if (!filterValue.inRange || (!filterValue.inRange.from && !filterValue.inRange.to)) {\n delete filter[key];\n }\n }\n if ('notInRange' in filterValue) {\n if (!filterValue.notInRange || (!filterValue.notInRange.from && !filterValue.notInRange.to)) {\n delete filter[key];\n }\n }\n Object.keys(filterValue).forEach((predicate) => {\n if (filterValue[predicate] === null || filterValue[predicate] === undefined) {\n delete filter[key];\n }\n });\n }\n }\n return result;\n};\n\nexport const getValue = (predicate: keyof FilterPredicate<any>, value: any) => predicate ? value?.[predicate] : value;\n","import React, { useEffect } from 'react';\nimport { FilterPredicate, FilterPredicateName, IFilterPredicate } from '@epam/uui-core';\nimport { settings } from '../../settings';\nimport { MultiSwitch } from '../inputs';\nimport { getValue } from './helpers/predicateHelpers';\n\ninterface IPredicatesHeaderProps {\n predicates: IFilterPredicate[];\n predicate: keyof FilterPredicate<any>;\n type: 'singlePicker' | 'multiPicker' | 'datePicker' | 'numeric' | 'rangeDatePicker' | 'custom';\n onValueChange: (newValue: any) => void;\n value: unknown;\n setPredicate: React.Dispatch<React.SetStateAction<keyof FilterPredicate<any>>>;\n}\n\nexport function FilterPredicatePanel(props: IPredicatesHeaderProps) {\n if (!props.predicates) return null;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n // This effect needs when the filter dropdown was closed and opened again\n if (props.predicates && props.value && Object.keys(props.value).length > 0) {\n const predicateFromValue = Object.keys(props.value)[0];\n if (predicateFromValue !== props.predicate) {\n props.setPredicate(predicateFromValue as FilterPredicateName);\n }\n }\n }, [props.value]);\n\n const changePredicate = (val: FilterPredicateName) => {\n const isInRange = (p: FilterPredicateName) => p === 'inRange' || p === 'notInRange';\n if (props.type === 'numeric') {\n let predicateValue = { [val]: getValue(props.predicate, props.value) };\n\n if (isInRange(val) && !isInRange(props.predicate as FilterPredicateName)) {\n // from simple predicate -> to Range\n predicateValue = { [val]: { from: null, to: null } };\n } else if (!isInRange(val) && isInRange(props.predicate as FilterPredicateName)) {\n // from Range -> to simple predicate\n predicateValue = { [val]: null };\n }\n props.onValueChange(predicateValue);\n } else {\n props.onValueChange({ [val]: getValue(props.predicate, props.value) });\n }\n props.setPredicate(val);\n };\n\n return (\n <MultiSwitch\n items={ props.predicates?.map((i) => ({ id: i.predicate, caption: i.name })) }\n value={ props.predicate }\n onValueChange={ changePredicate }\n size={ settings.filtersPanel.sizes.pickerBodyMultiSwitch }\n />\n );\n}\n","export const UUI_FILTERS_PANEL_ADD_BUTTON = 'uui-filters-panel-add-button';\nexport const UUI_FILTERS_PANEL_ADD_BUTTON_BODY = 'uui-filters-panel-add-button-body';\nexport const UUI_FILTERS_PANEL_ITEM_BODY = 'uui-filters-panel-item-body';\nexport const UUI_FILTERS_PANEL_ITEM_TOGGLER = 'uui-filters-panel-item-toggler';\nexport const UUI_FILTERS_PANEL_ITEM_TOGGLER_TITLE = 'uui-filters-panel-item-toggler-title';\nexport const UUI_FILTERS_PANEL_ITEM_TOGGLER_SELECTION = 'uui-filters-panel-item-toggler-selection';\nexport const UUI_FILTERS_PANEL_ITEM_TOGGLER_POSTFIX = 'uui-filters-panel-item-toggler-postfix';\nexport const UUI_FILTERS_PANEL_BODY_FOOTER = 'uui-filters-panel-item-footer';\n","import { FilterPredicateName, IFilterItemBodyProps } from '@epam/uui-core';\nimport React, { useState } from 'react';\nimport { DropdownContainer, FilterItemBody, getDefaultPredicate } from '../index';\nimport { FilterPredicatePanel } from './FilterPredicatePanel';\nimport { UUI_FILTERS_PANEL_ITEM_BODY } from './constants';\nimport { getValue } from './helpers/predicateHelpers';\nimport css from './FiltersPanelItem.module.scss';\n\nexport function FilterColumnBody(props: IFilterItemBodyProps<any>) {\n const [predicate, setPredicate] = useState<FilterPredicateName>(getDefaultPredicate(props.predicates, props.value));\n\n const onValueChange = (value: any) => {\n if (props.predicates) {\n props.onValueChange({ [predicate]: value });\n } else {\n props.onValueChange(value);\n }\n };\n\n const renderHeader = () => {\n const panelProps = {\n predicates: props.predicates,\n predicate,\n type: props.type,\n onValueChange: props.onValueChange,\n value: props.value,\n setPredicate,\n };\n\n return props.predicates?.length > 0 && (\n <div className={ css.header }>\n <FilterPredicatePanel { ...panelProps } />\n </div>\n );\n };\n\n return (\n <DropdownContainer style={ { minWidth: '360px' } } cx={ [css.body, UUI_FILTERS_PANEL_ITEM_BODY] } { ...props } focusLock={ false } rawProps={ { 'aria-modal': true } }>\n {renderHeader()}\n <FilterItemBody\n { ...props }\n selectedPredicate={ predicate }\n value={ getValue(predicate, props.value) }\n onValueChange={ onValueChange }\n />\n </DropdownContainer>\n );\n}\n","import React, { useCallback, useMemo } from 'react';\nimport { DataColumnProps, ILens, TableFiltersConfig, IDropdownBodyProps } from '@epam/uui-core';\nimport { FilterColumnBody } from '../components/filters/FilterColumnBody';\nimport { normalizeFilterWithPredicates } from '../components/filters/helpers/predicateHelpers';\n\nexport const useColumnsWithFilters = <TFilter extends Record<string, any>>(initialColumns: DataColumnProps[], filters: TableFiltersConfig<TFilter>[] | undefined) => {\n const makeFilterRenderCallback = useCallback<(key: string) => (lens: ILens<TFilter>, dropdownProps: IDropdownBodyProps) => React.ReactNode>\n ((key) => function (filterLens, dropdownProps) {\n const filter = filters?.find((f) => f.columnKey === key);\n if (!filter) return null;\n\n const props = filterLens\n .onChange((oldFilter: TFilter, newFilter: TFilter) => normalizeFilterWithPredicates(newFilter) as TFilter)\n .prop(filter.field)\n .toProps();\n\n return <FilterColumnBody { ...props } { ...filter } { ...dropdownProps } />;\n }, [filters]);\n\n const columns = useMemo(() => {\n if (filters) {\n const filterKeys = filters.map((f) => f.columnKey);\n const newColumns = (initialColumns.map((column) => {\n if (filterKeys.includes(column.key)) {\n return {\n ...column,\n renderFilter: makeFilterRenderCallback(column.key),\n };\n } else {\n return column;\n }\n }));\n return newColumns;\n }\n return initialColumns;\n }, [filters, initialColumns]);\n\n return columns;\n};\n","import * as React from 'react';\nimport type { Icon } from '@epam/uui-core';\nimport { cx } from '@epam/uui-core';\nimport { IconButton } from '../../buttons';\nimport { Tooltip } from '../../overlays';\nimport { i18n } from '../../../i18n';\nimport { settings } from '../../../settings';\n\nimport css from './PinIconButton.module.scss';\n\ntype TPinPosition = 'left' | 'right' | undefined;\ninterface IPinIconButton {\n pinPosition: TPinPosition;\n canUnpin: boolean;\n onTogglePin: (pinPosition: TPinPosition) => void;\n}\n\nexport function PinIconButton(props: IPinIconButton) {\n const i18nLocal = i18n.tables.columnsConfigurationModal;\n const {\n onTogglePin, pinPosition, canUnpin,\n } = props;\n const isPinned = !!pinPosition;\n const isPinnedAlways = isPinned && !canUnpin;\n\n let pinUnpinNode: React.ReactNode;\n\n if (isPinned) {\n const unpinIcon = getUnpinIcon({ isPinnedAlways, pinPosition })!;\n const iconTooltip = isPinnedAlways ? i18nLocal.lockedColumnPinButton : i18nLocal.unPinColumnButton;\n const unpinClickHandler = isPinnedAlways ? undefined : () => onTogglePin(undefined);\n pinUnpinNode = (\n <Tooltip\n content={ iconTooltip }\n placement=\"bottom\"\n color=\"inverted\"\n >\n <IconButton\n cx={ cx(!isPinnedAlways && css.unpinIcon, css.pinTogglerIcon) }\n icon={ unpinIcon }\n onClick={ unpinClickHandler }\n isDisabled={ isPinnedAlways }\n color=\"primary\"\n rawProps={ {\n 'aria-description': iconTooltip,\n 'aria-label': 'Unpin Button',\n } }\n />\n </Tooltip>\n );\n } else {\n pinUnpinNode = (\n <>\n <Tooltip\n content={ i18nLocal.pinColumnToTheLeftButton }\n placement=\"bottom\"\n color=\"inverted\"\n >\n <IconButton\n cx={ css.pinTogglerIcon }\n icon={ settings.dataTable.icons.columnsConfigurationModal.pinLeftIcon }\n onClick={ () => onTogglePin('left') }\n isDisabled={ isPinnedAlways }\n rawProps={ {\n 'aria-description': i18nLocal.pinColumnToTheLeftButton,\n 'aria-label': 'Pin left button',\n } }\n />\n </Tooltip>\n <Tooltip\n content={ i18nLocal.pinColumnToTheRightButton }\n placement=\"bottom\"\n color=\"inverted\"\n >\n <IconButton\n cx={ css.pinTogglerIcon }\n icon={ settings.dataTable.icons.columnsConfigurationModal.pinRightIcon }\n onClick={ () => onTogglePin('right') }\n isDisabled={ isPinnedAlways }\n rawProps={ {\n 'aria-description': i18nLocal.pinColumnToTheRightButton,\n 'aria-label': 'Pin right button',\n } }\n />\n </Tooltip>\n </>\n );\n }\n\n return pinUnpinNode;\n}\n\nfunction getUnpinIcon(params: { isPinnedAlways: boolean, pinPosition: TPinPosition }): Icon | undefined {\n const { isPinnedAlways, pinPosition } = params;\n if (isPinnedAlways) {\n return settings.dataTable.icons.columnsConfigurationModal.lockIcon;\n }\n switch (pinPosition) {\n case 'left': {\n return settings.dataTable.icons.columnsConfigurationModal.pinLeftIcon;\n }\n case 'right': {\n return settings.dataTable.icons.columnsConfigurationModal.pinRightIcon;\n }\n default: {\n return;\n }\n }\n}\n","import * as React from 'react';\nimport { cx, DataColumnProps, DndActor, DndActorRenderParams, uuiDndState } from '@epam/uui-core';\nimport { DragHandle, ColumnsConfigurationRowProps } from '@epam/uui-components';\nimport { FlexRow } from '../../layout';\nimport { Checkbox } from '../../inputs';\nimport { DropMarker } from '../../dnd';\nimport { PinIconButton } from './PinIconButton';\nimport { settings } from '../../../settings';\n\nimport css from './ColumnRow.module.scss';\n\nexport interface ColumnRowProps<TItem, TId, TFilter> {\n column: ColumnsConfigurationRowProps;\n renderItem?: (column: DataColumnProps<TItem, TId, TFilter>) => React.ReactNode;\n}\n\nexport const ColumnRow = React.memo(function ColumnRow(props: ColumnRowProps<any, any, any>) {\n const { column } = props;\n const {\n toggleVisibility, togglePin, onCanAcceptDrop, onDrop, columnConfig, isDndAllowed, isPinnedAlways, columnGroup,\n } = column;\n const { isVisible, fix } = columnConfig;\n const pinPosition = fix || (isPinnedAlways ? 'left' : undefined);\n const isPinned = !!pinPosition;\n const data = { column, columnConfig };\n\n const getColumnCaption = () => {\n if (props.renderItem) {\n return props.renderItem(props.column);\n }\n\n if (column.group) {\n return `${column.caption}/${columnGroup.caption}`;\n } else {\n return column.caption;\n }\n };\n\n const renderContent = (dndActorParams: DndActorRenderParams) => {\n const wrapperClasses = cx(\n css.rowWrapper,\n !isPinned && css.notPinned,\n dndActorParams.isDragGhost && uuiDndState.dragGhost,\n 'uui-dt-columns-config-row',\n );\n\n const { onTouchStart, onPointerDown, ...restEventHandlers } = dndActorParams.eventHandlers;\n\n const { ref, ...dndActorPropsWithoutRef } = dndActorParams;\n\n return (\n <FlexRow\n size={ settings.dataTable.sizes.columnsConfigurationModal.columnRow }\n cx={ wrapperClasses }\n ref={ dndActorParams.ref }\n rawProps={ { ...restEventHandlers } }\n alignItems=\"top\"\n >\n <DragHandle\n dragHandleIcon={ settings.dataTable.icons.columnsConfigurationModal.dragIndicator }\n rawProps={ { onTouchStart, onPointerDown } }\n isDisabled={ !isDndAllowed }\n cx={ cx(css.dragHandle, !isDndAllowed && css.dndDisabled) }\n />\n <Checkbox\n key={ column.key }\n label={ getColumnCaption() }\n value={ isVisible }\n onValueChange={ toggleVisibility }\n isReadonly={ column.isAlwaysVisible || column.isLocked }\n cx={ css.checkbox }\n />\n <FlexRow\n size={ null }\n cx={ css.pinIconButton }\n >\n <PinIconButton pinPosition={ pinPosition } canUnpin={ !isPinnedAlways } onTogglePin={ togglePin } />\n </FlexRow>\n <DropMarker { ...dndActorPropsWithoutRef } />\n </FlexRow>\n );\n };\n\n return (\n <DndActor\n key={ column.key }\n srcData={ isDndAllowed && data }\n dstData={ data }\n canAcceptDrop={ onCanAcceptDrop }\n onDrop={ onDrop }\n render={ renderContent }\n />\n );\n});\n","import * as React from 'react';\nimport { useCallback, useMemo, useState } from 'react';\n\nimport { ColumnsConfig, cx, DataColumnProps, IModal } from '@epam/uui-core';\nimport { Accordion, ColumnsConfigurationRowProps, IconContainer, useColumnsConfiguration } from '@epam/uui-components';\n\nimport { FlexRow, FlexSpacer, Panel, ScrollBars } from '../../layout';\nimport { Button, LinkButton } from '../../buttons';\nimport { Dropdown, DropdownMenuBody, DropdownMenuButton, ModalBlocker, ModalFooter, ModalHeader, ModalWindow, Tooltip } from '../../overlays';\nimport { Text } from '../../typography';\nimport { CountIndicator } from '../../widgets';\nimport { SearchInput } from '../../inputs';\nimport { ColumnRow } from './ColumnRow';\n\nimport { i18n as uuiI18n } from '../../../i18n';\nimport { settings } from '../../../settings';\n\nimport css from './ColumnsConfigurationModal.module.scss';\nimport { DataTableProps } from '../DataTable';\n\nexport interface ColumnsConfigurationModalProps<TItem, TId, TFilter> extends Pick<DataTableProps<TItem, TId>, 'columnGroups'>, IModal<ColumnsConfig> {\n columnsConfig?: ColumnsConfig;\n defaultConfig: ColumnsConfig;\n columns: DataColumnProps<TItem, TId, TFilter>[];\n renderItem?: (column: DataColumnProps<TItem, TId, TFilter>) => React.ReactNode;\n getSearchFields?: (column: DataColumnProps<TItem, TId, TFilter>) => string[];\n}\n\nconst renderGroupTitle = (title: string, amount: number) => (\n <FlexRow\n cx={ css.group }\n >\n <Text\n size=\"none\"\n cx={ css.groupTitle }\n >\n {title}\n </Text>\n <CountIndicator\n caption={ amount }\n color=\"neutral\"\n size={ settings.dataTable.sizes.columnsConfigurationModal.countIndicator }\n />\n <FlexSpacer />\n </FlexRow>\n);\n\nexport function ColumnsConfigurationModal<TItem, TId, TFilter>(props: ColumnsConfigurationModalProps<TItem, TId, TFilter>) {\n const i18n = uuiI18n.tables.columnsConfigurationModal;\n\n const { columns, columnsConfig: initialColumnsConfig, defaultConfig, ...modalProps } = props;\n const {\n groupedColumns, searchValue, columnsConfig, reset, checkAll, uncheckAll, setSearchValue, hasAnySelectedColumns,\n } = useColumnsConfiguration({\n initialColumnsConfig,\n columns,\n defaultConfig,\n getSearchFields: props.getSearchFields,\n columnGroups: props.columnGroups,\n });\n const apply = useCallback(() => modalProps.success(columnsConfig), [columnsConfig, modalProps]);\n const close = useCallback(() => modalProps.abort(), [modalProps]);\n const isNoData = useMemo(() => Object.values(groupedColumns).every((v) => !v.length), [groupedColumns]);\n\n const renderVisible = () => {\n const amountPinnedLeft = groupedColumns.displayedPinnedLeft.length;\n const amountPinnedRight = groupedColumns.displayedPinnedRight.length;\n const amountUnPinned = groupedColumns.displayedUnpinned.length;\n const totalAmountOfVisibleColumns = amountPinnedLeft + amountUnPinned + amountPinnedRight;\n\n if (!totalAmountOfVisibleColumns) {\n return null;\n }\n const hasDividerBelowPinnedLeft = !!(amountPinnedLeft && amountUnPinned);\n const hasDividerAbovePinnedRight = !!(amountPinnedRight && amountUnPinned);\n const divider = (\n <FlexRow\n size={ null }\n cx={ css.hDivider }\n />\n );\n\n return (\n <>\n {renderGroupTitle(i18n.displayedSectionTitle, totalAmountOfVisibleColumns)}\n <SubGroup renderItem={ props.renderItem } title={ i18n.pinnedToTheLeftSubgroupTitle } items={ groupedColumns.displayedPinnedLeft } />\n {hasDividerBelowPinnedLeft && divider}\n <SubGroup renderItem={ props.renderItem } title={ i18n.notPinnedSubgroupTitle } items={ groupedColumns.displayedUnpinned } />\n {hasDividerAbovePinnedRight && divider}\n <SubGroup renderItem={ props.renderItem } title={ i18n.pinnedToTheRightSubgroupTitle } items={ groupedColumns.displayedPinnedRight } />\n </>\n );\n };\n const renderHidden = () => {\n const items = groupedColumns.hidden;\n const title = renderGroupTitle(i18n.hiddenSectionTitle, items.length);\n if (!items.length) {\n return null;\n }\n return (\n <>\n { title }\n <SubGroup renderItem={ props.renderItem } items={ items } />\n </>\n );\n };\n\n const applyButton = <Button caption={ i18n.applyButton } isDisabled={ !hasAnySelectedColumns } color=\"primary\" onClick={ apply } />;\n\n return (\n <ModalBlocker { ...modalProps }>\n <ModalWindow cx={ [css.root, 'uui-columns-config-modal'] } height=\"95dvh\" maxHeight=\"95dvh\">\n <ModalHeader title={ i18n.configureColumnsTitle } onClose={ close } />\n <FlexRow\n borderBottom={ true }\n cx={ css.searchArea }\n >\n <SearchInput\n size={ settings.dataTable.sizes.columnsConfigurationModal.searchInput }\n value={ searchValue }\n onValueChange={ setSearchValue }\n placeholder={ i18n.searchPlaceholder }\n />\n <Dropdown\n closeOnTargetClick={ true }\n renderBody={ () => (\n <DropdownMenuBody minWidth={ 100 }>\n <DropdownMenuButton caption={ i18n.clearAllButton } onClick={ uncheckAll } />\n <DropdownMenuButton caption={ i18n.selectAllButton } onClick={ checkAll } />\n </DropdownMenuBody>\n ) }\n renderTarget={ (props) => (\n <Button\n { ...props }\n fill=\"none\"\n icon={ settings.dataTable.icons.columnsConfigurationModal.menuIcon }\n size={ settings.dataTable.sizes.columnsConfigurationModal.menuButton }\n color=\"secondary\"\n isDropdown={ false }\n />\n ) }\n />\n </FlexRow>\n <Panel background=\"surface-main\" cx={ css.mainPanel }>\n <ScrollBars>\n {renderVisible()}\n {renderHidden()}\n {isNoData && (\n <FlexRow cx={ css.noData }>\n <Text cx={ css.noDataTitle }>\n {i18n.noResultsFound.title}\n </Text>\n <Text cx={ css.noDataSubTitle }>\n {i18n.noResultsFound.subTitle}\n </Text>\n </FlexRow>\n )}\n </ScrollBars>\n </Panel>\n <ModalFooter borderTop>\n <LinkButton\n icon={ settings.dataTable.icons.columnsConfigurationModal.resetIcon }\n caption={ i18n.resetToDefaultButton }\n onClick={ reset }\n />\n <FlexSpacer />\n <Button fill=\"none\" color=\"secondary\" caption={ i18n.cancelButton } onClick={ close } />\n {!hasAnySelectedColumns ? (\n <Tooltip content={ i18n.enableAtLeastOneColumnMessage } placement=\"top-end\" color=\"critical\">\n {applyButton}\n </Tooltip>\n ) : (\n applyButton\n )}\n </ModalFooter>\n </ModalWindow>\n </ModalBlocker>\n );\n}\n\nfunction SubGroup(props: { items: ColumnsConfigurationRowProps[]; renderItem: (column: DataColumnProps) => React.ReactNode; title?: React.ReactNode }) {\n const [isExpanded, setIsExpanded] = useState<boolean>(true);\n const { title, items, renderItem } = props;\n const isCollapsible = !!title;\n\n if (items.length) {\n const content = (\n <FlexRow\n cx={ css.groupItems }\n size={ settings.dataTable.sizes.columnsConfigurationModal.columnRow }\n >\n {items.map((c) => (\n <ColumnRow column={ c } key={ c.key } renderItem={ renderItem } />\n ))}\n </FlexRow>\n );\n if (isCollapsible) {\n const renderTitle = (isOpened: boolean) => {\n const toggleIcon = settings.dataTable.icons.columnsConfigurationModal[isOpened ? 'expandedIcon' : 'collapsedIcon'];\n return (\n <FlexRow\n cx={ cx(css.subgroup) }\n >\n <IconContainer\n icon={ toggleIcon }\n />\n <Text\n size=\"none\"\n color=\"tertiary\"\n cx={ css.subgroupTitle }\n >\n { title }\n </Text>\n </FlexRow>\n );\n };\n return (\n <Accordion\n value={ isExpanded }\n onValueChange={ setIsExpanded }\n renderTitle={ renderTitle }\n cx={ css.subgroupAccordion }\n >\n { content }\n </Accordion>\n );\n }\n return content;\n }\n return null;\n}\n","import { DataRowProps } from '@epam/uui-core';\n\nexport const getChildrenAndRest = <TItem, TId>(row: DataRowProps<TItem, TId>, rows: DataRowProps<TItem, TId>[]) => {\n const firstNotChildIndex = rows.findIndex((other) => other.depth < row.depth || (row.depth === other.depth && other.isPinned));\n if (firstNotChildIndex === -1) {\n return [rows, []];\n }\n if (firstNotChildIndex === 0) {\n return [[], rows];\n }\n\n const children = rows.slice(0, firstNotChildIndex);\n const rest = rows.slice(firstNotChildIndex, rows.length);\n return [children, rest];\n};\n","import React, { useRef, type JSX } from 'react';\nimport { DataRowProps } from '@epam/uui-core';\nimport { getChildrenAndRest } from './utils';\n\nimport css from './DataRowsContainer.module.scss';\n\ninterface DataRowsGroupProps<TItem, TId> {\n row: DataRowProps<TItem, TId>;\n childRows: DataRowProps<TItem, TId>[];\n renderRow: (props: DataRowProps<TItem, TId>) => React.ReactNode;\n top: number;\n}\n\nexport interface DataRowsGroupsProps<TItem, TId> {\n rows: DataRowProps<TItem, TId>[],\n renderRow: (props: DataRowProps<TItem, TId>) => React.ReactNode;\n top: number;\n}\n\nfunction DataRowsGroup<TItem, TId>({\n row,\n childRows,\n renderRow,\n top = 1,\n}: DataRowsGroupProps<TItem, TId>) {\n const rowRef = useRef<HTMLDivElement>(undefined);\n const childrenPinnedTop = row.isPinned ? (top + (rowRef.current?.clientHeight ?? 0)) : top;\n return ( \n <div className={ css.group } key={ row.rowKey }>\n <div\n className={ row.isPinned ? css.stickyHeader : css.header }\n // Gaps between pinned parents should be removed by -1 from top height.\n // Otherwise, sometimes top value is rounded top.\n style={ { zIndex: row.depth + 10, top: top - 1 } }\n ref={ rowRef }\n >\n {renderRow(row)}\n </div>\n {childRows.length > 0 && (\n <div>\n <DataRowsGroups rows={ childRows } renderRow={ renderRow } top={ childrenPinnedTop } />\n </div>\n )}\n </div>\n );\n}\n\nexport const renderRows = <TItem, TId>(\n rows: DataRowProps<TItem, TId>[],\n renderRow: (props: DataRowProps<TItem, TId>) => React.ReactNode,\n top?: number,\n): React.ReactNode[] => {\n if (!rows.length) return [];\n\n const [row, ...rest] = rows;\n \n if (!rest.length) {\n return [renderRow(row)];\n }\n const [next] = rest;\n if (next.depth <= row.depth && !row.isPinned) {\n return [renderRow(row)].concat(renderRows(rest, renderRow, top));\n }\n \n const [children, otherRows] = getChildrenAndRest(row, rest);\n const group: React.ReactNode = (\n <DataRowsGroup \n row={ row } \n childRows={ children }\n renderRow={ renderRow }\n top={ top }\n key={ row.rowKey }\n />\n );\n\n return [group].concat(renderRows(otherRows, renderRow, top) as JSX.Element[]);\n};\n\nexport function DataRowsGroups<TItem, TId>({\n rows,\n renderRow,\n top = 1,\n}: DataRowsGroupsProps<TItem, TId>) {\n const rowsWithGroups = renderRows(rows, renderRow, top);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return (<>{ rowsWithGroups }</>);\n}\n","import React from 'react';\nimport cx from 'classnames';\nimport type { DataRowProps } from '@epam/uui-core';\nimport type { VirtualListRenderRowsParams } from '../../layout';\nimport { DataRowsGroups } from './DataRowsGroups';\n\nimport css from './DataRowsContainer.module.scss';\n\nexport interface DataRowsContainerProps<TItem, TId, List extends HTMLDivElement = any> extends VirtualListRenderRowsParams<List> {\n rows: DataRowProps<TItem, TId>[];\n renderRow: (row: DataRowProps<TItem, TId>) => React.ReactNode;\n headerRef?: React.MutableRefObject<HTMLDivElement>;\n}\n\nexport function DataRowsContainer<TItem, TId, List extends HTMLDivElement = any>({\n estimatedHeight, listContainerRef, offsetY, rows, renderRow, headerRef,\n}: DataRowsContainerProps<TItem, TId, List>) {\n return (\n <div className={ cx(css.listContainer, 'uui-dt-data_row_container') } style={ { minHeight: `${estimatedHeight}px` } }>\n <div ref={ listContainerRef } role=\"rowgroup\" style={ { marginTop: offsetY } }>\n <DataRowsGroups\n rows={ rows }\n renderRow={ renderRow }\n top={ headerRef?.current?.clientHeight }\n />\n </div>\n </div>\n );\n}\n","import * as React from 'react';\nimport {\n ColumnsConfig, DataRowProps, useUuiContext, uuiScrollShadows, useColumnsConfig, IEditable, DataTableState, DataTableColumnsConfigOptions,\n DataSourceListProps, DataColumnProps, cx, TableFiltersConfig, DataTableRowProps, DataTableSelectedCellData, Overwrite,\n DataColumnGroupProps, IHasCX,\n} from '@epam/uui-core';\nimport { IconContainer, DataTableSelectionProvider, DataTableFocusManager, DataTableFocusProvider } from '@epam/uui-components';\nimport { useColumnsWithFilters } from '../../helpers';\nimport { DataTableHeaderRow } from './DataTableHeaderRow';\nimport { DataTableRow } from './DataTableRow';\nimport { Text } from '../typography';\nimport { VirtualList, VirtualListRenderRowsParams, VirtualListProps, ScrollBars } from '../layout';\nimport { ColumnsConfigurationModal, ColumnsConfigurationModalProps } from './columnsConfigurationModal';\nimport { DataRowsContainer } from './DataRowsContainer';\nimport type { DataTableMods, DataTableRowMods } from './types';\n\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport './variables.scss';\nimport css from './DataTable.module.scss';\n\ninterface DataTableCoreProps<TItem, TId, TFilter = any> extends IEditable<DataTableState>, IHasCX, DataSourceListProps, DataTableColumnsConfigOptions, Pick<VirtualListProps, 'onScroll'> {\n /** Callback to get rows that will be rendered in table */\n getRows?(): DataRowProps<TItem, TId>[];\n\n /** Rows that should be rendered in table */\n rows?: DataRowProps<TItem, TId>[];\n\n /** Array of all possible column groups for the table */\n columnGroups?: DataColumnGroupProps[];\n\n /** Array of all possible columns for the table */\n columns: DataColumnProps<TItem, TId>[];\n\n /** Render callback for the table row.\n * If omitted, default DataTableRow implementation will be rendered.\n * */\n renderRow?(props: DataTableRowProps<TItem, TId>): React.ReactNode;\n\n /** Render callback for the 'No results' block. Will be rendered when table doesn't have rows for displaying, e.g. after search applying.\n * If omitted, default implementation will be rendered.\n * */\n renderNoResultsBlock?(): React.ReactNode;\n\n /** Pass true to enable the column configuration button in the last column header. On this button click will show the columns configuration modal.\n * Note that you need to have at least one column fixed to the right for proper display\n * */\n showColumnsConfig?: boolean;\n\n /** Array of filters to be added to the column header.\n * For each filter, you need to specify the `columnKey` of the column where it will be attached.\n * */\n filters?: TableFiltersConfig<any>[];\n\n /** Called when cell content is copied to other cells via the DataTable cell copying mechanism.\n * This callback is typically used to update the state according to the changes.\n * To enable cell copying, provide the canCopy prop for the column.\n * */\n onCopy?: (copyFrom: DataTableSelectedCellData<TItem, TId, TFilter>, selectedCells: DataTableSelectedCellData<TItem, TId, TFilter>[]) => void;\n\n /** Render callback for column configuration modal.\n * If omitted, default `ColumnsConfigurationModal` implementation will be rendered.\n */\n renderColumnsConfigurationModal?: (props: ColumnsConfigurationModalProps<TItem, TId, TFilter>) => React.ReactNode;\n\n /**\n * Focus manipulation manager in tables.\n */\n dataTableFocusManager?: DataTableFocusManager<TId>;\n\n /**\n * Enables collapse/expand all functionality.\n * */\n showFoldAll?: boolean;\n\n /**\n * Pass true to disable rows virtualization.\n * This will disable rows virtualization and remove inner vertical scrollbar from the table\n *\n * Note: A table without virtualization could cause performance issues.\n * Some DataTable features, like sticky header, pinned rows, and scroll to row, will not work with disabled virtualization\n */\n disableVirtualization?: boolean;\n}\n\nexport interface DataTableModsOverride {}\n\nexport interface DataTableProps<TItem, TId> extends React.PropsWithChildren<DataTableCoreProps<TItem, TId> & Overwrite<DataTableMods, DataTableModsOverride>> {}\n\nexport function DataTable<TItem, TId>(props: DataTableProps<TItem, TId>) {\n const { uuiModals } = useUuiContext();\n const headerRef = React.useRef<HTMLDivElement>(undefined);\n const columnsWithFilters = useColumnsWithFilters(props.columns, props.filters);\n const { columns, config, defaultConfig } = useColumnsConfig(columnsWithFilters, props.value?.columnsConfig);\n\n const defaultRenderRow = React.useCallback((rowProps: DataRowProps<TItem, TId> & DataTableRowMods) => {\n return (\n <DataTableRow\n size={ props.size || settings.dataTable.sizes.body.row }\n columnsGap={ props.columnsGap }\n borderBottom={ props.border }\n { ...rowProps }\n key={ rowProps.rowKey }\n cx={ css.cell }\n />\n );\n }, []);\n\n const renderRow = (row: DataRowProps<TItem, TId>) => (props.renderRow ?? defaultRenderRow)({ ...row, columns });\n const rows = props.getRows?.() ?? props.rows ?? [];\n\n const renderNoResultsBlock = React.useCallback(() => {\n return (\n <div className={ css.noResults }>\n {props.renderNoResultsBlock ? (\n props.renderNoResultsBlock?.()\n ) : (\n <>\n <IconContainer cx={ css.icon } icon={ settings.dataTable.icons.emptyTable } />\n <Text cx={ css.title } fontSize=\"24\" lineHeight=\"30\" color=\"primary\" fontWeight=\"600\">\n {i18n.tables.noResultsBlock.title}\n </Text>\n <Text fontSize=\"16\" lineHeight=\"24\" color=\"primary\">\n {i18n.tables.noResultsBlock.message}\n </Text>\n </>\n )}\n </div>\n );\n }, [props.renderNoResultsBlock]);\n\n const onConfigurationButtonClick = React.useCallback(() => {\n const configProps = { columns: props.columns, columnsConfig: { ...config }, defaultConfig };\n\n uuiModals\n .show<ColumnsConfig>((modalProps) => {\n return (\n props.renderColumnsConfigurationModal\n ? props.renderColumnsConfigurationModal({ ...configProps, ...modalProps })\n : (\n <ColumnsConfigurationModal\n { ...modalProps }\n columns={ props.columns }\n columnGroups={ props.columnGroups }\n columnsConfig={ config }\n defaultConfig={ defaultConfig }\n />\n )\n );\n })\n .then((columnsConfig) => props.onValueChange({ ...props.value, columnsConfig }))\n .catch(() => null);\n }, [\n props.columns, config, defaultConfig, props.value, props.onValueChange, props.renderColumnsConfigurationModal,\n ]);\n\n const renderTableBody = React.useCallback(\n (params?: VirtualListRenderRowsParams) => (\n <>\n <div className={ cx(css.stickyHeader, 'uui-dt-sticky_header') } ref={ headerRef }>\n <DataTableHeaderRow\n columns={ columns }\n columnGroups={ props.columnGroups }\n onConfigButtonClick={ props.showColumnsConfig && onConfigurationButtonClick }\n selectAll={ props.selectAll }\n size={ props.headerSize || settings.dataTable.sizes.header.row }\n textCase={ props.headerTextCase }\n allowColumnsReordering={ props.allowColumnsReordering }\n allowColumnsResizing={ props.allowColumnsResizing }\n showFoldAll={ props.showFoldAll }\n value={ { ...props.value, columnsConfig: config } }\n onValueChange={ props.onValueChange }\n columnsGap={ props.columnsGap }\n cx={ uuiScrollShadows.top }\n />\n </div>\n {props.exactRowsCount !== 0 ? (\n <DataRowsContainer\n headerRef={ headerRef }\n listContainerRef={ params?.listContainerRef }\n estimatedHeight={ params?.estimatedHeight }\n offsetY={ params?.offsetY }\n renderRow={ renderRow }\n rows={ rows }\n />\n ) : (\n renderNoResultsBlock?.()\n )}\n </>\n ),\n [\n props, columns, rows, renderNoResultsBlock, onConfigurationButtonClick,\n ],\n );\n\n const classes = cx(css.root, props.cx, 'uui-dt-vars', 'uui-data_table');\n const rawProps = {\n role: 'table',\n 'aria-colcount': columns.length,\n 'aria-rowcount': props.rowsCount,\n };\n\n return (\n <DataTableSelectionProvider onCopy={ props.onCopy } rows={ rows } columns={ columns }>\n <DataTableFocusProvider dataTableFocusManager={ props.dataTableFocusManager }>\n {\n props.disableVirtualization === true\n ? (\n <ScrollBars { ...rawProps } cx={ classes }>\n { renderTableBody() }\n </ScrollBars>\n )\n : (\n <VirtualList\n value={ props.value }\n onValueChange={ props.onValueChange }\n onScroll={ props.onScroll }\n rowsCount={ props.rowsCount }\n renderRows={ renderTableBody }\n cx={ classes }\n isLoading={ props.isReloading }\n rowsSelector=\"[role=row]\"\n rawProps={ rawProps }\n />\n )\n }\n\n </DataTableFocusProvider>\n </DataTableSelectionProvider>\n );\n}\n","import * as React from 'react';\nimport cx from 'classnames';\nimport type { IDisableable, IDropdownTogglerProps, IHasCX } from '@epam/uui-core';\nimport { isEventTargetInsideClickable, uuiElement, uuiMarkers, uuiMod } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport type { FiltersPanelProps } from './FiltersPanel';\nimport {\n UUI_FILTERS_PANEL_ITEM_TOGGLER, UUI_FILTERS_PANEL_ITEM_TOGGLER_POSTFIX,\n UUI_FILTERS_PANEL_ITEM_TOGGLER_SELECTION, UUI_FILTERS_PANEL_ITEM_TOGGLER_TITLE,\n} from './constants';\nimport { settings } from '../../settings';\n\nimport css from './FilterPanelItemToggler.module.scss';\n\nimport type { JSX } from 'react';\n\nexport interface FilterToolbarItemTogglerProps extends IDropdownTogglerProps, IDisableable, IHasCX, Pick<FiltersPanelProps<any>, 'size'> {\n selection?: React.ReactNode[];\n postfix?: string | null | JSX.Element;\n title?: string;\n maxWidth?: number;\n predicateName: string | null;\n}\n\nexport const FilterPanelItemToggler = React.forwardRef<HTMLDivElement, FilterToolbarItemTogglerProps>((props, ref) => {\n const togglerPickerOpened = (e: React.MouseEvent<HTMLDivElement>) => {\n if (props.isDisabled) return;\n e.preventDefault();\n !isEventTargetInsideClickable(e) && props.onClick?.();\n };\n\n const onKeyDownHandler = (e: React.KeyboardEvent<HTMLElement>) => {\n if (props.isDisabled) return;\n\n if (e.key === 'Enter' && !props.isOpen) {\n e.preventDefault();\n props.toggleDropdownOpening(true);\n }\n\n if (e.key === 'Escape' && props.isOpen) {\n e.preventDefault();\n props.toggleDropdownOpening(false);\n }\n };\n\n const getTitle = props.predicateName ? `${props.title} ${props.predicateName}` : `${props.title}${props.selection ? ':' : ''}`;\n\n const getSelectionText = () => props.selection.map((i, index) => (\n <React.Fragment key={ `${i}${index}` }>\n <div className={ cx(css.selection, UUI_FILTERS_PANEL_ITEM_TOGGLER_SELECTION) }>{ i }</div>\n { (props.postfix || index !== props.selection.length - 1) && <span>, </span> }\n </React.Fragment>\n ));\n\n return (\n <div\n style={ { maxWidth: `${props.maxWidth ? props.maxWidth + 'px' : 'auto'}` } }\n role=\"button\"\n tabIndex= { props.isDisabled ? -1 : 0 }\n onKeyDown={ onKeyDownHandler }\n className={ cx(\n UUI_FILTERS_PANEL_ITEM_TOGGLER,\n css.root,\n uuiElement.inputBox,\n uuiMarkers.clickable,\n props.isOpen && uuiMod.opened,\n props.selection?.length > 0 && uuiMarkers.hasValue,\n `uui-size-${props.size || settings.pickerInput.sizes.toggler.default}`,\n props.cx,\n ) }\n onClick={ togglerPickerOpened }\n ref={ ref }\n >\n <div className={ css.titleWrapper }>\n <div className={ cx(css.title, UUI_FILTERS_PANEL_ITEM_TOGGLER_TITLE) }>{getTitle}</div>\n {\n props.selection && (\n <div className={ css.textWrapper }>\n { getSelectionText() }\n {props.postfix && (\n <div className={ cx(css.postfix, UUI_FILTERS_PANEL_ITEM_TOGGLER_POSTFIX) }>\n {props.postfix}\n </div>\n )}\n </div>\n )\n }\n </div>\n {!props.isDisabled && <IconContainer icon={ settings.filtersPanel.icons.itemDropdownIcon } flipY={ props.isOpen } cx=\"uui-icon-dropdown\" />}\n </div>\n );\n});\n","import { FilterPredicate, IFilterPredicate } from '@epam/uui-core';\n\ntype defaultPredicateName = 'numeric' | 'multiPicker' | 'rangeDatePicker';\n\nexport const defaultPredicates: Record<defaultPredicateName, IFilterPredicate[]> = {\n numeric: [\n { predicate: 'eq', name: '=', isDefault: true }, { predicate: 'neq', name: '≠' }, { predicate: 'lte', name: '≤' }, { predicate: 'gte', name: '≥' }, { predicate: 'inRange', name: 'In Range' },\n ],\n multiPicker: [{ predicate: 'in', name: 'is', isDefault: true }, { predicate: 'nin', name: 'is not' }],\n rangeDatePicker: [{ predicate: 'inRange', name: 'In Range', isDefault: true }, { predicate: 'notInRange', name: 'Not in Range' }],\n};\n\nexport const getDefaultPredicate = (predicates: IFilterPredicate[], value: unknown): keyof FilterPredicate<any> => {\n if (!predicates) {\n return null;\n }\n return (Object.keys(value || {})[0] as keyof FilterPredicate<any>)\n || predicates.find((i) => i.isDefault)?.predicate\n || predicates?.[0].predicate as keyof FilterPredicate<any>;\n};\n","import * as React from 'react';\nimport type { DropdownBodyProps, PickerFilterConfig, PickerInputBaseProps, DataSourceState } from '@epam/uui-core';\nimport { isMobile, usePrevious } from '@epam/uui-core';\nimport { handleDataSourceKeyboard, usePickerApi, useShowSelected } from '@epam/uui-components';\nimport { DataPickerBody, DataPickerFooter } from '../pickers';\nimport { settings } from '../../settings';\nimport { useState } from 'react';\nimport { UUI_FILTERS_PANEL_BODY_FOOTER } from './constants';\n\nconst pickerHeight = 300;\n\ntype FilterPickerBodyProps<TItem, TId> = DropdownBodyProps & PickerInputBaseProps<TItem, TId> & PickerFilterConfig<any> & {\n showSearch?: boolean;\n};\n\nexport function FilterPickerBody<TItem, TId>({\n highlightSearchMatches = true,\n ...restProps\n}: FilterPickerBodyProps<TItem, TId>) {\n const props = { ...restProps, highlightSearchMatches };\n\n const [dsState, setDsState] = useState<DataSourceState>({\n focusedIndex: 0,\n topIndex: 0,\n visibleCount: 20,\n checked: [],\n });\n\n const { showSelected, setShowSelected } = useShowSelected({ dataSourceState: dsState });\n\n const {\n view,\n getName,\n dataSourceState,\n getListProps,\n handleDataSourceValueChange,\n clearSelection,\n } = usePickerApi<TItem, TId>({ ...props, dataSourceState: dsState, setDataSourceState: setDsState, showSelectedOnly: showSelected });\n\n const prevValue = usePrevious(props.value);\n const prevOpened = usePrevious(props.isOpen);\n\n React.useLayoutEffect(() => {\n if (prevOpened === props.isOpen && props.isOpen\n && prevValue !== props.value && props.value !== props.emptyValue\n && props.selectionMode === 'single'\n ) {\n props.onClose();\n }\n }, [props.value]);\n\n const renderFooter = () => {\n const footerProps = {\n view,\n showSelected: {\n value: showSelected,\n onValueChange: setShowSelected,\n },\n clearSelection,\n selectionMode: props.selectionMode,\n selection: props.value,\n search: dataSourceState.search,\n disableClear: props.disableClear,\n };\n\n return props.renderFooter\n ? props.renderFooter(footerProps)\n : <DataPickerFooter { ...footerProps } cx={ UUI_FILTERS_PANEL_BODY_FOOTER } size={ settings.pickerInput.sizes.body.row } />;\n };\n\n const renderBody = () => {\n const rows = view.getVisibleRows();\n const maxHeight = isMobile() ? document.documentElement.clientHeight : props.maxBodyHeight || pickerHeight;\n const maxWidth = isMobile() ? undefined : 360;\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLElement>) => handleDataSourceKeyboard({\n value: dataSourceState,\n onValueChange: handleDataSourceValueChange,\n listView: view,\n searchPosition: 'body',\n rows,\n }, e);\n\n return (\n <>\n <DataPickerBody\n { ...getListProps() }\n selectionMode={ props.selectionMode }\n rows={ rows }\n maxHeight={ maxHeight }\n maxWidth={ maxWidth }\n searchSize={ settings.pickerInput.sizes.body.row }\n showSearch={ props.showSearch ?? true }\n getName={ getName }\n value={ dataSourceState }\n onValueChange={ handleDataSourceValueChange }\n renderRow={ props.renderRow }\n onKeyDown={ onKeyDown }\n minCharsToSearch={ props.minCharsToSearch }\n searchDebounceDelay={ props.searchDebounceDelay }\n rawProps={ props.rawProps?.body }\n highlightSearchMatches={ props.highlightSearchMatches }\n flattenSearchResults={ view.getConfig().flattenSearchResults }\n autoFocusSearch={ false }\n />\n {renderFooter()}\n </>\n );\n };\n\n return renderBody();\n}\n","import React from 'react';\nimport { FlexRow, FlexSpacer, FlexCell } from '../layout';\nimport { LinkButton } from '../buttons';\nimport { Text } from '../typography';\nimport { i18n } from '../../i18n';\nimport { uuiDayjs } from '../../helpers/dayJsHelper';\nimport { FilterDatePickerBodyFooterProps } from '@epam/uui-core';\nimport './FilterDatePickerBodyFooter.module.scss';\n\nconst UUI_FILTERS_PANEL_DTP_FOOTER = 'uui-filters-panel-dtp-footer';\n\nexport function FilterDatePickerBodyFooter({ value, onValueChange }: FilterDatePickerBodyFooterProps) {\n return (\n <FlexCell alignSelf=\"stretch\">\n <FlexRow cx={ UUI_FILTERS_PANEL_DTP_FOOTER }>\n <Text>{value ? uuiDayjs.dayjs(value).format('MMM DD, YYYY') : ''}</Text>\n <FlexSpacer />\n <LinkButton\n isDisabled={ !value }\n caption={ i18n.filterToolbar.datePicker.clearCaption }\n onClick={ () => onValueChange(undefined) }\n />\n </FlexRow>\n </FlexCell>\n );\n}\n","import React, { Fragment } from 'react';\nimport { IDropdownBodyProps, useUuiContext, FilterDatePickerBodyFooterProps, DatePickerFilterConfig } from '@epam/uui-core';\nimport { FlexRow } from '../layout';\nimport { DatePickerProps } from '../datePickers';\nimport { DatePickerBody } from '../datePickers';\nimport { FilterDatePickerBodyFooter } from './FilterDatePickerBodyFooter';\n\n/**\n * Represents the properties of the FiterDatePicker\n */\nexport interface FilterDatePickerProps extends\n Omit<DatePickerProps, 'renderFooter'>, IDropdownBodyProps, Pick<DatePickerFilterConfig<any>, 'renderFooter'> {}\n\nexport function FilterDatePickerBody(props: FilterDatePickerProps) {\n const { value } = props;\n const context = useUuiContext();\n\n const handleValueChange = (newValue: string | null) => {\n props.onValueChange(newValue);\n\n if (props.getValueChangeAnalyticsEvent) {\n const event = props.getValueChangeAnalyticsEvent(newValue, value);\n context.uuiAnalytics.sendEvent(event);\n }\n if (newValue) {\n props.onClose?.();\n }\n };\n\n const handleBodyChange = (newValue: string) => {\n if (newValue && value !== newValue) {\n handleValueChange(newValue);\n }\n };\n\n function renderFooter() {\n const footerProps: FilterDatePickerBodyFooterProps = {\n value,\n onValueChange: handleValueChange,\n };\n\n return props.renderFooter ? props.renderFooter(footerProps) : <FilterDatePickerBodyFooter { ...footerProps } />;\n }\n\n return (\n <Fragment>\n <FlexRow borderBottom={ true }>\n <DatePickerBody\n filter={ props.filter }\n value={ value }\n onValueChange={ handleBodyChange }\n renderDay={ props.renderDay }\n isHoliday={ props.isHoliday }\n rawProps={ props.rawProps?.body }\n />\n </FlexRow>\n { renderFooter() }\n </Fragment>\n );\n}\n","import React from 'react';\nimport { FlexRow, FlexSpacer, FlexCell } from '../layout';\nimport { i18n } from '../../i18n';\nimport { FilterRangeDatePickerBodyFooterProps } from '@epam/uui-core';\nimport { RangeDatePickerInput } from '../datePickers';\nimport { settings } from '../../settings';\nimport { LinkButton } from '../buttons';\nimport './FilterRangeDatePickerBodyFooter.module.scss';\n\nconst UUI_FILTERS_PANEL_RDTP_FOOTER = 'uui-filters-panel-rdtp-footer';\n\nexport function FilterRangeDatePickerBodyFooter(props: FilterRangeDatePickerBodyFooterProps) {\n const shouldShowClearButton = (!props.preventEmptyToDate || !props.preventEmptyFromDate) && !props.disableClear;\n\n return (\n <FlexCell alignSelf=\"stretch\">\n <FlexRow\n cx={ UUI_FILTERS_PANEL_RDTP_FOOTER }\n >\n <RangeDatePickerInput\n size={ settings.filtersPanel.sizes.rangeDatePickerInput }\n disableClear={ props.disableClear }\n inFocus={ props.inFocus }\n format={ props.format }\n value={ props.value }\n onValueChange={ props.onValueChange }\n onFocusInput={ (event, inputType) => {\n if (props.onFocus) {\n props.onFocus(event, inputType);\n }\n props.setInFocus(inputType);\n } }\n onBlurInput={ props.onBlur }\n preventEmptyFromDate={ props.preventEmptyFromDate }\n preventEmptyToDate={ props.preventEmptyToDate }\n />\n <FlexSpacer />\n { shouldShowClearButton && (\n <LinkButton\n isDisabled={ !props.value.from && !props.value.to }\n caption={ i18n.filterToolbar.rangeDatePicker.clearCaption }\n onClick={ props.onClear }\n />\n ) }\n </FlexRow>\n </FlexCell>\n );\n}\n","import React, { Fragment, useState } from 'react';\nimport { IDropdownBodyProps, useUuiContext, RangeDatePickerInputType, RangeDatePickerValue, RangeDatePickerFilterConfig } from '@epam/uui-core';\nimport { FlexRow } from '../layout';\nimport { defaultFormat, defaultRangeValue } from '../datePickers/helpers';\nimport type {\n RangeDatePickerBodyValue, RangeDatePickerProps,\n} from '../datePickers';\nimport { RangeDatePickerBody } from '../datePickers';\nimport { FilterRangeDatePickerBodyFooter } from './FilterRangeDatePickerBodyFooter';\n\nexport interface FilterRangeDatePickerProps extends\n Omit<RangeDatePickerProps, 'renderFooter'>, IDropdownBodyProps, Pick<RangeDatePickerFilterConfig<any>, 'renderFooter'> {}\n\nexport function FilterRangeDatePickerBody(props: FilterRangeDatePickerProps) {\n const { value: _value, format = defaultFormat } = props;\n const value = _value || defaultRangeValue; // also handles null in comparison to default value\n const context = useUuiContext();\n\n const onOpenChange = (newIsOpen: boolean) => {\n if (!newIsOpen) {\n props.onClose?.();\n }\n props.onOpenChange?.(newIsOpen);\n };\n\n const [inFocus, setInFocus] = useState<RangeDatePickerInputType>('from');\n\n const onValueChange = (newValue: RangeDatePickerValue) => {\n const fromChanged = value?.from !== newValue?.from;\n const toChanged = value?.to !== newValue?.to;\n if (fromChanged || toChanged) {\n props.onValueChange(newValue);\n if (props.getValueChangeAnalyticsEvent) {\n const event = props.getValueChangeAnalyticsEvent(newValue, value);\n context.uuiAnalytics.sendEvent(event);\n }\n }\n };\n\n const onBodyValueChange = (newValue: RangeDatePickerBodyValue<RangeDatePickerValue>) => {\n setInFocus(newValue.inFocus ?? inFocus);\n onValueChange(newValue.selectedDate);\n\n const toChanged = value.to !== newValue.selectedDate.to;\n const closeBody = newValue.selectedDate.from && newValue.selectedDate.to\n && inFocus === 'to'\n && toChanged;\n\n if (closeBody) {\n onOpenChange(false);\n }\n };\n\n const onClear = () => {\n const newValue = {\n from: props.preventEmptyFromDate ? value.from : null,\n to: props.preventEmptyToDate ? value.to : null,\n };\n\n onValueChange(newValue);\n };\n\n function renderFooter() {\n const footerProps = {\n value,\n onValueChange,\n format: format,\n disableClear: props.disableClear,\n preventEmptyFromDate: props.preventEmptyFromDate,\n preventEmptyToDate: props.preventEmptyToDate,\n onFocus: props.onFocus,\n onBlur: props.onBlur,\n inFocus,\n setInFocus,\n onClear,\n };\n\n return props.renderFooter ? props.renderFooter(footerProps) : <FilterRangeDatePickerBodyFooter { ...footerProps } />;\n }\n\n return (\n <Fragment>\n <FlexRow borderBottom={ true }>\n <RangeDatePickerBody\n value={ {\n selectedDate: value,\n inFocus,\n } }\n onValueChange={ onBodyValueChange }\n filter={ props.filter }\n presets={ props.presets }\n />\n </FlexRow>\n { renderFooter() }\n </Fragment>\n );\n}\n","import React from 'react';\nimport { DropdownBodyProps, isMobile } from '@epam/uui-core';\nimport { FlexSpacer } from '@epam/uui-components';\nimport { NumericInput } from '../inputs';\nimport { FlexCell, FlexRow } from '../layout';\nimport { LinkButton } from '../buttons';\nimport { i18n } from '../../i18n';\nimport { settings } from '../../settings';\n\nimport css from './FilterNumericBody.module.scss';\n\ninterface INumericRangeValue {\n /**\n * Defines range value 'from'\n */\n from: number | null;\n /**\n * Defines range value 'to'\n */\n to: number | null;\n}\n\ninterface IFilterNumericBodyProps extends DropdownBodyProps {\n /**\n * Called when numeric body value needs to be changed\n */\n onValueChange: (value: number | INumericRangeValue) => void;\n /**\n * Defines numeric body value\n */\n value: undefined | number | INumericRangeValue;\n /**\n * Defines the selected predicate\n */\n selectedPredicate?: string;\n}\n\nexport function FilterNumericBody(props: IFilterNumericBodyProps) {\n const isInRangePredicate = props?.selectedPredicate === 'inRange' || props?.selectedPredicate === 'notInRange';\n const isWrongRange = (from: number | undefined, to: number | undefined) => {\n if (!to && to !== 0) return false;\n return from > to;\n };\n\n const rangeValueHandler = (type: 'from' | 'to') => (val: number) => {\n const value = props.value as INumericRangeValue;\n switch (type) {\n case 'from': {\n props.onValueChange({\n from: val,\n to: value?.to ?? null,\n });\n break;\n }\n case 'to': {\n props.onValueChange({\n from: value?.from ?? null,\n to: val,\n });\n break;\n }\n }\n };\n\n const renderFooter = () => {\n const clearSelection = () => {\n if (isInRangePredicate) {\n props.onValueChange({\n from: undefined,\n to: undefined,\n });\n } else {\n props.onValueChange(undefined);\n }\n };\n\n const isClearDisabled = typeof props.value !== 'number' && typeof props.value !== 'object';\n\n return (\n <FlexRow padding=\"12\">\n <FlexSpacer />\n <FlexCell width=\"auto\" alignSelf=\"center\">\n <LinkButton\n isDisabled={ isClearDisabled }\n size={ settings.filtersPanel.sizes[isMobile() ? 'mobileFooterLinkButton' : 'footerLinkButton'] }\n caption={ i18n.pickerInput.clearSelectionButtonSingle }\n onClick={ clearSelection }\n />\n </FlexCell>\n </FlexRow>\n );\n };\n\n if (isInRangePredicate) {\n const value = props.value as INumericRangeValue;\n return (\n <div>\n <FlexRow\n padding=\"12\"\n alignItems=\"center\"\n columnGap=\"12\"\n borderBottom={ true }\n cx={ css.container }\n >\n <FlexCell width=\"100%\">\n <NumericInput\n size={ settings.filtersPanel.sizes.default }\n value={ value?.from ?? null }\n onValueChange={ rangeValueHandler('from') }\n placeholder=\"Min\"\n formatOptions={ { maximumFractionDigits: 2 } }\n />\n </FlexCell>\n <FlexCell width=\"100%\">\n <NumericInput\n size={ settings.filtersPanel.sizes.default }\n value={ value?.to ?? null }\n onValueChange={ rangeValueHandler('to') }\n placeholder=\"Max\"\n formatOptions={ { maximumFractionDigits: 2 } }\n isInvalid={ isWrongRange(value?.from, value?.to) }\n />\n </FlexCell>\n </FlexRow>\n {renderFooter()}\n </div>\n );\n }\n\n return (\n <div>\n <FlexRow\n padding=\"12\"\n alignItems=\"center\"\n borderBottom={ true }\n cx={ css.container }\n >\n <FlexCell width={ 130 }>\n <NumericInput\n size={ settings.filtersPanel.sizes.default }\n value={ typeof props.value === 'number' ? props.value : null }\n onValueChange={ props.onValueChange }\n placeholder=\"Enter a number\"\n formatOptions={ { maximumFractionDigits: 2 } }\n />\n </FlexCell>\n </FlexRow>\n {renderFooter()}\n </div>\n );\n}\n","import React from 'react';\nimport { IFilterItemBodyProps } from '@epam/uui-core';\nimport { FilterPickerBody } from './FilterPickerBody';\nimport { FilterDatePickerBody } from './FilterDatePickerBody';\nimport { FilterRangeDatePickerBody } from './FilterRangeDatePickerBody';\nimport { FilterNumericBody } from './FilterNumericBody';\n\nexport function FilterItemBody(props: IFilterItemBodyProps<any>) {\n switch (props.type) {\n case 'singlePicker':\n return <FilterPickerBody { ...props } selectionMode=\"single\" valueType=\"id\" />;\n case 'numeric':\n return <FilterNumericBody { ...props } />;\n case 'multiPicker':\n return <FilterPickerBody { ...props } selectionMode=\"multi\" valueType=\"id\" />;\n case 'datePicker':\n return <FilterDatePickerBody { ...props } format={ props.format || 'DD/MM/YYYY' } />;\n case 'rangeDatePicker':\n return <FilterRangeDatePickerBody { ...props } format={ props.format || 'DD/MM/YYYY' } value={ props.value || { from: null, to: null } } />;\n case 'custom':\n return props.render(props);\n }\n}\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { Middleware, offset } from '@floating-ui/react';\nimport { DropdownBodyProps, TableFiltersConfig, IDropdownToggler, IEditable,\n isMobile, FilterPredicateName, getSeparatedValue, DataRowProps, PickerFilterConfig,\n useForceUpdate, IDataSource, DataSourceState, mobilePositioning,\n} from '@epam/uui-core';\nimport { Dropdown } from '@epam/uui-components';\nimport cx from 'classnames';\nimport { uuiDayjs } from '../../helpers/dayJsHelper';\nimport { i18n } from '../../i18n';\nimport { FilterPanelItemToggler } from './FilterPanelItemToggler';\nimport { LinkButton } from '../buttons';\nimport { settings } from '../../settings';\nimport { FilterPredicatePanel } from './FilterPredicatePanel';\nimport { getDefaultPredicate } from './defaultPredicates';\nimport { getValue } from './helpers/predicateHelpers';\nimport { PickerBodyMobileView } from '../pickers';\nimport { UUI_FILTERS_PANEL_ITEM_BODY } from './constants';\nimport { FilterItemBody } from './FilterItemBody';\nimport { DropdownContainer } from '../overlays';\nimport css from './FiltersPanelItem.module.scss';\n\nexport type FiltersToolbarItemProps = TableFiltersConfig<any> &\nIEditable<any> & {\n autoFocus?: boolean;\n removeFilter?: (field: any) => void;\n size?: '24' | '30' | '36' | '42' | '48';\n};\n\nfunction useView(props: FiltersToolbarItemProps, value: any) {\n const forceUpdate = useForceUpdate();\n\n let useViewFn: IDataSource<any, any, any>['useView'];\n const dataSourceState: DataSourceState = {};\n if (props.type === 'singlePicker' || props.type === 'multiPicker') {\n useViewFn = props.dataSource.useView.bind(props.dataSource);\n if (props.type === 'singlePicker') {\n dataSourceState.selectedId = value;\n }\n\n if (props.type === 'multiPicker') {\n dataSourceState.checked = value;\n }\n }\n\n return useViewFn?.(dataSourceState, forceUpdate, { showSelectedOnly: true });\n}\n\nfunction FiltersToolbarItemImpl(props: FiltersToolbarItemProps) {\n const { maxCount = 2 } = props;\n const isPickersType = props?.type === 'multiPicker' || props?.type === 'singlePicker';\n const isMobileScreen = isMobile();\n const hideHeaderTitle = isPickersType && isMobileScreen;\n\n const floatingMiddleware: Middleware[] = useMemo(() => {\n const middleware: Middleware[] = [\n offset(() => {\n return isPickersType && isMobileScreen ? 0 : 6;\n }),\n ];\n\n if (isPickersType && isMobileScreen) {\n middleware.push(mobilePositioning);\n }\n\n return middleware;\n }, [isPickersType]);\n\n const [isOpen, isOpenChange] = useState(props.autoFocus);\n const [predicate, setPredicate] = useState<FilterPredicateName>(getDefaultPredicate(props.predicates, props.value));\n\n const predicateName: string = React.useMemo(\n () => predicate && props.predicates.find((p) => p.predicate === predicate).name,\n [predicate],\n );\n\n const onValueChange = (value: any) => {\n if (props.predicates) {\n props.onValueChange({ [predicate]: value });\n } else {\n props.onValueChange(value);\n }\n };\n\n useEffect(() => {\n // This effect needs when the filter dropdown was closed and opened again\n if (props.predicates && props.value && Object.keys(props.value).length > 0) {\n const predicateFromValue = Object.keys(props.value)[0];\n if (predicateFromValue !== predicate) {\n setPredicate(predicateFromValue as FilterPredicateName);\n }\n }\n }, [props.value]);\n\n const removeOnclickHandler = () => {\n props.removeFilter(props.field);\n };\n\n const renderHeader = (hideTitle: boolean) => (\n <div className={ cx(css.header, isPickersType && (props.showSearch ?? css.withSearch)) }>\n {props.predicates ? (\n <FilterPredicatePanel\n predicates={ props.predicates }\n predicate={ predicate }\n type={ props.type }\n onValueChange={ props.onValueChange }\n value={ props.value }\n setPredicate={ setPredicate }\n />\n ) : (\n !hideTitle && (\n <div className={ css.title }>\n {props.title}\n </div>\n )\n )}\n {!props?.isAlwaysVisible && (\n <LinkButton\n cx={ css.removeButton }\n caption={ i18n.filterToolbar.datePicker.removeCaption }\n onClick={ removeOnclickHandler }\n size={ settings.filtersPanel.sizes.pickerBodyLinkButton }\n icon={ settings.filtersPanel.icons.pickerBodyRemoveIcon }\n />\n )}\n </div>\n );\n\n const renderBody = (dropdownProps: DropdownBodyProps) => {\n return isPickersType ? (\n <PickerBodyMobileView\n { ...dropdownProps }\n rawProps={ { ...dropdownProps.arrowProps, 'aria-modal': true } }\n cx={ [css.body, UUI_FILTERS_PANEL_ITEM_BODY] }\n title={ props.title }\n width={ settings.filtersPanel.sizes.pickerBodyMinWidth }\n onClose={ () => isOpenChange(false) }\n >\n { renderHeader(hideHeaderTitle) }\n <FilterItemBody\n { ...props }\n { ...dropdownProps }\n selectedPredicate={ predicate }\n value={ getValue(predicate, props.value) }\n onValueChange={ onValueChange }\n />\n </PickerBodyMobileView>\n ) : (\n <DropdownContainer cx={ [css.body, UUI_FILTERS_PANEL_ITEM_BODY] } { ...dropdownProps } rawProps={ { ...dropdownProps.arrowProps, 'aria-modal': true } }>\n { renderHeader(hideHeaderTitle) }\n <FilterItemBody\n { ...props }\n { ...dropdownProps }\n selectedPredicate={ predicate }\n value={ getValue(predicate, props.value) }\n onValueChange={ onValueChange }\n />\n </DropdownContainer>\n );\n };\n\n const getPickerItemName = (item: DataRowProps<any, any>, config: PickerFilterConfig<any>) => {\n if (item.isLoading) {\n return settings.filtersPanel.renderPlaceholder();\n }\n\n if (item.isUnknown) {\n return 'Unknown';\n }\n\n return config.getName ? config.getName(item.value) : item.value.name;\n };\n\n const view = useView(props, getValue(predicate, props.value));\n\n const getTogglerValue = () => {\n const currentValue = getValue(predicate, props.value);\n const defaultFormat = 'MMM DD, YYYY';\n\n switch (props.type) {\n case 'multiPicker': {\n let isLoading = false;\n const selection = currentValue\n ? currentValue?.slice(0, maxCount).map((i: any) => {\n const item = view.getById(i, null);\n isLoading = item?.isLoading;\n return getPickerItemName(item, props);\n })\n : currentValue;\n\n const postfix = (!isLoading && currentValue?.length > maxCount) ? ` +${(currentValue.length - maxCount).toString()} ${i18n.filterToolbar.pickerInput.itemsPlaceholder}` : null;\n return { selection, postfix };\n }\n case 'numeric': {\n const isRangePredicate = predicate === 'inRange' || predicate === 'notInRange';\n const decimalFormat = (val: number) => getSeparatedValue(val, { maximumFractionDigits: 2 });\n if ((isRangePredicate && !currentValue) || (!isRangePredicate && !currentValue && currentValue !== 0)) {\n return { selection: undefined };\n }\n const selection = isRangePredicate\n ? `${!currentValue?.from && currentValue?.from !== 0 ? 'Min' : decimalFormat(currentValue?.from)} - ${\n !currentValue?.to && currentValue?.to !== 0 ? 'Max' : decimalFormat(currentValue?.to)\n }`\n : `${!currentValue && currentValue !== 0 ? 'ALL' : decimalFormat(currentValue)}`;\n return { selection: [selection] };\n }\n case 'singlePicker': {\n if (currentValue === null || currentValue === undefined) {\n return { selection: undefined };\n }\n\n const item = view.getById(currentValue, null);\n const selection = getPickerItemName(item, props);\n\n return { selection: [selection] };\n }\n case 'datePicker': {\n return { selection: currentValue ? [uuiDayjs.dayjs(currentValue).format(props.format || defaultFormat)] : currentValue };\n }\n case 'rangeDatePicker': {\n if (!currentValue || (!currentValue.from && !currentValue.to)) {\n return { selection: undefined };\n }\n const currentValueFrom = currentValue?.from\n ? uuiDayjs.dayjs(currentValue?.from).format(props.format || defaultFormat)\n : i18n.filterToolbar.rangeDatePicker.emptyPlaceholderFrom;\n const currentValueTo = currentValue?.to\n ? uuiDayjs.dayjs(currentValue?.to).format(props.format || defaultFormat)\n : i18n.filterToolbar.rangeDatePicker.emptyPlaceholderTo;\n const selection = `${currentValueFrom} - ${currentValueTo}`;\n return { selection: [selection] };\n }\n case 'custom': {\n const value = props.getTogglerValue(props);\n return { selection: value !== undefined ? [value] : undefined };\n }\n }\n };\n\n const getTogglerWidth = () => {\n if (props.togglerWidth) return props.togglerWidth;\n\n return props.type === 'datePicker' || props.type === 'rangeDatePicker' ? null : 300;\n };\n\n const renderTarget = (dropdownProps: IDropdownToggler) => (\n <FilterPanelItemToggler\n { ...dropdownProps }\n { ...getTogglerValue() }\n title={ props.title }\n predicateName={ props.value ? predicateName : null }\n maxWidth={ getTogglerWidth() }\n size={ props.size }\n />\n );\n\n return (\n <Dropdown\n renderTarget={ renderTarget }\n renderBody={ renderBody }\n closeBodyOnTogglerHidden={ !isMobile() }\n value={ isOpen }\n onValueChange={ isOpenChange }\n middleware={ floatingMiddleware }\n />\n );\n}\n\nexport const FiltersPanelItem = React.memo(FiltersToolbarItemImpl);\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { i18n } from '../../i18n';\nimport { Button } from '../buttons';\nimport { PickerInput, DataPickerRow } from '../pickers';\nimport type { DataRowOptions, TableFiltersConfig, FiltersConfig,\n DataTableState, PickerInputElement, Overwrite } from '@epam/uui-core';\nimport { getOrderBetween, useArrayDataSource, orderBy } from '@epam/uui-core';\nimport { PickerTogglerProps, FlexCell } from '@epam/uui-components';\nimport { FiltersPanelItem } from './FiltersPanelItem';\nimport { UUI_FILTERS_PANEL_ADD_BUTTON, UUI_FILTERS_PANEL_ADD_BUTTON_BODY } from './constants';\nimport { settings } from '../../settings';\nimport { normalizeFilterWithPredicates } from './helpers/predicateHelpers';\n\nexport interface FiltersPanelModsOverride {}\n\ninterface FiltersPanelMods {\n /**\n * Defines size(height) of FilterPanel and filters togglers\n * @default '36'\n */\n size?: '24' | '30' | '36' | '42' | '48';\n}\n\nexport interface FiltersPanelProps<TFilter> extends\n Overwrite<FiltersPanelMods, FiltersPanelModsOverride> {\n /** Filters config to get data how to render filters */\n filters: TableFiltersConfig<TFilter>[];\n /** Current state value of the table(list) */\n tableState: DataTableState;\n /** Called when state needs to be changed */\n setTableState: (newState: DataTableState) => void;\n}\n\nfunction FiltersToolbarImpl<TFilter extends object>(props: FiltersPanelProps<TFilter>) {\n const { filters, tableState, setTableState, size = (settings.filtersPanel.sizes.default) } = props;\n const [newFilterId, setNewFilterId] = useState(null);\n\n const pickerInputRef = useRef<PickerInputElement>(null);\n\n const dataSource = useArrayDataSource(\n {\n items: filters,\n getId: (item) => item.field,\n },\n [],\n );\n\n const onFiltersChange = (updatedFilters: TableFiltersConfig<TFilter>[]) => {\n const newConfig: FiltersConfig = {};\n const newFilter: any = {};\n\n const filtersConfig = Object.values(tableState.filtersConfig ?? {});\n const sortedOrders = orderBy(filtersConfig, ({ order }) => order);\n let lastItemOrder: string | null = sortedOrders?.length ? sortedOrders[sortedOrders.length - 1]?.order : null;\n\n updatedFilters.forEach((filter) => {\n let order = tableState?.filtersConfig?.[filter?.field]?.order;\n if (!order) {\n order = getOrderBetween(lastItemOrder, null);\n lastItemOrder = order;\n }\n\n newConfig[filter.field] = { isVisible: true, order: order };\n\n // Remove unselected filters from filter object\n if (tableState.filter) {\n newFilter[filter.field] = tableState.filter[filter.field];\n }\n });\n\n setTableState({\n ...tableState,\n filtersConfig: newConfig,\n filter: newFilter,\n });\n };\n\n const handleFilterChange = (newFilter: TFilter, field: string | number | symbol) => {\n const filter = normalizeFilterWithPredicates({ ...tableState.filter, [field]: newFilter });\n setTableState({\n ...tableState,\n filter: filter,\n });\n };\n\n const removeFilter = (field: any) => {\n const filterConfig = { ...tableState.filtersConfig };\n delete filterConfig[field];\n const filter = { ...tableState.filter };\n delete filter[field];\n\n const newTableState: DataTableState = {\n ...tableState,\n filtersConfig: filterConfig,\n filter: filter,\n };\n setTableState({ ...newTableState });\n };\n\n const selectedFilters = useMemo(() => {\n const filtersConfig = tableState.filtersConfig || {};\n return filters.filter((filter) => {\n return filter.isAlwaysVisible || (filtersConfig[filter?.field] ? filtersConfig[filter?.field].isVisible : false);\n });\n }, [tableState.filtersConfig, filters]);\n\n const sortedActiveFilters = useMemo(() => {\n return orderBy(selectedFilters, (f) => tableState.filtersConfig?.[f.field]?.order);\n }, [filters, tableState.filtersConfig]);\n\n const renderAddFilterToggler = useCallback((togglerProps: PickerTogglerProps) => {\n return (\n <Button\n size={ size }\n onClick={ togglerProps.onClick }\n ref={ togglerProps.ref }\n caption={ i18n.filterToolbar.addCaption }\n icon={ settings.filtersPanel.icons.addFilterIcon }\n iconPosition=\"left\"\n fill=\"ghost\"\n color=\"primary\"\n cx={ UUI_FILTERS_PANEL_ADD_BUTTON }\n />\n );\n }, []);\n\n const getRowOptions = useCallback(\n (item: TableFiltersConfig<TFilter>): DataRowOptions<TableFiltersConfig<TFilter>, keyof TFilter> => ({\n isDisabled: item.isAlwaysVisible,\n checkbox: {\n isVisible: true,\n isDisabled: item.isAlwaysVisible,\n },\n\n }),\n [],\n );\n\n const isAllFiltersAlwaysVisible = props.filters.every((i) => i.isAlwaysVisible);\n\n useEffect(() => {\n if (sortedActiveFilters.length && newFilterId && sortedActiveFilters.find(({ field }) => field === newFilterId)) {\n // PickerInput should be closed after filterId update and opening the filter's body.\n // Otherwise, the focus will be not set in the search input of the filter's body.\n pickerInputRef.current?.closePickerBody?.();\n\n // Reset new filter id, after first render with autofocus\n setNewFilterId(null);\n }\n }, [newFilterId, sortedActiveFilters]);\n\n return (\n <>\n {sortedActiveFilters.map((f) => (\n <FlexCell width=\"auto\" key={ f.field as string }>\n <FiltersPanelItem\n { ...f }\n value={ tableState.filter?.[f.field] }\n onValueChange={ (newFilter: TFilter) => handleFilterChange(newFilter, f.field) }\n key={ f.field as string }\n autoFocus={ newFilterId === f.field }\n removeFilter={ removeFilter }\n size={ size }\n />\n </FlexCell>\n ))}\n {!isAllFiltersAlwaysVisible && (\n <PickerInput\n dataSource={ dataSource }\n value={ selectedFilters }\n onValueChange={ onFiltersChange }\n selectionMode=\"multi\"\n valueType=\"entity\"\n renderRow={ (props) => (\n <DataPickerRow\n { ...props }\n padding=\"12\"\n key={ props.key }\n onCheck={ (row) => {\n props.onCheck && props.onCheck(row);\n setNewFilterId(row.value.field);\n } }\n />\n ) }\n getName={ (i) => i.title }\n renderToggler={ renderAddFilterToggler }\n emptyValue={ [] }\n getRowOptions={ getRowOptions }\n fixedBodyPosition={ true }\n size={ size }\n bodyCx={ UUI_FILTERS_PANEL_ADD_BUTTON_BODY }\n ref={ pickerInputRef }\n />\n )}\n </>\n );\n}\n\nexport const FiltersPanel = React.memo(FiltersToolbarImpl) as typeof FiltersToolbarImpl;\n","import React, { useCallback } from 'react';\nimport { offset } from '@floating-ui/react';\nimport type { IPresetsApi, IDropdownToggler, ITablePreset, DataTableState, DropdownBodyProps } from '@epam/uui-core';\nimport { useUuiContext } from '@epam/uui-core';\nimport { Dropdown, DropdownMenuBody, DropdownMenuButton, SuccessNotification, DropdownMenuSplitter } from '../../overlays';\nimport { IconButton } from '../../buttons';\nimport { settings } from '../../../settings';\n\nimport css from './PresetActionsDropdown.module.scss';\n\ninterface ITubButtonDropdownProps extends Omit<IPresetsApi, 'presets'> {\n preset: ITablePreset;\n addPreset: () => void;\n tableState: DataTableState;\n renamePreset: () => void;\n onCopyLink?: ((tableState: DataTableState) => void) | null;\n}\n\nexport function PresetActionsDropdown(props: ITubButtonDropdownProps) {\n const { uuiNotifications } = useUuiContext();\n\n const successNotificationHandler = useCallback((text: string) => {\n uuiNotifications\n .show(\n (props) => (\n <SuccessNotification { ...props }>\n <div className=\"uui-presets-panel-notification-text\">\n {text}\n </div>\n </SuccessNotification>\n ),\n { duration: 3 },\n )\n .catch(() => null);\n }, []);\n\n const copyUrlToClipboard = useCallback(async (): Promise<void> => {\n const isPresetChanged = props.activePresetId === props.preset.id && props.hasPresetChanged(props.preset);\n const preset = isPresetChanged ? { ...props.preset, ...props.tableState } : props.preset;\n const link = props.getPresetLink(preset);\n await navigator.clipboard.writeText(link);\n successNotificationHandler('Link copied!');\n }, [props.activePresetId, props.preset, props.hasPresetChanged, props.getPresetLink, props.tableState]);\n\n const onCopyLink = props.onCopyLink ? props.onCopyLink : copyUrlToClipboard;\n\n const saveInCurrent = useCallback(\n async (preset: ITablePreset) => {\n const newPreset: ITablePreset = {\n ...preset,\n filter: props.tableState.filter,\n sorting: props.tableState.sorting,\n columnsConfig: props.tableState.columnsConfig,\n filtersConfig: props.tableState.filtersConfig,\n viewState: props.tableState.viewState,\n };\n await props.updatePreset(newPreset);\n successNotificationHandler('Changes saved!');\n },\n [\n props.tableState.filter, props.tableState.columnsConfig, props.tableState.filtersConfig,\n ],\n );\n\n const saveInCurrentHandler = useCallback(() => {\n saveInCurrent(props.preset);\n }, [props.preset]);\n\n const discardAllChangesHandler = useCallback(() => {\n props.choosePreset(props.preset);\n }, [props.preset]);\n\n const duplicateHandler = useCallback(() => {\n props.duplicatePreset(props.preset);\n }, [props.preset]);\n\n const deleteHandler = useCallback(async () => {\n await props.deletePreset(props.preset);\n }, [\n props.activePresetId, props.deletePreset, props.preset,\n ]);\n\n const renderBody = (dropdownProps: DropdownBodyProps): React.ReactNode => {\n const isReadonlyPreset = props.preset.isReadonly;\n const isPresetChanged = props.activePresetId === props.preset.id && props.hasPresetChanged(props.preset);\n const isRenameAvailable = props.preset.id === props.activePresetId && !isReadonlyPreset;\n\n return (\n <DropdownMenuBody { ...dropdownProps }>\n { isPresetChanged && (\n <>\n {!isReadonlyPreset && (\n <DropdownMenuButton\n key={ `${props.preset.id}-save-in-current` }\n icon={ settings.presetsPanel.icons.saveInCurrentIcon }\n caption=\"Save in current\"\n onClick={ () => { dropdownProps.onClose(); saveInCurrentHandler(); } }\n />\n )}\n <DropdownMenuButton\n key={ `${props.preset.id}-save-as-new` }\n icon={ settings.presetsPanel.icons.saveAsNewIcon }\n caption=\"Save as new\"\n // We add setTimeout to call addPreset after dropdown will be closed, since dropdown has focus lock, and it broke autofocus on add new preset input\n onClick={ () => { dropdownProps.onClose(); setTimeout(() => props.addPreset(), 0); } }\n />\n <DropdownMenuButton\n key={ `${props.preset.id}-discard` }\n icon={ settings.presetsPanel.icons.discardChangesIcon }\n caption=\"Discard all changes\"\n onClick={ () => { dropdownProps.onClose(); discardAllChangesHandler(); } }\n />\n <DropdownMenuSplitter key=\"discard-splitter\" />\n </>\n )}\n { isRenameAvailable && (\n <DropdownMenuButton\n key={ `${props.preset.id}-rename` }\n icon={ settings.presetsPanel.icons.renameIcon }\n caption=\"Rename\"\n onClick={ props.renamePreset }\n />\n )}\n { !isPresetChanged && (\n <DropdownMenuButton\n key={ `${props.preset.id}-duplicate` }\n icon={ settings.presetsPanel.icons.copyIcon }\n caption=\"Duplicate\"\n onClick={ () => { dropdownProps.onClose(); duplicateHandler(); } }\n />\n )}\n {props.onCopyLink !== null && (\n <DropdownMenuButton\n key={ `${props.preset.id}-copyLink` }\n icon={ settings.presetsPanel.icons.copyLinkIcon }\n caption=\"Copy Link\"\n onClick={ onCopyLink }\n />\n )}\n {!isReadonlyPreset && (\n <>\n <DropdownMenuSplitter key=\"delete-splitter\" />\n <DropdownMenuButton\n icon={ settings.presetsPanel.icons.deleteIcon }\n caption=\"Delete\"\n cx={ css.deleteButton }\n onClick={ deleteHandler }\n />\n </>\n )}\n </DropdownMenuBody>\n );\n };\n\n const renderTarget = useCallback((dropdownProps: IDropdownToggler) => {\n return (\n <IconButton\n cx={ [css.tabButton, dropdownProps.isOpen && css.targetOpen] }\n color={ props.preset.id === props.activePresetId ? 'primary' : 'neutral' }\n { ...dropdownProps }\n icon={ settings.presetsPanel.icons.menuIcon }\n size={ settings.presetsPanel.sizes.dropdownTargetIconButton }\n />\n );\n }, []);\n\n return (\n <Dropdown renderBody={ renderBody } renderTarget={ renderTarget } placement=\"bottom-end\" middleware={ [offset(22)] } />\n );\n}\n","export const UUI_PRESETS_PANEL_ADD_BUTTON = 'uui-presets-panel-add-button';\nexport const UUI_PRESETS_PANEL_MORE_BUTTON = 'uui-presets-panel-more-button';\nexport const UUI_PRESETS_PANEL_INPUT = 'uui-presets-panel-input';\nexport const UUI_PRESETS_PANEL_PRESET = 'uui-presets-panel-preset';\n","import React, { useCallback, useState } from 'react';\nimport type { ITablePreset } from '@epam/uui-core';\nimport { TextInput } from '../../inputs';\nimport { FlexCell } from '../../layout';\nimport { UUI_PRESETS_PANEL_INPUT } from './constants';\n\nimport css from './PresetInput.module.scss';\n\ninterface IPresetInputProps {\n onCancel: () => void;\n onSuccess?: (name: string) => Promise<any>;\n preset?: ITablePreset;\n}\n\nexport function PresetInput(props: IPresetInputProps) {\n const [presetCaption, setPresetCaption] = useState(props.preset?.name || '');\n const [readonly, setReadonly] = useState(false);\n\n const cancelActionHandler = useCallback(() => {\n setPresetCaption('');\n props.onCancel();\n }, [props.onCancel]);\n\n const acceptActionHandler = useCallback(async () => {\n setReadonly(() => true);\n if (presetCaption) {\n await props.onSuccess(presetCaption);\n }\n props.onCancel();\n setReadonly(() => false);\n }, [presetCaption]);\n\n const newPresetOnBlurHandler = useCallback(() => {\n if (presetCaption.length) {\n return;\n }\n props.onCancel();\n }, [presetCaption.length, props.onCancel]);\n\n return (\n <FlexCell cx={ [css.presetInputCell, UUI_PRESETS_PANEL_INPUT] } minWidth={ 180 }>\n <TextInput\n cx={ css.presetInput }\n onValueChange={ setPresetCaption }\n value={ presetCaption }\n onCancel={ cancelActionHandler }\n onAccept={ acceptActionHandler }\n onBlur={ newPresetOnBlurHandler }\n autoFocus\n maxLength={ 50 }\n isReadonly={ readonly }\n />\n </FlexCell>\n );\n}\n","import React, { useCallback, useState } from 'react';\nimport type { DataTableState, IPresetsApi, ITablePreset } from '@epam/uui-core';\nimport { TabButton } from '../../buttons';\nimport { PresetActionsDropdown } from './PresetActionsDropdown';\nimport { PresetInput } from './PresetInput';\nimport { FlexCell } from '../../layout';\nimport { UUI_PRESETS_PANEL_PRESET } from './constants';\nimport { settings } from '../../../settings';\n\nimport css from './Preset.module.scss';\n\ninterface IPresetProps extends Omit<IPresetsApi, 'presets'> {\n preset: ITablePreset;\n addPreset: () => void;\n tableState: DataTableState;\n onCopyLink?: ((tableState: DataTableState) => void) | null;\n}\n\nexport function Preset(props: IPresetProps) {\n const [isRenamePreset, setIsRenamePreset] = useState<Boolean>(false);\n const choosePresetHandler = useCallback(() => props.choosePreset(props.preset), [props]);\n\n const cancelRenamePreset = useCallback(() => {\n setIsRenamePreset(() => false);\n }, []);\n\n const setPresetForRename = useCallback(() => {\n if (!isRenamePreset) {\n setIsRenamePreset(() => true);\n }\n }, []);\n\n const handlePresetRename = useCallback(\n (name: string) => {\n const newPreset: ITablePreset = {\n ...props.preset,\n name: name,\n };\n return props.updatePreset(newPreset);\n },\n [props.preset],\n );\n\n const isPresetActive = props.activePresetId === props.preset.id;\n\n const PresetActionsDropdownComponent = useCallback(\n () => <PresetActionsDropdown renamePreset={ setPresetForRename } { ...props } />,\n [props.preset, props.tableState, props.activePresetId],\n );\n\n return (\n <FlexCell key={ props.preset.id } alignSelf=\"center\" width=\"auto\">\n {isRenamePreset ? (\n <PresetInput\n onCancel={ cancelRenamePreset }\n onSuccess={ handlePresetRename }\n preset={ props.preset }\n />\n ) : (\n <TabButton\n caption={ props.preset.name }\n onClick={ !isPresetActive && choosePresetHandler }\n cx={ [css.preset, isPresetActive && css.activePreset, UUI_PRESETS_PANEL_PRESET] }\n size={ settings.presetsPanel.sizes.tabButton }\n withNotify={ isPresetActive && props.hasPresetChanged(props.preset) }\n icon={ PresetActionsDropdownComponent }\n iconPosition=\"right\"\n isActive={ isPresetActive }\n />\n )}\n </FlexCell>\n );\n}\n","import React, { useCallback, useState } from 'react';\nimport { i18n } from '../../../i18n';\nimport type { DataTableState, IHasRawProps, IPresetsApi, ITablePreset } from '@epam/uui-core';\nimport { orderBy } from '@epam/uui-core';\nimport type { AdaptiveItemProps } from '@epam/uui-components';\nimport { AdaptivePanel } from '@epam/uui-components';\nimport { Button } from '../../buttons';\nimport { FlexCell, FlexRow, ScrollBars } from '../../layout';\nimport { Dropdown, DropdownMenuBody, DropdownMenuButton } from '../../overlays';\nimport { Preset } from './Preset';\nimport { PresetInput } from './PresetInput';\nimport { UUI_PRESETS_PANEL_ADD_BUTTON, UUI_PRESETS_PANEL_MORE_BUTTON } from './constants';\nimport { settings } from '../../../settings';\n\nimport css from './PresetsPanel.module.scss';\n\nexport interface PresetsPanelProps extends IPresetsApi, IHasRawProps<React.HTMLAttributes<HTMLDivElement>> {\n /** Current state value of the table(list) */\n tableState: DataTableState;\n /** Optional: custom logic for Copy Link action, if null, \"Copy Link\" button will be hidden */\n onCopyLink?: ((tableState: DataTableState) => void) | null;\n}\n\ntype PresetAdaptiveItem = AdaptiveItemProps<{ preset?: ITablePreset }>;\n\nexport function PresetsPanel(props: PresetsPanelProps) {\n const [isAddingPreset, setIsAddingPreset] = useState(false);\n\n const setAddingPreset = useCallback(() => {\n setIsAddingPreset(true);\n }, []);\n\n const cancelAddingPreset = useCallback(() => {\n setIsAddingPreset(false);\n }, []);\n\n const { presets, ...presetApi } = props;\n\n const renderPreset = (preset: ITablePreset) => {\n return <Preset key={ preset.id } preset={ preset } addPreset={ setAddingPreset } { ...presetApi } />;\n };\n\n const renderAddPresetButton = useCallback(() => {\n return (\n <div key=\"addingPresetBlock\" className={ css.addPresetContainer }>\n {!isAddingPreset ? (\n <Button\n cx={ UUI_PRESETS_PANEL_ADD_BUTTON }\n onClick={ setAddingPreset }\n caption={ i18n.presetPanel.addCaption }\n icon={ settings.presetsPanel.icons.addIcon }\n iconPosition=\"left\"\n fill=\"ghost\"\n color=\"primary\"\n />\n ) : (\n <PresetInput\n onCancel={ cancelAddingPreset }\n onSuccess={ props.createNewPreset }\n />\n )}\n </div>\n );\n }, [isAddingPreset]);\n\n const onPresetDropdownSelect = (preset: PresetAdaptiveItem) => {\n props.choosePreset(preset.preset);\n };\n\n const renderMoreButtonDropdown = (item: PresetAdaptiveItem, hiddenItems: PresetAdaptiveItem[]) => {\n return (\n <Dropdown\n key=\"more\"\n renderTarget={ (props) => (\n <FlexRow>\n <div className={ css.divider } />\n <Button\n cx={ UUI_PRESETS_PANEL_MORE_BUTTON }\n fill=\"ghost\"\n color=\"secondary\"\n caption={ `${hiddenItems?.length || ''} more` }\n { ...props }\n />\n </FlexRow>\n ) }\n renderBody={ (propsBody) => (\n <DropdownMenuBody minWidth={ 230 } maxHeight={ 300 } { ...propsBody }>\n <ScrollBars>\n {hiddenItems.map((hiddenItem) => (\n <DropdownMenuButton\n key={ hiddenItem.preset.id }\n onClick={ () => onPresetDropdownSelect(hiddenItem) }\n caption={ hiddenItem.preset.name }\n icon={ !hiddenItem.preset.isReadonly && settings.presetsPanel.icons.deleteIcon }\n iconPosition=\"right\"\n cx={ css.dropdownDeleteIcon }\n onIconClick={ !hiddenItem.preset.isReadonly && (() => props.deletePreset(hiddenItem.preset)) }\n />\n ))}\n </ScrollBars>\n </DropdownMenuBody>\n ) }\n />\n );\n };\n\n const getPresetPriority = (preset: ITablePreset, index: number) => {\n return preset.id === props.activePresetId ? 100499 : 1000 - index;\n };\n\n const getPanelItems = (): PresetAdaptiveItem[] => {\n return [\n ...orderBy(props.presets, ({ order }) => order)\n .map((preset, index) => ({\n id: preset.id.toString(),\n render: () => renderPreset(preset),\n priority: getPresetPriority(preset, index),\n preset: preset,\n })),\n {\n id: 'collapsedContainer', render: renderMoreButtonDropdown, priority: 100501, collapsedContainer: true,\n },\n { id: 'addPreset', render: renderAddPresetButton, priority: 100501 },\n ];\n };\n\n return (\n <FlexCell grow={ 1 } minWidth={ 310 } rawProps={ props.rawProps }>\n <FlexRow size={ null } columnGap=\"12\" cx={ css.presetsWrapper }>\n <AdaptivePanel items={ getPanelItems() } />\n </FlexRow>\n </FlexCell>\n );\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M2 5h20v2H2V5zm0 12h15v2H2v-2zm0-6h20v2H2v-2z\"/></svg>","import { withMods } from '@epam/uui-core';\nimport cx from 'classnames';\nimport { Burger as uuiBurger, BurgerProps } from '@epam/uui-components';\nimport css from './Burger.module.scss';\nimport { ReactComponent as BurgerIcon } from '@epam/assets/icons/navigation-open_side_menu-outline.svg';\nimport { ReactComponent as CrossIcon } from '@epam/assets/icons/navigation-close-outline.svg';\n\nfunction applyBurgerMods() {\n return [cx(css.root, 'uui-burger')];\n}\n\nexport const Burger = withMods<BurgerProps, BurgerProps>(uuiBurger, applyBurgerMods, () => ({\n burgerIcon: BurgerIcon,\n crossIcon: CrossIcon,\n burgerContentCx: css.burgerContent,\n}));\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M7 10l5 5 5-5H7z\" clip-rule=\"evenodd\"/></svg>","import React from 'react';\nimport { IHasIcon, IDropdownToggler, ICanBeActive, useIsActive, uuiMod } from '@epam/uui-core';\nimport { Button, ButtonProps } from '@epam/uui-components';\nimport { ReactComponent as SvgTriangle } from '@epam/assets/icons/navigation-arrow_down-outline.svg';\nimport css from './BurgerButton.module.scss';\n\ninterface BurgerButtonMods extends IHasIcon, IDropdownToggler {\n /*\n * Defines component type.\n */\n type?: 'primary' | 'secondary';\n /*\n * Defines components' indent.\n */\n indentLevel?: number;\n}\n\nexport type BurgerButtonProps = ButtonProps & BurgerButtonMods & ICanBeActive;\n\nfunction applyBurgerButtonMods(props: BurgerButtonProps) {\n return [\n css.root,\n 'uui-main_menu-burger-button',\n css['button-' + (props.type || 'primary')],\n css['indent-' + (props.indentLevel || 0)],\n props.isActive && uuiMod.active,\n props.isDropdown && css.dropdown,\n props.icon && css.hasIcon,\n ];\n}\n\nexport const BurgerButton = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, BurgerButtonProps>((props, ref) => {\n const { isActive } = useIsActive({\n isLinkActive: props.isLinkActive,\n link: props.link,\n isActive: props.isActive,\n });\n\n return (\n <Button\n { ...props }\n ref={ ref }\n cx={ applyBurgerButtonMods({ ...props, isActive }) }\n rawProps={ {\n ...props.rawProps,\n role: 'menuitem',\n } }\n dropdownIcon={ SvgTriangle }\n />\n );\n});\n","import * as React from 'react';\nimport { TextInput, TextInputProps } from '@epam/uui-components';\nimport { ReactComponent as LensIcon } from '@epam/assets/icons/action-search-outline.svg';\nimport { ReactComponent as CancelIcon } from '@epam/assets/icons/navigation-close-outline.svg';\nimport css from './BurgerSearch.module.scss';\nimport cx from 'classnames';\n\ninterface BurgerSearchProps extends TextInputProps {}\n\nexport function BurgerSearch(props: BurgerSearchProps) {\n return (\n <TextInput\n cx={ cx(css.searchInput, 'uui-main_menu-burger-search') }\n iconPosition=\"left\"\n icon={ LensIcon }\n placeholder={ props.placeholder }\n value={ props.value }\n onValueChange={ props.onValueChange }\n onCancel={ props.onCancel }\n cancelIcon={ props.value && CancelIcon }\n />\n );\n}\n","import * as React from 'react';\nimport cx from 'classnames';\nimport css from './BurgerGroupHeader.module.scss';\n\ninterface BurgerGroupHeaderProps {\n /*\n * Defines component caption.\n */\n caption: string;\n}\n\nexport function BurgerGroupHeader(props: BurgerGroupHeaderProps) {\n return (\n <div className={ cx(css.root, css.groupHeader, 'uui-burger-group-header') }>\n <hr className={ css.line } />\n <span className={ css.groupName }>{props.caption}</span>\n </div>\n );\n}\n","import * as React from 'react';\nimport {\n IAdaptiveItem,\n ICanBeActive,\n Icon,\n IDropdownToggler,\n IHasCaption,\n IHasIcon,\n useIsActive,\n uuiElement, uuiMod,\n} from '@epam/uui-core';\nimport { Clickable, ClickableComponentProps, IconContainer } from '@epam/uui-components';\nimport { CountIndicator } from '../../widgets/CountIndicator';\nimport { ReactComponent as SvgTriangle } from '@epam/assets/icons/navigation-chevron_down-outline.svg';\nimport css from './MainMenuButton.module.scss';\n\ninterface MainMenuButtonMods {\n /**\n * Defines component type. The primary button leads to the main pages of the site, and the secondary to the others.\n */\n type?: 'primary' | 'secondary';\n}\n\nexport type MainMenuButtonProps = MainMenuButtonMods & IAdaptiveItem & IDropdownToggler & Omit<ClickableComponentProps, 'isDisabled'>\n& IHasIcon & IHasCaption & ICanBeActive & {\n /** Icon for drop-down toggler */\n dropdownIcon?: Icon;\n /** Count value to be placed in component */\n count?: React.ReactNode;\n};\n\nexport const MainMenuButton = React.forwardRef<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement, MainMenuButtonProps>((props, ref) => {\n const { type, ...clickableProps } = props;\n\n const { isActive } = useIsActive({\n isLinkActive: props.isLinkActive,\n link: props.link,\n isActive: props.isActive,\n });\n\n return (\n <Clickable\n { ...clickableProps }\n rawProps={ {\n 'aria-expanded': props.isOpen,\n 'aria-current': isActive\n ? 'page'\n : undefined,\n ...props.rawProps,\n } }\n cx={ [\n css.root,\n css['type-' + (type || 'primary')],\n isActive && uuiMod.active,\n props.cx,\n ] }\n ref={ ref }\n >\n { props.icon && props.iconPosition !== 'right' && (\n <IconContainer\n icon={ props.icon }\n onClick={ props.onIconClick }\n />\n ) }\n { props.caption && (\n <div className={ uuiElement.caption }>\n { props.caption }\n </div>\n ) }\n { props.count !== undefined && props.count !== null && (\n <CountIndicator\n caption={ props.count }\n color=\"neutral\"\n size=\"18\"\n />\n ) }\n { props.icon && props.iconPosition === 'right' && (\n <IconContainer icon={ props.icon } onClick={ props.onIconClick } />\n ) }\n { props.isDropdown && (\n <IconContainer icon={ SvgTriangle } flipY={ props.isOpen } />\n )}\n </Clickable>\n );\n});\n","import React, { KeyboardEvent } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport cx from 'classnames';\nimport { Dropdown, MainMenuDropdownProps } from '@epam/uui-components';\nimport { MainMenuButton } from './MainMenuButton';\nimport css from './MainMenuDropdown.module.scss';\n\nexport function MainMenuDropdown(props: MainMenuDropdownProps) {\n const handleEscape = (e: KeyboardEvent<HTMLElement>, onClose: () => void, isOpen: boolean) => {\n if (e.key === 'Escape' && isOpen) {\n onClose();\n }\n };\n\n return (\n <Dropdown\n renderTarget={ (dropdownProps) => (\n <MainMenuButton\n caption={ props.caption }\n { ...dropdownProps }\n rawProps={ {\n 'aria-haspopup': 'menu',\n ...props.rawProps,\n } }\n isActive={ props.isActive }\n isDropdown\n />\n ) }\n renderBody={ (dropdownBodyProps) => (\n <FocusLock\n returnFocus\n persistentFocus\n lockProps={ {\n onKeyDown: (e: KeyboardEvent<HTMLElement>) => handleEscape(e, dropdownBodyProps.onClose, dropdownBodyProps.isOpen),\n } }\n >\n <div\n className={ cx(css.dropdownBody, 'uui-main_menu-dropdown', props.cx) }\n role=\"menu\"\n >\n {props.renderBody({ ...dropdownBodyProps })}\n </div>\n </FocusLock>\n ) }\n placement=\"bottom-start\"\n />\n );\n}\n","import css from './MainMenu.module.scss';\nimport { withMods } from '@epam/uui-core';\nimport * as uuiComponents from '@epam/uui-components';\nimport { Burger } from './Burger';\nimport { MainMenuDropdown } from './MainMenuDropdown';\n\nfunction applyMainMenuMods() {\n return [\n css.root,\n 'uui-main_menu',\n ];\n}\n\nexport type MainMenuProps = uuiComponents.MainMenuProps;\n\nexport const MainMenu = withMods<uuiComponents.MainMenuProps, MainMenuProps>(\n uuiComponents.MainMenu,\n applyMainMenuMods,\n (props) => ({\n Burger,\n MainMenuDropdown,\n ...props,\n }),\n);\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M12 10.85a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm-10.666 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333-6a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm-10.666 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333 12a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm5.333 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666zm-10.666 0a1.333 1.333 0 110 2.666 1.333 1.333 0 010-2.666z\" clip-rule=\"evenodd\"/></svg>","import * as React from 'react';\nimport cx from 'classnames';\nimport { IAdaptiveItem, IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { IconContainer } from '@epam/uui-components';\nimport { ReactComponent as GlobalMenuIcon } from '@epam/assets/icons/navigation-global_menu-outline-outline.svg';\nimport css from './GlobalMenu.module.scss';\n\n/** Represents the properties of the GlobalMenu component. */\nexport interface GlobalMenuProps extends IAdaptiveItem, IHasCX, IHasRawProps<React.HTMLAttributes<HTMLButtonElement>> {}\n\nexport const GlobalMenu = React.forwardRef<HTMLButtonElement, GlobalMenuProps>((props, ref) => (\n <button ref={ ref } id=\"global_menu_toggle\" className={ cx(css.globalMenuBtn, props.cx) } { ...props.rawProps }>\n <IconContainer size={ 36 } icon={ GlobalMenuIcon } cx={ css.globalMenuIcon } />\n </button>\n));\n","import * as React from 'react';\nimport cx from 'classnames';\nimport { IAdaptiveItem, IDropdownToggler, Icon, IHasCX, uuiMarkers, IClickable, IHasRawProps } from '@epam/uui-core';\nimport { IconContainer, Avatar } from '@epam/uui-components';\nimport { ReactComponent as FoldingArrow } from '@epam/assets/icons/navigation-chevron_down-outline.svg';\nimport css from './MainMenuAvatar.module.scss';\n\n/** Represents the properties of the MainMenuAvatar component. */\nexport interface MainMenuAvatarProps extends IClickable, IAdaptiveItem, IDropdownToggler, IHasCX, IHasRawProps<React.ButtonHTMLAttributes<HTMLButtonElement>> {\n avatarUrl?: string;\n icon?: Icon;\n}\n\nexport const MainMenuAvatar = React.forwardRef<HTMLButtonElement, MainMenuAvatarProps>((props, ref) => (\n <button\n ref={ ref }\n className={ cx(css.container, props.isDropdown && css.dropdown, props.isOpen && css.open, props.onClick && uuiMarkers.clickable, props.cx) }\n onClick={ props.onClick }\n { ...props.rawProps }\n >\n <Avatar size=\"36\" img={ props.avatarUrl } />\n {props.icon && <IconContainer icon={ props.icon } />}\n {props.isDropdown && (\n <div>\n <IconContainer size={ 18 } icon={ FoldingArrow } flipY={ props.isOpen } cx={ css.foldingArrow } />\n </div>\n )}\n </button>\n));\n","import * as React from 'react';\nimport { TextInputProps, TextInput } from '@epam/uui-components';\nimport { ReactComponent as LensIcon } from '@epam/assets/icons/action-search-outline.svg';\nimport { ReactComponent as CancelIcon } from '@epam/assets/icons/navigation-close-outline.svg';\nimport { cx, IAdaptiveItem, IEditableDebouncer } from '@epam/uui-core';\nimport css from './MainMenuSearch.module.scss';\n\n/** Represents the properties of the MainMenuSearch component. */\nexport interface MainMenuSearchProps extends TextInputProps, IAdaptiveItem {}\n\nexport const MainMenuSearch = React.forwardRef<HTMLInputElement, MainMenuSearchProps>((props, ref) => (\n <IEditableDebouncer\n { ...props }\n render={ (iEditable) => (\n <TextInput\n iconPosition=\"left\"\n icon={ LensIcon }\n cancelIcon={ props.value?.length > 0 && CancelIcon }\n { ...props }\n { ...iEditable }\n ref={ ref }\n cx={ cx(css.searchInput, props.cx) }\n { ...props.rawProps }\n />\n ) }\n />\n));\n","import * as React from 'react';\nimport { Icon, IAdaptiveItem, cx } from '@epam/uui-core';\nimport { ButtonProps } from '@epam/uui-components';\nimport { IconButton } from '../../buttons';\nimport css from './MainMenuIcon.module.scss';\n\n/** Represents the properties of the MainMenuIcon component. */\nexport type MainMenuIconProps = ButtonProps & IAdaptiveItem & {\n /*\n * Defines component icon.\n */\n icon: Icon;\n};\n\nexport const MainMenuIcon = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, MainMenuIconProps>((props, ref) => (\n <IconButton ref={ ref } icon={ props.icon } cx={ cx(props.cx, css.container) } { ...props } />\n));\n","import { Anchor as uuiAnchor, AnchorProps } from '@epam/uui-components';\nimport { withMods } from '@epam/uui-core';\nimport css from './Anchor.module.scss';\n\nexport const Anchor = withMods<AnchorProps, AnchorProps>(uuiAnchor, () => [css.root]);\n","import * as React from 'react';\nimport {\n Form as UuiForm, FormProps, useUuiContext, INotification,\n} from '@epam/uui-core';\nimport { Text, RichTextView } from '../typography';\nimport { ConfirmationModal, WarningNotification } from '../overlays';\nimport { i18n } from '../../i18n';\n\nexport function Form<T>(props: FormProps<T>) {\n const context = useUuiContext();\n\n const beforeLeave = React.useCallback((): Promise<boolean> => {\n return context.uuiModals.show<boolean>((modalProps) => <ConfirmationModal caption={ i18n.form.modals.beforeLeaveMessage } { ...modalProps } />);\n }, [context.uuiModals]);\n\n const loadUnsavedChanges = (): Promise<void> => {\n return context.uuiNotifications\n .show(\n (props: INotification) => (\n <WarningNotification\n { ...props }\n actions={ [\n {\n name: i18n.form.notifications.actionButtonCaption,\n action: props.onSuccess,\n },\n ] }\n >\n <RichTextView>\n <Text>{i18n.form.notifications.unsavedChangesMessage}</Text>\n </RichTextView>\n </WarningNotification>\n ),\n { duration: 5, position: 'bot-left' },\n );\n };\n\n return <UuiForm<T> loadUnsavedChanges={ loadUnsavedChanges } beforeLeave={ beforeLeave } { ...props } />;\n}\n","import React, { useCallback } from 'react';\nimport {\n useUuiContext, UseFormProps, useForm as uuiUseForm, INotification,\n} from '@epam/uui-core';\nimport { WarningNotification } from '../overlays';\nimport { Text, RichTextView } from '../typography';\nimport { ConfirmationModal } from '../overlays/ConfirmationModal';\nimport { i18n } from '../../i18n';\n\nexport function useForm<T>(props: UseFormProps<T>) {\n const context = useUuiContext();\n\n const beforeLeave = useCallback((): Promise<boolean> => {\n return context.uuiModals.show<boolean>((modalProps) => <ConfirmationModal caption={ i18n.form.modals.beforeLeaveMessage } { ...modalProps } />);\n }, [context.uuiModals]);\n\n const loadUnsavedChanges = (): Promise<void> => {\n return context.uuiNotifications.show(\n (props: INotification) => (\n <WarningNotification\n { ...props }\n actions={ [\n {\n name: i18n.form.notifications.actionButtonCaption,\n action: props.onSuccess,\n },\n ] }\n >\n <RichTextView>\n <Text>{i18n.form.notifications.unsavedChangesMessage}</Text>\n </RichTextView>\n </WarningNotification>\n ),\n { duration: 5, position: 'bot-left' },\n );\n };\n\n return uuiUseForm({ beforeLeave, loadUnsavedChanges, ...props });\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill-rule=\"evenodd\" d=\"M14 13v4h-4v-4H7l5-5 5 5m2.35-2.97A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.03A6.004 6.004 0 006 20h13a5 5 0 005-5c0-2.64-2.05-4.78-4.65-4.97z\" clip-rule=\"evenodd\"/></svg>","import * as React from 'react';\nimport { cx, IHasCX, IHasRawProps } from '@epam/uui-core';\nimport { DropSpot as UuiDropSpot, DropSpotRenderParams, UploadFileToggler } from '@epam/uui-components';\nimport { FlexRow, IconContainer } from '../layout';\nimport { LinkButton } from '../buttons';\nimport { RichTextView, Text } from '../typography';\nimport { ReactComponent as ShapeIcon } from '@epam/assets/icons/file-cloud_upload-fill.svg';\nimport { i18n } from '../../i18n';\nimport css from './DropSpot.module.scss';\n\nexport interface DropSpotProps extends IHasRawProps<React.HTMLAttributes<HTMLDivElement>>, IHasCX {\n /**\n * Defines the infoText. InfoText is additional information that can be rendered at the bottom of the AttachmentArea.\n */\n infoText?: React.ReactNode;\n /**\n * Called when files was added to the DropSpot.\n */\n onUploadFiles(files: File[]): any;\n /**\n * Hint for expected file type in file upload controls. See {@link https://developer.mozilla.org/en-US/docs/web/html/element/input#accept} for details\n */\n accept?: string;\n /**\n * Whether to allow single or multiple values. See {@link https://developer.mozilla.org/en-US/docs/web/html/element/input#multiple} for details\n */\n single?: boolean;\n}\n\nexport function DropSpot(props: DropSpotProps) {\n const getInfoText = typeof props.infoText === 'string'\n ? (\n <Text lineHeight=\"24\" size=\"24\" fontSize=\"14\" color=\"tertiary\">\n {props.infoText}\n </Text>\n ) : props?.infoText;\n\n const renderAttachmentArea = (params: DropSpotRenderParams) => {\n return (\n <div className={ cx(css.root, props.cx, params.isDragStart && css.dropStart, params.isDraggingOver && css.dropOver) } { ...props.rawProps }>\n <div { ...params.eventHandlers } className={ css.dropArea }>\n <FlexRow size=\"24\">\n <IconContainer icon={ ShapeIcon } cx={ css.iconBlue } />\n <Text lineHeight=\"24\" size=\"24\" fontSize=\"14\" cx={ css.dropCaption }>\n {i18n.fileUpload.labelStart}\n </Text>\n <UploadFileToggler\n onFilesAdded={ props.onUploadFiles }\n render={ (props) => (\n <RichTextView>\n <LinkButton caption={ i18n.fileUpload.browse } { ...props } cx={ css.link } />\n </RichTextView>\n ) }\n accept={ props.accept }\n single={ props.single }\n />\n </FlexRow>\n {getInfoText}\n </div>\n </div>\n );\n };\n\n return <UuiDropSpot render={ renderAttachmentArea } onFilesDropped={ props.onUploadFiles } />;\n}\n","import * as React from 'react';\nimport { IHasCX, IHasRawProps } from '@epam/uui-core';\nimport css from './SvgCircleProgress.module.scss';\n\ninterface SvgCircleProgressProps extends IHasCX, IHasRawProps<React.SVGAttributes<SVGSVGElement>> {\n /*\n * Defines component size.\n */\n size: number;\n /*\n * Defines progress in numbers.\n */\n progress: number;\n}\n\nexport const SvgCircleProgress = React.forwardRef<SVGSVGElement, SvgCircleProgressProps>((props, ref) => {\n const outsetRadius = props.size / 2 - 1;\n const insetRadius = props.size / 2 - 3;\n const circumference = insetRadius * Math.PI;\n\n return (\n <svg className={ css.root } width={ props.size } height={ props.size } ref={ ref } { ...props.rawProps }>\n <circle\n strokeDasharray={ circumference }\n strokeDashoffset={ circumference - (props.progress / 100) * circumference }\n strokeWidth={ insetRadius }\n fill=\"transparent\"\n r={ insetRadius / 2 }\n cx={ props.size / 2 }\n cy={ props.size / 2 }\n />\n <circle\n strokeWidth={ 1 }\n fill=\"transparent\"\n r={ outsetRadius }\n cx={ props.size / 2 }\n cy={ props.size / 2 }\n />\n </svg>\n );\n});\n","import * as React from 'react';\nimport { i18n } from '../../i18n';\nimport { cx, FileUploadResponse, formatBytes, IClickable, IHasCX, uuiMod } from '@epam/uui-core';\nimport { SvgCircleProgress } from './SvgCircleProgress';\nimport { IconContainer } from '@epam/uui-components';\nimport { FlexCell, FlexRow } from '../layout';\nimport { IconButton } from '../buttons';\nimport { Text } from '../typography';\nimport { Tooltip } from '../overlays';\nimport { settings } from '../../settings';\n\nimport css from './FileCard.module.scss';\n\nexport interface FileCardItem extends Partial<File & FileUploadResponse> {\n /**\n * Defines upload progress. It should be numbered value in range from 0 to 100', where 100 means that file fully loaded.\n */\n progress?: number;\n /**\n * Callback to handle aborted event which fired when a request has been aborted.\n * See {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort_event} for details\n */\n abortXHR?: () => void;\n}\n\nexport interface FileCardProps extends IClickable, IHasCX {\n /** Defines file card item */\n file: FileCardItem;\n /**\n * Defines card width\n * @default '100%'\n */\n width?: number;\n}\n\nexport const FileCard = React.forwardRef<HTMLDivElement, FileCardProps>((props, ref) => {\n const [isLoadingShow, setIsLoadingShow] = React.useState<boolean>(true);\n\n const { file } = props;\n\n const getIcon = (extension: string) => {\n switch (extension) {\n case 'doc':\n case 'docx':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.docIcon } cx={ css.docColor } />;\n case 'xls':\n case 'xlsx':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.exelIcon } cx={ css.xlsColor } />;\n case 'pdf':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.pdfIcon } cx={ css.pdfColor } />;\n case 'gif':\n case 'jpg':\n case 'jpeg':\n case 'svg':\n case 'png':\n case 'webp':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.imgIcon } cx={ css.imgColor } />;\n case 'avi':\n case 'mov':\n case 'mp4':\n case 'wmw':\n case 'mkv':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.videoIcon } cx={ css.movColor } />;\n case 'csv':\n case 'xml':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.tableIcon } cx={ css.defaultColor } />;\n case 'rtf':\n case 'txt':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.textIcon } cx={ css.defaultColor } />;\n case 'eml':\n case 'emlx':\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.mailIcon } cx={ css.defaultColor } />;\n default:\n return <IconContainer size={ 24 } icon={ settings.fileCard.icons.fileIcon } cx={ css.defaultColor } />;\n }\n };\n\n const {\n cx: componentCx,\n width,\n file: {\n progress, size, name, extension, error, abortXHR,\n },\n onClick,\n } = props;\n const fileExtension = extension || name?.split('.').pop();\n const fileName = name?.split('.').slice(0, -1).join('');\n const isLoading = progress < 100;\n const isCrossShow = ((!isLoadingShow && isLoading) || !isLoading) && onClick;\n\n const mouseLeaveHandler = (e: React.MouseEvent) => {\n e.stopPropagation();\n setIsLoadingShow(() => true);\n };\n\n const mouseEnterHandler = (e: React.MouseEvent) => {\n e.stopPropagation();\n setIsLoadingShow(() => false);\n };\n\n const renderErrorContent = () => (\n <Tooltip\n content={ file.error.message }\n placement=\"bottom-start\"\n >\n <div\n className={ css.errorBlock }\n aria-description={ file.error.message }\n aria-label=\"File Upload Error\"\n >\n <IconContainer icon={ settings.fileCard.icons.errorIcon } size={ 12 } />\n {i18n.fileCard.failedUploadErrorMessage}\n </div>\n </Tooltip>\n );\n\n const renderSuccessfulContent = () => (\n <Text size=\"none\" fontSize=\"14\" lineHeight=\"18\" color=\"tertiary\">\n {fileExtension && `${fileExtension.toUpperCase()}, `}\n {isLoading && formatBytes((size / 100) * progress, 2, false) + i18n.fileCard.fileSizeProgress}\n {formatBytes(size)}\n </Text>\n );\n\n const removeHandler = () => {\n progress && progress < 100 && abortXHR();\n onClick();\n };\n\n return (\n <FlexCell\n ref={ ref }\n cx={ cx(css.root, 'uui-file_card', (isLoading || error?.isError) && uuiMod.loading, componentCx, error?.isError && uuiMod.error) }\n minWidth={ width }\n width={ !width ? '100%' : undefined }\n >\n <FlexRow alignItems=\"top\" columnGap=\"6\">\n {fileExtension && getIcon(fileExtension)}\n <FlexCell width=\"100%\">\n <Text size=\"none\" fontSize=\"14\" lineHeight=\"18\" color={ (progress < 100 || error?.isError) ? 'tertiary' : 'primary' } cx={ css.fileName }>\n {fileName}\n </Text>\n {error?.isError ? renderErrorContent() : renderSuccessfulContent()}\n </FlexCell>\n <div className={ cx(css.iconsBlock) } onMouseEnter={ mouseEnterHandler } onMouseLeave={ mouseLeaveHandler }>\n {isLoadingShow && isLoading && <SvgCircleProgress progress={ progress } size={ 18 } />}\n {isCrossShow && <IconButton icon={ settings.fileCard.icons.closeIcon } onClick={ removeHandler } />}\n </div>\n </FlexRow>\n </FlexCell>\n );\n});\n","import { ApiRecoveryReason } from '@epam/uui-core';\nimport { i18n } from '../../i18n';\n\nexport const getRecoveryMessageConfig: () => Record<ApiRecoveryReason, { title: string; subtitle: string }> = () => ({\n 'auth-lost': i18n.errorHandler.recoveryMessageConfig['auth-lost'],\n 'connection-lost': i18n.errorHandler.recoveryMessageConfig['connection-lost'],\n maintenance: i18n.errorHandler.recoveryMessageConfig.maintenance,\n 'server-overload': i18n.errorHandler.recoveryMessageConfig['server-overload'],\n 'abort-signal': { title: 'abort signal', subtitle: 'abort signal' },\n});\n\nexport const getErrorPageConfig = () => ({\n notFound: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/404.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/404.svg',\n title: i18n.errorHandler.errorPageConfig.notFound.title,\n subtitle: i18n.errorHandler.errorPageConfig.notFound.subtitle,\n },\n permissionDenied: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/403.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/403.svg',\n title: i18n.errorHandler.errorPageConfig.permissionDenied.title,\n subtitle: i18n.errorHandler.errorPageConfig.permissionDenied.subtitle,\n },\n serverError: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/500.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/500.svg',\n title: i18n.errorHandler.errorPageConfig.serverError.title,\n subtitle: i18n.errorHandler.errorPageConfig.serverError.subtitle,\n supportLink: i18n.errorHandler.supportMessage,\n },\n serviceUnavailable: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/503.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/503.svg',\n title: i18n.errorHandler.errorPageConfig.serviceUnavailable.title,\n subtitle: i18n.errorHandler.errorPageConfig.serviceUnavailable.subtitle,\n supportLink: i18n.errorHandler.supportMessage,\n },\n default: {\n imageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/Something went wrong.svg',\n mobileImageUrl: 'https://static.cdn.epam.com/uploads/690afa39a93c88c4dd13758fe1d869d5/EPM-UUI/error-pages-2025/Something went wrong.svg',\n title: i18n.errorHandler.errorPageConfig.default.title,\n subtitle: i18n.errorHandler.errorPageConfig.default.subtitle,\n supportLink: i18n.errorHandler.supportMessage,\n },\n});\n","import React from 'react';\nimport { IHasCX, isMobile, cx, ErrorPageInfo } from '@epam/uui-core';\nimport css from './ErrorPage.module.scss';\n\ninterface ErrorPageProps extends ErrorPageInfo, IHasCX {}\n\nexport const ErrorPage: React.FC<ErrorPageProps> = (props) => {\n const isMobileScreen = isMobile();\n\n return (\n <div className={ cx(css.container, props.cx) }>\n <div className={ cx('uui-error-content', 'uui-typography') }>\n <img className=\"uui-error-image\" src={ isMobileScreen && props.mobileImageUrl ? props.mobileImageUrl : props.imageUrl } alt=\"ERROR OCCURRED!\" />\n <div className=\"uui-error-title\">{props.title}</div>\n <div className=\"uui-error-subtitle\">{props.subtitle}</div>\n { props?.supportLink && <div className=\"uui-error-support-link\">{props?.supportLink}</div> }\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport type { ApiCallInfo, IHasCX, INotification, UuiRecoveryErrorInfo, IHasChildren, ErrorPageInfo } from '@epam/uui-core';\nimport { useUuiContext, useUuiError, UuiError } from '@epam/uui-core';\nimport { ErrorCatch } from '@epam/uui-components';\nimport { FlexCell, FlexRow } from '../layout';\nimport { ModalWindow, ModalBlocker, ModalHeader, ErrorNotification } from '../overlays';\nimport { Anchor } from '../navigation';\nimport { Spinner } from '../widgets';\nimport { Text, RichTextView } from '../typography';\nimport { getErrorPageConfig, getRecoveryMessageConfig } from './config';\nimport { ErrorPage } from './ErrorPage';\n\nimport css from './ErrorHandler.module.scss';\n\nexport interface ErrorHandlerProps extends IHasCX, IHasChildren {\n /** Pure function to get error info for display based on error.\n * If omitted, error info from default config will be used.\n */\n getErrorInfo?: (uuiError: UuiError | Error | ApiCallInfo, defaultErrorInfo: ErrorPageInfo) => ErrorPageInfo;\n /** Callback to handle notification error.\n * If omitted, default implementation with ErrorNotification will be used.\n * */\n onNotificationError?: (errors: ApiCallInfo) => void;\n}\n\nexport function ErrorHandler(props: ErrorHandlerProps) {\n const { uuiNotifications, uuiModals, uuiApi } = useUuiContext();\n const { errorType, errorInfo } = useUuiError({\n getErrorInfo: props.getErrorInfo,\n options: { errorConfig: getErrorPageConfig(), recoveryConfig: getRecoveryMessageConfig() },\n });\n const isAuthLost = uuiApi.recoveryReason === 'auth-lost';\n\n const showNotifications = (errors: ApiCallInfo[]) => {\n errors.forEach((c) => {\n if (props.onNotificationError) {\n props.onNotificationError(c);\n } else {\n uuiNotifications.show((notificationProps: INotification) => (\n <ErrorNotification { ...notificationProps }>\n <Text>\n {c.responseData && c.responseData.errorMessage}\n </Text>\n </ErrorNotification>\n ));\n }\n c.dismissError();\n });\n };\n\n const renderRecoveryBlocker = (errorInform: UuiRecoveryErrorInfo) => {\n const { title, subtitle } = errorInform;\n\n return (\n <ModalBlocker key=\"recovery-blocker\" cx={ css.modalBlocker } isActive={ true } zIndex={ 100500 } success={ () => {} } abort={ () => {} }>\n <ModalWindow>\n <ModalHeader borderBottom title={ title } />\n <Spinner cx={ css.recoverySpinner } />\n <FlexRow cx={ css.recoveryMessage }>\n <FlexCell grow={ 1 }>\n <RichTextView>{subtitle}</RichTextView>\n { isAuthLost && (\n <Text color=\"tertiary\">\n We have redirected you to the login page, if the page didn't open, please click on this\n { ' ' }\n <Anchor href={ uuiApi.apiReloginPath } target=\"_blank\">\n link\n </Anchor>\n .\n </Text>\n ) }\n </FlexCell>\n </FlexRow>\n </ModalWindow>\n </ModalBlocker>\n );\n };\n\n const renderErrorPage = (errorInform: ErrorPageInfo) => {\n return <ErrorPage cx={ props.cx } { ...errorInform } />;\n };\n\n if (errorType === 'error') {\n uuiModals.closeAll();\n return renderErrorPage(errorInfo as ErrorPageInfo);\n }\n\n if (errorType === 'notification') {\n showNotifications(errorInfo as ApiCallInfo[]);\n }\n\n return (\n <ErrorCatch>\n {props.children}\n {errorType === 'recovery' && renderRecoveryBlocker(errorInfo as UuiRecoveryErrorInfo)}\n </ErrorCatch>\n );\n}\n"],"names":["_path","_extends","ForwardRef","_path2","css","uuiSpinner","uuiBlocker","DropdownIcon","CrossIcon","FillInfoIcon","SuccessIcon","WarningIcon","ErrorIcon","CheckIcon","PartlySelectIcon","React","EmptyTableIcon","ConfigIcon","AscSortIcon","DescSortIcon","DefaultSortIcon","FilterIcon","OpenedDropdownIcon","FoldIcon","UnfoldIcon","DragIndicatorIcon","LockIcon","PinLeftIcon","PinRightIcon","RightArrowIcon","MenuIcon","ResetIcon","LeftArrowIcon","CalendarIcon","DocIcon","ExelIcon","PdfIcon","ImgIcon","VideoIcon","TableIcon","TextIcon","MailIcon","FileIcon","AddIcon","RemoveIcon","InfoIcon","HintIcon","BoldSelectIcon","NotFoundSearchIcon","CopyIcon","CopyLinkIcon","DiscardChangesIcon","RenameIcon","SaveAsNewIcon","DotIcon","FilledStarIcon","SearchIcon","cx","uuiAvatarStack","UuiPaginator","uui","uuiRadioInput","DEFAULT_MODE","uuiTextInput","uuiControlGroup","uuiNumericInput","types.EditMode","uuiTextArea","TREE_SHAKEABLE_INIT","ArrowIcon","NumericInput","TextInput","Dropdown","uuiInputAddon","uuiSlider","uuiDropdown","Text","Anchor","uuiFlexCell","uuiModalBlocker","uuiModalWindow","uuiI18n","UuiSnackbar","uuiCalendar","defaultMode","CancelIcon","FlexCell","UuiPickerToggler","UuiDataTableCell","uuiDataTableRow","UuiDataTableHeaderCell","uuiDataTableHeaderRow","i18n","Accordion","uuiBurger","BurgerIcon","Button","SvgTriangle","LensIcon","GlobalMenuIcon","FoldingArrow","uuiAnchor","UuiForm","uuiUseForm","ShapeIcon","UuiDropSpot"],"mappings":"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"}
|