@asd20/ui 3.2.416 → 3.2.419

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 (23) hide show
  1. package/package.json +1 -1
  2. package/src/components/atoms/Asd20Messaging/index.vue +107 -70
  3. package/src/components/organisms/Asd20EventModal/index.vue +3 -4
  4. package/src/components/organisms/Asd20ImageGallery/index.vue +1 -1
  5. package/src/components/organisms/Asd20ImageHeader/index.stories.js +38 -0
  6. package/src/components/organisms/Asd20ImageHeader/index.vue +559 -0
  7. package/src/components/organisms/Asd20PageContent/index.vue +29 -6
  8. package/src/components/organisms/Asd20VideoHeaderContent/index.vue +1 -1
  9. package/src/components/templates/Asd20ArticleDigestTemplate/index.stories.js +4 -1
  10. package/src/components/templates/Asd20ArticleListTemplate/index.stories.js +7 -1
  11. package/src/components/templates/Asd20ArticleTemplate/index.stories.js +2 -1
  12. package/src/components/templates/Asd20CampusTemplate/index.stories.js +1 -1
  13. package/src/components/templates/Asd20DetailImageTemplate/index.stories.js +60 -0
  14. package/src/components/templates/Asd20DetailImageTemplate/index.vue +267 -0
  15. package/src/components/templates/Asd20LoginsTemplate/index.stories.js +3 -0
  16. package/src/components/templates/Asd20ProfileTemplate/index.stories.js +2 -1
  17. package/src/components/templates/Asd20ProfileTemplate/index.vue +1 -1
  18. package/src/components/templates/Asd20WayfindingImageTemplate/index.stories.js +65 -0
  19. package/src/components/templates/Asd20WayfindingImageTemplate/index.vue +234 -0
  20. package/src/components/templates/Asd20WayfindingTemplate/index.stories.js +1 -1
  21. package/src/data/page-queries/landing-page-query-result.json +554 -58
  22. package/src/data/page-queries/sublanding-page-query-result.json +3 -3
  23. package/src/mixins/mockPageMixin.js +6 -6
@@ -17,7 +17,7 @@ const wrapper = {
17
17
  Asd20ArticleTemplate,
18
18
  },
19
19
 
20
- data: () => ({ pageQueryResult }),
20
+ data: () => ({ pageQueryResult, languageCode: 'en' }),
21
21
 
