profile-pane 1.2.1-0ac41adf → 1.2.1-2a2d2f2b
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/lib/CVCard.js +87 -62
- package/lib/CVCard.js.map +1 -1
- package/lib/ChatWithMe.js +40 -12
- package/lib/ChatWithMe.js.map +1 -1
- package/lib/FriendList.js +18 -24
- package/lib/FriendList.js.map +1 -1
- package/lib/ProfileCard.js +22 -18
- package/lib/ProfileCard.js.map +1 -1
- package/lib/ProfileView.js +54 -30
- package/lib/ProfileView.js.map +1 -1
- package/lib/QRCodeCard.js +16 -23
- package/lib/QRCodeCard.js.map +1 -1
- package/lib/SocialCard.js +28 -42
- package/lib/SocialCard.js.map +1 -1
- package/lib/StuffCard.js +13 -28
- package/lib/StuffCard.js.map +1 -1
- package/lib/StuffPresenter.js.map +1 -1
- package/lib/addMeToYourFriends.js +19 -21
- package/lib/addMeToYourFriends.js.map +1 -1
- package/lib/{addMeToYourFriendsHelper.js → buttonsHelper.js} +8 -3
- package/lib/buttonsHelper.js.map +1 -0
- package/lib/texts.js +6 -3
- package/lib/texts.js.map +1 -1
- package/package.json +7 -2
- package/lib/0SAVED-CVCard.js +0 -83
- package/lib/0SAVED-CVCard.js.map +0 -1
- package/lib/addMeToYourFriendsHelper.js.map +0 -1
- package/lib/baseStyles.js +0 -55
- package/lib/baseStyles.js.map +0 -1
package/lib/CVCard.js
CHANGED
|
@@ -1,77 +1,103 @@
|
|
|
1
1
|
import { html } from 'lit-html';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { card } from './baseStyles';
|
|
5
|
-
const styles = {
|
|
6
|
-
image: styleMap(fullWidth()),
|
|
7
|
-
intro: styleMap(Object.assign(Object.assign({}, textGray()), textCenter())),
|
|
8
|
-
card: styleMap(card()),
|
|
9
|
-
info: styleMap(Object.assign(Object.assign({}, paddingSmall()), textLeft())),
|
|
10
|
-
tools: styleMap(Object.assign(Object.assign({}, paddingSmall()), textRight())),
|
|
11
|
-
};
|
|
12
|
-
export const CVCard = (profileBasics, cvData) => {
|
|
2
|
+
import * as styles from './styles/CVCard.module.css';
|
|
3
|
+
export const CVCard = (cvData) => {
|
|
13
4
|
const { rolesByType, skills, languages } = cvData;
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
5
|
+
const futureRolesArr = rolesByType['FutureRole'] || [];
|
|
6
|
+
const currentRolesArr = rolesByType['CurrentRole'] || [];
|
|
7
|
+
const pastRolesArr = rolesByType['PastRole'] || [];
|
|
8
|
+
const skillsArr = skills || [];
|
|
9
|
+
const languagesArr = languages || [];
|
|
10
|
+
const hasFutureRole = Array.isArray(futureRolesArr) && futureRolesArr.length > 0;
|
|
11
|
+
const hasCurrentRole = Array.isArray(currentRolesArr) && currentRolesArr.length > 0;
|
|
12
|
+
const hasPastRole = Array.isArray(pastRolesArr) && pastRolesArr.length > 0;
|
|
13
|
+
const hasSkills = Array.isArray(skillsArr) && skillsArr.length > 0;
|
|
14
|
+
const hasLanguages = Array.isArray(languagesArr) && languagesArr.length > 0;
|
|
15
|
+
if (!(hasFutureRole || hasCurrentRole || hasPastRole || hasSkills || hasLanguages))
|
|
16
|
+
return html ``;
|
|
17
|
+
return html `
|
|
18
|
+
<section class="${styles.cvCard}" aria-label="Curriculum Vitae" data-testid="curriculum-vitae">
|
|
19
|
+
${hasFutureRole ? html `
|
|
20
|
+
<section class="${styles.cvSection}" aria-labelledby="cv-future-heading">
|
|
21
|
+
<h3 id="cv-future-heading">Future Roles</h3>
|
|
22
|
+
<ul>
|
|
23
|
+
${renderRoles(futureRolesArr, true)}
|
|
24
|
+
</ul>
|
|
25
|
+
</section>
|
|
26
|
+
` : ''}
|
|
27
|
+
${hasCurrentRole ? html `
|
|
28
|
+
<section class="${styles.cvSection}" aria-labelledby="cv-current-heading">
|
|
29
|
+
<h3 id="cv-current-heading">Current Roles</h3>
|
|
30
|
+
<ul>
|
|
31
|
+
${renderRoles(currentRolesArr, true)}
|
|
32
|
+
</ul>
|
|
33
|
+
</section>
|
|
34
|
+
` : ''}
|
|
35
|
+
${hasPastRole ? html `
|
|
36
|
+
<section class="${styles.cvSection}" aria-labelledby="cv-past-heading">
|
|
37
|
+
<h3 id="cv-past-heading">Past Roles</h3>
|
|
38
|
+
<ul>
|
|
39
|
+
${renderRoles(pastRolesArr, true)}
|
|
40
|
+
</ul>
|
|
41
|
+
</section>
|
|
42
|
+
` : ''}
|
|
43
|
+
${hasSkills ? html `
|
|
44
|
+
<section class="${styles.cvSection}" aria-labelledby="cv-skills-heading">
|
|
45
|
+
<h3 id="cv-skills-heading">Skills</h3>
|
|
46
|
+
<ul>
|
|
47
|
+
${renderSkills(skillsArr, true)}
|
|
48
|
+
</ul>
|
|
49
|
+
</section>
|
|
50
|
+
` : ''}
|
|
51
|
+
${hasLanguages ? html `
|
|
52
|
+
<section aria-labelledby="cv-languages-heading">
|
|
53
|
+
<h3 id="cv-languages-heading">Languages</h3>
|
|
54
|
+
<ul>
|
|
55
|
+
${renderLanguages(languagesArr, true)}
|
|
56
|
+
</ul>
|
|
57
|
+
</section>
|
|
58
|
+
` : ''}
|
|
59
|
+
</section>
|
|
37
60
|
`;
|
|
38
|
-
}
|
|
39
|
-
return html ``;
|
|
40
61
|
};
|
|
41
|
-
function renderRole(role) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
62
|
+
function renderRole(role, asList = false) {
|
|
63
|
+
if (!role)
|
|
64
|
+
return html ``;
|
|
65
|
+
return asList
|
|
66
|
+
? html `<li class="${styles.cvRole}">
|
|
67
|
+
<span class="${styles.cvOrg}">${role.orgName}</span>
|
|
45
68
|
<span>${strToUpperCase(role.roleText)}</span>
|
|
46
|
-
<span>${role.dates}</span>
|
|
47
|
-
</
|
|
69
|
+
<span>${role.dates}</span>
|
|
70
|
+
</li>`
|
|
48
71
|
: html ``;
|
|
49
72
|
}
|
|
50
|
-
function renderRoles(roles) {
|
|
51
|
-
if (roles[0]
|
|
52
|
-
return html
|
|
73
|
+
function renderRoles(roles, asList = false) {
|
|
74
|
+
if (!roles || !roles.length || !roles[0])
|
|
75
|
+
return html ``;
|
|
76
|
+
return html `${renderRole(roles[0], asList)}${roles.length > 1 ? renderRoles(roles.slice(1), asList) : html ``}`;
|
|
53
77
|
}
|
|
54
|
-
function renderSkill(skill) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
78
|
+
function renderSkill(skill, asList = false) {
|
|
79
|
+
if (!skill)
|
|
80
|
+
return html ``;
|
|
81
|
+
return asList
|
|
82
|
+
? html `<li class="${styles.cvSkill}">${strToUpperCase(skill)}</li>`
|
|
59
83
|
: html ``;
|
|
60
84
|
}
|
|
61
|
-
function renderSkills(skills) {
|
|
62
|
-
if (skills[0]
|
|
63
|
-
return html
|
|
85
|
+
function renderSkills(skills, asList = false) {
|
|
86
|
+
if (!skills || !skills.length || !skills[0])
|
|
87
|
+
return html ``;
|
|
88
|
+
return html `${renderSkill(skills[0], asList)}${skills.length > 1 ? renderSkills(skills.slice(1), asList) : html ``}`;
|
|
64
89
|
}
|
|
65
|
-
function renderLan(language) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
90
|
+
function renderLan(language, asList = false) {
|
|
91
|
+
if (!language)
|
|
92
|
+
return html ``;
|
|
93
|
+
return asList
|
|
94
|
+
? html `<li class="${styles.cvLanguage}">${language}</li>`
|
|
70
95
|
: html ``;
|
|
71
96
|
}
|
|
72
|
-
function renderLanguages(languages) {
|
|
73
|
-
if (languages[0]
|
|
74
|
-
return html
|
|
97
|
+
function renderLanguages(languages, asList = false) {
|
|
98
|
+
if (!languages || !languages.length || !languages[0])
|
|
99
|
+
return html ``;
|
|
100
|
+
return html `${renderLan(languages[0], asList)}${languages.length > 1 ? renderLanguages(languages.slice(1), asList) : html ``}`;
|
|
75
101
|
}
|
|
76
102
|
function strToUpperCase(str) {
|
|
77
103
|
if (str && str[0] > '') {
|
|
@@ -84,5 +110,4 @@ function strToUpperCase(str) {
|
|
|
84
110
|
}
|
|
85
111
|
return '';
|
|
86
112
|
}
|
|
87
|
-
// ends
|
|
88
113
|
//# sourceMappingURL=CVCard.js.map
|
package/lib/CVCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CVCard.js","sourceRoot":"","sources":["../src/CVCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"CVCard.js","sourceRoot":"","sources":["../src/CVCard.ts"],"names":[],"mappings":"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"}
|
package/lib/ChatWithMe.js
CHANGED
|
@@ -21,18 +21,25 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
|
|
|
21
21
|
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
22
22
|
};
|
|
23
23
|
import { html } from 'lit-html';
|
|
24
|
-
import { widgets } from 'solid-ui';
|
|
24
|
+
import { widgets, style } from 'solid-ui';
|
|
25
|
+
import { authn } from 'solid-logic';
|
|
25
26
|
import { asyncReplace } from 'lit-html/directives/async-replace.js';
|
|
26
|
-
import { chatWithMeButtonText, loadingMessage } from './texts';
|
|
27
|
+
import { chatWithMeButtonText, logInToChatWithMeButtonText, loadingMessage } from './texts';
|
|
28
|
+
import { checkIfAnyUserLoggedIn, complain } from './buttonsHelper';
|
|
29
|
+
import * as localStyles from './styles/ChatWithMe.module.css';
|
|
27
30
|
export const ChatWithMe = (subject, context) => {
|
|
28
31
|
const logic = context.session.logic;
|
|
29
32
|
const longChatPane = context.session.paneRegistry.byName('long chat');
|
|
30
33
|
function chatContainer() {
|
|
31
34
|
return __asyncGenerator(this, arguments, function* chatContainer_1() {
|
|
32
|
-
const chatContainer = context.dom.createElement('
|
|
35
|
+
const chatContainer = context.dom.createElement('section');
|
|
36
|
+
chatContainer.setAttribute('class', localStyles.chatSection);
|
|
37
|
+
chatContainer.setAttribute('aria-labelledby', 'chat-card-title');
|
|
38
|
+
chatContainer.setAttribute('role', 'region');
|
|
39
|
+
chatContainer.setAttribute('data-testid', 'chat');
|
|
33
40
|
let exists;
|
|
34
41
|
try {
|
|
35
|
-
yield yield __await(loadingMessage), (exists = yield __await(logic.chat.getChat(subject, false)));
|
|
42
|
+
yield yield __await(loadingMessage.toUpperCase()), (exists = yield __await(logic.chat.getChat(subject, false)));
|
|
36
43
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
37
44
|
}
|
|
38
45
|
catch (e) {
|
|
@@ -43,16 +50,37 @@ export const ChatWithMe = (subject, context) => {
|
|
|
43
50
|
yield yield __await(chatContainer);
|
|
44
51
|
}
|
|
45
52
|
else {
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
53
|
+
const me = authn.currentUser();
|
|
54
|
+
let label = checkIfAnyUserLoggedIn(me) ? chatWithMeButtonText.toUpperCase() : logInToChatWithMeButtonText.toUpperCase();
|
|
55
|
+
const button = widgets.button(context.dom, undefined, label, setButtonHandler, { needsBorder: true });
|
|
56
|
+
function setButtonHandler(event) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
try {
|
|
60
|
+
const chat = yield logic.chat.getChat(subject, true);
|
|
61
|
+
chatContainer.innerHTML = '';
|
|
62
|
+
chatContainer.appendChild(longChatPane.render(chat, context, {}));
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
complain(chatContainer, context, error);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
button.refresh = refreshButton();
|
|
70
|
+
function refreshButton() {
|
|
71
|
+
const me = authn.currentUser();
|
|
72
|
+
if (checkIfAnyUserLoggedIn(me)) {
|
|
73
|
+
button.innerHTML = chatWithMeButtonText.toUpperCase();
|
|
74
|
+
button.className = 'button';
|
|
75
|
+
button.setAttribute('class', style.primaryButton);
|
|
51
76
|
}
|
|
52
|
-
|
|
53
|
-
|
|
77
|
+
else {
|
|
78
|
+
//not logged in
|
|
79
|
+
button.innerHTML = logInToChatWithMeButtonText.toUpperCase();
|
|
80
|
+
button.className = 'button';
|
|
81
|
+
button.setAttribute('class', style.primaryButton);
|
|
54
82
|
}
|
|
55
|
-
}
|
|
83
|
+
}
|
|
56
84
|
chatContainer.appendChild(button);
|
|
57
85
|
yield yield __await(chatContainer);
|
|
58
86
|
}
|
package/lib/ChatWithMe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatWithMe.js","sourceRoot":"","sources":["../src/ChatWithMe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAA;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"ChatWithMe.js","sourceRoot":"","sources":["../src/ChatWithMe.ts"],"names":[],"mappings":"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"}
|
package/lib/FriendList.js
CHANGED
|
@@ -1,30 +1,24 @@
|
|
|
1
1
|
import { ns, widgets } from 'solid-ui';
|
|
2
2
|
import { html } from 'lit-html';
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
import * as localStyles from './styles/FriendList.module.css';
|
|
4
|
+
export const FriendList = (subject, context) => {
|
|
5
|
+
var _a;
|
|
6
|
+
const friends = extractFriends(subject, context);
|
|
7
|
+
if (!friends || !((_a = friends.textContent) === null || _a === void 0 ? void 0 : _a.trim()))
|
|
8
|
+
return html ``;
|
|
9
|
+
return html `
|
|
10
|
+
<section
|
|
11
|
+
class="${localStyles.friendListSection}"
|
|
12
|
+
role="region"
|
|
13
|
+
data-testid="friend-list"
|
|
14
|
+
>
|
|
15
|
+
<ul class="${localStyles.friendList}" role="list">
|
|
16
|
+
${friends}
|
|
17
|
+
</ul>
|
|
18
|
+
</section>
|
|
19
|
+
`;
|
|
10
20
|
};
|
|
11
|
-
|
|
12
|
-
const nameStyle = styleMap(Object.assign(Object.assign({}, heading()), {
|
|
13
|
-
// "text-decoration": "underline",
|
|
14
|
-
color: profileBasics.highlightColor }));
|
|
15
|
-
if (createList(subject, context)) {
|
|
16
|
-
return html `
|
|
17
|
-
<div data-testid="friend-list" style="${styles.card}">
|
|
18
|
-
<div style=${styles.root}>
|
|
19
|
-
<h3 style=${nameStyle}>Friends</h3>
|
|
20
|
-
${createList(subject, context)}
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
23
|
-
`;
|
|
24
|
-
}
|
|
25
|
-
return html ``;
|
|
26
|
-
};
|
|
27
|
-
const createList = (subject, { dom }) => {
|
|
21
|
+
const extractFriends = (subject, { dom }) => {
|
|
28
22
|
const target = dom.createElement('div');
|
|
29
23
|
widgets.attachmentList(dom, subject, target, {
|
|
30
24
|
doc: subject.doc(),
|
package/lib/FriendList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FriendList.js","sourceRoot":"","sources":["../src/FriendList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGtC,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"FriendList.js","sourceRoot":"","sources":["../src/FriendList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,WAAW,MAAM,gCAAgC,CAAA;AAG7D,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAkB,EAClB,OAA2B,EAC3B,EAAE;;IACF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAChD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,WAAW,0CAAE,IAAI,EAAE,CAAA;QAAE,OAAO,IAAI,CAAA,EAAE,CAAA;IAE3D,OAAO,IAAI,CAAA;;eAEE,WAAW,CAAC,iBAAiB;;;;mBAIzB,WAAW,CAAC,UAAU;UAC/B,OAAO;;;GAGd,CAAA;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,OAAkB,EAAE,EAAE,GAAG,EAAsB,EAAE,EAAE;IACzE,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACvC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;QAC3C,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,WAAW,KAAK,EAAE;QAC3B,OAAO,IAAI,CAAA;;QACR,OAAO,MAAM,CAAA;AACpB,CAAC,CAAA"}
|
package/lib/ProfileCard.js
CHANGED
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
import { html, nothing } from 'lit-html';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
intro: styleMap(Object.assign(Object.assign({}, textGray()), textCenter())),
|
|
7
|
-
info: styleMap(padding()),
|
|
8
|
-
};
|
|
9
|
-
export const ProfileCard = ({ name, imageSrc, introduction, location, pronouns, highlightColor, }) => {
|
|
10
|
-
const nameStyle = styleMap(Object.assign(Object.assign({}, heading()), { 'text-decoration': 'underline', 'text-decoration-color': highlightColor }));
|
|
2
|
+
import * as localStyles from './styles/ProfileCard.module.css';
|
|
3
|
+
import { addMeToYourFriendsDiv } from './addMeToYourFriends';
|
|
4
|
+
import { QRCodeCard } from './QRCodeCard';
|
|
5
|
+
export const ProfileCard = ({ name, imageSrc, introduction, location, pronouns, highlightColor, backgroundColor }, context, subject) => {
|
|
11
6
|
return html `
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
<article class=${localStyles.profileCard} role="region" aria-labelledby="profile-card-title">
|
|
8
|
+
<section class=${localStyles.header} aria-label="Profile picture">
|
|
9
|
+
${Image(imageSrc, name)}
|
|
10
|
+
</section>
|
|
11
|
+
<section class=${localStyles.intro} aria-label="Profile Details">
|
|
12
|
+
${Line(introduction)}
|
|
13
|
+
${Line(location, '🌐')}
|
|
14
|
+
${Line(pronouns)}
|
|
15
|
+
</section>
|
|
16
|
+
<section class=${localStyles.buttonSection} aria-label="Profile Actions">
|
|
17
|
+
${addMeToYourFriendsDiv(subject, context)}
|
|
18
|
+
</section>
|
|
19
|
+
<section class=${localStyles.qrCodeSection} aria-label="Friends">
|
|
20
|
+
${QRCodeCard(highlightColor, backgroundColor, subject)}
|
|
21
|
+
</section>
|
|
22
|
+
</article>
|
|
19
23
|
`;
|
|
20
24
|
};
|
|
21
|
-
const Line = (value, prefix = nothing) => value ? html `<p>${prefix} ${value}</p>` : nothing;
|
|
22
|
-
const Image = (src, alt) => src ? html `<img
|
|
25
|
+
const Line = (value, prefix = nothing) => value ? html `<p class=${localStyles.details}>${prefix} ${value}</p>` : nothing;
|
|
26
|
+
const Image = (src, alt) => src ? html `<img class=${localStyles.image} src=${src} alt=${alt} />` : nothing;
|
|
23
27
|
//# sourceMappingURL=ProfileCard.js.map
|
package/lib/ProfileCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileCard.js","sourceRoot":"","sources":["../src/ProfileCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"ProfileCard.js","sourceRoot":"","sources":["../src/ProfileCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,KAAK,WAAW,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAC7D,EAAE,OAA2B,EAAE,OAAkB,EAAE,EAAE;IAEzE,OAAO,IAAI,CAAA;qBACQ,WAAW,CAAC,WAAW;uBACrB,WAAW,CAAC,MAAM;UAC/B,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;;uBAER,WAAW,CAAC,KAAK;UAC9B,IAAI,CAAC,YAAY,CAAC;UAClB,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;UACpB,IAAI,CAAC,QAAQ,CAAC;;uBAED,WAAW,CAAC,aAAa;UACtC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;;uBAE1B,WAAW,CAAC,aAAa;UACtC,UAAU,CAAC,cAAc,EAAE,eAAe,EAAE,OAAO,CAAC;;;GAG3D,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,SAA0B,OAAO,EAAE,EAAE,CACxD,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,YAAY,WAAW,CAAC,OAAO,IAAI,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;AAEhF,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACzB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA,cAAc,WAAW,CAAC,KAAK,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA"}
|
package/lib/ProfileView.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/* Profile View
|
|
2
|
-
*/
|
|
3
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -10,8 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
8
|
});
|
|
11
9
|
};
|
|
12
10
|
import { html } from 'lit-html';
|
|
13
|
-
import
|
|
14
|
-
import { card, padding, paddingSmall, responsiveGrid } from './baseStyles';
|
|
11
|
+
import * as localStyles from './styles/ProfileView.module.css';
|
|
15
12
|
import { ChatWithMe } from './ChatWithMe';
|
|
16
13
|
import { FriendList } from './FriendList';
|
|
17
14
|
import { presentProfile } from './presenter';
|
|
@@ -22,8 +19,6 @@ import { ProfileCard } from './ProfileCard';
|
|
|
22
19
|
import { CVCard } from './CVCard';
|
|
23
20
|
import { SocialCard } from './SocialCard';
|
|
24
21
|
import { StuffCard } from './StuffCard';
|
|
25
|
-
import { QRCodeCard } from './QRCodeCard';
|
|
26
|
-
import { addMeToYourFriendsDiv } from './addMeToYourFriends';
|
|
27
22
|
// The edit button switches to the editor pane
|
|
28
23
|
/*
|
|
29
24
|
function renderEditButton (subject) {
|
|
@@ -37,34 +32,63 @@ function renderEditButton (subject) {
|
|
|
37
32
|
*/
|
|
38
33
|
export function ProfileView(subject, context) {
|
|
39
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
const profileBasics = presentProfile(subject, context.session.store);
|
|
35
|
+
const profileBasics = presentProfile(subject, context.session.store);
|
|
41
36
|
const rolesByType = presentCV(subject, context.session.store);
|
|
42
37
|
const accounts = presentSocial(subject, context.session.store);
|
|
43
38
|
const stuffData = yield presentStuff(subject);
|
|
44
|
-
const styles = {
|
|
45
|
-
grid: styleMap(Object.assign(Object.assign(Object.assign({}, responsiveGrid()), paddingSmall()), { background: `radial-gradient(circle, ${profileBasics.backgroundColor} 80%, ${profileBasics.highlightColor} 100%)` })),
|
|
46
|
-
card: styleMap(card()),
|
|
47
|
-
chat: styleMap(Object.assign(Object.assign({}, card()), padding())),
|
|
48
|
-
};
|
|
49
|
-
// was: <div style=${styles.card}>${renderEditButton(subject)}</div>
|
|
50
39
|
return html `
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
${
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
40
|
+
<main
|
|
41
|
+
class="profile-grid"
|
|
42
|
+
style="--profile-grid-bg: radial-gradient(circle, ${profileBasics.backgroundColor} 80%, ${profileBasics.highlightColor} 100%)"
|
|
43
|
+
role="main"
|
|
44
|
+
aria-label="User Profile"
|
|
45
|
+
>
|
|
46
|
+
<section aria-labelledby="profile-card-heading" class="${localStyles.profileSection}" role="region">
|
|
47
|
+
<h2 id="profile-card-heading">${profileBasics.name}</h2>
|
|
48
|
+
${ProfileCard(profileBasics, context, subject)}
|
|
49
|
+
</section>
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
${(() => {
|
|
53
|
+
const cv = CVCard(rolesByType);
|
|
54
|
+
return cv && cv.strings && cv.strings.join('').trim() !== '' ? html `
|
|
55
|
+
<section aria-labelledby="cv-heading" class="${localStyles.profileSection}" role="region">
|
|
56
|
+
<h2 id="cv-heading">Professional & education</h2>
|
|
57
|
+
${cv}
|
|
58
|
+
</section>
|
|
59
|
+
` : '';
|
|
60
|
+
})()}
|
|
61
|
+
|
|
62
|
+
${accounts.accounts && accounts.accounts.length > 0 ? html `
|
|
63
|
+
<section aria-labelledby="social-heading" class="${localStyles.profileSection}" role="region">
|
|
64
|
+
<h2 id="social-heading">Social accounts</h2>
|
|
65
|
+
${SocialCard(accounts)}
|
|
66
|
+
</section>
|
|
67
|
+
` : ''}
|
|
68
|
+
|
|
69
|
+
${stuffData.stuff && stuffData.stuff.length > 0 ? html `
|
|
70
|
+
<section aria-labelledby="stuff-heading" class="${localStyles.profileSection}" role="region">
|
|
71
|
+
<h2 id="stuff-heading">To share</h2>
|
|
72
|
+
${StuffCard(profileBasics, context, subject, stuffData)}
|
|
73
|
+
</section>
|
|
74
|
+
` : ''}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
${(() => {
|
|
78
|
+
const friends = FriendList(subject, context);
|
|
79
|
+
return friends && friends.strings && friends.strings.join('').trim() !== '' ? html `
|
|
80
|
+
<section aria-labelledby="friends-heading" class="${localStyles.profileSection}" role="region">
|
|
81
|
+
<h2 id="friends-heading">Friends</h2>
|
|
82
|
+
${friends}
|
|
83
|
+
</section>
|
|
84
|
+
` : '';
|
|
85
|
+
})()}
|
|
86
|
+
|
|
87
|
+
<section aria-labelledby="chat-heading" class="${localStyles.profileSection}" role="region">
|
|
88
|
+
<h2 id="chat-heading">Chat with me</h2>
|
|
89
|
+
${ChatWithMe(subject, context)}
|
|
90
|
+
</section>
|
|
91
|
+
</main>
|
|
68
92
|
`;
|
|
69
93
|
});
|
|
70
94
|
}
|
package/lib/ProfileView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileView.js","sourceRoot":"","sources":["../src/ProfileView.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ProfileView.js","sourceRoot":"","sources":["../src/ProfileView.ts"],"names":[],"mappings":"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"}
|
package/lib/QRCodeCard.js
CHANGED
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
// A card in my profile to show yu a QRCode of my webid
|
|
2
|
-
//
|
|
3
1
|
import { html } from 'lit-html';
|
|
4
|
-
import { fullWidth, heading, paddingSmall, textCenter, textLeft, textGray, } from './baseStyles';
|
|
5
|
-
import { styleMap } from 'lit-html/directives/style-map.js';
|
|
6
2
|
import { utils } from 'solid-ui';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
export const QRCodeCard = (profileBasics, subject) => {
|
|
14
|
-
const nameStyle = styleMap(Object.assign(Object.assign({}, heading()), {
|
|
15
|
-
// "text-decoration": "underline",
|
|
16
|
-
color: profileBasics.highlightColor }));
|
|
17
|
-
const qrCodeCanvasStyle = 'width: 80%; margin:auto;';
|
|
18
|
-
const highlightColor = profileBasics.highlightColor || '#000000';
|
|
19
|
-
const backgroundColor = profileBasics.backgroundColor || '#ffffff';
|
|
20
|
-
// console.log(`@@ qrcodes colours highlightColor ${highlightColor}, backgroundColor ${backgroundColor}`)
|
|
3
|
+
import * as styles from './styles/QRCodeCard.module.css';
|
|
4
|
+
import { scanQrToConnectText } from './texts';
|
|
5
|
+
export const QRCodeCard = (highlightColor, backgroundColor, subject) => {
|
|
6
|
+
const hC = highlightColor || '#000000';
|
|
7
|
+
const bC = backgroundColor || '#ffffff';
|
|
21
8
|
const name = utils.label(subject);
|
|
22
9
|
const BEGIN = 'BEGIN:VCARD\r\n';
|
|
23
10
|
const END = 'END:VCARD\r\n';
|
|
@@ -29,12 +16,18 @@ export const QRCodeCard = (profileBasics, subject) => {
|
|
|
29
16
|
const vCard = BEGIN + FN + URL + END + VERSIONV;
|
|
30
17
|
// console.log(`@@ qrcodes colours highlightColor ${highlightColor}, backgroundColor ${backgroundColor}`)
|
|
31
18
|
return html `
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
19
|
+
<div class="QRCode"
|
|
20
|
+
data-value="${vCard}"
|
|
21
|
+
highlightColor="${hC}"
|
|
22
|
+
backgroundColor="${bC}"
|
|
23
|
+
data-testid="qrcode-card"
|
|
24
|
+
aria-labelledby="qr-card-title"
|
|
25
|
+
role="region">
|
|
36
26
|
</div>
|
|
37
|
-
|
|
27
|
+
<div class="${styles.qrCaption}">
|
|
28
|
+
${scanQrToConnectText}
|
|
29
|
+
</div>
|
|
30
|
+
|
|
38
31
|
`;
|
|
39
32
|
};
|
|
40
33
|
//# sourceMappingURL=QRCodeCard.js.map
|
package/lib/QRCodeCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QRCodeCard.js","sourceRoot":"","sources":["../src/QRCodeCard.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"QRCodeCard.js","sourceRoot":"","sources":["../src/QRCodeCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAA;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAG7C,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,cAAsB,EACtB,eAAuB,EACvB,OAAkB,EACF,EAAE;IAClB,MAAM,EAAE,GAAG,cAAc,IAAI,SAAS,CAAA;IACtC,MAAM,EAAE,GAAG,eAAe,IAAI,SAAS,CAAA;IAEvC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAEjC,MAAM,KAAK,GAAG,iBAAiB,CAAA;IAC/B,MAAM,GAAG,GAAG,eAAe,CAAA;IAC3B,MAAM,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAA;IAChC,MAAM,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,KAAK,CAAA;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAA;IAEpC,kDAAkD;IAClD,kEAAkE;IAEhE,MAAM,KAAK,GAAW,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAA;IAEvD,yGAAyG;IAEzG,OAAO,IAAI,CAAA;;oBAEO,KAAK;wBACD,EAAE;yBACD,EAAE;;;;;oBAKP,MAAM,CAAC,SAAS;UAC1B,mBAAmB;;;GAG1B,CAAA;AACH,CAAC,CAAA"}
|
package/lib/SocialCard.js
CHANGED
|
@@ -1,49 +1,35 @@
|
|
|
1
1
|
import { html } from 'lit-html';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { card } from './baseStyles';
|
|
5
|
-
const styles = {
|
|
6
|
-
image: styleMap(fullWidth()),
|
|
7
|
-
intro: styleMap(Object.assign(Object.assign({}, textGray()), textCenter())),
|
|
8
|
-
card: styleMap(card()),
|
|
9
|
-
info: styleMap(Object.assign(Object.assign({}, paddingSmall()), textCenter())),
|
|
10
|
-
tools: styleMap(Object.assign(Object.assign({}, paddingSmall()), textRight())),
|
|
11
|
-
};
|
|
12
|
-
export const SocialCard = (profileBasics, SocialData) => {
|
|
2
|
+
import * as localStyles from './styles/SocialCard.module.css';
|
|
3
|
+
export const SocialCard = (SocialData) => {
|
|
13
4
|
const { accounts } = SocialData;
|
|
14
|
-
const nameStyle = styleMap(Object.assign(Object.assign({}, heading()), {
|
|
15
|
-
// "text-decoration": "underline",
|
|
16
|
-
color: profileBasics.highlightColor }));
|
|
17
5
|
if (accounts.length) {
|
|
18
6
|
return html `
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
7
|
+
<section
|
|
8
|
+
class="${localStyles.socialCard}"
|
|
9
|
+
aria-labelledby="social-card-title"
|
|
10
|
+
role="region"
|
|
11
|
+
data-testid="social-media"
|
|
12
|
+
>
|
|
13
|
+
<header class="${localStyles.socialHeader}" aria-label="Social Media Header">
|
|
14
|
+
<h3 id="social-card-title">Follow me on</h3>
|
|
15
|
+
</header>
|
|
16
|
+
<ul class="${localStyles.socialList}" role="list">
|
|
17
|
+
${accounts.map(account => renderAccount(account))}
|
|
18
|
+
</ul>
|
|
19
|
+
</section>
|
|
20
|
+
`;
|
|
21
|
+
}
|
|
22
|
+
function renderAccount(account) {
|
|
23
|
+
return account.homepage && account.name && account.icon
|
|
24
|
+
? html `
|
|
25
|
+
<li class="${localStyles.socialItem}" role="listitem">
|
|
26
|
+
<a href="${account.homepage}" target="_blank" rel="noopener noreferrer" aria-label="${account.name}" style="display: flex; align-items: center; gap: 0.5em; text-decoration: none;">
|
|
27
|
+
<img class="${localStyles.socialIcon}" src="${account.icon}" alt="${account.name} icon" />
|
|
28
|
+
<span>${account.name}</span>
|
|
29
|
+
</a>
|
|
30
|
+
</li>
|
|
31
|
+
`
|
|
32
|
+
: html ``;
|
|
29
33
|
}
|
|
30
|
-
return html ``;
|
|
31
34
|
};
|
|
32
|
-
function renderAccount(account) {
|
|
33
|
-
return account.homepage && account.name && account.icon
|
|
34
|
-
? html `<div class="textButton-0-1-3" style="margin-top: 0.3em; margin-bottom: 0.3em;">
|
|
35
|
-
|
|
36
|
-
<a href="${account.homepage}" style="text-decoration: none;" target="social">
|
|
37
|
-
<img style="width: 2em; height: 2em; margin: 1em; vertical-align:middle;" src="${account.icon}" alt="${account.name}">
|
|
38
|
-
|
|
39
|
-
<span style="font-size: 1.2rem;">${account.name}</span>
|
|
40
|
-
</a>
|
|
41
|
-
</div> `
|
|
42
|
-
: html ``;
|
|
43
|
-
}
|
|
44
|
-
function renderAccounts(accounts) {
|
|
45
|
-
if (accounts.length > 0)
|
|
46
|
-
return html `${renderAccount(accounts[0])}${accounts.length > 1 ? renderAccounts(accounts.slice(1)) : html ``}`;
|
|
47
|
-
}
|
|
48
|
-
// ends
|
|
49
35
|
//# sourceMappingURL=SocialCard.js.map
|
package/lib/SocialCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialCard.js","sourceRoot":"","sources":["../src/SocialCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"SocialCard.js","sourceRoot":"","sources":["../src/SocialCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAA;AAE/C,OAAO,KAAK,WAAW,MAAM,gCAAgC,CAAA;AAG7D,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,UAA8B,EACd,EAAE;IAElB,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAA;IAE/B,IAAG,QAAQ,CAAC,MAAM,EAAC,CAAC;QAElB,OAAO,IAAI,CAAA;;iBAEE,WAAW,CAAC,UAAU;;;;;yBAKd,WAAW,CAAC,YAAY;;;qBAG5B,WAAW,CAAC,UAAU;YAC/B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;;;KAGtD,CAAA;IACH,CAAC;IAED,SAAS,aAAa,CAAC,OAAO;QAC5B,OAAO,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;YACrD,CAAC,CAAC,IAAI,CAAA;uBACW,WAAW,CAAC,UAAU;uBACtB,OAAO,CAAC,QAAQ,2DAA2D,OAAO,CAAC,IAAI;4BAClF,WAAW,CAAC,UAAU,UAAU,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,IAAI;sBACxE,OAAO,CAAC,IAAI;;;SAGzB;YACH,CAAC,CAAC,IAAI,CAAA,EAAE,CAAA;IACZ,CAAC;AAEH,CAAC,CAAA"}
|
package/lib/StuffCard.js
CHANGED
|
@@ -1,44 +1,30 @@
|
|
|
1
1
|
import { html } from 'lit-html';
|
|
2
|
-
import { asyncReplace } from 'lit-html/directives/async-replace.js';
|
|
3
2
|
import { widgets } from 'solid-ui';
|
|
4
|
-
import
|
|
5
|
-
import { styleMap } from 'lit-html/directives/style-map.js';
|
|
6
|
-
import { card } from './baseStyles';
|
|
3
|
+
import * as localStyles from './styles/StuffCard.module.css';
|
|
7
4
|
const dom = document;
|
|
8
|
-
const styles = {
|
|
9
|
-
image: styleMap(fullWidth()),
|
|
10
|
-
intro: styleMap(Object.assign(Object.assign({}, textGray()), textCenter())),
|
|
11
|
-
card: styleMap(card()),
|
|
12
|
-
info: styleMap(Object.assign(Object.assign({}, paddingSmall()), textLeft())),
|
|
13
|
-
};
|
|
14
5
|
export const StuffCard = (profileBasics, context, subject, stuffData) => {
|
|
15
6
|
const { stuff } = stuffData;
|
|
16
|
-
const nameStyle = styleMap(Object.assign(Object.assign({}, heading()), {
|
|
17
|
-
// "text-decoration": "underline",
|
|
18
|
-
color: profileBasics.highlightColor }));
|
|
19
|
-
// return renderThings(stuff)
|
|
20
7
|
return html `
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
</
|
|
30
|
-
</
|
|
31
|
-
|
|
32
|
-
`;
|
|
8
|
+
<section
|
|
9
|
+
class="${localStyles.stuffCard}"
|
|
10
|
+
aria-labelledby="stuff-card-title"
|
|
11
|
+
role="region"
|
|
12
|
+
data-testid="stuff"
|
|
13
|
+
>
|
|
14
|
+
<table class="${localStyles.stuffTable}" data-testid="stuffTable" role="table">
|
|
15
|
+
${renderThings(stuff)}
|
|
16
|
+
</table>
|
|
17
|
+
</section>
|
|
18
|
+
`;
|
|
33
19
|
};
|
|
34
20
|
function renderThingAsDOM(thing, dom) {
|
|
35
21
|
const options = {};
|
|
22
|
+
// widgets.personTR returns a DOM node, so we need to convert it to HTML string
|
|
36
23
|
const row = widgets.personTR(dom, null, thing.instance, options);
|
|
37
24
|
return row;
|
|
38
25
|
}
|
|
39
26
|
function renderThing(thing, dom) {
|
|
40
27
|
return renderThingAsDOM(thing, dom);
|
|
41
|
-
return html ` ${asyncReplace(renderThingAsDOM(thing, dom))} `;
|
|
42
28
|
}
|
|
43
29
|
function renderThings(things) {
|
|
44
30
|
// console.log('Renderthings: ', things)
|
|
@@ -46,5 +32,4 @@ function renderThings(things) {
|
|
|
46
32
|
return html ``;
|
|
47
33
|
return html `${renderThing(things[0], dom)}${things.length > 1 ? renderThings(things.slice(1)) : html ``}`;
|
|
48
34
|
}
|
|
49
|
-
// ENDS
|
|
50
35
|
//# sourceMappingURL=StuffCard.js.map
|
package/lib/StuffCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StuffCard.js","sourceRoot":"","sources":["../src/StuffCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"StuffCard.js","sourceRoot":"","sources":["../src/StuffCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAA;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAA;AAG5D,MAAM,GAAG,GAAG,QAAQ,CAAA;AAEpB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,aAAkC,EAC1D,OAA2B,EAC3B,OAAkB,EAAE,SAAS,EAAkB,EAAE;IACjD,MAAM,EAAE,KAAK,EAAE,GAAI,SAAS,CAAA;IAC5B,OAAO,IAAI,CAAA;;eAEE,WAAW,CAAC,SAAS;;;;;sBAKd,WAAW,CAAC,UAAU;UAClC,YAAY,CAAC,KAAK,CAAC;;;GAG1B,CAAA;AACH,CAAC,CAAA;AAED,SAAS,gBAAgB,CAAE,KAAK,EAAE,GAAG;IACnC,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,+EAA+E;IAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAChE,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,WAAW,CAAE,KAAK,EAAE,GAAG;IAC9B,OAAO,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,YAAY,CAAC,MAAM;IACxB,wCAAwC;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA,EAAE,CAAA;IACtC,OAAO,IAAI,CAAA,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,EAAE,EAAE,CAAA;AAC5G,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StuffPresenter.js","sourceRoot":"","sources":["../src/StuffPresenter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAa,GAAG,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;AAChC,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAA;AACzC,MAAM,
|
|
1
|
+
{"version":3,"file":"StuffPresenter.js","sourceRoot":"","sources":["../src/StuffPresenter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAa,GAAG,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;AAChC,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAA;AACzC,MAAM,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAA;AAc3C,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAA,CAAC,iCAAiC;AACnE,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;IAC7B,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,eAAe,CAAE,KAAe;IAC9C,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxC,OAAO,KAAK,IAAI,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAA,CAAC,2BAA2B;AAC/E,CAAC;AAED,MAAM,UAAgB,YAAY,CAChC,OAAkB;;QAGnB,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC9D,0CAA0C;QAE1C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACnC,MAAM,IAAI,GAAG,eAAe,CAAE,IAAY,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA,CAAE,sBAAsB;YAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;YAC9B,2DAA2D;YAC3D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QACvC,CAAC,CAAC,CAAA;QAED,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;CAAA"}
|
|
@@ -8,25 +8,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { html } from 'lit-html';
|
|
11
|
-
import { styleMap } from 'lit-html/directives/style-map.js';
|
|
12
11
|
import { authn } from 'solid-logic';
|
|
13
|
-
import { ns, rdf, widgets } from 'solid-ui';
|
|
14
|
-
import { clearPreviousMessage, complain, mention } from './
|
|
15
|
-
import { padding, textCenter } from './baseStyles';
|
|
12
|
+
import { ns, rdf, widgets, style } from 'solid-ui';
|
|
13
|
+
import { checkIfAnyUserLoggedIn, clearPreviousMessage, complain, mention } from './buttonsHelper';
|
|
16
14
|
import { addMeToYourFriendsButtonText, friendExistsAlreadyButtonText, friendExistsMessage, friendWasAddedSuccesMessage, logInAddMeToYourFriendsButtonText, userNotLoggedInErrorMessage } from './texts';
|
|
15
|
+
import * as localStyles from './styles/ProfileCard.module.css';
|
|
17
16
|
let buttonContainer = document.createElement('div');
|
|
18
|
-
//panel local style
|
|
19
|
-
const styles = {
|
|
20
|
-
button: styleMap(Object.assign(Object.assign({}, textCenter()), padding())),
|
|
21
|
-
};
|
|
22
17
|
const addMeToYourFriendsDiv = (subject, context) => {
|
|
23
|
-
buttonContainer = context.dom.createElement('
|
|
18
|
+
buttonContainer = context.dom.createElement('section');
|
|
19
|
+
buttonContainer.setAttribute('class', localStyles.buttonSubSection);
|
|
20
|
+
buttonContainer.setAttribute('aria-labelledby', 'add-me-to-your-friends-button-section');
|
|
21
|
+
buttonContainer.setAttribute('role', 'region');
|
|
22
|
+
buttonContainer.setAttribute('data-testid', 'button');
|
|
24
23
|
const button = createAddMeToYourFriendsButton(subject, context);
|
|
25
24
|
buttonContainer.appendChild(button);
|
|
26
|
-
return html
|
|
25
|
+
return html `<div class="center">${buttonContainer}</div>`;
|
|
27
26
|
};
|
|
28
27
|
const createAddMeToYourFriendsButton = (subject, context) => {
|
|
29
|
-
const
|
|
28
|
+
const me = authn.currentUser();
|
|
29
|
+
let label = checkIfAnyUserLoggedIn(me) ? addMeToYourFriendsButtonText.toUpperCase() : logInAddMeToYourFriendsButtonText.toUpperCase();
|
|
30
|
+
const button = widgets.button(context.dom, undefined, label, setButtonHandler, //sets an onclick event listener
|
|
30
31
|
{
|
|
31
32
|
needsBorder: true,
|
|
32
33
|
});
|
|
@@ -53,19 +54,22 @@ const createAddMeToYourFriendsButton = (subject, context) => {
|
|
|
53
54
|
if (friendExists) {
|
|
54
55
|
//logged in and friend exists or friend was just added
|
|
55
56
|
button.innerHTML = friendExistsAlreadyButtonText.toUpperCase();
|
|
56
|
-
button.
|
|
57
|
+
button.className = 'button';
|
|
58
|
+
button.setAttribute('class', style.primaryButton);
|
|
57
59
|
}
|
|
58
60
|
else {
|
|
59
61
|
//logged in and friend does not exist yet
|
|
60
62
|
button.innerHTML = addMeToYourFriendsButtonText.toUpperCase();
|
|
61
|
-
button.
|
|
63
|
+
button.className = 'button';
|
|
64
|
+
button.setAttribute('class', style.primaryButtonNoBorder);
|
|
62
65
|
}
|
|
63
66
|
});
|
|
64
67
|
}
|
|
65
68
|
else {
|
|
66
69
|
//not logged in
|
|
67
70
|
button.innerHTML = logInAddMeToYourFriendsButtonText.toUpperCase();
|
|
68
|
-
button.
|
|
71
|
+
button.className = 'button';
|
|
72
|
+
button.setAttribute('class', style.primaryButton);
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
75
|
return button;
|
|
@@ -97,12 +101,6 @@ function saveNewFriend(subject, context) {
|
|
|
97
101
|
throw new Error(userNotLoggedInErrorMessage);
|
|
98
102
|
});
|
|
99
103
|
}
|
|
100
|
-
function checkIfAnyUserLoggedIn(me) {
|
|
101
|
-
if (me)
|
|
102
|
-
return true;
|
|
103
|
-
else
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
104
|
function checkIfFriendExists(store, me, subject) {
|
|
107
105
|
return __awaiter(this, void 0, void 0, function* () {
|
|
108
106
|
yield store.fetcher.load(me);
|
|
@@ -112,5 +110,5 @@ function checkIfFriendExists(store, me, subject) {
|
|
|
112
110
|
return true;
|
|
113
111
|
});
|
|
114
112
|
}
|
|
115
|
-
export { addMeToYourFriendsDiv, createAddMeToYourFriendsButton, saveNewFriend,
|
|
113
|
+
export { addMeToYourFriendsDiv, createAddMeToYourFriendsButton, saveNewFriend, checkIfFriendExists, };
|
|
116
114
|
//# sourceMappingURL=addMeToYourFriends.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addMeToYourFriends.js","sourceRoot":"","sources":["../src/addMeToYourFriends.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"addMeToYourFriends.js","sourceRoot":"","sources":["../src/addMeToYourFriends.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import { widgets } from 'solid-ui';
|
|
|
2
2
|
function complain(buttonContainer, context, error) {
|
|
3
3
|
buttonContainer.appendChild(widgets.errorMessageBlock(context.dom, error));
|
|
4
4
|
}
|
|
5
|
-
//TODO create positive frontend message component on UI
|
|
6
5
|
function mention(buttonContainer, message) {
|
|
7
6
|
const positiveFrontendMessageDiv = document.createElement('div');
|
|
8
7
|
positiveFrontendMessageDiv.setAttribute('style', 'margin: 0.1em; padding: 0.5em; border: 0.05em solid gray; background-color: #efe; color:black;');
|
|
@@ -15,5 +14,11 @@ function clearPreviousMessage(buttonContainer) {
|
|
|
15
14
|
buttonContainer.removeChild(buttonContainer.lastChild);
|
|
16
15
|
}
|
|
17
16
|
}
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
function checkIfAnyUserLoggedIn(me) {
|
|
18
|
+
if (me)
|
|
19
|
+
return true;
|
|
20
|
+
else
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
export { complain, mention, clearPreviousMessage, checkIfAnyUserLoggedIn };
|
|
24
|
+
//# sourceMappingURL=buttonsHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buttonsHelper.js","sourceRoot":"","sources":["../src/buttonsHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGlC,SAAS,QAAQ,CACf,eAA+B,EAC/B,OAA2B,EAC3B,KAAa;IAEb,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,SAAS,OAAO,CAAC,eAA+B,EAAE,OAAe;IAC/D,MAAM,0BAA0B,GAAmB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAChF,0BAA0B,CAAC,YAAY,CACrC,OAAO,EACP,gGAAgG,CACjG,CAAA;IACD,4HAA4H;IAC5H,0BAA0B,CAAC,SAAS,GAAG,OAAO,CAAA;IAC9C,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAA;AACzD,CAAC;AAED,SAAS,oBAAoB,CAAC,eAA+B;IAC3D,OAAO,eAAe,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,eAAe,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAa;IAC3C,IAAI,EAAE;QAAE,OAAO,IAAI,CAAA;;QACd,OAAO,KAAK,CAAA;AACnB,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,CAAA"}
|
package/lib/texts.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// QR CODE
|
|
2
|
+
export const scanQrToConnectText = 'Scan the QR code to connect with me';
|
|
1
3
|
//ERRORS & SUCCESS
|
|
2
4
|
//Same 'not logged in' error message like on 'Chat with me' button
|
|
3
5
|
export const userNotLoggedInErrorMessage = 'Current user not found! Not logged in?';
|
|
@@ -7,8 +9,9 @@ export const friendWasAddedSuccesMessage = 'Friend was added!';
|
|
|
7
9
|
export const friendExistsMessage = 'Friend already exists';
|
|
8
10
|
export const loadingMessage = 'Loading...';
|
|
9
11
|
//BUTTONS
|
|
10
|
-
export const addMeToYourFriendsButtonText = 'Add me to your
|
|
11
|
-
export const logInAddMeToYourFriendsButtonText = 'Login to add me to your
|
|
12
|
-
export const
|
|
12
|
+
export const addMeToYourFriendsButtonText = 'Add me to your friends';
|
|
13
|
+
export const logInAddMeToYourFriendsButtonText = 'Login to add me to your friends';
|
|
14
|
+
export const logInToChatWithMeButtonText = 'Login to chat with me';
|
|
15
|
+
export const friendExistsAlreadyButtonText = 'Already part of friends';
|
|
13
16
|
export const chatWithMeButtonText = 'Chat with me';
|
|
14
17
|
//# sourceMappingURL=texts.js.map
|
package/lib/texts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texts.js","sourceRoot":"","sources":["../src/texts.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,kEAAkE;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAAG,wCAAwC,CAAA;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAA;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAA;AAE9D,OAAO;AACP,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAA;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAA;AAE1C,SAAS;AACT,MAAM,CAAC,MAAM,4BAA4B,GAAG,
|
|
1
|
+
{"version":3,"file":"texts.js","sourceRoot":"","sources":["../src/texts.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,MAAM,CAAC,MAAM,mBAAmB,GAAG,qCAAqC,CAAA;AACxE,kBAAkB;AAClB,kEAAkE;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAAG,wCAAwC,CAAA;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAA;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAA;AAE9D,OAAO;AACP,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAA;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAA;AAE1C,SAAS;AACT,MAAM,CAAC,MAAM,4BAA4B,GAAG,wBAAwB,CAAA;AACpE,MAAM,CAAC,MAAM,iCAAiC,GAAG,iCAAiC,CAAA;AAClF,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAA;AAClE,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAA;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "profile-pane",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.2.1-
|
|
4
|
+
"version": "1.2.1-2a2d2f2b",
|
|
5
5
|
"description": "A SolidOS compatible pane to display a personal profile page",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
17
|
"clean": "rm -rf lib",
|
|
18
|
-
"build": "npm run clean &&
|
|
18
|
+
"build": "npm run clean && npm run build-js",
|
|
19
19
|
"build-js": "tsc",
|
|
20
20
|
"lint": "eslint",
|
|
21
21
|
"test": "jest --no-coverage",
|
|
@@ -56,14 +56,19 @@
|
|
|
56
56
|
"babel-jest": "^30.0.0",
|
|
57
57
|
"babel-loader": "^10.0.0",
|
|
58
58
|
"chat-pane": "^2.5.1",
|
|
59
|
+
"css-loader": "^7.1.2",
|
|
59
60
|
"eslint": "^9.33.0",
|
|
60
61
|
"html-webpack-plugin": "^5.6.3",
|
|
62
|
+
"identity-obj-proxy": "^3.0.0",
|
|
61
63
|
"jest": "^30.0.2",
|
|
62
64
|
"jest-environment-jsdom": "^30.0.2",
|
|
63
65
|
"jest-fetch-mock": "^3.0.3",
|
|
64
66
|
"jsdom": "^27.0.0",
|
|
67
|
+
"node-polyfill-webpack-plugin": "^4.1.0",
|
|
65
68
|
"solid-logic": "^3.1.1",
|
|
69
|
+
"style-loader": "^4.0.0",
|
|
66
70
|
"typescript": "^5.9.2",
|
|
71
|
+
"typescript-plugin-css-modules": "^5.2.0",
|
|
67
72
|
"webpack": "^5.99.9",
|
|
68
73
|
"webpack-cli": "^6.0.1",
|
|
69
74
|
"webpack-dev-server": "^5.2.2"
|
package/lib/0SAVED-CVCard.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
import { fullWidth, heading, paddingSmall, textCenter, textLeft, textGray, } from './baseStyles';
|
|
3
|
-
import { styleMap } from 'lit-html/directives/style-map.js';
|
|
4
|
-
import { card } from './baseStyles';
|
|
5
|
-
const styles = {
|
|
6
|
-
image: styleMap(fullWidth()),
|
|
7
|
-
intro: styleMap(Object.assign(Object.assign({}, textGray()), textCenter())),
|
|
8
|
-
card: styleMap(card()),
|
|
9
|
-
info: styleMap(Object.assign(Object.assign({}, paddingSmall()), textLeft())),
|
|
10
|
-
};
|
|
11
|
-
export const CVCard = (profileBasics, cvData) => {
|
|
12
|
-
const { rolesByType, skills, languages } = cvData;
|
|
13
|
-
const nameStyle = styleMap(Object.assign(Object.assign({}, heading()), {
|
|
14
|
-
// "text-decoration": "underline",
|
|
15
|
-
color: profileBasics.highlightColor }));
|
|
16
|
-
if (renderRoles(rolesByType['FutureRole']) || renderRoles(rolesByType['CurrentRole']) || renderRoles(rolesByType['PastRole']) || renderSkills(skills) || renderLanguages(languages)) {
|
|
17
|
-
return html `
|
|
18
|
-
<div data-testid="curriculum-vitae" style="${styles.card}">
|
|
19
|
-
<div style=${styles.info}>
|
|
20
|
-
<h3 style=${nameStyle}>Bio</h3>
|
|
21
|
-
<div style=${styles.info}>${renderRoles(rolesByType['FutureRole'])}</div>
|
|
22
|
-
<hr />
|
|
23
|
-
<div style=${styles.info}>${renderRoles(rolesByType['CurrentRole'])}</div>
|
|
24
|
-
<hr />
|
|
25
|
-
<div style=${styles.info}>${renderRoles(rolesByType['PastRole'])}</div>
|
|
26
|
-
<hr />
|
|
27
|
-
<h3 style=${nameStyle}>Skills</h3>
|
|
28
|
-
<div style=${styles.info}>${renderSkills(skills)}</div>
|
|
29
|
-
<h3 style=${nameStyle}>Languages</h3>
|
|
30
|
-
<div style=${styles.info}>${renderLanguages(languages)}</div>
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
`;
|
|
34
|
-
}
|
|
35
|
-
return html ``;
|
|
36
|
-
};
|
|
37
|
-
function renderRole(role) {
|
|
38
|
-
return role
|
|
39
|
-
? html `<div style="margin-top: 0.3em; margin-bottom: 0.3em;">
|
|
40
|
-
<b>${role.orgName}</b>
|
|
41
|
-
<span>${strToUpperCase(role.roleText)}</span>
|
|
42
|
-
<span>${role.dates}</span>
|
|
43
|
-
</div> `
|
|
44
|
-
: html ``;
|
|
45
|
-
}
|
|
46
|
-
function renderRoles(roles) {
|
|
47
|
-
if (roles[0] > '')
|
|
48
|
-
return html `${renderRole(roles[0])}${roles.length > 1 ? renderRoles(roles.slice(1)) : html ``}`;
|
|
49
|
-
}
|
|
50
|
-
function renderSkill(skill) {
|
|
51
|
-
return skill
|
|
52
|
-
? html `<div style="margin: 0.5em;">
|
|
53
|
-
<p style="text-align: center;">${skill}</p>
|
|
54
|
-
</div> `
|
|
55
|
-
: html ``;
|
|
56
|
-
}
|
|
57
|
-
function renderSkills(skills) {
|
|
58
|
-
if (skills[0] > '')
|
|
59
|
-
return html `${renderSkill(strToUpperCase(skills[0]))} ${skills.length > 1 ? renderSkills(skills.slice(1)) : html ``}`;
|
|
60
|
-
}
|
|
61
|
-
function renderLan(language) {
|
|
62
|
-
return language
|
|
63
|
-
? html `<div style="margin: 0.5em;">
|
|
64
|
-
<p style="text-align: center;">${language}</p>
|
|
65
|
-
</div> `
|
|
66
|
-
: html ``;
|
|
67
|
-
}
|
|
68
|
-
function renderLanguages(languages) {
|
|
69
|
-
if (languages[0] > '')
|
|
70
|
-
return html `${renderLan(languages[0])}${languages.length > 1 ? renderLanguages(languages.slice(1)) : html ``}`;
|
|
71
|
-
}
|
|
72
|
-
function strToUpperCase(str) {
|
|
73
|
-
if (str && str[0] > '') {
|
|
74
|
-
const strCase = str.split(' ');
|
|
75
|
-
for (let i = 0; i < strCase.length; i++) {
|
|
76
|
-
strCase[i] = strCase[i].charAt(0).toUpperCase() +
|
|
77
|
-
strCase[i].substring(1);
|
|
78
|
-
}
|
|
79
|
-
return strCase.join(' ');
|
|
80
|
-
}
|
|
81
|
-
return '';
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=0SAVED-CVCard.js.map
|
package/lib/0SAVED-CVCard.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"0SAVED-CVCard.js","sourceRoot":"","sources":["../src/0SAVED-CVCard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addMeToYourFriendsHelper.js","sourceRoot":"","sources":["../src/addMeToYourFriendsHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,SAAS,QAAQ,CACf,eAA+B,EAC/B,OAA2B,EAC3B,KAAa;IAEb,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,uDAAuD;AACvD,SAAS,OAAO,CAAC,eAA+B,EAAE,OAAe;IAC/D,MAAM,0BAA0B,GAAmB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAChF,0BAA0B,CAAC,YAAY,CACrC,OAAO,EACP,gGAAgG,CACjG,CAAA;IACD,4HAA4H;IAC5H,0BAA0B,CAAC,SAAS,GAAG,OAAO,CAAA;IAC9C,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAA;AACzD,CAAC;AAED,SAAS,oBAAoB,CAAC,eAA+B;IAC3D,OAAO,eAAe,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,eAAe,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC;AACH,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
|
package/lib/baseStyles.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export const responsiveGrid = () => ({
|
|
2
|
-
'--auto-grid-min-size': '30rem', // was 20rem but allowed 2 cols on phone
|
|
3
|
-
display: 'grid',
|
|
4
|
-
'grid-template-columns': 'repeat(auto-fill, minmax(var(--auto-grid-min-size), 1fr))',
|
|
5
|
-
'grid-gap': '1rem',
|
|
6
|
-
});
|
|
7
|
-
export const card = () => ({
|
|
8
|
-
backgroundColor: 'white',
|
|
9
|
-
borderRadius: '4px',
|
|
10
|
-
boxShadow: '0 1px 5px rgba(0,0,0,0.2)',
|
|
11
|
-
padding: '0',
|
|
12
|
-
});
|
|
13
|
-
export const fullWidth = () => ({
|
|
14
|
-
width: '100%',
|
|
15
|
-
'max-width': '100vw',
|
|
16
|
-
});
|
|
17
|
-
export const padding = () => ({
|
|
18
|
-
padding: '1rem',
|
|
19
|
-
});
|
|
20
|
-
export const paddingSmall = () => ({
|
|
21
|
-
padding: '0.25rem',
|
|
22
|
-
});
|
|
23
|
-
export const marginVerticalSmall = () => ({
|
|
24
|
-
marginTop: '0.25rem',
|
|
25
|
-
marginBottom: '0.25rem',
|
|
26
|
-
});
|
|
27
|
-
export const textCenter = () => ({
|
|
28
|
-
textAlign: 'center',
|
|
29
|
-
});
|
|
30
|
-
export const textLeft = () => ({
|
|
31
|
-
textAlign: 'left',
|
|
32
|
-
});
|
|
33
|
-
export const textRight = () => ({
|
|
34
|
-
textAlign: 'right',
|
|
35
|
-
});
|
|
36
|
-
export const textXl = () => ({
|
|
37
|
-
fontSize: '1.25rem',
|
|
38
|
-
lineHeight: '1.75rem',
|
|
39
|
-
});
|
|
40
|
-
export const fontThin = () => ({
|
|
41
|
-
fontWeight: '100',
|
|
42
|
-
});
|
|
43
|
-
export const fontSemibold = () => ({
|
|
44
|
-
fontWeight: '600',
|
|
45
|
-
});
|
|
46
|
-
export const textDarkGray = () => ({
|
|
47
|
-
color: 'rgb(55, 65, 81,)',
|
|
48
|
-
});
|
|
49
|
-
export const textGray = () => ({
|
|
50
|
-
color: 'rgb(107, 114, 128)',
|
|
51
|
-
});
|
|
52
|
-
export const heading = () => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, textCenter()), textXl()), fontSemibold()), textDarkGray()), { margin: '0' }));
|
|
53
|
-
export const headingLight = () => (Object.assign(Object.assign(Object.assign(Object.assign({}, textGray()), fontThin()), textXl()), { margin: '0' }));
|
|
54
|
-
export const label = () => (Object.assign(Object.assign({}, textGray()), fontSemibold()));
|
|
55
|
-
//# sourceMappingURL=baseStyles.js.map
|
package/lib/baseStyles.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baseStyles.js","sourceRoot":"","sources":["../src/baseStyles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC;IACnC,sBAAsB,EAAE,OAAO,EAAE,wCAAwC;IACzE,OAAO,EAAE,MAAM;IACf,uBAAuB,EACrB,2DAA2D;IAC7D,UAAU,EAAE,MAAM;CACnB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;IACzB,eAAe,EAAE,OAAO;IACxB,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,2BAA2B;IACtC,OAAO,EAAE,GAAG;CACb,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,OAAO;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM;CAChB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC;IACjC,OAAO,EAAE,SAAS;CACnB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAAC;IACxC,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,SAAS;CACxB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM;CAClB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;IAC9B,SAAS,EAAE,OAAO;CACnB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC;IAC3B,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7B,UAAU,EAAE,KAAK;CAClB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC;IACjC,UAAU,EAAE,KAAK;CAClB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC;IACjC,KAAK,EAAE,kBAAkB;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7B,KAAK,EAAE,oBAAoB;CAC5B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,2EACxB,UAAU,EAAE,GACZ,MAAM,EAAE,GACR,YAAY,EAAE,GACd,YAAY,EAAE,KACjB,MAAM,EAAE,GAAG,IACX,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,6DAC7B,QAAQ,EAAE,GACV,QAAQ,EAAE,GACV,MAAM,EAAE,KACX,MAAM,EAAE,GAAG,IACX,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,iCACtB,QAAQ,EAAE,GACV,YAAY,EAAE,EACjB,CAAA"}
|