profile-pane 3.2.3-0 → 3.2.3-2
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/ProfileView.css +73 -236
- package/lib/ProfileView.d.ts +2 -1
- package/lib/ProfileView.d.ts.map +1 -1
- package/lib/ProfileView.js +19 -18
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +35 -35
- package/lib/profile-pane.js +17229 -25377
- package/lib/profile-pane.js.map +1 -1
- package/lib/profile-pane.min.js +809 -1579
- package/lib/profile-pane.min.js.map +1 -1
- package/lib/sections/bio/BioSection.css +16 -123
- package/lib/sections/bio/BioSection.d.ts +2 -2
- package/lib/sections/bio/BioSection.d.ts.map +1 -1
- package/lib/sections/bio/BioSection.js +23 -32
- package/lib/sections/contactInfo/ContactInfoEditDialog.css +33 -66
- package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts.map +1 -1
- package/lib/sections/contactInfo/ContactInfoEditDialog.js +15 -39
- package/lib/sections/contactInfo/ContactInfoSection.css +7 -7
- package/lib/sections/contactInfo/ContactInfoSection.d.ts +2 -2
- package/lib/sections/contactInfo/ContactInfoSection.d.ts.map +1 -1
- package/lib/sections/contactInfo/ContactInfoSection.js +34 -49
- package/lib/sections/education/EducationSection.d.ts +1 -1
- package/lib/sections/education/EducationSection.d.ts.map +1 -1
- package/lib/sections/education/EducationSection.js +2 -3
- package/lib/sections/heading/HeadingEditDialog.d.ts.map +1 -1
- package/lib/sections/heading/HeadingEditDialog.js +1 -9
- package/lib/sections/heading/HeadingSection.css +122 -346
- package/lib/sections/heading/HeadingSection.d.ts +2 -3
- package/lib/sections/heading/HeadingSection.d.ts.map +1 -1
- package/lib/sections/heading/HeadingSection.js +13 -19
- package/lib/sections/languages/LanguageEditDialog.d.ts.map +1 -1
- package/lib/sections/languages/LanguageEditDialog.js +7 -8
- package/lib/sections/languages/LanguageSection.css +6 -6
- package/lib/sections/languages/LanguageSection.d.ts +2 -2
- package/lib/sections/languages/LanguageSection.d.ts.map +1 -1
- package/lib/sections/languages/LanguageSection.js +33 -49
- package/lib/sections/projects/ProjectEditDialog.d.ts +0 -1
- package/lib/sections/projects/ProjectEditDialog.d.ts.map +1 -1
- package/lib/sections/projects/ProjectEditDialog.js +2 -6
- package/lib/sections/projects/ProjectSection.css +36 -94
- package/lib/sections/projects/ProjectSection.d.ts +2 -2
- package/lib/sections/projects/ProjectSection.d.ts.map +1 -1
- package/lib/sections/projects/ProjectSection.js +28 -49
- package/lib/sections/resume/ResumeEditDialog.d.ts +0 -1
- package/lib/sections/resume/ResumeEditDialog.d.ts.map +1 -1
- package/lib/sections/resume/ResumeEditDialog.js +20 -40
- package/lib/sections/resume/ResumeSection.css +51 -133
- package/lib/sections/resume/ResumeSection.d.ts +3 -3
- package/lib/sections/resume/ResumeSection.d.ts.map +1 -1
- package/lib/sections/resume/ResumeSection.js +28 -42
- package/lib/sections/shared/sectionCardHelpers.js +15 -15
- package/lib/sections/skills/SkillsEditDialog.d.ts.map +1 -1
- package/lib/sections/skills/SkillsEditDialog.js +1 -3
- package/lib/sections/skills/SkillsSection.css +20 -67
- package/lib/sections/skills/SkillsSection.d.ts +2 -2
- package/lib/sections/skills/SkillsSection.d.ts.map +1 -1
- package/lib/sections/skills/SkillsSection.js +36 -55
- package/lib/sections/social/SocialEditDialog.d.ts.map +1 -1
- package/lib/sections/social/SocialEditDialog.js +4 -9
- package/lib/sections/social/SocialSection.css +19 -70
- package/lib/sections/social/SocialSection.d.ts +2 -2
- package/lib/sections/social/SocialSection.d.ts.map +1 -1
- package/lib/sections/social/SocialSection.js +37 -61
- package/lib/specialButtons/addMeToYourFriends.d.ts.map +1 -1
- package/lib/specialButtons/addMeToYourFriends.js +0 -2
- package/lib/styles/CollapsibleSection.css +39 -223
- package/lib/styles/EditDialogs.css +90 -284
- package/lib/styles/EditDialogs.responsive.css +72 -147
- package/lib/types.d.ts +1 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/ui/dialog.css +18 -89
- package/lib/ui/dialog.d.ts.map +1 -1
- package/lib/ui/dialog.js +5 -9
- package/lib/ui/dialog.responsive.css +31 -34
- package/lib/ui/responsiveActionButton.d.ts +19 -0
- package/lib/ui/responsiveActionButton.d.ts.map +1 -0
- package/lib/ui/responsiveActionButton.js +34 -0
- package/lib/utils/resize.d.ts +2 -0
- package/lib/utils/resize.d.ts.map +1 -0
- package/lib/utils/resize.js +40 -0
- package/package.json +19 -19
- package/lib/303.profile-pane.js +0 -1362
- package/lib/303.profile-pane.js.map +0 -1
- package/lib/303.profile-pane.min.js +0 -2
- package/lib/303.profile-pane.min.js.map +0 -1
- package/lib/specialButtons/addContact/AddMeToYourContacts.css +0 -1118
- package/lib/specialButtons/addContact/ContactCreationDialog.d.ts +0 -10
- package/lib/specialButtons/addContact/ContactCreationDialog.d.ts.map +0 -1
- package/lib/specialButtons/addContact/ContactCreationDialog.js +0 -1123
- package/lib/specialButtons/addContact/addMeToYourContacts.d.ts +0 -16
- package/lib/specialButtons/addContact/addMeToYourContacts.d.ts.map +0 -1
- package/lib/specialButtons/addContact/addMeToYourContacts.js +0 -136
- package/lib/specialButtons/addContact/contactsErrors.d.ts +0 -8
- package/lib/specialButtons/addContact/contactsErrors.d.ts.map +0 -1
- package/lib/specialButtons/addContact/contactsErrors.js +0 -106
- package/lib/specialButtons/addContact/contactsTypes.d.ts +0 -43
- package/lib/specialButtons/addContact/contactsTypes.d.ts.map +0 -1
- package/lib/specialButtons/addContact/contactsTypes.js +0 -5
- package/lib/specialButtons/addContact/helpers.d.ts +0 -7
- package/lib/specialButtons/addContact/helpers.d.ts.map +0 -1
- package/lib/specialButtons/addContact/helpers.js +0 -103
- package/lib/specialButtons/addContact/mutations.d.ts +0 -16
- package/lib/specialButtons/addContact/mutations.d.ts.map +0 -1
- package/lib/specialButtons/addContact/mutations.js +0 -300
- package/lib/specialButtons/addContact/selectors.d.ts +0 -10
- package/lib/specialButtons/addContact/selectors.d.ts.map +0 -1
- package/lib/specialButtons/addContact/selectors.js +0 -163
|
@@ -1,28 +1,23 @@
|
|
|
1
|
-
/* Projects section styles. */
|
|
2
|
-
|
|
3
1
|
.profile__section[data-profile-section='projects'],
|
|
4
2
|
.profile__section--empty[data-profile-section='projects'] {
|
|
5
|
-
--project-card-rail-gap: var(--spacing-md, 1rem);
|
|
6
3
|
--project-card-rail-wrap: nowrap;
|
|
7
4
|
--project-card-rail-overflow-x: auto;
|
|
8
5
|
--project-card-rail-scroll-snap-type: x proximity;
|
|
9
6
|
--project-card-flex-basis: min(420px, 88vw);
|
|
10
7
|
--project-card-flex: 0 0 var(--project-card-flex-basis);
|
|
11
8
|
--project-card-max-width: none;
|
|
12
|
-
--project-card-scrollbar-height:
|
|
9
|
+
--project-card-scrollbar-height: 8px;
|
|
13
10
|
--project-card-thumb-column-width: 88px;
|
|
14
11
|
--project-card-thumb-size: 4.125rem;
|
|
15
|
-
--project-card-follow-label-gap:
|
|
16
|
-
--project-card-wrapper-gap:
|
|
17
|
-
--project-card-content-gap:
|
|
18
|
-
--project-card-heading-gap:
|
|
19
|
-
--project-card-meta-margin-top:
|
|
12
|
+
--project-card-follow-label-gap: 5px;
|
|
13
|
+
--project-card-wrapper-gap: 10px;
|
|
14
|
+
--project-card-content-gap: 5px;
|
|
15
|
+
--project-card-heading-gap: 3px;
|
|
16
|
+
--project-card-meta-margin-top: 12px;
|
|
20
17
|
--project-card-meta-font-size: 0.86rem;
|
|
21
|
-
--project-card-footer-padding: var(--spacing-xs, 0.75rem);
|
|
22
|
-
--project-card-more-button-gap: var(--spacing-xs, 0.375rem);
|
|
23
18
|
--project-card-more-button-width: auto;
|
|
24
19
|
--project-card-more-button-part-width: auto;
|
|
25
|
-
--project-card-mobile-more-button-margin-top:
|
|
20
|
+
--project-card-mobile-more-button-margin-top: 12px;
|
|
26
21
|
--project-card-more-button-margin-top: 0;
|
|
27
22
|
--project-card-collapsed-extra-display: flex;
|
|
28
23
|
--project-card-more-icon-transform: rotate(0deg);
|
|
@@ -31,7 +26,7 @@
|
|
|
31
26
|
/* Rail and cards */
|
|
32
27
|
.project-card__rail {
|
|
33
28
|
display: flex;
|
|
34
|
-
gap:
|
|
29
|
+
gap: 20px;
|
|
35
30
|
overflow-x: var(--project-card-rail-overflow-x, auto);
|
|
36
31
|
padding: 0;
|
|
37
32
|
margin: 0;
|
|
@@ -40,24 +35,6 @@
|
|
|
40
35
|
scroll-snap-type: var(--project-card-rail-scroll-snap-type, x proximity);
|
|
41
36
|
}
|
|
42
37
|
|
|
43
|
-
solid-ui-button.project-card__follow-button {
|
|
44
|
-
width: auto;
|
|
45
|
-
min-width: 0;
|
|
46
|
-
max-width: none;
|
|
47
|
-
gap: var(--project-card-follow-label-gap);
|
|
48
|
-
--button-border-width: var(--border-width-sm, 0.1rem);
|
|
49
|
-
--button-font-size-sm: var(--font-size-sm, 0.875rem);
|
|
50
|
-
--button-font-weight: var(--font-weight-md, 500);
|
|
51
|
-
--button-padding-sm: var(--spacing-base, 0.5rem) var(--spacing-2xs, 0.625rem);
|
|
52
|
-
--button-border-radius: var(--border-radius-md, 0.5rem);
|
|
53
|
-
--button-background: var(--color-card-bg, var(--white, #FFF));
|
|
54
|
-
--button-text: var(--color-primary, #7C4DFF);
|
|
55
|
-
--button-border: var(--color-primary, #7C4DFF);
|
|
56
|
-
--button-hover-background: var(--color-primary, #7C4DFF);
|
|
57
|
-
--button-hover-text: var(--color-text-on-action, var(--white, #FFF));
|
|
58
|
-
--button-hover-border: var(--color-primary, #7C4DFF);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
38
|
.project-card__follow-label {
|
|
62
39
|
display: inline-flex;
|
|
63
40
|
align-items: center;
|
|
@@ -86,25 +63,19 @@ solid-ui-button.project-card__follow-button:focus-within .project-card__follow-l
|
|
|
86
63
|
display: inline-flex;
|
|
87
64
|
}
|
|
88
65
|
|
|
89
|
-
solid-ui-button.project-card__follow-button[
|
|
66
|
+
solid-ui-button.project-card__follow-button[loading] {
|
|
90
67
|
pointer-events: none;
|
|
91
68
|
}
|
|
92
69
|
|
|
93
|
-
solid-ui-button.project-card__follow-button[
|
|
94
|
-
solid-ui-button.project-card__follow-button[
|
|
70
|
+
solid-ui-button.project-card__follow-button[loading] .project-card__follow-label--default,
|
|
71
|
+
solid-ui-button.project-card__follow-button[loading] .project-card__follow-label--hover {
|
|
95
72
|
display: none;
|
|
96
73
|
}
|
|
97
74
|
|
|
98
|
-
solid-ui-button.project-card__follow-button[
|
|
75
|
+
solid-ui-button.project-card__follow-button[loading] .project-card__follow-label--loading {
|
|
99
76
|
display: inline-flex;
|
|
100
77
|
}
|
|
101
78
|
|
|
102
|
-
solid-ui-button.project-card__follow-button[data-loading='true'] .loading-spinner {
|
|
103
|
-
width: var(--icon-xxs, 1rem);
|
|
104
|
-
height: var(--icon-xxs, 1rem);
|
|
105
|
-
border-width: 0.125rem;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
79
|
.project-card__rail::-webkit-scrollbar {
|
|
109
80
|
height: var(--project-card-scrollbar-height);
|
|
110
81
|
}
|
|
@@ -119,16 +90,16 @@ solid-ui-button.project-card__follow-button[data-loading='true'] .loading-spinne
|
|
|
119
90
|
flex-direction: column;
|
|
120
91
|
flex: var(--project-card-flex, 0 0 var(--project-card-flex-basis));
|
|
121
92
|
width: 100%;
|
|
122
|
-
max-width: var(--project-card-max-width
|
|
93
|
+
max-width: var(--project-card-max-width);
|
|
123
94
|
min-width: 0;
|
|
124
95
|
box-sizing: border-box;
|
|
125
96
|
scroll-snap-align: start;
|
|
126
|
-
border-radius:
|
|
127
|
-
border:
|
|
128
|
-
padding:
|
|
97
|
+
border-radius: 8px;
|
|
98
|
+
border: 1px solid var(--color-border, var(--gray-200, #E5E7EB));
|
|
99
|
+
padding: 20px;
|
|
129
100
|
justify-content: center;
|
|
130
101
|
align-items: flex-start;
|
|
131
|
-
gap:
|
|
102
|
+
gap: 15px;
|
|
132
103
|
flex-shrink: 0;
|
|
133
104
|
}
|
|
134
105
|
|
|
@@ -151,7 +122,7 @@ solid-ui-button.project-card__follow-button[data-loading='true'] .loading-spinne
|
|
|
151
122
|
gap: var(--project-card-wrapper-gap);
|
|
152
123
|
width: 100%;
|
|
153
124
|
align-items: start;
|
|
154
|
-
border-radius:
|
|
125
|
+
border-radius: 8px;
|
|
155
126
|
border-bottom: 1px solid var(--color-border, var(--gray-200, #E5E7EB));
|
|
156
127
|
}
|
|
157
128
|
|
|
@@ -162,9 +133,9 @@ solid-ui-button.project-card__follow-button[data-loading='true'] .loading-spinne
|
|
|
162
133
|
width: var(--project-card-thumb-size);
|
|
163
134
|
height: var(--project-card-thumb-size);
|
|
164
135
|
overflow: hidden;
|
|
165
|
-
border-radius:
|
|
136
|
+
border-radius: 8px;
|
|
166
137
|
background: var(--color-surface-placeholder, var(--gray-200, #E5E7EB));
|
|
167
|
-
padding:
|
|
138
|
+
padding: 10.5px 10px;
|
|
168
139
|
aspect-ratio: 1/1;
|
|
169
140
|
}
|
|
170
141
|
|
|
@@ -213,8 +184,8 @@ solid-ui-button.project-card__follow-button[data-loading='true'] .loading-spinne
|
|
|
213
184
|
overflow: hidden;
|
|
214
185
|
color: var(--color-text-subheading, var(--gray-900, #101828));
|
|
215
186
|
text-overflow: ellipsis;
|
|
216
|
-
font-size: var(--font-size-lg, 1.125rem);
|
|
217
|
-
font-weight:
|
|
187
|
+
font-size: var(--solid-ui-font-size-lg, 1.125rem);
|
|
188
|
+
font-weight: 600;
|
|
218
189
|
display: -webkit-box;
|
|
219
190
|
-webkit-box-orient: vertical;
|
|
220
191
|
-webkit-line-clamp: 1;
|
|
@@ -223,9 +194,9 @@ solid-ui-button.project-card__follow-button[data-loading='true'] .loading-spinne
|
|
|
223
194
|
}
|
|
224
195
|
|
|
225
196
|
.project-card__organization {
|
|
226
|
-
color: var(--color-
|
|
227
|
-
font-size: var(--font-size-sm, 0.875rem);
|
|
228
|
-
font-weight:
|
|
197
|
+
color: var(--solid-ui-color-gray-700, #364153);
|
|
198
|
+
font-size: var(--solid-ui-font-size-sm, 0.875rem);
|
|
199
|
+
font-weight: 500;
|
|
229
200
|
overflow: hidden;
|
|
230
201
|
text-overflow: ellipsis;
|
|
231
202
|
display: -webkit-box;
|
|
@@ -237,8 +208,8 @@ solid-ui-button.project-card__follow-button[data-loading='true'] .loading-spinne
|
|
|
237
208
|
}
|
|
238
209
|
|
|
239
210
|
.project-card__category {
|
|
240
|
-
font-size:
|
|
241
|
-
font-weight:
|
|
211
|
+
font-size: 0.75rem;
|
|
212
|
+
font-weight: 500;
|
|
242
213
|
}
|
|
243
214
|
|
|
244
215
|
.project-card__category--project {
|
|
@@ -256,7 +227,7 @@ solid-ui-button.project-card__follow-button[data-loading='true'] .loading-spinne
|
|
|
256
227
|
.project-card__meta {
|
|
257
228
|
margin-top: var(--project-card-meta-margin-top);
|
|
258
229
|
overflow-wrap: anywhere;
|
|
259
|
-
font-size: var(--project-card-meta-font-size
|
|
230
|
+
font-size: var(--project-card-meta-font-size);
|
|
260
231
|
}
|
|
261
232
|
|
|
262
233
|
.project-card__footer {
|
|
@@ -264,36 +235,21 @@ solid-ui-button.project-card__follow-button[data-loading='true'] .loading-spinne
|
|
|
264
235
|
justify-content: flex-start;
|
|
265
236
|
align-self: stretch;
|
|
266
237
|
margin-top: auto;
|
|
267
|
-
padding:
|
|
238
|
+
padding: 15px 0 0;
|
|
268
239
|
}
|
|
269
240
|
|
|
270
241
|
.profile__section[data-profile-section='projects'] .profile-section-inline-error {
|
|
271
|
-
margin-top:
|
|
272
|
-
padding:
|
|
242
|
+
margin-top: 15px;
|
|
243
|
+
padding: 12px;
|
|
273
244
|
border: 1px solid var(--dialog-error-border, var(--pink-700, #ff98b3));
|
|
274
|
-
border-radius:
|
|
245
|
+
border-radius: 5px;
|
|
275
246
|
background: var(--dialog-error-background, var(--pink-500, #ffdde6));
|
|
276
|
-
color: var(--
|
|
247
|
+
color: var(--solid-ui-color-error, #B00020);
|
|
277
248
|
text-align: left;
|
|
278
249
|
white-space: pre-wrap;
|
|
279
250
|
overflow-wrap: anywhere;
|
|
280
251
|
}
|
|
281
252
|
|
|
282
|
-
/* Action buttons */
|
|
283
|
-
|
|
284
|
-
solid-ui-button.project-card__more-button {
|
|
285
|
-
width: var(--project-card-more-button-width, auto);
|
|
286
|
-
margin-top: var(--project-card-more-button-margin-top, 0);
|
|
287
|
-
--button-height-sm: 0;
|
|
288
|
-
--button-padding-x-sm: 0;
|
|
289
|
-
--button-background: transparent;
|
|
290
|
-
--button-border: transparent;
|
|
291
|
-
--button-text: var(--color-primary, #7C4DFF);
|
|
292
|
-
--button-hover-background: transparent;
|
|
293
|
-
--button-hover-border: transparent;
|
|
294
|
-
--button-hover-text: var(--color-primary, #7C4DFF);
|
|
295
|
-
}
|
|
296
|
-
|
|
297
253
|
.project-card__more-icon {
|
|
298
254
|
display: inline-flex;
|
|
299
255
|
align-items: center;
|
|
@@ -302,20 +258,6 @@ solid-ui-button.project-card__more-button {
|
|
|
302
258
|
transition: transform var(--animation-duration, 0.2s) ease;
|
|
303
259
|
}
|
|
304
260
|
|
|
305
|
-
solid-ui-button.project-card__more-button::part(button) {
|
|
306
|
-
align-items: center;
|
|
307
|
-
justify-content: center;
|
|
308
|
-
width: var(--project-card-more-button-part-width, auto);
|
|
309
|
-
gap: var(--project-card-more-button-gap, 0.375rem);
|
|
310
|
-
padding: 0;
|
|
311
|
-
border: 0;
|
|
312
|
-
background: transparent;
|
|
313
|
-
color: var(--color-primary, #7C4DFF);
|
|
314
|
-
font-size: var(--font-size-sm, 0.875rem);
|
|
315
|
-
font-weight: var(--font-weight-bold, 600);
|
|
316
|
-
cursor: var(--profile-interactive-cursor, pointer);
|
|
317
|
-
}
|
|
318
|
-
|
|
319
261
|
/* Compact layout */
|
|
320
262
|
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__section[data-profile-section='projects'],
|
|
321
263
|
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__section--empty[data-profile-section='projects'] {
|
|
@@ -330,7 +272,7 @@ solid-ui-button.project-card__more-button::part(button) {
|
|
|
330
272
|
}
|
|
331
273
|
|
|
332
274
|
.profile-section-collapsible[data-mobile-expanded="false"] .project-card:nth-child(n + 3) {
|
|
333
|
-
display: var(--project-card-collapsed-extra-display
|
|
275
|
+
display: var(--project-card-collapsed-extra-display);
|
|
334
276
|
}
|
|
335
277
|
|
|
336
278
|
solid-ui-button.project-card__more-button[data-mobile-expanded="true"] .project-card__more-icon {
|
|
@@ -347,7 +289,7 @@ solid-ui-button.project-card__more-button[data-mobile-expanded="true"] .project-
|
|
|
347
289
|
--project-card-max-width: 100%;
|
|
348
290
|
--project-card-more-button-width: 100%;
|
|
349
291
|
--project-card-more-button-part-width: 100%;
|
|
350
|
-
--project-card-more-button-margin-top: var(--project-card-mobile-more-button-margin-top
|
|
292
|
+
--project-card-more-button-margin-top: var(--project-card-mobile-more-button-margin-top);
|
|
351
293
|
--project-card-collapsed-extra-display: none;
|
|
352
294
|
}
|
|
353
295
|
}
|
|
@@ -362,7 +304,7 @@ solid-ui-button.project-card__more-button[data-mobile-expanded="true"] .project-
|
|
|
362
304
|
--project-card-max-width: 100%;
|
|
363
305
|
--project-card-more-button-width: 100%;
|
|
364
306
|
--project-card-more-button-part-width: 100%;
|
|
365
|
-
--project-card-more-button-margin-top: var(--project-card-mobile-more-button-margin-top
|
|
307
|
+
--project-card-more-button-margin-top: var(--project-card-mobile-more-button-margin-top);
|
|
366
308
|
--project-card-collapsed-extra-display: none;
|
|
367
309
|
}
|
|
368
310
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'solid-ui/components/button';
|
|
2
2
|
import { LiveStore, NamedNode } from 'rdflib';
|
|
3
|
-
import { ViewerMode } from '../../types';
|
|
3
|
+
import { Layout, ViewerMode } from '../../types';
|
|
4
4
|
import { ProjectDetails } from './types';
|
|
5
5
|
import './ProjectSection.css';
|
|
6
|
-
export declare function renderProjectSection(store: LiveStore, subject: NamedNode, projects: ProjectDetails[], viewerMode: ViewerMode, onSaved?: () => Promise<void> | void): import("lit-html").TemplateResult<1
|
|
6
|
+
export declare function renderProjectSection(store: LiveStore, subject: NamedNode, projects: ProjectDetails[], viewerMode: ViewerMode, layout: Layout, onSaved?: () => Promise<void> | void): import("lit-html").TemplateResult<1>;
|
|
7
7
|
//# sourceMappingURL=ProjectSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectSection.d.ts","sourceRoot":"","sources":["../../../src/sections/projects/ProjectSection.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"ProjectSection.d.ts","sourceRoot":"","sources":["../../../src/sections/projects/ProjectSection.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,cAAc,EAAc,MAAM,SAAS,CAAA;AAMpD,OAAO,sBAAsB,CAAA;AAmV7B,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,cAAc,EAAE,EAC1B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,wCAWrC"}
|
|
@@ -12,8 +12,8 @@ var _mutations = require("./mutations");
|
|
|
12
12
|
var _profileIcons = require("../../icons-svg/profileIcons");
|
|
13
13
|
require("./ProjectSection.css");
|
|
14
14
|
var _collapsibleSection = require("../shared/collapsibleSection");
|
|
15
|
-
var _spinner = require("../../ui/spinner");
|
|
16
15
|
var _errorDisplay = require("../../utils/errorDisplay");
|
|
16
|
+
var _responsiveActionButton = require("../../ui/responsiveActionButton");
|
|
17
17
|
const MAX_VISIBLE_PROJECTS_MOBILE = 2;
|
|
18
18
|
function setProjectsSectionError(section, message) {
|
|
19
19
|
const errorBox = section.querySelector('.profile-section-inline-error');
|
|
@@ -83,7 +83,7 @@ function renderProject(project, store, subject, viewerMode, onSaved) {
|
|
|
83
83
|
};
|
|
84
84
|
try {
|
|
85
85
|
unfollowButton?.setAttribute('disabled', '');
|
|
86
|
-
unfollowButton?.setAttribute('
|
|
86
|
+
unfollowButton?.setAttribute('loading', '');
|
|
87
87
|
unfollowButton?.setAttribute('aria-busy', 'true');
|
|
88
88
|
await (0, _mutations.processProjectsMutations)(store, subject, removePlan);
|
|
89
89
|
if (section) {
|
|
@@ -98,7 +98,7 @@ function renderProject(project, store, subject, viewerMode, onSaved) {
|
|
|
98
98
|
}
|
|
99
99
|
} finally {
|
|
100
100
|
unfollowButton?.removeAttribute('disabled');
|
|
101
|
-
unfollowButton?.removeAttribute('
|
|
101
|
+
unfollowButton?.removeAttribute('loading');
|
|
102
102
|
unfollowButton?.setAttribute('aria-busy', 'false');
|
|
103
103
|
}
|
|
104
104
|
};
|
|
@@ -130,17 +130,15 @@ function renderProject(project, store, subject, viewerMode, onSaved) {
|
|
|
130
130
|
${viewerMode === 'owner' ? (0, _litHtml.html)`
|
|
131
131
|
<div class="project-card__footer">
|
|
132
132
|
<solid-ui-button
|
|
133
|
-
type="button"
|
|
134
133
|
variant="secondary"
|
|
135
|
-
size="sm"
|
|
136
|
-
label="Following"
|
|
137
134
|
class="project-card__follow-button"
|
|
138
135
|
aria-label="Unfollow project"
|
|
139
136
|
@click=${handleUnfollow}
|
|
140
137
|
>
|
|
141
|
-
<span class="project-card__follow-label project-card__follow-label--default">${_profileIcons.checkMarkIcon}
|
|
138
|
+
<span slot="left-icon" class="project-card__follow-label project-card__follow-label--default">${_profileIcons.checkMarkIcon}</span>
|
|
139
|
+
<span class="project-card__follow-label project-card__follow-label--default">Following</span>
|
|
142
140
|
<span class="project-card__follow-label project-card__follow-label--hover">Unfollow</span>
|
|
143
|
-
<span class="project-card__follow-label project-card__follow-label--loading"
|
|
141
|
+
<span class="project-card__follow-label project-card__follow-label--loading">Unfollowing...</span>
|
|
144
142
|
</solid-ui-button>
|
|
145
143
|
</div>
|
|
146
144
|
` : (0, _litHtml.html)``}
|
|
@@ -152,23 +150,18 @@ function renderOwnerEmptyProjectsContent(store, subject, projectData, viewerMode
|
|
|
152
150
|
return (0, _litHtml.html)`
|
|
153
151
|
<div class="profile__empty-state-content" role="group" aria-label="Empty projects section">
|
|
154
152
|
<h2 id="projects-heading" tabindex="-1">${_texts.projectsHeadingText}</h2>
|
|
155
|
-
<p class="profile__empty-state-message">
|
|
156
|
-
You haven't added any projects yet. Consider adding a project to boost your profile.
|
|
157
|
-
</p>
|
|
158
153
|
</div>
|
|
159
154
|
<solid-ui-button
|
|
160
|
-
type="button"
|
|
161
155
|
variant="secondary"
|
|
162
|
-
size="sm"
|
|
163
156
|
class="profile__action-button--empty"
|
|
164
157
|
aria-label="Add project details"
|
|
165
158
|
@click=${event => {
|
|
166
159
|
return (0, _ProjectEditDialog.createProjectsEditDialog)(event, store, subject, projectDetails, viewerMode, onSaved);
|
|
167
160
|
}}
|
|
168
161
|
>
|
|
169
|
-
<span class="profile__action-icon" aria-hidden="true">${_profileIcons.plusDarkIcon}
|
|
162
|
+
<span slot="left-icon" class="profile__action-icon" aria-hidden="true">${_profileIcons.plusDarkIcon}</span>
|
|
163
|
+
Add Project
|
|
170
164
|
</solid-ui-button>
|
|
171
|
-
|
|
172
165
|
`;
|
|
173
166
|
}
|
|
174
167
|
function renderOwnerEmptyProjectSection(store, subject, projectData, viewerMode, onSaved) {
|
|
@@ -185,9 +178,7 @@ function renderOwnerEmptyProjectSection(store, subject, projectData, viewerMode,
|
|
|
185
178
|
<h2 id="projects-heading" tabindex="-1">${_texts.projectsHeadingText}</h2>
|
|
186
179
|
<div class="profile-section-collapsible__actions">
|
|
187
180
|
<solid-ui-button
|
|
188
|
-
|
|
189
|
-
variant="icon"
|
|
190
|
-
size="sm"
|
|
181
|
+
variant="ghost"
|
|
191
182
|
class="profile-section-collapsible__toggle-button"
|
|
192
183
|
aria-label="Toggle projects section"
|
|
193
184
|
aria-controls="projects-panel"
|
|
@@ -208,7 +199,7 @@ function renderProjectSectionContent(projects, store, subject, viewerMode, onSav
|
|
|
208
199
|
if (!projects || !projects.length || !projects[0]) return (0, _litHtml.html)``;
|
|
209
200
|
return (0, _litHtml.html)`${renderProject(projects[0], store, subject, viewerMode, onSaved)}${projects.length > 1 ? renderProjectSectionContent(projects.slice(1), store, subject, viewerMode, onSaved) : (0, _litHtml.html)``}`;
|
|
210
201
|
}
|
|
211
|
-
function renderProjectSectionDefault(store, subject, projects, viewerMode, onSaved) {
|
|
202
|
+
function renderProjectSectionDefault(store, subject, projects, viewerMode, layout, onSaved) {
|
|
212
203
|
const hasProjects = Array.isArray(projects) && projects.length > 0;
|
|
213
204
|
const hiddenProjectsCount = Math.max(0, projects.length - MAX_VISIBLE_PROJECTS_MOBILE);
|
|
214
205
|
const isOwner = viewerMode === 'owner';
|
|
@@ -226,27 +217,18 @@ function renderProjectSectionDefault(store, subject, projects, viewerMode, onSav
|
|
|
226
217
|
<h2 id="projects-heading">${_texts.projectsHeadingText}</h2>
|
|
227
218
|
<div class="profile-section-collapsible__actions">
|
|
228
219
|
${isOwner ? (0, _litHtml.html)`
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}}
|
|
238
|
-
|
|
239
|
-
<span class="profile-section-collapsible__edit-label profile__add-more-content">
|
|
240
|
-
<span class="profile__add-more-icon" aria-hidden="true">${_profileIcons.addIcon}</span>
|
|
241
|
-
<span>Add More</span>
|
|
242
|
-
</span>
|
|
243
|
-
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>
|
|
244
|
-
</solid-ui-button>
|
|
245
|
-
` : (0, _litHtml.html)``}
|
|
220
|
+
${(0, _responsiveActionButton.renderResponsiveActionButton)({
|
|
221
|
+
layout,
|
|
222
|
+
className: 'profile-section-collapsible__edit-button',
|
|
223
|
+
ariaLabel: 'Add or edit projects',
|
|
224
|
+
onClick: event => (0, _ProjectEditDialog.createProjectsEditDialog)(event, store, subject, projects, viewerMode, onSaved),
|
|
225
|
+
desktopIcon: (0, _litHtml.html)`<span slot="left-icon" class="profile-section-collapsible__action-label profile__add-more-icon" aria-hidden="true">${_profileIcons.addIcon}</span>`,
|
|
226
|
+
desktopLabel: 'Add More',
|
|
227
|
+
mobileIcon: (0, _litHtml.html)`<span slot="icon" class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>`
|
|
228
|
+
})}
|
|
229
|
+
` : _litHtml.nothing}
|
|
246
230
|
<solid-ui-button
|
|
247
|
-
|
|
248
|
-
variant="icon"
|
|
249
|
-
size="sm"
|
|
231
|
+
variant="ghost"
|
|
250
232
|
class="profile-section-collapsible__toggle-button"
|
|
251
233
|
aria-label="Toggle projects section"
|
|
252
234
|
aria-controls="projects-panel"
|
|
@@ -264,17 +246,14 @@ function renderProjectSectionDefault(store, subject, projects, viewerMode, onSav
|
|
|
264
246
|
</ul>
|
|
265
247
|
${hiddenProjectsCount > 0 ? (0, _litHtml.html)`
|
|
266
248
|
<solid-ui-button
|
|
267
|
-
|
|
268
|
-
variant="secondary"
|
|
269
|
-
size="sm"
|
|
270
|
-
label="View More"
|
|
249
|
+
variant="tertiary"
|
|
271
250
|
class="project-card__more-button"
|
|
272
251
|
aria-controls="projects-rail"
|
|
273
252
|
aria-expanded="false"
|
|
274
253
|
data-mobile-expanded="false"
|
|
275
254
|
@click=${toggleProjectsMobileList}
|
|
276
255
|
>
|
|
277
|
-
<span class="project-card__more-icon" aria-hidden="true">${_profileIcons.twoDownArrowsIcon}</span>
|
|
256
|
+
<span slot="left-icon" class="project-card__more-icon" aria-hidden="true">${_profileIcons.twoDownArrowsIcon}</span>
|
|
278
257
|
<span class="project-card__more-label">View More</span>
|
|
279
258
|
</solid-ui-button>
|
|
280
259
|
` : (0, _litHtml.html)``}
|
|
@@ -292,11 +271,11 @@ function renderProjectSectionDefault(store, subject, projects, viewerMode, onSav
|
|
|
292
271
|
</section>
|
|
293
272
|
`;
|
|
294
273
|
}
|
|
295
|
-
function renderProjectSection(store, subject, projects, viewerMode, onSaved) {
|
|
274
|
+
function renderProjectSection(store, subject, projects, viewerMode, layout, onSaved) {
|
|
275
|
+
const currentLayout = layout || 'desktop';
|
|
296
276
|
const hasProjects = Array.isArray(projects) && projects.length > 0;
|
|
297
277
|
const showOwnerEmptyProject = !hasProjects && viewerMode === 'owner';
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
` : '';
|
|
278
|
+
return (0, _litHtml.html)`
|
|
279
|
+
${showOwnerEmptyProject ? renderOwnerEmptyProjectSection(store, subject, projects, viewerMode, onSaved) : renderProjectSectionDefault(store, subject, projects, viewerMode, currentLayout, onSaved)}
|
|
280
|
+
`;
|
|
302
281
|
}
|
|
@@ -3,7 +3,6 @@ import 'solid-ui/components/combobox';
|
|
|
3
3
|
import 'solid-ui/components/select';
|
|
4
4
|
import { RoleDetails } from './types';
|
|
5
5
|
import '../../styles/EditDialogs.css';
|
|
6
|
-
import '../contactInfo/ContactInfoEditDialog.css';
|
|
7
6
|
import { LiveStore, NamedNode } from 'rdflib';
|
|
8
7
|
import { ViewerMode } from '../../types';
|
|
9
8
|
type ResumeOrganizationSuggestion = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResumeEditDialog.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/ResumeEditDialog.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAA;AACnC,OAAO,8BAA8B,CAAA;AACrC,OAAO,4BAA4B,CAAA;AACnC,OAAO,EAAE,WAAW,EAAa,MAAM,SAAS,CAAA;AAChD,OAAO,8BAA8B,CAAA;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"ResumeEditDialog.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/ResumeEditDialog.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAA;AACnC,OAAO,8BAA8B,CAAA;AACrC,OAAO,4BAA4B,CAAA;AACnC,OAAO,EAAE,WAAW,EAAa,MAAM,SAAS,CAAA;AAChD,OAAO,8BAA8B,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAW,MAAM,QAAQ,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA4BxC,KAAK,4BAA4B,GAAG;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAoOD,wBAAsB,oCAAoC,CACxD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,4BAA4B,EAAE,CAAC,CA+CzC;AA82BD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,UAAU,EAAE,WAAW,EAAE,EACzB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBAoDrC"}
|
|
@@ -11,7 +11,6 @@ require("solid-ui/components/button");
|
|
|
11
11
|
require("solid-ui/components/combobox");
|
|
12
12
|
require("solid-ui/components/select");
|
|
13
13
|
require("../../styles/EditDialogs.css");
|
|
14
|
-
require("../contactInfo/ContactInfoEditDialog.css");
|
|
15
14
|
var _rdflib = require("rdflib");
|
|
16
15
|
var _mutations = require("./mutations");
|
|
17
16
|
var _rowState = require("../shared/rowState");
|
|
@@ -101,22 +100,6 @@ const RESUME_ORGANIZATION_TYPE_WIKIDATA_CLASS_URIS = {
|
|
|
101
100
|
};
|
|
102
101
|
const RESUME_ORGANIZATION_SEARCH_CLASS_URIS = Array.from(new Set(RESUME_ORGANIZATION_TYPE_OPTIONS.flatMap(option => RESUME_ORGANIZATION_TYPE_WIKIDATA_CLASS_URIS[option.value] || [])));
|
|
103
102
|
const RESUME_PRESENT_MONTH_VALUE = '__present__';
|
|
104
|
-
function sanitizeResumeFieldValue(value) {
|
|
105
|
-
return (0, _textUtils.sanitizeTextValue)(value);
|
|
106
|
-
}
|
|
107
|
-
function normalizeResumeOrganizationPublicId(value) {
|
|
108
|
-
const cleaned = sanitizeResumeFieldValue(value);
|
|
109
|
-
return isAbsoluteUri(cleaned) ? cleaned : '';
|
|
110
|
-
}
|
|
111
|
-
function isAbsoluteUri(value) {
|
|
112
|
-
if (!value) return false;
|
|
113
|
-
try {
|
|
114
|
-
new URL(value);
|
|
115
|
-
return true;
|
|
116
|
-
} catch {
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
103
|
function buildWikidataOrganizationSearchUrl(name) {
|
|
121
104
|
return WIKIDATA_ORGANIZATION_SEARCH_URI.replace('$(language)', encodeURIComponent(WIKIDATA_ORGANIZATION_SEARCH_LANGUAGE)).replace('$(limit)', encodeURIComponent(String(WIKIDATA_ORGANIZATION_SEARCH_CANDIDATE_LIMIT))).replace('$(name)', encodeURIComponent(name));
|
|
122
105
|
}
|
|
@@ -124,7 +107,7 @@ function buildWikidataEntityLookupUrl(ids) {
|
|
|
124
107
|
return WIKIDATA_ENTITY_LOOKUP_URI.replace('$(ids)', encodeURIComponent(ids.join('|')));
|
|
125
108
|
}
|
|
126
109
|
function getWikidataIdFromUri(value) {
|
|
127
|
-
const trimmed =
|
|
110
|
+
const trimmed = (0, _textUtils.sanitizeTextValue)(value);
|
|
128
111
|
const match = trimmed.match(/Q\d+/);
|
|
129
112
|
return match ? match[0] : '';
|
|
130
113
|
}
|
|
@@ -180,8 +163,8 @@ function toResumeOrganizationLabel(result) {
|
|
|
180
163
|
return result?.label || result?.match?.text || result?.id || '';
|
|
181
164
|
}
|
|
182
165
|
function toResumeOrganizationSuggestion(result) {
|
|
183
|
-
const label =
|
|
184
|
-
const publicId =
|
|
166
|
+
const label = (0, _textUtils.sanitizeTextValue)(toResumeOrganizationLabel(result));
|
|
167
|
+
const publicId = (0, _textUtils.sanitizeTextValue)(typeof result?.concepturi === 'string' ? result.concepturi : typeof result?.url === 'string' ? result.url : '');
|
|
185
168
|
return {
|
|
186
169
|
label,
|
|
187
170
|
publicId
|
|
@@ -198,7 +181,7 @@ function dedupeResumeOrganizationSuggestions(suggestions) {
|
|
|
198
181
|
});
|
|
199
182
|
}
|
|
200
183
|
async function fetchWikidataOrganizationSuggestions(name, selectedType) {
|
|
201
|
-
const query =
|
|
184
|
+
const query = (0, _textUtils.sanitizeTextValue)(name);
|
|
202
185
|
if (query.length < 2 || typeof fetch !== 'function') return [];
|
|
203
186
|
try {
|
|
204
187
|
const response = await fetch(buildWikidataOrganizationSearchUrl(query));
|
|
@@ -359,17 +342,17 @@ function rowHasContent(row) {
|
|
|
359
342
|
}
|
|
360
343
|
function toFormState(resumeData) {
|
|
361
344
|
const roles = (resumeData || []).map(role => ({
|
|
362
|
-
title:
|
|
363
|
-
roleType:
|
|
345
|
+
title: (0, _textUtils.sanitizeTextValue)((0, _textUtils.toText)(role.title)),
|
|
346
|
+
roleType: (0, _textUtils.sanitizeTextValue)((0, _textUtils.toText)(role.roleType)),
|
|
364
347
|
startDate: role.startDate,
|
|
365
348
|
endDate: role.endDate,
|
|
366
349
|
isCurrentRole: role.isCurrentRole ?? !role.endDate,
|
|
367
|
-
orgName:
|
|
368
|
-
orgPublicId:
|
|
369
|
-
orgType: normalizeResumeOrganizationTypeValue(
|
|
370
|
-
orgLocation:
|
|
371
|
-
orgHomePage:
|
|
372
|
-
description:
|
|
350
|
+
orgName: (0, _textUtils.sanitizeTextValue)((0, _textUtils.toText)(role.orgName)),
|
|
351
|
+
orgPublicId: (0, _textUtils.sanitizeTextValue)((0, _textUtils.toText)(role.orgPublicId)),
|
|
352
|
+
orgType: normalizeResumeOrganizationTypeValue((0, _textUtils.sanitizeTextValue)((0, _textUtils.toText)(role.orgType))),
|
|
353
|
+
orgLocation: (0, _textUtils.sanitizeTextValue)((0, _textUtils.toText)(role.orgLocation)),
|
|
354
|
+
orgHomePage: (0, _textUtils.sanitizeTextValue)((0, _textUtils.toText)(role.orgHomePage)),
|
|
355
|
+
description: (0, _textUtils.sanitizeTextValue)((0, _textUtils.toText)(role.description)),
|
|
373
356
|
entryNode: (0, _textUtils.toText)(role.entryNode),
|
|
374
357
|
status: (0, _textUtils.toText)(role.entryNode) ? 'existing' : 'new'
|
|
375
358
|
})).filter(role => rowHasContent(role) || Boolean(role.entryNode));
|
|
@@ -446,8 +429,8 @@ function syncResumeOrganizationRowsFromComboboxes(form, resumeData) {
|
|
|
446
429
|
const rowIndex = Number(comboboxElement.dataset.resumeOrganizationIndex);
|
|
447
430
|
if (Number.isNaN(rowIndex) || !resumeData[rowIndex]) return;
|
|
448
431
|
const comboboxInput = comboboxElement.shadowRoot?.querySelector('input');
|
|
449
|
-
const nextName =
|
|
450
|
-
const nextPublicId =
|
|
432
|
+
const nextName = (0, _textUtils.sanitizeTextValue)(comboboxInput?.value || comboboxElement.inputValue || '');
|
|
433
|
+
const nextPublicId = (0, _textUtils.sanitizeTextValue)(comboboxElement.value || '');
|
|
451
434
|
(0, _rowState.applyRowFieldChange)(resumeData[rowIndex], 'orgName', nextName, rowHasContent);
|
|
452
435
|
resumeData[rowIndex].orgPublicId = nextPublicId;
|
|
453
436
|
});
|
|
@@ -513,7 +496,7 @@ function renderResumeInputRow({
|
|
|
513
496
|
const selectedYears = [startYearText, endYearParsedText];
|
|
514
497
|
const handleResumeInput = field => e => {
|
|
515
498
|
const target = e.target;
|
|
516
|
-
const nextValue =
|
|
499
|
+
const nextValue = (0, _textUtils.sanitizeTextValue)(target.value);
|
|
517
500
|
if (resumeRow) {
|
|
518
501
|
(0, _rowState.applyRowFieldChange)(resumeRow, field, nextValue, rowHasContent);
|
|
519
502
|
onChange();
|
|
@@ -570,7 +553,7 @@ function renderResumeInputRow({
|
|
|
570
553
|
};
|
|
571
554
|
const handleDescriptionInput = event => {
|
|
572
555
|
const target = event.target;
|
|
573
|
-
const nextValue =
|
|
556
|
+
const nextValue = (0, _textUtils.sanitizeTextValue)(target.value.slice(0, descriptionMaxLength));
|
|
574
557
|
if (resumeData[index]) {
|
|
575
558
|
(0, _rowState.applyRowFieldChange)(resumeData[index], 'description', nextValue, rowHasContent);
|
|
576
559
|
onChange();
|
|
@@ -595,7 +578,7 @@ function renderResumeInputRow({
|
|
|
595
578
|
}
|
|
596
579
|
};
|
|
597
580
|
const handleOrganizationNameInput = e => {
|
|
598
|
-
const nextValue =
|
|
581
|
+
const nextValue = (0, _textUtils.sanitizeTextValue)(readResumeOrganizationComboboxInputValue(e));
|
|
599
582
|
if (resumeRow) {
|
|
600
583
|
(0, _rowState.applyRowFieldChange)(resumeRow, 'orgName', nextValue, rowHasContent);
|
|
601
584
|
resumeRow.orgPublicId = '';
|
|
@@ -604,7 +587,7 @@ function renderResumeInputRow({
|
|
|
604
587
|
const handleOrganizationNameChange = e => {
|
|
605
588
|
const selectedOption = readResumeOrganizationComboboxChange(e);
|
|
606
589
|
if (!resumeRow || !selectedOption?.publicId) return;
|
|
607
|
-
(0, _rowState.applyRowFieldChange)(resumeRow, 'orgName',
|
|
590
|
+
(0, _rowState.applyRowFieldChange)(resumeRow, 'orgName', (0, _textUtils.sanitizeTextValue)(selectedOption.label), rowHasContent);
|
|
608
591
|
resumeRow.orgPublicId = selectedOption.publicId;
|
|
609
592
|
};
|
|
610
593
|
return (0, _litHtml.html)`
|
|
@@ -612,15 +595,12 @@ function renderResumeInputRow({
|
|
|
612
595
|
<h3 id=${experienceHeadingId} class="profile-edit-dialog__entry-heading">${label}</h3>
|
|
613
596
|
<div class="profile-edit-dialog__actions profile-edit-dialog__actions--edge">
|
|
614
597
|
<solid-ui-button
|
|
615
|
-
|
|
616
|
-
variant="icon"
|
|
617
|
-
size="md"
|
|
618
|
-
class="profile-edit-dialog__delete-button"
|
|
598
|
+
variant="ghost"
|
|
619
599
|
aria-label=${`Delete resume ${displayIndex + 1}`}
|
|
620
600
|
title=${_texts.deleteEntryButtonTitleText}
|
|
621
601
|
@click=${handleDelete}
|
|
622
602
|
>
|
|
623
|
-
<span slot="icon"
|
|
603
|
+
<span slot="icon" aria-hidden="true">${_profileIcons.trashIcon}</span>
|
|
624
604
|
</solid-ui-button>
|
|
625
605
|
</div>
|
|
626
606
|
</div>
|