refactor(traffic): align content

This commit is contained in:
Sergey Andrievskiy 2019-06-22 19:56:53 +03:00
parent 082f72b441
commit c2f6c03ae6
4 changed files with 59 additions and 71 deletions

View file

@ -1,16 +1,9 @@
<div class="traffic-bar"> <span class="value-prev caption">{{ barData.prevDate }}</span>
<div class="period-from">{{ barData.prevDate }}</div> <div class="progress-line-container" [style.height.%]="barData.prevValue">
<div class="vertical-progress-bar"> <div class="progress-line-prev"></div>
<div class="progress-line"
[style.height.%]="barData.prevValue">
</div>
</div>
<div class="vertical-progress-bar">
<div class="progress-line"
[style.height.%]="barData.nextValue"
[class.success]="successDelta"
[class.failure]="!successDelta">
</div>
</div>
<div class="period-to">{{ barData.nextDate }}</div>
</div> </div>
<div class="progress-line-container" [style.height.%]="barData.nextValue">
<div class="progress-line-now" [class.success]="successDelta" [class.failure]="!successDelta">
</div>
</div>
<span class="value-now caption">{{ barData.nextDate }}</span>

View file

@ -1,49 +1,54 @@
@import '../../../../../@theme/styles/themes'; @import '../../../../../@theme/styles/themes';
@include nb-install-component() { @include nb-install-component() {
height: 100%; display: flex;
align-items: flex-end;
height: nb-theme(list-item-line-height);
max-width: 7rem;
.traffic-bar { .value-prev,
display: flex; .value-now {
align-self: stretch; flex: 1;
position: relative; }
.progress-line-container {
flex: 1;
margin-bottom: 0.1875rem;
}
.progress-line-prev,
.progress-line-now {
height: 100%; height: 100%;
width: 0.7rem;
}
> * { .progress-line-prev {
margin-left: 0.5rem; background-color: nb-theme(border-basic-color-3);
@include nb-ltr {
margin-left: auto;
margin-right: 0.25rem;
}
@include nb-rtl {
margin-left: 0.25rem;
margin-right: auto;
} }
} }
.period-from, .period-to { .progress-line-now {
align-self: flex-end; @include nb-ltr {
font-size: 1rem; margin-left: 0.25rem;
line-height: 0.8; margin-right: auto;
} }
@include nb-rtl {
margin-left: auto;
margin-right: 0.25rem;
}
.period-from { &.success {
position: absolute; background-color: nb-theme(color-success-default);
@include nb-ltr(right, 100%); }
@include nb-rtl(left, 100%); &.failure {
bottom: 0; background-color: nb-theme(color-danger-default);
white-space: nowrap;
}
.vertical-progress-bar {
height: 100%;
width: 0.7rem;
transform: rotate(180deg);
.progress-line {
background-color: nb-theme(border-basic-color-3);
width: 100%;
&.success {
background-color: nb-theme(color-success-default);
}
&.failure {
background-color: nb-theme(color-danger-default);
}
} }
} }
} }

View file

@ -1,7 +1,7 @@
<nb-list> <nb-list>
<nb-list-item class="item" *ngFor="let item of frontCardData; trackBy: trackByDate"> <nb-list-item class="item" *ngFor="let item of frontCardData; trackBy: trackByDate">
<span class="caption">{{ item.date }}</span> <span>{{ item.date }}</span>
<span>{{ item.value }}</span> <span clsas="value">{{ item.value }}</span>
<span class="delta" [class.up]="item.delta.up" [class.down]="!item.delta.up"> <span class="delta" [class.up]="item.delta.up" [class.down]="!item.delta.up">
<nb-icon [icon]="item.delta.up ? 'arrow-up' : 'arrow-down'" pack="eva"></nb-icon> <nb-icon [icon]="item.delta.up ? 'arrow-up' : 'arrow-down'" pack="eva"></nb-icon>
{{ item.delta.value }}% {{ item.delta.value }}%

View file

@ -5,29 +5,23 @@
@include nb-install-component() { @include nb-install-component() {
overflow: auto; overflow: auto;
nb-card-body {
padding: 0;
display: flex;
flex-direction: column;
}
.item { .item {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
height: 4.5rem;
> * {
flex: 1;
}
&:first-child { &:first-child {
border-top: none; border-top: none;
} }
}
> * { .value,
flex: 2; .delta {
} text-align: center;
ngx-traffic-bar {
flex: 1;
}
} }
.delta { .delta {
@ -41,10 +35,6 @@
&.up { &.up {
color: nb-theme(color-success-default); color: nb-theme(color-success-default);
} }
nb-icon ::ng-deep svg {
vertical-align: top;
}
} }
@include media-breakpoint-down(is) { @include media-breakpoint-down(is) {