@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
@@ -0,0 +1,559 @@
1
+ <template>
2
+ <header
3
+ v-scroll-track.window
4
+ class="asd20-image-header"
5
+ :class="classes"
6
+ role="banner"
7
+ >
8
+ <div class="asd20-image-header__top" v-if="organizationOptions.length > 0">
9
+ <asd20-district-logo
10
+ v-show="
11
+ organization.title === 'Academy District 20' &&
12
+ mq !== 'sm' &&
13
+ mq !== 'md'
14
+ "
15
+ ></asd20-district-logo>
16
+ <client-only>
17
+ <asd20-organization-picker
18
+ v-show="organization.title !== 'Academy District 20'"
19
+ :organization-options="organizationOptions"
20
+ :organization="organization"
21
+ ></asd20-organization-picker>
22
+ </client-only>
23
+ <slot name="top" />
24
+ </div>
25
+ <div :class="imageUrl ? 'add-fade' : ''" class="asd20-image-header__main">
26
+ <div class="asd20-image-header__content">
27
+ <div class="asd20-image-header__tools">
28
+ <asd20-breadcrumb
29
+ v-if="breadcrumbLinks.length"
30
+ :links="breadcrumbLinks"
31
+ ></asd20-breadcrumb>
32
+ <asd20-button
33
+ class="back"
34
+ v-if="!breadcrumbLinks.length"
35
+ @click.native="goBack()"
36
+ label="Back"
37
+ icon="chevron"
38
+ :iconAngle="-90"
39
+ size="md"
40
+ horizontal
41
+ transparent
42
+ centered
43
+ reversed
44
+ />
45
+ <div class="right">
46
+ <Asd20LanguageTranslation
47
+ v-if="languageCode"
48
+ reversed
49
+ :languageCode="languageCode"
50
+ v-on="$listeners"
51
+ />
52
+ <Asd20Share></Asd20Share>
53
+ <asd20-button
54
+ class="print-button"
55
+ icon="printer"
56
+ size="sm"
57
+ hide-label
58
+ label="Print this page"
59
+ onclick="window.print()"
60
+ ></asd20-button>
61
+ </div>
62
+ </div>
63
+ <div id="main" class="asd20-image-header__title-content">
64
+ <h1 v-if="heading" v-html="heading" />
65
+ <div
66
+ v-if="publishDateTime || categories.length || $slots.meta"
67
+ class="asd20-image-header__meta"
68
+ >
69
+ <span class="date-prefix">Published:</span>
70
+ <asd20-formatted-date
71
+ v-if="publishDateTime"
72
+ :dateTime="publishDateTime"
73
+ />
74
+ <asd20-tag-group v-if="categories.length" :tags="categories" />
75
+ <slot name="meta" />
76
+ </div>
77
+ <div v-if="lead" class="asd20-image-header__lead">
78
+ <span v-html="lead"></span>
79
+ <a v-show="detailLink && !isDetailPage" :href="detailLink">
80
+ {{ detailLinkLabel }}
81
+ </a>
82
+ </div>
83
+ </div>
84
+ </div>
85
+
86
+ <div v-if="imageUrl && !$slots.aside" class="asd20-image-header__image">
87
+ <img :src="imageUrl" :alt="imageCaption" />
88
+ </div>
89
+ </div>
90
+
91
+ <aside class="asd20-image-header__aside" v-if="$slots.aside">
92
+ <slot name="aside" />
93
+ </aside>
94
+
95
+ <div
96
+ v-if="callsToAction.length > 0"
97
+ class="asd20-image-header__call-to-action"
98
+ >
99
+ <!-- <asd20-button
100
+ v-for="(cta, index) in callsToAction"
101
+ :key="index"
102
+ :size="['sm', 'md'].indexOf(mq) > -1 ? 'sm' : 'lg'"
103
+ :label="cta.label"
104
+ :icon="cta.icon"
105
+ :link="cta.url"
106
+ reversed
107
+ horizontal
108
+ centered
109
+ /> -->
110
+ <asd20-button
111
+ v-if="callsToAction.length >= 1"
112
+ :size="['sm', 'md'].indexOf(mq) > -1 ? 'sm' : 'lg'"
113
+ :label="callsToAction[0].label"
114
+ :icon="callsToAction[0].icon"
115
+ :link="callsToAction[0].url"
116
+ reversed
117
+ horizontal
118
+ centered
119
+ />
120
+ <asd20-button
121
+ v-if="callsToAction.length >= 2"
122
+ :size="['sm', 'md'].indexOf(mq) > -1 ? 'sm' : 'lg'"
123
+ :label="callsToAction[1].label"
124
+ :icon="callsToAction[1].icon"
125
+ :link="callsToAction[1].url"
126
+ reversed
127
+ horizontal
128
+ centered
129
+ />
130
+ </div>
131
+ <div v-if="fullscreen" class="scroll-down-indicator"></div>
132
+ <slot />
133
+ </header>
134
+ </template>
135
+
136
+ <script>
137
+ import scrollTrack from '../../../directives/scroll-track'
138
+ import Asd20Button from '../../atoms/Asd20Button'
139
+ import Asd20DistrictLogo from '../../../components/atoms/Asd20DistrictLogo'
140
+ import Asd20OrganizationPicker from '../../../components/organisms/Asd20OrganizationPicker'
141
+ import Asd20Breadcrumb from '../../../components/atoms/Asd20Breadcrumb'
142
+ import Asd20LanguageTranslation from '../../molecules/Asd20LanguageTranslation'
143
+ import Asd20Share from '../../molecules/Asd20Share'
144
+ import Asd20FormattedDate from '../../atoms/Asd20FormattedDate'
145
+ import Asd20TagGroup from '../../organisms/Asd20TagGroup'
146
+
147
+ export default {
148
+ name: 'Asd20ImageHeader',
149
+ components: {
150
+ Asd20Button,
151
+ Asd20DistrictLogo,
152
+ Asd20OrganizationPicker,
153
+ Asd20Breadcrumb,
154
+ Asd20TagGroup,
155
+ Asd20LanguageTranslation,
156
+ Asd20Share,
157
+ Asd20FormattedDate,
158
+ },
159
+ directives: { scrollTrack },
160
+ props: {
161
+ heading: { type: String, default: '' },
162
+ lead: { type: String, default: '' },
163
+ callsToAction: { type: Array, default: () => [] },
164
+ imageUrl: { type: String, default: '' },
165
+ imageCaption: { type: String, default: '' },
166
+ fullscreen: { type: Boolean, default: false },
167
+ detailLink: { type: String, default: '' },
168
+ detailLinkLabel: { type: String, default: '' },
169
+ organization: { type: Object, default: null },
170
+ organizationOptions: { type: Array, default: () => [] },
171
+ omitDetailLink: { type: Boolean, default: false },
172
+ breadcrumbLinks: { type: Array, default: () => [] },
173
+ publishDateTime: { type: String, default: '' },
174
+ categories: { type: Array, default: () => [] },
175
+ languageCode: { type: String, default: '' },
176
+ },
177
+ computed: {
178
+ mq() {
179
+ return this.$mq || 'sm'
180
+ },
181
+ classes() {
182
+ return {
183
+ 'asd20-image-header--fullscreen': this.fullscreen,
184
+ 'asd20-image-header--has-cta': this.callsToAction
185
+ ? this.callsToAction.length > 0
186
+ : false,
187
+ }
188
+ },
189
+ isDetailPage() {
190
+ if (typeof window === 'undefined') return false
191
+ return (
192
+ window.location.pathname
193
+ .replace(/\/$/, '')
194
+ .split('/')
195
+ .pop() ===
196
+ this.detailLink
197
+ .replace(/\/$/, '')
198
+ .split('/')
199
+ .pop()
200
+ )
201
+ },
202
+ },
203
+ methods: {
204
+ goBack() {
205
+ if (typeof window === 'undefined') return
206
+ window.history.back()
207
+ },
208
+ },
209
+ }
210
+ </script>
211
+
212
+ <style lang="scss" scoped>
213
+ @import '../../../design/_variables.scss';
214
+ @import '../../../design/_mixins.scss';
215
+
216
+ .asd20-image-header {
217
+ position: relative;
218
+ display: flex;
219
+ flex-shrink: 0;
220
+ flex-direction: column;
221
+ box-sizing: border-box;
222
+ margin-bottom: space(1.5);
223
+ .back {
224
+ padding: space(0.5) 0;
225
+ font-family: var(--website-typography__font-family-body);
226
+ line-height: 1.2;
227
+ font-size: 14px !important;
228
+ font-weight: normal;
229
+ }
230
+
231
+ &::after {
232
+ content: '';
233
+ display: block;
234
+ position: absolute;
235
+ top: space(2);
236
+ bottom: space(-1.5);
237
+ right: space(0);
238
+ left: space(2);
239
+ background-color: var(--website-page__alternate-background-color);
240
+ z-index: -2;
241
+ border-radius: var(--website-shape__radius-l);
242
+ border-bottom-left-radius: 0;
243
+ border-bottom-right-radius: 0;
244
+ }
245
+ &__main {
246
+ background: var(--website-header__background-color)
247
+ var(--website-header__background-style);
248
+ }
249
+
250
+ &__tools {
251
+ display: flex;
252
+ justify-content: space-between;
253
+ align-self: center;
254
+ flex-direction: column;
255
+ .asd20-breadcrumb,
256
+ .back {
257
+ color: currentColor !important;
258
+ order: 2;
259
+ }
260
+ .right {
261
+ display: flex;
262
+ align-items: center;
263
+ & > *:not(:first-child) {
264
+ margin-left: space(0.25);
265
+ }
266
+ }
267
+ .print-button {
268
+ padding: 0.25rem 0.25rem;
269
+ border-radius: 5rem;
270
+ background: rgba(255, 255, 255, 0.9);
271
+ .asd20-button__label {
272
+ font-size: 0.875em !important;
273
+ padding-right: 0.5rem;
274
+ }
275
+ &:hover,
276
+ &:focus {
277
+ color: var(--website-button__foreground-color);
278
+ }
279
+ }
280
+ .asd20-language-translation {
281
+ flex-grow: 0;
282
+ width: max-content;
283
+ background: rgba(255, 255, 255, 0.9);
284
+ border-radius: 3rem;
285
+ padding: 0 0 0 0.5em;
286
+ &::v-deep .asd20-select-input {
287
+ color: var(--website-page__foreground-color) !important;
288
+ }
289
+ }
290
+ .asd20-language-loader {
291
+ order: 1;
292
+ }
293
+ &::v-deep .asd20-icon {
294
+ width: 24px !important;
295
+ height: 24px !important;
296
+ --line-color: currentColor !important;
297
+ --fill-color: var(--color__accent) !important;
298
+ g {
299
+ // --website-icon__line-color: var(--website-icon__line-color) !important;
300
+ --line-color: currentColor !important;
301
+ }
302
+ }
303
+ &::v-deep .asd20-select-input {
304
+ margin-bottom: 0;
305
+ }
306
+ }
307
+
308
+ &__top {
309
+ --fill-one: rgba(255, 255, 255, 1);
310
+ --fill-two: rgba(255, 255, 255, 0.625);
311
+ position: relative;
312
+ z-index: 101;
313
+ display: flex;
314
+ justify-content: flex-end;
315
+ flex-direction: row;
316
+ align-items: center;
317
+ padding: space(0.5) space(1);
318
+
319
+ &::v-deep .asd20-picker {
320
+ display: none;
321
+ }
322
+
323
+ &::v-deep .asd20-district-logo {
324
+ display: none;
325
+ }
326
+
327
+ &::v-deep .notification-group--status {
328
+ margin-top: space(0.5);
329
+ margin-bottom: space(0.5);
330
+ .notifications {
331
+ background: transparent;
332
+ }
333
+ .asd20-notification__content {
334
+ padding-right: 0;
335
+ }
336
+ }
337
+
338
+ &::v-deep .asd20-notification-group--floating {
339
+ margin-left: space(1);
340
+ }
341
+ }
342
+
343
+ &__content {
344
+ position: relative;
345
+ color: var(--website-header__foreground-color);
346
+ padding: space(1) space(1) space(1) space(1);
347
+ &::v-deep .asd20-breadcrumb {
348
+ margin: space(1) 0 0 0;
349
+ }
350
+ &__title-content {
351
+ max-width: 100%;
352
+ }
353
+ }
354
+
355
+ h1 {
356
+ position: relative;
357
+ color: var(--website-header__title-color);
358
+ @include asd20-font(
359
+ 1.5,
360
+ var(--website-typography__font-family-headlines),
361
+ 1.2,
362
+ 700
363
+ );
364
+ margin: space(1) 0 space(0.5) 0;
365
+ }
366
+
367
+ &__meta {
368
+ margin-bottom: space(0.5);
369
+ .asd20-tag-group {
370
+ margin-left: -0.5em;
371
+ }
372
+ .date-prefix {
373
+ @include asd20-font(
374
+ 0.75,
375
+ var(--website-typography__font-family-headlines)
376
+ );
377
+ }
378
+ .asd20-formatted-date {
379
+ @include asd20-font(
380
+ 0.75,
381
+ var(--website-typography__font-family-headlines)
382
+ );
383
+ text-transform: uppercase;
384
+ }
385
+ }
386
+
387
+ &__lead {
388
+ @include asd20-font(1, var(--website-typography__font-family-body));
389
+ &::v-deep a {
390
+ color: var(--website-header__foreground-color);
391
+ }
392
+ }
393
+
394
+ &__call-to-action {
395
+ margin: space(-1) space(2) space(-1) space(1);
396
+ z-index: 1;
397
+ display: flex;
398
+ .asd20-button {
399
+ box-sizing: border-box;
400
+ flex-grow: 1;
401
+ max-width: 40vw;
402
+ min-height: space(2);
403
+ font-size: 0.875rem !important;
404
+ background-color: var(
405
+ --website-header__button-background-color,
406
+ var(--color__accent)
407
+ );
408
+ color: var(
409
+ --website-header__button-foreground-color,
410
+ var(--color__accent-t100)
411
+ );
412
+
413
+ box-shadow: 2px 2px 2px rgb(50, 50, 50);
414
+ &:hover,
415
+ &:focus {
416
+ background-color: var(
417
+ --website-header__button-hover-background-color,
418
+ var(--color__accent-s10)
419
+ );
420
+ color: var(
421
+ --website-header__button-hover-foreground-color,
422
+ var(--color__accent-t100)
423
+ );
424
+ }
425
+
426
+ &:not(:last-child) {
427
+ margin-right: space(0.5);
428
+ }
429
+ }
430
+ }
431
+
432
+ &__image {
433
+ img {
434
+ width: 100%;
435
+ max-height: 600px;
436
+ border-top: 10px solid var(--color__accent);
437
+ }
438
+ }
439
+ &--has-cta {
440
+ .asd20-image-header__content {
441
+ // padding-bottom: space(2);
442
+ }
443
+ }
444
+ }
445
+
446
+ @media (min-width: 768px) {
447
+ .asd20-image-header {
448
+ &__main {
449
+ position: relative;
450
+ min-height: 500px;
451
+ }
452
+ .add-fade {
453
+ &::before {
454
+ content: '';
455
+ height: auto;
456
+ display: block;
457
+ position: absolute;
458
+ z-index: 0;
459
+ top: 0;
460
+ bottom: auto;
461
+ left: 0;
462
+ width: 100%;
463
+ height: 100%;
464
+ background: linear-gradient(
465
+ 70deg,
466
+ rgba(6, 11, 31, 0.7) 10%,
467
+ rgba(6, 11, 31, 0.5) 40%,
468
+ transparent 70%
469
+ );
470
+ }
471
+ }
472
+ &__content {
473
+ position: absolute;
474
+ padding: space(1) space(3) space(1) space(3);
475
+ min-height: 300px;
476
+ top: 0;
477
+ right: 0;
478
+ left: 0;
479
+ }
480
+ &__title-content {
481
+ max-width: 50%;
482
+ }
483
+
484
+ &::after {
485
+ top: space(5);
486
+ bottom: space(-2);
487
+ right: space(0);
488
+ left: space(4);
489
+ }
490
+
491
+ &__image {
492
+ img {
493
+ width: 100%;
494
+ height: 100%;
495
+ max-height: inherit;
496
+ object-fit: cover;
497
+ border-top: none;
498
+ min-height: 500px;
499
+ }
500
+ }
501
+ h1 {
502
+ @include asd20-font(
503
+ 2.5,
504
+ var(--website-typography__font-family-headlines),
505
+ 1.2,
506
+ 700
507
+ );
508
+ }
509
+
510
+ &__top {
511
+ padding: 0 space(3);
512
+ z-index: 5;
513
+ }
514
+
515
+ &__call-to-action {
516
+ margin: space(-1) 60vw space(-1) space(3);
517
+ .asd20-button {
518
+ font-size: 1rem !important;
519
+ }
520
+ }
521
+ }
522
+ }
523
+
524
+ @media (min-width: 1024px) {
525
+ .asd20-image-header {
526
+ &::v-deep .asd20-picker {
527
+ display: flex;
528
+ margin: space(1) auto space(1) 0;
529
+ }
530
+
531
+ &::v-deep .asd20-district-logo {
532
+ height: space(1.5);
533
+ margin: space(1) auto space(1) 0;
534
+ display: block;
535
+ --fill-one: var(--color__primary);
536
+ --fill-two: var(--color__secondary-t30);
537
+ }
538
+ &__image {
539
+ max-height: 60vh;
540
+ }
541
+ &__tools {
542
+ flex-direction: row-reverse;
543
+ margin-top: space(1.5);
544
+ .asd20-breadcrumb,
545
+ .back {
546
+ margin: 0 !important;
547
+ // order: 1;
548
+ }
549
+ .asd20-language-loader {
550
+ order: 2;
551
+ }
552
+ }
553
+
554
+ .back {
555
+ padding: 0;
556
+ }
557
+ }
558
+ }
559
+ </style>
@@ -6,7 +6,8 @@
6
6
  (formattedPrimaryMessages.length > 0 &&
7
7
  primaryMessages[0].bodyContent &&
8
8
  primaryMessages[0].bodyContent !== '<p></p>') ||
