@expressms/smartapp-ui 3.0.0-alpha.17 → 3.0.0-alpha.171

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.
Files changed (201) hide show
  1. package/build/main/assets/icons/accepted-invite-status.svg +4 -0
  2. package/build/main/assets/icons/calendar-arrow-next.svg +3 -0
  3. package/build/main/assets/icons/calendar-arrow-prev.svg +3 -0
  4. package/build/main/assets/icons/chevron.svg +3 -0
  5. package/build/main/assets/icons/close-modal.svg +1 -1
  6. package/build/main/assets/icons/declined-invite-status.svg +4 -0
  7. package/build/main/assets/icons/doc-small.svg +5 -5
  8. package/build/main/assets/icons/download.svg +3 -0
  9. package/build/main/assets/icons/file-small.svg +5 -5
  10. package/build/main/assets/icons/file.svg +1 -1
  11. package/build/main/assets/icons/image-no-preview-small.svg +11 -0
  12. package/build/main/assets/icons/image-no-preview.svg +11 -0
  13. package/build/main/assets/icons/needs-action-invite-status.svg +4 -0
  14. package/build/main/assets/icons/notification-close.svg +1 -1
  15. package/build/main/assets/icons/notification-error.svg +5 -0
  16. package/build/main/assets/icons/notification-failure-filled.svg +3 -0
  17. package/build/main/assets/icons/notification-info-filled.svg +5 -0
  18. package/build/main/assets/icons/notification-success-filled.svg +4 -0
  19. package/build/main/assets/icons/pdf-small.svg +5 -5
  20. package/build/main/assets/icons/ppt-small.svg +5 -5
  21. package/build/main/assets/icons/private.svg +4 -11
  22. package/build/main/assets/icons/search.svg +1 -1
  23. package/build/main/assets/icons/select-arrow-down.svg +3 -0
  24. package/build/main/assets/icons/select-arrow-up.svg +3 -0
  25. package/build/main/assets/icons/txt-small.svg +5 -5
  26. package/build/main/assets/icons/video-no-preview-small.svg +11 -0
  27. package/build/main/assets/icons/video-no-preview.svg +11 -0
  28. package/build/main/assets/icons/xls-small.svg +5 -5
  29. package/build/main/assets/storybook/index.d.ts +3 -0
  30. package/build/main/assets/storybook/index.js +3 -0
  31. package/build/main/assets/storybook/index.js.map +1 -1
  32. package/build/main/constants/constants.d.ts +92 -46
  33. package/build/main/constants/constants.js +133 -49
  34. package/build/main/constants/constants.js.map +1 -1
  35. package/build/main/constants/types.d.ts +11 -1
  36. package/build/main/helpers/index.d.ts +3 -1
  37. package/build/main/helpers/index.js +21 -2
  38. package/build/main/helpers/index.js.map +1 -1
  39. package/build/main/hooks/useCharHintDisplay.d.ts +9 -0
  40. package/build/main/hooks/useCharHintDisplay.js +35 -0
  41. package/build/main/hooks/useCharHintDisplay.js.map +1 -0
  42. package/build/main/hooks/useMobileLongTap.d.ts +16 -0
  43. package/build/main/hooks/useMobileLongTap.js +65 -0
  44. package/build/main/hooks/useMobileLongTap.js.map +1 -0
  45. package/build/main/hooks/useModal.d.ts +18 -10
  46. package/build/main/hooks/useModal.js +199 -12
  47. package/build/main/hooks/useModal.js.map +1 -1
  48. package/build/main/index.d.ts +2 -0
  49. package/build/main/index.js +2 -0
  50. package/build/main/index.js.map +1 -1
  51. package/build/main/styles/styles.scss +2 -2
  52. package/build/main//321/201omponents/ActionModal/ActionModal.js +1 -1
  53. package/build/main//321/201omponents/ActionModal/ActionModal.js.map +1 -1
  54. package/build/main//321/201omponents/AttachedFile/AttachedFile.d.ts +1 -1
  55. package/build/main//321/201omponents/AttachedFile/AttachedFile.js +84 -26
  56. package/build/main//321/201omponents/AttachedFile/AttachedFile.js.map +1 -1
  57. package/build/main//321/201omponents/AttachedFile/types.d.ts +1 -0
  58. package/build/main//321/201omponents/Avatar/Avatar.d.ts +3 -2
  59. package/build/main//321/201omponents/Avatar/Avatar.js +56 -27
  60. package/build/main//321/201omponents/Avatar/Avatar.js.map +1 -1
  61. package/build/main//321/201omponents/Avatar/types.d.ts +9 -5
  62. package/build/main//321/201omponents/Avatar/types.js +5 -2
  63. package/build/main//321/201omponents/Avatar/types.js.map +1 -1
  64. package/build/main//321/201omponents/Button/Button.d.ts +1 -1
  65. package/build/main//321/201omponents/Button/Button.js +16 -10
  66. package/build/main//321/201omponents/Button/Button.js.map +1 -1
  67. package/build/main//321/201omponents/Button/types.d.ts +9 -2
  68. package/build/main//321/201omponents/Button/types.js +3 -0
  69. package/build/main//321/201omponents/Button/types.js.map +1 -1
  70. package/build/main//321/201omponents/Calendar/Calendar.d.ts +14 -2
  71. package/build/main//321/201omponents/Calendar/Calendar.js +238 -45
  72. package/build/main//321/201omponents/Calendar/Calendar.js.map +1 -1
  73. package/build/main//321/201omponents/Calendar/types.d.ts +22 -8
  74. package/build/main//321/201omponents/Charts/ChartBar/ChartBar.js +1 -1
  75. package/build/main//321/201omponents/Charts/ChartLine/ChartLine.js +1 -1
  76. package/build/main//321/201omponents/Charts/ChartPie/ChartPie.js +1 -1
  77. package/build/main//321/201omponents/Chip/Chip.d.ts +3 -2
  78. package/build/main//321/201omponents/Chip/Chip.js +210 -45
  79. package/build/main//321/201omponents/Chip/Chip.js.map +1 -1
  80. package/build/main//321/201omponents/Chip/types.d.ts +14 -4
  81. package/build/main//321/201omponents/ChipDndContext/ChipDndContext.d.ts +13 -0
  82. package/build/main//321/201omponents/ChipDndContext/ChipDndContext.js +76 -0
  83. package/build/main//321/201omponents/ChipDndContext/ChipDndContext.js.map +1 -0
  84. package/build/main//321/201omponents/ChipDndContext/index.d.ts +1 -0
  85. package/build/main//321/201omponents/ChipDndContext/index.js +2 -0
  86. package/build/main//321/201omponents/ChipDndContext/index.js.map +1 -0
  87. package/build/main//321/201omponents/ConfirmationModal/ConfirmationModal.d.ts +1 -1
  88. package/build/main//321/201omponents/ConfirmationModal/ConfirmationModal.js +3 -2
  89. package/build/main//321/201omponents/ConfirmationModal/ConfirmationModal.js.map +1 -1
  90. package/build/main//321/201omponents/ConfirmationModal/types.d.ts +5 -2
  91. package/build/main//321/201omponents/ContextMenu/ContextMenu.d.ts +1 -1
  92. package/build/main//321/201omponents/ContextMenu/ContextMenu.js +66 -26
  93. package/build/main//321/201omponents/ContextMenu/ContextMenu.js.map +1 -1
  94. package/build/main//321/201omponents/ContextMenu/types.d.ts +13 -7
  95. package/build/main//321/201omponents/ContextMenuItem/ContextMenuItem.d.ts +4 -0
  96. package/build/main//321/201omponents/ContextMenuItem/ContextMenuItem.js +49 -0
  97. package/build/main//321/201omponents/ContextMenuItem/ContextMenuItem.js.map +1 -0
  98. package/build/main//321/201omponents/ContextMenuItem/index.d.ts +1 -0
  99. package/build/main//321/201omponents/ContextMenuItem/index.js +2 -0
  100. package/build/main//321/201omponents/ContextMenuItem/index.js.map +1 -0
  101. package/build/main//321/201omponents/ContextMenuItem/types.d.ts +28 -0
  102. package/build/main//321/201omponents/ContextMenuItem/types.js +6 -0
  103. package/build/main//321/201omponents/ContextMenuItem/types.js.map +1 -0
  104. package/build/main//321/201omponents/CustomSelect/CustomSelect.d.ts +1 -1
  105. package/build/main//321/201omponents/CustomSelect/CustomSelect.js +21 -17
  106. package/build/main//321/201omponents/CustomSelect/CustomSelect.js.map +1 -1
  107. package/build/main//321/201omponents/CustomSelect/selectStyles.d.ts +1 -1
  108. package/build/main//321/201omponents/CustomSelect/selectStyles.js +21 -22
  109. package/build/main//321/201omponents/CustomSelect/selectStyles.js.map +1 -1
  110. package/build/main//321/201omponents/CustomSelect/types.d.ts +16 -3
  111. package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.d.ts +1 -1
  112. package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.js +33 -24
  113. package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.js.map +1 -1
  114. package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.d.ts +11 -0
  115. package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.js +39 -0
  116. package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.js.map +1 -0
  117. package/build/main//321/201omponents/CustomSelectProfiles/types.d.ts +6 -5
  118. package/build/main//321/201omponents/DragAndDrop/DragAndDrop.js +2 -2
  119. package/build/main//321/201omponents/DragAndDrop/DragAndDrop.js.map +1 -1
  120. package/build/main//321/201omponents/DraggablePopup/DraggablePopup.d.ts +1 -1
  121. package/build/main//321/201omponents/DraggablePopup/DraggablePopup.js +24 -18
  122. package/build/main//321/201omponents/DraggablePopup/DraggablePopup.js.map +1 -1
  123. package/build/main//321/201omponents/DraggablePopup/types.d.ts +8 -8
  124. package/build/main//321/201omponents/Flex/Flex.d.ts +1 -1
  125. package/build/main//321/201omponents/Flex/Flex.js +2 -2
  126. package/build/main//321/201omponents/Flex/Flex.js.map +1 -1
  127. package/build/main//321/201omponents/Flex/types.d.ts +2 -0
  128. package/build/main//321/201omponents/Input/Input.d.ts +1 -1
  129. package/build/main//321/201omponents/Input/Input.js +90 -33
  130. package/build/main//321/201omponents/Input/Input.js.map +1 -1
  131. package/build/main//321/201omponents/Input/types.d.ts +10 -3
  132. package/build/main//321/201omponents/ListItem/ListItem.js +21 -10
  133. package/build/main//321/201omponents/ListItem/ListItem.js.map +1 -1
  134. package/build/main//321/201omponents/ListItem/types.d.ts +7 -2
  135. package/build/main//321/201omponents/Modal/Modal.d.ts +3 -2
  136. package/build/main//321/201omponents/Modal/Modal.js +199 -87
  137. package/build/main//321/201omponents/Modal/Modal.js.map +1 -1
  138. package/build/main//321/201omponents/Modal/types.d.ts +37 -2
  139. package/build/main//321/201omponents/Notification/Notification.d.ts +4 -6
  140. package/build/main//321/201omponents/Notification/Notification.js +88 -30
  141. package/build/main//321/201omponents/Notification/Notification.js.map +1 -1
  142. package/build/main//321/201omponents/Notification/types.d.ts +23 -5
  143. package/build/main//321/201omponents/Skeleton/Skeleton.js +1 -1
  144. package/build/main//321/201omponents/Skeleton/Skeleton.js.map +1 -1
  145. package/build/main//321/201omponents/Stories/Stories.js +72 -4
  146. package/build/main//321/201omponents/Stories/Stories.js.map +1 -1
  147. package/build/main//321/201omponents/Textarea/Textarea.d.ts +1 -1
  148. package/build/main//321/201omponents/Textarea/Textarea.js +2 -2
  149. package/build/main//321/201omponents/Textarea/Textarea.js.map +1 -1
  150. package/build/main//321/201omponents/Textarea/types.d.ts +2 -2
  151. package/build/main//321/201omponents/UserDropdown/ContactInfo/ContactInfo.js +12 -0
  152. package/build/main//321/201omponents/UserDropdown/ContactInfo/ContactInfo.js.map +1 -1
  153. package/build/main//321/201omponents/UserDropdown/LoadingMessage/LoadingMessage.d.ts +2 -1
  154. package/build/main//321/201omponents/UserDropdown/LoadingMessage/LoadingMessage.js +4 -3
  155. package/build/main//321/201omponents/UserDropdown/LoadingMessage/LoadingMessage.js.map +1 -1
  156. package/build/main//321/201omponents/UserDropdown/MenuList/MenuList.js +34 -58
  157. package/build/main//321/201omponents/UserDropdown/MenuList/MenuList.js.map +1 -1
  158. package/build/main//321/201omponents/UserDropdown/MultiValueLabel/MultiValueLabel.d.ts +3 -2
  159. package/build/main//321/201omponents/UserDropdown/MultiValueLabel/MultiValueLabel.js +34 -37
  160. package/build/main//321/201omponents/UserDropdown/MultiValueLabel/MultiValueLabel.js.map +1 -1
  161. package/build/main//321/201omponents/UserDropdown/Option/Option.js +10 -9
  162. package/build/main//321/201omponents/UserDropdown/Option/Option.js.map +1 -1
  163. package/build/main//321/201omponents/UserDropdown/SearchInCatalogButton/SearchInCatalogButton.d.ts +1 -1
  164. package/build/main//321/201omponents/UserDropdown/SearchInCatalogButton/SearchInCatalogButton.js +7 -9
  165. package/build/main//321/201omponents/UserDropdown/SearchInCatalogButton/SearchInCatalogButton.js.map +1 -1
  166. package/build/main//321/201omponents/UserDropdown/UserDropdown.d.ts +3 -3
  167. package/build/main//321/201omponents/UserDropdown/UserDropdown.js +233 -261
  168. package/build/main//321/201omponents/UserDropdown/UserDropdown.js.map +1 -1
  169. package/build/main//321/201omponents/UserDropdown/components/Delimiter.d.ts +8 -0
  170. package/build/main//321/201omponents/UserDropdown/components/Delimiter.js +10 -0
  171. package/build/main//321/201omponents/UserDropdown/components/Delimiter.js.map +1 -0
  172. package/build/main//321/201omponents/UserDropdown/components/Hint.d.ts +6 -0
  173. package/build/main//321/201omponents/UserDropdown/components/Hint.js +21 -0
  174. package/build/main//321/201omponents/UserDropdown/components/Hint.js.map +1 -0
  175. package/build/main//321/201omponents/UserDropdown/components/Input.d.ts +2 -0
  176. package/build/main//321/201omponents/UserDropdown/components/Input.js +24 -0
  177. package/build/main//321/201omponents/UserDropdown/components/Input.js.map +1 -0
  178. package/build/main//321/201omponents/UserDropdown/components/Mask.d.ts +7 -0
  179. package/build/main//321/201omponents/UserDropdown/components/Mask.js +18 -0
  180. package/build/main//321/201omponents/UserDropdown/components/Mask.js.map +1 -0
  181. package/build/main//321/201omponents/UserDropdown/components/Title.d.ts +5 -0
  182. package/build/main//321/201omponents/UserDropdown/components/Title.js +18 -0
  183. package/build/main//321/201omponents/UserDropdown/components/Title.js.map +1 -0
  184. package/build/main//321/201omponents/UserDropdown/constants.d.ts +59 -0
  185. package/build/main//321/201omponents/UserDropdown/constants.js +74 -0
  186. package/build/main//321/201omponents/UserDropdown/constants.js.map +1 -1
  187. package/build/main//321/201omponents/UserDropdown/helpers.d.ts +84 -41
  188. package/build/main//321/201omponents/UserDropdown/helpers.js +184 -14
  189. package/build/main//321/201omponents/UserDropdown/helpers.js.map +1 -1
  190. package/build/main//321/201omponents/UserDropdown/selectStyles.d.ts +1 -1
  191. package/build/main//321/201omponents/UserDropdown/selectStyles.js +51 -27
  192. package/build/main//321/201omponents/UserDropdown/selectStyles.js.map +1 -1
  193. package/build/main//321/201omponents/UserDropdown/types.d.ts +130 -59
  194. package/build/main//321/201omponents/UserDropdown/types.js +1 -8
  195. package/build/main//321/201omponents/UserDropdown/types.js.map +1 -1
  196. package/package.json +11 -7
  197. package/build/main/assets/icons/avatar-arrow-down.svg +0 -3
  198. package/build/main/assets/icons/avatar-arrow-up.svg +0 -3
  199. package/build/main/hooks/useLongTap.d.ts +0 -12
  200. package/build/main/hooks/useLongTap.js +0 -29
  201. package/build/main/hooks/useLongTap.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { ReactElement, RefObject } from 'react';
