@fluentui-react-native/experimental-avatar 0.14.24 → 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 +46 -1
- package/CHANGELOG.md +26 -2
- package/jest.config.js +2 -0
- package/lib/JSAvatar.d.ts.map +1 -1
- package/lib/JSAvatar.js +7 -6
- package/lib/JSAvatar.js.map +1 -1
- package/lib/JSAvatar.styling.d.ts.map +1 -1
- package/lib/JSAvatar.styling.js +9 -12
- package/lib/JSAvatar.styling.js.map +1 -1
- package/lib/JSAvatar.types.d.ts +50 -7
- package/lib/JSAvatar.types.d.ts.map +1 -1
- package/lib/JSAvatar.types.js +2 -1
- package/lib/JSAvatar.types.js.map +1 -1
- package/lib/JSAvatarTokens.d.ts.map +1 -1
- package/lib/JSAvatarTokens.js +142 -56
- package/lib/JSAvatarTokens.js.map +1 -1
- 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 +49 -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/JSAvatar.d.ts.map +1 -1
- package/lib-commonjs/JSAvatar.js +7 -6
- package/lib-commonjs/JSAvatar.js.map +1 -1
- package/lib-commonjs/JSAvatar.styling.d.ts.map +1 -1
- package/lib-commonjs/JSAvatar.styling.js +7 -10
- package/lib-commonjs/JSAvatar.styling.js.map +1 -1
- package/lib-commonjs/JSAvatar.types.d.ts +50 -7
- package/lib-commonjs/JSAvatar.types.d.ts.map +1 -1
- package/lib-commonjs/JSAvatar.types.js +3 -2
- package/lib-commonjs/JSAvatar.types.js.map +1 -1
- package/lib-commonjs/JSAvatarTokens.d.ts.map +1 -1
- package/lib-commonjs/JSAvatarTokens.js +142 -56
- package/lib-commonjs/JSAvatarTokens.js.map +1 -1
- 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 +53 -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/JSAvatar.styling.ts +8 -9
- package/src/JSAvatar.tsx +7 -6
- package/src/JSAvatar.types.ts +57 -7
- package/src/JSAvatarTokens.ts +142 -56
- 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 +53 -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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Regular expressions matching characters to ignore when calculating the initials.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getInitials = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Regular expression matching characters within various types of enclosures, including the enclosures themselves
|
|
9
|
+
* so for example, (xyz) [xyz] {xyz} all would be ignored
|
|
10
|
+
*/
|
|
11
|
+
var UNWANTED_ENCLOSURES_REGEX = /[\(\[\{][^\)\]\}]*[\)\]\}]/g;
|
|
12
|
+
/**
|
|
13
|
+
* Regular expression matching special ASCII characters except space, plus some unicode special characters.
|
|
14
|
+
* Applies after unwanted enclosures have been removed
|
|
15
|
+
*/
|
|
16
|
+
var UNWANTED_CHARS_REGEX = /[\0-\u001F\!-/:-@\[-`\{-\u00BF\u0250-\u036F\uD800-\uFFFF]/g;
|
|
17
|
+
/**
|
|
18
|
+
* Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed
|
|
19
|
+
* and number has been trimmed for whitespaces
|
|
20
|
+
*/
|
|
21
|
+
var PHONENUMBER_REGEX = /^\d+[\d\s]*(:?ext|x|)\s*\d+$/i;
|
|
22
|
+
/** Regular expression matching one or more spaces. */
|
|
23
|
+
var MULTIPLE_WHITESPACES_REGEX = /\s+/g;
|
|
24
|
+
/**
|
|
25
|
+
* Regular expression matching languages for which we currently don't support initials.
|
|
26
|
+
* Arabic: Arabic, Arabic Supplement, Arabic Extended-A.
|
|
27
|
+
* Korean: Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.
|
|
28
|
+
* Japanese: Hiragana, Katakana.
|
|
29
|
+
* CJK: CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,
|
|
30
|
+
* CJK Unified Ideographs Extension B
|
|
31
|
+
*/
|
|
32
|
+
// eslint-disable-next-line @fluentui/max-len
|
|
33
|
+
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]/;
|
|
34
|
+
function getInitialsLatin(displayName, isRtl) {
|
|
35
|
+
var initials = '';
|
|
36
|
+
var splits = displayName.split(' ');
|
|
37
|
+
if (splits.length === 2) {
|
|
38
|
+
initials += splits[0].charAt(0).toUpperCase();
|
|
39
|
+
initials += splits[1].charAt(0).toUpperCase();
|
|
40
|
+
}
|
|
41
|
+
else if (splits.length === 3) {
|
|
42
|
+
initials += splits[0].charAt(0).toUpperCase();
|
|
43
|
+
initials += splits[2].charAt(0).toUpperCase();
|
|
44
|
+
}
|
|
45
|
+
else if (splits.length !== 0) {
|
|
46
|
+
initials += splits[0].charAt(0).toUpperCase();
|
|
47
|
+
}
|
|
48
|
+
if (isRtl && initials.length > 1) {
|
|
49
|
+
return initials.charAt(1) + initials.charAt(0);
|
|
50
|
+
}
|
|
51
|
+
return initials;
|
|
52
|
+
}
|
|
53
|
+
function cleanupDisplayName(displayName) {
|
|
54
|
+
displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');
|
|
55
|
+
displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');
|
|
56
|
+
displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');
|
|
57
|
+
displayName = displayName.trim();
|
|
58
|
+
return displayName;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get (up to 2 characters) initials based on display name of the persona.
|
|
62
|
+
*
|
|
63
|
+
* @param displayName - The full name of the person or entity
|
|
64
|
+
* @param isRtl - Whether the display is in RTL
|
|
65
|
+
* @param allowPhoneInitials - Should initials be generated from phone numbers (default false)
|
|
66
|
+
*
|
|
67
|
+
* @returns The 1 or 2 character initials based on the name. Or an empty string if no initials
|
|
68
|
+
* could be derived from the name.
|
|
69
|
+
*/
|
|
70
|
+
function getInitials(displayName, isRtl, allowPhoneInitials) {
|
|
71
|
+
if (!displayName) {
|
|
72
|
+
return '';
|
|
73
|
+
}
|
|
74
|
+
displayName = cleanupDisplayName(displayName);
|
|
75
|
+
// For names containing CJK characters, and phone numbers, we don't display initials
|
|
76
|
+
if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {
|
|
77
|
+
return '';
|
|
78
|
+
}
|
|
79
|
+
return getInitialsLatin(displayName, isRtl);
|
|
80
|
+
}
|
|
81
|
+
exports.getInitials = getInitials;
|
|
82
|
+
//# 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,SAAgB,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;AAbD,kCAaC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInitials.test.d.ts","sourceRoot":"","sources":["../../src/utils/getInitials.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var getInitials_1 = require("./getInitials");
|
|
4
|
+
describe('getInitials', function () {
|
|
5
|
+
it('handles null inputs', function () {
|
|
6
|
+
var result = (0, getInitials_1.getInitials)(null, false);
|
|
7
|
+
expect(result).toEqual('');
|
|
8
|
+
result = (0, getInitials_1.getInitials)(undefined, false);
|
|
9
|
+
expect(result).toEqual('');
|
|
10
|
+
});
|
|
11
|
+
it('calculates an expected initials in LTR', function () {
|
|
12
|
+
var result = (0, getInitials_1.getInitials)('Kat Larrson', false);
|
|
13
|
+
expect(result).toEqual('KL');
|
|
14
|
+
});
|
|
15
|
+
it('calculates an expected initials in LTR for non-ASCII characters', function () {
|
|
16
|
+
var result = (0, getInitials_1.getInitials)('Írissa Þórðardóttir', false);
|
|
17
|
+
expect(result).toEqual('ÍÞ');
|
|
18
|
+
result = (0, getInitials_1.getInitials)('Øyvind Åsen', false);
|
|
19
|
+
expect(result).toEqual('ØÅ');
|
|
20
|
+
});
|
|
21
|
+
it('calculates an expected initials in LTR with a hypen', function () {
|
|
22
|
+
var result = (0, getInitials_1.getInitials)('David Zearing-Goff', false);
|
|
23
|
+
expect(result).toEqual('DZ');
|
|
24
|
+
});
|
|
25
|
+
it('calculates an expected initials in LTR with numbers', function () {
|
|
26
|
+
var result = (0, getInitials_1.getInitials)('4lex 5loo', false);
|
|
27
|
+
expect(result).toEqual('45');
|
|
28
|
+
});
|
|
29
|
+
it('calculates an expected initials in LTR with parentheses', function () {
|
|
30
|
+
var result = (0, getInitials_1.getInitials)('David (The man) Goff', false);
|
|
31
|
+
expect(result).toEqual('DG');
|
|
32
|
+
});
|
|
33
|
+
it('calculates an expected initials in LTR with brackets', function () {
|
|
34
|
+
var result = (0, getInitials_1.getInitials)('David Goff [The man]', false);
|
|
35
|
+
expect(result).toEqual('DG');
|
|
36
|
+
});
|
|
37
|
+
it('calculates an expected initials in LTR with curly braces', function () {
|
|
38
|
+
var result = (0, getInitials_1.getInitials)('David {The man} Goff', false);
|
|
39
|
+
expect(result).toEqual('DG');
|
|
40
|
+
});
|
|
41
|
+
it('calculates an expected initials in LTR with multiple parentheses, extra spaces, and unwanted characters', function () {
|
|
42
|
+
var result = (0, getInitials_1.getInitials)(' !@#$%^&*()=+ (Alpha) David (The man) `~<>,./?[]{}| Goff (Gamma) ', false);
|
|
43
|
+
expect(result).toEqual('DG');
|
|
44
|
+
});
|
|
45
|
+
it('calculates an expected initials in LTR with multiple types of unwanted text', function () {
|
|
46
|
+
var result = (0, getInitials_1.getInitials)(' !@#$%^&*()=+ (Alpha) David (The man) `~<>,./?[]{}| Goff (Gamma) [Beta] ', false);
|
|
47
|
+
expect(result).toEqual('DG');
|
|
48
|
+
});
|
|
49
|
+
it('calculates an expected initials in RTL if one was not specified', function () {
|
|
50
|
+
var result = (0, getInitials_1.getInitials)('Kat Larrson', true);
|
|
51
|
+
expect(result).toEqual('LK');
|
|
52
|
+
});
|
|
53
|
+
it('calculates an expected initials in LTR for names with multiple components', function () {
|
|
54
|
+
var result = (0, getInitials_1.getInitials)('A', false);
|
|
55
|
+
expect(result).toEqual('A');
|
|
56
|
+
result = (0, getInitials_1.getInitials)('A B', false);
|
|
57
|
+
expect(result).toEqual('AB');
|
|
58
|
+
result = (0, getInitials_1.getInitials)('A B C', false);
|
|
59
|
+
expect(result).toEqual('AC');
|
|
60
|
+
result = (0, getInitials_1.getInitials)('A B C D', false);
|
|
61
|
+
expect(result).toEqual('A');
|
|
62
|
+
});
|
|
63
|
+
it('calculates an expected initials for Arabic names', function () {
|
|
64
|
+
var result = (0, getInitials_1.getInitials)('خسرو رحیمی', true);
|
|
65
|
+
expect(result).toEqual('');
|
|
66
|
+
});
|
|
67
|
+
it('calculates an expected initials for Chinese names', function () {
|
|
68
|
+
var result = (0, getInitials_1.getInitials)('桂英', false);
|
|
69
|
+
expect(result).toEqual('');
|
|
70
|
+
result = (0, getInitials_1.getInitials)('佳', false);
|
|
71
|
+
expect(result).toEqual('');
|
|
72
|
+
result = (0, getInitials_1.getInitials)('宋智洋', false);
|
|
73
|
+
expect(result).toEqual('');
|
|
74
|
+
});
|
|
75
|
+
it('calculates an expected initials for Korean names', function () {
|
|
76
|
+
var result = (0, getInitials_1.getInitials)('강현', false);
|
|
77
|
+
expect(result).toEqual('');
|
|
78
|
+
result = (0, getInitials_1.getInitials)('최종래', false);
|
|
79
|
+
expect(result).toEqual('');
|
|
80
|
+
result = (0, getInitials_1.getInitials)('남궁 성종', false);
|
|
81
|
+
expect(result).toEqual('');
|
|
82
|
+
});
|
|
83
|
+
it('calculates an expected initials for Japanese names', function () {
|
|
84
|
+
var result = (0, getInitials_1.getInitials)('松田', false);
|
|
85
|
+
expect(result).toEqual('');
|
|
86
|
+
result = (0, getInitials_1.getInitials)('海野', false);
|
|
87
|
+
expect(result).toEqual('');
|
|
88
|
+
result = (0, getInitials_1.getInitials)('かり', false);
|
|
89
|
+
expect(result).toEqual('');
|
|
90
|
+
});
|
|
91
|
+
it('calculates expected initials for phone numbers', function () {
|
|
92
|
+
var result = (0, getInitials_1.getInitials)('12345678', false);
|
|
93
|
+
expect(result).toEqual('');
|
|
94
|
+
result = (0, getInitials_1.getInitials)('+1 (555) 123-4567 ext.4567', false);
|
|
95
|
+
expect(result).toEqual('');
|
|
96
|
+
result = (0, getInitials_1.getInitials)('+47 12 34 56 78 (X 5678)', false);
|
|
97
|
+
expect(result).toEqual('');
|
|
98
|
+
result = (0, getInitials_1.getInitials)('+47 12 34 56 78 (X 5678)', false, true);
|
|
99
|
+
expect(result).toEqual('4');
|
|
100
|
+
result = (0, getInitials_1.getInitials)('47 12 34', false, true);
|
|
101
|
+
expect(result).toEqual('43');
|
|
102
|
+
result = (0, getInitials_1.getInitials)('47 12', false, true);
|
|
103
|
+
expect(result).toEqual('41');
|
|
104
|
+
result = (0, getInitials_1.getInitials)('1 Ext 2', false);
|
|
105
|
+
expect(result).toEqual('');
|
|
106
|
+
result = (0, getInitials_1.getInitials)('James Ext 2', false);
|
|
107
|
+
expect(result).toEqual('J2');
|
|
108
|
+
result = (0, getInitials_1.getInitials)('1x1', false);
|
|
109
|
+
expect(result).toEqual('');
|
|
110
|
+
result = (0, getInitials_1.getInitials)('1y1', false);
|
|
111
|
+
expect(result).toEqual('1');
|
|
112
|
+
result = (0, getInitials_1.getInitials)('1', false);
|
|
113
|
+
expect(result).toEqual('1');
|
|
114
|
+
result = (0, getInitials_1.getInitials)('A 2', false);
|
|
115
|
+
expect(result).toEqual('A2');
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# 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,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInitials = void 0;
|
|
4
|
+
var getInitials_1 = require("./getInitials");
|
|
5
|
+
Object.defineProperty(exports, "getInitials", { enumerable: true, get: function () { return getInitials_1.getInitials; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui-react-native/experimental-avatar",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.27",
|
|
4
4
|
"description": "A cross-platform Avatar component using the Fluent Design System. Currently only implemented on iOS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Microsoft <fluentuinativeowners@microsoft.com>",
|
package/src/.eslintrc.js
ADDED
package/src/JSAvatar.styling.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { JSAvatarName, JSAvatarTokens, AvatarSlotProps, JSAvatarProps, AvatarColors,
|
|
1
|
+
import { JSAvatarName, JSAvatarTokens, AvatarSlotProps, JSAvatarProps, AvatarColors, AvatarSizesForTokens } from './JSAvatar.types';
|
|
2
2
|
import { Theme, UseStylingOptions, buildProps } from '@fluentui-react-native/framework';
|
|
3
3
|
import { defaultJSAvatarTokens } from './JSAvatarTokens';
|
|
4
4
|
import { ViewStyle } from 'react-native';
|
|
5
5
|
import { getRingConfig } from './JSAvatar.helpers';
|
|
6
|
-
import { borderStyles } from '@fluentui-react-native/tokens';
|
|
6
|
+
import { borderStyles, fontStyles } from '@fluentui-react-native/tokens';
|
|
7
7
|
|
|
8
8
|
const nameMap: { [key: string]: string } = {
|
|
9
9
|
start: 'flex-start',
|
|
@@ -11,7 +11,7 @@ const nameMap: { [key: string]: string } = {
|
|
|
11
11
|
end: 'flex-end',
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
export const avatarStates: (keyof JSAvatarTokens)[] = [...AvatarColors, ...
|
|
14
|
+
export const avatarStates: (keyof JSAvatarTokens)[] = [...AvatarColors, ...AvatarSizesForTokens, 'circular', 'square', 'inactive'];
|
|
15
15
|
|
|
16
16
|
export const stylingSettings: UseStylingOptions<JSAvatarProps, AvatarSlotProps, JSAvatarTokens> = {
|
|
17
17
|
tokens: [defaultJSAvatarTokens, JSAvatarName],
|
|
@@ -36,15 +36,15 @@ export const stylingSettings: UseStylingOptions<JSAvatarProps, AvatarSlotProps,
|
|
|
36
36
|
['horizontalIconAlignment', 'verticalIconAlignment', 'avatarOpacity', 'height', 'width'],
|
|
37
37
|
),
|
|
38
38
|
initials: buildProps(
|
|
39
|
-
(tokens: JSAvatarTokens) => {
|
|
39
|
+
(tokens: JSAvatarTokens, theme: Theme) => {
|
|
40
40
|
return {
|
|
41
41
|
style: {
|
|
42
|
-
|
|
42
|
+
...fontStyles.from(tokens, theme),
|
|
43
43
|
color: tokens.color,
|
|
44
44
|
},
|
|
45
45
|
};
|
|
46
46
|
},
|
|
47
|
-
['
|
|
47
|
+
['color', ...fontStyles.keys],
|
|
48
48
|
),
|
|
49
49
|
initialsBackground: buildProps(
|
|
50
50
|
(tokens: JSAvatarTokens, theme: Theme) => {
|
|
@@ -95,7 +95,6 @@ export const stylingSettings: UseStylingOptions<JSAvatarProps, AvatarSlotProps,
|
|
|
95
95
|
return {
|
|
96
96
|
style: {
|
|
97
97
|
borderStyle: 'solid',
|
|
98
|
-
borderColor: tokens.ringColor,
|
|
99
98
|
borderWidth: ringConfig.stroke,
|
|
100
99
|
width: ringConfig.size,
|
|
101
100
|
height: ringConfig.size,
|
|
@@ -106,7 +105,7 @@ export const stylingSettings: UseStylingOptions<JSAvatarProps, AvatarSlotProps,
|
|
|
106
105
|
},
|
|
107
106
|
};
|
|
108
107
|
},
|
|
109
|
-
['width', 'height',
|
|
108
|
+
['width', 'height', ...borderStyles.keys],
|
|
110
109
|
),
|
|
111
110
|
badge: buildProps(
|
|
112
111
|
(tokens: JSAvatarTokens) => {
|
|
@@ -115,7 +114,7 @@ export const stylingSettings: UseStylingOptions<JSAvatarProps, AvatarSlotProps,
|
|
|
115
114
|
shape: 'circular',
|
|
116
115
|
};
|
|
117
116
|
},
|
|
118
|
-
['
|
|
117
|
+
['badgeSize'],
|
|
119
118
|
),
|
|
120
119
|
},
|
|
121
120
|
};
|
package/src/JSAvatar.tsx
CHANGED
|
@@ -17,15 +17,16 @@ import { createIconProps } from '@fluentui-react-native/interactive-hooks';
|
|
|
17
17
|
* @returns Whether the styles that are assigned to the layer should be applied to the avatar
|
|
18
18
|
*/
|
|
19
19
|
export const avatarLookup = (layer: string, state: JSAvatarState, userProps: JSAvatarProps): boolean => {
|
|
20
|
+
const avatarSize = `size${userProps.size || 24}`;
|
|
20
21
|
return (
|
|
21
22
|
state[layer] ||
|
|
22
23
|
userProps[layer] ||
|
|
23
24
|
layer === userProps['shape'] ||
|
|
24
25
|
(!userProps['shape'] && layer === 'circular') ||
|
|
25
26
|
layer === userProps['avatarColor'] ||
|
|
26
|
-
(!userProps['avatarColor'] && layer === '
|
|
27
|
-
layer ===
|
|
28
|
-
(!userProps['size'] && layer === '
|
|
27
|
+
(!userProps['avatarColor'] && layer === 'neutral') ||
|
|
28
|
+
layer === avatarSize ||
|
|
29
|
+
(!userProps['size'] && layer === 'size24') ||
|
|
29
30
|
(userProps.active === 'inactive' && layer === 'inactive')
|
|
30
31
|
);
|
|
31
32
|
};
|
|
@@ -45,11 +46,11 @@ export const JSAvatar = compose<JSAvatarType>({
|
|
|
45
46
|
useRender: (userProps: JSAvatarProps, useSlots: UseSlots<JSAvatarType>) => {
|
|
46
47
|
const avatar = useAvatar(userProps);
|
|
47
48
|
const iconProps = createIconProps(userProps.icon);
|
|
48
|
-
const Slots = useSlots(
|
|
49
|
+
const Slots = useSlots(avatar.props, (layer) => avatarLookup(layer, avatar.state, avatar.props));
|
|
49
50
|
|
|
50
51
|
return (final: JSAvatarProps) => {
|
|
51
52
|
const { activeAppearance, icon, initials, image, badge, ...mergedProps } = mergeProps(avatar.props, final);
|
|
52
|
-
const { showRing, transparentRing } = avatar.state;
|
|
53
|
+
const { showRing, transparentRing, showBadge } = avatar.state;
|
|
53
54
|
const svgIconsEnabled = ['ios', 'macos', 'win32', 'android'].includes(Platform.OS as string);
|
|
54
55
|
|
|
55
56
|
return (
|
|
@@ -62,7 +63,7 @@ export const JSAvatar = compose<JSAvatarType>({
|
|
|
62
63
|
</Slots.initialsBackground>
|
|
63
64
|
)}
|
|
64
65
|
{showRing && !transparentRing && <Slots.ring />}
|
|
65
|
-
{svgIconsEnabled &&
|
|
66
|
+
{svgIconsEnabled && showBadge && <Slots.badge {...badge} />}
|
|
66
67
|
</Slots.root>
|
|
67
68
|
);
|
|
68
69
|
};
|
package/src/JSAvatar.types.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
2
2
|
import { ImageProps, ViewProps, TextProps, ColorValue } from 'react-native';
|
|
3
|
-
import { IBackgroundColorTokens, IForegroundColorTokens, IBorderTokens } from '@fluentui-react-native/tokens';
|
|
3
|
+
import { IBackgroundColorTokens, IForegroundColorTokens, IBorderTokens, FontTokens } from '@fluentui-react-native/tokens';
|
|
4
4
|
import { BadgeProps, PresenceBadgeProps, BadgeSize } from '@fluentui-react-native/badge';
|
|
5
5
|
import { IconProps, IconSourcesType } from '@fluentui-react-native/icon';
|
|
6
6
|
|
|
7
7
|
export const JSAvatarName = 'Avatar';
|
|
8
|
-
export const
|
|
8
|
+
export const AvatarSizesForTokens = [
|
|
9
9
|
'size20',
|
|
10
10
|
'size24',
|
|
11
11
|
'size28',
|
|
@@ -20,6 +20,8 @@ export const AvatarSizes = [
|
|
|
20
20
|
'size120',
|
|
21
21
|
] as const;
|
|
22
22
|
|
|
23
|
+
export const AvatarSizes = [20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 96, 120] as const;
|
|
24
|
+
|
|
23
25
|
/**
|
|
24
26
|
* Sets color of the avatar when there is no picture. Uses fluent color names
|
|
25
27
|
*/
|
|
@@ -67,7 +69,6 @@ export type IconAlignment = 'start' | 'center' | 'end';
|
|
|
67
69
|
export interface RingConfig {
|
|
68
70
|
accent?: boolean;
|
|
69
71
|
transparent?: boolean;
|
|
70
|
-
ringColor?: ColorValue; // glow
|
|
71
72
|
ringBackgroundColor?: ColorValue; // inner/outer rings
|
|
72
73
|
ringThickness?: number;
|
|
73
74
|
innerGap?: number;
|
|
@@ -84,14 +85,33 @@ export interface AvatarConfigurableProps {
|
|
|
84
85
|
* @defaultvalue neutral
|
|
85
86
|
*/
|
|
86
87
|
avatarColor?: AvatarColor;
|
|
87
|
-
size?: AvatarSize;
|
|
88
88
|
ring?: RingConfig;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
export interface JSAvatarProps extends IViewProps, AvatarConfigurableProps {
|
|
92
|
+
/**
|
|
93
|
+
* Optional activity indicator
|
|
94
|
+
* * active: the avatar will be decorated according to activeAppearance
|
|
95
|
+
* * inactive: the avatar will be reduced in size and partially transparent
|
|
96
|
+
* * unset: normal display
|
|
97
|
+
*
|
|
98
|
+
* @defaultvalue unset
|
|
99
|
+
*/
|
|
92
100
|
active?: AvatarActive;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* The appearance when `active="active"`
|
|
104
|
+
*
|
|
105
|
+
* @defaultvalue ring
|
|
106
|
+
*/
|
|
93
107
|
activeAppearance?: AvatarActiveAppearance;
|
|
94
108
|
badge?: PresenceBadgeProps;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Icon to be displayed when the avatar doesn't have an image or initials.
|
|
112
|
+
*
|
|
113
|
+
* @defaultvalue `PersonRegular` (the default icon's size depends on the Avatar's size)
|
|
114
|
+
*/
|
|
95
115
|
icon?: IconSourcesType;
|
|
96
116
|
|
|
97
117
|
/**
|
|
@@ -101,15 +121,45 @@ export interface JSAvatarProps extends IViewProps, AvatarConfigurableProps {
|
|
|
101
121
|
idForColor?: string | undefined;
|
|
102
122
|
|
|
103
123
|
image?: ImageProps;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* (optional) Custom initials.
|
|
127
|
+
*
|
|
128
|
+
* It is usually not necessary to specify custom initials; by default they will be derived from the `name` prop,
|
|
129
|
+
* using the `getInitials` function.
|
|
130
|
+
*
|
|
131
|
+
* The initials are displayed when there is no image (including while the image is loading).
|
|
132
|
+
*/
|
|
104
133
|
initials?: string;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* The name of the person or entity represented by this Avatar. This should always be provided if it is available.
|
|
137
|
+
*
|
|
138
|
+
* The name will be used to determine the initials displayed when there is no icon, as well as provided to
|
|
139
|
+
* accessibility tools.
|
|
140
|
+
*/
|
|
105
141
|
name?: string;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Size of the avatar in pixels.
|
|
145
|
+
*
|
|
146
|
+
* Size is restricted to a limited set of supported values recommended for most uses (see `AvatarSizeValue`) and
|
|
147
|
+
* based on design guidelines for the Avatar control.
|
|
148
|
+
*
|
|
149
|
+
* @defaultvalue 24
|
|
150
|
+
*/
|
|
151
|
+
size?: AvatarSize;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* The avatar can have a circular or square shape.
|
|
155
|
+
* @defaultvalue circular
|
|
156
|
+
*/
|
|
106
157
|
shape?: AvatarShape;
|
|
107
158
|
src?: string;
|
|
108
159
|
}
|
|
109
160
|
|
|
110
|
-
export interface JSAvatarTokens extends IBackgroundColorTokens, IForegroundColorTokens, AvatarConfigurableProps, IBorderTokens {
|
|
161
|
+
export interface JSAvatarTokens extends IBackgroundColorTokens, IForegroundColorTokens, AvatarConfigurableProps, IBorderTokens, FontTokens {
|
|
111
162
|
iconSize?: number;
|
|
112
|
-
initialsSize?: number;
|
|
113
163
|
height?: number;
|
|
114
164
|
horizontalIconAlignment?: IconAlignment;
|
|
115
165
|
verticalIconAlignment?: IconAlignment;
|
|
@@ -117,7 +167,6 @@ export interface JSAvatarTokens extends IBackgroundColorTokens, IForegroundColor
|
|
|
117
167
|
square?: JSAvatarTokens;
|
|
118
168
|
inactive?: JSAvatarTokens;
|
|
119
169
|
avatarOpacity?: number;
|
|
120
|
-
ringColor?: ColorValue;
|
|
121
170
|
size20?: JSAvatarTokens;
|
|
122
171
|
size24?: JSAvatarTokens;
|
|
123
172
|
size28?: JSAvatarTokens;
|
|
@@ -179,6 +228,7 @@ export interface AvatarSlotProps {
|
|
|
179
228
|
export interface JSAvatarState {
|
|
180
229
|
showRing: boolean;
|
|
181
230
|
transparentRing: boolean;
|
|
231
|
+
showBadge: boolean;
|
|
182
232
|
}
|
|
183
233
|
|
|
184
234
|
export interface AvatarInfo {
|