@expressms/smartapp-ui 3.0.0-alpha.165 → 3.0.0-alpha.167
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/build/main/constants/constants.d.ts +5 -2
- package/build/main/constants/constants.js +6 -2
- package/build/main/constants/constants.js.map +1 -1
- package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.js +1 -1
- package/build/main//321/201omponents/CustomSelectProfiles/CustomSelectProfiles.js.map +1 -1
- package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.js +1 -0
- package/build/main//321/201omponents/CustomSelectProfiles/selectStyles.js.map +1 -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.js.map +1 -1
- package/build/main//321/201omponents/Input/Input.js +2 -2
- package/build/main//321/201omponents/Input/Input.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/UserDropdown.d.ts +0 -2
- package/build/main//321/201omponents/UserDropdown/UserDropdown.js +43 -259
- package/build/main//321/201omponents/UserDropdown/UserDropdown.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/components/Delimiter.d.ts +8 -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 +2 -0
- package/build/main//321/201omponents/UserDropdown/components/Input.js +24 -0
- package/build/main//321/201omponents/UserDropdown/components/Input.js.map +1 -0
- package/build/main//321/201omponents/UserDropdown/components/Mask.d.ts +7 -0
- package/build/main//321/201omponents/UserDropdown/components/Mask.js +18 -0
- package/build/main//321/201omponents/UserDropdown/components/Mask.js.map +1 -0
- package/build/main//321/201omponents/UserDropdown/components/Title.d.ts +5 -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 +58 -0
- package/build/main//321/201omponents/UserDropdown/constants.js +60 -0
- package/build/main//321/201omponents/UserDropdown/constants.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/helpers.d.ts +70 -41
- package/build/main//321/201omponents/UserDropdown/helpers.js +179 -11
- package/build/main//321/201omponents/UserDropdown/helpers.js.map +1 -1
- package/build/main//321/201omponents/UserDropdown/types.d.ts +34 -10
- package/build/main//321/201omponents/UserDropdown/types.js +1 -8
- package/build/main//321/201omponents/UserDropdown/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { components } from 'react-select';
|
|
14
|
+
import { isEmpty } from 'lodash';
|
|
15
|
+
import { ENTER_KEY_HINT } from '../../../constants';
|
|
16
|
+
import { EMPTY_STRING, INPUT_ACTIONS } from '../constants';
|
|
17
|
+
import { ReactComponent as ClearIcon } from '../../../assets/icons/clear.svg';
|
|
18
|
+
var Input = function (props) {
|
|
19
|
+
var isClearable = props["data-is-clearable"], placeholder = props["data-placeholder"], value = props.value, suffix = props.suffix, suffixRef = props.suffixref, onInputChange = props.selectProps.onInputChange;
|
|
20
|
+
var handleClearInput = function () { return onInputChange(EMPTY_STRING, { action: INPUT_ACTIONS.change, prevInputValue: value }); };
|
|
21
|
+
return (_jsxs(_Fragment, { children: [_jsx(components.Input, __assign({}, props, { enterKeyHint: ENTER_KEY_HINT.done, placeholder: placeholder })), 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, {}) })))] }));
|
|
22
|
+
};
|
|
23
|
+
export default Input;
|
|
24
|
+
//# sourceMappingURL=Input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../../../src/сomponents/UserDropdown/components/Input.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAE7E,IAAM,KAAK,GAAG,UAAC,KAAU;IAErB,IAAqB,WAAW,GAM9B,KAAK,qBANyB,EACZ,WAAW,GAK7B,KAAK,oBALwB,EAC/B,KAAK,GAIH,KAAK,MAJF,EACL,MAAM,GAGJ,KAAK,OAHD,EACK,SAAS,GAElB,KAAK,UAFa,EACL,aAAa,GAC1B,KAAK,0BADqB,CACrB;IAET,IAAM,gBAAgB,GAAG,cAAM,OAAA,aAAa,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAApF,CAAoF,CAAA;IAEnH,OAAO,CACL,8BACE,KAAC,UAAU,CAAC,KAAK,eAAK,KAAK,IAAE,YAAY,EAAE,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,IAAI,EAC3F,MAAM,IAAI,CACT,uBAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAC,gCAAgC,gBAC5D,MAAM,IACH,CACP,EACA,WAAW,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CACjC,uBAAK,SAAS,EAAC,oCAAoC,EAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,gBAC7G,KAAC,SAAS,KAAG,IACT,CACP,IACA,CACJ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
var Mask = function (_a) {
|
|
14
|
+
var text = _a.text, elementRef = _a.elementRef;
|
|
15
|
+
return text ? (_jsx("div", __assign({ ref: elementRef, className: "smartapp-user-dropdown__container--mask" }, { children: text }))) : null;
|
|
16
|
+
};
|
|
17
|
+
export default Mask;
|
|
18
|
+
//# sourceMappingURL=Mask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mask.js","sourceRoot":"","sources":["../../../../../src/сomponents/UserDropdown/components/Mask.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAOA,IAAM,IAAI,GAAG,UAAC,EAA2B;QAAzB,IAAI,UAAA,EAAE,UAAU,gBAAA;IAC9B,OAAA,IAAI,CAAC,CAAC,CAAC,CACL,uBAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,yCAAyC,gBACtE,IAAI,IACD,CACP,CAAC,CAAC,CAAC,IAAI;AAJR,CAIQ,CAAA;AAEV,eAAe,IAAI,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
var Title = function (_a) {
|
|
14
|
+
var text = _a.text;
|
|
15
|
+
return (text ? _jsx("div", __assign({ className: "smartapp-user-dropdown__title" }, { children: text })) : null);
|
|
16
|
+
};
|
|
17
|
+
export default Title;
|
|
18
|
+
//# sourceMappingURL=Title.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Title.js","sourceRoot":"","sources":["../../../../../src/сomponents/UserDropdown/components/Title.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAMA,IAAM,KAAK,GAAG,UAAC,EAAgB;QAAd,IAAI,UAAA;IAAe,OAAA,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAK,SAAS,EAAC,+BAA+B,gBAAE,IAAI,IAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAA3E,CAA2E,CAAA;AAE/G,eAAe,KAAK,CAAA"}
|
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
import { TCorporateContacts } from './types';
|
|
2
|
+
export declare const THREE_DIGIT_NUMBER_WIDTH = 48;
|
|
3
|
+
export declare const TWO_DIGIT_NUMBER_WIDTH = 40;
|
|
4
|
+
export declare const SINGLE_DIGIT_NUMBER_WIDTH = 32;
|
|
5
|
+
export declare const INPUT_SPACE_WIDTH = 46;
|
|
6
|
+
export declare const GAP = 8;
|
|
7
|
+
export declare const USER_TYPING_TIMEOUT = 1000;
|
|
8
|
+
export declare const CLEAR_USER_TYPING_TIMEOUT = 500;
|
|
9
|
+
export declare const INPUT = "input";
|
|
10
|
+
export declare const EMPTY_STRING = "";
|
|
11
|
+
export declare const BUBBLES: {
|
|
12
|
+
bubbles: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare const PADDING_WITH_CLEAR_ICON = "40px";
|
|
15
|
+
export declare const CTS_USER = "cts_user";
|
|
16
|
+
export declare const CTS_USER_ALTERNATIVE = "ctsUser";
|
|
17
|
+
export declare const DEFAULT_MENU_LIST_MAX_HEIGHT = 220;
|
|
18
|
+
export declare const DEFAULT_MAX_ROWS_COUNT_TO_COLLAPSE_CHIPS = 2;
|
|
19
|
+
export declare const INITIAL_CORPORATE_CONTACTS: TCorporateContacts;
|
|
20
|
+
export declare const MATCH_SCORES: {
|
|
21
|
+
readonly EMAIL_STARTS_WITH: 6;
|
|
22
|
+
readonly EMAIL_CONTAINS: 5;
|
|
23
|
+
readonly NAME_FIRST_WORD_STARTS_WITH: 4;
|
|
24
|
+
readonly NAME_ANY_WORD_STARTS_WITH: 3;
|
|
25
|
+
readonly NAME_CONTAINS: 2;
|
|
26
|
+
readonly NO_MATCH: 0;
|
|
27
|
+
};
|
|
1
28
|
export declare enum CONTACT_TYPES {
|
|
2
29
|
myContact = "My contact",
|
|
3
30
|
GALContact = "GAL contact",
|
|
@@ -6,3 +33,34 @@ export declare enum CONTACT_TYPES {
|
|
|
6
33
|
meetingRoom = "Meeting room",
|
|
7
34
|
roomList = "Room list"
|
|
8
35
|
}
|
|
36
|
+
export declare enum MENU_ACTIONS {
|
|
37
|
+
close = "menu-close"
|
|
38
|
+
}
|
|
39
|
+
export declare enum INPUT_ACTIONS {
|
|
40
|
+
change = "input-change",
|
|
41
|
+
blur = "input-blur"
|
|
42
|
+
}
|
|
43
|
+
export declare enum EMAIL_SEPARATORS {
|
|
44
|
+
semicolon = ";",
|
|
45
|
+
comma = ","
|
|
46
|
+
}
|
|
47
|
+
export declare enum EXCLUDED_FIELDS {
|
|
48
|
+
value = "value",
|
|
49
|
+
label = "label",
|
|
50
|
+
layoutType = "layoutType",
|
|
51
|
+
platform = "platform",
|
|
52
|
+
language = "language",
|
|
53
|
+
isEnteredByUser = "isEnteredByUser",
|
|
54
|
+
isMyContacts = "isMyContacts",
|
|
55
|
+
isChipsCollapsable = "isChipsCollapsable",
|
|
56
|
+
isSelectedChipHasTooltip = "isSelectedChipHasTooltip",
|
|
57
|
+
isInputFocused = "isInputFocused",
|
|
58
|
+
setIsSearchable = "setIsSearchable",
|
|
59
|
+
selectRef = "selectRef",
|
|
60
|
+
setModalData = "setModalData",
|
|
61
|
+
collapsableChipsCount = "collapsableChipsCount",
|
|
62
|
+
lastVisibleChipIndex = "lastVisibleChipIndex",
|
|
63
|
+
fontFamily = "fontFamily"
|
|
64
|
+
}
|
|
65
|
+
export declare const COMMON_FIELDS_TO_OMIT: string[];
|
|
66
|
+
export declare const COMMON_FIELDS_TO_PICK: string[];
|
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
import { omit } from 'lodash';
|
|
2
|
+
export var THREE_DIGIT_NUMBER_WIDTH = 48;
|
|
3
|
+
export var TWO_DIGIT_NUMBER_WIDTH = 40;
|
|
4
|
+
export var SINGLE_DIGIT_NUMBER_WIDTH = 32;
|
|
5
|
+
export var INPUT_SPACE_WIDTH = 46;
|
|
6
|
+
export var GAP = 8;
|
|
7
|
+
export var USER_TYPING_TIMEOUT = 1000;
|
|
8
|
+
export var CLEAR_USER_TYPING_TIMEOUT = 500;
|
|
9
|
+
export var INPUT = 'input';
|
|
10
|
+
export var EMPTY_STRING = '';
|
|
11
|
+
export var BUBBLES = { bubbles: true };
|
|
12
|
+
export var PADDING_WITH_CLEAR_ICON = '40px';
|
|
13
|
+
export var CTS_USER = 'cts_user';
|
|
14
|
+
export var CTS_USER_ALTERNATIVE = 'ctsUser';
|
|
15
|
+
export var DEFAULT_MENU_LIST_MAX_HEIGHT = 220;
|
|
16
|
+
export var DEFAULT_MAX_ROWS_COUNT_TO_COLLAPSE_CHIPS = 2;
|
|
17
|
+
export var INITIAL_CORPORATE_CONTACTS = { corporateContacts: [], corporateContactsSet: new Set() };
|
|
18
|
+
export var MATCH_SCORES = {
|
|
19
|
+
EMAIL_STARTS_WITH: 6,
|
|
20
|
+
EMAIL_CONTAINS: 5,
|
|
21
|
+
NAME_FIRST_WORD_STARTS_WITH: 4,
|
|
22
|
+
NAME_ANY_WORD_STARTS_WITH: 3,
|
|
23
|
+
NAME_CONTAINS: 2,
|
|
24
|
+
NO_MATCH: 0,
|
|
25
|
+
};
|
|
1
26
|
export var CONTACT_TYPES;
|
|
2
27
|
(function (CONTACT_TYPES) {
|
|
3
28
|
CONTACT_TYPES["myContact"] = "My contact";
|
|
@@ -7,4 +32,39 @@ export var CONTACT_TYPES;
|
|
|
7
32
|
CONTACT_TYPES["meetingRoom"] = "Meeting room";
|
|
8
33
|
CONTACT_TYPES["roomList"] = "Room list";
|
|
9
34
|
})(CONTACT_TYPES || (CONTACT_TYPES = {}));
|
|
35
|
+
export var MENU_ACTIONS;
|
|
36
|
+
(function (MENU_ACTIONS) {
|
|
37
|
+
MENU_ACTIONS["close"] = "menu-close";
|
|
38
|
+
})(MENU_ACTIONS || (MENU_ACTIONS = {}));
|
|
39
|
+
export var INPUT_ACTIONS;
|
|
40
|
+
(function (INPUT_ACTIONS) {
|
|
41
|
+
INPUT_ACTIONS["change"] = "input-change";
|
|
42
|
+
INPUT_ACTIONS["blur"] = "input-blur";
|
|
43
|
+
})(INPUT_ACTIONS || (INPUT_ACTIONS = {}));
|
|
44
|
+
export var EMAIL_SEPARATORS;
|
|
45
|
+
(function (EMAIL_SEPARATORS) {
|
|
46
|
+
EMAIL_SEPARATORS["semicolon"] = ";";
|
|
47
|
+
EMAIL_SEPARATORS["comma"] = ",";
|
|
48
|
+
})(EMAIL_SEPARATORS || (EMAIL_SEPARATORS = {}));
|
|
49
|
+
export var EXCLUDED_FIELDS;
|
|
50
|
+
(function (EXCLUDED_FIELDS) {
|
|
51
|
+
EXCLUDED_FIELDS["value"] = "value";
|
|
52
|
+
EXCLUDED_FIELDS["label"] = "label";
|
|
53
|
+
EXCLUDED_FIELDS["layoutType"] = "layoutType";
|
|
54
|
+
EXCLUDED_FIELDS["platform"] = "platform";
|
|
55
|
+
EXCLUDED_FIELDS["language"] = "language";
|
|
56
|
+
EXCLUDED_FIELDS["isEnteredByUser"] = "isEnteredByUser";
|
|
57
|
+
EXCLUDED_FIELDS["isMyContacts"] = "isMyContacts";
|
|
58
|
+
EXCLUDED_FIELDS["isChipsCollapsable"] = "isChipsCollapsable";
|
|
59
|
+
EXCLUDED_FIELDS["isSelectedChipHasTooltip"] = "isSelectedChipHasTooltip";
|
|
60
|
+
EXCLUDED_FIELDS["isInputFocused"] = "isInputFocused";
|
|
61
|
+
EXCLUDED_FIELDS["setIsSearchable"] = "setIsSearchable";
|
|
62
|
+
EXCLUDED_FIELDS["selectRef"] = "selectRef";
|
|
63
|
+
EXCLUDED_FIELDS["setModalData"] = "setModalData";
|
|
64
|
+
EXCLUDED_FIELDS["collapsableChipsCount"] = "collapsableChipsCount";
|
|
65
|
+
EXCLUDED_FIELDS["lastVisibleChipIndex"] = "lastVisibleChipIndex";
|
|
66
|
+
EXCLUDED_FIELDS["fontFamily"] = "fontFamily";
|
|
67
|
+
})(EXCLUDED_FIELDS || (EXCLUDED_FIELDS = {}));
|
|
68
|
+
export var COMMON_FIELDS_TO_OMIT = Object.keys(omit(EXCLUDED_FIELDS, [EXCLUDED_FIELDS.language, EXCLUDED_FIELDS.isMyContacts, EXCLUDED_FIELDS.isEnteredByUser]));
|
|
69
|
+
export var COMMON_FIELDS_TO_PICK = ['isWarning', 'isLoading', 'isOrganizerShort', 'isResetChipsToInputValue', 'userType', 'uid', 'organizerName'];
|
|
10
70
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/сomponents/UserDropdown/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,yCAAwB,CAAA;IACxB,2CAA0B,CAAA;IAC1B,yCAAwB,CAAA;IACxB,uCAAsB,CAAA;IACtB,6CAA4B,CAAA;IAC5B,uCAAsB,CAAA;AACxB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/сomponents/UserDropdown/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { RefObject, SetStateAction } from 'react';
|
|
2
|
+
import { MultiValue } from 'react-select';
|
|
3
|
+
import { MultiOptionType, TApplyFilteringToOption, TCollapseChips, TCorporateEntity, TGenerateContactsOptionsToSelect, TGenerateCorporateOptionsToSelect, TGenerateEnteredByUserOption, TLocalEntity, TMyContactsEntries, TRetrieveFilteredContacts, TUser } from './types';
|
|
4
|
+
export declare const generateCorporateOptionsToSelect: ({ language, options, setIsSearchable, setModalData, ...remainingFields }: TGenerateCorporateOptionsToSelect) => {
|
|
5
|
+
language: string;
|
|
6
|
+
setIsSearchable: (isSearchable: boolean) => void;
|
|
7
|
+
setModalData: (modalData: import("./types").TModalData | null) => void;
|
|
4
8
|
platform: string;
|
|
5
9
|
layoutType: string;
|
|
6
10
|
isChipsCollapsable: boolean;
|
|
7
|
-
isInputFocused:
|
|
8
|
-
selectRef:
|
|
11
|
+
isInputFocused: RefObject<boolean>;
|
|
12
|
+
selectRef: RefObject<any>;
|
|
9
13
|
value: string;
|
|
10
14
|
label: string;
|
|
11
15
|
name: string;
|
|
@@ -27,16 +31,65 @@ export declare const generateCorporateOption: ({ option: { name, avatar, email,
|
|
|
27
31
|
isNotRemovable: boolean | undefined;
|
|
28
32
|
isBusyAtSelectedTime: boolean | undefined;
|
|
29
33
|
isCachedContact: boolean | undefined;
|
|
34
|
+
}[];
|
|
35
|
+
export declare const generateContactsOptionsToSelect: ({ options, ...remainingFields }: TGenerateContactsOptionsToSelect) => {
|
|
36
|
+
platform: string;
|
|
37
|
+
layoutType: string;
|
|
38
|
+
isChipsCollapsable: boolean;
|
|
39
|
+
isInputFocused: RefObject<boolean>;
|
|
40
|
+
selectRef: RefObject<any>;
|
|
41
|
+
isMyContacts?: boolean | undefined;
|
|
42
|
+
isLocalContact?: boolean | undefined;
|
|
43
|
+
value: string;
|
|
44
|
+
label: string;
|
|
45
|
+
name: string | null;
|
|
46
|
+
avatar: string | null;
|
|
47
|
+
email: string;
|
|
48
|
+
isPrivateSchedule: boolean | undefined;
|
|
49
|
+
isNotRemovable: boolean | undefined;
|
|
50
|
+
isBusyAtSelectedTime: boolean | undefined;
|
|
51
|
+
}[];
|
|
52
|
+
export declare const generateEnteredByUserOption: ({ email, ...remainingFields }: TGenerateEnteredByUserOption) => {
|
|
53
|
+
platform: string;
|
|
54
|
+
layoutType: string;
|
|
55
|
+
isChipsCollapsable: boolean;
|
|
56
|
+
isInputFocused: RefObject<boolean>;
|
|
57
|
+
selectRef: RefObject<any>;
|
|
58
|
+
value: string;
|
|
59
|
+
label: string;
|
|
60
|
+
email: string;
|
|
61
|
+
isEnteredByUser: boolean;
|
|
30
62
|
};
|
|
31
|
-
export declare const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
63
|
+
export declare const IndicatorSeparator: () => null;
|
|
64
|
+
export declare const DropdownIndicator: () => null;
|
|
65
|
+
export declare const MultiValueRemove: () => null;
|
|
66
|
+
export declare const LoadingIndicator: () => null;
|
|
67
|
+
export declare const sortContacts: <T extends TUser>(contacts: T[], query: string) => T[];
|
|
68
|
+
export declare const checkIsValueIsEmail: (inputValue: string) => boolean;
|
|
69
|
+
export declare const calculateHorizontalPadding: (elementRef: RefObject<HTMLDivElement | null>, setElementWidth: (value: SetStateAction<number>) => void) => string;
|
|
70
|
+
export declare const extractInputEmails: (inputValue: string) => string[];
|
|
71
|
+
export declare const applyFilteringToOption: ({ isFilteringDisabled, inputValue, data: { label, email: optionEmail }, selectedUsers, }: TApplyFilteringToOption) => boolean;
|
|
72
|
+
export declare const setCaretPosition: (input: HTMLInputElement, position: number) => void;
|
|
73
|
+
export declare const setCaretInEmptyInput: (input: HTMLInputElement) => void;
|
|
74
|
+
export declare const retrieveFilteredContacts: ({ query, corporateEntries, myContactsEntries, checkIsEmailToExclude }: TRetrieveFilteredContacts) => {
|
|
75
|
+
filteredCorporateContacts: TCorporateEntity[];
|
|
76
|
+
filteredLocalContacts: TLocalEntity[];
|
|
77
|
+
filteredMyContacts: TMyContactsEntries[];
|
|
78
|
+
};
|
|
79
|
+
export declare const transformSelectedUsers: (selectedUsers: MultiValue<MultiOptionType>) => TUser[];
|
|
80
|
+
export declare const collapseChips: ({ userDropdownId, maxRowsCountToCollapseChips, maskWidth, suffixWidth, chips }: TCollapseChips) => {
|
|
81
|
+
collapsableChips: number;
|
|
82
|
+
numberOfVisibleChips: number;
|
|
83
|
+
chipLabelWithMaxWidth: string;
|
|
84
|
+
};
|
|
85
|
+
export declare const unCollapseChips: (chipLabelWithMaxWidth: string, chips: HTMLDivElement[]) => void;
|
|
86
|
+
export declare const retrieveChipsElements: (userDropdownId: string) => HTMLDivElement[];
|
|
87
|
+
export declare const transformSelectedEntity: (entity: TUser, commonFields: any) => {
|
|
35
88
|
platform: string;
|
|
36
89
|
layoutType: string;
|
|
37
90
|
isChipsCollapsable: boolean;
|
|
38
|
-
isInputFocused:
|
|
39
|
-
selectRef:
|
|
91
|
+
isInputFocused: RefObject<boolean>;
|
|
92
|
+
selectRef: RefObject<any>;
|
|
40
93
|
value: string;
|
|
41
94
|
label: string;
|
|
42
95
|
name: string;
|
|
@@ -58,13 +111,12 @@ export declare const generateCorporateOptionsToSelect: ({ language, options, set
|
|
|
58
111
|
isNotRemovable: boolean | undefined;
|
|
59
112
|
isBusyAtSelectedTime: boolean | undefined;
|
|
60
113
|
isCachedContact: boolean | undefined;
|
|
61
|
-
}
|
|
62
|
-
export declare const generateContactsOption: ({ option: { name, avatar, email, isPrivateSchedule, isNotRemovable, isBusyAtSelectedTime, contacts }, ...remainingFields }: TGenerateContactsOption) => {
|
|
114
|
+
} | {
|
|
63
115
|
platform: string;
|
|
64
116
|
layoutType: string;
|
|
65
117
|
isChipsCollapsable: boolean;
|
|
66
|
-
isInputFocused:
|
|
67
|
-
selectRef:
|
|
118
|
+
isInputFocused: RefObject<boolean>;
|
|
119
|
+
selectRef: RefObject<any>;
|
|
68
120
|
isMyContacts?: boolean | undefined;
|
|
69
121
|
isLocalContact?: boolean | undefined;
|
|
70
122
|
value: string;
|
|
@@ -75,37 +127,14 @@ export declare const generateContactsOption: ({ option: { name, avatar, email, i
|
|
|
75
127
|
isPrivateSchedule: boolean | undefined;
|
|
76
128
|
isNotRemovable: boolean | undefined;
|
|
77
129
|
isBusyAtSelectedTime: boolean | undefined;
|
|
78
|
-
}
|
|
79
|
-
export declare const generateContactsOptionsToSelect: ({ options, ...remainingFields }: TGenerateContactsOptionsToSelect) => {
|
|
130
|
+
} | {
|
|
80
131
|
platform: string;
|
|
81
132
|
layoutType: string;
|
|
82
133
|
isChipsCollapsable: boolean;
|
|
83
|
-
isInputFocused:
|
|
84
|
-
selectRef:
|
|
85
|
-
isMyContacts?: boolean | undefined;
|
|
86
|
-
isLocalContact?: boolean | undefined;
|
|
87
|
-
value: string;
|
|
88
|
-
label: string;
|
|
89
|
-
name: string | null;
|
|
90
|
-
avatar: string | null;
|
|
91
|
-
email: string;
|
|
92
|
-
isPrivateSchedule: boolean | undefined;
|
|
93
|
-
isNotRemovable: boolean | undefined;
|
|
94
|
-
isBusyAtSelectedTime: boolean | undefined;
|
|
95
|
-
}[];
|
|
96
|
-
export declare const generateEnteredByUserOption: ({ email, ...remainingFields }: TGenerateEnteredByUserOption) => {
|
|
97
|
-
platform: string;
|
|
98
|
-
layoutType: string;
|
|
99
|
-
isChipsCollapsable: boolean;
|
|
100
|
-
isInputFocused: import("react").RefObject<boolean>;
|
|
101
|
-
selectRef: import("react").RefObject<any>;
|
|
134
|
+
isInputFocused: RefObject<boolean>;
|
|
135
|
+
selectRef: RefObject<any>;
|
|
102
136
|
value: string;
|
|
103
137
|
label: string;
|
|
104
138
|
email: string;
|
|
105
139
|
isEnteredByUser: boolean;
|
|
106
140
|
};
|
|
107
|
-
export declare const IndicatorSeparator: () => null;
|
|
108
|
-
export declare const DropdownIndicator: () => null;
|
|
109
|
-
export declare const MultiValueRemove: () => null;
|
|
110
|
-
export declare const LoadingIndicator: () => null;
|
|
111
|
-
export declare const sortContacts: <T extends TUser>(contacts: T[], query: string) => T[];
|
|
@@ -29,11 +29,12 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
29
29
|
}
|
|
30
30
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
31
31
|
};
|
|
32
|
+
import { ru } from 'convert-layout';
|
|
33
|
+
import { isEmpty, omit, uniq } from 'lodash';
|
|
32
34
|
import { transliterate as tr } from 'transliteration';
|
|
33
|
-
import
|
|
34
|
-
import {
|
|
35
|
-
|
|
36
|
-
export var generateCorporateOption = function (_a) {
|
|
35
|
+
import { AFFIX_INPUT_PH, DEFAULT_INPUT_PADDING, EMAIL_FIELD, SPACE } from '../../constants';
|
|
36
|
+
import { BUBBLES, COMMON_FIELDS_TO_OMIT, CTS_USER, CTS_USER_ALTERNATIVE, EMPTY_STRING, EXCLUDED_FIELDS, GAP, INITIAL_CORPORATE_CONTACTS, INPUT, INPUT_SPACE_WIDTH, MATCH_SCORES, SINGLE_DIGIT_NUMBER_WIDTH, THREE_DIGIT_NUMBER_WIDTH, TWO_DIGIT_NUMBER_WIDTH, } from './constants';
|
|
37
|
+
var generateCorporateOption = function (_a) {
|
|
37
38
|
var _b = _a.option, name = _b.name, avatar = _b.avatar, email = _b.email, contacts = _b.contacts, serverName = _b.serverName, company = _b.company, userType = _b.userType, uid = _b.uid, department = _b.department, companyPosition = _b.companyPosition, isPrivateSchedule = _b.isPrivateSchedule, isNotRemovable = _b.isNotRemovable, isBusyAtSelectedTime = _b.isBusyAtSelectedTime, isCachedContact = _b.isCachedContact, remainingFields = __rest(_a, ["option"]);
|
|
38
39
|
return (__assign({ value: contacts[0].userHuid, label: name, name: name, avatar: avatar, email: email || contacts[0].contact, contacts: contacts, userType: userType, uid: uid, serverName: serverName, company: company, department: department, companyPosition: companyPosition, isPrivateSchedule: isPrivateSchedule, isNotRemovable: isNotRemovable, isBusyAtSelectedTime: isBusyAtSelectedTime, isCachedContact: isCachedContact }, remainingFields));
|
|
39
40
|
};
|
|
@@ -41,10 +42,10 @@ export var generateCorporateOptionsToSelect = function (_a) {
|
|
|
41
42
|
var language = _a.language, options = _a.options, setIsSearchable = _a.setIsSearchable, setModalData = _a.setModalData, remainingFields = __rest(_a, ["language", "options", "setIsSearchable", "setModalData"]);
|
|
42
43
|
return options.map(function (option) { return (__assign(__assign({}, generateCorporateOption(__assign({ option: option }, remainingFields))), { language: language, setIsSearchable: setIsSearchable, setModalData: setModalData })); });
|
|
43
44
|
};
|
|
44
|
-
|
|
45
|
+
var generateContactsOption = function (_a) {
|
|
45
46
|
var _b;
|
|
46
47
|
var _c = _a.option, name = _c.name, avatar = _c.avatar, email = _c.email, isPrivateSchedule = _c.isPrivateSchedule, isNotRemovable = _c.isNotRemovable, isBusyAtSelectedTime = _c.isBusyAtSelectedTime, contacts = _c.contacts, remainingFields = __rest(_a, ["option"]);
|
|
47
|
-
var contactEmail = ((_b = contacts === null || contacts === void 0 ? void 0 : contacts[0]) === null || _b === void 0 ? void 0 : _b.contact) || email ||
|
|
48
|
+
var contactEmail = ((_b = contacts === null || contacts === void 0 ? void 0 : contacts[0]) === null || _b === void 0 ? void 0 : _b.contact) || email || EMPTY_STRING;
|
|
48
49
|
return __assign({ value: contactEmail, label: name || contactEmail, name: name, avatar: avatar, email: contactEmail, isPrivateSchedule: isPrivateSchedule, isNotRemovable: isNotRemovable, isBusyAtSelectedTime: isBusyAtSelectedTime }, remainingFields);
|
|
49
50
|
};
|
|
50
51
|
export var generateContactsOptionsToSelect = function (_a) {
|
|
@@ -72,7 +73,7 @@ var generateQueryVariants = function (query) { return ({
|
|
|
72
73
|
toEng: ru.toEn(query),
|
|
73
74
|
fromEng: ru.fromEn(query),
|
|
74
75
|
}); };
|
|
75
|
-
var extractFirstWord = function (text) { var _a; return (_a = text.split(SPACE)[0]) !== null && _a !== void 0 ? _a :
|
|
76
|
+
var extractFirstWord = function (text) { var _a; return (_a = text.split(SPACE)[0]) !== null && _a !== void 0 ? _a : EMPTY_STRING; };
|
|
76
77
|
var createMatchers = function (queryVariants) {
|
|
77
78
|
var variants = Object.values(queryVariants);
|
|
78
79
|
var startsWith = function (text) { return variants.some(function (variant) { return text.startsWith(variant); }); };
|
|
@@ -106,11 +107,11 @@ var scoreNameMatch = function (name, _a) {
|
|
|
106
107
|
return MATCH_SCORES.NO_MATCH;
|
|
107
108
|
};
|
|
108
109
|
var calculateContactScore = function (_a, matchers) {
|
|
109
|
-
var email = _a.email, _b = _a.name, name = _b === void 0 ?
|
|
110
|
+
var email = _a.email, _b = _a.name, name = _b === void 0 ? EMPTY_STRING : _b;
|
|
110
111
|
return ({
|
|
111
112
|
emailScore: scoreEmailMatch(email, matchers),
|
|
112
|
-
nameScore: scoreNameMatch(name ||
|
|
113
|
-
originalName: name ||
|
|
113
|
+
nameScore: scoreNameMatch(name || EMPTY_STRING, matchers),
|
|
114
|
+
originalName: name || EMPTY_STRING,
|
|
114
115
|
});
|
|
115
116
|
};
|
|
116
117
|
var compareContacts = function (_a, _b) {
|
|
@@ -127,7 +128,7 @@ export var sortContacts = function (contacts, query) {
|
|
|
127
128
|
return __spreadArray([], contacts, true).sort(function (_a, _b) {
|
|
128
129
|
var nameA = _a.name;
|
|
129
130
|
var nameB = _b.name;
|
|
130
|
-
return (nameA ||
|
|
131
|
+
return (nameA || EMPTY_STRING).localeCompare(nameB || EMPTY_STRING);
|
|
131
132
|
});
|
|
132
133
|
var queryVariants = generateQueryVariants(query.toLowerCase());
|
|
133
134
|
var matchers = createMatchers(queryVariants);
|
|
@@ -142,4 +143,171 @@ export var sortContacts = function (contacts, query) {
|
|
|
142
143
|
return contact;
|
|
143
144
|
});
|
|
144
145
|
};
|
|
146
|
+
export var checkIsValueIsEmail = function (inputValue) {
|
|
147
|
+
var regex = new RegExp(/^(([^<>()[\].,;:\s@"]+(\.[^<>()[\].,;:\s@"]+)*)|(".+"))@(([^<>()[\].,;:\s@"]+\.)+[^<>()[\].,;:\s@"]{2,})$/);
|
|
148
|
+
return regex.test(inputValue);
|
|
149
|
+
};
|
|
150
|
+
export var calculateHorizontalPadding = function (elementRef, setElementWidth) {
|
|
151
|
+
var _a, _b;
|
|
152
|
+
var elementWidth = ((_b = (_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) === null || _b === void 0 ? void 0 : _b.width) || null;
|
|
153
|
+
elementWidth && setElementWidth(elementWidth + GAP);
|
|
154
|
+
return "".concat(elementWidth ? elementWidth + AFFIX_INPUT_PH : DEFAULT_INPUT_PADDING, "px");
|
|
155
|
+
};
|
|
156
|
+
export var extractInputEmails = function (inputValue) {
|
|
157
|
+
return inputValue
|
|
158
|
+
.split(/[,;]+/)
|
|
159
|
+
.map(function (inputStr) { return inputStr.trim(); })
|
|
160
|
+
.filter(function (inputStr) { return !!inputStr.length; });
|
|
161
|
+
};
|
|
162
|
+
var checkIsContainsValue = function (_a) {
|
|
163
|
+
var label = _a.label, email = _a.email, value = _a.value;
|
|
164
|
+
var _b = label.split(SPACE), name = _b[0], surname = _b[1];
|
|
165
|
+
var reversedLabel = "".concat(surname).concat(SPACE).concat(name);
|
|
166
|
+
return label.toLowerCase().includes(value) || reversedLabel.toLowerCase().includes(value) || email.toLowerCase().includes(value);
|
|
167
|
+
};
|
|
168
|
+
export var applyFilteringToOption = function (_a) {
|
|
169
|
+
var isFilteringDisabled = _a.isFilteringDisabled, inputValue = _a.inputValue, _b = _a.data, label = _b.label, optionEmail = _b.email, selectedUsers = _a.selectedUsers;
|
|
170
|
+
var originInputValue = inputValue.toLowerCase();
|
|
171
|
+
var transliteratedInputValue = tr(originInputValue);
|
|
172
|
+
var toEngInputValue = ru.toEn(originInputValue);
|
|
173
|
+
var fromEngInputValue = ru.fromEn(originInputValue);
|
|
174
|
+
var isUserAlreadySelected = selectedUsers.find(function (_a) {
|
|
175
|
+
var email = _a.email;
|
|
176
|
+
return email === optionEmail;
|
|
177
|
+
});
|
|
178
|
+
var isContainsInputValue = [originInputValue, transliteratedInputValue, toEngInputValue, fromEngInputValue].some(function (value) {
|
|
179
|
+
return checkIsContainsValue({ label: label, email: optionEmail, value: value });
|
|
180
|
+
});
|
|
181
|
+
if (isFilteringDisabled)
|
|
182
|
+
return !isEmpty(selectedUsers) ? !isUserAlreadySelected : true;
|
|
183
|
+
return !isEmpty(selectedUsers) ? !isUserAlreadySelected && isContainsInputValue : isContainsInputValue;
|
|
184
|
+
};
|
|
185
|
+
var calculateCounterWidth = function (counterNumber) {
|
|
186
|
+
if (counterNumber >= 100)
|
|
187
|
+
return THREE_DIGIT_NUMBER_WIDTH;
|
|
188
|
+
if (counterNumber >= 10)
|
|
189
|
+
return TWO_DIGIT_NUMBER_WIDTH;
|
|
190
|
+
return SINGLE_DIGIT_NUMBER_WIDTH;
|
|
191
|
+
};
|
|
192
|
+
var dispatchInputEvent = function (input) { return input.dispatchEvent(new Event(INPUT, BUBBLES)); };
|
|
193
|
+
var generateTruncatedElementY = function (element) { return Math.trunc(element.getBoundingClientRect().y); };
|
|
194
|
+
export var setCaretPosition = function (input, position) { return input.setSelectionRange(position, position); };
|
|
195
|
+
export var setCaretInEmptyInput = function (input) {
|
|
196
|
+
input.value = SPACE;
|
|
197
|
+
dispatchInputEvent(input);
|
|
198
|
+
setTimeout(function () {
|
|
199
|
+
input.value = EMPTY_STRING;
|
|
200
|
+
dispatchInputEvent(input);
|
|
201
|
+
setCaretPosition(input, 0);
|
|
202
|
+
}, 0);
|
|
203
|
+
};
|
|
204
|
+
export var retrieveFilteredContacts = function (_a) {
|
|
205
|
+
var query = _a.query, corporateEntries = _a.corporateEntries, myContactsEntries = _a.myContactsEntries, checkIsEmailToExclude = _a.checkIsEmailToExclude;
|
|
206
|
+
var _b = corporateEntries || {}, _c = _b.corpPhonebookEntries, corpPhonebookEntries = _c === void 0 ? [] : _c, _d = _b.trustSearchEntries, trustSearchEntries = _d === void 0 ? [] : _d, _e = _b.cachedSearchEntries, cachedSearchEntries = _e === void 0 ? [] : _e, _f = _b.localPhonebookEntries, localPhonebookEntries = _f === void 0 ? [] : _f;
|
|
207
|
+
var _g = __spreadArray(__spreadArray(__spreadArray([], corpPhonebookEntries, true), trustSearchEntries, true), cachedSearchEntries.map(function (entity) { return (__assign(__assign({}, entity), { isCachedContact: true })); }), true).reduce(function (acc, entity) {
|
|
208
|
+
var _a;
|
|
209
|
+
var email = entity.email, contacts = entity.contacts;
|
|
210
|
+
var emailToCheck = email || ((_a = contacts === null || contacts === void 0 ? void 0 : contacts.find(function (_a) {
|
|
211
|
+
var contactType = _a.contactType;
|
|
212
|
+
return contactType === EMAIL_FIELD;
|
|
213
|
+
})) === null || _a === void 0 ? void 0 : _a.contact);
|
|
214
|
+
if (emailToCheck && !acc.corporateContactsSet.has(emailToCheck)) {
|
|
215
|
+
acc.corporateContacts.push(entity);
|
|
216
|
+
acc.corporateContactsSet.add(emailToCheck);
|
|
217
|
+
}
|
|
218
|
+
return acc;
|
|
219
|
+
}, INITIAL_CORPORATE_CONTACTS), corporateContacts = _g.corporateContacts, corporateContactsSet = _g.corporateContactsSet;
|
|
220
|
+
var sortedCorporateContacts = sortContacts(corporateContacts, query);
|
|
221
|
+
var sortedLocalContacts = sortContacts(localPhonebookEntries, query);
|
|
222
|
+
var sortedMyContacts = sortContacts(myContactsEntries || [], query);
|
|
223
|
+
var filteredCorporateContacts = sortedCorporateContacts.filter(function (_a) {
|
|
224
|
+
var _b;
|
|
225
|
+
var email = _a.email, contacts = _a.contacts;
|
|
226
|
+
return [email, (_b = contacts[0]) === null || _b === void 0 ? void 0 : _b.contact].every(function (email) { return !checkIsEmailToExclude(email); });
|
|
227
|
+
});
|
|
228
|
+
var filteredLocalContacts = sortedLocalContacts.filter(function (_a) {
|
|
229
|
+
var _b;
|
|
230
|
+
var email = _a.email, contacts = _a.contacts;
|
|
231
|
+
var contact = (_b = contacts[0]) === null || _b === void 0 ? void 0 : _b.contact;
|
|
232
|
+
var emailToCheck = email || contact;
|
|
233
|
+
return !checkIsEmailToExclude(email) && !checkIsEmailToExclude(contact) && !corporateContactsSet.has(emailToCheck);
|
|
234
|
+
});
|
|
235
|
+
var filteredMyContacts = sortedMyContacts.filter(function (_a) {
|
|
236
|
+
var email = _a.email;
|
|
237
|
+
return !checkIsEmailToExclude(email) && !corporateContactsSet.has(email);
|
|
238
|
+
});
|
|
239
|
+
return { filteredCorporateContacts: filteredCorporateContacts, filteredLocalContacts: filteredLocalContacts, filteredMyContacts: filteredMyContacts };
|
|
240
|
+
};
|
|
241
|
+
export var transformSelectedUsers = function (selectedUsers) {
|
|
242
|
+
var users = [];
|
|
243
|
+
selectedUsers.forEach(function (user) {
|
|
244
|
+
var isEnteredByUser = user.isEnteredByUser, isMyContacts = user.isMyContacts;
|
|
245
|
+
var userToAdd = omit(user, COMMON_FIELDS_TO_OMIT);
|
|
246
|
+
var entryFieldsToExclude = isMyContacts ? [EXCLUDED_FIELDS.isMyContacts] : [EXCLUDED_FIELDS.language];
|
|
247
|
+
var fieldsToExclude = isEnteredByUser ? [EXCLUDED_FIELDS.isEnteredByUser] : entryFieldsToExclude;
|
|
248
|
+
users.push(omit(userToAdd, fieldsToExclude));
|
|
249
|
+
});
|
|
250
|
+
return users;
|
|
251
|
+
};
|
|
252
|
+
export var collapseChips = function (_a) {
|
|
253
|
+
var _b;
|
|
254
|
+
var userDropdownId = _a.userDropdownId, maxRowsCountToCollapseChips = _a.maxRowsCountToCollapseChips, maskWidth = _a.maskWidth, suffixWidth = _a.suffixWidth, chips = _a.chips;
|
|
255
|
+
var collapsableChips = 0;
|
|
256
|
+
var chipLabelWithMaxWidth = EMPTY_STRING;
|
|
257
|
+
var yRows = uniq(chips.map(function (chip) { return generateTruncatedElementY(chip); }));
|
|
258
|
+
var yLastRow = yRows[maxRowsCountToCollapseChips - 1];
|
|
259
|
+
var rowsToHide = yRows.slice(maxRowsCountToCollapseChips);
|
|
260
|
+
var lastRow = [];
|
|
261
|
+
chips.forEach(function (chip) {
|
|
262
|
+
var y = generateTruncatedElementY(chip);
|
|
263
|
+
if (rowsToHide.includes(y))
|
|
264
|
+
collapsableChips += 1;
|
|
265
|
+
else
|
|
266
|
+
y === yLastRow && lastRow.push(chip);
|
|
267
|
+
});
|
|
268
|
+
var counterWidth = calculateCounterWidth(collapsableChips);
|
|
269
|
+
var rowWidth = counterWidth + INPUT_SPACE_WIDTH;
|
|
270
|
+
var dropdownWidth = ((_b = document.querySelector("#".concat(userDropdownId))) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width) - maskWidth - suffixWidth;
|
|
271
|
+
lastRow.forEach(function (chip) {
|
|
272
|
+
var _a;
|
|
273
|
+
rowWidth += chip.getBoundingClientRect().width + GAP;
|
|
274
|
+
if (rowWidth > dropdownWidth) {
|
|
275
|
+
if (lastRow.length > 1) {
|
|
276
|
+
collapsableChips += 1;
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
var emptySpaceWidth = collapsableChips > 0 ? counterWidth + INPUT_SPACE_WIDTH + GAP : INPUT_SPACE_WIDTH;
|
|
280
|
+
chip.style.maxWidth = "".concat(dropdownWidth - emptySpaceWidth, "px");
|
|
281
|
+
chipLabelWithMaxWidth = ((_a = chip.querySelector('.smartapp-chip__info--name')) === null || _a === void 0 ? void 0 : _a.innerHTML) || EMPTY_STRING;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
return { collapsableChips: collapsableChips, numberOfVisibleChips: chips.length - collapsableChips, chipLabelWithMaxWidth: chipLabelWithMaxWidth };
|
|
286
|
+
};
|
|
287
|
+
export var unCollapseChips = function (chipLabelWithMaxWidth, chips) {
|
|
288
|
+
chips.forEach(function (chip) {
|
|
289
|
+
var _a;
|
|
290
|
+
var chipLabel = ((_a = chip.querySelector('.smartapp-chip__info--name')) === null || _a === void 0 ? void 0 : _a.innerHTML) || EMPTY_STRING;
|
|
291
|
+
chipLabel === chipLabelWithMaxWidth && (chip.style.maxWidth = '100%');
|
|
292
|
+
});
|
|
293
|
+
};
|
|
294
|
+
export var retrieveChipsElements = function (userDropdownId) {
|
|
295
|
+
var _a;
|
|
296
|
+
var chipsNodes = ((_a = document.querySelector("#".concat(userDropdownId))) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.smartapp-chip')) || [];
|
|
297
|
+
return Array.from(chipsNodes);
|
|
298
|
+
};
|
|
299
|
+
export var transformSelectedEntity = function (entity, commonFields) {
|
|
300
|
+
var _a;
|
|
301
|
+
var email = entity.email;
|
|
302
|
+
var isEntityContainsContacts = 'contacts' in entity;
|
|
303
|
+
var isCorporateEntity = isEntityContainsContacts && [CTS_USER, CTS_USER_ALTERNATIVE].includes(((_a = entity.contacts[0]) === null || _a === void 0 ? void 0 : _a.userKind) || EMPTY_STRING);
|
|
304
|
+
var generatedNotCorporateEntity = Object.keys(entity).length === 1
|
|
305
|
+
? generateEnteredByUserOption(__assign({ email: email }, commonFields))
|
|
306
|
+
: generateContactsOption(__assign({ option: entity, isMyContacts: true }, commonFields));
|
|
307
|
+
if (isCorporateEntity)
|
|
308
|
+
return generateCorporateOption(__assign({ option: entity }, commonFields));
|
|
309
|
+
return isEntityContainsContacts
|
|
310
|
+
? generateContactsOption(__assign({ option: entity, isLocalContact: true }, commonFields))
|
|
311
|
+
: generatedNotCorporateEntity;
|
|
312
|
+
};
|
|
145
313
|
//# sourceMappingURL=helpers.js.map
|