1
+ import { Dispatch, ReactElement, ReactNode, RefObject, SetStateAction } from 'react';
2
2
  import { MenuListProps, OptionProps } from 'react-select';
3
3
  import { IFontFamilyProps, ILanguageProps, ILayoutTypeProps, IPlatformProps, TFontFamilyStyle, TStyles } from '../../constants';
4
4
  import { CONTACT_TYPES } from './constants';
@@ -25,19 +25,25 @@ export type TRenderInfoItem = {
25
25
  info: string;
26
26
  };
27
27
  export interface ILoadingMessage {
28
+ isMenuShadowless?: boolean;
28
29
  skeletonRowsCount?: number;
29
30
  }
30
31
  export interface IMenuListProps extends MenuListProps {
31
32
  selectRef: RefObject<any>;
32
33
  scrollFromTop: RefObject<number>;
33
34
  language: string;
35
+ platform: string;
36
+ menuListMaxHeight: number;
34
37
  hasNextPage: boolean;
35
38
  isLoading: boolean;
36
39
  isUserTyping: boolean;
40
+ isCharHintVisible: boolean;
37
41
  isShowCatalogSearchButton?: boolean;
42
+ isMenuShadowless: boolean;
38
43
  isNextPageLoading: boolean;
39
44
  onLoadNextPage: (inputValue: string) => void;
40
45
  onShowCatalogSearchButtonClick?: () => void;
46
+ setIsDelimiterVisible: Dispatch<SetStateAction<boolean>>;
41
47
  }