22
22
  computed: {
23
23
  activeNotificationsByType() {
@@ -46,6 +46,7 @@ stories.add(
46
46
  v-bind="templateProps"
47
47
  :menu-open.sync="menuOpen"
48
48
  :search-open.sync="searchOpen"
49
+ :languageCode.sync="languageCode"
49
50
 
50
51
  @announcements-in-view="loadAnnouncements"
51
52
  @stories-in-view="loadStories"
@@ -57,7 +57,7 @@ stories.add(
57
57
  @stories-in-view="loadStories"
58
58
  @events-in-view="loadEvents"
59
59
  @files-in-view="loadFiles"
60
- @people-in-view="loadPeopleInView"
60
+ @people-in-view="loadPeople"
61
61
  :languageCode.sync="languageCode"
62
62
  />`,
63
63
  }),
@@ -0,0 +1,60 @@
1
+ import { storiesOf } from '@storybook/vue'
2
+ import { withKnobs, boolean } from '@storybook/addon-knobs'
3
+
4
+ import mockPageMixin from '../../../mixins/mockPageMixin'
5
+
6
+ import Asd20DetailImageTemplate from '.'
7
+ import pageQueryResult from '../../../data/page-queries/sublanding-page-query-result.json'
8
+ import notifications from '../../../data/messages/notifications'
9
+
10
+ const info = {
11
+ summary: 'Detail Image Page Template',
12
+ }
13
+
14
+ const wrapper = {
15
+ mixins: [mockPageMixin],
16
+ components: {
17
+ Asd20DetailImageTemplate,
18
+ },
19
+
20
+ data: () => ({ pageQueryResult, languageCode: 'en' }),
21
+
22
+
23
+ computed: {
24
+ activeNotificationsByType() {
25
+ const empty = {
26
+ inline: [],
27
+ banner: [],
28
+ floating: [],
29
+ status: [],
30
+ }
31
+ return boolean('Show Notifications', true)
32
+ ? notifications || empty
33
+ : empty
34
+ },
35
+ },
36
+ }
37
+
38
+ const stories = storiesOf('Templates - Asd20DetailImageTemplate', module)
39
+ stories.addDecorator(withKnobs)
40
+
41
+ stories.add(
42
+ 'Default',
43
+ () => ({
44
+ ...wrapper,
45
+ template: `
46
+ <Asd20DetailImageTemplate
47
+ v-bind="templateProps"
48
+ :menu-open.sync="menuOpen"
49
+ :search-open.sync="searchOpen"
50
+ :languageCode.sync="languageCode"
51
+
52
+ @announcements-in-view="loadAnnouncements"
53
+ @stories-in-view="loadStories"
54
+ @events-in-view="loadEvents"
55
+ @files-in-view="loadFiles"
56
+
57
+ />`,
58
+ }),
59
+ { info }
60
+ )
@@ -0,0 +1,267 @@
1
+ <template>
2
+ <div class="asd20-template-detail-image">
3
+ <!-- Skip Nav -->
4
+ <asd20-skip-to />
5
+
6
+ <!-- Banner Notifications -->
7
+ <client-only>
8
+ <asd20-notification-group
9
+ :notifications="activeNotificationsByType.banner"
10
+ group-type="banner"
11
+ @dismiss="$emit('dismiss-notification', $event)"
12
+ @toggle-all="$emit('toggle-all')"
13
+ />
14
+ </client-only>
15
+
16
+ <!-- Site Navigation -->
17
+ <asd20-site-navigation
18
+ :navigation="navigation"
19
+ :action-items="actionItems"
20
+ @update:menuOpen="$emit('update:menuOpen', $event)"
21
+ :menu-open="menuOpen"
22
+ @update:searchOpen="$emit('update:searchOpen', $event)"
23
+ :search-open="searchOpen"
24
+ :organization="organization"
25
+ :organization-options="organizationOptions"
26
+ >
27
+ </asd20-site-navigation>
28
+
29
+ <!-- Page Header -->
30
+ <asd20-image-header
31
+ id="image-header"
32
+ v-if="pageHeaderContent"
33
+ v-bind="pageHeaderContent"
34
+ :organization="organization"
35
+ :organization-options="organizationOptions"
36
+ :languageCode="languageCode"
37
+ :breadcrumb-links="breadcrumbLinks"
38
+ :publishDateTime="parentPage ? '' : publishDateTime"
39
+ :categories="parentPage ? [] : messageCategories"
40
+ v-on="$listeners"
41
+ >
42
+ <!-- Floating Notifications -->
43
+ <template slot="top">
44
+ <client-only>
45
+ <asd20-notification-group
46
+ class="asd20-notification-group--floating"
47
+ :notifications="activeNotificationsByType.floating"
48
+ :total-dismissed-notifications="totalDismissedNotifications"
49
+ group-type="floating"
50
+ @dismiss="$emit('dismiss-notification', $event)"
51
+ @toggle-all="$emit('toggle-all')"
52
+ ></asd20-notification-group>
53
+ </client-only>
54
+ </template>
55
+ </asd20-image-header>
56
+
57
+ <!-- Inline-Notifications -->
58
+ <client-only>
59
+ <asd20-notification-group
60
+ :notifications="activeNotificationsByType.inline"
61
+ group-type="inline"
62
+ @dismiss="$emit('dismiss-notification', $event)"
63
+ @toggle-all="$emit('toggle-all')"
64
+ ></asd20-notification-group>
65
+ </client-only>
66
+
67
+ <!-- Page Content -->
68
+ <asd20-page-content
69
+ :primary-messages="primaryMessages"
70
+ :secondary-messages="secondaryMessages"
71
+ omit-detail-links
72
+ omit-calls-to-action
73
+ >
74
+ <!-- Sidebar Widgets -->
75
+ <asd20-widgets-section
76
+ v-if="widgetsSectionProps.sidebar"
77
+ v-bind="widgetsSectionProps.sidebar"
78
+ @events-in-view="$emit('events-in-view')"
79
+ @files-in-view="$emit('files-in-view')"
80
+ @people-in-view="$emit('people-in-view')"
81
+ ></asd20-widgets-section>
82
+ </asd20-page-content>
83
+
84
+ <!-- Feeds -->
85
+ <asd20-feeds-section
86
+ :announcements="announcements"
87
+ :announcements-feed-props="announcementsFeedProps"
88
+ @announcements-in-view="$emit('announcements-in-view')"
89
+ :stories="stories"
90
+ :stories-feed-props="storiesFeedProps"
91
+ @stories-in-view="$emit('stories-in-view')"
92
+ :events="events"
93
+ :events-feed-props="eventsFeedProps"
94
+ @events-in-view="$emit('events-in-view')"
95
+ ></asd20-feeds-section>
96
+
97
+ <asd20-media-section
98
+ v-if="combinedMessageImages.length > 1 || combinedMessageVideos.length"
99
+ :images="this.combinedMessageImages || []"
100
+ :videos="this.combinedMessageVideos || []"
101
+ >
102
+ </asd20-media-section>
103
+
104
+ <!-- Bottom Widgets -->
105
+ <asd20-widgets-section
106
+ v-if="widgetsSectionProps.footer || $slots.widgets"
107
+ v-bind="widgetsSectionProps.footer"
108
+ @events-in-view="$emit('events-in-view')"
109
+ @files-in-view="$emit('files-in-view')"
110
+ full
111
+ ><slot name="widgets"
112
+ /></asd20-widgets-section>
113
+
114
+ <!-- Quick Links -->
115
+ <asd20-quicklinks-menu slot="before-footer" :quick-links="quickLinks">
116
+ <slot name="quicklinks-menu" />
117
+ </asd20-quicklinks-menu>
118
+
119
+ <!-- Footer -->
120
+ <asd20-page-footer
121
+ :organization="organization"
122
+ :socialLinks="socialLinks"
123
+ :disclosureLinks="disclosureLinks"
124
+ :websiteLogoProps="websiteLogoProps"
125
+ >
126
+ <slot name="page-footer" />
127
+ </asd20-page-footer>
128
+ </div>
129
+ </template>
130
+
131
+ <script>
132
+ // Components
133
+ import Asd20SkipTo from '../../../components/atoms/Asd20SkipTo'
134
+ import Asd20ImageHeader from '../../../components/organisms/Asd20ImageHeader'
135
+
136
+ import Asd20SiteNavigation from '../../../components/organisms/Asd20SiteNavigation'
137
+ import Asd20PageContent from '../../../components/organisms/Asd20PageContent'
138
+
139
+ import Asd20WidgetsSection from '../../../components/organisms/Asd20WidgetsSection'
140
+ import Asd20FeedsSection from '../../../components/organisms/Asd20FeedsSection'
141
+ import Asd20MediaSection from '../../../components/organisms/Asd20MediaSection'
142
+
143
+ import Asd20PageFooter from '../../../components/organisms/Asd20PageFooter'
144
+ import Asd20QuicklinksMenu from '../../../components/organisms/Asd20QuicklinksMenu'
145
+ import Asd20NotificationGroup from '@asd20/notifications-ui/src/components/Asd20NotificationGroup'
146
+
147
+ // Mixins
148
+ import pageTemplateMixin from '../../../mixins/pageTemplateMixin'
149
+
150
+ export default {
151
+ name: 'Asd20DetailImageTemplate',
152
+ mixins: [pageTemplateMixin],
153
+ components: {
154
+ Asd20PageContent,
155
+ Asd20SkipTo,
156
+ Asd20ImageHeader,
157
+ Asd20PageFooter,
158
+ Asd20SiteNavigation,
159
+ Asd20WidgetsSection,
160
+ Asd20FeedsSection,
161
+ Asd20NotificationGroup,
162
+ Asd20QuicklinksMenu,
163
+ Asd20MediaSection,
164
+ },
165
+ }
166
+ </script>
167
+
168
+ <style lang="scss">
169
+ @import '../../../design/_variables.scss';
170
+ @import '../../../design/_mixins.scss';
171
+ @import '../../../design/_typography.scss';
172
+ @import '../../../design/_template.scss';
173
+ @import '../../../design/_print.scss';
174
+ @import '../../../design/tokens.css';
175
+
176
+ .asd20-template-detail-image {
177
+ @include typography;
178
+ @include template;
179
+ display: flex;
180
+ flex-direction: column;
181
+ flex-grow: 1;
182
+ flex-shrink: 0;
183
+ overflow: hidden;
184
+ margin-top: space(2.25);
185
+ .asd20-notification-group--floating {
186
+ position: absolute;
187
+ top: space(2);
188
+ .bell {
189
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.125) !important;
190
+ svg {
191
+ fill: var(--color__accent) !important;
192
+ }
193
+ span {
194
+ background: var(--color__accent) !important;
195
+ top: inherit !important;
196
+ right: inherit !important;
197
+ width: 1.2rem !important;
198
+ height: 1.2rem !important;
199
+ font-size: 0.75rem !important;
200
+ }
201
+ }
202
+ }
203
+ }
204
+
205
+ @media (min-width: 768px) {
206
+ .asd20-template-detail-image {
207
+ .asd20-notification-group--floating {
208
+ position: absolute;
209
+ top: space(1);
210
+ .bell {
211
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.125) !important;
212
+ svg {
213
+ fill: var(--color__accent) !important;
214
+ }
215
+ span {
216
+ background: var(--color__accent) !important;
217
+ top: inherit !important;
218
+ right: inherit !important;
219
+ width: 1.2rem !important;
220
+ height: 1.2rem !important;
221
+ font-size: 0.75rem !important;
222
+ }
223
+ }
224
+ }
225
+ }
226
+ }
227
+
228
+ @media (min-width: 1024px) {
229
+ .asd20-template-detail-image {
230
+ @include template-desktop;
231
+ margin-left: space(3);
232
+ margin-top: 0;
233
+ .asd20-notification-group--floating {
234
+ position: absolute;
235
+ top: space(1.5);
236
+ // .bell {
237
+ // span {
238
+ // background: var(--color__accent);
239
+ // top: -0.6em !important;
240
+ // right: -0.6em !important;
241
+ // }
242
+ // }
243
+ }
244
+ .notification-group--inline {
245
+ margin: space(2) space(3) space(1) space(3);
246
+ flex-basis: 100%;
247
+ margin-bottom: 0 !important;
248
+ }
249
+
250
+ .asd20-page-content {
251
+ // margin-top: space(1);
252
+ display: flex;
253
+ justify-content: space-between;
254
+ align-items: stretch;
255
+ flex-wrap: wrap;
256
+ .asd20-widgets-section {
257
+ flex-basis: 25%;
258
+ padding: space(2) space(3) 0 0;
259
+ background: none;
260
+ }
261
+ }
262
+ .primary-messaging-section {
263
+ max-width: 50vw;
264
+ }
265
+ }
266
+ }
267
+ </style>
@@ -20,6 +20,7 @@ const wrapper = {
20
20
 
21
21
  data: () => ({
22
22
  pageQueryResult,
23
+ languageCode: 'en',
23
24
  tabs: [
24
25
  {
25
26
  label: 'Families',
@@ -214,6 +215,8 @@ stories.add(
214
215
  :tabs="tabs"
215
216
  :logins="logins"
216
217
  :messages="messages"
218
+ :languageCode.sync="languageCode"
219
+
217
220
  @announcements-in-view="loadAnnouncements"
218
221
  @stories-in-view="loadStories"
219
222
  @events-in-view="loadEvents"
@@ -17,7 +17,7 @@ const wrapper = {
17
17
  Asd20ProfileTemplate,
18
18
  },
19
19
 
20
- data: () => ({ pageQueryResult }),
20
+ data: () => ({ pageQueryResult, languageCode: 'en' }),
21
21
 
22
22
  computed: {
23
23
  activeNotificationsByType() {
@@ -46,6 +46,7 @@ stories.add(
46
46
  v-bind="templateProps"
47
47
  :menu-open.sync="menuOpen"
48
48
  :search-open.sync="searchOpen"
49
+ :languageCode.sync="languageCode"
49
50
 
50
51
  @announcements-in-view="loadAnnouncements"
51
52
  @stories-in-view="loadStories"
@@ -246,7 +246,7 @@
246
246
  v-if="athleticsListItems.length > 0"
247
247
  :items="athleticsListItems"
248
248
  class="asd20-school-details__athletics-offerings"
249
- headline="Atheltics Offerings"
249
+ headline="Athletics Offerings"
250
250
  multi-column
251
251
  icon="athletics"
252
252
  />
@@ -0,0 +1,65 @@
1
+ import { storiesOf } from '@storybook/vue'
2
+ import { withKnobs, boolean } from '@storybook/addon-knobs'
3
+
4
+ import mockPageMixin from '../../../mixins/mockPageMixin'
5
+
6
+ import Asd20WayfindingImageTemplate from '.'
7
+ import pageQueryResult from '../../../data/page-queries/landing-page-query-result.json'
8
+ import notifications from '../../../data/messages/notifications'
9
+
10
+ const info = {
11
+ summary: 'Wayfinding Image Page Template',
12
+ }
13
+
14
+ const wrapper = {
15
+ mixins: [mockPageMixin],
16
+ components: {
17
+ Asd20WayfindingImageTemplate,
18
+ },
19
+ watch: {
20
+ languageCode(newValue, oldValue) {
21
+ console.log(newValue, oldValue)
22
+ },
23
+ },
24
+
25
+ data: () => ({ pageQueryResult, languageCode: 'es' }),
26
+
27
+ computed: {
28
+ activeNotificationsByType() {
29
+ const empty = {
30
+ inline: [],
31
+ banner: [],
32
+ floating: [],
33
+ status: [],
34
+ }
35
+ return boolean('Show Notifications', true)
36
+ ? notifications || empty
37
+ : empty
38
+ },
39
+ },
40
+
41
+ }
42
+
43
+ const stories = storiesOf('Templates - Asd20WayfindingImageTemplate', module)
44
+ stories.addDecorator(withKnobs)
45
+
46
+ stories.add(
47
+ 'Default',
48
+ () => ({
49
+ ...wrapper,
50
+ template: `
51
+ <Asd20WayfindingImageTemplate
52
+ v-bind="templateProps"
53
+ :menu-open.sync="menuOpen"
54
+ :search-open.sync="searchOpen"
55
+
56
+ @announcements-in-view="loadAnnouncements"
57
+ @stories-in-view="loadStories"
58
+ @events-in-view="loadEvents"
59
+ @files-in-view="loadFiles"
60
+ @people-in-view="loadPeople"
61
+ :languageCode.sync="languageCode"
62
+ />`,
63
+ }),
64
+ { info }
65
+ )
@@ -0,0 +1,234 @@
1
+ <template>
2
+ <div class="asd20-template-wayfinding-image">
3
+ <!-- Skip Nav -->
4
+ <asd20-skip-to></asd20-skip-to>
5
+
6
+ <!-- Banner Notifications -->
7
+ <client-only>
8
+ <asd20-notification-group
9
+ :notifications="activeNotificationsByType.banner"
10
+ group-type="banner"
11
+ @dismiss="$emit('dismiss-notification', $event)"
12
+ @toggle-all="$emit('toggle-all')"
13
+ ></asd20-notification-group>
14
+ </client-only>
15
+
16
+ <!-- Site Navigation -->
17
+ <asd20-site-navigation
18
+ :navigation="navigation"
19
+ :action-items="actionItems"
20
+ @update:menuOpen="$emit('update:menuOpen', $event)"
21
+ :menu-open="menuOpen"
22
+ @update:searchOpen="$emit('update:searchOpen', $event)"
23
+ :search-open="searchOpen"
24
+ :organization="organization"
25
+ :organization-options="organizationOptions"
26
+ >
27
+ </asd20-site-navigation>
28
+
29
+ <!-- Page Header -->
30
+ <asd20-image-header
31
+ id="page-header"
32
+ v-show="pageHeaderContent"
33
+ v-bind="pageHeaderContent"
34
+ :organization="organization"
35
+ :organization-options="organizationOptions"
36
+ :languageCode="languageCode"
37
+ v-on="$listeners"
38
+ :breadcrumb-links="breadcrumbLinks"
39
+ >
40
+ <!-- Floating Notifications -->
41
+ <template slot="top">
42
+ <client-only>
43
+ <asd20-notification-group
44
+ class="asd20-notification-group--floating"
45
+ :notifications="activeNotificationsByType.floating"
46
+ :total-dismissed-notifications="totalDismissedNotifications"
47
+ group-type="floating"
48
+ @dismiss="$emit('dismiss-notification', $event)"
49
+ @toggle-all="$emit('toggle-all')"
50
+ ></asd20-notification-group>
51
+ </client-only>
52
+ </template>
53
+ <!-- <asd20-breadcrumb slot="top" :links="breadcrumbLinks"></asd20-breadcrumb> -->
54
+ </asd20-image-header>
55
+
56
+ <!-- Page Content -->
57
+ <asd20-page-content
58
+ :primary-messages="wayFindingPrimaryMessages"
59
+ :secondary-messages="secondaryMessages"
60
+ omit-body-content
61
+ fullscreen
62
+ >
63
+ <!-- Inline-Notifications -->
64
+ <template slot="before">
65
+ <client-only>
66
+ <asd20-notification-group
67
+ :notifications="activeNotificationsByType.inline"
68
+ group-type="inline"
69
+ @dismiss="$emit('dismiss-notification', $event)"
70
+ @toggle-all="$emit('toggle-all')"
71
+ ></asd20-notification-group>
72
+ </client-only>
73
+ </template>
74
+
75
+ <slot></slot>
76
+ </asd20-page-content>
77
+
78
+ <asd20-feeds-section
79
+ :announcements="announcements"
80
+ :announcements-feed-props="announcementsFeedProps"
81
+ @announcements-in-view="$emit('announcements-in-view')"
82
+ :stories="stories"
83
+ :stories-feed-props="storiesFeedProps"
84
+ @stories-in-view="$emit('stories-in-view')"
85
+ :events="events"
86
+ :events-feed-props="eventsFeedProps"
87
+ @events-in-view="$emit('events-in-view')"
88
+ ></asd20-feeds-section>
89
+
90
+ <!-- Bottom Widgets -->
91
+ <asd20-widgets-section
92
+ v-if="
93
+ widgetsSectionProps.footer ||
94
+ widgetsSectionProps.sidebar ||
95
+ $slots.widgets
96
+ "
97
+ v-bind="{ ...widgetsSectionProps.footer, ...widgetsSectionProps.sidebar }"
98
+ @events-in-view="$emit('events-in-view')"
99
+ @files-in-view="$emit('files-in-view')"
100
+ @people-in-view="$emit('people-in-view')"
101
+ full
102
+ ><slot name="widgets"
103
+ /></asd20-widgets-section>
104
+
105
+ <slot name="before-footer" />
106
+
107
+ <!-- Quick Links -->
108
+ <asd20-quicklinks-menu slot="before-footer" :quick-links="quickLinks">
109
+ <slot name="quicklinks-menu" />
110
+ </asd20-quicklinks-menu>
111
+
112
+ <!-- Footer -->
113
+ <asd20-page-footer
114
+ :organization="organization"
115
+ :socialLinks="socialLinks"
116
+ :disclosureLinks="disclosureLinks"
117
+ :websiteLogoProps="websiteLogoProps"
118
+ >
119
+ <slot name="page-footer" />
120
+ </asd20-page-footer>
121
+ </div>
122
+ </template>
123
+
124
+ <script>
125
+ // Components
126
+ import Asd20SkipTo from '../../../components/atoms/Asd20SkipTo'
127
+ import Asd20ImageHeader from '../../../components/organisms/Asd20ImageHeader'
128
+
129
+ import Asd20SiteNavigation from '../../../components/organisms/Asd20SiteNavigation'
130
+ import Asd20PageContent from '../../../components/organisms/Asd20PageContent'
131
+
132
+ import Asd20WidgetsSection from '../../../components/organisms/Asd20WidgetsSection'
133
+ import Asd20FeedsSection from '../../../components/organisms/Asd20FeedsSection'
134
+ // import Asd20MediaSection from '../../../components/organisms/Asd20MediaSection'
135
+
136
+ import Asd20PageFooter from '../../../components/organisms/Asd20PageFooter'
137
+ import Asd20QuicklinksMenu from '../../../components/organisms/Asd20QuicklinksMenu'
138
+ import Asd20NotificationGroup from '@asd20/notifications-ui/src/components/Asd20NotificationGroup'
139
+
140
+ // import Intersect from 'vue-intersect'
141
+
142
+ // Mixins
143
+ import pageTemplateMixin from '../../../mixins/pageTemplateMixin'
144
+
145
+ export default {
146
+ name: 'Asd20WayfindingImageTemplate',
147
+ mixins: [pageTemplateMixin],
148
+ components: {
149
+ Asd20PageContent,
150
+ Asd20SkipTo,
151
+ Asd20ImageHeader,
152
+ Asd20PageFooter,
153
+ Asd20SiteNavigation,
154
+ Asd20WidgetsSection,
155
+ Asd20FeedsSection,
156
+ Asd20NotificationGroup,
157
+ Asd20QuicklinksMenu,
158
+ // Asd20MediaSection,
159
+ },
160
+ computed: {
161
+ wayFindingPrimaryMessages() {
162
+ // wayfinding page
163
+ return (
164
+ this.messages
165
+ // Remove the first message, limit
166
+ .slice(
167
+ 1,
168
+ Math.min(this.messages.length, this.primaryMessageLimit + 1)
169
+ )
170
+ )
171
+ },
172
+ },
173
+ }
174
+ </script>
175
+
176
+ <style lang="scss">
177
+ @import '../../../design/_variables.scss';
178
+ @import '../../../design/_mixins.scss';
179
+ @import '../../../design/_typography.scss';
180
+ @import '../../../design/_template.scss';
181
+ @import '../../../design/_print.scss';
182
+ @import '../../../design/tokens.css';
183
+
184
+ .asd20-template-wayfinding-image {
185
+ @include typography;
186
+ @include template;
187
+ display: flex;
188
+ flex-direction: column;
189
+ flex-grow: 1;
190
+ flex-shrink: 0;
191
+ overflow: hidden;
192
+ margin-top: space(2.25);
193
+ .asd20-notification-group--floating {
194
+ position: absolute;
195
+ top: space(2);
196
+ .bell {
197
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.125) !important;
198
+ svg {
199
+ fill: var(--color__accent) !important;
200
+ }
201
+ span {
202
+ background: var(--color__accent) !important;
203
+ top: inherit !important;
204
+ right: inherit !important;
205
+ width: 1.2rem !important;
206
+ height: 1.2rem !important;
207
+ font-size: 0.75rem !important;
208
+ }
209
+ }
210
+ }
211
+ }
212
+
213
+ @media (min-width: 1024px) {
214
+ .asd20-template-wayfinding-image {
215
+ .asd20-notification-group--floating {
216
+ position: absolute;
217
+ top: space(1);
218
+ // .bell {
219
+ // span {
220
+ // background: var(--color__accent);
221
+ // top: -0.6em !important;
222
+ // right: -0.6em !important;
223
+ // }
224
+ // }
225
+ }
226
+ @include template-desktop;
227
+ margin-left: space(3);
228
+ margin-top: 0;
229
+ .asd20-page-content {
230
+ margin-top: space(0);
231
+ }
232
+ }
233
+ }
234
+ </style>