Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
176 changes: 147 additions & 29 deletions src/app/views/home/home.component.html
Original file line number Diff line number Diff line change
@@ -1,42 +1,160 @@
<div class="demo-container">
<div class="tab-container ">
<div class="tab-item-container" routerLink="inventory" routerLinkActive #tab1="routerLinkActive" >
<ng-container [ngTemplateOutlet]="tabItemTemplate" [ngTemplateOutletContext]="{ enabled: tab1.isActive, tabName: 'inventory' }"></ng-container>
<div class="demo-container" #fullscreenElement [class.is-fullscreen]="isFullscreen">
Comment thread
mddragnev marked this conversation as resolved.
Outdated
<div class="tabs-info-wrapper-element">
<div class="tab-container" [class.hidden]="isFullscreen">
<div
class="tab-item-container"
routerLink="inventory"
routerLinkActive
#tab1="routerLinkActive"
>
<ng-container
[ngTemplateOutlet]="tabItemTemplate"
[ngTemplateOutletContext]="{
enabled: tab1.isActive,
tabName: 'inventory'
}"
></ng-container>
</div>
<div
class="tab-item-container"
routerLink="hr-portal"
routerLinkActive
#tab2="routerLinkActive"
>
<ng-container
[ngTemplateOutlet]="tabItemTemplate"
[ngTemplateOutletContext]="{
enabled: tab2.isActive,
tabName: 'hr-portal'
}"
></ng-container>
</div>
<div
class="tab-item-container"
routerLink="finance"
routerLinkActive
#tab3="routerLinkActive"
>
<ng-container
[ngTemplateOutlet]="tabItemTemplate"
[ngTemplateOutletContext]="{
enabled: tab3.isActive,
tabName: 'finance'
}"
></ng-container>
</div>
<div
class="tab-item-container"
routerLink="sales"
routerLinkActive
#tab4="routerLinkActive"
>
<ng-container
[ngTemplateOutlet]="tabItemTemplate"
[ngTemplateOutletContext]="{
enabled: tab4.isActive,
tabName: 'sales'
}"
></ng-container>
</div>
<div
class="tab-item-container"
routerLink="fleet"
routerLinkActive
#tab5="routerLinkActive"
>
<ng-container
[ngTemplateOutlet]="tabItemTemplate"
[ngTemplateOutletContext]="{
enabled: tab5.isActive,
tabName: 'fleet'
}"
></ng-container>
</div>
</div>
<div class="tab-item-container" routerLink="hr-portal" routerLinkActive #tab2="routerLinkActive" >
<ng-container [ngTemplateOutlet]="tabItemTemplate" [ngTemplateOutletContext]="{ enabled: tab2.isActive, tabName: 'hr-portal' }"></ng-container>
</div>
<div class="tab-item-container" routerLink="finance" routerLinkActive #tab3="routerLinkActive" >
<ng-container [ngTemplateOutlet]="tabItemTemplate" [ngTemplateOutletContext]="{ enabled: tab3.isActive, tabName: 'finance' }"></ng-container>
</div>
<div class="tab-item-container" routerLink="sales" routerLinkActive #tab4="routerLinkActive" >
<ng-container [ngTemplateOutlet]="tabItemTemplate" [ngTemplateOutletContext]="{ enabled: tab4.isActive, tabName: 'sales' }"></ng-container>
</div>
<div class="tab-item-container" routerLink="fleet" routerLinkActive #tab5="routerLinkActive" >
<ng-container [ngTemplateOutlet]="tabItemTemplate" [ngTemplateOutletContext]="{ enabled: tab5.isActive, tabName: 'fleet' }"></ng-container>

<div class="current-tab-info-wrapper">
Comment thread
mddragnev marked this conversation as resolved.
Outdated
<ng-container
[ngTemplateOutlet]="tabItemInfoTemplate"
*ngIf="tab1.isActive"
[ngTemplateOutletContext]="{ tabName: 'inventory' }"
></ng-container>
<ng-container
[ngTemplateOutlet]="tabItemInfoTemplate"
*ngIf="tab2.isActive"
[ngTemplateOutletContext]="{ tabName: 'hr-portal' }"
></ng-container>
<ng-container
[ngTemplateOutlet]="tabItemInfoTemplate"
*ngIf="tab3.isActive"
[ngTemplateOutletContext]="{ tabName: 'finance' }"
></ng-container>
<ng-container
[ngTemplateOutlet]="tabItemInfoTemplate"
*ngIf="tab4.isActive"
[ngTemplateOutletContext]="{ tabName: 'sales' }"
></ng-container>
<ng-container
[ngTemplateOutlet]="tabItemInfoTemplate"
*ngIf="tab5.isActive"
[ngTemplateOutletContext]="{ tabName: 'fleet' }"
></ng-container>
</div>
</div>

<div class="router-container">
<router-outlet></router-outlet>
</div>
</div>