42
48
  type TData = ILanguageProps & {
43
49
  label: string;
@@ -48,6 +54,9 @@ type TData = ILanguageProps & {
48
54
  department: string | null;
49
55
  companyPosition: string | null;
50
56
  isMyContacts: boolean;
57
+ isLocalContact: boolean;
58
+ isCachedContact: boolean;
59
+ isAlreadyAdded: boolean;
51
60
  platform: 'web' | 'ios' | 'android';
52
61
  fontFamily: string;
53
62
  setIsSearchable: (isSearchable: boolean) => void;
@@ -56,12 +65,14 @@ type TData = ILanguageProps & {
56
65
  uid?: string;
57
66
  };
58
67
  export interface IOptionProps extends OptionProps {
68
+ isMenuShadowless: boolean;
59
69
  data: TData;
60
70
  }
61
71
  export interface ISearchInCatalogButtonProps {
62
72
  width?: number;
63
73
  language: string;
64
74
  isOnlyButtonInList?: boolean;
75
+ isMenuShadowless?: boolean;
65
76
  noOptionText?: string | null;
66
77
  onShowCatalogSearchButtonClick?: () => void;
67
78
  }
@@ -90,36 +101,79 @@ export type TGenerateCorporateOptionsToSelect = TGenerateCommonOption & {
90
101
  setIsSearchable: (isSearchable: boolean) => void;
91
102
  setModalData: (modalData: TModalData | null) => void;
92
103
  };
104
+ type TMyContactsEntriesOption = TMyContactsEntries & {
105
+ contacts?: Omit<TContacts, 'userKind'>[];
106
+ };
93
107
  export type TGenerateContactsOption = TGenerateCommonOption & {
94
- option: TMyContactsEntries;
108
+ option: TMyContactsEntriesOption | TLocalEntity;
109
+ isMyContacts?: boolean;
110
+ isLocalContact?: boolean;
95
111
  };
96
112
  export type TGenerateContactsOptionsToSelect = TGenerateCommonOption & {
97
- options: TMyContactsEntries[];
113
+ options: TMyContactsEntriesOption[] | TLocalEntity[];
114
+ isMyContacts?: boolean;
115
+ isLocalContact?: boolean;
98
116
  };
99
117
  export type TGenerateEnteredByUserOption = TGenerateCommonOption & {
100
118
  email: string;
101
119
  };
120
+ export type TCollapseChips = {
121
+ userDropdownId: string;
122
+ maxRowsCountToCollapseChips: number;
123
+ maskWidth: number;
124
+ suffixWidth: number;
125
+ chips: HTMLDivElement[];
126
+ };
127
+ export type TApplyFilteringToOption = {
128
+ isFilteringDisabled: boolean;
129
+ inputValue: string;
130
+ data: MultiOptionType;
131
+ selectedUsers: readonly MultiOptionType[];
132
+ };
102
133
  export type TSelectStyles = {
103
134
  isChipsVisible: boolean;
104
135
  isMaxMembersAdded: boolean;
105
136
  isDisabled: boolean;
106
137
  isError: boolean;
138
+ isInputPlaceholderVisible: boolean;
107
139
  lastRowNumber: number;
108
140
  paddingLeft: string;
141
+ paddingRight: string;
109
142
  platform: string;
110
143
  layoutType: string;
111
144
  isInputHidden: boolean;
112
145
  isDisabledMenuOffsetAtFullscreen: boolean;
146
+ isInputFocused?: boolean;
113
147
  isMaskRepresented: boolean;
148
+ isSuffixRepresented: boolean;
149
+ isMenuShadowless: boolean;
150
+ isShowCatalogSearchButton: boolean;
114
151
  fontFamilyStyle: TFontFamilyStyle;
115
152
  containerPadding?: string;
153
+ isDraggable?: boolean;
154
+ isChipsCollapsed?: boolean;
155
+ menuListMaxHeight: number;
156
+ maxRowsCountToCollapseChips: number;
116
157
  };
117
158
  export type TGenerateNoOptionsMessage = {
118
159
  inputValue: string;
119
160
  };
120
- export type THandleFilterOption = {
161
+ export type TOptionData = {
121
162
  data: MultiOptionType;
122
163
  };
164
+ export type TCheckIsContainsValue = {
165
+ label: string;
166
+ email: string;
167
+ value: string;
168
+ };
169
+ export type TAdditionalInfo = {
170
+ action: string;
171
+ prevInputValue: string;
172
+ };
173
+ export type TCorporateContacts = {
174
+ corporateContacts: TCorporateEntity[];
175
+ corporateContactsSet: Set<string>;
176
+ };
123
177
  export type TSelectProps = {
124
178
  options: MultiOptionType[];
125
179
  inputValue: string;
@@ -145,39 +199,37 @@ export interface MultiOptionType {
145
199
  isMyContacts?: boolean;
146
200
  isEnteredByUser?: boolean;
147
201
  isNotRemovable?: boolean;
202
+ isAlreadyAdded?: boolean;
148
203
  }
149
- export type TMyContactsEntries = {
204
+ type TContactEntity = {
205
+ isLoading?: boolean;
206
+ isWarning?: boolean;
150
207
  isBusyAtSelectedTime?: boolean;
151
208
  isPrivateSchedule?: boolean;
152
209
  isNotRemovable?: boolean;
153
- isOrganizer?: boolean;
210
+ isOrganizerShort?: boolean;
211
+ isResetChipsToInputValue?: boolean;
212
+ isAlreadyAdded?: boolean;
213
+ uid?: string;
214
+ userType?: CONTACT_TYPES;
215
+ organizerName?: string | null;
216
+ contextMenuItems?: MenuItem[];
217
+ styles?: TStyles;
218
+ };
219
+ export type TMyContactsEntries = TContactEntity & {
154
220
  name: string | null;
155
221
  email: string;
156
222
  avatar: string | null;
157
- isLoading?: boolean;
158
- userType?: CONTACT_TYPES;
159
- isWarning?: boolean;
160
- uid?: string;
161
- isResetChipsToInputValue?: boolean;
162
- contextMenuItems?: MenuItem[];
163
223
  };
164
224
  type TContacts = {
165
225
  userHuid: string;
166
226
  contact: string;
167
227
  contactType: string;
228
+ userKind?: string;
168
229
  };
169
- export type TCorporateEntity = {
170
- isBusyAtSelectedTime?: boolean;
171
- isPrivateSchedule?: boolean;
172
- isNotRemovable?: boolean;
173
- isOrganizer?: boolean;
230
+ export type TCorporateEntity = TContactEntity & {
231
+ isCachedContact?: boolean;
174
232
  avatar: string | null;
175
- uid?: string;
176
- isResetChipsToInputValue?: boolean;
177
- contextMenuItems?: MenuItem[];
178
- userType?: CONTACT_TYPES;
179
- isLoading?: boolean;
180
- isWarning?: boolean;
181
233
  name: string;
182
234
  email: string | null;
183
235
  serverName: string | null;
@@ -186,27 +238,58 @@ export type TCorporateEntity = {
186
238
  companyPosition: string | null;
187
239
  contacts: TContacts[];
188
240
  };
189
- type TCorporateEntries = {
241
+ export type TLocalEntity = TContactEntity & {
242
+ avatar: string | null;
243
+ name: string | null;
244
+ email: string | null;
245
+ contacts: Omit<TContacts, 'userHuid'>[];
246
+ };
247
+ export type TCorporateEntries = {
190
248
  corpPhonebookEntries: TCorporateEntity[];
191
249
  trustSearchEntries: TCorporateEntity[];
250
+ cachedSearchEntries: TCorporateEntity[];
251
+ localPhonebookEntries?: TLocalEntity[];
192
252
  };
193
- export type TUser = TCorporateEntity | TMyContactsEntries | {
253
+ export type TUser = TCorporateEntity | TLocalEntity | TMyContactsEntries | (TContactEntity & {
194
254
  email: string;
195
255
  name?: string | null;
196
- isBusyAtSelectedTime?: boolean;
197
- uid?: string;
198
- isResetChipsToInputValue?: boolean;
199
- isPrivateSchedule?: boolean;
200
- isNotRemovable?: boolean;
201
- isOrganizer?: boolean;
202
- isWarning?: boolean;
203
- isLoading?: boolean;
204
- userType?: CONTACT_TYPES;
205
- contextMenuItems?: MenuItem[];
256
+ isLocalContact?: boolean;
257
+ });
258
+ export type TFocusHandle = {
259
+ focus: () => void;
260
+ blur: () => void;
261
+ };
262
+ export type TQueryVariants = {
263
+ origin: string;
264
+ translit: string;
265
+ toEng: string;
266
+ fromEng: string;
206
267
  };
268
+ export type TContactMatchScore = {
269
+ emailScore: number;
270
+ nameScore: number;
271
+ originalName: string;
272
+ };
273
+ export type TMatchers = {
274
+ startsWith: (text: string) => boolean;
275
+ includes: (text: string) => boolean;
276
+ anyWordStartsWith: (text: string) => boolean;
277
+ };
278
+ export type TRetrieveFilteredContacts = {
279
+ query: string;
280
+ corporateEntries: TCorporateEntries | null;
281
+ myContactsEntries: TMyContactsEntries[] | null;
282
+ checkIsEmailToExclude: (email: string | null) => boolean;
283
+ };
284
+ export type TDragUser = {
285
+ avatar: string;
286
+ label: string;
287
+ dropdownId?: string;
288
+ } & TUser;
207
289
  export interface IUserDropdownProps extends IPlatformProps, ILayoutTypeProps, IFontFamilyProps, ILanguageProps {
208
290
  isDisabled?: boolean;
209
291
  isLoading?: boolean;
292
+ isError?: boolean;
210
293
  isChipsOutline?: boolean;
211
294
  isChipsVisible?: boolean;
212
295
  isChipsCollapsable?: boolean;
@@ -217,15 +300,23 @@ export interface IUserDropdownProps extends IPlatformProps, ILayoutTypeProps, IF
217
300
  isBackspaceChipToInput?: boolean;
218
301
  isInputHidden?: boolean;
219
302
  isDisabledMenuOffsetAtFullscreen?: boolean;
303
+ isDisabledCheckUniqueEmails?: boolean;
304
+ isMenuShadowless?: boolean;
220
305
  hasNextPage?: boolean;
221
306
  isNextPageLoading?: boolean;
222
307
  title?: string;
223
308
  mask?: string;
309
+ suffix?: ReactNode;
224
310
  placeholder?: string;
225
311
  hint?: ReactElement | string;
226
312
  noOptionsMessage?: string;
227
313
  maxMembersCount?: number;
314
+ skeletonRowsCount?: number;
315
+ maxRowsCountToCollapseChips?: number;
316
+ menuListMaxHeight?: number;
228
317
  menuPosition?: 'bottom' | 'auto' | 'top';
318
+ menuLocation?: 'absolute' | 'fixed';
319
+ menuPortalTarget?: RefObject<HTMLDivElement | null>;
229
320
  autoFocus?: boolean;
230
321
  externalInputValue?: string;
231
322
  containerClassName?: string;
@@ -235,35 +326,15 @@ export interface IUserDropdownProps extends IPlatformProps, ILayoutTypeProps, IF
235
326
  corporateEntries: TCorporateEntries | null;
236
327
  myContactsEntries: TMyContactsEntries[] | null;
237
328
  emailsToExclude?: string[];
329
+ userDropdownId?: string;
330
+ focusRef?: RefObject<TFocusHandle | null>;
238
331
  onInputChange: (inputValue: string) => void;
332
+ onImmediateInputChange?: (inputValue: string) => void;
239
333
  onChange: (users: TUser[]) => void;
240
334
  onMenuOpen?: () => void;
241
335
  onMenuClose?: () => void;
242
336
  onLoadNextPage?: (inputValue: string) => void;
243
337
  onShowCatalogSearchButtonClick?: () => void;
338
+ onFocus?: () => void;
244
339
  }
245
- export type TQueryVariants = {
246
- origin: string;
247
- translit: string;
248
- toEng: string;
249
- fromEng: string;
250
- };
251
- export type TContactMatchScore = {
252
- emailScore: number;
253
- nameScore: number;
254
- originalName: string;
255
- };
256
- export declare const MATCH_SCORES: {
257
- readonly EMAIL_STARTS_WITH: 6;
258
- readonly EMAIL_CONTAINS: 5;
259
- readonly NAME_FIRST_WORD_STARTS_WITH: 4;
260
- readonly NAME_ANY_WORD_STARTS_WITH: 3;
261
- readonly NAME_CONTAINS: 2;
262
- readonly NO_MATCH: 0;
263
- };
264
- export type TMatchers = {
265
- startsWith: (text: string) => boolean;
266
- includes: (text: string) => boolean;
267
- anyWordStartsWith: (text: string) => boolean;
268
- };
269
340
  export {};
@@ -1,9 +1,2 @@
1
- export var MATCH_SCORES = {
2
- EMAIL_STARTS_WITH: 6,
3
- EMAIL_CONTAINS: 5,
4
- NAME_FIRST_WORD_STARTS_WITH: 4,
5
- NAME_ANY_WORD_STARTS_WITH: 3,
6
- NAME_CONTAINS: 2,
7
- NO_MATCH: 0,
8
- };
1
+ export {};
9
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/сomponents/UserDropdown/types.ts"],"names":[],"mappings":"AAkRA,MAAM,CAAC,IAAM,YAAY,GAAG;IAC1B,iBAAiB,EAAE,CAAC;IACpB,cAAc,EAAE,CAAC;IACjB,2BAA2B,EAAE,CAAC;IAC9B,yBAAyB,EAAE,CAAC;IAC5B,aAAa,EAAE,CAAC;IAChB,QAAQ,EAAE,CAAC;CACH,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/сomponents/UserDropdown/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expressms/smartapp-ui",
3
- "version": "3.0.0-alpha.17",
3
+ "version": "3.0.0-alpha.171",
4
4
  "description": "SmartApp UI library",
5
5
  "license": "MIT",
6
6
  "main": "build/main/index.js",
@@ -12,20 +12,25 @@
12
12
  "registry": "https://registry.npmjs.org/"
13
13
  },
14
14
  "dependencies": {
15
- "alex.chus-react-spring-bottom-sheet": "^0.0.2",
15
+ "@dnd-kit/core": "^6.3.1",
16
+ "@floating-ui/react": "^0.27.15",
16
17
  "camelcase": "^6.2.1",
17
18
  "classnames": "^2.3.2",
18
19
  "color": "^4.2.3",
19
20
  "color-blend": "^4.0.0",
20
21
  "convert-layout": "^0.11.1",
22
+ "date-fns": "^4.2.1",
21
23
  "dompurify": "^3.2.6",
22
24
  "echarts": "^5.5.0",
23
25
  "echarts-for-react": "^3.0.2",
24
26
  "juice": "^10.0.0",
27
+ "motion": "^12.26.2",
25
28
  "react-beautiful-dnd": "^13.1.1",
26
- "react-datepicker": "^4.8.0",
27
- "react-draggable": "^4.4.6",
29
+ "react-datepicker": "8.10.0",
30
+ "react-draggable": "4.4.6",
31
+ "react-hook-form": "^7.60.0",
28
32
  "react-insta-stories": "^2.6.2",
33
+ "react-modal-sheet": "^5.4.1",
29
34
  "react-router-dom": "^6.7.0",
30
35
  "react-scrollbars-custom": "^4.1.1",
31
36
  "react-select": "^5.8.0",
@@ -36,7 +41,8 @@
36
41
  "react-window": "^1.8.10",
37
42
  "reactjs-popup": "^2.0.5",
38
43
  "styled-components": "^6.1.11",
39
- "transliteration": "^2.3.5"
44
+ "transliteration": "~2.3.5",
45
+ "use-detect-keyboard-open": "^0.4.0"
40
46
  },
41
47
  "resolutions": {
42
48
  "@typescript-eslint/utils": "6.21.0",
@@ -112,7 +118,6 @@
112
118
  "@types/node": "^16.18.11",
113
119
  "@types/react": "^19.0.2",
114
120
  "@types/react-beautiful-dnd": "^13.1.4",
115
- "@types/react-datepicker": "^4.8.0",
116
121
  "@types/react-dom": "^18.0.10",
117
122
  "@types/react-slick": "^0.23.10",
118
123
  "@types/react-virtualized": "^9.21.30",
@@ -120,7 +125,6 @@
120
125
  "@types/uuid": "^9.0.8",
121
126
  "@typescript-eslint/eslint-plugin": "^6.6.0",
122
127
  "@typescript-eslint/parser": "^6.6.0",
123
- "alex.chus-react-spring-bottom-sheet": "^0.0.2",
124
128
  "animate.css": "^4.1.1",
125
129
  "babel-jest": "^18.0.0",
126
130
  "babel-loader": "8.2.3",
@@ -1,3 +0,0 @@
1
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M8.71054 11.71L11.3005 14.3C11.6905 14.69 12.3205 14.69 12.7105 14.3L15.3005 11.71C15.9305 11.08 15.4805 10 14.5905 10H9.41054C8.52054 10 8.08054 11.08 8.71054 11.71Z" fill="currentColor"/>
3
- </svg>
@@ -1,3 +0,0 @@
1
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M8.71054 12.8823L11.3005 10.2923C11.6905 9.90229 12.3205 9.90229 12.7105 10.2923L15.3005 12.8823C15.9305 13.5123 15.4805 14.5923 14.5905 14.5923H9.41054C8.52054 14.5923 8.08054 13.5123 8.71054 12.8823Z" fill="currentColor"/>
3
- </svg>
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- type TLongTapEvent = React.TouchEvent<HTMLElement> | React.MouseEvent<HTMLElement, MouseEvent>;
3
- type TUseLongTap = {
4
- onLongTap?: (e: TLongTapEvent) => void;
5
- onCancelLongTap?: () => void;
6
- longTapDelay?: number;
7
- };
8
- export declare const useLongTap: ({ onLongTap, onCancelLongTap, longTapDelay }: TUseLongTap) => {
9
- cancelPressTimer: () => void;
10
- startPressTimer: (e: TLongTapEvent) => void;
11
- };
12
- export {};
@@ -1,29 +0,0 @@
1
- import { useEffect, useRef } from 'react';
2
- var DEFAULT_LONG_TAP_DELAY = 500;
3
- export var useLongTap = function (_a) {
4
- var onLongTap = _a.onLongTap, onCancelLongTap = _a.onCancelLongTap, _b = _a.longTapDelay, longTapDelay = _b === void 0 ? DEFAULT_LONG_TAP_DELAY : _b;
5
- var timerRef = useRef(null);
6
- var isLongTapFulfilledRef = useRef(false);
7
- var startPressTimer = function (e) {
8
- e.stopPropagation();
9
- isLongTapFulfilledRef.current = false;
10
- timerRef.current = setTimeout(function () {
11
- onLongTap === null || onLongTap === void 0 ? void 0 : onLongTap(e);
12
- isLongTapFulfilledRef.current = true;
13
- }, longTapDelay);
14
- };
15
- var cancelPressTimer = function () {
16
- if (timerRef.current) {
17
- clearTimeout(timerRef.current);
18
- timerRef.current = null;
19
- if (!isLongTapFulfilledRef.current)
20
- onCancelLongTap === null || onCancelLongTap === void 0 ? void 0 : onCancelLongTap();
21
- }
22
- };
23
- useEffect(function () { return function () {
24
- if (timerRef.current)
25
- clearTimeout(timerRef.current);
26
- }; }, []);
27
- return { cancelPressTimer: cancelPressTimer, startPressTimer: startPressTimer };
28
- };
29
- //# sourceMappingURL=useLongTap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLongTap.js","sourceRoot":"","sources":["../../../src/hooks/useLongTap.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAWhD,IAAM,sBAAsB,GAAG,GAAG,CAAA;AAElC,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,EAAkF;QAAhF,SAAS,eAAA,EAAE,eAAe,qBAAA,EAAE,oBAAqC,EAArC,YAAY,mBAAG,sBAAsB,KAAA;IAC5F,IAAM,QAAQ,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAA;IAC9C,IAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAE3C,IAAM,eAAe,GAAG,UAAC,CAAgB;QACvC,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,qBAAqB,CAAC,OAAO,GAAG,KAAK,CAAA;QACrC,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC;YAC5B,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,CAAC,CAAC,CAAA;YACd,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAA;QACtC,CAAC,EAAE,YAAY,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,IAAM,gBAAgB,GAAG;QACvB,IAAI,QAAQ,CAAC,OAAO,EAAE;YACpB,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC9B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAA;YACvB,IAAI,CAAC,qBAAqB,CAAC,OAAO;gBAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,EAAI,CAAA;SACxD;IACH,CAAC,CAAA;IAED,SAAS,CACP,cAAM,OAAA;QACJ,IAAI,QAAQ,CAAC,OAAO;YAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC,EAFK,CAEL,EACD,EAAE,CACH,CAAA;IAED,OAAO,EAAE,gBAAgB,kBAAA,EAAE,eAAe,iBAAA,EAAE,CAAA;AAC9C,CAAC,CAAA"}