@expressms/smartapp-ui 3.0.0-alpha.14 → 3.0.0-alpha.140

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 (174) 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/file-small.svg +5 -5
  9. package/build/main/assets/icons/file.svg +1 -1
  10. package/build/main/assets/icons/image-no-preview-small.svg +11 -0
  11. package/build/main/assets/icons/image-no-preview.svg +11 -0
  12. package/build/main/assets/icons/needs-action-invite-status.svg +4 -0
  13. package/build/main/assets/icons/notification-close.svg +1 -1
  14. package/build/main/assets/icons/notification-error.svg +5 -0
  15. package/build/main/assets/icons/notification-failure-filled.svg +3 -0
  16. package/build/main/assets/icons/notification-info-filled.svg +5 -0
  17. package/build/main/assets/icons/notification-success-filled.svg +4 -0
  18. package/build/main/assets/icons/pdf-small.svg +5 -5
  19. package/build/main/assets/icons/ppt-small.svg +5 -5
  20. package/build/main/assets/icons/search.svg +1 -1
  21. package/build/main/assets/icons/select-arrow-down.svg +3 -0
  22. package/build/main/assets/icons/select-arrow-up.svg +3 -0
  23. package/build/main/assets/icons/txt-small.svg +5 -5
  24. package/build/main/assets/icons/video-no-preview-small.svg +11 -0
  25. package/build/main/assets/icons/video-no-preview.svg +11 -0
  26. package/build/main/assets/icons/xls-small.svg +5 -5
  27. package/build/main/assets/storybook/index.d.ts +2 -0
  28. package/build/main/assets/storybook/index.js +2 -0
  29. package/build/main/assets/storybook/index.js.map +1 -1
  30. package/build/main/constants/constants.d.ts +86 -45
  31. package/build/main/constants/constants.js +123 -48
  32. package/build/main/constants/constants.js.map +1 -1
  33. package/build/main/constants/types.d.ts +11 -1
  34. package/build/main/helpers/index.d.ts +3 -1
  35. package/build/main/helpers/index.js +21 -2
  36. package/build/main/helpers/index.js.map +1 -1
  37. package/build/main/hooks/useCharHintDisplay.d.ts +9 -0
  38. package/build/main/hooks/useCharHintDisplay.js +35 -0
  39. package/build/main/hooks/useCharHintDisplay.js.map +1 -0
  40. package/build/main/hooks/useMobileLongTap.d.ts +17 -0
  41. package/build/main/hooks/useMobileLongTap.js +65 -0
  42. package/build/main/hooks/useMobileLongTap.js.map +1 -0
  43. package/build/main/hooks/useModal.d.ts +17 -10
  44. package/build/main/hooks/useModal.js +173 -12
  45. package/build/main/hooks/useModal.js.map +1 -1
  46. package/build/main/index.d.ts +2 -0
  47. package/build/main/index.js +2 -0
  48. package/build/main/index.js.map +1 -1
  49. package/build/main/styles/styles.scss +2 -2
  50. package/build/main//321/201omponents/AttachedFile/AttachedFile.js +37 -25
  51. package/build/main//321/201omponents/AttachedFile/AttachedFile.js.map +1 -1
  52. package/build/main//321/201omponents/Avatar/Avatar.d.ts +3 -2
  53. package/build/main//321/201omponents/Avatar/Avatar.js +52 -23
  54. package/build/main//321/201omponents/Avatar/Avatar.js.map +1 -1
  55. package/build/main//321/201omponents/Avatar/types.d.ts +9 -5
  56. package/build/main//321/201omponents/Avatar/types.js +5 -2
  57. package/build/main//321/201omponents/Avatar/types.js.map +1 -1
  58. package/build/main//321/201omponents/Button/Button.d.ts +1 -1
  59. package/build/main//321/201omponents/Button/Button.js +15 -8
  60. package/build/main//321/201omponents/Button/Button.js.map +1 -1
  61. package/build/main//321/201omponents/Button/types.d.ts +9 -2
  62. package/build/main//321/201omponents/Button/types.js +3 -0
  63. package/build/main//321/201omponents/Button/types.js.map +1 -1
  64. package/build/main//321/201omponents/Calendar/Calendar.d.ts +14 -2
  65. package/build/main//321/201omponents/Calendar/Calendar.js +203 -46
  66. package/build/main//321/201omponents/Calendar/Calendar.js.map +1 -1
  67. package/build/main//321/201omponents/Calendar/types.d.ts +20 -8
  68. package/build/main//321/201omponents/Charts/ChartBar/ChartBar.js +1 -1
  69. package/build/main//321/201omponents/Charts/ChartLine/ChartLine.js +1 -1
  70. package/build/main//321/201omponents/Charts/ChartPie/ChartPie.js +1 -1
  71. package/build/main//321/201omponents/Chip/Chip.d.ts +3 -2
  72. package/build/main//321/201omponents/Chip/Chip.js +198 -45
  73. package/build/main//321/201omponents/Chip/Chip.js.map +1 -1
  74. package/build/main//321/201omponents/Chip/types.d.ts +14 -4
  75. package/build/main//321/201omponents/ChipDndContext/ChipDndContext.d.ts +13 -0
  76. package/build/main//321/201omponents/ChipDndContext/ChipDndContext.js +76 -0
  77. package/build/main//321/201omponents/ChipDndContext/ChipDndContext.js.map +1 -0
  78. package/build/main//321/201omponents/ChipDndContext/index.d.ts +1 -0
  79. package/build/main//321/201omponents/ChipDndContext/index.js +2 -0
  80. package/build/main//321/201omponents/ChipDndContext/index.js.map +1 -0
  81. package/build/main//321/201omponents/ConfirmationModal/ConfirmationModal.d.ts +1 -1
  82. package/build/main//321/201omponents/ConfirmationModal/ConfirmationModal.js +3 -2
  83. package/build/main//321/201omponents/ConfirmationModal/ConfirmationModal.js.map +1 -1
  84. package/build/main//321/201omponents/ConfirmationModal/types.d.ts +5 -2
  85. package/build/main//321/201omponents/ContextMenu/ContextMenu.d.ts +1 -1
  86. package/build/main//321/201omponents/ContextMenu/ContextMenu.js +66 -26
  87. package/build/main//321/201omponents/ContextMenu/ContextMenu.js.map +1 -1
  88. package/build/main//321/201omponents/ContextMenu/types.d.ts +13 -7
  89. package/build/main//321/201omponents/ContextMenuItem/ContextMenuItem.d.ts +4 -0
  90. package/build/main//321/201omponents/ContextMenuItem/ContextMenuItem.js +49 -0
  91. package/build/main//321/201omponents/ContextMenuItem/ContextMenuItem.js.map +1 -0
  92. package/build/main//321/201omponents/ContextMenuItem/index.d.ts +1 -0
  93. package/build/main//321/201omponents/ContextMenuItem/index.js +2 -0
  94. package/build/main//321/201omponents/ContextMenuItem/index.js.map +1 -0
  95. package/build/main//321/201omponents/ContextMenuItem/types.d.ts +28 -0
  96. package/build/main//321/201omponents/ContextMenuItem/types.js +6 -0
  97. package/build/main//321/201omponents/ContextMenuItem/types.js.map +1 -0
  98. package/build/main//321/201omponents/CustomSelect/CustomSelect.d.ts +1 -1
  99. package/build/main//321/201omponents/CustomSelect/CustomSelect.js +9 -8
  100. package/build/main//321/201omponents/CustomSelect/CustomSelect.js.map +1 -1
  101. package/build/main//321/201omponents/CustomSelect/selectStyles.d.ts +1 -1
  102. package/build/main//321/201omponents/CustomSelect/selectStyles.js +21 -22
  103. package/build/main//321/201omponents/CustomSelect/selectStyles.js.map +1 -1
  104. package/build/main//321/201omponents/CustomSelect/types.d.ts +8 -2
  105. package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.d.ts +1 -1
  106. package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.js +33 -24
  107. package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.js.map +1 -1
  108. package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.d.ts +11 -0
  109. package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.js +38 -0
  110. package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.js.map +1 -0
  111. package/build/main//321/201omponents/CustomSelectProfiles/types.d.ts +4 -5
  112. package/build/main//321/201omponents/DraggablePopup/DraggablePopup.d.ts +1 -1
  113. package/build/main//321/201omponents/DraggablePopup/DraggablePopup.js +24 -18
  114. package/build/main//321/201omponents/DraggablePopup/DraggablePopup.js.map +1 -1
  115. package/build/main//321/201omponents/DraggablePopup/types.d.ts +8 -8
  116. package/build/main//321/201omponents/Flex/Flex.d.ts +1 -1
  117. package/build/main//321/201omponents/Flex/Flex.js +2 -2
  118. package/build/main//321/201omponents/Flex/Flex.js.map +1 -1
  119. package/build/main//321/201omponents/Flex/types.d.ts +2 -0
  120. package/build/main//321/201omponents/Input/Input.d.ts +1 -1
  121. package/build/main//321/201omponents/Input/Input.js +75 -33
  122. package/build/main//321/201omponents/Input/Input.js.map +1 -1
  123. package/build/main//321/201omponents/Input/types.d.ts +10 -3
  124. package/build/main//321/201omponents/ListItem/ListItem.js +21 -10
  125. package/build/main//321/201omponents/ListItem/ListItem.js.map +1 -1
  126. package/build/main//321/201omponents/ListItem/types.d.ts +7 -2
  127. package/build/main//321/201omponents/Modal/Modal.d.ts +3 -2
  128. package/build/main//321/201omponents/Modal/Modal.js +167 -71
  129. package/build/main//321/201omponents/Modal/Modal.js.map +1 -1
  130. package/build/main//321/201omponents/Modal/types.d.ts +34 -2
  131. package/build/main//321/201omponents/Notification/Notification.d.ts +4 -6
  132. package/build/main//321/201omponents/Notification/Notification.js +72 -25
  133. package/build/main//321/201omponents/Notification/Notification.js.map +1 -1
  134. package/build/main//321/201omponents/Notification/types.d.ts +17 -2
  135. package/build/main//321/201omponents/Skeleton/Skeleton.js +1 -1
  136. package/build/main//321/201omponents/Skeleton/Skeleton.js.map +1 -1
  137. package/build/main//321/201omponents/Stories/Stories.js +72 -4
  138. package/build/main//321/201omponents/Stories/Stories.js.map +1 -1
  139. package/build/main//321/201omponents/Textarea/Textarea.d.ts +1 -1
  140. package/build/main//321/201omponents/Textarea/Textarea.js +2 -2
  141. package/build/main//321/201omponents/Textarea/Textarea.js.map +1 -1
  142. package/build/main//321/201omponents/Textarea/types.d.ts +2 -2
  143. package/build/main//321/201omponents/UserDropdown/ContactInfo/ContactInfo.js +6 -0
  144. package/build/main//321/201omponents/UserDropdown/ContactInfo/ContactInfo.js.map +1 -1
  145. package/build/main//321/201omponents/UserDropdown/LoadingMessage/LoadingMessage.d.ts +2 -1
  146. package/build/main//321/201omponents/UserDropdown/LoadingMessage/LoadingMessage.js +4 -3
  147. package/build/main//321/201omponents/UserDropdown/LoadingMessage/LoadingMessage.js.map +1 -1
  148. package/build/main//321/201omponents/UserDropdown/MenuList/MenuList.js +34 -58
  149. package/build/main//321/201omponents/UserDropdown/MenuList/MenuList.js.map +1 -1
  150. package/build/main//321/201omponents/UserDropdown/MultiValueLabel/MultiValueLabel.d.ts +3 -2
  151. package/build/main//321/201omponents/UserDropdown/MultiValueLabel/MultiValueLabel.js +34 -37
  152. package/build/main//321/201omponents/UserDropdown/MultiValueLabel/MultiValueLabel.js.map +1 -1
  153. package/build/main//321/201omponents/UserDropdown/Option/Option.js +2 -2
  154. package/build/main//321/201omponents/UserDropdown/Option/Option.js.map +1 -1
  155. package/build/main//321/201omponents/UserDropdown/SearchInCatalogButton/SearchInCatalogButton.d.ts +1 -1
  156. package/build/main//321/201omponents/UserDropdown/SearchInCatalogButton/SearchInCatalogButton.js +6 -9
  157. package/build/main//321/201omponents/UserDropdown/SearchInCatalogButton/SearchInCatalogButton.js.map +1 -1
  158. package/build/main//321/201omponents/UserDropdown/UserDropdown.d.ts +5 -3
  159. package/build/main//321/201omponents/UserDropdown/UserDropdown.js +268 -97
  160. package/build/main//321/201omponents/UserDropdown/UserDropdown.js.map +1 -1
  161. package/build/main//321/201omponents/UserDropdown/helpers.d.ts +10 -4
  162. package/build/main//321/201omponents/UserDropdown/helpers.js +6 -4
  163. package/build/main//321/201omponents/UserDropdown/helpers.js.map +1 -1
  164. package/build/main//321/201omponents/UserDropdown/selectStyles.d.ts +1 -1
  165. package/build/main//321/201omponents/UserDropdown/selectStyles.js +49 -26
  166. package/build/main//321/201omponents/UserDropdown/selectStyles.js.map +1 -1
  167. package/build/main//321/201omponents/UserDropdown/types.d.ts +100 -57
  168. package/build/main//321/201omponents/UserDropdown/types.js.map +1 -1
  169. package/package.json +11 -7
  170. package/build/main/assets/icons/avatar-arrow-down.svg +0 -3
  171. package/build/main/assets/icons/avatar-arrow-up.svg +0 -3
  172. package/build/main/hooks/useLongTap.d.ts +0 -12
  173. package/build/main/hooks/useLongTap.js +0 -29
  174. 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,8 @@ type TData = ILanguageProps & {
48
54
  department: string | null;
49
55
  companyPosition: string | null;
50
56
  isMyContacts: boolean;
57
+ isLocalContact: boolean;
58
+ isCachedContact: boolean;
51
59
  platform: 'web' | 'ios' | 'android';
52
60
  fontFamily: string;
53
61
  setIsSearchable: (isSearchable: boolean) => void;
@@ -56,12 +64,14 @@ type TData = ILanguageProps & {
56
64
  uid?: string;
57
65
  };
58
66
  export interface IOptionProps extends OptionProps {
67
+ isMenuShadowless: boolean;
59
68
  data: TData;
60
69
  }
61
70
  export interface ISearchInCatalogButtonProps {
62
71
  width?: number;
63
72
  language: string;
64
73
  isOnlyButtonInList?: boolean;
74
+ isMenuShadowless?: boolean;
65
75
  noOptionText?: string | null;
66
76
  onShowCatalogSearchButtonClick?: () => void;
67
77
  }
@@ -90,11 +100,18 @@ export type TGenerateCorporateOptionsToSelect = TGenerateCommonOption & {
90
100
  setIsSearchable: (isSearchable: boolean) => void;
91
101
  setModalData: (modalData: TModalData | null) => void;
92
102
  };
103
+ type TMyContactsEntriesOption = TMyContactsEntries & {
104
+ contacts?: Omit<TContacts, 'userKind'>[];
105
+ };
93
106
  export type TGenerateContactsOption = TGenerateCommonOption & {
94
- option: TMyContactsEntries;
107
+ option: TMyContactsEntriesOption | TLocalEntity;
108
+ isMyContacts?: boolean;
109
+ isLocalContact?: boolean;
95
110
  };
96
111
  export type TGenerateContactsOptionsToSelect = TGenerateCommonOption & {
97
- options: TMyContactsEntries[];
112
+ options: TMyContactsEntriesOption[] | TLocalEntity[];
113
+ isMyContacts?: boolean;
114
+ isLocalContact?: boolean;
98
115
  };
99
116
  export type TGenerateEnteredByUserOption = TGenerateCommonOption & {
100
117
  email: string;
@@ -104,15 +121,25 @@ export type TSelectStyles = {
104
121
  isMaxMembersAdded: boolean;
105
122
  isDisabled: boolean;
106
123
  isError: boolean;
124
+ isInputPlaceholderVisible: boolean;
107
125
  lastRowNumber: number;
108
126
  paddingLeft: string;
127
+ paddingRight: string;
109
128
  platform: string;
110
129
  layoutType: string;
111
130
  isInputHidden: boolean;
112
131
  isDisabledMenuOffsetAtFullscreen: boolean;
132
+ isInputFocused?: boolean;
113
133
  isMaskRepresented: boolean;
134
+ isSuffixRepresented: boolean;
135
+ isMenuShadowless: boolean;
136
+ isShowCatalogSearchButton: boolean;
114
137
  fontFamilyStyle: TFontFamilyStyle;
115
138
  containerPadding?: string;
139
+ isDraggable?: boolean;
140
+ isChipsCollapsed?: boolean;
141
+ menuListMaxHeight: number;
142
+ maxRowsCountToCollapseChips: number;
116
143
  };
117
144
  export type TGenerateNoOptionsMessage = {
118
145
  inputValue: string;
@@ -146,38 +173,33 @@ export interface MultiOptionType {
146
173
  isEnteredByUser?: boolean;
147
174
  isNotRemovable?: boolean;
148
175
  }
149
- export type TMyContactsEntries = {
176
+ type TContactEntity = {
177
+ isLoading?: boolean;
178
+ isWarning?: boolean;
150
179
  isBusyAtSelectedTime?: boolean;
151
180
  isPrivateSchedule?: boolean;
152
181
  isNotRemovable?: boolean;
153
- isOrganizer?: boolean;
182
+ isOrganizerShort?: boolean;
183
+ isResetChipsToInputValue?: boolean;
184
+ uid?: string;
185
+ userType?: CONTACT_TYPES;
186
+ organizerName?: string | null;
187
+ contextMenuItems?: MenuItem[];
188
+ };
189
+ export type TMyContactsEntries = TContactEntity & {
154
190
  name: string | null;
155
191
  email: string;
156
192
  avatar: string | null;
157
- isLoading?: boolean;
158
- userType?: CONTACT_TYPES;
159
- isWarning?: boolean;
160
- uid?: string;
161
- isResetChipsToInputValue?: boolean;
162
- contextMenuItems?: MenuItem[];
163
193
  };
164
194
  type TContacts = {
165
195
  userHuid: string;
166
196
  contact: string;
167
197
  contactType: string;
198
+ userKind?: string;
168
199
  };
169
- export type TCorporateEntity = {
170
- isBusyAtSelectedTime?: boolean;
171
- isPrivateSchedule?: boolean;
172
- isNotRemovable?: boolean;
173
- isOrganizer?: boolean;
200
+ export type TCorporateEntity = TContactEntity & {
201
+ isCachedContact?: boolean;
174
202
  avatar: string | null;
175
- uid?: string;
176
- isResetChipsToInputValue?: boolean;
177
- contextMenuItems?: MenuItem[];
178
- userType?: CONTACT_TYPES;
179
- isLoading?: boolean;
180
- isWarning?: boolean;
181
203
  name: string;
182
204
  email: string | null;
183
205
  serverName: string | null;
@@ -186,27 +208,60 @@ export type TCorporateEntity = {
186
208
  companyPosition: string | null;
187
209
  contacts: TContacts[];
188
210
  };
211
+ export type TLocalEntity = TContactEntity & {
212
+ avatar: string | null;
213
+ name: string | null;
214
+ email: string | null;
215
+ contacts: Omit<TContacts, 'userHuid'>[];
216
+ };
189
217
  type TCorporateEntries = {
190
218
  corpPhonebookEntries: TCorporateEntity[];
191
219
  trustSearchEntries: TCorporateEntity[];
220
+ cachedSearchEntries: TCorporateEntity[];
221
+ localPhonebookEntries?: TLocalEntity[];
192
222
  };
193
- export type TUser = TCorporateEntity | TMyContactsEntries | {
223
+ export type TUser = TCorporateEntity | TLocalEntity | TMyContactsEntries | (TContactEntity & {
194
224
  email: string;
195
225
  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[];
226
+ isLocalContact?: boolean;
227
+ });
228
+ export type TFocusHandle = {
229
+ focus: () => void;
230
+ blur: () => void;
231
+ };
232
+ export type TQueryVariants = {
233
+ origin: string;
234
+ translit: string;
235
+ toEng: string;
236
+ fromEng: string;
206
237
  };
238
+ export type TContactMatchScore = {
239
+ emailScore: number;
240
+ nameScore: number;
241
+ originalName: string;
242
+ };
243
+ export declare const MATCH_SCORES: {
244
+ readonly EMAIL_STARTS_WITH: 6;
245
+ readonly EMAIL_CONTAINS: 5;
246
+ readonly NAME_FIRST_WORD_STARTS_WITH: 4;
247
+ readonly NAME_ANY_WORD_STARTS_WITH: 3;
248
+ readonly NAME_CONTAINS: 2;
249
+ readonly NO_MATCH: 0;
250
+ };
251
+ export type TMatchers = {
252
+ startsWith: (text: string) => boolean;
253
+ includes: (text: string) => boolean;
254
+ anyWordStartsWith: (text: string) => boolean;
255
+ };
256
+ export type TDragUser = {
257
+ avatar: string;
258
+ label: string;
259
+ dropdownId?: string;
260
+ } & TUser;
207
261
  export interface IUserDropdownProps extends IPlatformProps, ILayoutTypeProps, IFontFamilyProps, ILanguageProps {
208
262
  isDisabled?: boolean;
209
263
  isLoading?: boolean;
264
+ isError?: boolean;
210
265
  isChipsOutline?: boolean;
211
266
  isChipsVisible?: boolean;
212
267
  isChipsCollapsable?: boolean;
@@ -217,15 +272,23 @@ export interface IUserDropdownProps extends IPlatformProps, ILayoutTypeProps, IF
217
272
  isBackspaceChipToInput?: boolean;
218
273
  isInputHidden?: boolean;
219
274
  isDisabledMenuOffsetAtFullscreen?: boolean;
275
+ isDisabledCheckUniqueEmails?: boolean;
276
+ isMenuShadowless?: boolean;
220
277
  hasNextPage?: boolean;
221
278
  isNextPageLoading?: boolean;
222
279
  title?: string;
223
280
  mask?: string;
281
+ suffix?: ReactNode;
224
282
  placeholder?: string;
225
283
  hint?: ReactElement | string;
226
284
  noOptionsMessage?: string;
227
285
  maxMembersCount?: number;
286
+ skeletonRowsCount?: number;
287
+ maxRowsCountToCollapseChips?: number;
288
+ menuListMaxHeight?: number;
228
289
  menuPosition?: 'bottom' | 'auto' | 'top';
290
+ menuLocation?: 'absolute' | 'fixed';
291
+ menuPortalTarget?: RefObject<HTMLDivElement | null>;
229
292
  autoFocus?: boolean;
230
293
  externalInputValue?: string;
231
294
  containerClassName?: string;
@@ -235,35 +298,15 @@ export interface IUserDropdownProps extends IPlatformProps, ILayoutTypeProps, IF
235
298
  corporateEntries: TCorporateEntries | null;
236
299
  myContactsEntries: TMyContactsEntries[] | null;
237
300
  emailsToExclude?: string[];
301
+ userDropdownId?: string;
302
+ focusRef?: RefObject<TFocusHandle | null>;
238
303
  onInputChange: (inputValue: string) => void;
304
+ onImmediateInputChange?: (inputValue: string) => void;
239
305
  onChange: (users: TUser[]) => void;
240
306
  onMenuOpen?: () => void;
241
307
  onMenuClose?: () => void;
242
308
  onLoadNextPage?: (inputValue: string) => void;
243
309
  onShowCatalogSearchButtonClick?: () => void;
310
+ onFocus?: () => void;
244
311
  }
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
312
  export {};
@@ -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":"AA0PA,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expressms/smartapp-ui",
3
- "version": "3.0.0-alpha.14",
3
+ "version": "3.0.0-alpha.140",
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.1.0",
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"}