@asd20/ui 3.4.5 → 3.5.1
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/package.json +1 -1
- package/src/components/atoms/Asd20DistrictLogo/index.vue +9 -9
- package/src/components/molecules/Asd20Card/index.vue +276 -78
- package/src/components/organisms/Asd20EventModal/index.vue +1 -1
- package/src/components/organisms/Asd20FeedsSection/index.vue +52 -14
- package/src/components/organisms/Asd20SwiperFeed/index.vue +1 -15
- package/src/data/asd20-organization.json +1 -1
- package/src/data/events/district-events.json +1 -1
- package/src/data/messages/announcements.json +1 -1
- package/src/data/page-queries/video-page-query-result.json +1 -1
- package/src/helpers/mapEventToCard.js +1 -1
- package/src/helpers/mapMessageToCard.js +3 -3
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
</svg>
|
|
22
22
|
<div v-if="tagline" class="asd20-district-logo__tagline">
|
|
23
23
|
<hr />
|
|
24
|
-
<p><i>
|
|
24
|
+
<p><i>Educate. Inspire. Thrive.</i></p>
|
|
25
25
|
</div>
|
|
26
26
|
</a>
|
|
27
27
|
</template>
|
|
@@ -46,10 +46,10 @@ export default {
|
|
|
46
46
|
// align-items: center;
|
|
47
47
|
justify-content: center;
|
|
48
48
|
min-width: 10rem;
|
|
49
|
+
max-width: 100%;
|
|
49
50
|
svg {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
width: auto;
|
|
51
|
+
height: auto;
|
|
52
|
+
width: 100%;
|
|
53
53
|
fill: var(--fill-one, #0f2c6c);
|
|
54
54
|
.district {
|
|
55
55
|
fill: var(--fill-two, rgb(136, 137, 138));
|
|
@@ -57,7 +57,7 @@ export default {
|
|
|
57
57
|
}
|
|
58
58
|
&__tagline {
|
|
59
59
|
color: #fff;
|
|
60
|
-
text-align:
|
|
60
|
+
text-align: center;
|
|
61
61
|
p {
|
|
62
62
|
font-family: var(--website-typography__font-family-headlines);
|
|
63
63
|
}
|
|
@@ -69,8 +69,8 @@ export default {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
@media screen and (min-width: 768px) {
|
|
72
|
-
.asd20-district-logo
|
|
73
|
-
max-width:
|
|
72
|
+
.asd20-district-logo {
|
|
73
|
+
max-width: 20rem;
|
|
74
74
|
}
|
|
75
75
|
.asd20-district-logo__tagline {
|
|
76
76
|
text-align: center;
|
|
@@ -78,8 +78,8 @@ export default {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
@media screen and (min-width: 1024px) {
|
|
81
|
-
.asd20-district-logo
|
|
82
|
-
max-width:
|
|
81
|
+
.asd20-district-logo {
|
|
82
|
+
max-width: 25rem;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
</style>
|
|
@@ -5,101 +5,162 @@
|
|
|
5
5
|
class="asd20-card__content"
|
|
6
6
|
:class="emphasizedDate ? 'asd20-card__event-content' : ''"
|
|
7
7
|
>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
<
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<component :is="headerTag" v-if="title" class="asd20-card__title">
|
|
16
|
-
<span v-html="title"></span>
|
|
17
|
-
<div
|
|
18
|
-
class="asd20-card__subtitle"
|
|
19
|
-
v-if="subtitle"
|
|
20
|
-
v-html="subtitle"
|
|
21
|
-
></div>
|
|
22
|
-
</component>
|
|
23
|
-
</div>
|
|
24
|
-
|
|
25
|
-
<div
|
|
26
|
-
class="asd20-card__date"
|
|
27
|
-
v-if="!emphasizedDate && (date || (modifiedDate && showModifiedDate))"
|
|
28
|
-
>
|
|
29
|
-
<asd20-icon name="calendar" size="sm" />
|
|
30
|
-
|
|
31
|
-
<div class="asd20-card__date-lines">
|
|
32
|
-
<div class="asd20-card__date-line" v-if="date">
|
|
33
|
-
<span class="label">Published: </span>
|
|
34
|
-
<time>{{ date }}</time>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<div
|
|
38
|
-
class="asd20-card__date-line"
|
|
39
|
-
v-if="modifiedDate && showModifiedDate"
|
|
8
|
+
<!-- compact date-left layout -->
|
|
9
|
+
<template v-if="dateLeft">
|
|
10
|
+
<div class="asd20-card__date-left">
|
|
11
|
+
<time
|
|
12
|
+
class="asd20-card__date-badge"
|
|
13
|
+
:aria-label="fullDateLabel"
|
|
14
|
+
:datetime="year && month && day ? `${year}-${month}-${day}` : null"
|
|
40
15
|
>
|
|
41
|
-
<span class="
|
|
42
|
-
<
|
|
16
|
+
<span class="day">{{ day }}</span>
|
|
17
|
+
<span class="mon">{{ monthAbbr }}</span>
|
|
18
|
+
</time>
|
|
19
|
+
|
|
20
|
+
<div class="asd20-card__main">
|
|
21
|
+
<component :is="headerTag" v-if="title" class="asd20-card__title">
|
|
22
|
+
<span v-text="dateLeftTitle"></span>
|
|
23
|
+
</component>
|
|
24
|
+
|
|
25
|
+
<p v-if="time" class="asd20-card__time asd20-card__time--compact">
|
|
26
|
+
<asd20-icon name="hours-alt" size="sm" />
|
|
27
|
+
<span v-html="time"></span>
|
|
28
|
+
</p>
|
|
43
29
|
</div>
|
|
30
|
+
|
|
31
|
+
<!-- invisible overlay link so the whole card is clickable -->
|
|
32
|
+
<a
|
|
33
|
+
class="asd20-card__link"
|
|
34
|
+
v-if="link"
|
|
35
|
+
:href="link"
|
|
36
|
+
:title="title"
|
|
37
|
+
:tabindex="disableFocus ? -1 : 0"
|
|
38
|
+
></a>
|
|
44
39
|
</div>
|
|
45
|
-
</div>
|
|
46
|
-
<p v-if="time" class="asd20-card__time">
|
|
47
|
-
<asd20-icon name="hours-alt" size="sm" />
|
|
48
|
-
<span v-html="time"></span>
|
|
49
|
-
</p>
|
|
50
|
-
|
|
51
|
-
<p v-if="location" class="asd20-card__location">
|
|
52
|
-
<asd20-icon name="map" size="sm" />
|
|
53
|
-
<span v-html="location"></span>
|
|
54
|
-
</p>
|
|
55
|
-
|
|
56
|
-
<p class="asd20-card__description">
|
|
57
|
-
<span
|
|
58
|
-
v-if="!expandedDescription && truncatedDescription"
|
|
59
|
-
v-html="truncatedDescription"
|
|
60
|
-
></span>
|
|
61
|
-
<span
|
|
62
|
-
v-if="expandedDescription && description"
|
|
63
|
-
v-html="description"
|
|
64
|
-
></span>
|
|
65
|
-
<a
|
|
66
|
-
class="asd20-card__link"
|
|
67
|
-
v-if="link"
|
|
68
|
-
:href="link ? link : ''"
|
|
69
|
-
:title="title"
|
|
70
|
-
v-html="linkLabel"
|
|
71
|
-
:tabindex="disableFocus ? -1 : 0"
|
|
72
|
-
></a>
|
|
73
|
-
</p>
|
|
74
|
-
<div v-if="showMeta" class="asd20-card__meta">
|
|
75
40
|
<div v-if="categories" class="asd20-card__categories">
|
|
76
41
|
<asd20-tag
|
|
77
42
|
v-for="category in categories"
|
|
78
43
|
:key="category"
|
|
79
44
|
:label="category"
|
|
80
45
|
transparent
|
|
81
|
-
|
|
46
|
+
/>
|
|
82
47
|
</div>
|
|
83
48
|
<div
|
|
84
|
-
|
|
85
|
-
|
|
49
|
+
v-if="websiteLogo"
|
|
50
|
+
class="asd20-card__date-left-logo"
|
|
51
|
+
aria-hidden="true"
|
|
86
52
|
>
|
|
87
|
-
<
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
53
|
+
<img :src="websiteLogo" alt="" />
|
|
54
|
+
</div>
|
|
55
|
+
</template>
|
|
56
|
+
|
|
57
|
+
<!-- existing layout -->
|
|
58
|
+
<template v-else>
|
|
59
|
+
<div class="asd20-card__header">
|
|
60
|
+
<div class="asd20-card__emphasized-date" v-if="emphasizedDate">
|
|
61
|
+
<div class="top">{{ weekday }}</div>
|
|
62
|
+
<div class="middle">{{ day }}</div>
|
|
63
|
+
<div class="bottom">{{ month }}</div>
|
|
64
|
+
<small>{{ year }}</small>
|
|
65
|
+
</div>
|
|
66
|
+
<component :is="headerTag" v-if="title" class="asd20-card__title">
|
|
67
|
+
<span v-html="title"></span>
|
|
68
|
+
<div
|
|
69
|
+
class="asd20-card__subtitle"
|
|
70
|
+
v-if="subtitle"
|
|
71
|
+
v-html="subtitle"
|
|
72
|
+
></div>
|
|
73
|
+
</component>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<div
|
|
77
|
+
class="asd20-card__date"
|
|
78
|
+
v-if="
|
|
79
|
+
!emphasizedDate &&
|
|
80
|
+
(date || (modifiedDate && showModifiedDate)) &&
|
|
81
|
+
cardType !== 'Feature'
|
|
82
|
+
"
|
|
83
|
+
>
|
|
84
|
+
<asd20-icon name="calendar" size="sm" />
|
|
85
|
+
<div class="asd20-card__date-lines">
|
|
86
|
+
<div class="asd20-card__date-line" v-if="date && !showModifiedDate">
|
|
87
|
+
<span class="label">Published: </span>
|
|
88
|
+
<time>{{ date }}</time>
|
|
89
|
+
</div>
|
|
90
|
+
<div
|
|
91
|
+
class="asd20-card__date-line"
|
|
92
|
+
v-if="modifiedDate && showModifiedDate"
|
|
93
|
+
>
|
|
94
|
+
<span class="label">Updated: </span>
|
|
95
|
+
<time>{{ modifiedDate }}</time>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<p v-if="time" class="asd20-card__time">
|
|
101
|
+
<asd20-icon name="hours-alt" size="sm" />
|
|
102
|
+
<span v-html="time"></span>
|
|
103
|
+
</p>
|
|
104
|
+
|
|
105
|
+
<p v-if="location" class="asd20-card__location">
|
|
106
|
+
<asd20-icon name="map" size="sm" />
|
|
107
|
+
<span v-html="location"></span>
|
|
108
|
+
</p>
|
|
109
|
+
|
|
110
|
+
<p class="asd20-card__description">
|
|
111
|
+
<span
|
|
112
|
+
v-if="!expandedDescription && truncatedDescription"
|
|
113
|
+
v-html="truncatedDescription"
|
|
114
|
+
></span>
|
|
115
|
+
<span
|
|
116
|
+
v-if="expandedDescription && description"
|
|
117
|
+
v-html="description"
|
|
118
|
+
></span>
|
|
119
|
+
<a
|
|
120
|
+
class="asd20-card__link"
|
|
121
|
+
v-if="link"
|
|
122
|
+
:href="link ? link : ''"
|
|
123
|
+
:title="title"
|
|
124
|
+
v-html="linkLabel"
|
|
125
|
+
:tabindex="disableFocus ? -1 : 0"
|
|
126
|
+
></a>
|
|
127
|
+
</p>
|
|
128
|
+
|
|
129
|
+
<div v-if="showMeta" class="asd20-card__meta">
|
|
130
|
+
<div v-if="categories" class="asd20-card__categories">
|
|
131
|
+
<asd20-tag
|
|
132
|
+
v-for="category in categories"
|
|
133
|
+
:key="category"
|
|
134
|
+
:label="category"
|
|
135
|
+
transparent
|
|
136
|
+
/>
|
|
137
|
+
</div>
|
|
138
|
+
<div
|
|
139
|
+
class="asd20-card__indicators"
|
|
140
|
+
v-if="hasFile || hasGallery || hasVideo || sourceOrg"
|
|
141
|
+
>
|
|
142
|
+
<asd20-icon v-if="hasVideo" name="video" size="sm" />
|
|
143
|
+
<asd20-icon v-if="hasGallery" name="gallery" size="sm" />
|
|
144
|
+
<asd20-icon v-if="hasFile" name="file" size="sm" />
|
|
145
|
+
<img
|
|
146
|
+
v-if="sourceOrg"
|
|
147
|
+
class="source-org"
|
|
148
|
+
width="24px"
|
|
149
|
+
:src="websiteLogo"
|
|
150
|
+
:alt="`${sourceOrg} logo`"
|
|
151
|
+
/>
|
|
152
|
+
</div>
|
|
96
153
|
</div>
|
|
97
|
-
|
|
98
|
-
|
|
154
|
+
|
|
155
|
+
<slot />
|
|
156
|
+
</template>
|
|
99
157
|
</component>
|
|
158
|
+
|
|
159
|
+
<!-- If you want the compact card to never show a cover image, CSS below will handle it -->
|
|
100
160
|
<figure class="asd20-card__image" v-if="image && !noCoverImage">
|
|
101
161
|
<img v-lazy="image" :key="image" :alt="alt || ''" />
|
|
102
162
|
</figure>
|
|
163
|
+
|
|
103
164
|
<asd20-icon
|
|
104
165
|
v-if="pinned"
|
|
105
166
|
class="asd20-card__pinned"
|
|
@@ -157,6 +218,8 @@ export default {
|
|
|
157
218
|
noCoverImage: { type: Boolean, default: false },
|
|
158
219
|
sourceOrg: { type: String, default: '' },
|
|
159
220
|
websiteLogo: { type: String, default: '' },
|
|
221
|
+
dateLeft: { type: Boolean, default: false },
|
|
222
|
+
cardType: { type: String, default: '' },
|
|
160
223
|
},
|
|
161
224
|
computed: {
|
|
162
225
|
truncatedDescription() {
|
|
@@ -180,6 +243,7 @@ export default {
|
|
|
180
243
|
'asd20-card--emphasized-date': this.emphasizedDate,
|
|
181
244
|
'asd20-card--expanded-header': this.expandedHeader,
|
|
182
245
|
'asd20-card--expanded-description': this.expandedDescription,
|
|
246
|
+
'asd20-card--date-left': this.dateLeft,
|
|
183
247
|
}
|
|
184
248
|
},
|
|
185
249
|
showMeta() {
|
|
@@ -201,6 +265,26 @@ export default {
|
|
|
201
265
|
// console.log(publishDateTimePlusOne, modifiedDateTimeString)
|
|
202
266
|
return modifiedDateTimeString > publishDateTimePlusOne ? true : false
|
|
203
267
|
},
|
|
268
|
+
monthAbbr() {
|
|
269
|
+
return (this.month || '').slice(0, 3).toUpperCase()
|
|
270
|
+
},
|
|
271
|
+
fullDateLabel() {
|
|
272
|
+
// e.g., "Friday, Nov 8, 2025"
|
|
273
|
+
const parts = [this.weekday, this.monthAbbr, this.day, this.year].filter(
|
|
274
|
+
Boolean
|
|
275
|
+
)
|
|
276
|
+
return parts.join(' ')
|
|
277
|
+
},
|
|
278
|
+
dateLeftTitle() {
|
|
279
|
+
if (!this.title) return ''
|
|
280
|
+
|
|
281
|
+
// strip any HTML tags from the title
|
|
282
|
+
const plain = this.title.replace(/<[^>]*>/g, '').trim()
|
|
283
|
+
|
|
284
|
+
// limit to 50 characters, then add "..." if longer
|
|
285
|
+
if (plain.length <= 65) return plain
|
|
286
|
+
return plain.slice(0, 65) + '...'
|
|
287
|
+
},
|
|
204
288
|
},
|
|
205
289
|
}
|
|
206
290
|
</script>
|
|
@@ -423,6 +507,115 @@ export default {
|
|
|
423
507
|
}
|
|
424
508
|
}
|
|
425
509
|
|
|
510
|
+
&--date-left {
|
|
511
|
+
min-height: 0 !important; // compact
|
|
512
|
+
position: relative; // allow absolute positioning inside
|
|
513
|
+
background: var(--website-card__background-color);
|
|
514
|
+
|
|
515
|
+
.asd20-card__content {
|
|
516
|
+
padding: space(0.75);
|
|
517
|
+
position: relative;
|
|
518
|
+
z-index: 2; // keep content above the logo
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
// hide large-only sections
|
|
522
|
+
.asd20-card__description,
|
|
523
|
+
.asd20-card__meta,
|
|
524
|
+
.asd20-card__subtitle,
|
|
525
|
+
.asd20-card__image {
|
|
526
|
+
display: none !important;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
.asd20-card__date-left {
|
|
530
|
+
display: flex;
|
|
531
|
+
align-items: flex-start;
|
|
532
|
+
gap: space(0.75);
|
|
533
|
+
position: relative; // for overlay link
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
.asd20-card__date-badge {
|
|
537
|
+
display: inline-flex;
|
|
538
|
+
flex-direction: column;
|
|
539
|
+
align-items: center;
|
|
540
|
+
justify-content: center;
|
|
541
|
+
|
|
542
|
+
width: 4rem;
|
|
543
|
+
height: 4rem;
|
|
544
|
+
min-width: 4rem;
|
|
545
|
+
border-radius: 999px;
|
|
546
|
+
background: var(--website-card__reverse-background-color)
|
|
547
|
+
var(--website-card__reverse-background-style);
|
|
548
|
+
color: var(--website-card__reverse-foreground-color);
|
|
549
|
+
text-transform: uppercase;
|
|
550
|
+
font-family: var(--website-typography__font-family-headlines);
|
|
551
|
+
line-height: 1;
|
|
552
|
+
|
|
553
|
+
.day {
|
|
554
|
+
font-weight: 700;
|
|
555
|
+
font-size: 1.2rem;
|
|
556
|
+
}
|
|
557
|
+
.mon {
|
|
558
|
+
font-weight: 700;
|
|
559
|
+
font-size: 0.75rem;
|
|
560
|
+
letter-spacing: 0.04em;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
.asd20-card__main {
|
|
565
|
+
display: flex;
|
|
566
|
+
flex-direction: column;
|
|
567
|
+
min-width: 0; // allow text truncation
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.asd20-card__title {
|
|
571
|
+
margin: 0;
|
|
572
|
+
font-size: 1rem;
|
|
573
|
+
line-height: 1.2;
|
|
574
|
+
color: var(--website-page__title-color);
|
|
575
|
+
overflow: hidden;
|
|
576
|
+
text-overflow: ellipsis;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
.asd20-card__time--compact {
|
|
580
|
+
margin: space(0.25) 0 0 0;
|
|
581
|
+
font-size: 0.85rem;
|
|
582
|
+
font-weight: 600;
|
|
583
|
+
display: inline-flex;
|
|
584
|
+
align-items: center;
|
|
585
|
+
.asd20-icon {
|
|
586
|
+
margin-right: space(0.25);
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
// Logo in lower-right
|
|
591
|
+
.asd20-card__date-left-logo {
|
|
592
|
+
position: absolute;
|
|
593
|
+
right: -1.5rem;
|
|
594
|
+
bottom: -1rem;
|
|
595
|
+
opacity: 0.1;
|
|
596
|
+
pointer-events: none;
|
|
597
|
+
z-index: 1; // under text, above background
|
|
598
|
+
|
|
599
|
+
img {
|
|
600
|
+
display: block;
|
|
601
|
+
max-width: 128px;
|
|
602
|
+
max-height: 128px;
|
|
603
|
+
width: auto;
|
|
604
|
+
height: auto;
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
.asd20-card__categories {
|
|
608
|
+
position: absolute;
|
|
609
|
+
right: space(0.25);
|
|
610
|
+
bottom: space(0.25);
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
// keep the entire card clickable via existing overlay link style
|
|
614
|
+
.asd20-card__link::after {
|
|
615
|
+
border-radius: var(--website-shape__radius-m);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
|
|
426
619
|
&__categories {
|
|
427
620
|
display: flex;
|
|
428
621
|
flex-wrap: wrap;
|
|
@@ -433,11 +626,16 @@ export default {
|
|
|
433
626
|
}
|
|
434
627
|
|
|
435
628
|
&__indicators {
|
|
629
|
+
display: flex;
|
|
436
630
|
margin-left: auto;
|
|
437
631
|
align-self: flex-end;
|
|
438
632
|
::v-deep .asd20-icon g {
|
|
439
633
|
--line-color: var(--website-card__reverse-foreground-color);
|
|
440
634
|
}
|
|
635
|
+
.source-org {
|
|
636
|
+
border-radius: 24px;
|
|
637
|
+
background: #fff;
|
|
638
|
+
}
|
|
441
639
|
}
|
|
442
640
|
|
|
443
641
|
&__image {
|
|
@@ -146,7 +146,7 @@ export default {
|
|
|
146
146
|
background-color: var(--color__secondary-t30);
|
|
147
147
|
background-image: var(--website-texture__reverse);
|
|
148
148
|
background-position-y: top;
|
|
149
|
-
background-size:
|
|
149
|
+
background-size: 1040px auto;
|
|
150
150
|
}
|
|
151
151
|
.name {
|
|
152
152
|
font-size: 1.25rem;
|
|
@@ -2,12 +2,26 @@
|
|
|
2
2
|
<section class="asd20-feeds-section" aria-label="Feeds section">
|
|
3
3
|
<slot name="before" />
|
|
4
4
|
|
|
5
|
+
<intersect @enter="$emit('events-in-view')">
|
|
6
|
+
<Asd20SwiperFeed
|
|
7
|
+
v-if="eventsFeedProps && (!Array.isArray(events) || events.length > 0)"
|
|
8
|
+
class="eventsFeed"
|
|
9
|
+
v-bind="eventsFeedProps"
|
|
10
|
+
:loading="!Array.isArray(events)"
|
|
11
|
+
:cards="eventCards"
|
|
12
|
+
:slidesPerView="4"
|
|
13
|
+
@select="onSelectEventCard"
|
|
14
|
+
cardType="Event"
|
|
15
|
+
></Asd20SwiperFeed>
|
|
16
|
+
</intersect>
|
|
17
|
+
|
|
5
18
|
<intersect @enter="$emit('announcements-in-view')">
|
|
6
19
|
<Asd20SwiperFeed
|
|
7
20
|
v-if="
|
|
8
21
|
announcementsFeedProps &&
|
|
9
|
-
|
|
22
|
+
(!Array.isArray(announcements) || announcements.length > 0)
|
|
10
23
|
"
|
|
24
|
+
class="announcementsFeed"
|
|
11
25
|
v-bind="announcementsFeedProps"
|
|
12
26
|
:loading="!Array.isArray(announcements)"
|
|
13
27
|
:cards="announcementCards"
|
|
@@ -17,23 +31,12 @@
|
|
|
17
31
|
></Asd20SwiperFeed>
|
|
18
32
|
</intersect>
|
|
19
33
|
|
|
20
|
-
<intersect @enter="$emit('events-in-view')">
|
|
21
|
-
<Asd20SwiperFeed
|
|
22
|
-
v-if="eventsFeedProps && (!Array.isArray(events) || events.length > 0)"
|
|
23
|
-
v-bind="eventsFeedProps"
|
|
24
|
-
:loading="!Array.isArray(events)"
|
|
25
|
-
:cards="eventCards"
|
|
26
|
-
:slidesPerView="4"
|
|
27
|
-
@select="onSelectEventCard"
|
|
28
|
-
cardType="Event"
|
|
29
|
-
></Asd20SwiperFeed>
|
|
30
|
-
</intersect>
|
|
31
|
-
|
|
32
34
|
<intersect @enter="$emit('stories-in-view')">
|
|
33
35
|
<Asd20SwiperFeed
|
|
34
36
|
v-if="
|
|
35
37
|
storiesFeedProps && (!Array.isArray(stories) || stories.length > 0)
|
|
36
38
|
"
|
|
39
|
+
class="storiesFeed"
|
|
37
40
|
v-bind="storiesFeedProps"
|
|
38
41
|
:loading="!Array.isArray(stories)"
|
|
39
42
|
:cards="storyCards"
|
|
@@ -156,7 +159,7 @@ export default {
|
|
|
156
159
|
eventCards() {
|
|
157
160
|
if (!Array.isArray(this.events)) return []
|
|
158
161
|
return expandEvents(this.events)
|
|
159
|
-
.map(e => ({ ...mapEventToCard(e), event: e, zoom: true }))
|
|
162
|
+
.map(e => ({ ...mapEventToCard(e), event: e, zoom: true, websiteLogo: this.organization.logoImageUrl }))
|
|
160
163
|
.slice(0, 9)
|
|
161
164
|
},
|
|
162
165
|
},
|
|
@@ -174,5 +177,40 @@ export default {
|
|
|
174
177
|
@import '../../../design/_mixins.scss';
|
|
175
178
|
|
|
176
179
|
.asd20-feeds-section {
|
|
180
|
+
.announcementsFeed,
|
|
181
|
+
.storiesFeed {
|
|
182
|
+
&:after {
|
|
183
|
+
content: '';
|
|
184
|
+
display: block;
|
|
185
|
+
position: absolute;
|
|
186
|
+
left: 0;
|
|
187
|
+
right: 0;
|
|
188
|
+
top: 30%;
|
|
189
|
+
bottom: 30%;
|
|
190
|
+
background: var(--website-page__alternate-background-color);
|
|
191
|
+
border-radius: 0;
|
|
192
|
+
// border-radius: var(--website-shape__radius-m);
|
|
193
|
+
// border-top-left-radius: 0;
|
|
194
|
+
// border-bottom-left-radius: 0;
|
|
195
|
+
z-index: 0;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
.eventsFeed {
|
|
199
|
+
&:after {
|
|
200
|
+
content: '';
|
|
201
|
+
display: block;
|
|
202
|
+
position: absolute;
|
|
203
|
+
left: 0;
|
|
204
|
+
right: 0;
|
|
205
|
+
top: 40%;
|
|
206
|
+
bottom: 41%;
|
|
207
|
+
background: var(--website-page__alternate-background-color);
|
|
208
|
+
border-radius: 0;
|
|
209
|
+
// border-radius: var(--website-shape__radius-m);
|
|
210
|
+
// border-top-left-radius: 0;
|
|
211
|
+
// border-bottom-left-radius: 0;
|
|
212
|
+
z-index: 0;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
177
215
|
}
|
|
178
216
|
</style>
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
<div class="swiper-slide" v-for="(card, index) in cards" :key="index">
|
|
11
11
|
<asd20-card
|
|
12
12
|
v-bind="card"
|
|
13
|
+
:cardType="cardType"
|
|
13
14
|
@click.native="$emit('select', card)"
|
|
14
15
|
@keydown.tab.exact.native="nextCard"
|
|
15
16
|
@keydown.tab.shift.native="prevCard"
|
|
@@ -152,21 +153,6 @@ export default {
|
|
|
152
153
|
z-index: 1;
|
|
153
154
|
}
|
|
154
155
|
|
|
155
|
-
&:after {
|
|
156
|
-
content: '';
|
|
157
|
-
display: block;
|
|
158
|
-
position: absolute;
|
|
159
|
-
left: 0;
|
|
160
|
-
right: 0;
|
|
161
|
-
top: 30%;
|
|
162
|
-
bottom: 30%;
|
|
163
|
-
background: var(--website-page__alternate-background-color);
|
|
164
|
-
border-radius: 0;
|
|
165
|
-
// border-radius: var(--website-shape__radius-m);
|
|
166
|
-
// border-top-left-radius: 0;
|
|
167
|
-
// border-bottom-left-radius: 0;
|
|
168
|
-
z-index: 0;
|
|
169
|
-
}
|
|
170
156
|
|
|
171
157
|
.swiper-title {
|
|
172
158
|
display: flex;
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"instagram": "",
|
|
38
38
|
"instructionTypes": [],
|
|
39
39
|
"location": {},
|
|
40
|
-
"logoImageUrl": "",
|
|
40
|
+
"logoImageUrl": "https://asd20websitestorage.blob.core.windows.net/asd20-images/school-logos/ASD20.png",
|
|
41
41
|
"mascotImageUrl": "https://asd20websitestorage.blob.core.windows.net/asd20-images/school-logos/aees_logo.png",
|
|
42
42
|
"mission": null,
|
|
43
43
|
"modifiedByDisplayName": "",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"id": null,
|
|
81
81
|
"uid": "MDQwMDAwMDA4MjAwRTAwMDc0QzVCNzEwMUE4MkUwMDgwMDAwMDAwMERFRTE5NzcxNThBQ0RBMDEwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDBFOEVBMjc5NkM0MDJ3RjRGODFFNzY1QzQ0M0VGMDA0Mx==",
|
|
82
82
|
"type": "event",
|
|
83
|
-
"summary": "
|
|
83
|
+
"summary": "Parent Academy: Financial Literacy 101 - Empowering Teens for Real World Money Smarts",
|
|
84
84
|
"description": "Ok. We're actually registeriing for Summer School really, really, really early.",
|
|
85
85
|
"location": "EAC",
|
|
86
86
|
"start": "2025-12-24T16:01:00Z",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"links": "[]",
|
|
56
56
|
"channels": ["Announcements"],
|
|
57
57
|
"audiences": [],
|
|
58
|
-
"ownerOrganizationId": "
|
|
58
|
+
"ownerOrganizationId": "26eaf390-d8ab-11e9-a3a8-5de5bba4f125",
|
|
59
59
|
"images": [{"files":[{"url":"https://asd20websitestorage.blob.core.windows.net/website-files/message-images/dollar5000-donated-to-high-plains-elementary-school/thumbnail-md/Unknown_250x250.jpg","name":"thumbnail-md","width":250,"height":250,"filename":"Unknown_250x250.jpg","filepath":"message-images/dollar5000-donated-to-high-plains-elementary-school/thumbnail-md/Unknown_250x250.jpg","filesize":26512},{"url":"https://asd20websitestorage.blob.core.windows.net/website-files/message-images/dollar5000-donated-to-high-plains-elementary-school/thumbnail-sm/Unknown_100x100.jpg","name":"thumbnail-sm","width":100,"height":100,"filename":"Unknown_100x100.jpg","filepath":"message-images/dollar5000-donated-to-high-plains-elementary-school/thumbnail-sm/Unknown_100x100.jpg","filesize":6411},{"url":"https://asd20websitestorage.blob.core.windows.net/website-files/message-images/dollar5000-donated-to-high-plains-elementary-school/thumbnail-xs/Unknown_50x50.jpg","name":"thumbnail-xs","width":50,"height":50,"filename":"Unknown_50x50.jpg","filepath":"message-images/dollar5000-donated-to-high-plains-elementary-school/thumbnail-xs/Unknown_50x50.jpg","filesize":2367},{"url":"https://asd20websitestorage.blob.core.windows.net/website-files/message-images/dollar5000-donated-to-high-plains-elementary-school/banner/Unknown_800x300.jpg","name":"banner","width":800,"height":300,"filename":"Unknown_800x300.jpg","filepath":"message-images/dollar5000-donated-to-high-plains-elementary-school/banner/Unknown_800x300.jpg","filesize":72551},{"url":"https://asd20websitestorage.blob.core.windows.net/website-files/message-images/dollar5000-donated-to-high-plains-elementary-school/full/Unknown_1200x800.jpg","name":"full","width":1200,"height":800,"filename":"Unknown_1200x800.jpg","filepath":"message-images/dollar5000-donated-to-high-plains-elementary-school/full/Unknown_1200x800.jpg","filesize":245500}],"isCover":true,"metadata":{"alt":""}}],
|
|
60
60
|
"videos": "[]",
|
|
61
61
|
"translations": "null",
|
|
@@ -392,7 +392,7 @@
|
|
|
392
392
|
"hours": "7:30 a.m. - 4:30 p.m.",
|
|
393
393
|
"instagram": "",
|
|
394
394
|
"location": {},
|
|
395
|
-
"logoImageUrl": "/",
|
|
395
|
+
"logoImageUrl": "https://asd20websitestorage.blob.core.windows.net/asd20-images/school-logos/ASD20.png",
|
|
396
396
|
"mascotImageUrl": "",
|
|
397
397
|
"phone": "(719) 234 - 1200",
|
|
398
398
|
"primaryColor": "",
|
|
@@ -64,7 +64,7 @@ export default function mapEventToCard(event) {
|
|
|
64
64
|
day: event.day,
|
|
65
65
|
month: event.month,
|
|
66
66
|
year: event.year,
|
|
67
|
-
|
|
67
|
+
dateLeft: true,
|
|
68
68
|
location: event.location || event.calendarLocation,
|
|
69
69
|
isFeatured: event.isFeatured || event.isDistrictFeatured,
|
|
70
70
|
}
|
|
@@ -46,9 +46,7 @@ export default function mapMessageToCard(
|
|
|
46
46
|
let websiteLogo = null
|
|
47
47
|
|
|
48
48
|
if (
|
|
49
|
-
message.ownerOrganizationId !== organization.id
|
|
50
|
-
message.destinations &&
|
|
51
|
-
message.destinations.length === 0
|
|
49
|
+
message.ownerOrganizationId !== organization.id
|
|
52
50
|
) {
|
|
53
51
|
const matchedOrg = organizationOptions.find(
|
|
54
52
|
org => org.id === message.ownerOrganizationId
|
|
@@ -58,6 +56,8 @@ export default function mapMessageToCard(
|
|
|
58
56
|
websiteLogo = matchedOrg.logoImageUrl
|
|
59
57
|
sourceOrg = matchedOrg.title
|
|
60
58
|
}
|
|
59
|
+
} else {
|
|
60
|
+
websiteLogo = organization.logoImageUrl
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
// Safely format dates (handle missing/null)
|