Extract VSF drawer detail into standalone layout page

This commit is contained in:
2026-05-21 12:02:17 +02:00
parent 2a58f9228b
commit 100b5422da
3 changed files with 74 additions and 95 deletions
+1
View File
@@ -66,6 +66,7 @@
<li><a href="./patterns/company-card.html">Company Card</a></li>
<li><a href="./patterns/vsf-card-listen-seite.html">VSF Card Listen Seite</a></li>
<li><a href="./patterns/vsf-card-listen-fundamentalanalyse-mobile.html">VSF Card Listen Fundamentalanalyse Mobile</a></li>
<li><a href="./patterns/vsf-card-listen-fundamentalanalyse-drawer.html">VSF Card Listen Fundamentalanalyse Drawer</a></li>
</ul>
</section>
@@ -0,0 +1,63 @@
<!doctype html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Styleguide VSF Card Listen Seite Fundamentalanalyse Drawer</title>
<link rel="stylesheet" href="../styleguide.css">
</head>
<body>
<h1 class="sg-main-heading">Layout VSF Fundamentalanalyse Drawer</h1>
<section class="sg-card-list-page" aria-label="VSF Fundamentalanalyse Drawer Seite">
<div class="sg-navigation-card-layout">
<div class="sg-navigation-card-block">
<article class="sg-card" data-component="card" data-pattern="navigation-card" aria-label="Navigation Zurück zur Liste oben">
<div class="sg-card-segment sg-card-segment--body" data-component-part="card-body" data-pattern-part="navigation-card-segment">
<div class="sg-navigation-card-center">
<a class="sg-hyperlink" href="./vsf-card-listen-seite.html" data-component="hyperlink">zurück zur Liste</a>
</div>
</div>
</article>
</div>
</div>
<article class="sg-card sg-vsf-drawer-card" data-component="card" data-pattern="card" aria-label="Card Western Digital Corporation">
<header class="sg-card-segment sg-card-segment--header sg-card-segment--darkblue" data-pattern-part="card-header">
<h2 class="sg-heading-h2 sg-vsf-drawer-object-card__heading">Western Digital Corporation</h2>
</header>
<div class="sg-card-segment sg-card-segment--body sg-vsf-drawer-card__content" data-pattern-part="card-body">
<div class="sg-text-layout-pattern__sample sg-text-layout-pattern__two-column" data-pattern-part="text-block-two-column">
<p class="sg-body sg-text-layout-pattern__column">
Ticker: WDC<br>
Region: Amerika<br>
Sub-Region: Nordamerika<br>
Land: Vereinigte Staaten von Amerika
</p>
<p class="sg-body sg-text-layout-pattern__column">
ISIN: US9581021055<br>
Industrie: Computer Hardware
</p>
</div>
</div>
<footer class="sg-card-segment sg-card-segment--body sg-vsf-drawer-card__actions-segment" data-pattern-part="card-actions">
<button class="sg-interaction-element sg-button" type="button">Geschäftsmodell</button>
</footer>
</article>
<div class="sg-navigation-card-layout">
<div class="sg-navigation-card-block">
<article class="sg-card" data-component="card" data-pattern="navigation-card" aria-label="Navigation Zurück zur Liste unten">
<div class="sg-card-segment sg-card-segment--body" data-component-part="card-body" data-pattern-part="navigation-card-segment">
<div class="sg-navigation-card-center">
<a class="sg-hyperlink" href="./vsf-card-listen-seite.html" data-component="hyperlink">zurück zur Liste</a>
</div>
</div>
</article>
</div>
</div>
</section>
</body>
</html>
+3 -88
View File
@@ -657,6 +657,7 @@
</div>
</footer>
</article>
<div class="sg-navigation-card-layout sg-card-list-page__navigation">
<div class="sg-navigation-card-block">
<article class="sg-card" data-component="card" data-pattern="navigation-card" aria-label="Navigations-Card">
<div class="sg-card-segment sg-card-segment--body" data-component-part="card-body" data-pattern-part="navigation-card-segment">
@@ -667,59 +668,8 @@
</article>
</div>
</div>
</div>
</section>
<aside class="sg-card-list-page-drawer" aria-label="Fundamentalanalyse" aria-hidden="true" data-open="false">
<div class="sg-card-list-page-drawer__content">
<div class="sg-navigation-card-layout">
<div class="sg-navigation-card-block">
<article class="sg-card" data-component="card" data-pattern="navigation-card" aria-label="Navigation Schliessen oben">
<div class="sg-card-segment sg-card-segment--body" data-component-part="card-body" data-pattern-part="navigation-card-segment">
<div class="sg-navigation-card-center">
<button class="sg-interaction-element sg-hyperlink" type="button" data-drawer-close>schliessen</button>
</div>
</div>
</article>
</div>
</div>
<article class="sg-card sg-vsf-drawer-card" data-component="card" data-pattern="card" aria-label="Card Western Digital Corporation">
<header class="sg-card-segment sg-card-segment--header sg-card-segment--darkblue" data-pattern-part="card-header">
<h2 class="sg-heading-h2 sg-vsf-drawer-object-card__heading">Western Digital Corporation</h2>
</header>
<div class="sg-card-segment sg-card-segment--body sg-vsf-drawer-card__content" data-pattern-part="card-body">
<div class="sg-text-layout-pattern__sample sg-text-layout-pattern__two-column" data-pattern-part="text-block-two-column">
<p class="sg-body sg-text-layout-pattern__column">
Ticker: WDC<br>
Region: Amerika<br>
Sub-Region: Nordamerika<br>
Land: Vereinigte Staaten von Amerika
</p>
<p class="sg-body sg-text-layout-pattern__column">
ISIN: US9581021055<br>
Industrie: Computer Hardware
</p>
</div>
</div>
<footer class="sg-card-segment sg-card-segment--body sg-vsf-drawer-card__actions-segment" data-pattern-part="card-actions">
<button class="sg-interaction-element sg-button" type="button">Geschäftsmodell</button>
</footer>
</article>
<div class="sg-navigation-card-layout">
<div class="sg-navigation-card-block">
<article class="sg-card" data-component="card" data-pattern="navigation-card" aria-label="Navigation Schliessen unten">
<div class="sg-card-segment sg-card-segment--body" data-component-part="card-body" data-pattern-part="navigation-card-segment">
<div class="sg-navigation-card-center">
<button class="sg-interaction-element sg-hyperlink" type="button" data-drawer-close>schliessen</button>
</div>
</div>
</article>
</div>
</div>
</div>
</aside>
<script>
const updateObjectCardGridRowState = () => {
document.querySelectorAll('.sg-object-card-grid').forEach((grid) => {
@@ -977,59 +927,24 @@
updateState();
});
const fundamentalDrawer = document.querySelector('.sg-card-list-page-drawer');
const fundamentalDrawerCloseButtons = document.querySelectorAll('[data-drawer-close]');
const mobileBreakpoint = window.matchMedia('(max-width: 767px)');
const setFundamentalDrawerState = (open) => {
if (!fundamentalDrawer) {
return;
}
fundamentalDrawer.dataset.open = String(open);
fundamentalDrawer.setAttribute('aria-hidden', String(!open));
};
document.querySelectorAll('.sg-object-card__action').forEach((button) => {
if (button.textContent?.trim() !== 'Fundamentalanalyse') {
return;
}
button.dataset.drawerOpenTrigger = 'true';
button.addEventListener('click', () => {
if (mobileBreakpoint.matches) {
window.location.href = './vsf-card-listen-fundamentalanalyse-mobile.html';
return;
}
setFundamentalDrawerState(true);
window.location.href = './vsf-card-listen-fundamentalanalyse-drawer.html';
});
});
fundamentalDrawerCloseButtons.forEach((closeButton) => {
closeButton.addEventListener('click', () => {
setFundamentalDrawerState(false);
});
});
document.addEventListener('keydown', (event) => {
if (event.key === 'Escape') {
setFundamentalDrawerState(false);
}
});
document.addEventListener('click', (event) => {
if (
fundamentalDrawer &&
fundamentalDrawer.dataset.open === 'true' &&
!event.target.closest('.sg-card-list-page-drawer') &&
!event.target.closest('[data-drawer-open-trigger="true"]')
) {
setFundamentalDrawerState(false);
}
if (!event.target.closest('.sg-sandwich-menu-wrap')) {
document.querySelectorAll('.sg-sandwich-menu-wrap').forEach((wrap) => {
const button = wrap.querySelector('.sg-sandwich-button');