<ng-template #tabItemTemplate let-enabled="enabled" let-tabName="tabName">
<div #tabItem class="tab-item" [ngClass]="{'tab-item--selected': enabled}">
<div class="tab-header" [ngClass]="{'tab-header--disabled': !enabled}">
{{ tabInfo.get(tabName)?.title }}
<igx-chip [disabled]="!enabled">{{ tabInfo.get(tabName)?.theme }}</igx-chip>
<ng-template #tabItemInfoTemplate let-tabName="tabName">
<div #tabItemInfo class="current-tab-info">
<div class="sample-info">
<div class="tab-header">{{ tabInfo.get(tabName)?.title }}</div>
<div class="tab-description">{{ tabInfo.get(tabName)?.content }}</div>
</div>
<div class="tab-content" [ngClass]="{'tab-content--disabled': !enabled}">
<span>{{ tabInfo.get(tabName)?.content }}</span>
</div>
<div class="tab-actions">
<a class="learn-text" href="{{ tabInfo.get(tabName)?.moreLink }}" (click)="onLinkClick($event)" [ngClass]="{'link--disabled': !enabled}">Learn more</a>
<button igxRipple [igxIconButton]="'contained'" [ngClass]="{'button--disabled': !enabled}" (click)="onDownloadClick($event, tabName)" [igxTooltipTarget]="tooltipRef"><igx-icon name="file_download" family="internal_indigo"></igx-icon></button>

<div class="sample-actions">
<div class="theme-info">Theme: {{ tabInfo.get(tabName)?.theme }}</div>
<div class="theme-info">Mode: {{ tabInfo.get(tabName)?.themeMode }}</div>
<div>
Comment thread
mddragnev marked this conversation as resolved.
Outdated
<button
igxButton="outlined"
class="custom-button"
style="margin-right: 8px"
(click)="onDownloadClick($event, tabName)"
>
<igx-icon family="custom" name="file_download"></igx-icon>
Download
</button>

<button
igxButton="outlined"
class="custom-button"
style="margin-right: 8px"
(click)="onViewMoreClick($event, tabName)"
>
<igx-icon family="custom" name="view_more"></igx-icon>
View More
</button>

<button
igxButton="outlined"
class="custom-button"
(click)="onToggleFullscreen()"
>
<igx-icon family="custom" [name]="isFullscreen ? 'exit_fullscreen' : 'fullscreen'"></igx-icon>
<span>{{ isFullscreen ? 'Exit Fullscreen' : 'Fullscreen' }}</span>
</button>
</div>
</div>
</div>
</ng-template>

<div #tooltipRef="tooltip" igxTooltip>
Download sample.
</div>
<ng-template #tabItemTemplate let-enabled="enabled" let-tabName="tabName">
<div #tabItem class="tab-item" [ngClass]="{ 'tab-item--selected': enabled }">
<div class="tab-header" [ngClass]="{ 'tab-header--disabled': !enabled }">
{{ tabInfo.get(tabName)?.title?.toUpperCase() }}
</div>
</div>
</ng-template>
83 changes: 81 additions & 2 deletions src/app/views/home/home.component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ $custom-icon-button-theme: icon-button-theme(
}

.router-container {
height: 100%;
width: 100%;
overflow: hidden;
display: flex;
Expand All @@ -35,7 +36,6 @@ $custom-icon-button-theme: icon-button-theme(

.tab-container {
width: 100%;
min-height: 132px;
flex-shrink: 0;
padding: 16px;
display: flex;
Expand All @@ -45,11 +45,13 @@ $custom-icon-button-theme: icon-button-theme(
}

.tab-item-container {
width: 100%;
height: 100%;
display: inline-flex;
}

.tab-item {
align-items: center;
height: 100%;
display: flex;
flex-grow: 1;
Expand All @@ -60,7 +62,6 @@ $custom-icon-button-theme: icon-button-theme(
padding: 12px;
cursor: pointer;
user-select: none;
border-bottom: 1px solid var(--ig-gray-300);

&--selected {
border-bottom: 3px solid var(--ig-primary-500);
Expand Down Expand Up @@ -161,3 +162,81 @@ $custom-icon-button-theme: icon-button-theme(
font-family: "aktiv-grotesk", sans-serif;
line-height: 20px;
}

.current-tab-info-wrapper {
width: 100%;
height: 90px;
padding: 20px 24px;
border: 1px solid #D6D6D6;
}

.current-tab-info {
display: flex;
justify-content: space-between;
gap: 2rem;

.sample-info {
height: 58px;
display: flex;
flex-direction: column;
row-gap: 8px;
}

.tab-description {
font-weight: 300;
font-size: 12px;
line-height: 100%;
letter-spacing: 0%;
}

.sample-actions {
display: flex;
gap: 8px;
align-items: center;
flex-wrap: wrap;
line-height: 100%;
font-size: 14px;

.theme-info {
font-weight: 600;
letter-spacing: 0.15px;
height: 40px;
padding-right: 8px;
border-right: 1px solid #D6D6D6;
}

.custom-button {
color: black !important;
border-color: #D6D6D6;
text-transform: unset;

igx-icon {
color: black;
}
}
}

.sample-actions > div {
display: flex;
gap: 0.5rem;
align-items: center;
}
}

:fullscreen {
width: 100vw;
height: 100vh;
overflow: auto;
display: block;
}

:-webkit-full-screen {
width: 100vw;
height: 100vh;
overflow: auto;
background: white;
}

:fullscreen .fullscreen-only-hide {
Comment thread
mddragnev marked this conversation as resolved.
Outdated
display: none;
}
Loading