profile-pane 2.0.0-5f0bd04d → 2.0.0-shadowDom-5281ab13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +0 -1
  2. package/lib/CVCardElement.d.ts +2 -0
  3. package/lib/CVCardElement.d.ts.map +1 -0
  4. package/lib/CVCardElement.js +176 -0
  5. package/lib/CVCardElement.js.map +1 -0
  6. package/lib/CVPresenter.js +79 -92
  7. package/lib/CVPresenter.js.map +1 -0
  8. package/lib/ChatWithMeElement.d.ts +2 -0
  9. package/lib/ChatWithMeElement.d.ts.map +1 -0
  10. package/lib/ChatWithMeElement.js +157 -0
  11. package/lib/ChatWithMeElement.js.map +1 -0
  12. package/lib/FriendListElement.d.ts +7 -0
  13. package/lib/FriendListElement.d.ts.map +1 -0
  14. package/lib/FriendListElement.js +90 -0
  15. package/lib/FriendListElement.js.map +1 -0
  16. package/lib/FriendsPresenter.d.ts +20 -0
  17. package/lib/FriendsPresenter.d.ts.map +1 -0
  18. package/lib/FriendsPresenter.js +55 -0
  19. package/lib/FriendsPresenter.js.map +1 -0
  20. package/lib/ProfileCardElement.d.ts +2 -0
  21. package/lib/ProfileCardElement.d.ts.map +1 -0
  22. package/lib/ProfileCardElement.js +127 -0
  23. package/lib/ProfileCardElement.js.map +1 -0
  24. package/lib/ProfileViewElement.d.ts +13 -0
  25. package/lib/ProfileViewElement.d.ts.map +1 -0
  26. package/lib/ProfileViewElement.js +179 -0
  27. package/lib/ProfileViewElement.js.map +1 -0
  28. package/lib/QRCodeCardElement.d.ts +2 -0
  29. package/lib/QRCodeCardElement.d.ts.map +1 -0
  30. package/lib/QRCodeCardElement.js +135 -0
  31. package/lib/QRCodeCardElement.js.map +1 -0
  32. package/lib/SocialCardElement.d.ts +2 -0
  33. package/lib/SocialCardElement.d.ts.map +1 -0
  34. package/lib/SocialCardElement.js +108 -0
  35. package/lib/SocialCardElement.js.map +1 -0
  36. package/lib/SocialPresenter.d.ts.map +1 -1
  37. package/lib/SocialPresenter.js +69 -78
  38. package/lib/SocialPresenter.js.map +1 -0
  39. package/lib/StuffCardElement.d.ts +2 -0
  40. package/lib/StuffCardElement.d.ts.map +1 -0
  41. package/lib/StuffCardElement.js +97 -0
  42. package/lib/StuffCardElement.js.map +1 -0
  43. package/lib/StuffPresenter.d.ts.map +1 -1
  44. package/lib/StuffPresenter.js +27 -50
  45. package/lib/StuffPresenter.js.map +1 -0
  46. package/lib/addMeToYourFriends.d.ts +2 -2
  47. package/lib/addMeToYourFriends.d.ts.map +1 -1
  48. package/lib/addMeToYourFriends.js +95 -90
  49. package/lib/addMeToYourFriends.js.map +1 -0
  50. package/lib/{addMeToYourFriendsHelper.d.ts → buttonsHelper.d.ts} +4 -2
  51. package/lib/buttonsHelper.d.ts.map +1 -0
  52. package/lib/buttonsHelper.js +38 -0
  53. package/lib/buttonsHelper.js.map +1 -0
  54. package/lib/editProfilePane/editProfile.view.js +116 -123
  55. package/lib/editProfilePane/editProfile.view.js.map +1 -0
  56. package/lib/editProfilePane/profile.dom.js +28 -32
  57. package/lib/editProfilePane/profile.dom.js.map +1 -0
  58. package/lib/index.d.ts +1 -0
  59. package/lib/index.d.ts.map +1 -1
  60. package/lib/index.js +33 -64
  61. package/lib/index.js.map +1 -0
  62. package/lib/presenter.js +52 -57
  63. package/lib/presenter.js.map +1 -0
  64. package/lib/profile-pane.js +291 -0
  65. package/lib/profile-pane.js.map +1 -0
  66. package/lib/profile-pane.min.js +2 -0
  67. package/lib/profile-pane.min.js.map +1 -0
  68. package/lib/texts.d.ts +5 -3
  69. package/lib/texts.d.ts.map +1 -1
  70. package/lib/texts.js +13 -17
  71. package/lib/texts.js.map +1 -0
  72. package/package.json +18 -11
  73. package/lib/0SAVED-CVCard.d.ts +0 -5
  74. package/lib/0SAVED-CVCard.d.ts.map +0 -1
  75. package/lib/0SAVED-CVCard.js +0 -90
  76. package/lib/CVCard.d.ts +0 -5
  77. package/lib/CVCard.d.ts.map +0 -1
  78. package/lib/CVCard.js +0 -99
  79. package/lib/ChatWithMe.d.ts +0 -5
  80. package/lib/ChatWithMe.d.ts.map +0 -1
  81. package/lib/ChatWithMe.js +0 -43
  82. package/lib/FriendList.d.ts +0 -6
  83. package/lib/FriendList.d.ts.map +0 -1
  84. package/lib/FriendList.js +0 -46
  85. package/lib/ProfileCard.d.ts +0 -4
  86. package/lib/ProfileCard.d.ts.map +0 -1
  87. package/lib/ProfileCard.js +0 -43
  88. package/lib/ProfileView.d.ts +0 -5
  89. package/lib/ProfileView.d.ts.map +0 -1
  90. package/lib/ProfileView.js +0 -80
  91. package/lib/QRCodeCard.d.ts +0 -5
  92. package/lib/QRCodeCard.d.ts.map +0 -1
  93. package/lib/QRCodeCard.js +0 -60
  94. package/lib/SocialCard.d.ts +0 -5
  95. package/lib/SocialCard.d.ts.map +0 -1
  96. package/lib/SocialCard.js +0 -65
  97. package/lib/StuffCard.d.ts +0 -6
  98. package/lib/StuffCard.d.ts.map +0 -1
  99. package/lib/StuffCard.js +0 -63
  100. package/lib/addMeToYourFriendsHelper.d.ts.map +0 -1
  101. package/lib/addMeToYourFriendsHelper.js +0 -26
  102. package/lib/baseStyles.d.ts +0 -71
  103. package/lib/baseStyles.d.ts.map +0 -1
  104. package/lib/baseStyles.js +0 -92
