@fluentui-react-native/experimental-avatar 0.14.26 → 0.14.27
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/CHANGELOG.json +16 -1
- package/CHANGELOG.md +10 -2
- package/jest.config.js +2 -0
- package/lib/titles.d.ts +2 -0
- package/lib/titles.d.ts.map +1 -0
- package/lib/titles.js +109 -0
- package/lib/titles.js.map +1 -0
- package/lib/useAvatar.d.ts +25 -0
- package/lib/useAvatar.d.ts.map +1 -1
- package/lib/useAvatar.js +47 -2
- package/lib/useAvatar.js.map +1 -1
- package/lib/utils/getInitials.d.ts +15 -0
- package/lib/utils/getInitials.d.ts.map +1 -0
- package/lib/utils/getInitials.js +78 -0
- package/lib/utils/getInitials.js.map +1 -0
- package/lib/utils/getInitials.test.d.ts +2 -0
- package/lib/utils/getInitials.test.d.ts.map +1 -0
- package/lib/utils/getInitials.test.js +116 -0
- package/lib/utils/getInitials.test.js.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +2 -0
- package/lib/utils/index.js.map +1 -0
- package/lib-commonjs/titles.d.ts +2 -0
- package/lib-commonjs/titles.d.ts.map +1 -0
- package/lib-commonjs/titles.js +112 -0
- package/lib-commonjs/titles.js.map +1 -0
- package/lib-commonjs/useAvatar.d.ts +25 -0
- package/lib-commonjs/useAvatar.d.ts.map +1 -1
- package/lib-commonjs/useAvatar.js +51 -3
- package/lib-commonjs/useAvatar.js.map +1 -1
- package/lib-commonjs/utils/getInitials.d.ts +15 -0
- package/lib-commonjs/utils/getInitials.d.ts.map +1 -0
- package/lib-commonjs/utils/getInitials.js +82 -0
- package/lib-commonjs/utils/getInitials.js.map +1 -0
- package/lib-commonjs/utils/getInitials.test.d.ts +2 -0
- package/lib-commonjs/utils/getInitials.test.d.ts.map +1 -0
- package/lib-commonjs/utils/getInitials.test.js +118 -0
- package/lib-commonjs/utils/getInitials.test.js.map +1 -0
- package/lib-commonjs/utils/index.d.ts +2 -0
- package/lib-commonjs/utils/index.d.ts.map +1 -0
- package/lib-commonjs/utils/index.js +6 -0
- package/lib-commonjs/utils/index.js.map +1 -0
- package/package.json +1 -1
- package/src/.eslintrc.js +3 -0
- package/src/__tests__/JSAvatar.test.jsx +156 -0
- package/src/__tests__/__snapshots__/JSAvatar.test.jsx.snap +34 -0
- package/src/titles.ts +108 -0
- package/src/useAvatar.ts +51 -1
- package/src/utils/getInitials.test.ts +154 -0
- package/src/utils/getInitials.ts +92 -0
- package/src/utils/index.ts +1 -0
- package/tsconfig.json +2 -1
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,22 @@
|
|
|
2
2
|
"name": "@fluentui-react-native/experimental-avatar",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "Tue,
|
|
5
|
+
"date": "Tue, 17 May 2022 16:41:36 GMT",
|
|
6
|
+
"tag": "@fluentui-react-native/experimental-avatar_v0.14.27",
|
|
7
|
+
"version": "0.14.27",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "v.kozova13@gmail.com",
|
|
12
|
+
"package": "@fluentui-react-native/experimental-avatar",
|
|
13
|
+
"commit": "eac718d8d0ba53e731489a66f412a2f19eccc8b5",
|
|
14
|
+
"comment": "Added getInitials method and tests for that"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"date": "Tue, 10 May 2022 18:33:23 GMT",
|
|
6
21
|
"tag": "@fluentui-react-native/experimental-avatar_v0.14.26",
|
|
7
22
|
"version": "0.14.26",
|
|
8
23
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
# Change Log - @fluentui-react-native/experimental-avatar
|
|
2
2
|
|
|
3
|
-
This log was last generated on Tue,
|
|
3
|
+
This log was last generated on Tue, 17 May 2022 16:41:36 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.14.27
|
|
8
|
+
|
|
9
|
+
Tue, 17 May 2022 16:41:36 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- Added getInitials method and tests for that (v.kozova13@gmail.com)
|
|
14
|
+
|
|
7
15
|
## 0.14.26
|
|
8
16
|
|
|
9
|
-
Tue, 10 May 2022 18:33:
|
|
17
|
+
Tue, 10 May 2022 18:33:23 GMT
|
|
10
18
|
|
|
11
19
|
### Patches
|
|
12
20
|
|
package/jest.config.js
ADDED
package/lib/titles.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"titles.d.ts","sourceRoot":"","sources":["../src/titles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,aA2GjB,CAAC"}
|
package/lib/titles.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
export var titles = new Set([
|
|
2
|
+
'Mr',
|
|
3
|
+
'Mrs',
|
|
4
|
+
'Miss',
|
|
5
|
+
'Ms',
|
|
6
|
+
'Dr',
|
|
7
|
+
'Admiral',
|
|
8
|
+
'Air Comm',
|
|
9
|
+
'Ambassador',
|
|
10
|
+
'Baron',
|
|
11
|
+
'Baroness',
|
|
12
|
+
'Brig & Mrs',
|
|
13
|
+
'Brig Gen',
|
|
14
|
+
'Brigadier',
|
|
15
|
+
'Brother',
|
|
16
|
+
'Canon',
|
|
17
|
+
'Capt',
|
|
18
|
+
'Chief',
|
|
19
|
+
'Cllr',
|
|
20
|
+
'Col',
|
|
21
|
+
'Commander',
|
|
22
|
+
'Commander & Mrs',
|
|
23
|
+
'Consul',
|
|
24
|
+
'Consul General',
|
|
25
|
+
'Count',
|
|
26
|
+
'Countess',
|
|
27
|
+
'Countess of',
|
|
28
|
+
'Cpl',
|
|
29
|
+
'Dame',
|
|
30
|
+
'Deputy',
|
|
31
|
+
'Dr & Mrs',
|
|
32
|
+
'Drs',
|
|
33
|
+
'Duchess',
|
|
34
|
+
'Duke',
|
|
35
|
+
'Earl',
|
|
36
|
+
'Father',
|
|
37
|
+
'General',
|
|
38
|
+
'Gräfin',
|
|
39
|
+
'HE',
|
|
40
|
+
'HMA',
|
|
41
|
+
'Her Grace',
|
|
42
|
+
'His Excellency',
|
|
43
|
+
'Jr',
|
|
44
|
+
'Judge',
|
|
45
|
+
'Justice',
|
|
46
|
+
'Lady',
|
|
47
|
+
'Lic',
|
|
48
|
+
'Llc',
|
|
49
|
+
'Lord',
|
|
50
|
+
'Lord & Lady',
|
|
51
|
+
'Lt',
|
|
52
|
+
'Lt Col',
|
|
53
|
+
'Lt Cpl',
|
|
54
|
+
'M',
|
|
55
|
+
'Madam',
|
|
56
|
+
'Madame',
|
|
57
|
+
'Major',
|
|
58
|
+
'Major General',
|
|
59
|
+
'Marchioness',
|
|
60
|
+
'Marquis',
|
|
61
|
+
'Minister',
|
|
62
|
+
'Mme',
|
|
63
|
+
'Mr & Dr',
|
|
64
|
+
'Mr & Mrs',
|
|
65
|
+
'Mr & Ms',
|
|
66
|
+
'Prince',
|
|
67
|
+
'Princess',
|
|
68
|
+
'Professor',
|
|
69
|
+
'Prof',
|
|
70
|
+
'Prof & Dr',
|
|
71
|
+
'Prof & Mrs',
|
|
72
|
+
'Prof & Rev',
|
|
73
|
+
'Prof Dame',
|
|
74
|
+
'Prof Dr',
|
|
75
|
+
'Pvt',
|
|
76
|
+
'Rabbi',
|
|
77
|
+
'Rear Admiral',
|
|
78
|
+
'Rev',
|
|
79
|
+
'Rev & Mrs',
|
|
80
|
+
'Rev Canon',
|
|
81
|
+
'Rev Dr',
|
|
82
|
+
'Senator',
|
|
83
|
+
'Sgt',
|
|
84
|
+
'Sheriff',
|
|
85
|
+
'Sir',
|
|
86
|
+
'Sir & Lady',
|
|
87
|
+
'Sister',
|
|
88
|
+
'Sr',
|
|
89
|
+
'Sqr. Leader',
|
|
90
|
+
'The Earl of',
|
|
91
|
+
'The Hon',
|
|
92
|
+
'The Hon Dr',
|
|
93
|
+
'The Hon Lady',
|
|
94
|
+
'The Hon Lord',
|
|
95
|
+
'The Hon Mrs',
|
|
96
|
+
'The Hon Sir',
|
|
97
|
+
'The Honourable',
|
|
98
|
+
'The Rt Hon',
|
|
99
|
+
'The Rt Hon Dr',
|
|
100
|
+
'The Rt Hon Lord',
|
|
101
|
+
'The Rt Hon Sir',
|
|
102
|
+
'The Rt Hon Visc',
|
|
103
|
+
'Viscount',
|
|
104
|
+
'van',
|
|
105
|
+
'I',
|
|
106
|
+
'II',
|
|
107
|
+
'III',
|
|
108
|
+
]);
|
|
109
|
+
//# sourceMappingURL=titles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"titles.js","sourceRoot":"","sources":["../src/titles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,MAAM,GAAG,IAAI,GAAG,CAAS;IACpC,IAAI;IACJ,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,SAAS;IACT,UAAU;IACV,YAAY;IACZ,OAAO;IACP,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,SAAS;IACT,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,WAAW;IACX,iBAAiB;IACjB,QAAQ;IACR,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,aAAa;IACb,KAAK;IACL,MAAM;IACN,QAAQ;IACR,UAAU;IACV,KAAK;IACL,SAAS;IACT,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,IAAI;IACJ,KAAK;IACL,WAAW;IACX,gBAAgB;IAChB,IAAI;IACJ,OAAO;IACP,SAAS;IACT,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,aAAa;IACb,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,GAAG;IACH,OAAO;IACP,QAAQ;IACR,OAAO;IACP,eAAe;IACf,aAAa;IACb,SAAS;IACT,UAAU;IACV,KAAK;IACL,SAAS;IACT,UAAU;IACV,SAAS;IACT,QAAQ;IACR,UAAU;IACV,WAAW;IACX,MAAM;IACN,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,SAAS;IACT,KAAK;IACL,OAAO;IACP,cAAc;IACd,KAAK;IACL,WAAW;IACX,WAAW;IACX,QAAQ;IACR,SAAS;IACT,KAAK;IACL,SAAS;IACT,KAAK;IACL,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,aAAa;IACb,aAAa;IACb,SAAS;IACT,YAAY;IACZ,cAAc;IACd,cAAc;IACd,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,KAAK;IACL,GAAG;IACH,IAAI;IACJ,KAAK;CACN,CAAC,CAAC"}
|
package/lib/useAvatar.d.ts
CHANGED
|
@@ -7,4 +7,29 @@ import { JSAvatarProps, AvatarInfo } from './JSAvatar.types';
|
|
|
7
7
|
* @returns configured props and state for FURN Avatar
|
|
8
8
|
*/
|
|
9
9
|
export declare const useAvatar: (props: JSAvatarProps) => AvatarInfo;
|
|
10
|
+
/**
|
|
11
|
+
* A function which takes a name and returns initials
|
|
12
|
+
*
|
|
13
|
+
* @param name
|
|
14
|
+
* @returns initials. First letter of the word if only one word was provided.
|
|
15
|
+
* First letters of the first and last words if more words were provided.
|
|
16
|
+
* Words in braces, titles, special characters, parantheses and dashes should be ignored.
|
|
17
|
+
*/
|
|
18
|
+
export declare const getInitials: (name: string) => string;
|
|
19
|
+
/**
|
|
20
|
+
* A function which verifies whether a name contains non-alphabetical characters
|
|
21
|
+
*
|
|
22
|
+
* @param name
|
|
23
|
+
* @returns true if the name contains alphabetical characters. Returns false if there are
|
|
24
|
+
* numeric values or the first character is non-alphabetical. In this case avatar should
|
|
25
|
+
* fall back to icon.
|
|
26
|
+
*/
|
|
27
|
+
export declare const validateAlphabeticalCharacters: (name: string) => boolean;
|
|
28
|
+
/**
|
|
29
|
+
* A function which verifies whether words array contains title
|
|
30
|
+
*
|
|
31
|
+
* @param words array of words in name
|
|
32
|
+
* @returns array of words without titles
|
|
33
|
+
*/
|
|
34
|
+
export declare const removeTitlesFromName: (words: string[]) => string[];
|
|
10
35
|
//# sourceMappingURL=useAvatar.d.ts.map
|
package/lib/useAvatar.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAvatar.d.ts","sourceRoot":"","sources":["../src/useAvatar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAiB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"useAvatar.d.ts","sourceRoot":"","sources":["../src/useAvatar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAiB,MAAM,kBAAkB,CAAC;AAI5E;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,UAAW,aAAa,KAAG,UAuChD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,MAa1C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,SAAU,MAAM,KAAG,OAG7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,UAAW,MAAM,EAAE,KAAG,MAAM,EAE5D,CAAC"}
|
package/lib/useAvatar.js
CHANGED
|
@@ -20,6 +20,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
}
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
|
+
import { titles } from './titles';
|
|
23
24
|
/**
|
|
24
25
|
* Re-usable hook for FURN Avatar.
|
|
25
26
|
* This hook configures Avatar props and state for FURN Avatar.
|
|
@@ -28,7 +29,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
28
29
|
* @returns configured props and state for FURN Avatar
|
|
29
30
|
*/
|
|
30
31
|
export var useAvatar = function (props) {
|
|
31
|
-
var active = props.active, accessibilityLabel = props.accessibilityLabel, activeAppearance = props.activeAppearance, badge = props.badge,
|
|
32
|
+
var active = props.active, accessibilityLabel = props.accessibilityLabel, activeAppearance = props.activeAppearance, badge = props.badge, initials = props.initials, name = props.name, src = props.src, ring = props.ring, shape = props.shape, rest = __rest(props, ["active", "accessibilityLabel", "activeAppearance", "badge", "initials", "name", "src", "ring", "shape"]);
|
|
32
33
|
var showRing = active === 'active' && activeAppearance === 'ring';
|
|
33
34
|
var transparentRing = !!(ring === null || ring === void 0 ? void 0 : ring.transparent);
|
|
34
35
|
var showBadge = (!active || active === 'unset') && !!badge && !!badge.status;
|
|
@@ -42,9 +43,53 @@ export var useAvatar = function (props) {
|
|
|
42
43
|
transparentRing: transparentRing,
|
|
43
44
|
showBadge: showBadge,
|
|
44
45
|
};
|
|
46
|
+
var _initials = initials || getInitials(name);
|
|
45
47
|
return {
|
|
46
|
-
props: __assign(__assign({ shape: shape || 'circular' }, rest), { active: active, activeAppearance: activeAppearance, image: imageProps, badge: badgeProps }),
|
|
48
|
+
props: __assign(__assign({ shape: shape || 'circular' }, rest), { active: active, activeAppearance: activeAppearance, image: imageProps, badge: badgeProps, initials: _initials }),
|
|
47
49
|
state: __assign({}, state),
|
|
48
50
|
};
|
|
49
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* A function which takes a name and returns initials
|
|
54
|
+
*
|
|
55
|
+
* @param name
|
|
56
|
+
* @returns initials. First letter of the word if only one word was provided.
|
|
57
|
+
* First letters of the first and last words if more words were provided.
|
|
58
|
+
* Words in braces, titles, special characters, parantheses and dashes should be ignored.
|
|
59
|
+
*/
|
|
60
|
+
export var getInitials = function (name) {
|
|
61
|
+
if (!name && !validateAlphabeticalCharacters(name)) {
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
// prettier-ignore
|
|
65
|
+
var nonWordRegExp = new RegExp('\\W+(?<!\\S-)', 'g');
|
|
66
|
+
var wordsInBracesRegExp = new RegExp('(\\(|\\[|\\{)\\w+(\\)|\\]|\\})', 'g');
|
|
67
|
+
var words = name.replace(wordsInBracesRegExp, ' ').replace(nonWordRegExp, ' ').trim().split(' ');
|
|
68
|
+
words = removeTitlesFromName(words);
|
|
69
|
+
var wordsLength = words.length;
|
|
70
|
+
var lastWordIdx = wordsLength - 1;
|
|
71
|
+
var initials = "".concat(words[0].charAt(0).toUpperCase()).concat(wordsLength > 1 ? words[lastWordIdx].charAt(0).toUpperCase() : '');
|
|
72
|
+
return initials;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* A function which verifies whether a name contains non-alphabetical characters
|
|
76
|
+
*
|
|
77
|
+
* @param name
|
|
78
|
+
* @returns true if the name contains alphabetical characters. Returns false if there are
|
|
79
|
+
* numeric values or the first character is non-alphabetical. In this case avatar should
|
|
80
|
+
* fall back to icon.
|
|
81
|
+
*/
|
|
82
|
+
export var validateAlphabeticalCharacters = function (name) {
|
|
83
|
+
var alphabeticalRegExp = new RegExp('[a-zA-Z]', 'g');
|
|
84
|
+
return name ? alphabeticalRegExp.test(name) : false;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* A function which verifies whether words array contains title
|
|
88
|
+
*
|
|
89
|
+
* @param words array of words in name
|
|
90
|
+
* @returns array of words without titles
|
|
91
|
+
*/
|
|
92
|
+
export var removeTitlesFromName = function (words) {
|
|
93
|
+
return words.filter(function (word) { return !titles.has(word); });
|
|
94
|
+
};
|
|
50
95
|
//# sourceMappingURL=useAvatar.js.map
|
package/lib/useAvatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAvatar.js","sourceRoot":"","sources":["../src/useAvatar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA;;;;;;GAMG;AACH,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,KAAoB;IACpC,IAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"useAvatar.js","sourceRoot":"","sources":["../src/useAvatar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regular expressions matching characters to ignore when calculating the initials.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Get (up to 2 characters) initials based on display name of the persona.
|
|
6
|
+
*
|
|
7
|
+
* @param displayName - The full name of the person or entity
|
|
8
|
+
* @param isRtl - Whether the display is in RTL
|
|
9
|
+
* @param allowPhoneInitials - Should initials be generated from phone numbers (default false)
|
|
10
|
+
*
|
|
11
|
+
* @returns The 1 or 2 character initials based on the name. Or an empty string if no initials
|
|
12
|
+
* could be derived from the name.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getInitials(displayName: string | undefined | null, isRtl: boolean, allowPhoneInitials?: boolean): string;
|
|
15
|
+
//# sourceMappingURL=getInitials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInitials.d.ts","sourceRoot":"","sources":["../../src/utils/getInitials.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkEH;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,MAAM,CAaxH"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regular expressions matching characters to ignore when calculating the initials.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Regular expression matching characters within various types of enclosures, including the enclosures themselves
|
|
6
|
+
* so for example, (xyz) [xyz] {xyz} all would be ignored
|
|
7
|
+
*/
|
|
8
|
+
var UNWANTED_ENCLOSURES_REGEX = /[\(\[\{][^\)\]\}]*[\)\]\}]/g;
|
|
9
|
+
/**
|
|
10
|
+
* Regular expression matching special ASCII characters except space, plus some unicode special characters.
|
|
11
|
+
* Applies after unwanted enclosures have been removed
|
|
12
|
+
*/
|
|
13
|
+
var UNWANTED_CHARS_REGEX = /[\0-\u001F\!-/:-@\[-`\{-\u00BF\u0250-\u036F\uD800-\uFFFF]/g;
|
|
14
|
+
/**
|
|
15
|
+
* Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed
|
|
16
|
+
* and number has been trimmed for whitespaces
|
|
17
|
+
*/
|
|
18
|
+
var PHONENUMBER_REGEX = /^\d+[\d\s]*(:?ext|x|)\s*\d+$/i;
|
|
19
|
+
/** Regular expression matching one or more spaces. */
|
|
20
|
+
var MULTIPLE_WHITESPACES_REGEX = /\s+/g;
|
|
21
|
+
/**
|
|
22
|
+
* Regular expression matching languages for which we currently don't support initials.
|
|
23
|
+
* Arabic: Arabic, Arabic Supplement, Arabic Extended-A.
|
|
24
|
+
* Korean: Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.
|
|
25
|
+
* Japanese: Hiragana, Katakana.
|
|
26
|
+
* CJK: CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,
|
|
27
|
+
* CJK Unified Ideographs Extension B
|
|
28
|
+
*/
|
|
29
|
+
// eslint-disable-next-line @fluentui/max-len
|
|
30
|
+
var UNSUPPORTED_TEXT_REGEX = /[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uAC00-\uD7AF\uD7B0-\uD7FF\u3040-\u309F\u30A0-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD869][\uDC00-\uDED6]/;
|
|
31
|
+
function getInitialsLatin(displayName, isRtl) {
|
|
32
|
+
var initials = '';
|
|
33
|
+
var splits = displayName.split(' ');
|
|
34
|
+
if (splits.length === 2) {
|
|
35
|
+
initials += splits[0].charAt(0).toUpperCase();
|
|
36
|
+
initials += splits[1].charAt(0).toUpperCase();
|
|
37
|
+
}
|
|
38
|
+
else if (splits.length === 3) {
|
|
39
|
+
initials += splits[0].charAt(0).toUpperCase();
|
|
40
|
+
initials += splits[2].charAt(0).toUpperCase();
|
|
41
|
+
}
|
|
42
|
+
else if (splits.length !== 0) {
|
|
43
|
+
initials += splits[0].charAt(0).toUpperCase();
|
|
44
|
+
}
|
|
45
|
+
if (isRtl && initials.length > 1) {
|
|
46
|
+
return initials.charAt(1) + initials.charAt(0);
|
|
47
|
+
}
|
|
48
|
+
return initials;
|
|
49
|
+
}
|
|
50
|
+
function cleanupDisplayName(displayName) {
|
|
51
|
+
displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');
|
|
52
|
+
displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');
|
|
53
|
+
displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');
|
|
54
|
+
displayName = displayName.trim();
|
|
55
|
+
return displayName;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get (up to 2 characters) initials based on display name of the persona.
|
|
59
|
+
*
|
|
60
|
+
* @param displayName - The full name of the person or entity
|
|
61
|
+
* @param isRtl - Whether the display is in RTL
|
|
62
|
+
* @param allowPhoneInitials - Should initials be generated from phone numbers (default false)
|
|
63
|
+
*
|
|
64
|
+
* @returns The 1 or 2 character initials based on the name. Or an empty string if no initials
|
|
65
|
+
* could be derived from the name.
|
|
66
|
+
*/
|
|
67
|
+
export function getInitials(displayName, isRtl, allowPhoneInitials) {
|
|
68
|
+
if (!displayName) {
|
|
69
|
+
return '';
|
|
70
|
+
}
|
|
71
|
+
displayName = cleanupDisplayName(displayName);
|
|
72
|
+
// For names containing CJK characters, and phone numbers, we don't display initials
|
|
73
|
+
if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
return getInitialsLatin(displayName, isRtl);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=getInitials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInitials.js","sourceRoot":"","sources":["../../src/utils/getInitials.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,IAAM,yBAAyB,GAAW,6BAA6B,CAAC;AAExE;;;GAGG;AACH,IAAM,oBAAoB,GAAW,4DAA4D,CAAC;AAElG;;;GAGG;AACH,IAAM,iBAAiB,GAAW,+BAA+B,CAAC;AAElE,sDAAsD;AACtD,IAAM,0BAA0B,GAAW,MAAM,CAAC;AAElD;;;;;;;GAOG;AACH,6CAA6C;AAC7C,IAAM,sBAAsB,GAC1B,4MAA4M,CAAC;AAE/M,SAAS,gBAAgB,CAAC,WAAmB,EAAE,KAAc;IAC3D,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,IAAM,MAAM,GAAa,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;KAC/C;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;KAC/C;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;KAC/C;IAED,IAAI,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAChD;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IACjE,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC5D,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IACnE,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAEjC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,WAAsC,EAAE,KAAc,EAAE,kBAA4B;IAC9G,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IAED,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAE9C,oFAAoF;IACpF,IAAI,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;QAC5G,OAAO,EAAE,CAAC;KACX;IAED,OAAO,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInitials.test.d.ts","sourceRoot":"","sources":["../../src/utils/getInitials.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { getInitials } from './getInitials';
|
|
2
|
+
describe('getInitials', function () {
|
|
3
|
+
it('handles null inputs', function () {
|
|
4
|
+
var result = getInitials(null, false);
|
|
5
|
+
expect(result).toEqual('');
|
|
6
|
+
result = getInitials(undefined, false);
|
|
7
|
+
expect(result).toEqual('');
|
|
8
|
+
});
|
|
9
|
+
it('calculates an expected initials in LTR', function () {
|
|
10
|
+
var result = getInitials('Kat Larrson', false);
|
|
11
|
+
expect(result).toEqual('KL');
|
|
12
|
+
});
|
|
13
|
+
it('calculates an expected initials in LTR for non-ASCII characters', function () {
|
|
14
|
+
var result = getInitials('Írissa Þórðardóttir', false);
|
|
15
|
+
expect(result).toEqual('ÍÞ');
|
|
16
|
+
result = getInitials('Øyvind Åsen', false);
|
|
17
|
+
expect(result).toEqual('ØÅ');
|
|
18
|
+
});
|
|
19
|
+
it('calculates an expected initials in LTR with a hypen', function () {
|
|
20
|
+
var result = getInitials('David Zearing-Goff', false);
|
|
21
|
+
expect(result).toEqual('DZ');
|
|
22
|
+
});
|
|
23
|
+
it('calculates an expected initials in LTR with numbers', function () {
|
|
24
|
+
var result = getInitials('4lex 5loo', false);
|
|
25
|
+
expect(result).toEqual('45');
|
|
26
|
+
});
|
|
27
|
+
it('calculates an expected initials in LTR with parentheses', function () {
|
|
28
|
+
var result = getInitials('David (The man) Goff', false);
|
|
29
|
+
expect(result).toEqual('DG');
|
|
30
|
+
});
|
|
31
|
+
it('calculates an expected initials in LTR with brackets', function () {
|
|
32
|
+
var result = getInitials('David Goff [The man]', false);
|
|
33
|
+
expect(result).toEqual('DG');
|
|
34
|
+
});
|
|
35
|
+
it('calculates an expected initials in LTR with curly braces', function () {
|
|
36
|
+
var result = getInitials('David {The man} Goff', false);
|
|
37
|
+
expect(result).toEqual('DG');
|
|
38
|
+
});
|
|
39
|
+
it('calculates an expected initials in LTR with multiple parentheses, extra spaces, and unwanted characters', function () {
|
|
40
|
+
var result = getInitials(' !@#$%^&*()=+ (Alpha) David (The man) `~<>,./?[]{}| Goff (Gamma) ', false);
|
|
41
|
+
expect(result).toEqual('DG');
|
|
42
|
+
});
|
|
43
|
+
it('calculates an expected initials in LTR with multiple types of unwanted text', function () {
|
|
44
|
+
var result = getInitials(' !@#$%^&*()=+ (Alpha) David (The man) `~<>,./?[]{}| Goff (Gamma) [Beta] ', false);
|
|
45
|
+
expect(result).toEqual('DG');
|
|
46
|
+
});
|
|
47
|
+
it('calculates an expected initials in RTL if one was not specified', function () {
|
|
48
|
+
var result = getInitials('Kat Larrson', true);
|
|
49
|
+
expect(result).toEqual('LK');
|
|
50
|
+
});
|
|
51
|
+
it('calculates an expected initials in LTR for names with multiple components', function () {
|
|
52
|
+
var result = getInitials('A', false);
|
|
53
|
+
expect(result).toEqual('A');
|
|
54
|
+
result = getInitials('A B', false);
|
|
55
|
+
expect(result).toEqual('AB');
|
|
56
|
+
result = getInitials('A B C', false);
|
|
57
|
+
expect(result).toEqual('AC');
|
|
58
|
+
result = getInitials('A B C D', false);
|
|
59
|
+
expect(result).toEqual('A');
|
|
60
|
+
});
|
|
61
|
+
it('calculates an expected initials for Arabic names', function () {
|
|
62
|
+
var result = getInitials('خسرو رحیمی', true);
|
|
63
|
+
expect(result).toEqual('');
|
|
64
|
+
});
|
|
65
|
+
it('calculates an expected initials for Chinese names', function () {
|
|
66
|
+
var result = getInitials('桂英', false);
|
|
67
|
+
expect(result).toEqual('');
|
|
68
|
+
result = getInitials('佳', false);
|
|
69
|
+
expect(result).toEqual('');
|
|
70
|
+
result = getInitials('宋智洋', false);
|
|
71
|
+
expect(result).toEqual('');
|
|
72
|
+
});
|
|
73
|
+
it('calculates an expected initials for Korean names', function () {
|
|
74
|
+
var result = getInitials('강현', false);
|
|
75
|
+
expect(result).toEqual('');
|
|
76
|
+
result = getInitials('최종래', false);
|
|
77
|
+
expect(result).toEqual('');
|
|
78
|
+
result = getInitials('남궁 성종', false);
|
|
79
|
+
expect(result).toEqual('');
|
|
80
|
+
});
|
|
81
|
+
it('calculates an expected initials for Japanese names', function () {
|
|
82
|
+
var result = getInitials('松田', false);
|
|
83
|
+
expect(result).toEqual('');
|
|
84
|
+
result = getInitials('海野', false);
|
|
85
|
+
expect(result).toEqual('');
|
|
86
|
+
result = getInitials('かり', false);
|
|
87
|
+
expect(result).toEqual('');
|
|
88
|
+
});
|
|
89
|
+
it('calculates expected initials for phone numbers', function () {
|
|
90
|
+
var result = getInitials('12345678', false);
|
|
91
|
+
expect(result).toEqual('');
|
|
92
|
+
result = getInitials('+1 (555) 123-4567 ext.4567', false);
|
|
93
|
+
expect(result).toEqual('');
|
|
94
|
+
result = getInitials('+47 12 34 56 78 (X 5678)', false);
|
|
95
|
+
expect(result).toEqual('');
|
|
96
|
+
result = getInitials('+47 12 34 56 78 (X 5678)', false, true);
|
|
97
|
+
expect(result).toEqual('4');
|
|
98
|
+
result = getInitials('47 12 34', false, true);
|
|
99
|
+
expect(result).toEqual('43');
|
|
100
|
+
result = getInitials('47 12', false, true);
|
|
101
|
+
expect(result).toEqual('41');
|
|
102
|
+
result = getInitials('1 Ext 2', false);
|
|
103
|
+
expect(result).toEqual('');
|
|
104
|
+
result = getInitials('James Ext 2', false);
|
|
105
|
+
expect(result).toEqual('J2');
|
|
106
|
+
result = getInitials('1x1', false);
|
|
107
|
+
expect(result).toEqual('');
|
|
108
|
+
result = getInitials('1y1', false);
|
|
109
|
+
expect(result).toEqual('1');
|
|
110
|
+
result = getInitials('1', false);
|
|
111
|
+
expect(result).toEqual('1');
|
|
112
|
+
result = getInitials('A 2', false);
|
|
113
|
+
expect(result).toEqual('A2');
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=getInitials.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInitials.test.js","sourceRoot":"","sources":["../../src/utils/getInitials.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"titles.d.ts","sourceRoot":"","sources":["../src/titles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,aA2GjB,CAAC"}
|