@asd20/ui-next 2.12.8 → 2.13.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/CHANGELOG.md +14 -0
- package/package.json +3 -4
- package/src/components/molecules/Asd20Swiper/index.vue +47 -38
- package/src/components/organisms/Asd20PageHeader/index.vue +24 -0
- package/src/components/organisms/Asd20SchoolHomepageHeader/index.vue +7 -7
- package/src/components/organisms/Asd20VideoHeader/index.vue +128 -111
- package/src/components/templates/Asd20DetailTemplate/index.vue +11 -1
- package/src/components/templates/Asd20LoginsTemplate/index.vue +22 -39
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.13.1](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.13.0...ui-next-v2.13.1) (2026-07-27)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* correct formatting on logins template ([8a351ea](https://github.com/academydistrict20/asd20-ui-next/commit/8a351ea3c4113b7101c15abb5000937f8299074c))
|
|
9
|
+
|
|
10
|
+
# [2.13.0](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.12.8...ui-next-v2.13.0) (2026-07-22)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* migrate shared carousel to Swiper 12 ([9ba6f7b](https://github.com/academydistrict20/asd20-ui-next/commit/9ba6f7b2a6ec7f1ad72944a7279fefafcf273995))
|
|
16
|
+
|
|
3
17
|
## [2.12.8](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.12.7...ui-next-v2.12.8) (2026-06-22)
|
|
4
18
|
|
|
5
19
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@asd20/ui-next",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "ASD20 UI component library for Vue 3.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,10 +39,9 @@
|
|
|
39
39
|
"date-fns": "^2.30.0",
|
|
40
40
|
"date-fns-tz": "^1.1.7",
|
|
41
41
|
"focus-trap": "^6.9.4",
|
|
42
|
-
"js-cookie": "
|
|
42
|
+
"js-cookie": "3.0.8",
|
|
43
43
|
"lodash": "^4.17.23",
|
|
44
|
-
"swiper": "
|
|
45
|
-
"uuid": "^3.3.2"
|
|
44
|
+
"swiper": "12.2.0"
|
|
46
45
|
},
|
|
47
46
|
"peerDependencies": {
|
|
48
47
|
"vue": "^3.0.0"
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
>
|
|
6
6
|
<button
|
|
7
7
|
ref="prev"
|
|
8
|
+
type="button"
|
|
8
9
|
tabindex="-1"
|
|
9
10
|
title="Previous"
|
|
10
11
|
class="asd20-swiper__arrows__button-prev"
|
|
@@ -13,7 +14,7 @@
|
|
|
13
14
|
</button>
|
|
14
15
|
<div
|
|
15
16
|
ref="swiper"
|
|
16
|
-
class="swiper-container"
|
|
17
|
+
class="swiper swiper-container"
|
|
17
18
|
>
|
|
18
19
|
<div class="swiper-wrapper">
|
|
19
20
|
<slot name="before-wrapper" />
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
</div>
|
|
29
30
|
<button
|
|
30
31
|
ref="next"
|
|
32
|
+
type="button"
|
|
31
33
|
tabindex="-1"
|
|
32
34
|
title="Next"
|
|
33
35
|
class="asd20-swiper__arrows__button-next"
|
|
@@ -38,19 +40,27 @@
|
|
|
38
40
|
</template>
|
|
39
41
|
|
|
40
42
|
<script>
|
|
43
|
+
import Swiper from 'swiper'
|
|
41
44
|
import {
|
|
42
|
-
Swiper,
|
|
43
45
|
A11y,
|
|
46
|
+
Controller,
|
|
44
47
|
Keyboard,
|
|
45
48
|
Pagination,
|
|
46
49
|
Navigation,
|
|
47
50
|
Mousewheel,
|
|
48
|
-
} from 'swiper/
|
|
51
|
+
} from 'swiper/modules'
|
|
49
52
|
import merge from 'lodash/merge'
|
|
50
|
-
import 'swiper/css
|
|
53
|
+
import 'swiper/css'
|
|
54
|
+
import 'swiper/css/pagination'
|
|
51
55
|
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
const swiperModules = [
|
|
57
|
+
A11y,
|
|
58
|
+
Controller,
|
|
59
|
+
Keyboard,
|
|
60
|
+
Pagination,
|
|
61
|
+
Navigation,
|
|
62
|
+
Mousewheel,
|
|
63
|
+
]
|
|
54
64
|
|
|
55
65
|
export default {
|
|
56
66
|
name: 'Asd20Swiper',
|
|
@@ -109,41 +119,40 @@ export default {
|
|
|
109
119
|
recreateSwiper() {
|
|
110
120
|
this.destroySwiper()
|
|
111
121
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
onlyInViewport: true,
|
|
120
|
-
},
|
|
121
|
-
a11y: true,
|
|
122
|
+
const swiperOptions = merge(
|
|
123
|
+
{
|
|
124
|
+
modules: swiperModules,
|
|
125
|
+
preloadImages: false,
|
|
126
|
+
keyboard: {
|
|
127
|
+
enabled: false,
|
|
128
|
+
onlyInViewport: true,
|
|
122
129
|
},
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
)
|
|
130
|
+
a11y: true,
|
|
131
|
+
},
|
|
132
|
+
this.options,
|
|
133
|
+
{
|
|
134
|
+
mousewheel: {
|
|
135
|
+
releaseOnEdges: true,
|
|
136
|
+
sensitivity: 0.5,
|
|
137
|
+
forceToAxis: true,
|
|
138
|
+
},
|
|
139
|
+
controller: {},
|
|
140
|
+
pagination: {
|
|
141
|
+
el: this.$refs.pagination,
|
|
142
|
+
clickable: false,
|
|
143
|
+
},
|
|
144
|
+
navigation: {
|
|
145
|
+
prevEl: this.$refs.prev,
|
|
146
|
+
nextEl: this.$refs.next,
|
|
147
|
+
},
|
|
148
|
+
}
|
|
143
149
|
)
|
|
150
|
+
swiperOptions.controller.control = this.controlled
|
|
151
|
+
|
|
152
|
+
this.swiper = new Swiper(this.$refs.swiper, swiperOptions)
|
|
144
153
|
|
|
145
154
|
// Delay horizontal scrolling and prioritize vertical scrolling
|
|
146
|
-
this.swiper.on('touchMove', event => {
|
|
155
|
+
this.swiper.on('touchMove', (swiper, event) => {
|
|
147
156
|
const { deltaX, deltaY } = event // Track horizontal and vertical scroll movements
|
|
148
157
|
if (Math.abs(deltaY) > Math.abs(deltaX)) {
|
|
149
158
|
// If the vertical scroll is stronger, prevent horizontal scrolling
|
|
@@ -331,7 +340,7 @@ export default {
|
|
|
331
340
|
}
|
|
332
341
|
}
|
|
333
342
|
|
|
334
|
-
.swiper
|
|
343
|
+
.swiper {
|
|
335
344
|
overflow: visible;
|
|
336
345
|
--swiper-theme-color: var(--color__accent);
|
|
337
346
|
}
|
|
@@ -60,6 +60,12 @@
|
|
|
60
60
|
onclick="window.print()"
|
|
61
61
|
></asd20-button>
|
|
62
62
|
</div>
|
|
63
|
+
<div
|
|
64
|
+
v-if="$slots['notification-tools']"
|
|
65
|
+
class="asd20-page-header__notification-tools"
|
|
66
|
+
>
|
|
67
|
+
<slot name="notification-tools" />
|
|
68
|
+
</div>
|
|
63
69
|
</div>
|
|
64
70
|
<div
|
|
65
71
|
id="main"
|
|
@@ -389,6 +395,13 @@ export default {
|
|
|
389
395
|
}
|
|
390
396
|
}
|
|
391
397
|
}
|
|
398
|
+
.asd20-page-header__notification-tools {
|
|
399
|
+
display: flex;
|
|
400
|
+
justify-content: flex-end;
|
|
401
|
+
order: 1;
|
|
402
|
+
width: 100%;
|
|
403
|
+
margin-top: space(0.5);
|
|
404
|
+
}
|
|
392
405
|
|
|
393
406
|
.asd20-language-loader {
|
|
394
407
|
order: 1;
|
|
@@ -639,6 +652,9 @@ export default {
|
|
|
639
652
|
.language-and-tools {
|
|
640
653
|
order: 2;
|
|
641
654
|
}
|
|
655
|
+
.asd20-page-header__notification-tools {
|
|
656
|
+
order: 3;
|
|
657
|
+
}
|
|
642
658
|
.asd20-language-loader {
|
|
643
659
|
order: 2;
|
|
644
660
|
}
|
|
@@ -779,6 +795,14 @@ export default {
|
|
|
779
795
|
.language-and-tools {
|
|
780
796
|
order: 2;
|
|
781
797
|
}
|
|
798
|
+
.asd20-page-header__notification-tools {
|
|
799
|
+
position: absolute;
|
|
800
|
+
top: space(1);
|
|
801
|
+
right: space(0.5);
|
|
802
|
+
order: 3;
|
|
803
|
+
width: auto;
|
|
804
|
+
margin-top: 0;
|
|
805
|
+
}
|
|
782
806
|
.asd20-language-loader {
|
|
783
807
|
order: 2;
|
|
784
808
|
}
|
|
@@ -190,13 +190,13 @@ export default {
|
|
|
190
190
|
& :deep(.notification-group--floating) {
|
|
191
191
|
width: max-content;
|
|
192
192
|
float: right;
|
|
193
|
-
.bell {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
193
|
+
// .bell {
|
|
194
|
+
// z-index: 1000;
|
|
195
|
+
// box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.125) !important;
|
|
196
|
+
// svg {
|
|
197
|
+
// fill: var(--color__accent) !important;
|
|
198
|
+
// }
|
|
199
|
+
// }
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
2
|
+
<header
|
|
3
|
+
v-scroll-track.window
|
|
4
|
+
class="asd20-video-header"
|
|
5
|
+
:class="classes"
|
|
6
|
+
role="banner"
|
|
7
|
+
>
|
|
3
8
|
<!-- SVG Mask Definitions -->
|
|
4
9
|
<svg
|
|
5
10
|
width="0"
|
|
@@ -91,65 +96,63 @@
|
|
|
91
96
|
</defs>
|
|
92
97
|
</svg>
|
|
93
98
|
|
|
94
|
-
<div
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
>
|
|
101
|
-
<div
|
|
102
|
-
v-if="$slots.top"
|
|
103
|
-
class="asd20-video-header__top"
|
|
104
|
-
>
|
|
105
|
-
<slot name="top" />
|
|
106
|
-
</div>
|
|
99
|
+
<div
|
|
100
|
+
v-if="$slots.top"
|
|
101
|
+
class="asd20-video-header__top"
|
|
102
|
+
>
|
|
103
|
+
<slot name="top" />
|
|
104
|
+
</div>
|
|
107
105
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
muted
|
|
117
|
-
playsinline
|
|
118
|
-
preload="none"
|
|
119
|
-
:poster="imageUrl"
|
|
120
|
-
>
|
|
121
|
-
<source
|
|
106
|
+
<div class="video-header-wrapper">
|
|
107
|
+
<div class="white-accent-band">
|
|
108
|
+
<div class="asd20-video-header__masked-content">
|
|
109
|
+
<video
|
|
110
|
+
v-if="loadVideo"
|
|
111
|
+
ref="backgroundVideo"
|
|
112
|
+
class="background-video"
|
|
113
|
+
role="presentation"
|
|
122
114
|
aria-hidden="true"
|
|
123
|
-
|
|
124
|
-
|
|
115
|
+
autoplay
|
|
116
|
+
loop
|
|
117
|
+
muted
|
|
118
|
+
playsinline
|
|
119
|
+
preload="none"
|
|
120
|
+
:poster="imageUrl"
|
|
121
|
+
>
|
|
122
|
+
<source
|
|
123
|
+
aria-hidden="true"
|
|
124
|
+
:src="loadVideo"
|
|
125
|
+
type="video/mp4"
|
|
126
|
+
/>
|
|
127
|
+
</video>
|
|
128
|
+
<img
|
|
129
|
+
v-else
|
|
130
|
+
class="background-image"
|
|
131
|
+
:src="imageUrl"
|
|
132
|
+
:alt="imageCaption"
|
|
133
|
+
decoding="async"
|
|
134
|
+
fetchpriority="high"
|
|
125
135
|
/>
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
:src="imageUrl"
|
|
131
|
-
:alt="imageCaption"
|
|
132
|
-
decoding="async"
|
|
133
|
-
fetchpriority="high"
|
|
134
|
-
/>
|
|
135
|
-
<button
|
|
136
|
-
v-if="videoUrl && !isMobile"
|
|
137
|
-
class="video-toggle-btn"
|
|
138
|
-
:aria-label="
|
|
139
|
-
isPaused ? 'Play background video' : 'Pause background video'
|
|
140
|
-
"
|
|
141
|
-
@click="toggleVideo"
|
|
142
|
-
>
|
|
143
|
-
<!-- Play icon (▶) -->
|
|
144
|
-
<span v-if="isPaused">►</span>
|
|
145
|
-
<!-- Pause icon (⏸) -->
|
|
146
|
-
<span v-else>❙❙</span>
|
|
147
|
-
</button>
|
|
148
|
-
<!-- <div class="scroll-down-indicator"></div> -->
|
|
149
|
-
<slot />
|
|
150
|
-
</header>
|
|
136
|
+
<!-- <div class="scroll-down-indicator"></div> -->
|
|
137
|
+
<slot />
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
151
140
|
</div>
|
|
152
|
-
|
|
141
|
+
|
|
142
|
+
<button
|
|
143
|
+
v-if="videoUrl && !isMobile"
|
|
144
|
+
class="video-toggle-btn"
|
|
145
|
+
:aria-label="
|
|
146
|
+
isPaused ? 'Play background video' : 'Pause background video'
|
|
147
|
+
"
|
|
148
|
+
@click="toggleVideo"
|
|
149
|
+
>
|
|
150
|
+
<!-- Play icon (▶) -->
|
|
151
|
+
<span v-if="isPaused">►</span>
|
|
152
|
+
<!-- Pause icon (⏸) -->
|
|
153
|
+
<span v-else>❙❙</span>
|
|
154
|
+
</button>
|
|
155
|
+
</header>
|
|
153
156
|
</template>
|
|
154
157
|
|
|
155
158
|
<script>
|
|
@@ -237,6 +240,7 @@ export default {
|
|
|
237
240
|
|
|
238
241
|
.video-header-wrapper {
|
|
239
242
|
position: relative;
|
|
243
|
+
width: 100%;
|
|
240
244
|
padding-bottom: 20px;
|
|
241
245
|
background: var(--website-homepage-header__accent);
|
|
242
246
|
mask: url(#video-wrapper-mask-mobile);
|
|
@@ -261,10 +265,19 @@ export default {
|
|
|
261
265
|
flex-direction: column;
|
|
262
266
|
color: asd20-swatch('primary');
|
|
263
267
|
box-sizing: border-box;
|
|
264
|
-
|
|
265
|
-
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
+
|
|
269
|
+
&__masked-content {
|
|
270
|
+
position: relative;
|
|
271
|
+
display: flex;
|
|
272
|
+
flex-shrink: 0;
|
|
273
|
+
flex-direction: column;
|
|
274
|
+
box-sizing: border-box;
|
|
275
|
+
mask: url(#video-header-mask-mobile);
|
|
276
|
+
-webkit-mask: url(#video-header-mask-mobile);
|
|
277
|
+
mask-size: 100% 100%;
|
|
278
|
+
-webkit-mask-size: 100% 100%;
|
|
279
|
+
}
|
|
280
|
+
|
|
268
281
|
.background-video {
|
|
269
282
|
display: none;
|
|
270
283
|
}
|
|
@@ -395,45 +408,51 @@ export default {
|
|
|
395
408
|
}
|
|
396
409
|
|
|
397
410
|
.asd20-video-header {
|
|
398
|
-
|
|
399
|
-
|
|
411
|
+
&__masked-content {
|
|
412
|
+
mask: url(#video-header-mask-desktop);
|
|
413
|
+
-webkit-mask: url(#video-header-mask-desktop);
|
|
400
414
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
415
|
+
&::after {
|
|
416
|
+
content: '';
|
|
417
|
+
height: auto;
|
|
418
|
+
display: block;
|
|
419
|
+
position: absolute;
|
|
420
|
+
z-index: 0;
|
|
421
|
+
top: 0;
|
|
422
|
+
bottom: auto;
|
|
423
|
+
left: 0;
|
|
424
|
+
width: 100%;
|
|
425
|
+
height: 50%;
|
|
426
|
+
background: linear-gradient(
|
|
427
|
+
170deg,
|
|
428
|
+
rgba(6, 11, 31, 0.8) 10%,
|
|
429
|
+
rgba(6, 11, 31, 0) 50%,
|
|
430
|
+
transparent 100%
|
|
431
|
+
);
|
|
432
|
+
}
|
|
419
433
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
434
|
+
.background-video {
|
|
435
|
+
display: block;
|
|
436
|
+
pointer-events: none;
|
|
437
|
+
}
|
|
438
|
+
.background-image {
|
|
439
|
+
display: block;
|
|
440
|
+
z-index: -1;
|
|
441
|
+
width: 100%;
|
|
442
|
+
height: 100vh;
|
|
443
|
+
object-fit: cover;
|
|
444
|
+
}
|
|
431
445
|
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
446
|
+
video {
|
|
447
|
+
z-index: -1;
|
|
448
|
+
width: 100%;
|
|
449
|
+
height: 100vh;
|
|
450
|
+
object-fit: cover;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
.scroll-down-indicator {
|
|
454
|
+
display: block;
|
|
455
|
+
}
|
|
437
456
|
}
|
|
438
457
|
|
|
439
458
|
& :deep(.asd20-district-logo) {
|
|
@@ -451,34 +470,32 @@ export default {
|
|
|
451
470
|
width: 95%;
|
|
452
471
|
display: flex;
|
|
453
472
|
}
|
|
454
|
-
|
|
455
|
-
display: block;
|
|
456
|
-
}
|
|
473
|
+
|
|
457
474
|
.video-toggle-btn {
|
|
458
|
-
display: block;
|
|
459
475
|
position: absolute;
|
|
460
|
-
bottom: 4rem;
|
|
461
476
|
right: 0.5rem;
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
477
|
+
bottom: calc(4rem + 23px);
|
|
478
|
+
z-index: 101;
|
|
479
|
+
display: flex;
|
|
465
480
|
width: 45px;
|
|
466
481
|
height: 45px;
|
|
482
|
+
border: none;
|
|
467
483
|
border-radius: 50%;
|
|
468
|
-
display: flex;
|
|
469
484
|
align-items: center;
|
|
470
485
|
justify-content: center;
|
|
486
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
487
|
+
color: lightgray;
|
|
471
488
|
font-size: 18px;
|
|
472
489
|
cursor: pointer;
|
|
473
490
|
transition: background-color 0.3s ease-in-out;
|
|
474
|
-
}
|
|
475
491
|
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
492
|
+
&:hover {
|
|
493
|
+
background-color: rgba(0, 0, 0, 0.7);
|
|
494
|
+
}
|
|
479
495
|
|
|
480
|
-
|
|
481
|
-
|
|
496
|
+
span {
|
|
497
|
+
line-height: 1;
|
|
498
|
+
}
|
|
482
499
|
}
|
|
483
500
|
}
|
|
484
501
|
}
|
|
@@ -196,11 +196,21 @@ export default {
|
|
|
196
196
|
margin-top: space(2.25);
|
|
197
197
|
.asd20-notification-group--floating {
|
|
198
198
|
position: absolute;
|
|
199
|
-
top:
|
|
199
|
+
top: 3rem;
|
|
200
200
|
right: space(0.5);
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
+
@media (min-width: 768px) {
|
|
205
|
+
.asd20-template-detail {
|
|
206
|
+
.asd20-notification-group--floating {
|
|
207
|
+
position: absolute;
|
|
208
|
+
top: 2.5rem;
|
|
209
|
+
right: space(0.5);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
204
214
|
@media (min-width: 1024px) {
|
|
205
215
|
.asd20-template-detail {
|
|
206
216
|
@include template-desktop;
|
|
@@ -67,11 +67,7 @@
|
|
|
67
67
|
@dismiss="$emit('dismiss-notification', $event)"
|
|
68
68
|
@toggle-all="$emit('toggle-all')"
|
|
69
69
|
/>
|
|
70
|
-
<asd20-list
|
|
71
|
-
class="logins-list"
|
|
72
|
-
multi-column
|
|
73
|
-
:column-width="480"
|
|
74
|
-
>
|
|
70
|
+
<asd20-list class="logins-list" multi-column :column-width="480">
|
|
75
71
|
<asd20-list-item
|
|
76
72
|
v-for="(login, index) in selectedTabLogins.logins"
|
|
77
73
|
:key="index"
|
|
@@ -100,7 +96,9 @@
|
|
|
100
96
|
v-if="login.bodyHtml"
|
|
101
97
|
href="#"
|
|
102
98
|
@click.prevent="selectedLogin = login"
|
|
103
|
-
>
|
|
99
|
+
>
|
|
100
|
+
{{ login.title }} details.
|
|
101
|
+
</a>
|
|
104
102
|
</div>
|
|
105
103
|
</asd20-list-item>
|
|
106
104
|
</asd20-list>
|
|
@@ -117,11 +115,7 @@
|
|
|
117
115
|
class="asd20-login-details-modal"
|
|
118
116
|
@dismiss="selectedLogin = null"
|
|
119
117
|
>
|
|
120
|
-
<asd20-viewport
|
|
121
|
-
v-if="selectedLogin"
|
|
122
|
-
padded
|
|
123
|
-
scrollable
|
|
124
|
-
>
|
|
118
|
+
<asd20-viewport v-if="selectedLogin" padded scrollable>
|
|
125
119
|
<asd20-messaging-group
|
|
126
120
|
:messages="[selectedLogin]"
|
|
127
121
|
></asd20-messaging-group>
|
|
@@ -132,9 +126,7 @@
|
|
|
132
126
|
<slot name="before-footer" />
|
|
133
127
|
|
|
134
128
|
<!-- Quick Links -->
|
|
135
|
-
<asd20-quicklinks-menu
|
|
136
|
-
:quick-links="quickLinks"
|
|
137
|
-
>
|
|
129
|
+
<asd20-quicklinks-menu :quick-links="quickLinks">
|
|
138
130
|
<slot name="quicklinks-menu" />
|
|
139
131
|
</asd20-quicklinks-menu>
|
|
140
132
|
|
|
@@ -193,17 +185,12 @@ export default {
|
|
|
193
185
|
Asd20MessagingGroup,
|
|
194
186
|
},
|
|
195
187
|
mixins: [pageTemplateMixin],
|
|
196
|
-
props: {
|
|
197
|
-
// tabs: { type: Array, default: () => [] },
|
|
198
|
-
// logins: { type: Array, default: () => [] },
|
|
199
|
-
},
|
|
188
|
+
props: {},
|
|
200
189
|
data() {
|
|
201
190
|
return {
|
|
202
191
|
tab: '',
|
|
203
192
|
selectedLogin: null,
|
|
204
193
|
}
|
|
205
|
-
|
|
206
|
-
// this.tabs ? this.tabsList[0].hash : 'one',
|
|
207
194
|
},
|
|
208
195
|
|
|
209
196
|
computed: {
|
|
@@ -250,21 +237,6 @@ export default {
|
|
|
250
237
|
}
|
|
251
238
|
})
|
|
252
239
|
},
|
|
253
|
-
// loginsByTab() {
|
|
254
|
-
// if (!this.tabsList.length || !this.logins.length) return []
|
|
255
|
-
// let logins = []
|
|
256
|
-
// for (let t of this.tabsList) {
|
|
257
|
-
// let loginsByTab = this.logins.filter(l =>
|
|
258
|
-
// l.categoryTitles.includes(t.label)
|
|
259
|
-
// )
|
|
260
|
-
// logins.push({
|
|
261
|
-
// tab: t.label,
|
|
262
|
-
// hash: t.hash,
|
|
263
|
-
// logins: loginsByTab,
|
|
264
|
-
// })
|
|
265
|
-
// }
|
|
266
|
-
// return logins
|
|
267
|
-
// },
|
|
268
240
|
|
|
269
241
|
loginsByTab() {
|
|
270
242
|
if (!this.tabsList.length || !this.logins.length) return []
|
|
@@ -351,8 +323,8 @@ export default {
|
|
|
351
323
|
|
|
352
324
|
.notification-group--floating {
|
|
353
325
|
position: absolute;
|
|
354
|
-
right:
|
|
355
|
-
top:
|
|
326
|
+
right: 0.75rem;
|
|
327
|
+
top: 1.5rem;
|
|
356
328
|
z-index: 101;
|
|
357
329
|
}
|
|
358
330
|
.notification-group--inline {
|
|
@@ -392,14 +364,25 @@ export default {
|
|
|
392
364
|
}
|
|
393
365
|
}
|
|
394
366
|
|
|
367
|
+
@media (min-width: 768px) {
|
|
368
|
+
.asd20-template-logins {
|
|
369
|
+
.notification-group--floating {
|
|
370
|
+
position: absolute;
|
|
371
|
+
right: 1rem;
|
|
372
|
+
top: 4rem;
|
|
373
|
+
z-index: 101;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
395
378
|
@media (min-width: 1024px) {
|
|
396
379
|
.asd20-template-logins {
|
|
397
380
|
margin-left: space(3);
|
|
398
381
|
margin-top: 0;
|
|
399
382
|
.notification-group--floating {
|
|
400
383
|
position: absolute;
|
|
401
|
-
right:
|
|
402
|
-
top:
|
|
384
|
+
right: 3rem;
|
|
385
|
+
top: 3rem;
|
|
403
386
|
}
|
|
404
387
|
.notification-group--inline {
|
|
405
388
|
margin: space(2) space(3) space(1) space(3);
|