package/README.md CHANGED
@@ -11,7 +11,6 @@ SolidOS pane that displays a personal profile page
11
11
  - lit-html
12
12
  - Jest
13
13
  - Eslint
14
- - SolidOS
15
14
 
16
15
  ### Tests
17
16
 
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CVCardElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CVCardElement.d.ts","sourceRoot":"","sources":["../src/CVCardElement.ts"],"names":[],"mappings":""}
@@ -0,0 +1,176 @@
1
+ import cvCardCss from './styles/CVCard.css';
2
+ import { html, render } from 'lit-html';
3
+ import globalCssText from './styles/global.css';
4
+ class CVCardElement extends HTMLElement {
5
+ constructor() {
6
+ super();
7
+ this.shadow = this.attachShadow({ mode: 'open' });
8
+ }
9
+ async connectedCallback() {
10
+ let globalSheet = null;
11
+ let cardSheet = null;
12
+ let canUseSheets = typeof CSSStyleSheet !== 'undefined' && typeof globalCssText === 'string' && typeof cvCardCss === 'string';
13
+ try {
14
+ if (canUseSheets) {
15
+ globalSheet = new CSSStyleSheet();
16
+ globalSheet.replaceSync(globalCssText);
17
+ if (!CVCardElement.sheet) {
18
+ CVCardElement.sheet = new CSSStyleSheet();
19
+ CVCardElement.sheet.replaceSync(cvCardCss);
20
+ }
21
+ cardSheet = CVCardElement.sheet;
22
+ }
23
+ }
24
+ catch (e) {
25
+ globalSheet = null;
26
+ cardSheet = null;
27
+ }
28
+ if ('adoptedStyleSheets' in Document.prototype && globalSheet && cardSheet) {
29
+ this.shadow.adoptedStyleSheets = [globalSheet, cardSheet];
30
+ }
31
+ else {
32
+ // Fallback for browsers or test environments without adoptedStyleSheets or CSSStyleSheet
33
+ if (typeof globalCssText === 'string') {
34
+ const styleGlobal = document.createElement('style');
35
+ styleGlobal.textContent = globalCssText;
36
+ this.shadow.appendChild(styleGlobal);
37
+ }
38
+ if (typeof cvCardCss === 'string') {
39
+ const styleCard = document.createElement('style');
40
+ styleCard.textContent = cvCardCss;
41
+ this.shadow.appendChild(styleCard);
42
+ }
43
+ }
44
+ this.render();
45
+ }
46
+ render() {
47
+ // .cardFrame wrapper already present from previous patch
48
+ // Assume cvData is passed as a property
49
+ const cvData = this.cvData;
50
+ if (!cvData)
51
+ return;
52
+ const { rolesByType, skills, languages } = cvData;
53
+ const futureRolesArr = rolesByType['FutureRole'] || [];
54
+ const currentRolesArr = rolesByType['CurrentRole'] || [];
55
+ const pastRolesArr = rolesByType['PastRole'] || [];
56
+ const skillsArr = skills || [];
57
+ const languagesArr = languages || [];
58
+ const hasFutureRole = Array.isArray(futureRolesArr) && futureRolesArr.length > 0;
59
+ const hasCurrentRole = Array.isArray(currentRolesArr) && currentRolesArr.length > 0;
60
+ const hasPastRole = Array.isArray(pastRolesArr) && pastRolesArr.length > 0;
61
+ const hasSkills = Array.isArray(skillsArr) && skillsArr.length > 0;
62
+ const hasLanguages = Array.isArray(languagesArr) && languagesArr.length > 0;
63
+ if (!(hasFutureRole || hasCurrentRole || hasPastRole || hasSkills || hasLanguages)) {
64
+ render(html ``, this.shadow);
65
+ return;
66
+ }
67
+ render(html `
68
+ <div class="cardFrame">
69
+ <article class="cvCard" aria-label="Professional Experience" data-testid="curriculum-vitae">
70
+ ${hasFutureRole ? html `
71
+ <section class="cvSection" aria-labelledby="cv-future-heading">
72
+ <h3 id="cv-future-heading">Future Roles</h3>
73
+ <ul role="list" aria-label="Upcoming professional roles">
74
+ ${renderRoles(futureRolesArr, true)}
75
+ </ul>
76
+ </section>
77
+ ` : ''}
78
+ ${hasCurrentRole ? html `
79
+ <section class="cvSection" aria-labelledby="cv-current-heading">
80
+ <h3 id="cv-current-heading">Current Roles</h3>
81
+ <ul role="list" aria-label="Current professional positions">
82
+ ${renderRoles(currentRolesArr, true)}
83
+ </ul>
84
+ </section>
85
+ ` : ''}
86
+ ${hasPastRole ? html `
87
+ <section class="cvSection" aria-labelledby="cv-past-heading">
88
+ <h3 id="cv-past-heading">Past Roles</h3>
89
+ <ul role="list" aria-label="Previous work experience">
90
+ ${renderRoles(pastRolesArr, true)}
91
+ </ul>
92
+ </section>
93
+ ` : ''}
94
+ ${hasSkills ? html `
95
+ <section class="cvSection" aria-labelledby="cv-skills-heading">
96
+ <h3 id="cv-skills-heading">Skills</h3>
97
+ <ul role="list" aria-label="Professional skills and competencies">
98
+ ${renderSkills(skillsArr, true)}
99
+ </ul>
100
+ </section>
101
+ ` : ''}
102
+ ${hasLanguages ? html `
103
+ <section class="cvSection" aria-labelledby="cv-languages-heading">
104
+ <h3 id="cv-languages-heading">Languages</h3>
105
+ <ul role="list" aria-label="Known languages">
106
+ ${renderLanguages(languagesArr, true)}
107
+ </ul>
108
+ </section>
109
+ ` : ''}
110
+ </article>
111
+ </div>
112
+ `, this.shadow);
113
+ }
114
+ get cvData() {
115
+ return this._cvData;
116
+ }
117
+ set cvData(val) {
118
+ this._cvData = val;
119
+ this.render();
120
+ }
121
+ }
122
+ CVCardElement.sheet = null;
123
+ customElements.define('cv-card', CVCardElement);
124
+ function renderRoles(roles, asList = false) {
125
+ if (!roles || !roles.length || !roles[0])
126
+ return html ``;
127
+ return html `${renderRole(roles[0], asList)}${roles.length > 1 ? renderRoles(roles.slice(1), asList) : html ``}`;
128
+ }
129
+ function renderRole(role, asList = false) {
130
+ if (!role)
131
+ return html ``;
132
+ return asList
133
+ ? html `
134
+ <li class="cvRole" role="listitem">
135
+ <strong class="cvOrg" aria-label="Organization">${role.orgName}</strong>
136
+ <span aria-label="Role title">${strToUpperCase(role.roleText)}</span>
137
+ <time aria-label="Employment period">${role.dates}</time>
138
+ </li>`
139
+ : html ``;
140
+ }
141
+ function renderSkill(skill, asList = false) {
142
+ if (!skill)
143
+ return html ``;
144
+ return asList
145
+ ? html `<li class="cvSkill">${strToUpperCase(skill)}</li>`
146
+ : html ``;
147
+ }
148
+ function renderSkills(skills, asList = false) {
149
+ if (!skills || !skills.length || !skills[0])
150
+ return html ``;
151
+ return html `${renderSkill(skills[0], asList)}${skills.length > 1 ? renderSkills(skills.slice(1), asList) : html ``}`;
152
+ }
153
+ function renderLan(language, asList = false) {
154
+ if (!language)
155
+ return html ``;
156
+ return asList
157
+ ? html `<li class="cvLanguage">${language}</li>`
158
+ : html ``;
159
+ }
160
+ function renderLanguages(languages, asList = false) {
161
+ if (!languages || !languages.length || !languages[0])
162
+ return html ``;
163
+ return html `${renderLan(languages[0], asList)}${languages.length > 1 ? renderLanguages(languages.slice(1), asList) : html ``}`;
164
+ }
165
+ function strToUpperCase(str) {
166
+ if (str && str[0] > '') {
167
+ const strCase = str.split(' ');
168
+ for (let i = 0; i < strCase.length; i++) {
169
+ strCase[i] = strCase[i].charAt(0).toUpperCase() +
170
+ strCase[i].substring(1);
171
+ }
172
+ return strCase.join(' ');
173
+ }
174
+ return '';
175
+ }
176
+ //# sourceMappingURL=CVCardElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CVCardElement.js","sourceRoot":"","sources":["../src/CVCardElement.ts"],"names":[],"mappings":"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"}
@@ -1,100 +1,87 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.datesAsText = datesAsText;
7
- exports.languageAsText = languageAsText;
8
- exports.presentCV = presentCV;
9
- exports.skillAsText = skillAsText;
10
- exports.typesOfRole = void 0;
11
- var _rdflib = require("rdflib");
12
- var _solidUi = require("solid-ui");
13
- const ORG = (0, _rdflib.Namespace)('http://www.w3.org/ns/org#');
14
- const typesOfRole = exports.typesOfRole = ['PastRole', 'CurrentRole', 'FutureRole'];
15
- function skillAsText(store, sk) {
16
- if (sk.termType === 'Literal') return sk.value; // Not normal but allow this
17
- const publicId = store.anyJS(sk, _solidUi.ns.solid('publicId'));
18
- if (publicId) {
19
- const name = store.anyJS(publicId, _solidUi.ns.schema('name'));
20
- if (name) return name; // @@ check language and get name in diff language if necessary
21
- }
22
- const manual = store.anyJS(sk, _solidUi.ns.vcard('role'));
23
- if (manual && manual[0] > '') return manual;
24
- return '¿¿¿ skill ???';
1
+ import { Namespace } from 'rdflib';
2
+ import { ns, utils } from 'solid-ui';
3
+ const ORG = Namespace('http://www.w3.org/ns/org#');
4
+ export const typesOfRole = ['PastRole', 'CurrentRole', 'FutureRole'];
5
+ export function skillAsText(store, sk) {
6
+ if (sk.termType === 'Literal')
7
+ return sk.value; // Not normal but allow this
8
+ const publicId = store.anyJS(sk, ns.solid('publicId'));
9
+ if (publicId) {
10
+ const name = store.anyJS(publicId, ns.schema('name'));
11
+ if (name)
12
+ return name; // @@ check language and get name in diff language if necessary
13
+ }
14
+ const manual = store.anyJS(sk, ns.vcard('role'));
15
+ if (manual && manual[0] > '')
16
+ return manual;
17
+ return '¿¿¿ skill ???';
25
18
  }
26
- function languageAsText(store, lan) {
27
- if (lan.termType === 'Literal') return lan.value; // Not normal but allow this
28
- const publicId = store.anyJS(lan, _solidUi.ns.solid('publicId'));
29
- if (publicId) return _solidUi.utils.label(publicId, true); // @@ check language and get name in diff language if necessary
30
- return '-';
19
+ export function languageAsText(store, lan) {
20
+ if (lan.termType === 'Literal')
21
+ return lan.value; // Not normal but allow this
22
+ const publicId = store.anyJS(lan, ns.solid('publicId'));
23
+ if (publicId)
24
+ return utils.label(publicId, true); // @@ check language and get name in diff language if necessary
25
+ return '-';
31
26
  }
32
- function datesAsText(startDate, endDate) {
33
- return startDate ? '(' + startDate.value.slice(0, 10) + ' to ' + (endDate ? endDate.value.slice(0, 10) : '') + ')' : '';
27
+ export function datesAsText(startDate, endDate) {
28
+ return startDate ? '(' + startDate.value.slice(0, 10) + ' to ' +
29
+ (endDate ? endDate.value.slice(0, 10) : '') + ')'
30
+ : '';
34
31
  }
35
32
  function getRolesByType(store, subject) {
36
- const memberships = store.each(null, ORG('member'), subject, null);
37
- const rolesByType = {
38
- PastRole: [],
39
- CurrentRole: [],
40
- FutureRole: []
41
- };
42
- for (const membership of memberships) {
43
- let orgHomePage, orgNameGiven, publicIdName, roleName, publicId;
44
- // Things should have start dates but we will be very lenient in this view
45
- const startDate = store.any(membership, _solidUi.ns.schema('startDate'));
46
- const endDate = store.any(membership, _solidUi.ns.schema('endDate'));
47
- const dates = datesAsText(startDate, endDate);
48
- const organization = store.any(membership, ORG('organization'));
49
- if (organization) {
50
- orgNameGiven = store.anyJS(organization, _solidUi.ns.schema('name'));
51
- orgHomePage = store.any(organization, _solidUi.ns.schema('uri'));
52
- publicId = store.any(organization, _solidUi.ns.solid('publicId'));
53
- }
54
- if (publicId) {
55
- publicIdName = store.anyJS(publicId, _solidUi.ns.schema('name'));
56
- }
57
- const orgName = publicIdName || orgNameGiven;
58
- const escoRole = store.any(membership, ORG('role'));
59
- if (escoRole) {
60
- roleName = store.anyJS(escoRole, _solidUi.ns.schema('name'));
33
+ const memberships = store.each(null, ORG('member'), subject, null);
34
+ const rolesByType = { PastRole: [], CurrentRole: [], FutureRole: [] };
35
+ for (const membership of memberships) {
36
+ let orgHomePage, orgNameGiven, publicIdName, roleName, publicId;
37
+ // Things should have start dates but we will be very lenient in this view
38
+ const startDate = store.any(membership, ns.schema('startDate'));
39
+ const endDate = store.any(membership, ns.schema('endDate'));
40
+ const dates = datesAsText(startDate, endDate);
41
+ const organization = store.any(membership, ORG('organization'));
42
+ if (organization) {
43
+ orgNameGiven = store.anyJS(organization, ns.schema('name'));
44
+ orgHomePage = store.any(organization, ns.schema('uri'));
45
+ publicId = store.any(organization, ns.solid('publicId'));
46
+ }
47
+ if (publicId) {
48
+ publicIdName = store.anyJS(publicId, ns.schema('name'));
49
+ }
50
+ const orgName = publicIdName || orgNameGiven;
51
+ const escoRole = store.any(membership, ORG('role'));
52
+ if (escoRole) {
53
+ roleName = store.anyJS(escoRole, ns.schema('name'));
54
+ }
55
+ const roleText0 = store.anyJS(membership, ns.vcard('role'));
56
+ const roleText = (roleText0 && roleName) ? roleName + ' - ' + roleText0
57
+ : roleText0 || roleName;
58
+ const item = {
59
+ startDate: startDate, endDate, orgName, roleText, dates, orgHomePage
60
+ };
61
+ for (const t of typesOfRole) {
62
+ if (store.holds(membership, ns.rdf('type'), ns.solid(t))) {
63
+ rolesByType[t].push(item);
64
+ }
65
+ }
61
66
  }
62
- const roleText0 = store.anyJS(membership, _solidUi.ns.vcard('role'));
63
- const roleText = roleText0 && roleName ? roleName + ' - ' + roleText0 : roleText0 || roleName;
64
- const item = {
65
- startDate: startDate,
66
- endDate,
67
- orgName,
68
- roleText,
69
- dates,
70
- orgHomePage
71
- };
67
+ return rolesByType;
68
+ }
69
+ export function presentCV(subject, store) {
70
+ const rolesByType = getRolesByType(store, subject);
71
+ // Most recent thing most relevant -> sort by end date
72
72
  for (const t of typesOfRole) {
73
- if (store.holds(membership, _solidUi.ns.rdf('type'), _solidUi.ns.solid(t))) {
74
- rolesByType[t].push(item);
75
- }
73
+ rolesByType[t].sort(function (x, y) {
74
+ if (x.endDate && y.endDate) {
75
+ return x.endDate > y.endDate ? -1 : 1;
76
+ }
77
+ return x.startDate > y.startDate ? -1 : 1;
78
+ });
76
79
  }
77
- }
78
- return rolesByType;
80
+ const skills = store.each(subject, ns.schema('skills')).map(sk => skillAsText(store, sk));
81
+ const languagesInStore = store.anyJS(subject, ns.schema('knowsLanguage'));
82
+ let languages = [];
83
+ if (languagesInStore)
84
+ languages = languagesInStore.map(lan => languageAsText(store, lan));
85
+ return { rolesByType, skills, languages };
79
86
  }
80
- function presentCV(subject, store) {
81
- const rolesByType = getRolesByType(store, subject);
82
- // Most recent thing most relevant -> sort by end date
83
- for (const t of typesOfRole) {
84
- rolesByType[t].sort(function (x, y) {
85
- if (x.endDate && y.endDate) {
86
- return x.endDate > y.endDate ? -1 : 1;
87
- }
88
- return x.startDate > y.startDate ? -1 : 1;
89
- });
90
- }
91
- const skills = store.each(subject, _solidUi.ns.schema('skills')).map(sk => skillAsText(store, sk));
92
- const languagesInStore = store.anyJS(subject, _solidUi.ns.schema('knowsLanguage'));
93
- let languages = [];
94
- if (languagesInStore) languages = languagesInStore.map(lan => languageAsText(store, lan));
95
- return {
96
- rolesByType,
97
- skills,
98
- languages
99
- };
100
- }
87
+ //# sourceMappingURL=CVPresenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CVPresenter.js","sourceRoot":"","sources":["../src/CVPresenter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChatWithMeElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWithMeElement.d.ts","sourceRoot":"","sources":["../src/ChatWithMeElement.ts"],"names":[],"mappings":""}
@@ -0,0 +1,157 @@
1
+ import chatWithMeCss from './styles/ChatWithMe.css';
2
+ import { html, render } from 'lit-html';
3
+ import { widgets } from 'solid-ui';
4
+ import { authn } from 'solid-logic';
5
+ import { chatWithMeButtonText, logInToChatWithMeButtonText, loadingMessage } from './texts';
6
+ import { checkIfAnyUserLoggedIn, complain } from './buttonsHelper';
7
+ import globalCssText from './styles/global.css';
8
+ class ChatWithMeElement extends HTMLElement {
9
+ constructor() {
10
+ super();
11
+ this.shadow = this.attachShadow({ mode: 'open' });
12
+ }
13
+ async connectedCallback() {
14
+ let globalSheet = null;
15
+ let cardSheet = null;
16
+ let canUseSheets = typeof CSSStyleSheet !== 'undefined' && typeof globalCssText === 'string' && typeof chatWithMeCss === 'string';
17
+ try {
18
+ if (canUseSheets) {
19
+ globalSheet = new CSSStyleSheet();
20
+ globalSheet.replaceSync(globalCssText);
21
+ if (!ChatWithMeElement.sheet) {
22
+ ChatWithMeElement.sheet = new CSSStyleSheet();
23
+ ChatWithMeElement.sheet.replaceSync(chatWithMeCss);
24
+ }
25
+ cardSheet = ChatWithMeElement.sheet;
26
+ }
27
+ }
28
+ catch (e) {
29
+ globalSheet = null;
30
+ cardSheet = null;
31
+ }
32
+ if ('adoptedStyleSheets' in Document.prototype && globalSheet && cardSheet) {
33
+ this.shadow.adoptedStyleSheets = [globalSheet, cardSheet];
34
+ }
35
+ else {
36
+ // Fallback for browsers or test environments without adoptedStyleSheets or CSSStyleSheet
37
+ if (typeof globalCssText === 'string') {
38
+ const styleGlobal = document.createElement('style');
39
+ styleGlobal.textContent = globalCssText;
40
+ this.shadow.appendChild(styleGlobal);
41
+ }
42
+ if (typeof chatWithMeCss === 'string') {
43
+ const styleCard = document.createElement('style');
44
+ styleCard.textContent = chatWithMeCss;
45
+ this.shadow.appendChild(styleCard);
46
+ }
47
+ }
48
+ this.render();
49
+ }
50
+ render() {
51
+ const self = this;
52
+ const subject = self.subject;
53
+ const context = self.context;
54
+ if (!subject || !context) {
55
+ render(html ``, self.shadow);
56
+ return;
57
+ }
58
+ const logic = context.session.logic;
59
+ const longChatPane = context.session.paneRegistry.byName('long chat');
60
+ const frame = document.createElement('div');
61
+ frame.setAttribute('class', 'cardFrame');
62
+ const chatContainer = document.createElement('div');
63
+ chatContainer.setAttribute('class', 'chatSection');
64
+ chatContainer.setAttribute('aria-labelledby', 'chat-section-title');
65
+ chatContainer.setAttribute('role', 'region');
66
+ chatContainer.setAttribute('data-testid', 'chat');
67
+ const title = document.createElement('h3');
68
+ title.id = 'chat-section-title';
69
+ title.className = 'sr-only';
70
+ title.textContent = 'Communication';
71
+ chatContainer.appendChild(title);
72
+ let exists;
73
+ (async () => {
74
+ try {
75
+ render(html `
76
+ <div class="chatLoading" role="status" aria-live="polite">
77
+ ${loadingMessage.toUpperCase()}
78
+ </div>
79
+ `, self.shadow);
80
+ exists = await logic.chat.getChat(subject, false);
81
+ }
82
+ catch (e) {
83
+ exists = false;
84
+ }
85
+ if (exists) {
86
+ const chatArea = document.createElement('div');
87
+ chatArea.setAttribute('role', 'log');
88
+ chatArea.setAttribute('aria-label', 'Chat conversation');
89
+ chatArea.appendChild(longChatPane.render(exists, context, {}));
90
+ chatContainer.appendChild(chatArea);
91
+ frame.appendChild(chatContainer);
92
+ render(frame, self.shadow);
93
+ }
94
+ else {
95
+ const me = authn.currentUser();
96
+ let label = checkIfAnyUserLoggedIn(me) ? chatWithMeButtonText.toUpperCase() : logInToChatWithMeButtonText.toUpperCase();
97
+ const button = widgets.button(document, undefined, label, setButtonHandler, { needsBorder: true });
98
+ async function setButtonHandler(event) {
99
+ event.preventDefault();
100
+ try {
101
+ const chat = await logic.chat.getChat(subject, true);
102
+ chatContainer.innerHTML = '';
103
+ chatContainer.appendChild(longChatPane.render(chat, context, {}));
104
+ frame.appendChild(chatContainer);
105
+ render(frame, self.shadow);
106
+ }
107
+ catch (error) {
108
+ complain(chatContainer, context, error);
109
+ }
110
+ }
111
+ button.refresh = refreshButton();
112
+ function refreshButton() {
113
+ const me = authn.currentUser();
114
+ if (checkIfAnyUserLoggedIn(me)) {
115
+ button.innerHTML = chatWithMeButtonText.toUpperCase();
116
+ button.className = 'button';
117
+ button.setAttribute('class', 'button');
118
+ }
119
+ else {
120
+ button.innerHTML = logInToChatWithMeButtonText.toUpperCase();
121
+ button.className = 'button';
122
+ button.setAttribute('class', 'button');
123
+ }
124
+ }
125
+ button.setAttribute('type', 'button');
126
+ button.setAttribute('aria-describedby', 'chat-button-description');
127
+ const description = document.createElement('span');
128
+ description.id = 'chat-button-description';
129
+ description.className = 'sr-only';
130
+ description.textContent = 'Start a new conversation or sign in to continue existing chat';
131
+ chatContainer.appendChild(button);
132
+ chatContainer.appendChild(description);
133
+ frame.appendChild(chatContainer);
134
+ render(frame, self.shadow);
135
+ }
136
+ })();
137
+ }
138
+ get subject() {
139
+ return this._subject;
140
+ }
141
+ set subject(val) {
142
+ this._subject = val;
143
+ this.render();
144
+ }
145
+ get context() {
146
+ return this._context;
147
+ }
148
+ set context(val) {
149
+ this._context = val;
150
+ this.render();
151
+ }
152
+ }
153
+ ChatWithMeElement.sheet = null;
154
+ if (!customElements.get('chat-with-me')) {
155
+ customElements.define('chat-with-me', ChatWithMeElement);
156
+ }
157
+ //# sourceMappingURL=ChatWithMeElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatWithMeElement.js","sourceRoot":"","sources":["../src/ChatWithMeElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ declare global {
2
+ interface Window {
3
+ __DEBUG_FRIENDS?: boolean;
4
+ }
5
+ }
6
+ export {};
7
+ //# sourceMappingURL=FriendListElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FriendListElement.d.ts","sourceRoot":"","sources":["../src/FriendListElement.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B;CACF"}