9
- formattedPrimaryMessages.length > 1 || forceDisplay
9
+ formattedPrimaryMessages.length > 1 ||
10
+ forceDisplay
10
11
  "
11
12
  >
12
13
  <slot name="before"></slot>
@@ -23,6 +24,7 @@
23
24
  v-for="(messaging, index) in formattedPrimaryMessages"
24
25
  :key="index"
25
26
  v-bind="messaging"
27
+ :fullscreen="fullscreen"
26
28
  ></asd20-messaging>
27
29
  </section>
28
30
 
@@ -34,6 +36,7 @@
34
36
  v-for="(messaging, index) in formattedSecondaryMessages"
35
37
  :key="index"
36
38
  v-bind="messaging"
39
+ :fullscreen="fullscreen"
37
40
  ></asd20-messaging>
38
41
  </section>
39
42
  <slot name="default"></slot>
@@ -71,6 +74,7 @@ export default {
71
74
  grid: { type: Boolean, default: false },
72
75
  tag: { type: String, default: 'main' },
73
76
  forceDisplay: { type: Boolean, default: false },
77
+ fullscreen: { type: Boolean, default: false },
74
78
  },
75
79
 
76
80
  computed: {
@@ -78,6 +82,7 @@ export default {
78
82
  return {
79
83
  'asd20-page-content': true,
80
84
  'asd20-page-content--grid': this.grid,
85
+ 'asd20-page-content--fullscreen': this.fullscreen,
81
86
  }
82
87
  },
83
88
  formattedPrimaryMessages() {
@@ -110,7 +115,7 @@ export default {
110
115
 
111
116
  .asd20-page-content {
112
117
  .notification-group--inline {
113
- margin: space(2) space(1) space(0) space(1);
118
+ margin: space(2) space(1) space(2) space(1);
114
119
  }
115
120
 
116
121
  .primary-messaging-section,
@@ -122,9 +127,9 @@ export default {
122
127
  background: var(--color__tertiary);
123
128
  }
124
129
 
125
- .asd20-messaging:not(:last-child) {
126
- margin-bottom: space(2);
127
- }
130
+ // .asd20-messaging:not(:last-child) {
131
+ // margin-bottom: space(2);
132
+ // }
128
133
 
129
134
  &--grid {
130
135
  .primary-messaging-section,
@@ -145,16 +150,34 @@ export default {
145
150
  &::v-deep .omitMessageTitle .lead {
146
151
  display: none;
147
152
  }
153
+ &--fullscreen {
154
+ .primary-messaging-section,
155
+ .secondary-messaging-section {
156
+ // --minimum-column-width: 320px;
157
+ --gutter: #{space(1)};
158
+ display: block;
159
+ margin: calc(var(--gutter) * -1);
160
+
161
+ &::v-deep > * {
162
+ // flex: 1 1 var(--minimum-column-width);
163
+ // margin: var(--gutter) !important;
164
+ }
165
+ }
166
+ }
148
167
  }
149
168
 
150
169
  @media (min-width: 1024px) {
151
170
  .asd20-page-content {
152
171
  .notification-group--inline {
153
- margin: space(2) space(3) space(-2) space(3);
172
+ margin: space(2) space(3) space(0) space(3);
154
173
  }
155
174
  .primary-messaging-section,
156
175
  .secondary-messaging-section {
157
176
  padding: space(2) space(3);
177
+ &::v-deep > * {
178
+ // flex: 1 1 var(--minimum-column-width);
179
+ margin: space(1) !important;
180
+ }
158
181
  }
159
182
  }
160
183
  }
@@ -86,6 +86,7 @@ export default {
86
86
  width: 50vw;
87
87
  color: var(--website-homepage-header__button-foreground-color);
88
88
  background: var(--website-homepage-header__button-background-color);
89
+ border: none;
89
90
  &:hover {
90
91
  color: var(--website-homepage-header__button-hover-foreground-color);
91
92
  background: var(--website-homepage-header__button-hover-background-color);
@@ -174,7 +175,6 @@ export default {
174
175
  );
175
176
  flex-direction: row;
176
177
  width: inherit;
177
- border: none;
178
178
  }
179
179
  }
180
180
  }
@@ -23,7 +23,8 @@ const wrapper = {
23
23
  pageQueryResult,
24
24
  keywords: '',
25
25
  selectedCategories: [],
26
- categoryOptions: []
26
+ categoryOptions: [],
27
+ languageCode: 'en',
27
28
  }),
28
29
 
29
30
  computed: {
@@ -67,6 +68,8 @@ stories.add(
67
68
  :search-open.sync="searchOpen"
68
69
  :keywords.sync="keywords"
69
70
  :selected-categories.sync="selectedCategories"
71
+ :languageCode.sync="languageCode"
72
+
70
73
  @announcements-in-view="loadAnnouncements"
71
74
  @stories-in-view="loadStories"
72
75
  @events-in-view="loadEvents"
@@ -17,7 +17,12 @@ const wrapper = {
17
17
  Asd20ArticleListTemplate,
18
18
  },
19
19
 
20
- data: () => ({ pageQueryResult, keywords: '', selectedCategories: [] }),
20
+ data: () => ({
21
+ pageQueryResult,
22
+ keywords: '',
23
+ selectedCategories: [],
24
+ languageCode: 'en',
25
+ }),
21
26
 
22
27
  computed: {
23
28
  activeNotificationsByType() {
@@ -66,6 +71,7 @@ stories.add(
66
71
  :search-open.sync="searchOpen"
67
72
  :keywords.sync="keywords"
68
73
  :selected-categories.sync="selectedCategories"
74
+ :languageCode.sync="languageCode"
69
75
 
70
76
  @announcements-in-view="loadAnnouncements"
71
77
  @stories-in-view="loadStories"