@expressms/smartapp-ui 3.0.0-alpha.99 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/build/main/assets/icons/chevron.svg +3 -0
- package/build/main/assets/icons/close-modal.svg +1 -1
- package/build/main/assets/icons/copy.svg +3 -0
- package/build/main/assets/icons/department.svg +3 -0
- package/build/main/assets/icons/doc-small.svg +5 -5
- package/build/main/assets/icons/download.svg +3 -0
- package/build/main/assets/icons/file-small.svg +5 -5
- package/build/main/assets/icons/file.svg +1 -1
- package/build/main/assets/icons/image-no-preview-small.svg +11 -0
- package/build/main/assets/icons/image-no-preview.svg +11 -0
- package/build/main/assets/icons/job-position.svg +3 -0
- package/build/main/assets/icons/mail.svg +2 -2
- package/build/main/assets/icons/notification-close.svg +1 -1
- package/build/main/assets/icons/notification-error.svg +5 -0
- package/build/main/assets/icons/notification-info-filled.svg +1 -1
- package/build/main/assets/icons/office.svg +3 -0
- package/build/main/assets/icons/pdf-small.svg +5 -5
- package/build/main/assets/icons/ppt-small.svg +5 -5
- package/build/main/assets/icons/private.svg +4 -11
- package/build/main/assets/icons/remove.svg +3 -0
- package/build/main/assets/icons/search.svg +1 -1
- package/build/main/assets/icons/server.svg +3 -0
- package/build/main/assets/icons/txt-small.svg +5 -5
- package/build/main/assets/icons/video-no-preview-small.svg +11 -0
- package/build/main/assets/icons/video-no-preview.svg +11 -0
- package/build/main/assets/icons/xls-small.svg +5 -5
- package/build/main/assets/storybook/index.d.ts +2 -0
- package/build/main/assets/storybook/index.js +2 -0
- package/build/main/assets/storybook/index.js.map +1 -1
- package/build/main/constants/constants.d.ts +20 -7
- package/build/main/constants/constants.js +21 -4
- package/build/main/constants/constants.js.map +1 -1
- package/build/main/constants/types.d.ts +5 -2
- package/build/main/helpers/fontScale.d.ts +3 -0
- package/build/main/helpers/fontScale.js +15 -0
- package/build/main/helpers/fontScale.js.map +1 -0
- package/build/main/helpers/index.d.ts +11 -10
- package/build/main/helpers/index.js +24 -6
- package/build/main/helpers/index.js.map +1 -1
- package/build/main/hooks/useCharHintDisplay.d.ts +2 -1
- package/build/main/hooks/useCharHintDisplay.js +28 -6
- package/build/main/hooks/useCharHintDisplay.js.map +1 -1
- package/build/main/hooks/useFontScale.d.ts +1 -0
- package/build/main/hooks/useFontScale.js +29 -0
- package/build/main/hooks/useFontScale.js.map +1 -0
- package/build/main/hooks/useMobileLongTap.d.ts +1 -1
- package/build/main/hooks/useMobileLongTap.js +12 -2
- package/build/main/hooks/useMobileLongTap.js.map +1 -1
- package/build/main/hooks/useModal.d.ts +6 -5
- package/build/main/hooks/useModal.js +79 -25
- package/build/main/hooks/useModal.js.map +1 -1
- package/build/main/index.d.ts +2 -2
- package/build/main/index.js +2 -2
- package/build/main/index.js.map +1 -1
- package/build/main/styles/styles.scss +2 -2
- package/build/main//321/201omponents/ActionModal/ActionModal.d.ts +2 -1
- package/build/main//321/201omponents/ActionModal/ActionModal.js +4 -1
- package/build/main//321/201omponents/ActionModal/ActionModal.js.map +1 -1
- package/build/main//321/201omponents/AttachedFile/AttachedFile.d.ts +2 -1
- package/build/main//321/201omponents/AttachedFile/AttachedFile.js +81 -26
- package/build/main//321/201omponents/AttachedFile/AttachedFile.js.map +1 -1
- package/build/main//321/201omponents/AttachedFile/types.d.ts +1 -0
- package/build/main//321/201omponents/Avatar/Avatar.d.ts +1 -1
- package/build/main//321/201omponents/Avatar/Avatar.js +16 -13
- package/build/main//321/201omponents/Avatar/Avatar.js.map +1 -1
- package/build/main//321/201omponents/Avatar/types.d.ts +5 -2
- package/build/main//321/201omponents/Avatar/types.js +5 -2
- package/build/main//321/201omponents/Avatar/types.js.map +1 -1
- package/build/main//321/201omponents/Button/Button.d.ts +2 -1
- package/build/main//321/201omponents/Button/Button.js +9 -9
- package/build/main//321/201omponents/Button/Button.js.map +1 -1
- package/build/main//321/201omponents/Button/types.d.ts +1 -0
- package/build/main//321/201omponents/CachedImage/CachedImage.d.ts +2 -1
- package/build/main//321/201omponents/Calendar/Calendar.d.ts +14 -1
- package/build/main//321/201omponents/Calendar/Calendar.js +179 -33
- package/build/main//321/201omponents/Calendar/Calendar.js.map +1 -1
- package/build/main//321/201omponents/Calendar/types.d.ts +5 -1
- package/build/main//321/201omponents/Charts/ChartBar/ChartBar.d.ts +2 -1
- package/build/main//321/201omponents/Charts/ChartBar/ChartBar.js +7 -5
- package/build/main//321/201omponents/Charts/ChartBar/ChartBar.js.map +1 -1
- package/build/main//321/201omponents/Charts/ChartLegend/ChartLegend.d.ts +2 -1
- package/build/main//321/201omponents/Charts/ChartLine/ChartLine.d.ts +2 -1
- package/build/main//321/201omponents/Charts/ChartLine/ChartLine.js +10 -7
- package/build/main//321/201omponents/Charts/ChartLine/ChartLine.js.map +1 -1
- package/build/main//321/201omponents/Charts/ChartPie/ChartPie.d.ts +2 -1
- package/build/main//321/201omponents/Charts/ChartPie/ChartPie.js +7 -5
- package/build/main//321/201omponents/Charts/ChartPie/ChartPie.js.map +1 -1
- package/build/main//321/201omponents/Charts/constants.d.ts +1 -1
- package/build/main//321/201omponents/Charts/constants.js +4 -3
- package/build/main//321/201omponents/Charts/constants.js.map +1 -1
- package/build/main//321/201omponents/Charts/helpers.d.ts +1 -1
- package/build/main//321/201omponents/Charts/helpers.js +3 -2
- package/build/main//321/201omponents/Charts/helpers.js.map +1 -1
- package/build/main//321/201omponents/Checkbox/Checkbox.d.ts +2 -1
- package/build/main//321/201omponents/Chip/Chip.d.ts +1 -1
- package/build/main//321/201omponents/Chip/Chip.js +67 -28
- package/build/main//321/201omponents/Chip/Chip.js.map +1 -1
- package/build/main//321/201omponents/Chip/types.d.ts +4 -0
- package/build/main//321/201omponents/ChipDndContext/ChipDndContext.d.ts +2 -2
- package/build/main//321/201omponents/ConfirmationModal/ConfirmationModal.d.ts +2 -1
- package/build/main//321/201omponents/ConfirmationModal/ConfirmationModal.js +3 -0
- package/build/main//321/201omponents/ConfirmationModal/ConfirmationModal.js.map +1 -1
- package/build/main//321/201omponents/ContextMenu/ContextMenu.d.ts +2 -1
- package/build/main//321/201omponents/ContextMenu/ContextMenu.js +13 -12
- package/build/main//321/201omponents/ContextMenu/ContextMenu.js.map +1 -1
- package/build/main//321/201omponents/ContextMenu/types.d.ts +6 -1
- package/build/main//321/201omponents/ContextMenuItem/ContextMenuItem.d.ts +2 -1
- package/build/main//321/201omponents/ContextMenuItem/ContextMenuItem.js +9 -7
- package/build/main//321/201omponents/ContextMenuItem/ContextMenuItem.js.map +1 -1
- package/build/main//321/201omponents/ContextMenuItem/types.d.ts +5 -1
- package/build/main//321/201omponents/CustomSelect/CustomSelect.d.ts +1 -1
- package/build/main//321/201omponents/CustomSelect/CustomSelect.js +51 -19
- package/build/main//321/201omponents/CustomSelect/CustomSelect.js.map +1 -1
- package/build/main//321/201omponents/CustomSelect/selectStyles.d.ts +1 -1
- package/build/main//321/201omponents/CustomSelect/selectStyles.js +24 -15
- package/build/main//321/201omponents/CustomSelect/selectStyles.js.map +1 -1
- package/build/main//321/201omponents/CustomSelect/types.d.ts +15 -4
- package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.d.ts +2 -1
- package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.js +7 -7
- package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.js.map +1 -1
- package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.d.ts +2 -1
- package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.js +9 -5
- package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.js.map +1 -1
- package/build/main//321/201omponents/CustomSelectProfiles/types.d.ts +2 -0
- package/build/main//321/201omponents/DragAndDrop/DragAndDrop.d.ts +2 -1
- package/build/main//321/201omponents/DragAndDrop/DragAndDrop.js +2 -2
- package/build/main//321/201omponents/DragAndDrop/DragAndDrop.js.map +1 -1
- package/build/main//321/201omponents/DraggablePopup/DraggablePopup.d.ts +2 -1
- package/build/main//321/201omponents/DraggablePopup/DraggablePopup.js +15 -12
- package/build/main//321/201omponents/DraggablePopup/DraggablePopup.js.map +1 -1
- package/build/main//321/201omponents/DraggablePopup/types.d.ts +2 -0
- package/build/main//321/201omponents/Error/Error.d.ts +2 -1
- package/build/main//321/201omponents/Flex/Flex.d.ts +2 -1
- package/build/main//321/201omponents/Flex/HFlex/HFlex.d.ts +2 -1
- package/build/main//321/201omponents/Flex/VFlex/VFlex.d.ts +2 -1
- package/build/main//321/201omponents/Header/Header.d.ts +2 -1
- package/build/main//321/201omponents/Input/Input.d.ts +2 -1
- package/build/main//321/201omponents/Input/Input.js +53 -22
- package/build/main//321/201omponents/Input/Input.js.map +1 -1
- package/build/main//321/201omponents/Input/types.d.ts +3 -0
- package/build/main//321/201omponents/ListItem/ListItem.d.ts +2 -1
- package/build/main//321/201omponents/ListItem/ListItem.js +7 -5
- package/build/main//321/201omponents/ListItem/ListItem.js.map +1 -1
- package/build/main//321/201omponents/ListItem/types.d.ts +3 -2
- package/build/main//321/201omponents/Loader/Loader.d.ts +2 -1
- package/build/main//321/201omponents/Loader/Loader.js +3 -3
- package/build/main//321/201omponents/Loader/Loader.js.map +1 -1
- package/build/main//321/201omponents/Modal/Modal.d.ts +2 -1
- package/build/main//321/201omponents/Modal/Modal.js +191 -111
- package/build/main//321/201omponents/Modal/Modal.js.map +1 -1
- package/build/main//321/201omponents/Modal/types.d.ts +14 -3
- package/build/main//321/201omponents/Notification/Notification.d.ts +3 -4
- package/build/main//321/201omponents/Notification/Notification.js +36 -70
- package/build/main//321/201omponents/Notification/Notification.js.map +1 -1
- package/build/main//321/201omponents/Notification/constants.d.ts +34 -0
- package/build/main//321/201omponents/Notification/constants.js +59 -0
- package/build/main//321/201omponents/Notification/constants.js.map +1 -0
- package/build/main//321/201omponents/Notification/types.d.ts +22 -17
- package/build/main//321/201omponents/ProgressBar/ProgressBar.d.ts +2 -1
- package/build/main//321/201omponents/RadioButton/RadioButton.d.ts +2 -1
- package/build/main//321/201omponents/ScrollBar/ScrollBar.d.ts +2 -1
- package/build/main//321/201omponents/ScrollBar/ScrollBar.js +2 -2
- package/build/main//321/201omponents/ScrollBar/ScrollBar.js.map +1 -1
- package/build/main//321/201omponents/Skeleton/Skeleton.d.ts +2 -1
- package/build/main//321/201omponents/Skeleton/Skeleton.js +1 -1
- package/build/main//321/201omponents/Skeleton/Skeleton.js.map +1 -1
- package/build/main//321/201omponents/Stories/Stories.d.ts +2 -1
- package/build/main//321/201omponents/Stories/Stories.js +4 -4
- package/build/main//321/201omponents/Stories/Stories.js.map +1 -1
- package/build/main//321/201omponents/SyncLoader/SyncLoader.d.ts +2 -1
- package/build/main//321/201omponents/Textarea/Textarea.d.ts +2 -1
- package/build/main//321/201omponents/Textarea/Textarea.js +2 -2
- package/build/main//321/201omponents/Textarea/Textarea.js.map +1 -1
- package/build/main//321/201omponents/Textarea/types.d.ts +2 -2
- package/build/main//321/201omponents/Toggle/Toggle.d.ts +2 -1
- package/build/main//321/201omponents/UserDropdown/ContactBottomSheet/ContactBottomSheet.d.ts +2 -1
- package/build/main//321/201omponents/UserDropdown/ContactBottomSheet/ContactBottomSheet.js +12 -3
- package/build/main//321/201omponents/UserDropdown/ContactBottomSheet/ContactBottomSheet.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/ContactInfo/ContactInfo.d.ts +2 -1
- package/build/main//321/201omponents/UserDropdown/ContactInfo/ContactInfo.js +34 -13
- package/build/main//321/201omponents/UserDropdown/ContactInfo/ContactInfo.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/LoadingMessage/LoadingMessage.d.ts +2 -1
- package/build/main//321/201omponents/UserDropdown/MenuList/MenuList.d.ts +2 -1
- package/build/main//321/201omponents/UserDropdown/MenuList/MenuList.js +20 -15
- package/build/main//321/201omponents/UserDropdown/MenuList/MenuList.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/MultiValueLabel/MultiValueLabel.d.ts +1 -1
- package/build/main//321/201omponents/UserDropdown/MultiValueLabel/MultiValueLabel.js +5 -5
- package/build/main//321/201omponents/UserDropdown/MultiValueLabel/MultiValueLabel.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/Option/Option.d.ts +2 -1
- package/build/main//321/201omponents/UserDropdown/Option/Option.js +18 -13
- package/build/main//321/201omponents/UserDropdown/Option/Option.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/SearchInCatalogButton/SearchInCatalogButton.d.ts +2 -1
- package/build/main//321/201omponents/UserDropdown/SearchInCatalogButton/SearchInCatalogButton.js +6 -9
- package/build/main//321/201omponents/UserDropdown/SearchInCatalogButton/SearchInCatalogButton.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/UserDropdown.d.ts +1 -2
- package/build/main//321/201omponents/UserDropdown/UserDropdown.js +150 -275
- package/build/main//321/201omponents/UserDropdown/UserDropdown.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/components/Delimiter.d.ts +9 -0
- package/build/main//321/201omponents/UserDropdown/components/Delimiter.js +10 -0
- package/build/main//321/201omponents/UserDropdown/components/Delimiter.js.map +1 -0
- package/build/main//321/201omponents/UserDropdown/components/Hint.d.ts +6 -0
- package/build/main//321/201omponents/UserDropdown/components/Hint.js +21 -0
- package/build/main//321/201omponents/UserDropdown/components/Hint.js.map +1 -0
- package/build/main//321/201omponents/UserDropdown/components/Input.d.ts +3 -0
- package/build/main//321/201omponents/UserDropdown/components/Input.js +32 -0
- package/build/main//321/201omponents/UserDropdown/components/Input.js.map +1 -0
- package/build/main//321/201omponents/UserDropdown/components/Mask.d.ts +8 -0
- package/build/main//321/201omponents/UserDropdown/components/Mask.js +19 -0
- package/build/main//321/201omponents/UserDropdown/components/Mask.js.map +1 -0
- package/build/main//321/201omponents/UserDropdown/components/Title.d.ts +6 -0
- package/build/main//321/201omponents/UserDropdown/components/Title.js +18 -0
- package/build/main//321/201omponents/UserDropdown/components/Title.js.map +1 -0
- package/build/main//321/201omponents/UserDropdown/constants.d.ts +57 -0
- package/build/main//321/201omponents/UserDropdown/constants.js +73 -0
- package/build/main//321/201omponents/UserDropdown/constants.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/helpers.d.ts +84 -41
- package/build/main//321/201omponents/UserDropdown/helpers.js +184 -14
- package/build/main//321/201omponents/UserDropdown/helpers.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/selectStyles.d.ts +1 -1
- package/build/main//321/201omponents/UserDropdown/selectStyles.js +45 -20
- package/build/main//321/201omponents/UserDropdown/selectStyles.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/types.d.ts +123 -69
- package/build/main//321/201omponents/UserDropdown/types.js +1 -8
- package/build/main//321/201omponents/UserDropdown/types.js.map +1 -1
- package/package.json +5 -5
- package/build/main/assets/icons/logout.svg +0 -4
- package/build/main/assets/icons/plus.svg +0 -4
- package/build/main/assets/icons/unread-mails.svg +0 -4
- package/build/main//321/201omponents/Profile/Profile.d.ts +0 -4
- package/build/main//321/201omponents/Profile/Profile.js +0 -42
- package/build/main//321/201omponents/Profile/Profile.js.map +0 -1
- package/build/main//321/201omponents/Profile/index.d.ts +0 -1
- package/build/main//321/201omponents/Profile/index.js +0 -2
- package/build/main//321/201omponents/Profile/index.js.map +0 -1
- package/build/main//321/201omponents/Profile/types.d.ts +0 -14
- package/build/main//321/201omponents/Profile/types.js +0 -2
- package/build/main//321/201omponents/Profile/types.js.map +0 -1
- package/build/main//321/201omponents/Switcher/Switcher.d.ts +0 -4
- package/build/main//321/201omponents/Switcher/Switcher.js +0 -34
- package/build/main//321/201omponents/Switcher/Switcher.js.map +0 -1
- package/build/main//321/201omponents/Switcher/index.d.ts +0 -1
- package/build/main//321/201omponents/Switcher/index.js +0 -2
- package/build/main//321/201omponents/Switcher/index.js.map +0 -1
- package/build/main//321/201omponents/Switcher/types.d.ts +0 -8
- package/build/main//321/201omponents/Switcher/types.js +0 -2
- package/build/main//321/201omponents/Switcher/types.js.map +0 -1
|
@@ -23,9 +23,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
23
23
|
import { memo, useCallback, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
24
24
|
import Select, { components } from 'react-select';
|
|
25
25
|
import classNames from 'classnames';
|
|
26
|
-
import {
|
|
27
|
-
import { debounce, includes, isEmpty, isNil, isNull, isString, omit, uniq, uniqBy } from 'lodash';
|
|
28
|
-
import { transliterate as tr } from 'transliteration';
|
|
26
|
+
import { debounce, includes, isArray, isEmpty, isNil, isNull, omit, pick, uniqBy } from 'lodash';
|
|
29
27
|
import { useDroppable } from '@dnd-kit/core';
|
|
30
28
|
import { useCharHintDisplay } from '../../hooks/useCharHintDisplay';
|
|
31
29
|
import Modal from '../Modal';
|
|
@@ -36,89 +34,36 @@ import MultiValueLabel from './MultiValueLabel/MultiValueLabel';
|
|
|
36
34
|
import Option from './Option/Option';
|
|
37
35
|
import SearchInCatalogButton from './SearchInCatalogButton/SearchInCatalogButton';
|
|
38
36
|
import selectStyles from './selectStyles';
|
|
39
|
-
import
|
|
40
|
-
import
|
|
41
|
-
import
|
|
42
|
-
import
|
|
37
|
+
import Delimiter from './components/Delimiter';
|
|
38
|
+
import Hint from './components/Hint';
|
|
39
|
+
import Input from './components/Input';
|
|
40
|
+
import Mask from './components/Mask';
|
|
41
|
+
import Title from './components/Title';
|
|
42
|
+
import { checkIfContactTypeIsGroup, checkIsIosPlatform, checkIsMobilePlatform, generateFontFamilyStyle, generateId } from '../../helpers';
|
|
43
|
+
import { DropdownIndicator, IndicatorSeparator, LoadingIndicator, MultiValueRemove, applyFilteringToOption, calculateHorizontalPadding, checkIsValueIsEmail, collapseChips, extractInputEmails, generateContactsOptionsToSelect, generateCorporateOptionsToSelect, generateEnteredByUserOption, retrieveChipsElements, retrieveFilteredContacts, setCaretInEmptyInput, setCaretPosition, transformSelectedEntity, transformSelectedUsers, unCollapseChips, } from './helpers';
|
|
44
|
+
import { BACKSPACE_KEY, DEFAULT_INPUT_PADDING, EMAIL_FIELD, EMPTY_STRING, ENTER_KEY, EVENT_LISTENER_TYPES, FULL_HEIGHT_BOTTOM_SHEET_TOP_MARGIN, LANGUAGES, LAYOUT_TYPE, MENU_POSITIONS, MIN_INPUT_SYMBOLS, PLATFORM, RENDER_DELAY, SEARCH_PLACEHOLDER, SPACE, SPACE_KEY, } from '../../constants';
|
|
45
|
+
import { CLEAR_USER_TYPING_TIMEOUT, COMMON_FIELDS_TO_OMIT, COMMON_FIELDS_TO_PICK, DEFAULT_MAX_ROWS_COUNT_TO_COLLAPSE_CHIPS, DEFAULT_MENU_LIST_MAX_HEIGHT, EMAIL_SEPARATORS, INPUT_ACTIONS, MENU_ACTIONS, PADDING_WITH_CLEAR_ICON, USER_TYPING_TIMEOUT, } from './constants';
|
|
43
46
|
import '../../styles/styles.scss';
|
|
44
|
-
var
|
|
45
|
-
var TWO_DIGIT_NUMBER_WIDTH = 40;
|
|
46
|
-
var SINGLE_DIGIT_NUMBER_WIDTH = 32;
|
|
47
|
-
var INPUT_SPACE_WIDTH = 46;
|
|
48
|
-
var GAP = 8;
|
|
49
|
-
var USER_TYPING_TIMEOUT = 1000;
|
|
50
|
-
var CLEAR_USER_TYPING_TIMEOUT = 500;
|
|
51
|
-
var INPUT = 'input';
|
|
52
|
-
var EMPTY_STRING = '';
|
|
53
|
-
var BUBBLES = { bubbles: true };
|
|
54
|
-
var PADDING_WITH_CLEAR_ICON = '40px';
|
|
55
|
-
export var DEFAULT_MENU_LIST_MAX_HEIGHT = 220;
|
|
56
|
-
var dispatchInputEvent = function (input) { return input.dispatchEvent(new Event(INPUT, BUBBLES)); };
|
|
57
|
-
var setCaretPosition = function (input, position) { return input.setSelectionRange(position, position); };
|
|
58
|
-
var setCaretInEmptyInput = function (input) {
|
|
59
|
-
input.value = SPACE;
|
|
60
|
-
dispatchInputEvent(input);
|
|
61
|
-
setTimeout(function () {
|
|
62
|
-
input.value = EMPTY_STRING;
|
|
63
|
-
dispatchInputEvent(input);
|
|
64
|
-
setCaretPosition(input, 0);
|
|
65
|
-
}, 0);
|
|
66
|
-
};
|
|
67
|
-
var MENU_ACTIONS;
|
|
68
|
-
(function (MENU_ACTIONS) {
|
|
69
|
-
MENU_ACTIONS["close"] = "menu-close";
|
|
70
|
-
})(MENU_ACTIONS || (MENU_ACTIONS = {}));
|
|
71
|
-
var INPUT_ACTIONS;
|
|
72
|
-
(function (INPUT_ACTIONS) {
|
|
73
|
-
INPUT_ACTIONS["change"] = "input-change";
|
|
74
|
-
INPUT_ACTIONS["blur"] = "input-blur";
|
|
75
|
-
})(INPUT_ACTIONS || (INPUT_ACTIONS = {}));
|
|
76
|
-
var EMAIL_SEPARATORS;
|
|
77
|
-
(function (EMAIL_SEPARATORS) {
|
|
78
|
-
EMAIL_SEPARATORS["semicolon"] = ";";
|
|
79
|
-
EMAIL_SEPARATORS["comma"] = ",";
|
|
80
|
-
})(EMAIL_SEPARATORS || (EMAIL_SEPARATORS = {}));
|
|
81
|
-
var EXCLUDED_FIELDS;
|
|
82
|
-
(function (EXCLUDED_FIELDS) {
|
|
83
|
-
EXCLUDED_FIELDS["value"] = "value";
|
|
84
|
-
EXCLUDED_FIELDS["label"] = "label";
|
|
85
|
-
EXCLUDED_FIELDS["layoutType"] = "layoutType";
|
|
86
|
-
EXCLUDED_FIELDS["platform"] = "platform";
|
|
87
|
-
EXCLUDED_FIELDS["language"] = "language";
|
|
88
|
-
EXCLUDED_FIELDS["isEnteredByUser"] = "isEnteredByUser";
|
|
89
|
-
EXCLUDED_FIELDS["isMyContacts"] = "isMyContacts";
|
|
90
|
-
EXCLUDED_FIELDS["isChipsCollapsable"] = "isChipsCollapsable";
|
|
91
|
-
EXCLUDED_FIELDS["isSelectedChipHasTooltip"] = "isSelectedChipHasTooltip";
|
|
92
|
-
EXCLUDED_FIELDS["isInputFocused"] = "isInputFocused";
|
|
93
|
-
EXCLUDED_FIELDS["setIsSearchable"] = "setIsSearchable";
|
|
94
|
-
EXCLUDED_FIELDS["selectRef"] = "selectRef";
|
|
95
|
-
EXCLUDED_FIELDS["setModalData"] = "setModalData";
|
|
96
|
-
EXCLUDED_FIELDS["collapsableChipsCount"] = "collapsableChipsCount";
|
|
97
|
-
EXCLUDED_FIELDS["lastVisibleChipIndex"] = "lastVisibleChipIndex";
|
|
98
|
-
EXCLUDED_FIELDS["fontFamily"] = "fontFamily";
|
|
99
|
-
})(EXCLUDED_FIELDS || (EXCLUDED_FIELDS = {}));
|
|
100
|
-
var COMMON_FIELDS_TO_OMIT = Object.keys(omit(EXCLUDED_FIELDS, [EXCLUDED_FIELDS.language, EXCLUDED_FIELDS.isMyContacts, EXCLUDED_FIELDS.isEnteredByUser]));
|
|
101
|
-
var Input = function (props) {
|
|
102
|
-
var isClearable = props["data-is-clearable"], value = props.value, suffix = props.suffix, suffixRef = props.suffixref, onInputChange = props.selectProps.onInputChange;
|
|
103
|
-
var handleClearInput = function () { return onInputChange(EMPTY_STRING, { action: INPUT_ACTIONS.change, prevInputValue: value }); };
|
|
104
|
-
return (_jsxs(_Fragment, { children: [_jsx(components.Input, __assign({}, props, { enterKeyHint: "done" })), suffix && (_jsx("div", __assign({ ref: suffixRef, className: "smartapp-user-dropdown__suffix" }, { children: suffix }))), isClearable && !isEmpty(value) && (_jsx("div", __assign({ className: "smartapp-user-dropdown__clear-icon", onMouseDown: handleClearInput, onTouchEnd: handleClearInput }, { children: _jsx(ClearIcon, {}) })))] }));
|
|
105
|
-
};
|
|
47
|
+
var generateContactBottomSheetMaxHeight = function () { var _a, _b; return ((_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : window.innerHeight) - FULL_HEIGHT_BOTTOM_SHEET_TOP_MARGIN; };
|
|
106
48
|
var UserDropdown = function (_a) {
|
|
107
|
-
var _b
|
|
108
|
-
var _3 =
|
|
109
|
-
var
|
|
110
|
-
var
|
|
111
|
-
var
|
|
112
|
-
var
|
|
113
|
-
var
|
|
114
|
-
var
|
|
115
|
-
var
|
|
116
|
-
var
|
|
117
|
-
var
|
|
118
|
-
var
|
|
119
|
-
var
|
|
120
|
-
var
|
|
121
|
-
var
|
|
49
|
+
var _b;
|
|
50
|
+
var _c = _a.platform, platform = _c === void 0 ? PLATFORM.web : _c, fontFamily = _a.fontFamily, _d = _a.isDisabled, isDisabled = _d === void 0 ? false : _d, _e = _a.isLoading, isLoading = _e === void 0 ? false : _e, _f = _a.isChipsOutline, isChipsOutline = _f === void 0 ? false : _f, _g = _a.isError, isError = _g === void 0 ? false : _g, _h = _a.isChipsVisible, isChipsVisible = _h === void 0 ? true : _h, _j = _a.isChipsCollapsable, isChipsCollapsable = _j === void 0 ? false : _j, _k = _a.isSelectedChipHasTooltip, isSelectedChipHasTooltip = _k === void 0 ? false : _k, _l = _a.isMenuCloseOnBlur, isMenuCloseOnBlur = _l === void 0 ? true : _l, _m = _a.isMenuCloseOnSelect, isMenuCloseOnSelect = _m === void 0 ? true : _m, _o = _a.isFilteringDisabled, isFilteringDisabled = _o === void 0 ? false : _o, _p = _a.hasNextPage, hasNextPage = _p === void 0 ? false : _p, _q = _a.isNextPageLoading, isNextPageLoading = _q === void 0 ? false : _q, _r = _a.isInputHidden, isInputHidden = _r === void 0 ? false : _r, _s = _a.isBackspaceChipToInput, isBackspaceChipToInput = _s === void 0 ? false : _s, _t = _a.isShowCatalogSearchButton, isShowCatalogSearchButton = _t === void 0 ? false : _t, _u = _a.isDisabledMenuOffsetAtFullscreen, isDisabledMenuOffsetAtFullscreen = _u === void 0 ? false : _u, _v = _a.isDisabledCheckUniqueEmails, isDisabledCheckUniqueEmails = _v === void 0 ? false : _v, _w = _a.isMenuShadowless, isMenuShadowless = _w === void 0 ? false : _w, _x = _a.isStateless, isStateless = _x === void 0 ? false : _x, _y = _a.isSelectedOptionsHidden, isSelectedOptionsHidden = _y === void 0 ? true : _y, _z = _a.isMaskHiddenOnFocus, isMaskHiddenOnFocus = _z === void 0 ? false : _z, _0 = _a.isInputValueClearedOnBlur, isInputValueClearedOnBlur = _0 === void 0 ? false : _0, _1 = _a.isNotClickable, isNotClickable = _1 === void 0 ? false : _1, _2 = _a.isConvertTextToChipOnBlur, isConvertTextToChipOnBlur = _2 === void 0 ? true : _2, _3 = _a.language, language = _3 === void 0 ? LANGUAGES.ru : _3, _4 = _a.layoutType, layoutType = _4 === void 0 ? LAYOUT_TYPE.minimal : _4, externalInputValue = _a.externalInputValue, title = _a.title, contactInfoTitle = _a.contactInfoTitle, mask = _a.mask, suffix = _a.suffix, _5 = _a.placeholder, placeholder = _5 === void 0 ? EMPTY_STRING : _5, focusPlaceholder = _a.focusPlaceholder, hint = _a.hint, onShowCatalogSearchButtonClick = _a.onShowCatalogSearchButtonClick, noOptionsMessage = _a.noOptionsMessage, maxMembersCount = _a.maxMembersCount, skeletonRowsCount = _a.skeletonRowsCount, _6 = _a.maxRowsCountToCollapseChips, maxRowsCountToCollapseChips = _6 === void 0 ? DEFAULT_MAX_ROWS_COUNT_TO_COLLAPSE_CHIPS : _6, _7 = _a.menuListMaxHeight, menuListMaxHeight = _7 === void 0 ? DEFAULT_MENU_LIST_MAX_HEIGHT : _7, _8 = _a.menuShouldScrollIntoView, menuShouldScrollIntoView = _8 === void 0 ? true : _8, _9 = _a.menuPosition, menuPosition = _9 === void 0 ? MENU_POSITIONS.top : _9, menuLocation = _a.menuLocation, menuPortalTarget = _a.menuPortalTarget, _10 = _a.autoFocus, autoFocus = _10 === void 0 ? false : _10, containerClassName = _a.containerClassName, charHintClassName = _a.charHintClassName, noOptionsMessageClassName = _a.noOptionsMessageClassName, containerPadding = _a.containerPadding, containerStyles = _a.containerStyles, selectedEntries = _a.selectedEntries, corporateEntries = _a.corporateEntries, myContactsEntries = _a.myContactsEntries, emailsToExclude = _a.emailsToExclude, _11 = _a.userDropdownId, initialUserDropdownId = _11 === void 0 ? EMPTY_STRING : _11, focusRef = _a.focusRef, onInputChange = _a.onInputChange, onImmediateInputChange = _a.onImmediateInputChange, onChange = _a.onChange, onMenuOpen = _a.onMenuOpen, onMenuClose = _a.onMenuClose, onLoadNextPage = _a.onLoadNextPage, onClickContactInfoCopyEmail = _a.onClickContactInfoCopyEmail, onFocus = _a.onFocus;
|
|
51
|
+
var _12 = useState(initialUserDropdownId), userDropdownId = _12[0], setUserDropdownId = _12[1];
|
|
52
|
+
var _13 = useState([]), selectedUsers = _13[0], setSelectedUsers = _13[1];
|
|
53
|
+
var _14 = useState(EMPTY_STRING), paddingLeft = _14[0], setPaddingLeft = _14[1];
|
|
54
|
+
var _15 = useState(EMPTY_STRING), paddingRight = _15[0], setPaddingRight = _15[1];
|
|
55
|
+
var _16 = useState(0), maskWidth = _16[0], setMaskWidth = _16[1];
|
|
56
|
+
var _17 = useState(0), suffixWidth = _17[0], setSuffixWidth = _17[1];
|
|
57
|
+
var _18 = useState(true), isSearchable = _18[0], setIsSearchable = _18[1];
|
|
58
|
+
var _19 = useState(false), isUserTyping = _19[0], setIsUserTyping = _19[1];
|
|
59
|
+
var _20 = useState(null), modalData = _20[0], setModalData = _20[1];
|
|
60
|
+
var _21 = useState(EMPTY_STRING), chipLabelWithMaxWidth = _21[0], setChipLabelWithMaxWidth = _21[1];
|
|
61
|
+
var _22 = useState(EMPTY_STRING), inputValue = _22[0], setInputValue = _22[1];
|
|
62
|
+
var _23 = useState(placeholder), placeholderValue = _23[0], setPlaceholderValue = _23[1];
|
|
63
|
+
var _24 = useState(false), isDelimiterVisible = _24[0], setIsDelimiterVisible = _24[1];
|
|
64
|
+
var _25 = useState(0), delimiterOffset = _25[0], setDelimiterOffset = _25[1];
|
|
65
|
+
var _26 = useState(false), isFocused = _26[0], setIsFocused = _26[1];
|
|
66
|
+
var _27 = useState(false), isMenuOpen = _27[0], setIsMenuOpen = _27[1];
|
|
122
67
|
var isInputFocused = useRef(false);
|
|
123
68
|
var selectRef = useRef(null);
|
|
124
69
|
var maskRef = useRef(null);
|
|
@@ -130,54 +75,43 @@ var UserDropdown = function (_a) {
|
|
|
130
75
|
var lastVisibleChipIndex = useRef(-1);
|
|
131
76
|
var skipAddUserToChipsOnNextBlurRef = useRef(false);
|
|
132
77
|
var userTypingTimeoutRef = useRef(null);
|
|
78
|
+
var prevIsLoadingRef = useRef(isLoading);
|
|
133
79
|
var selectedUsersLength = selectedUsers.length;
|
|
134
|
-
var
|
|
80
|
+
var _28 = useDroppable({ id: userDropdownId }), setNodeRef = _28.setNodeRef, over = _28.over;
|
|
135
81
|
var overId = (over || {}).id;
|
|
136
82
|
var isDraggable = overId === userDropdownId;
|
|
83
|
+
var isInputPlaceholderVisible = selectedUsersLength === 1 && isEmpty(inputValue) ? ((_b = selectedUsers[0].isNotRemovable) !== null && _b !== void 0 ? _b : false) : false;
|
|
84
|
+
var isMaskVisible = !isEmpty(mask) && (!isMaskHiddenOnFocus || (isEmpty(inputValue) && !isFocused));
|
|
137
85
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
138
86
|
useImperativeHandle(focusRef, function () { return ({ focus: handleFocus, blur: function () { return handleDragBlur(true); } }); }, []);
|
|
139
87
|
var fontFamilyStyle = generateFontFamilyStyle(fontFamily);
|
|
140
88
|
var isCharHintVisible = useCharHintDisplay({ inputValue: inputValue }).isCharHintVisible;
|
|
141
|
-
var
|
|
142
|
-
var regex = new RegExp(/^(([^<>()[\].,;:\s@"]+(\.[^<>()[\].,;:\s@"]+)*)|(".+"))@(([^<>()[\].,;:\s@"]+\.)+[^<>()[\].,;:\s@"]{2,})$/);
|
|
143
|
-
return regex.test(inputValue);
|
|
144
|
-
};
|
|
145
|
-
// TODO: emailsToExclude в массиве зависимостей вызывает бесконечный ререндер при драге
|
|
146
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
147
|
-
var checkIsEmailToExclude = useCallback(function (email) { return includes(emailsToExclude, email); }, []);
|
|
148
|
-
var calculatePaddingLeft = function () {
|
|
149
|
-
var _a, _b;
|
|
150
|
-
var maskWidth = ((_b = (_a = maskRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) === null || _b === void 0 ? void 0 : _b.width) || null;
|
|
151
|
-
maskWidth && setMaskWidth(maskWidth + GAP);
|
|
152
|
-
return "".concat(maskWidth ? maskWidth + MASK_INPUT_PL : DEFAULT_INPUT_PADDING, "px");
|
|
153
|
-
};
|
|
154
|
-
var calculatePaddingRight = function () {
|
|
155
|
-
var _a, _b;
|
|
156
|
-
var suffixWidth = ((_b = (_a = suffixRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) === null || _b === void 0 ? void 0 : _b.width) || null;
|
|
157
|
-
suffixWidth && setSuffixWidth(suffixWidth + GAP);
|
|
158
|
-
return "".concat(suffixWidth ? suffixWidth + SUFFIX_INPUT_PR : DEFAULT_INPUT_PADDING, "px");
|
|
159
|
-
};
|
|
89
|
+
var checkIsEmailToExclude = useCallback(function (email) { return includes(emailsToExclude, email); }, [emailsToExclude]);
|
|
160
90
|
var generateStyles = function () {
|
|
161
91
|
return selectStyles({
|
|
162
92
|
isChipsVisible: isChipsVisible,
|
|
163
93
|
isMaxMembersAdded: maxMembersCount && isChipsVisible ? selectedUsersLength === maxMembersCount : false,
|
|
164
94
|
isDisabled: isDisabled,
|
|
95
|
+
isInputPlaceholderVisible: isInputPlaceholderVisible,
|
|
165
96
|
lastRowNumber: isChipsVisible ? Math.ceil(selectedUsersLength / 2) + 1 : 1,
|
|
166
|
-
paddingLeft: paddingLeft,
|
|
97
|
+
paddingLeft: isMaskVisible || isEmpty(mask) ? paddingLeft : "".concat(DEFAULT_INPUT_PADDING, "px"),
|
|
167
98
|
paddingRight: !isChipsVisible && !isEmpty(inputValue) ? PADDING_WITH_CLEAR_ICON : paddingRight,
|
|
168
99
|
platform: platform,
|
|
169
100
|
layoutType: layoutType,
|
|
170
101
|
isInputHidden: isInputHidden,
|
|
171
102
|
isDisabledMenuOffsetAtFullscreen: isDisabledMenuOffsetAtFullscreen,
|
|
172
103
|
isInputFocused: isInputFocused.current,
|
|
173
|
-
isMaskRepresented:
|
|
104
|
+
isMaskRepresented: isMaskVisible,
|
|
174
105
|
isSuffixRepresented: !isNil(suffix),
|
|
175
106
|
isMenuShadowless: isMenuShadowless,
|
|
107
|
+
isShowCatalogSearchButton: isShowCatalogSearchButton,
|
|
176
108
|
fontFamilyStyle: fontFamilyStyle,
|
|
177
109
|
containerPadding: containerPadding,
|
|
178
110
|
isDraggable: isDraggable,
|
|
179
111
|
isChipsCollapsed: isChipsCollapsable && !isInputFocused.current,
|
|
180
112
|
menuListMaxHeight: menuListMaxHeight,
|
|
113
|
+
maxRowsCountToCollapseChips: maxRowsCountToCollapseChips,
|
|
114
|
+
isError: isError,
|
|
181
115
|
});
|
|
182
116
|
};
|
|
183
117
|
var generateNoOptionsMessage = function (_a) {
|
|
@@ -202,25 +136,13 @@ var UserDropdown = function (_a) {
|
|
|
202
136
|
collapsableChipsCount: collapsableChipsCount,
|
|
203
137
|
lastVisibleChipIndex: lastVisibleChipIndex,
|
|
204
138
|
};
|
|
205
|
-
var
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
});
|
|
212
|
-
var query = ((_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.inputValue) || EMPTY_STRING;
|
|
213
|
-
var sortedCorporateContacts = sortContacts(corporateContacts, query);
|
|
214
|
-
var sortedMyContacts = sortContacts(myContactsEntries || [], query);
|
|
215
|
-
var filteredCorporateContacts = sortedCorporateContacts.filter(function (_a) {
|
|
216
|
-
var email = _a.email, contacts = _a.contacts;
|
|
217
|
-
return [email, contacts[0].contact].every(function (email) { return !checkIsEmailToExclude(email); });
|
|
218
|
-
});
|
|
219
|
-
var filteredMyContacts = sortedMyContacts.filter(function (_a) {
|
|
220
|
-
var email = _a.email;
|
|
221
|
-
return !checkIsEmailToExclude(email);
|
|
222
|
-
});
|
|
223
|
-
return __spreadArray(__spreadArray([], generateCorporateOptionsToSelect(__assign({ options: filteredCorporateContacts }, commonFields)), true), generateContactsOptionsToSelect(__assign({ options: filteredMyContacts }, commonFields)), true);
|
|
139
|
+
var _c = retrieveFilteredContacts({
|
|
140
|
+
query: ((_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.inputValue) || EMPTY_STRING,
|
|
141
|
+
corporateEntries: corporateEntries,
|
|
142
|
+
myContactsEntries: myContactsEntries,
|
|
143
|
+
checkIsEmailToExclude: checkIsEmailToExclude,
|
|
144
|
+
}), filteredCorporateContacts = _c.filteredCorporateContacts, filteredLocalContacts = _c.filteredLocalContacts, filteredMyContacts = _c.filteredMyContacts;
|
|
145
|
+
return __spreadArray(__spreadArray(__spreadArray([], generateCorporateOptionsToSelect(__assign({ options: filteredCorporateContacts }, commonFields)), true), generateContactsOptionsToSelect(__assign({ options: filteredLocalContacts, isLocalContact: true }, commonFields)), true), generateContactsOptionsToSelect(__assign({ options: filteredMyContacts, isMyContacts: true }, commonFields)), true);
|
|
224
146
|
};
|
|
225
147
|
var clearUserTypingTimeout = useCallback(function () {
|
|
226
148
|
var userTypingTimeoutRefCurrent = userTypingTimeoutRef.current;
|
|
@@ -229,6 +151,13 @@ var UserDropdown = function (_a) {
|
|
|
229
151
|
userTypingTimeoutRef.current = null;
|
|
230
152
|
}
|
|
231
153
|
}, []);
|
|
154
|
+
useEffect(function () {
|
|
155
|
+
if (prevIsLoadingRef.current && !isLoading) {
|
|
156
|
+
setIsUserTyping(false);
|
|
157
|
+
clearUserTypingTimeout();
|
|
158
|
+
}
|
|
159
|
+
prevIsLoadingRef.current = isLoading;
|
|
160
|
+
}, [isLoading, clearUserTypingTimeout]);
|
|
232
161
|
var requestInputChangeDebounce = useMemo(function () {
|
|
233
162
|
return debounce(function (inputValue) {
|
|
234
163
|
onInputChange(inputValue);
|
|
@@ -236,6 +165,10 @@ var UserDropdown = function (_a) {
|
|
|
236
165
|
userTypingTimeoutRef.current = setTimeout(function () { return setIsUserTyping(false); }, CLEAR_USER_TYPING_TIMEOUT);
|
|
237
166
|
}, USER_TYPING_TIMEOUT);
|
|
238
167
|
}, [clearUserTypingTimeout, onInputChange]);
|
|
168
|
+
var handleMenuOpen = function () {
|
|
169
|
+
setIsMenuOpen(true);
|
|
170
|
+
onMenuOpen === null || onMenuOpen === void 0 ? void 0 : onMenuOpen();
|
|
171
|
+
};
|
|
239
172
|
var handleMenuClose = function () {
|
|
240
173
|
menuScrollFromTop.current = 0;
|
|
241
174
|
setIsDelimiterVisible(false);
|
|
@@ -247,33 +180,33 @@ var UserDropdown = function (_a) {
|
|
|
247
180
|
var trimPrevInputValue_1 = prevInputValue.trim();
|
|
248
181
|
var isInputBlurAction = action === INPUT_ACTIONS.blur;
|
|
249
182
|
var isMenuCloseAction = action === MENU_ACTIONS.close;
|
|
250
|
-
if (!isInputBlurAction && !isMenuCloseAction)
|
|
183
|
+
if (!isInputBlurAction && !isMenuCloseAction) {
|
|
251
184
|
setInputValue(inputValue);
|
|
252
|
-
|
|
185
|
+
onImmediateInputChange === null || onImmediateInputChange === void 0 ? void 0 : onImmediateInputChange(inputValue);
|
|
186
|
+
}
|
|
187
|
+
if ((isInputBlurAction || isMenuCloseAction) && checkIsValueIsEmail(trimPrevInputValue_1) && isConvertTextToChipOnBlur) {
|
|
253
188
|
var isUserAlreadySelected = selectedUsers.some(function (_a) {
|
|
254
189
|
var email = _a.email;
|
|
255
190
|
return email === trimPrevInputValue_1;
|
|
256
191
|
});
|
|
257
|
-
|
|
192
|
+
var nextInputValue = isUserAlreadySelected || checkIsEmailToExclude(trimPrevInputValue_1) ? trimPrevInputValue_1 : inputValue;
|
|
193
|
+
setInputValue(nextInputValue);
|
|
194
|
+
onImmediateInputChange === null || onImmediateInputChange === void 0 ? void 0 : onImmediateInputChange(nextInputValue);
|
|
258
195
|
}
|
|
259
196
|
}
|
|
260
197
|
if (!isEmpty(inputValue)) {
|
|
261
198
|
clearUserTypingTimeout();
|
|
262
199
|
setIsUserTyping(true);
|
|
263
200
|
}
|
|
264
|
-
onImmediateInputChange === null || onImmediateInputChange === void 0 ? void 0 : onImmediateInputChange(inputValue);
|
|
265
201
|
inputValue.length >= MIN_INPUT_SYMBOLS && requestInputChangeDebounce(inputValue);
|
|
266
|
-
}, [
|
|
267
|
-
var
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
};
|
|
273
|
-
var handleAddUser = function () {
|
|
274
|
-
var props = selectRef.current.props;
|
|
202
|
+
}, [requestInputChangeDebounce, isConvertTextToChipOnBlur, onImmediateInputChange, selectedUsers, checkIsEmailToExclude, clearUserTypingTimeout]);
|
|
203
|
+
var handleAddUser = function (isInputBlurAction) {
|
|
204
|
+
var selectRefCurrent = selectRef.current;
|
|
205
|
+
if (isNil(selectRefCurrent))
|
|
206
|
+
return;
|
|
207
|
+
var props = selectRefCurrent.props;
|
|
275
208
|
var options = props.options, onChange = props.onChange;
|
|
276
|
-
if (isEmpty(inputValue))
|
|
209
|
+
if (isEmpty(inputValue) || (isInputBlurAction && !isConvertTextToChipOnBlur))
|
|
277
210
|
return Promise.resolve();
|
|
278
211
|
var trimInputValue = inputValue.trim();
|
|
279
212
|
var optionProps = {
|
|
@@ -372,7 +305,6 @@ var UserDropdown = function (_a) {
|
|
|
372
305
|
[onInputChange, handleInputChange, onMenuOpen, onChange]);
|
|
373
306
|
var handleChange = function (newSelectedUsers) {
|
|
374
307
|
var uniqNewSelectedUsers = isDisabledCheckUniqueEmails ? newSelectedUsers : uniqBy(newSelectedUsers, EMAIL_FIELD);
|
|
375
|
-
var users = [];
|
|
376
308
|
var deletedUser = selectedUsers.find(function (_a) {
|
|
377
309
|
var value = _a.value;
|
|
378
310
|
return !uniqNewSelectedUsers.some(function (_a) {
|
|
@@ -382,104 +314,39 @@ var UserDropdown = function (_a) {
|
|
|
382
314
|
});
|
|
383
315
|
if (deletedUser === null || deletedUser === void 0 ? void 0 : deletedUser.isNotRemovable)
|
|
384
316
|
return;
|
|
385
|
-
|
|
386
|
-
var isEnteredByUser = user.isEnteredByUser, isMyContacts = user.isMyContacts;
|
|
387
|
-
var userToAdd = omit(user, COMMON_FIELDS_TO_OMIT);
|
|
388
|
-
var entryFieldsToExclude = isMyContacts ? [EXCLUDED_FIELDS.isMyContacts] : [EXCLUDED_FIELDS.language];
|
|
389
|
-
var fieldsToExclude = isEnteredByUser ? [EXCLUDED_FIELDS.isEnteredByUser] : entryFieldsToExclude;
|
|
390
|
-
users.push(omit(userToAdd, fieldsToExclude));
|
|
391
|
-
});
|
|
317
|
+
var users = transformSelectedUsers(uniqNewSelectedUsers);
|
|
392
318
|
onChange(users);
|
|
393
|
-
if (!isInputHidden)
|
|
319
|
+
if (!isInputHidden && !isStateless)
|
|
394
320
|
setSelectedUsers(uniqNewSelectedUsers);
|
|
395
321
|
if (!isInputFocused.current && isChipsCollapsable)
|
|
396
322
|
handleFocus();
|
|
397
323
|
};
|
|
398
|
-
var isContainsValue = function (_a) {
|
|
399
|
-
var label = _a.label, email = _a.email, value = _a.value;
|
|
400
|
-
return label.toLowerCase().includes(value) || email.toLowerCase().includes(value);
|
|
401
|
-
};
|
|
402
324
|
var handleFilterOption = function (_a, inputValue) {
|
|
403
|
-
var
|
|
404
|
-
|
|
405
|
-
var transliteratedInputValue = tr(originInputValue);
|
|
406
|
-
var toEngInputValue = ru.toEn(originInputValue);
|
|
407
|
-
var fromEngInputValue = ru.fromEn(originInputValue);
|
|
408
|
-
var isUserAlreadySelected = selectedUsers.find(function (_a) {
|
|
409
|
-
var email = _a.email;
|
|
410
|
-
return email === optionEmail;
|
|
411
|
-
});
|
|
412
|
-
var isContainsInputValue = [originInputValue, transliteratedInputValue, toEngInputValue, fromEngInputValue].some(function (value) {
|
|
413
|
-
return isContainsValue({ label: label, email: optionEmail, value: value });
|
|
414
|
-
});
|
|
415
|
-
if (isFilteringDisabled)
|
|
416
|
-
return !isEmpty(selectedUsers) ? !isUserAlreadySelected : true;
|
|
417
|
-
return !isEmpty(selectedUsers) ? !isUserAlreadySelected && isContainsInputValue : isContainsInputValue;
|
|
418
|
-
};
|
|
419
|
-
var generateTruncatedElementY = function (element) { return Math.trunc(element.getBoundingClientRect().y); };
|
|
420
|
-
var calculateCounterWidth = function (counterNumber) {
|
|
421
|
-
if (counterNumber >= 100)
|
|
422
|
-
return THREE_DIGIT_NUMBER_WIDTH;
|
|
423
|
-
if (counterNumber >= 10)
|
|
424
|
-
return TWO_DIGIT_NUMBER_WIDTH;
|
|
425
|
-
return SINGLE_DIGIT_NUMBER_WIDTH;
|
|
325
|
+
var data = _a.data;
|
|
326
|
+
return applyFilteringToOption({ isFilteringDisabled: isFilteringDisabled, isSelectedOptionsHidden: isSelectedOptionsHidden, inputValue: inputValue, data: data, selectedUsers: selectedUsers });
|
|
426
327
|
};
|
|
427
328
|
var handleCollapseChips = function () {
|
|
428
|
-
var
|
|
429
|
-
var collapsableChips = 0;
|
|
430
|
-
var chipLabelWithMaxWidth = EMPTY_STRING;
|
|
431
|
-
var chipsNodes = ((_a = document.querySelector("#".concat(userDropdownId))) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.smartapp-chip')) || [];
|
|
432
|
-
var chips = Array.from(chipsNodes);
|
|
329
|
+
var chips = retrieveChipsElements(userDropdownId);
|
|
433
330
|
if (isEmpty(chips))
|
|
434
331
|
return;
|
|
435
|
-
var
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
collapsableChips += 1;
|
|
443
|
-
}
|
|
444
|
-
else {
|
|
445
|
-
y === ySecondRow && secondRow.push(chip);
|
|
446
|
-
}
|
|
447
|
-
});
|
|
448
|
-
var counterWidth = calculateCounterWidth(collapsableChips);
|
|
449
|
-
var rowWidth = counterWidth + INPUT_SPACE_WIDTH;
|
|
450
|
-
var dropdownWidth = ((_b = document.querySelector("#".concat(userDropdownId))) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width) - maskWidth - suffixWidth;
|
|
451
|
-
secondRow.forEach(function (chip) {
|
|
452
|
-
var _a;
|
|
453
|
-
rowWidth += chip.getBoundingClientRect().width + GAP;
|
|
454
|
-
if (rowWidth > dropdownWidth) {
|
|
455
|
-
if (secondRow.length > 1) {
|
|
456
|
-
collapsableChips += 1;
|
|
457
|
-
}
|
|
458
|
-
else {
|
|
459
|
-
var emptySpaceWidth = collapsableChips > 0 ? counterWidth + INPUT_SPACE_WIDTH + GAP : INPUT_SPACE_WIDTH;
|
|
460
|
-
chip.style.maxWidth = "".concat(dropdownWidth - emptySpaceWidth, "px");
|
|
461
|
-
chipLabelWithMaxWidth = ((_a = chip.querySelector('.smartapp-chip__info--name')) === null || _a === void 0 ? void 0 : _a.innerHTML) || EMPTY_STRING;
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
});
|
|
465
|
-
var visibleChipsCurrentCount = chips.length - collapsableChips;
|
|
332
|
+
var _a = collapseChips({
|
|
333
|
+
userDropdownId: userDropdownId,
|
|
334
|
+
maxRowsCountToCollapseChips: maxRowsCountToCollapseChips,
|
|
335
|
+
maskWidth: maskWidth,
|
|
336
|
+
suffixWidth: suffixWidth,
|
|
337
|
+
chips: chips,
|
|
338
|
+
}), collapsableChips = _a.collapsableChips, numberOfVisibleChips = _a.numberOfVisibleChips, chipLabelWithMaxWidth = _a.chipLabelWithMaxWidth;
|
|
466
339
|
isNeedCheckChipCollapsableCount.current = true;
|
|
467
|
-
visibleChipsCount.current =
|
|
340
|
+
visibleChipsCount.current = numberOfVisibleChips;
|
|
468
341
|
collapsableChipsCount.current = collapsableChips;
|
|
469
|
-
lastVisibleChipIndex.current =
|
|
342
|
+
lastVisibleChipIndex.current = numberOfVisibleChips;
|
|
470
343
|
setChipLabelWithMaxWidth(chipLabelWithMaxWidth || generateId());
|
|
471
344
|
};
|
|
472
345
|
var handleUnCollapseChips = useCallback(function () {
|
|
473
|
-
var _a;
|
|
474
346
|
if (!userDropdownId)
|
|
475
347
|
return;
|
|
476
|
-
var
|
|
477
|
-
|
|
478
|
-
chips.forEach(function (chip) {
|
|
479
|
-
var _a;
|
|
480
|
-
var chipLabel = ((_a = chip.querySelector('.smartapp-chip__info--name')) === null || _a === void 0 ? void 0 : _a.innerHTML) || EMPTY_STRING;
|
|
481
|
-
chipLabel === chipLabelWithMaxWidth && (chip.style.maxWidth = '100%');
|
|
482
|
-
});
|
|
348
|
+
var chips = retrieveChipsElements(userDropdownId);
|
|
349
|
+
unCollapseChips(chipLabelWithMaxWidth, chips);
|
|
483
350
|
isNeedCheckChipCollapsableCount.current = false;
|
|
484
351
|
visibleChipsCount.current = chips.length;
|
|
485
352
|
collapsableChipsCount.current = 0;
|
|
@@ -503,17 +370,23 @@ var UserDropdown = function (_a) {
|
|
|
503
370
|
var onBlurComplete = function () {
|
|
504
371
|
isChipsCollapsable && handleCollapseChips();
|
|
505
372
|
isInputFocused.current = false;
|
|
373
|
+
setIsFocused(false);
|
|
506
374
|
};
|
|
507
375
|
if (shouldSkipAddUserToChipsOnNextBlur) {
|
|
508
376
|
onBlurComplete();
|
|
509
377
|
return;
|
|
510
378
|
}
|
|
511
379
|
else
|
|
512
|
-
(_a = handleAddUser()) === null || _a === void 0 ? void 0 : _a.then(onBlurComplete);
|
|
380
|
+
(_a = handleAddUser(true)) === null || _a === void 0 ? void 0 : _a.then(function () { return requestAnimationFrame(function () { return requestAnimationFrame(function () { return onBlurComplete(); }); }); });
|
|
513
381
|
skipAddUserToChipsOnNextBlurRef.current = false;
|
|
514
382
|
};
|
|
515
383
|
var handleSelectBlur = function () {
|
|
516
384
|
setPlaceholderValue(placeholder);
|
|
385
|
+
isMenuCloseOnBlur && setIsMenuOpen(false);
|
|
386
|
+
if (isInputValueClearedOnBlur) {
|
|
387
|
+
setInputValue(EMPTY_STRING);
|
|
388
|
+
onImmediateInputChange === null || onImmediateInputChange === void 0 ? void 0 : onImmediateInputChange(EMPTY_STRING);
|
|
389
|
+
}
|
|
517
390
|
setTimeout(handleBlur, RENDER_DELAY);
|
|
518
391
|
};
|
|
519
392
|
var focusInputIOS = useCallback(function (input) {
|
|
@@ -524,36 +397,32 @@ var UserDropdown = function (_a) {
|
|
|
524
397
|
});
|
|
525
398
|
}, []);
|
|
526
399
|
var handleFocus = useCallback(function (isDisableCheckFocused) {
|
|
527
|
-
setPlaceholderValue(SEARCH_PLACEHOLDER[language]);
|
|
400
|
+
setPlaceholderValue(focusPlaceholder || SEARCH_PLACEHOLDER[language]);
|
|
528
401
|
if (isInputFocused.current && !isDisableCheckFocused)
|
|
529
402
|
return;
|
|
530
403
|
isInputFocused.current = true;
|
|
404
|
+
setIsFocused(true);
|
|
531
405
|
var selectRefCurrent = selectRef.current;
|
|
532
406
|
var _a = selectRefCurrent || {}, _preventBlur = _a._preventBlur, inputRef = _a.inputRef;
|
|
533
407
|
setTimeout(function () {
|
|
534
408
|
if (selectRefCurrent && !_preventBlur)
|
|
535
|
-
|
|
409
|
+
checkIsIosPlatform(platform) && inputRef ? focusInputIOS(inputRef) : selectRefCurrent.focus();
|
|
536
410
|
}, RENDER_DELAY);
|
|
537
411
|
isChipsCollapsable && handleUnCollapseChips();
|
|
538
|
-
}, [language, isChipsCollapsable, handleUnCollapseChips, platform, focusInputIOS]);
|
|
412
|
+
}, [focusPlaceholder, language, isChipsCollapsable, handleUnCollapseChips, platform, focusInputIOS]);
|
|
539
413
|
var handleForceFocus = useCallback(function () { return setTimeout(function () { return handleFocus(true); }, RENDER_DELAY); }, [handleFocus]);
|
|
414
|
+
var handleSelectFocus = useCallback(function () {
|
|
415
|
+
handleFocus();
|
|
416
|
+
onFocus === null || onFocus === void 0 ? void 0 : onFocus();
|
|
417
|
+
}, [handleFocus, onFocus]);
|
|
540
418
|
var handleCloseModal = function () {
|
|
541
419
|
setModalData(null);
|
|
542
420
|
setIsSearchable(true);
|
|
543
|
-
if (
|
|
421
|
+
if (checkIsMobilePlatform(platform)) {
|
|
544
422
|
new Promise(function (resolve) { return resolve(); }).then(function () { var _a; return (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });
|
|
545
423
|
}
|
|
546
424
|
};
|
|
547
|
-
var
|
|
548
|
-
var renderMask = function () {
|
|
549
|
-
return mask && (_jsx("div", __assign({ ref: maskRef, className: "smartapp-user-dropdown__container--mask" }, { children: mask })));
|
|
550
|
-
};
|
|
551
|
-
var renderHint = function () {
|
|
552
|
-
if (isNil(hint))
|
|
553
|
-
return;
|
|
554
|
-
return isString(hint) ? _jsx("div", __assign({ className: "smartapp-user-dropdown__hint" }, { children: hint })) : hint;
|
|
555
|
-
};
|
|
556
|
-
var modalContent = modalData ? (_jsx(ContactBottomSheet, { fontFamily: fontFamily, language: language, avatar: modalData.avatar, name: modalData.name, email: modalData.email, serverName: modalData.serverName, company: modalData.company, department: modalData.department, companyPosition: modalData.companyPosition })) : (_jsx(_Fragment, {}));
|
|
425
|
+
var modalContent = modalData ? (_jsx(ContactBottomSheet, { fontFamily: fontFamily, language: language, contactInfoTitle: contactInfoTitle, avatar: modalData.avatar, name: modalData.name, email: modalData.email, serverName: modalData.serverName, company: modalData.company, department: modalData.department, companyPosition: modalData.companyPosition, handleCloseModal: handleCloseModal, onClickContactInfoCopyEmail: onClickContactInfoCopyEmail })) : (_jsx(_Fragment, {}));
|
|
557
426
|
useEffect(function () {
|
|
558
427
|
if (externalInputValue && isInputHidden) {
|
|
559
428
|
setInputValue(externalInputValue);
|
|
@@ -564,16 +433,23 @@ var UserDropdown = function (_a) {
|
|
|
564
433
|
useEffect(function () {
|
|
565
434
|
!userDropdownId && setUserDropdownId("user_dropdown_".concat(generateId().replace(/-/g, '_')));
|
|
566
435
|
}, [userDropdownId]);
|
|
436
|
+
useLayoutEffect(function () {
|
|
437
|
+
if (isChipsCollapsable && !isEmpty(chipLabelWithMaxWidth) && !isInputFocused.current) {
|
|
438
|
+
handleUnCollapseChips();
|
|
439
|
+
handleCollapseChips();
|
|
440
|
+
}
|
|
441
|
+
// eslint-disable-next-line
|
|
442
|
+
}, [hint]);
|
|
567
443
|
useLayoutEffect(function () {
|
|
568
444
|
if (userDropdownId)
|
|
569
445
|
setTimeout(function () { return (isChipsCollapsable ? handleCollapseChips() : handleUnCollapseChips()); }, RENDER_DELAY);
|
|
570
446
|
// eslint-disable-next-line
|
|
571
447
|
}, [isChipsCollapsable, userDropdownId]);
|
|
572
448
|
useEffect(function () {
|
|
573
|
-
setPaddingLeft(
|
|
449
|
+
setPaddingLeft(calculateHorizontalPadding(maskRef, setMaskWidth));
|
|
574
450
|
}, [mask]);
|
|
575
451
|
useEffect(function () {
|
|
576
|
-
setPaddingRight(
|
|
452
|
+
setPaddingRight(calculateHorizontalPadding(suffixRef, setSuffixWidth));
|
|
577
453
|
}, [suffix]);
|
|
578
454
|
useEffect(function () {
|
|
579
455
|
setSelectedUsers(function (prevSelectedUsers) {
|
|
@@ -581,38 +457,18 @@ var UserDropdown = function (_a) {
|
|
|
581
457
|
});
|
|
582
458
|
}, [layoutType, fontFamily, language, isChipsCollapsable]);
|
|
583
459
|
useEffect(function () {
|
|
584
|
-
if (!isEmpty(selectedEntries)) {
|
|
460
|
+
if (isArray(selectedEntries) && !isEmpty(selectedEntries)) {
|
|
585
461
|
setSelectedUsers(selectedEntries.map(function (entity) {
|
|
586
|
-
var
|
|
587
|
-
var
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
platform: platform,
|
|
594
|
-
layoutType: layoutType,
|
|
595
|
-
fontFamily: fontFamily,
|
|
596
|
-
language: language,
|
|
597
|
-
isChipsCollapsable: isChipsCollapsable,
|
|
598
|
-
isResetChipsToInputValue: isResetChipsToInputValue,
|
|
599
|
-
contextMenuItems: contextMenuItems,
|
|
600
|
-
isSelectedChipHasTooltip: isSelectedChipHasTooltip,
|
|
601
|
-
isLoading: isLoading,
|
|
602
|
-
isWarning: isWarning,
|
|
603
|
-
isOrganizerShort: isOrganizerShort,
|
|
604
|
-
userType: userType,
|
|
605
|
-
uid: uid,
|
|
606
|
-
organizerName: organizerName,
|
|
607
|
-
isInputFocused: isInputFocused,
|
|
608
|
-
selectRef: selectRef,
|
|
609
|
-
collapsableChipsCount: collapsableChipsCount,
|
|
610
|
-
lastVisibleChipIndex: lastVisibleChipIndex,
|
|
462
|
+
var contextMenuItems = entity.contextMenuItems;
|
|
463
|
+
var generateContextMenuItems = function () {
|
|
464
|
+
return contextMenuItems === null || contextMenuItems === void 0 ? void 0 : contextMenuItems.map(function (item) { return (__assign(__assign({}, item), { action: function (data) {
|
|
465
|
+
var _a;
|
|
466
|
+
(_a = item.action) === null || _a === void 0 ? void 0 : _a.call(item, data);
|
|
467
|
+
checkIsMobilePlatform(platform) && handleFocus(true);
|
|
468
|
+
} })); });
|
|
611
469
|
};
|
|
612
|
-
var
|
|
613
|
-
|
|
614
|
-
: generateContactsOption(__assign({ option: entity }, commonFields));
|
|
615
|
-
return 'contacts' in entity ? generateCorporateOption(__assign({ option: entity }, commonFields)) : generatedNotCorporateEntity;
|
|
470
|
+
var commonFields = __assign(__assign({}, pick(entity, COMMON_FIELDS_TO_PICK)), { platform: platform, layoutType: layoutType, fontFamily: fontFamily, language: language, isChipsCollapsable: isChipsCollapsable, isSelectedChipHasTooltip: isSelectedChipHasTooltip, isInputFocused: isInputFocused, selectRef: selectRef, collapsableChipsCount: collapsableChipsCount, lastVisibleChipIndex: lastVisibleChipIndex, contextMenuItems: generateContextMenuItems() });
|
|
471
|
+
return transformSelectedEntity(entity, commonFields);
|
|
616
472
|
}));
|
|
617
473
|
}
|
|
618
474
|
else
|
|
@@ -634,10 +490,22 @@ var UserDropdown = function (_a) {
|
|
|
634
490
|
}, [clearUserTypingTimeout, requestInputChangeDebounce]);
|
|
635
491
|
useEffect(function () {
|
|
636
492
|
if (isChipsCollapsable && !isInputFocused.current && isNeedCheckChipCollapsableCount.current)
|
|
637
|
-
collapsableChipsCount.current = selectedEntries.length - visibleChipsCount.current;
|
|
493
|
+
collapsableChipsCount.current = (selectedEntries || []).length - visibleChipsCount.current;
|
|
638
494
|
}, [isChipsCollapsable, selectedEntries]);
|
|
639
495
|
var OptionComponent = useCallback(function (props) { return _jsx(Option, __assign({}, props, { isMenuShadowless: isMenuShadowless, children: props.children })); }, [isMenuShadowless]);
|
|
640
|
-
|
|
496
|
+
// Don't let a menu click force-focus the input (react-select's default behavior). Without this, e.g. on mobile
|
|
497
|
+
// with the keyboard hidden and the menu still open, the first click only refocuses the field and the
|
|
498
|
+
// option gets selected only on the second click.
|
|
499
|
+
var handleMenuMouseDown = useCallback(function (event) {
|
|
500
|
+
// only handle the primary (left) mouse button, leave right-click/middle-click at their native behavior
|
|
501
|
+
if (event.button !== 0)
|
|
502
|
+
return;
|
|
503
|
+
event.preventDefault();
|
|
504
|
+
event.stopPropagation();
|
|
505
|
+
}, []);
|
|
506
|
+
var MenuComponent = useCallback(function (props) { return _jsx(components.Menu, __assign({}, props, { innerProps: __assign(__assign({}, props.innerProps), { onMouseDown: handleMenuMouseDown }) })); }, [handleMenuMouseDown]);
|
|
507
|
+
var MenuListComponent = useCallback(function (props) { return (_jsx(MenuList, __assign({}, props, { children: props.children, selectRef: selectRef, scrollFromTop: menuScrollFromTop, language: language, platform: platform, menuListMaxHeight: menuListMaxHeight, charHintClassName: charHintClassName, hasNextPage: hasNextPage, isLoading: isLoading, isShowCatalogSearchButton: isShowCatalogSearchButton, onShowCatalogSearchButtonClick: onShowCatalogSearchButtonClick, isUserTyping: isUserTyping, isCharHintVisible: isCharHintVisible, isMenuShadowless: isMenuShadowless, isNextPageLoading: isNextPageLoading, onLoadNextPage: function (inputValue) { return onLoadNextPage === null || onLoadNextPage === void 0 ? void 0 : onLoadNextPage(inputValue); }, setIsDelimiterVisible: setIsDelimiterVisible }))); }, [
|
|
508
|
+
charHintClassName,
|
|
641
509
|
hasNextPage,
|
|
642
510
|
isCharHintVisible,
|
|
643
511
|
isLoading,
|
|
@@ -649,16 +517,20 @@ var UserDropdown = function (_a) {
|
|
|
649
517
|
menuListMaxHeight,
|
|
650
518
|
onLoadNextPage,
|
|
651
519
|
onShowCatalogSearchButtonClick,
|
|
520
|
+
platform,
|
|
652
521
|
]);
|
|
653
|
-
var NoOptionsButton = function (props) { return (_jsx(components.NoOptionsMessage, __assign({}, props, { children: _jsx(SearchInCatalogButton, { language: language, isOnlyButtonInList: true,
|
|
654
|
-
var InputComponent = useCallback(function (props) { return _jsx(Input, __assign({}, props, { "data-is-clearable": !isChipsVisible, suffixref: suffixRef, suffix: suffix })); }, [isChipsVisible, suffix]);
|
|
522
|
+
var NoOptionsButton = function (props) { return (_jsx(components.NoOptionsMessage, __assign({}, props, { className: noOptionsMessageClassName }, { children: _jsx(SearchInCatalogButton, { language: language, isOnlyButtonInList: true, isMenuShadowless: isMenuShadowless, noOptionText: isShowCatalogSearchButton ? undefined : generateNoOptionsMessage({ inputValue: inputValue }), onShowCatalogSearchButtonClick: onShowCatalogSearchButtonClick }) }))); };
|
|
523
|
+
var InputComponent = useCallback(function (props) { return (_jsx(Input, __assign({}, props, { "data-is-clearable": !isChipsVisible, "data-placeholder": placeholderValue, suffixref: suffixRef, suffix: suffix }))); }, [isChipsVisible, placeholderValue, suffix]);
|
|
655
524
|
var MultiValueLabelComponent = useCallback(function (props) { return (_jsx(MultiValueLabel, __assign({}, props, { platform: platform, isChipsOutline: isChipsOutline, transformCurrentChipToInputValue: transformCurrentChipToInputValue, handleBlurDropdown: function () { return handleDragBlur(true); }, handleRequestFocus: handleForceFocus }))); }, [platform, isChipsOutline, transformCurrentChipToInputValue, handleForceFocus]);
|
|
656
525
|
var setContainerNodeRef = function (ref) {
|
|
657
526
|
var _a = ((ref === null || ref === void 0 ? void 0 : ref.getBoundingClientRect()) || {}).left, left = _a === void 0 ? 0 : _a;
|
|
658
527
|
setNodeRef(ref);
|
|
659
|
-
setDelimiterOffset(left);
|
|
528
|
+
setDelimiterOffset(isShowCatalogSearchButton ? 0 : left);
|
|
660
529
|
};
|
|
661
|
-
return (_jsxs("div", __assign({ id: userDropdownId, className: classNames('smartapp-user-dropdown', containerClassName), style: __assign(__assign({}, fontFamilyStyle), containerStyles) }, { children: [
|
|
530
|
+
return (_jsxs("div", __assign({ id: userDropdownId, className: classNames('smartapp-user-dropdown', containerClassName, { 'smartapp-user-dropdown__not-clickable': isNotClickable }), style: __assign(__assign({}, fontFamilyStyle), containerStyles) }, { children: [_jsx(Title, { text: title }), _jsxs("div", __assign({ className: "smartapp-user-dropdown__container", ref: setContainerNodeRef }, { children: [_jsx(Mask, { mask: mask, elementRef: maskRef, isVisible: isMaskVisible }), _jsx(Select, { ref: selectRef, menuIsOpen: isInputHidden ? !!externalInputValue : isMenuOpen, menuPortalTarget: menuPortalTarget === null || menuPortalTarget === void 0 ? void 0 : menuPortalTarget.current, isMulti: true, openMenuOnFocus: true, hideSelectedOptions: isSelectedOptionsHidden, blurInputOnSelect: false, captureMenuScroll: false, isSearchable: isSearchable, menuShouldScrollIntoView: menuShouldScrollIntoView, menuPlacement: menuPosition, menuPosition: menuLocation, controlShouldRenderValue: isChipsVisible, backspaceRemovesValue: isChipsVisible, isDisabled: isDisabled, closeMenuOnSelect: isMenuCloseOnSelect, isLoading: isLoading || isUserTyping, isClearable: false, isOptionDisabled: function (_a) {
|
|
531
|
+
var _b = _a.isAlreadyAdded, isAlreadyAdded = _b === void 0 ? false : _b;
|
|
532
|
+
return isAlreadyAdded;
|
|
533
|
+
}, styles: generateStyles(), placeholder: placeholderValue, noOptionsMessage: generateNoOptionsMessage, loadingMessage: function () { return _jsx(LoadingMessage, { isMenuShadowless: isMenuShadowless, skeletonRowsCount: skeletonRowsCount }); }, value: selectedUsers, inputValue: inputValue, options: !isNull(corporateEntries) || !isNull(myContactsEntries) ? generateOptions() : undefined, filterOption: handleFilterOption, onInputChange: handleInputChange, onChange: handleChange, onMenuClose: handleMenuClose, onMenuOpen: handleMenuOpen, onKeyDown: handleKeyDown, onBlur: handleSelectBlur, autoFocus: autoFocus, onFocus: handleSelectFocus, instanceId: userDropdownId, components: {
|
|
662
534
|
Input: InputComponent,
|
|
663
535
|
MultiValueLabel: MultiValueLabelComponent,
|
|
664
536
|
MultiValueRemove: MultiValueRemove,
|
|
@@ -666,9 +538,12 @@ var UserDropdown = function (_a) {
|
|
|
666
538
|
IndicatorSeparator: IndicatorSeparator,
|
|
667
539
|
DropdownIndicator: DropdownIndicator,
|
|
668
540
|
LoadingIndicator: LoadingIndicator,
|
|
541
|
+
Menu: MenuComponent,
|
|
669
542
|
MenuList: MenuListComponent,
|
|
670
543
|
NoOptionsMessage: NoOptionsButton,
|
|
671
|
-
} }),
|
|
544
|
+
} }), _jsx(Delimiter, { isDelimiterVisible: isDelimiterVisible, isMenuShadowless: isMenuShadowless, isShowCatalogSearchButton: isShowCatalogSearchButton, delimiterOffset: delimiterOffset })] })), _jsx(Hint, { text: hint }), _jsx(Modal, { isModalOpen: !isNull(modalData), platform: platform, fontFamily: fontFamily, content: modalContent, isBottomSheet: checkIsMobilePlatform(platform), modalMaxHeight: checkIsMobilePlatform(platform) ? generateContactBottomSheetMaxHeight() : undefined, backgroundColor: "var(--color-bg-blackout-transparent)", handleCloseModal: handleCloseModal,
|
|
545
|
+
// fix появления ненужного паддинга под клавиатуру android у ContactBottomSheet
|
|
546
|
+
bottomSheetScrollMobileConfig: { shouldDoScrollToFocusedElement: false } })] })));
|
|
672
547
|
};
|
|
673
548
|
export default memo(UserDropdown);
|
|
674
549
|
//# sourceMappingURL=UserDropdown.js.map
|