This commit is contained in:
leejinho 2020-01-30 08:24:42 +09:00
commit 32cb30834e
19 changed files with 329 additions and 297 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "ucap-webmessenger", "name": "ucap-webmessenger",
"version": "0.0.9", "version": "0.0.10",
"author": { "author": {
"name": "LG CNS", "name": "LG CNS",
"email": "lgucap@lgcns.com" "email": "lgucap@lgcns.com"

View File

@ -4,13 +4,12 @@
</div> </div>
<div class="app-layout-native-title-bar-title">DS Talk</div> <div class="app-layout-native-title-bar-title">DS Talk</div>
<div class="btn-area"> <div class="btn-area">
<ucap-integrated-search-form (search)="onIntegratedSearch($event)" class="input-lineless integrated-search">
</ucap-integrated-search-form>
<div <div
*ngIf="!!loginRes && !!weblink" *ngIf="!!loginRes && !!weblink"
class="app-layout-native-title-bar-link" class="app-layout-native-title-bar-link"
> >
<ucap-integrated-search-form (search)="onIntegratedSearch($event)">
</ucap-integrated-search-form>
<ng-container *ngFor="let link of weblink" [ngSwitch]="link.key"> <ng-container *ngFor="let link of weblink" [ngSwitch]="link.key">
<button <button
mat-icon-button mat-icon-button
@ -147,11 +146,8 @@
></path> ></path>
</svg> </svg>
</button> </button>
<span
*ngIf="(!!weblink && weblink.length > 0) || (updateInfo$ | async)"
class="stroke-bar"
></span>
</div> </div>
<span *ngIf="(!!weblink && weblink.length > 0) || (updateInfo$ | async)" class="stroke-bar"></span>
<ucap-profile-my-profile-widget <ucap-profile-my-profile-widget
[profileImageRoot]="sessionVerinfo.profileRoot" [profileImageRoot]="sessionVerinfo.profileRoot"
[profileImageFile]="getMyProfileImageWidget()" [profileImageFile]="getMyProfileImageWidget()"

View File

@ -25,42 +25,43 @@
} }
.btn-area { .btn-area {
display: flex; display: flex;
flex-wrap: wrap;
margin-left: auto; margin-left: auto;
flex-flow: row; flex-flow: row;
justify-items: center; justify-items: center;
width: calc(100% - 100px); max-width: calc(100% - 100px);
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
position: relative; position: relative;
margin-left: auto; margin-left: auto;
justify-content: flex-end; justify-content: flex-end;
height: 100%; height: 100%;
align-items: center;
.integrated-search {
height: 100%;
display: inline-flex;
align-items: center;
}
.app-layout-native-title-bar-link { .app-layout-native-title-bar-link {
-webkit-box-align: center;
align-items: center; align-items: center;
position: relative; position: relative;
display: flex; display: inline-block;
justify-content: flex-end; min-width: 0;
width: calc(100% - 100px); width: auto;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
transform: translateY(2px);
.stroke-bar {
width: 1px;
height: 20px;
background-color: rgba(256, 256, 256, 0.3);
margin: 0 10px 0 20px;
display: inline-flex;
}
.button { .button {
-webkit-app-region: no-drag; -webkit-app-region: no-drag;
outline: 0; outline: 0;
cursor: pointer; cursor: pointer;
border: none; border: none;
height: 30px; width: 28px;
min-width: 30px; height: 28px;
max-width: 30px; min-width: 28px;
padding: 3px; max-width: 28px;
line-height: 10px; line-height: 10px;
background-color: #ffffff; background-color: #ffffff;
border-radius: 50%; border-radius: 50%;
@ -68,7 +69,8 @@
text-align: center; text-align: center;
font-size: 10px; font-size: 10px;
vertical-align: middle; vertical-align: middle;
margin-left: 16px; margin-left: 10px;
transform: translateY(-2px);
.weblink { .weblink {
display: inline-flex; display: inline-flex;
line-height: 24px; line-height: 24px;
@ -115,7 +117,13 @@
} }
} }
} }
.stroke-bar {
width: 10px;
height: 20px;
border-right: 1px solid rgba(255, 255, 255, 0.3);
margin: 0 10px 0 10px;
display: inline-block;
}
.myprofile-item { .myprofile-item {
-webkit-app-region: no-drag; -webkit-app-region: no-drag;
align-items: center; align-items: center;

View File

@ -38,8 +38,8 @@
> >
<span <span
class="mdi" class="mdi"
[class.mdi-greater-than]="!showLeftDrawer" [class.mdi-chevron-right]="!showLeftDrawer"
[class.mdi-less-than]="showLeftDrawer" [class.mdi-chevron-left]="showLeftDrawer"
></span> ></span>
</button> </button>
</div> </div>

View File

@ -61,7 +61,5 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
justify-items: center; justify-items: center;
.mat-icon { font-size: 1.8em;
font-size: 18px;
}
} }

View File

@ -15,7 +15,6 @@ $tablet-s-width: 768px;
.message-row { .message-row {
width: 100%; width: 100%;
height: 100%; height: 100%;
margin-bottom: 20px;
.date-splitter { .date-splitter {
display: block; display: block;
width: 100%; width: 100%;
@ -26,6 +25,7 @@ $tablet-s-width: 768px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
margin-left: 0; margin-left: 0;
padding-bottom: 20px;
.profile-img { .profile-img {
flex: 0 0 auto; flex: 0 0 auto;
&.thumbnail-mask { &.thumbnail-mask {

View File

@ -4,7 +4,8 @@
perfectScrollbar perfectScrollbar
fxFlexFill fxFlexFill
#psChatContent #psChatContent
[bufferAmount]="10" [bufferAmount]="5"
[compareItems]=""
(psScrollUp)="onScrollup($event)" (psScrollUp)="onScrollup($event)"
(psYReachStart)="onYReachStart($event)" (psYReachStart)="onYReachStart($event)"
(psYReachEnd)="onYReachEnd($event)" (psYReachEnd)="onYReachEnd($event)"

View File

@ -412,12 +412,12 @@ export class MessagesComponent implements OnInit, OnDestroy {
} }
preSwapScroll(useHide: boolean, useSwap: boolean) { preSwapScroll(useHide: boolean, useSwap: boolean) {
if (useSwap && !this.swapped) { // if (useSwap && !this.swapped) {
this.chatMessagesBuffer.nativeElement.innerHTML = this.chatMessagesContainer.nativeElement.innerHTML; // this.chatMessagesBuffer.nativeElement.innerHTML = this.chatMessagesContainer.nativeElement.innerHTML;
this.chatMessagesBuffer.nativeElement.scrollTop = this.chatMessagesContainer.nativeElement.scrollTop; // this.chatMessagesBuffer.nativeElement.scrollTop = this.chatMessagesContainer.nativeElement.scrollTop;
this.chatMessagesBuffer.nativeElement.classList.remove('disappear'); // this.chatMessagesBuffer.nativeElement.classList.remove('disappear');
this.swapped = true; // this.swapped = true;
} // }
if (useHide && !this.hidden) { if (useHide && !this.hidden) {
this.chatMessagesContainer.nativeElement.classList.add('hide'); this.chatMessagesContainer.nativeElement.classList.add('hide');
@ -426,12 +426,12 @@ export class MessagesComponent implements OnInit, OnDestroy {
} }
postSwapScroll(useHide: boolean, useSwap: boolean) { postSwapScroll(useHide: boolean, useSwap: boolean) {
if (useSwap && this.swapped) { // if (useSwap && this.swapped) {
this.chatMessagesBuffer.nativeElement.innerHTML = ''; // this.chatMessagesBuffer.nativeElement.innerHTML = '';
this.chatMessagesBuffer.nativeElement.scrollTop = 0; // this.chatMessagesBuffer.nativeElement.scrollTop = 0;
this.chatMessagesBuffer.nativeElement.classList.add('disappear'); // this.chatMessagesBuffer.nativeElement.classList.add('disappear');
this.swapped = false; // this.swapped = false;
} // }
if (useHide && this.hidden) { if (useHide && this.hidden) {
this.chatMessagesContainer.nativeElement.classList.remove('hide'); this.chatMessagesContainer.nativeElement.classList.remove('hide');
@ -536,7 +536,7 @@ export class MessagesComponent implements OnInit, OnDestroy {
if (this.scrollUpInitalized && this.eventRemained) { if (this.scrollUpInitalized && this.eventRemained) {
this.storeScrollPosition(); this.storeScrollPosition();
this.preSwapScroll(true, true); this.preSwapScroll(false, false);
this.moreEvent.emit(this.eventList[0].seq); this.moreEvent.emit(this.eventList[0].seq);
@ -607,4 +607,10 @@ export class MessagesComponent implements OnInit, OnDestroy {
trackByEvent(index: number, info: Info<EventJson>): number { trackByEvent(index: number, info: Info<EventJson>): number {
return info.seq; return info.seq;
} }
compareItemsFunc = (
item1: Info<EventJson>,
item2: Info<EventJson>
// tslint:disable-next-line: semicolon
): boolean => item1.seq === item2.seq;
} }

View File

@ -1,7 +1,9 @@
<div fxFlex fxLayout="row" class="chatroom-search"> <div fxFlex fxLayout="row" class="chatroom-search">
<div fxLayout="row" fxLayoutAlign="start center" class="input search-form"> <div fxLayout="row" fxLayoutAlign="start center" class="input input-lineless search-form">
<form [formGroup]="fgSearch"> <form [formGroup]="fgSearch">
<i class="material-icons icon-search"> </i> <span class="icon-img">
<i class="mid mdi-magnify"></i>
</span>
<mat-form-field floatLabel="never"> <mat-form-field floatLabel="never">
<input <input
matInput matInput
@ -12,14 +14,6 @@
formControlName="searchInput" formControlName="searchInput"
(keydown.enter)="onKeyDownEnter($event, inputSearch.value)" (keydown.enter)="onKeyDownEnter($event, inputSearch.value)"
/> />
<!-- <button
mat-button
matSuffix
mat-icon-button
aria-label="Clear"
(click)="inputSearch.value = ''; onClickSearchCancel()"
>
-->
<button <button
mat-button mat-button
matSuffix matSuffix
@ -42,22 +36,7 @@
(click)="onClickSearchAndPrev()" (click)="onClickSearchAndPrev()"
class="btn-toggle" class="btn-toggle"
> >
<svg <i class="mid mdi-arrow-up"></i>
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
viewBox="0 0 20 20"
fill="none"
stroke="currentColor"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
class="feather feather-arrow-up"
>
<path d="M3.3,9v6.7c0,0.9,0.7,1.7,1.7,1.7h10c0.9,0,1.7-0.7,1.7-1.7V9" />
<polyline class="st0" points="13.3,6 10,2.7 6.7,6 " />
<line class="st0" x1="10" y1="2.7" x2="10" y2="12.5" />
</svg>
</button> </button>
<button class="icon-button btn-search" (click)="onClickPrevSearch()"> <button class="icon-button btn-search" (click)="onClickPrevSearch()">
<i class="mid mdi-arrow-up"></i> <i class="mid mdi-arrow-up"></i>

View File

@ -1,5 +1,6 @@
$tablet-l-width: 1024px; $tablet-l-width: 1024px;
$tablet-s-width: 768px; $tablet-s-width: 768px;
$search-item-color: #ffffff;
.chatroom-search { .chatroom-search {
display: flex; display: flex;
@ -18,14 +19,17 @@ $tablet-s-width: 768px;
} }
form { form {
display: inline-flex; display: inline-flex;
flex: 0 0 auto; .icon-img {
width: 100%; color: $search-item-color;
}
@media screen and (max-width: #{$tablet-s-width}),
(max-height: 600px) {
.icon-img {
display: none;
}
}
.mat-form-field { .mat-form-field {
flex-flow: row;
flex: 1 1 auto;
width: 70%; width: 70%;
align-items: center;
display: flex;
.mat-form-field-label, .mat-form-field-label,
.mat-hint { .mat-hint {
color: rgba(0, 0, 0, 0.54); color: rgba(0, 0, 0, 0.54);
@ -46,61 +50,6 @@ $tablet-s-width: 768px;
} }
} }
::ng-deep .search-form {
form {
.icon-search {
height: 100%;
display: flex;
align-self: center;
color: #ffffff;
margin-right: 10px;
}
@media screen and (max-width: #{$tablet-s-width}),
(max-height: 600px) {
.icon-search {
display: none;
}
}
.mat-form-field-appearance-legacy {
.mat-form-field-wrapper {
color: #ffffff;
width: 100%;
padding-bottom: 0.8em;
.mat-form-field-infix {
.mat-input-element {
font-size: 1em;
}
}
.mat-form-field-suffix {
button {
position: relative;
transform: translateY(2px);
.mat-button-wrapper {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
font-size: 1.2em;
}
}
}
.mat-form-field-label {
color: rgba(255, 255, 255, 0.7) !important;
font-size: 1em;
}
.mat-form-field-underline {
height: 0;
.mat-form-field-ripple {
top: 6px;
height: 1px;
overflow: hidden;
display: none;
}
}
}
}
}
}
::ng-deep .chat-search { ::ng-deep .chat-search {
margin: 0 4px 4px; margin: 0 4px 4px;
padding: 6px; padding: 6px;
@ -111,40 +60,12 @@ $tablet-s-width: 768px;
.search-form { .search-form {
form { form {
display: flex; display: flex;
i { icon-img {
display: none; display: none;
} }
} }
} }
} }
.search-form {
form {
display: flex;
.mat-form-field {
.mat-form-field-wrapper {
padding: 0;
display: flex;
flex: 1 1 auto;
.mat-form-field-infix {
border: 0;
padding: 0;
width: auto;
input {
margin: 0;
}
.mat-form-field-label-wrapper {
top: 0;
.mat-form-field-label {
top: 0;
font-size: 0.9em;
}
}
}
}
}
}
}
} }
::ng-deep .chatroom-search { ::ng-deep .chatroom-search {
@ -161,22 +82,18 @@ $tablet-s-width: 768px;
align-self: center; align-self: center;
width: 30px; width: 30px;
height: 30px; height: 30px;
color: #ffffff; color: $search-item-color;
} }
} }
} }
.btn-close-searchbox { .btn-close-searchbox {
width: 36px; width: 36px;
height: 100%; height: 100%;
//background: #0367a6; stroke: $search-item-color;
stroke: #ffffff;
border: none; border: none;
display: flex; display: flex;
justify-content: center; justify-content: center;
justify-items: center; justify-items: center;
svg {
stroke: #ffffff;
}
} }
} }

View File

@ -13,3 +13,89 @@ textarea {
-webkit-appearance: none; -webkit-appearance: none;
outline: none; outline: none;
} }
.input-lineless {
form {
display: flex;
flex: 0 0 auto;
width: 100%;
.mat-form-field-appearance-legacy {
.mat-form-field-wrapper {
color: #ffffff;
width: 100%;
.mat-form-field-infix {
.mat-input-element {
font-size: 1em;
}
}
.mat-form-field-suffix {
button {
position: relative;
transform: translateY(2px);
.mat-button-wrapper {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
font-size: 1.2em;
}
}
}
.mat-form-field-label {
color: rgba(255, 255, 255, 0.7) !important;
font-size: 1em;
}
.mat-form-field-underline {
height: 0;
.mat-form-field-ripple {
top: 6px;
height: 1px;
overflow: hidden;
display: none;
}
}
}
}
.icon-img {
align-items: center;
justify-content: center;
height: 100%;
display: flex;
align-self: center;
margin-right: 10px;
}
}
.mat-form-field {
flex-flow: row;
flex: 1 1 auto;
width: 90%;
align-items: center;
display: flex;
.mat-form-field-wrapper {
padding: 0;
display: flex;
flex: 1 1 auto;
.mat-form-field-infix {
border: 0;
padding: 0;
width: auto;
input {
margin: 0;
}
.mat-form-field-label-wrapper {
top: 0;
.mat-form-field-label {
top: 0;
color: rgba(255, 255, 255, 0.7) !important;
font-size: 0.9em;
}
}
}
.mat-form-field-underline {
display: none;
}
}
}
}

View File

@ -25,7 +25,8 @@ mat-icon {
} }
} }
.icon-button { .icon-button,
.icon-img {
display: flex; display: flex;
justify-content: center; justify-content: center;
justify-items: center; justify-items: center;

View File

@ -26,6 +26,7 @@
matTooltip="{{ 'common.messages.zoomReset' | translate }}" matTooltip="{{ 'common.messages.zoomReset' | translate }}"
matTooltipPosition="below" matTooltipPosition="below"
aria-label="" aria-label=""
(click)="onClickZoomReset()"
> >
<!--<mat-icon>settings_overscan</mat-icon>--> <!--<mat-icon>settings_overscan</mat-icon>-->
@ -51,6 +52,7 @@
matTooltip="{{ 'common.messages.zoomOut' | translate }}" matTooltip="{{ 'common.messages.zoomOut' | translate }}"
matTooltipPosition="below" matTooltipPosition="below"
aria-label="" aria-label=""
(click)="onClickZoomOut()"
> >
<!--<mat-icon>zoom_out</mat-icon>--> <!--<mat-icon>zoom_out</mat-icon>-->
<svg <svg
@ -75,6 +77,7 @@
matTooltip="{{ 'common.messages.zoomIn' | translate }}" matTooltip="{{ 'common.messages.zoomIn' | translate }}"
matTooltipPosition="below" matTooltipPosition="below"
aria-label="" aria-label=""
(click)="onClickZoomIn()"
> >
<!--<mat-icon>zoom_in</mat-icon>--> <!--<mat-icon>zoom_in</mat-icon>-->
<svg <svg
@ -162,7 +165,14 @@
fxFlexFill fxFlexFill
fxLayoutAlign="center center" fxLayoutAlign="center center"
> >
<img *ngIf="fileDownloadUrl" [src]="fileDownloadUrl" /> <img
#downloadImage
*ngIf="fileDownloadUrl"
[src]="fileDownloadUrl"
[style.width]="(zoomRatio / 100) * naturalWidth + 'px'"
[style.height]="'auto'"
(load)="onLoadFileDownloadUrl(downloadImage)"
/>
</div> </div>
</div> </div>
</div> </div>

View File

@ -39,11 +39,15 @@
height: calc(100% - 60px); height: calc(100% - 60px);
.ucap-image-viewer-image-wrapper { .ucap-image-viewer-image-wrapper {
position: relative;
width: 100%;
height: 100%; height: 100%;
padding: 20px;
background-color: rgba(0, 0, 0, 0.7); background-color: rgba(0, 0, 0, 0.7);
overflow: auto;
img { img {
height: inherit; position: absolute;
max-width: none !important;
} }
} }
} }

View File

@ -1,4 +1,12 @@
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; import {
Component,
OnInit,
Input,
Output,
EventEmitter,
ElementRef,
ViewChild
} from '@angular/core';
import { ucapAnimations } from '../../animations'; import { ucapAnimations } from '../../animations';
import { FileEventJson } from '@ucap-webmessenger/protocol-event'; import { FileEventJson } from '@ucap-webmessenger/protocol-event';
import { FileDownloadItem } from '@ucap-webmessenger/api'; import { FileDownloadItem } from '@ucap-webmessenger/api';
@ -24,9 +32,17 @@ export class ImageViewerComponent implements OnInit {
fileDownloadItem: FileDownloadItem; fileDownloadItem: FileDownloadItem;
naturalWidth = 0;
naturalHeight = 0;
zoomRatio = 100;
constructor() {} constructor() {}
ngOnInit() {} ngOnInit() {
this.naturalWidth = this.fileInfo.imageWidth;
this.naturalHeight = this.fileInfo.imageHeight;
}
onClickDownload(): void { onClickDownload(): void {
this.fileDownloadItem = new FileDownloadItem(); this.fileDownloadItem = new FileDownloadItem();
@ -36,4 +52,26 @@ export class ImageViewerComponent implements OnInit {
onClickClose(): void { onClickClose(): void {
this.closed.emit(); this.closed.emit();
} }
onLoadFileDownloadUrl(img: HTMLImageElement) {
console.log('onLoadFileDownloadUrl', img.naturalWidth, img.naturalHeight);
this.naturalWidth = img.naturalWidth;
this.naturalHeight = img.naturalHeight;
}
onClickZoomOut() {
if (60 >= this.zoomRatio) {
return;
}
this.zoomRatio -= 10;
}
onClickZoomIn() {
if (180 <= this.zoomRatio) {
return;
}
this.zoomRatio += 10;
}
onClickZoomReset() {
this.zoomRatio = 100;
}
} }

View File

@ -1,5 +1,9 @@
<div class="search-container"> <div class="search-container">
<mat-form-field appearance="outline"> <span class="icon-img">
<i class="mid mdi-magnify"></i>
</span>
<!--<mat-form-field appearance="outline">-->
<mat-form-field>
<input <input
matInput matInput
#searchWordInput #searchWordInput
@ -7,6 +11,5 @@
(keydown.enter)="onKeyDownEnter(searchWordInput.value)" (keydown.enter)="onKeyDownEnter(searchWordInput.value)"
[value]="!!searchWord ? searchWord : ''" [value]="!!searchWord ? searchWord : ''"
/> />
<mat-icon matPrefix>search</mat-icon>
</mat-form-field> </mat-form-field>
</div> </div>

View File

@ -1,3 +1,13 @@
.search-container { .search-container {
-webkit-app-region: no-drag; -webkit-app-region: no-drag;
display: flex;
flex-flow: row;
align-items: center;
width: 250px;
max-width: 250px;
color: #ffffff;
font-size: 0.9em;
.icon-img {
flex: 0 0 auto;
}
} }

View File

@ -1,5 +1,6 @@
<div fxLayout="column" class="rightDrawer-notice"> <div fxLayout="column" class="rightDrawer-notice">
<div fxFlex="1 1 80px" class="search-area"> <div class="search-area">
<ucap-integrated-search-form <ucap-integrated-search-form
[searchWord]="!!searchWord ? searchWord : ''" [searchWord]="!!searchWord ? searchWord : ''"
(search)="onSearch($event)" (search)="onSearch($event)"
@ -28,10 +29,7 @@
{{ 'search.fieldProfile' | translate }} {{ 'search.fieldProfile' | translate }}
</th> </th>
<td mat-cell *matCellDef="let element"> <td mat-cell *matCellDef="let element">
<div class="profile"> <div class="profile thumbnail-mask">
{{ getPresence(element, PresenceType.PC) }} /
{{ getPresence(element, PresenceType.MOBILE) }} /
{{ getWorkstatus(element) }} /
<img <img
class="thumbnail" class="thumbnail"
ucapImage ucapImage
@ -41,6 +39,7 @@
(click)="onClickOpenProfile($event, element.seq)" (click)="onClickOpenProfile($event, element.seq)"
/> />
</div> </div>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="name"> <ng-container matColumnDef="name">
@ -57,6 +56,22 @@
<div class="name"> <div class="name">
{{ element.name }} {{ element.name }}
</div> </div>
<div class="status">
{{ getPresence(element, PresenceType.PC) }} /
{{ getPresence(element, PresenceType.MOBILE) }} /
{{ getWorkstatus(element) }}
</div>
</td>
</ng-container>
<ng-container matColumnDef="grade">
<th mat-header-cell *matHeaderCellDef #header class="grade" (mousedown)="resizeTable($event, header)">
{{ 'search.fieldGrade' | translate }}
</th>
<td mat-cell *matCellDef="let element" class="grade">
<div class="grade">
{{ element.grade }}
</div>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="deptName"> <ng-container matColumnDef="deptName">
@ -91,22 +106,7 @@
</div> </div>
</td> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="grade">
<th
mat-header-cell
*matHeaderCellDef
#header
class="grade"
(mousedown)="resizeTable($event, header)"
>
{{ 'search.fieldGrade' | translate }}
</th>
<td mat-cell *matCellDef="let element" class="grade">
<div class="grade">
{{ element.grade }}
</div>
</td>
</ng-container>
<ng-container matColumnDef="lineNumber"> <ng-container matColumnDef="lineNumber">
<th <th
mat-header-cell mat-header-cell

View File

@ -1,106 +1,81 @@
@mixin ellipsis($row) {
overflow: hidden;
text-overflow: ellipsis;
@if $row == 1 {
display: block;
white-space: nowrap;
word-wrap: normal;
} @else if $row >= 2 {
display: -webkit-box;
-webkit-line-clamp: $row;
-webkit-box-orient: vertical;
word-wrap: break-word;
}
}
.search-scrollbar { .search-scrollbar {
height: 550px; height: 550px;
} }
// .search-container {
// -webkit-app-region: no-drag;
// }
// @mixin ellipsis($row) { ::ng-deep .search-area {
// overflow: hidden; .search-container {
// text-overflow: ellipsis; width: 100%;
// @if $row == 1 { max-width: 100%;
// display: block; .icon-img {
// white-space: nowrap; color: #777777;
// word-wrap: normal; transform: translateY(-4px);
// } @else if $row >= 2 { }
// display: -webkit-box; .mat-form-field {
// -webkit-line-clamp: $row; color: #333333;
// -webkit-box-orient: vertical; width: 100%;
// word-wrap: break-word; margin-left: -20px;
// line-height: 1.2em; .mat-form-field-infix {
// } padding-left: 26px;
// } }
&.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float
.mat-form-field-label,
.mat-form-field-appearance-legacy.mat-form-field-can-float
.mat-input-server:focus
+ .mat-form-field-label-wrapper
.mat-form-field-label {
font-size: 0.7em;
transform: translateY(-1.28125em) scale(1);
}
}
}
}
// .rightDrawer-notice { .table-box {
// width: 100%; font-size: 13px;
// height: calc(100% - 60px); width: 100%;
overflow: hidden;
td.mat-cell {
padding: 6px;
div {
@include ellipsis(1);
&.name {
font-size: 1em;
font-weight: 600;
}
&.status {
font-size: 0.84em;
}
}
}
}
// .table-box { .thumbnail {
// height: calc(100% - 111.5px); &-mask {
// overflow: auto; width: 40px;
// } height: 40px;
// } border-radius: 50%;
overflow: hidden;
// .mat-table { margin-right: 12px;
// width: 100%; position: relative;
// position: relative; img {
// th.infos { width: 40px;
// padding: 10px; height: auto;
// text-align: center; background-color: #efefef;
// } }
// tr.mat-row { }
// height: 70px; }
// .notice-info {
// padding: 16px;
// display: grid;
// height: 70px;
// .title {
// font-weight: 600;
// margin-bottom: 2px;
// width: 100%;
// @include ellipsis(2);
// display: flex;
// align-items: center;
// .important {
// color: red;
// margin-right: 6px;
// }
// }
// }
// .date {
// .date {
// font-size: 0.8em;
// text-align: right;
// }
// }
// }
// }
// .mat-paginator-container {
// display: flex;
// flex-flow: column;
// }
// .mat-row:hover {
// background: rgba(0, 0, 0, 0.04);
// cursor: pointer;
// }
// .footer-fix {
// position: absolute;
// bottom: 0;
// flex-direction: column;
// box-sizing: border-box;
// display: flex;
// border-top: 1px solid #dddddd;
// .mat-paginator {
// .mat-paginator-container {
// justify-content: center;
// }
// }
// .btn-box {
// height: 50px;
// padding-bottom: 10px;
// width: 100%;
// background-color: #ffffff;
// button {
// margin: 5px;
// }
// }
// }
// .mat-form-field-appearance-legacy {
// .mat-form-field-infix {
// padding: 6px;
// }
// }