@asd20/ui-next 2.12.5 → 2.12.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.12.7](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.12.6...ui-next-v2.12.7) (2026-06-15)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* fix font size for bullets in page notifications; fix person list spacing when description is not present ([e92b5c5](https://github.com/academydistrict20/asd20-ui-next/commit/e92b5c525899d26f6fd97d3872f79f69e727fbe6))
|
|
9
|
+
|
|
10
|
+
## [2.12.6](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.12.5...ui-next-v2.12.6) (2026-06-02)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* allow exact contact matches to rise above group results; fix notification bullet indent ([ab35494](https://github.com/academydistrict20/asd20-ui-next/commit/ab35494603e9b36d79565fe96bcf50c9771e1a5c))
|
|
16
|
+
|
|
3
17
|
## [2.12.5](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.12.4...ui-next-v2.12.5) (2026-05-28)
|
|
4
18
|
|
|
5
19
|
|
package/package.json
CHANGED
|
@@ -185,8 +185,8 @@ export default {
|
|
|
185
185
|
display: block;
|
|
186
186
|
flex-direction: column;
|
|
187
187
|
margin: 0.5rem 0;
|
|
188
|
-
padding-left:
|
|
189
|
-
list-style-position:
|
|
188
|
+
padding-left: 1.25rem !important;
|
|
189
|
+
list-style-position: outside !important;
|
|
190
190
|
white-space: normal;
|
|
191
191
|
}
|
|
192
192
|
|
|
@@ -197,6 +197,15 @@ export default {
|
|
|
197
197
|
white-space: normal;
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
+
.asd20-notification__description p,
|
|
201
|
+
.asd20-notification__description ul,
|
|
202
|
+
.asd20-notification__description ol,
|
|
203
|
+
.asd20-notification__description li,
|
|
204
|
+
.asd20-notification__description div,
|
|
205
|
+
.asd20-notification__description span {
|
|
206
|
+
font-size: inherit !important;
|
|
207
|
+
}
|
|
208
|
+
|
|
200
209
|
&__dismiss {
|
|
201
210
|
position: absolute !important;
|
|
202
211
|
top: 0;
|
|
@@ -1006,7 +1006,19 @@ export default {
|
|
|
1006
1006
|
},
|
|
1007
1007
|
|
|
1008
1008
|
contactListItems() {
|
|
1009
|
-
return [...this.
|
|
1009
|
+
return [...this.groupListItems, ...this.peopleListItems]
|
|
1010
|
+
.map((item, index) => ({
|
|
1011
|
+
item,
|
|
1012
|
+
index,
|
|
1013
|
+
exactMatch: this.isExactContactMatch(item),
|
|
1014
|
+
typeRank: item.contactType === 'group' ? 0 : 1,
|
|
1015
|
+
}))
|
|
1016
|
+
.sort((a, b) => {
|
|
1017
|
+
if (a.exactMatch !== b.exactMatch) return a.exactMatch ? -1 : 1
|
|
1018
|
+
if (a.typeRank !== b.typeRank) return a.typeRank - b.typeRank
|
|
1019
|
+
return a.index - b.index
|
|
1020
|
+
})
|
|
1021
|
+
.map(entry => entry.item)
|
|
1010
1022
|
},
|
|
1011
1023
|
feedbackFormUrlRaw() {
|
|
1012
1024
|
if (this.aiSearchFeedbackFormUrl) return this.aiSearchFeedbackFormUrl
|
|
@@ -1441,6 +1453,32 @@ export default {
|
|
|
1441
1453
|
return String(group.id || group.title || group.contactEmail || '').trim()
|
|
1442
1454
|
},
|
|
1443
1455
|
|
|
1456
|
+
normalizeContactMatchValue(value = '') {
|
|
1457
|
+
return String(value || '')
|
|
1458
|
+
.toLowerCase()
|
|
1459
|
+
.replace(/[^a-z0-9\s]/g, ' ')
|
|
1460
|
+
.replace(/\s+/g, ' ')
|
|
1461
|
+
.trim()
|
|
1462
|
+
},
|
|
1463
|
+
|
|
1464
|
+
getContactSearchText() {
|
|
1465
|
+
return (
|
|
1466
|
+
this.searchQuestion ||
|
|
1467
|
+
this.keywords ||
|
|
1468
|
+
this.inputText ||
|
|
1469
|
+
''
|
|
1470
|
+
).trim()
|
|
1471
|
+
},
|
|
1472
|
+
|
|
1473
|
+
isExactContactMatch(item = {}) {
|
|
1474
|
+
const searchText = this.normalizeContactMatchValue(
|
|
1475
|
+
this.getContactSearchText()
|
|
1476
|
+
)
|
|
1477
|
+
const label = this.normalizeContactMatchValue(item.label)
|
|
1478
|
+
|
|
1479
|
+
return !!searchText && !!label && label === searchText
|
|
1480
|
+
},
|
|
1481
|
+
|
|
1444
1482
|
hasGroupContactDetails(group = {}) {
|
|
1445
1483
|
if (!group || typeof group !== 'object') return false
|
|
1446
1484
|
const detailFields = [
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
export default function mapPeopleToListItems(people) {
|
|
2
2
|
if (people) {
|
|
3
3
|
return people.map(p => {
|
|
4
|
+
const jobTitles = Array.isArray(p.jobTitles)
|
|
5
|
+
? p.jobTitles.filter(Boolean)
|
|
6
|
+
: p.jobTitles
|
|
7
|
+
? [p.jobTitles]
|
|
8
|
+
: []
|
|
9
|
+
const formattedJobTitles = jobTitles.map(t =>
|
|
10
|
+
t.replace('Teacher: ', 'Teacher, ').replace(/.+: /g, '')
|
|
11
|
+
)
|
|
12
|
+
const location = p.office || p.organization || ''
|
|
13
|
+
const descriptionParts =
|
|
14
|
+
formattedJobTitles.length > 0
|
|
15
|
+
? [
|
|
16
|
+
formattedJobTitles.join(', '),
|
|
17
|
+
location ? `<small>${location}</small>` : '',
|
|
18
|
+
]
|
|
19
|
+
: [p.title || '', location ? `<small>${location}</small>` : '']
|
|
20
|
+
const description = descriptionParts.filter(Boolean).join('<br>')
|
|
21
|
+
|
|
4
22
|
return {
|
|
5
23
|
person: p,
|
|
6
24
|
id: p.id || p.employeeId || p.profileId || p.userId,
|
|
@@ -11,34 +29,25 @@ export default function mapPeopleToListItems(people) {
|
|
|
11
29
|
.split(' ')
|
|
12
30
|
.map(n => n[0])
|
|
13
31
|
.join(''),
|
|
14
|
-
description
|
|
15
|
-
? `${p.jobTitles
|
|
16
|
-
.map(t =>
|
|
17
|
-
t.replace('Teacher: ', 'Teacher, ').replace(/.+: /g, '')
|
|
18
|
-
)
|
|
19
|
-
.join(', ')}<br><small>${p.office || p.organization}</small>`
|
|
20
|
-
: p.title,
|
|
32
|
+
description,
|
|
21
33
|
badge: '',
|
|
22
34
|
email: p.email,
|
|
23
35
|
condensed: false,
|
|
24
36
|
actionable: true,
|
|
25
37
|
bordered: true,
|
|
26
38
|
checked: false,
|
|
27
|
-
alignTop:
|
|
39
|
+
alignTop: !!description,
|
|
28
40
|
tags: [],
|
|
29
41
|
thumbnail: p.thumbnail || p.photoUrl,
|
|
30
42
|
// description: `${p.biography.slice(0, 100)}...`,
|
|
31
43
|
biography: p.biography,
|
|
32
|
-
office:
|
|
44
|
+
office: location,
|
|
33
45
|
workPhone: p.title === 'Teacher' ? '' : p.phone,
|
|
34
|
-
jobTitles: [
|
|
35
|
-
jobTypes:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
)
|
|
40
|
-
.join(', ')}, ${p.office || p.organization}`
|
|
41
|
-
: p.title,
|
|
46
|
+
jobTitles: [jobTitles],
|
|
47
|
+
jobTypes:
|
|
48
|
+
formattedJobTitles.length > 0
|
|
49
|
+
? [formattedJobTitles.join(', '), location].filter(Boolean).join(', ')
|
|
50
|
+
: p.title,
|
|
42
51
|
}
|
|
43
52
|
})
|
|
44
53
|
}
|