Back to .net8.0 api/v4/InfinityQS ApiExplorerSettings Wafer Counter Color Sorting
224 lines
8.9 KiB
JavaScript
224 lines
8.9 KiB
JavaScript
import { action } from "@storybook/addon-actions";
|
|
export default {
|
|
title: "Components/Sidebar",
|
|
// tags: ['autodocs'],
|
|
args: {
|
|
icon: true,
|
|
applicationName: 'Application Name',
|
|
showFooter: true,
|
|
showHeader: true,
|
|
initialCollapse: true,
|
|
termsOfUse: 'https://yourwebsite.com/terms',
|
|
imprint: 'https://yourwebsite.com/imprint',
|
|
privacyPolicy: 'https://yourwebsite.com/privacy-policy',
|
|
copyrightText: `© 1999 - ${new Date().getFullYear()} Infineon Technologies AG`
|
|
},
|
|
argTypes: {
|
|
ifxSidebarNavigationItem: {
|
|
action: 'ifxSidebarNavigationItem',
|
|
description: 'Custom event emitted when a navigation item becomes active on selection',
|
|
},
|
|
ifxSidebarActionItem: {
|
|
action: 'ifxSidebarActionItem',
|
|
description: 'Custom event emitted when an action item is selected',
|
|
},
|
|
ifxSidebarMenu: {
|
|
action: 'ifxSidebarMenu',
|
|
description: 'Custom event emitted when a menu is expanded or closed',
|
|
},
|
|
imprint: {
|
|
if: { arg: 'showFooter', eq: true }
|
|
},
|
|
termsOfUse: {
|
|
if: { arg: 'showFooter', eq: true }
|
|
},
|
|
privacyPolicy: {
|
|
if: { arg: 'showFooter', eq: true }
|
|
},
|
|
},
|
|
};
|
|
const DefaultTemplate = (args) => {
|
|
// Create the sidebar element and attach event listener
|
|
const sidebarElement = document.createElement('ifx-sidebar');
|
|
sidebarElement.setAttribute('application-name', args.applicationName);
|
|
sidebarElement.addEventListener('ifxSidebarNavigationItem', action(`ifxSidebarNavigationItem`));
|
|
sidebarElement.addEventListener('ifxSidebarActionItem', action(`ifxSidebarActionItem`));
|
|
sidebarElement.addEventListener('ifxSidebarMenu', action(`ifxSidebarMenu`));
|
|
sidebarElement.setAttribute('show-header', args.showHeader);
|
|
sidebarElement.setAttribute('show-footer', args.showFooter);
|
|
sidebarElement.setAttribute('initial-collapse', args.initialCollapse);
|
|
sidebarElement.setAttribute('terms-of-use', args.termsOfUse);
|
|
sidebarElement.setAttribute('imprint', args.imprint);
|
|
sidebarElement.setAttribute('privacy-policy', args.privacyPolicy);
|
|
sidebarElement.setAttribute('copyright-text', args.copyrightText);
|
|
const sidebarTitleElement = document.createElement('ifx-sidebar-title');
|
|
sidebarTitleElement.innerHTML = 'Title';
|
|
sidebarElement.appendChild(sidebarTitleElement);
|
|
const items = ["Item One", "Item Two", "Item Three", "Item Four"];
|
|
items.forEach(itemTitle => {
|
|
const itemElement = document.createElement('ifx-sidebar-item');
|
|
itemElement.setAttribute('href', "http://google.com");
|
|
itemElement.setAttribute('target', "_blank");
|
|
itemElement.setAttribute('is-action-item', "false");
|
|
if (args.icon) {
|
|
itemElement.setAttribute('icon', 'image-16');
|
|
}
|
|
itemElement.textContent = itemTitle;
|
|
// Append the item to the sidebar
|
|
sidebarElement.appendChild(itemElement);
|
|
});
|
|
const thirdItem = sidebarElement.querySelectorAll('ifx-sidebar-item')[2];
|
|
thirdItem.setAttribute('active', 'true'); //first submenu item
|
|
const sidebarNewTitleElement = document.createElement('ifx-sidebar-title');
|
|
sidebarNewTitleElement.innerHTML = 'Another Title';
|
|
sidebarElement.appendChild(sidebarNewTitleElement);
|
|
const items2 = ["Item 1", "Item 2", "Item 3", "Item 4"];
|
|
items2.forEach(itemTitle => {
|
|
const itemElement = document.createElement('ifx-sidebar-item');
|
|
itemElement.setAttribute('href', "http://google.com");
|
|
itemElement.setAttribute('target', "_blank");
|
|
itemElement.setAttribute('is-action-item', "false");
|
|
if (args.icon) {
|
|
itemElement.setAttribute('icon', 'image-16');
|
|
}
|
|
itemElement.textContent = itemTitle;
|
|
sidebarElement.appendChild(itemElement);
|
|
});
|
|
return sidebarElement;
|
|
};
|
|
export const Default = DefaultTemplate.bind({});
|
|
const SubmenuTemplate = (args) => {
|
|
// Create the sidebar element and attach event listener
|
|
const sidebarElement = document.createElement('ifx-sidebar');
|
|
sidebarElement.setAttribute('application-name', args.applicationName);
|
|
sidebarElement.addEventListener('ifxSidebarNavigationItem', action('ifxSidebarNavigationItem'));
|
|
sidebarElement.addEventListener('ifxSidebarActionItem', action('ifxSidebarActionItem'));
|
|
sidebarElement.addEventListener('ifxSidebarMenu', action('ifxSidebarMenu'));
|
|
sidebarElement.setAttribute('initial-collapse', args.initialCollapse);
|
|
// Create 3 sections
|
|
for (let i = 0; i < 3; i++) {
|
|
const sectionElement = document.createElement('ifx-sidebar-item');
|
|
sectionElement.textContent = `Header Section ${i + 1}`;
|
|
// In each section, create 3 menu items
|
|
for (let j = 0; j < 3; j++) {
|
|
const menuItemElement = document.createElement('ifx-sidebar-item');
|
|
menuItemElement.setAttribute('icon', args.icon ? 'image-16' : '');
|
|
menuItemElement.textContent = `Menu Item ${j + 1}`;
|
|
// In the first menu item of each section, create 3 submenu items
|
|
if (j === 0) {
|
|
for (let k = 0; k < 3; k++) {
|
|
const subMenuItemElement = document.createElement('ifx-sidebar-item');
|
|
subMenuItemElement.textContent = `Sub Menu Item ${k + 1}`;
|
|
menuItemElement.appendChild(subMenuItemElement);
|
|
}
|
|
}
|
|
sectionElement.appendChild(menuItemElement);
|
|
}
|
|
sidebarElement.appendChild(sectionElement);
|
|
}
|
|
const firstSection = sidebarElement.querySelectorAll('ifx-sidebar-item')[0];
|
|
const firstMenuItem = firstSection.querySelectorAll('ifx-sidebar-item')[0];
|
|
firstMenuItem.querySelectorAll('ifx-sidebar-item')[0].setAttribute('active', 'true'); //first submenu item
|
|
firstMenuItem.querySelectorAll('ifx-sidebar-item')[0].setAttribute('is-action-item', 'false');
|
|
firstMenuItem.querySelectorAll('ifx-sidebar-item')[1].setAttribute('is-action-item', 'true'); //2nd submenu item
|
|
firstMenuItem.querySelectorAll('ifx-sidebar-item')[2].setAttribute('is-action-item', 'true'); //3rd sub menu item
|
|
return sidebarElement;
|
|
};
|
|
export const WithSubmenu = SubmenuTemplate.bind({});
|
|
const NumberIndicatorTemplate = () => `<ifx-sidebar application-name="Application name">
|
|
<ifx-sidebar-item icon="image-16" number-indicator="5">Menu Item</ifx-sidebar-item>
|
|
<ifx-sidebar-item icon="image-16" number-indicator="1">Menu Item</ifx-sidebar-item>
|
|
<ifx-sidebar-item icon="image-16" number-indicator="23">Menu Item</ifx-sidebar-item>
|
|
<ifx-sidebar-item active="false">
|
|
Header Section
|
|
<ifx-sidebar-item icon="image-16" active="false" >
|
|
Second layer
|
|
<ifx-sidebar-item target="_blank" active="false" icon="image-16">
|
|
3rd layer Menu Item
|
|
</ifx-sidebar-item>
|
|
|
|
<ifx-sidebar-item target="_blank" active="false" icon="image-16" value="thisPage">
|
|
This Page
|
|
</ifx-sidebar-item>
|
|
|
|
<ifx-sidebar-item target="_blank" active="false" icon="image-16">
|
|
3rd layer Menu Item
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
|
|
<ifx-sidebar-item icon="image-16" active="false">
|
|
Second layer
|
|
<ifx-sidebar-item target="_blank" icon="image-16" active="false">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
|
|
<ifx-sidebar-item icon="image-16" active="false">
|
|
Second layer
|
|
<ifx-sidebar-item target="_blank" icon="image-16" active="false">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
|
|
|
|
<ifx-sidebar-item>
|
|
Header Section
|
|
<ifx-sidebar-item icon="image-16">
|
|
Menu Item
|
|
<ifx-sidebar-item active="false" is-action-item="false" target="_blank" icon="image-16">
|
|
Sub Menu Item
|
|
</ifx-sidebar-item>
|
|
<ifx-sidebar-item is-action-item="true" icon="image-16" value="thisPage">
|
|
This one too
|
|
</ifx-sidebar-item>
|
|
<ifx-sidebar-item is-action-item="false" target="_blank" icon="image-16">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
<ifx-sidebar-item icon="image-16">
|
|
Menu Item
|
|
<ifx-sidebar-item target="_blank" icon="image-16">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
<ifx-sidebar-item icon="image-16">
|
|
Menu Item
|
|
<ifx-sidebar-item target="_blank" icon="image-16">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
|
|
|
|
<ifx-sidebar-item>
|
|
Header Section
|
|
<ifx-sidebar-item icon="image-16">
|
|
Menu Item
|
|
<ifx-sidebar-item href="http://google.com" target="_blank" icon="image-16">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
<ifx-sidebar-item href="http://google.com" target="_blank" icon="image-16">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
<ifx-sidebar-item href="http://google.com" target="_blank" icon="image-16">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
<ifx-sidebar-item icon="image-16">
|
|
Menu Item
|
|
<ifx-sidebar-item href="http://google.com" target="_blank" icon="image-16">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
<ifx-sidebar-item icon="image-16">
|
|
Menu Item
|
|
<ifx-sidebar-item href="http://google.com" target="_blank" icon="image-16">
|
|
Menu Item
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar-item>
|
|
</ifx-sidebar>`;
|
|
export const WithNumberIndicator = NumberIndicatorTemplate.bind({});
|
|
//# sourceMappingURL=sidebar.stories.js.map
|