Merge branch 'master' of http://10.81.13.221:6990/Web/next-ucap-messenger
|
@ -5,7 +5,8 @@
|
||||||
// Angular Material typography
|
// Angular Material typography
|
||||||
// $input: mat-typography-level(16px, 1.125, 400) // line-height must be unitless !!!
|
// $input: mat-typography-level(16px, 1.125, 400) // line-height must be unitless !!!
|
||||||
$typography: mat-typography-config(
|
$typography: mat-typography-config(
|
||||||
$font-family: 'Muli, Helvetica Neue, Arial, sans-serif',
|
$font-family:
|
||||||
|
'나눔고딕, Malgun Gothic, 맑은고딕, Arial, Muli, Helvetica Neue, Arial, sans-serif',
|
||||||
$title: mat-typography-level(20px, 32px, 600),
|
$title: mat-typography-level(20px, 32px, 600),
|
||||||
$body-2: mat-typography-level(14px, 24px, 600),
|
$body-2: mat-typography-level(14px, 24px, 600),
|
||||||
$button: mat-typography-level(14px, 14px, 600),
|
$button: mat-typography-level(14px, 14px, 600),
|
||||||
|
@ -95,3 +96,29 @@ body.theme-pink-dark {
|
||||||
// Apply the theme to the user components
|
// Apply the theme to the user components
|
||||||
@include components-theme($pink-dark-theme);
|
@include components-theme($pink-dark-theme);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
// @ Define a pink light theme --LG RED 변경 예정(샘플링)
|
||||||
|
// -----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Define the primary, accent and warn palettes
|
||||||
|
$pink-light-theme-primary-palette: mat-palette($lg-red);
|
||||||
|
$pink-light-theme-accent-palette: mat-palette($mat-pink);
|
||||||
|
$pink-light-theme-warn-palette: mat-palette($mat-red);
|
||||||
|
|
||||||
|
// Create the Material theme object
|
||||||
|
$pink-light-theme: mat-light-theme(
|
||||||
|
$pink-light-theme-primary-palette,
|
||||||
|
$pink-light-theme-accent-palette,
|
||||||
|
$pink-light-theme-warn-palette
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add ".theme-pink-dark" class to the body to activate this theme.
|
||||||
|
// Class name must start with "theme-" !!!
|
||||||
|
body.theme-pink-light {
|
||||||
|
// Generate the Angular Material theme
|
||||||
|
@include angular-material-theme($pink-light-theme);
|
||||||
|
|
||||||
|
// Apply the theme to the user components
|
||||||
|
@include components-theme($pink-light-theme);
|
||||||
|
}
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div>
|
<!--<div>
|
||||||
LG ucap
|
LG ucap
|
||||||
<button mat-icon-button aria-label="New Chat" (click)="onClickNewChat()">
|
<button mat-icon-button aria-label="New Chat" (click)="onClickNewChat()">
|
||||||
<mat-icon>chat</mat-icon>
|
<mat-icon>chat</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>-->
|
||||||
<mat-tab-group mat-stretch-tabs animationDuration="0ms">
|
<div class="logo">로고</div>
|
||||||
|
<mat-tab-group mat-stretch-tabs animationDuration="0ms" class="global-menu">
|
||||||
<mat-tab>
|
<mat-tab>
|
||||||
<ng-template mat-tab-label>
|
<ng-template mat-tab-label>
|
||||||
<mat-icon>group</mat-icon>
|
<mat-icon>group</mat-icon>
|
||||||
|
|
|
@ -6,12 +6,43 @@
|
||||||
::ng-deep .mat-tab-body-wrapper,
|
::ng-deep .mat-tab-body-wrapper,
|
||||||
::ng-deep .mat-tab-body {
|
::ng-deep .mat-tab-body {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
.logo{
|
||||||
|
position: absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
height:60px;
|
||||||
|
width:70px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
|
display: flex;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
mat-tab-group {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mat-tab-group {
|
||||||
|
display: flex;
|
||||||
|
width:100%;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
::ng-deep .global-menu{
|
||||||
|
border-right:1px solid #dddddd;
|
||||||
|
.mat-tab-label-container{
|
||||||
|
border-right:1px solid #dddddd;
|
||||||
|
.mat-tab-list{
|
||||||
|
.mat-tab-labels{
|
||||||
|
padding-top:60px;
|
||||||
|
flex-flow: column;
|
||||||
|
height: 60%;
|
||||||
|
.mat-tab-label{
|
||||||
|
height:80px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.mat-ink-bar{
|
||||||
|
background-color:none;
|
||||||
|
height:0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,17 +1,22 @@
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
|
<div class="current-head">
|
||||||
|
<h3>그룹</h3>
|
||||||
|
<div class="btn-box">
|
||||||
|
<button mat-icon-button >
|
||||||
|
<mat-icon>person_add</mat-icon>
|
||||||
|
</button>
|
||||||
|
<button mat-icon-button [matMenuTriggerFor]="groupMenu" aria-label="group menu">
|
||||||
|
<mat-icon>more_vert</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<ucap-organization-tenant-search
|
<ucap-organization-tenant-search
|
||||||
[companyList]="companyList$ | async"
|
[companyList]="companyList$ | async"
|
||||||
[companyCode]="companyCode"
|
[companyCode]="companyCode"
|
||||||
(keyDownEnter)="onKeyDownEnterOrganizationTenantSearch($event)"
|
(keyDownEnter)="onKeyDownEnterOrganizationTenantSearch($event)"
|
||||||
></ucap-organization-tenant-search>
|
></ucap-organization-tenant-search>
|
||||||
<button
|
|
||||||
mat-icon-button
|
|
||||||
[matMenuTriggerFor]="groupMenu"
|
|
||||||
aria-label="group menu"
|
|
||||||
>
|
|
||||||
<mat-icon>more_vert</mat-icon>
|
|
||||||
</button>
|
|
||||||
<mat-menu
|
<mat-menu
|
||||||
#groupMenu="matMenu"
|
#groupMenu="matMenu"
|
||||||
xPosition="after"
|
xPosition="after"
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
.current-head{
|
||||||
|
display:flex;
|
||||||
|
justify-content: center;
|
||||||
|
padding:0 10px;
|
||||||
|
height:60px;
|
||||||
|
h3{
|
||||||
|
display:inline-flex;
|
||||||
|
padding-left:10px;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.btn-box{
|
||||||
|
height: 100%;
|
||||||
|
margin-left:auto;
|
||||||
|
display:inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
.mat-icon-button{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,20 +1,20 @@
|
||||||
<div class="oraganization-tab" fxLayout="column" *ngIf="departmentInfoList$ | async">
|
<div class="oraganization-tab" fxLayout="column" *ngIf="departmentInfoList$ | async">
|
||||||
<div class="oraganization-tab-tree" fxFlex="50" style="overflow: scroll">
|
<div class="oraganization-tab-tree" fxFlex="40" style="overflow: scroll">
|
||||||
<ucap-organization-tree [oraganizationList]="departmentInfoList$ | async"
|
<ucap-organization-tree [oraganizationList]="departmentInfoList$ | async"
|
||||||
(selected)="onSelectedOrganization($event)"></ucap-organization-tree>
|
(selected)="onSelectedOrganization($event)"></ucap-organization-tree>
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex="50" style="overflow: scroll">
|
<div fxFlex="60" >
|
||||||
<div>
|
<div class="select-dept">
|
||||||
(선택된부서명)
|
(선택된부서명)
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="select-list" >
|
||||||
<ucap-profile-user-list-item *ngFor="let userInfo of selectedDepartmentUserInfoList$ | async"
|
<ucap-profile-user-list-item *ngFor="let userInfo of selectedDepartmentUserInfoList$ | async"
|
||||||
[userInfo]="userInfo" [checkable]="true" [sessionVerinfo]="sessionVerinfo" [selectedUserList]="selectedUserList"
|
[userInfo]="userInfo" [checkable]="true" [sessionVerinfo]="sessionVerinfo" [selectedUserList]="selectedUserList"
|
||||||
[isChecked]="getCheckedUser(userInfo)" (checkUser)="onCheckUser($event)">
|
[isChecked]="getCheckedUser(userInfo)" (checkUser)="onCheckUser($event)">
|
||||||
</ucap-profile-user-list-item>
|
</ucap-profile-user-list-item>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="!isUserSelect">
|
</div>
|
||||||
(하단버튼영역)
|
<div *ngIf="!isUserSelect" class="btn-box">
|
||||||
</div>
|
(하단버튼영역)
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,6 +2,28 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
.oraganization-tab-tree {
|
.oraganization-tab-tree {
|
||||||
overflow: scroll;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.btn-box{
|
||||||
|
height:80px;
|
||||||
|
position: absolute;
|
||||||
|
bottom:0;
|
||||||
|
border-top:1px solid #ddd;
|
||||||
|
align-items: center;
|
||||||
|
width:100%;
|
||||||
|
background-color:#ffffff;
|
||||||
|
}
|
||||||
|
.select-dept{
|
||||||
|
border-top:1px solid #dddddd;
|
||||||
|
height:40px;
|
||||||
|
width:100%;
|
||||||
|
display:inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
padding:0 10px;
|
||||||
|
}
|
||||||
|
.select-list{
|
||||||
|
height: calc(100% - 120px);
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<div class="container" fxFlex fxLayout="column">
|
<div class="container" fxFlex fxLayout="column">
|
||||||
<!-- CHAT TOOLBAR -->
|
<!-- CHAT TOOLBAR -->
|
||||||
<mat-toolbar class="chat-toolbar">
|
<mat-toolbar class="chat-toolbar">
|
||||||
<div fxFlex fxLayout="row" fxLayoutAlign="space-between center">
|
<div fxFlex fxLayout="row" class="chat-header" >
|
||||||
<div fxLayout="row" fxLayoutAlign="start center">
|
<div fxLayout="row" fxLayoutAlign="start center" class="profile-img">
|
||||||
<!-- RESPONSIVE CHATS BUTTON-->
|
<!-- RESPONSIVE CHATS BUTTON-->
|
||||||
<button
|
<button
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
|
@ -15,8 +15,10 @@
|
||||||
</button>
|
</button>
|
||||||
<!-- / RESPONSIVE CHATS BUTTON-->
|
<!-- / RESPONSIVE CHATS BUTTON-->
|
||||||
</div>
|
</div>
|
||||||
|
<div class="room-name">
|
||||||
<div>
|
대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명대화방명
|
||||||
|
</div>
|
||||||
|
<div class="room-option">
|
||||||
<button
|
<button
|
||||||
*ngIf="!!roomInfo"
|
*ngIf="!!roomInfo"
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
@charset 'utf-8';
|
||||||
|
@import '../../../../assets/scss/global/common';
|
||||||
:host {
|
:host {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -9,12 +11,32 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
.chat-toolbar {
|
.chat-toolbar {
|
||||||
height: 49px;
|
height: 70px;
|
||||||
min-height: 49px;
|
min-height: 70px;
|
||||||
border-bottom: 1px solid;
|
border-bottom: $line-basic;
|
||||||
|
background-color:#ffffff;
|
||||||
.responsive-chats-button {
|
.chat-header{
|
||||||
padding: 0;
|
width:100%;
|
||||||
|
.responsive-chats-button {
|
||||||
|
padding: 0;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: #252525;
|
||||||
|
color: #efefef;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 100;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
.room-name{
|
||||||
|
font-size:16px;
|
||||||
|
padding:0 10px;
|
||||||
|
@include ellipsis(1)
|
||||||
|
}
|
||||||
|
.room-option{
|
||||||
|
width:100px;
|
||||||
|
margin-left:auto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1 +1,7 @@
|
||||||
dd
|
<div fxLayout="row-reverse" class="right">
|
||||||
|
<div class="slide-menu" >
|
||||||
|
</div>
|
||||||
|
<div class="slide-box">
|
||||||
|
slide dashboard
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,16 @@
|
||||||
|
$right-color:#565e6b;
|
||||||
|
.right{
|
||||||
|
height:100%;
|
||||||
|
flex-direction: row-reverse;
|
||||||
|
border-left:1px solid #dddddd;
|
||||||
|
.slide-menu{
|
||||||
|
width:70px;
|
||||||
|
height:100%;
|
||||||
|
display:inline-flex;
|
||||||
|
background-color:$right-color;
|
||||||
|
}
|
||||||
|
.slide-box{
|
||||||
|
display:inline-flex;
|
||||||
|
height:100%;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,14 +1,16 @@
|
||||||
.container {
|
.container {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
display:flex;
|
||||||
|
flex-flow: row;
|
||||||
|
|
||||||
.left-side {
|
.left-side {
|
||||||
float: left;
|
width: 380px;
|
||||||
width: 300px;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
flex: 0 0 auto;
|
||||||
}
|
}
|
||||||
.contents {
|
.contents {
|
||||||
float: left;
|
flex:1 1 auto;
|
||||||
width: calc(100% - 360px);
|
min-width:400px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
.messages {
|
.messages {
|
||||||
|
@ -17,8 +19,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.right-side {
|
.right-side {
|
||||||
float: left;
|
|
||||||
width: 60px;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
flex: 0 0 auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,34 @@
|
||||||
<div class="template" fxLayout="column">
|
<div class="template" fxLayout="column">
|
||||||
<button mat-raised-button color="accent" class="submit-button" aria-label="Login" (click)="onClickLogin()">
|
<button
|
||||||
|
mat-raised-button
|
||||||
|
color="accent"
|
||||||
|
class="submit-button"
|
||||||
|
aria-label="Login"
|
||||||
|
(click)="onClickLogin()"
|
||||||
|
>
|
||||||
Login
|
Login
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<h3>User-list-item</h3>
|
<h3>User-list-item</h3>
|
||||||
<div>
|
<div>
|
||||||
<ucap-profile-user-list-item [userInfo]="userInfo" [profileImageRoot]="profileImageRoot" [presence]="presence"
|
<ucap-profile-user-list-item
|
||||||
[sessionVerinfo]="sessionVerinfo">
|
[userInfo]="userInfo"
|
||||||
|
[profileImageRoot]="profileImageRoot"
|
||||||
|
[presence]="presence"
|
||||||
|
[sessionVerinfo]="sessionVerinfo"
|
||||||
|
>
|
||||||
</ucap-profile-user-list-item>
|
</ucap-profile-user-list-item>
|
||||||
<ucap-profile-user-list-item [userInfo]="userInfo" [sessionVerinfo]="sessionVerinfo">
|
<ucap-profile-user-list-item
|
||||||
|
[userInfo]="userInfo"
|
||||||
|
[sessionVerinfo]="sessionVerinfo"
|
||||||
|
>
|
||||||
</ucap-profile-user-list-item>
|
</ucap-profile-user-list-item>
|
||||||
<ucap-profile-user-list-item [userInfo]="userInfo" [profileImageRoot]="profileImageRoot" [checkable]="true"
|
<ucap-profile-user-list-item
|
||||||
[sessionVerinfo]="sessionVerinfo">
|
[userInfo]="userInfo"
|
||||||
|
[profileImageRoot]="profileImageRoot"
|
||||||
|
[checkable]="true"
|
||||||
|
[sessionVerinfo]="sessionVerinfo"
|
||||||
|
>
|
||||||
</ucap-profile-user-list-item>
|
</ucap-profile-user-list-item>
|
||||||
</div>
|
</div>
|
||||||
<h3>Organization</h3>
|
<h3>Organization</h3>
|
||||||
|
@ -21,14 +38,20 @@
|
||||||
Tenant Search
|
Tenant Search
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ucap-organization-tenant-search [companyList]="companyList" [companyCode]="companyCode">
|
<ucap-organization-tenant-search
|
||||||
|
[companyList]="companyList"
|
||||||
|
[companyCode]="companyCode"
|
||||||
|
>
|
||||||
</ucap-organization-tenant-search>
|
</ucap-organization-tenant-search>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3>Chat</h3>
|
<h3>Chat</h3>
|
||||||
<div>
|
<div>
|
||||||
<ucap-room-list-item [roomInfo]="roomInfo" [sessionVerinfo]="sessionVerinfo">
|
<ucap-room-list-item
|
||||||
|
[roomInfo]="roomInfo"
|
||||||
|
[sessionVerinfo]="sessionVerinfo"
|
||||||
|
>
|
||||||
</ucap-room-list-item>
|
</ucap-room-list-item>
|
||||||
</div>
|
</div>
|
||||||
<!-- <h3>Chat::MessageBox</h3>
|
<!-- <h3>Chat::MessageBox</h3>
|
||||||
|
|
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 21 KiB |
|
@ -1,13 +1,22 @@
|
||||||
@charset 'utf-8';
|
@charset 'utf-8';
|
||||||
|
|
||||||
$listH-row3: 90px;
|
$listH-row3: 120px;
|
||||||
$listH-row2: 60px;
|
$listH-row2: 90px;
|
||||||
|
$listH-row2-s: 70px;
|
||||||
$checkbox-size: 16px;
|
$checkbox-size: 16px;
|
||||||
$presence-size: 10px;
|
$presence-size: 8px;
|
||||||
$thumbnail-msize: 40px;
|
$thumbnail-msize: 40px;
|
||||||
$bg-list-hover: #efefef;
|
$bg-list-hover: #efefef;
|
||||||
$bg-list-item-msg: #f0f4f6;
|
$bg-list-item-msg: #f0f4f6;
|
||||||
|
|
||||||
|
$font-dark: #212121;
|
||||||
|
$font-mid: #666666;
|
||||||
|
$font-light: #848d95;
|
||||||
|
$font-white: #ffffff;
|
||||||
|
|
||||||
|
$line-basic: 1px solid #dddddd;
|
||||||
|
$color-main: #ee278b;
|
||||||
|
|
||||||
@mixin ellipsis($row) {
|
@mixin ellipsis($row) {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
@ -41,6 +50,3 @@ $bg-list-item-msg: #f0f4f6;
|
||||||
background-color: #f0c10a;
|
background-color: #f0c10a;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@function position-m($h, $o, $p) {
|
|
||||||
@return ($h - $o - $p) / 2;
|
|
||||||
}
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ body {
|
||||||
color: #333;
|
color: #333;
|
||||||
font-family: '나눔고딕', Malgun Gothic, '맑은고딕', Arial, Dotum, '돋움',
|
font-family: '나눔고딕', Malgun Gothic, '맑은고딕', Arial, Dotum, '돋움',
|
||||||
Gulim, '굴림';
|
Gulim, '굴림';
|
||||||
font-size: 12px;
|
font-size: 13px;
|
||||||
line-height: 18px !important;
|
line-height: 18px !important;
|
||||||
-webkit-box-sizing: border-box;
|
-webkit-box-sizing: border-box;
|
||||||
-moz-box-sizing: border-box;
|
-moz-box-sizing: border-box;
|
||||||
|
|
|
@ -4,6 +4,18 @@
|
||||||
fxLayout="row"
|
fxLayout="row"
|
||||||
fxLayoutAlign="center center"
|
fxLayoutAlign="center center"
|
||||||
>
|
>
|
||||||
|
<div class="add-option">
|
||||||
|
<i class="material-icons">
|
||||||
|
attach_file
|
||||||
|
</i>
|
||||||
|
<i class="material-icons">
|
||||||
|
sentiment_satisfied_alt
|
||||||
|
</i>
|
||||||
|
<i class="material-icons">
|
||||||
|
g_translate
|
||||||
|
</i>
|
||||||
|
</div>
|
||||||
|
|
||||||
<form
|
<form
|
||||||
#replyForm="ngForm"
|
#replyForm="ngForm"
|
||||||
(ngSubmit)="onSend($event)"
|
(ngSubmit)="onSend($event)"
|
||||||
|
@ -35,7 +47,9 @@
|
||||||
type="submit"
|
type="submit"
|
||||||
aria-label="Send message"
|
aria-label="Send message"
|
||||||
>
|
>
|
||||||
Send
|
<i class="material-icons">
|
||||||
|
send
|
||||||
|
</i>
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,44 @@
|
||||||
.container {
|
.container {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
padding: 20px 30px;
|
||||||
|
.add-option {
|
||||||
|
display: inline-flex;
|
||||||
|
margin-right: 20px;
|
||||||
|
i {
|
||||||
|
font-size: 20px;
|
||||||
|
color: #666;
|
||||||
|
width:30px;
|
||||||
|
height:30px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 30px;
|
||||||
|
&:hover {
|
||||||
|
color: #333333;
|
||||||
|
background-color: #efefef;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.mat-form-field-underline{
|
||||||
|
background-color:none;
|
||||||
|
}
|
||||||
|
.send-message-button {
|
||||||
|
margin-left: 20px;
|
||||||
|
i {
|
||||||
|
background-color: #ff3399;
|
||||||
|
display: inline-block;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 50%;
|
||||||
|
line-height:40px;
|
||||||
|
font-size: 20px;
|
||||||
|
color: #ffffff;
|
||||||
|
&:hover{
|
||||||
|
background-color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
<ul>
|
<div class="bubble-main">
|
||||||
<li>
|
<!--파일명에 따라 doc exe hwp ppt xls zip 으로 추가되고 나머지 파일 명은 file로 기간이 만료된 파일은 그뒤에 disable도 추가-->
|
||||||
{{ fileInfo.FileName }}
|
<div class="file-img ppt"></div>
|
||||||
</li>
|
<ul class="file-info">
|
||||||
<li>
|
<li class="file-name">
|
||||||
{{ fileInfo.AttSize }}
|
{{ fileInfo.FileName }}
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li class="file-size">
|
||||||
{{ fileInfo.FileExt }}
|
{{ fileInfo.AttSize }}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
<li class="file-ext">
|
||||||
<span *ngIf="fileInfo && fileInfo.AttSEQ">
|
{{ fileInfo.FileExt }}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="fileInfo && fileInfo.AttSEQ" class="btn-box">
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<button mat-button (click)="onClickSave()">Save</button>
|
<button mat-button (click)="onClickSave()">Save</button>
|
||||||
|
@ -18,4 +22,4 @@
|
||||||
<button mat-button (click)="onClickSaveAs()">Save As</button>
|
<button mat-button (click)="onClickSaveAs()">Save As</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</span>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,103 @@
|
||||||
|
@charset "UTF-8"
|
||||||
|
.bubble-main {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
padding: 14px;
|
||||||
|
.file-img {
|
||||||
|
display: inline-flex;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
float: left;
|
||||||
|
margin-right: 14px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
&.doc {
|
||||||
|
background-image: url(/assets/images/file/icon_talk_doc.png);
|
||||||
|
&.disable{
|
||||||
|
background-image: url(/assets/images/file/icon_talk_doc_d.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.exe {
|
||||||
|
background-image: url(/assets/images/file/icon_talk_exe.png);
|
||||||
|
&.disable{
|
||||||
|
background-image: url(/assets/images/file/icon_talk_exe_d.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.file {
|
||||||
|
background-image: url(/assets/images/file/icon_talk_file.png);
|
||||||
|
&.disable{
|
||||||
|
background-image: url(/assets/images/file/icon_talk_file_d.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.hwp {
|
||||||
|
background-image: url(/assets/images/file/icon_talk_hwp.png);
|
||||||
|
&.disable{
|
||||||
|
background-image: url(/assets/images/file/icon_talk_hwp_d.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.ppt {
|
||||||
|
background-image: url(/assets/images/file/icon_talk_ppt.png);
|
||||||
|
&.disable{
|
||||||
|
background-image: url(/assets/images/file/icon_talk_ppt_d.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.xls {
|
||||||
|
background-image: url(/assets/images/file/icon_talk_xls.png);
|
||||||
|
&.disable{
|
||||||
|
background-image: url(/assets/images/file/icon_talk_xls_d.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.zip {
|
||||||
|
background-image: url(/assets/images/file/icon_talk_zip.png);
|
||||||
|
&.disable{
|
||||||
|
background-image: url(/assets/images/file/icon_talk_doc_d.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.file-info {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: left;
|
||||||
|
float: left;
|
||||||
|
line-height: 1.6em;
|
||||||
|
.file-name {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
.file-size {
|
||||||
|
display: inline-flex;
|
||||||
|
font-size: 11px;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
.file-ext {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #848d95;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn-box {
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
border-top: 1px solid #dddddd;
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
ul {
|
||||||
|
width: 100%;
|
||||||
|
li {
|
||||||
|
width: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 13px;
|
||||||
|
border-right:1px solid #dddddd;
|
||||||
|
&:last-child{
|
||||||
|
border-right:none;
|
||||||
|
}
|
||||||
|
.mat-button {
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,6 @@
|
||||||
<p>
|
<div class="date-split">
|
||||||
|
<span class="line"></span>
|
||||||
<!-- {{ message.sendDate | date: 'short' }} -->
|
<!-- {{ message.sendDate | date: 'short' }} -->
|
||||||
{{ dateInfo }}
|
<span class="date">{{ dateInfo }}2019.10.3</span>
|
||||||
</p>
|
<span class="line"></span>
|
||||||
|
</div>
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
@charset 'utf-8';
|
||||||
|
.date-split {
|
||||||
|
display: flex;
|
||||||
|
align-content: center;
|
||||||
|
flex-flow: row;
|
||||||
|
.line {
|
||||||
|
height: 1px;
|
||||||
|
background-color: #cccccc;
|
||||||
|
width:40%;
|
||||||
|
flex:1 1 auto;
|
||||||
|
margin-bottom:10px;
|
||||||
|
}
|
||||||
|
.date {
|
||||||
|
width: 160px;
|
||||||
|
font-size: 13px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1 +1,3 @@
|
||||||
<img [src]="fileInfo.ThumbURL">
|
<div class="bubble-main">
|
||||||
|
<img [src]="fileInfo.ThumbURL">
|
||||||
|
</div>
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
.bubble-main{
|
||||||
|
padding:10px;
|
||||||
|
}
|
|
@ -1,12 +1,12 @@
|
||||||
<p>
|
<div class="bubble-main">
|
||||||
<span>
|
<span>
|
||||||
{{ content }}
|
{{ content }}
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
{{ message.sendDate | date: 'short' }}
|
{{ message.sendDate | date: 'short' }}
|
||||||
</span>
|
</span>
|
||||||
|
</div>
|
||||||
{{detailButteonShow}}
|
{{detailButteonShow}}
|
||||||
<span *ngIf="detailButteonShow">
|
<div *ngIf="detailButteonShow" class="btn-box">
|
||||||
<button mat-button (click)="onClickDetailView()">Detail View</button>
|
<button mat-button (click)="onClickDetailView()">Detail View</button>
|
||||||
</span>
|
</div>
|
||||||
</p>
|
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
@charset "UTF-8"
|
||||||
|
.bubble-main {
|
||||||
|
padding: 14px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.btn-box {
|
||||||
|
border-top: 1px solid #dddddd;
|
||||||
|
height: 40px;
|
||||||
|
.mat-button {
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
<div class="event-main">
|
||||||
|
<div class="event-header">이벤트제목</div>
|
||||||
|
<ul class="event-info">
|
||||||
|
<li class="event-title">
|
||||||
|
이벤트 타일틀이벤트 타일틀이벤트 타일틀이벤트 타일틀이벤트 타일틀이벤트 타일틀이벤트 타일틀이벤트 타일틀이벤트 타일틀이벤트 타일틀이벤트 타일틀이벤트 타일틀
|
||||||
|
</li>
|
||||||
|
<li class="event-date">
|
||||||
|
<span>날짜</span> 2019.09.30
|
||||||
|
</li>
|
||||||
|
<li class="event-time">
|
||||||
|
<span>시간</span>오후 10시
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="btn-box">
|
||||||
|
<button mat-button (click)="onClickSave()">상세보기</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,43 @@
|
||||||
|
@charset "UTF-8"
|
||||||
|
.event-main {
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: left;
|
||||||
|
.event-header {
|
||||||
|
padding: 10px;
|
||||||
|
background-color: #efefef;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.event-info {
|
||||||
|
padding: 10px 14px;
|
||||||
|
line-height: 1.6em;
|
||||||
|
li {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
&.event-title {
|
||||||
|
border-bottom: 1px solid #dddddd;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
&.event-date,
|
||||||
|
&.event-time {
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
padding: 2px 6px;
|
||||||
|
background-color: #efefef;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-box {
|
||||||
|
border-top: 1px solid #dddddd;
|
||||||
|
height: 40px;
|
||||||
|
.mat-button {
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,3 +1,4 @@
|
||||||
|
<div class="bubble-main">
|
||||||
<ul>
|
<ul>
|
||||||
<li *ngIf="stickerUrl">
|
<li *ngIf="stickerUrl">
|
||||||
<img [src]="stickerUrl" onerror="this.src='assets/sticker/sticker_default.png'">
|
<img [src]="stickerUrl" onerror="this.src='assets/sticker/sticker_default.png'">
|
||||||
|
@ -6,3 +7,4 @@
|
||||||
{{ contentJson.chat }}
|
{{ contentJson.chat }}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.bubble-main{
|
||||||
|
padding:14px;
|
||||||
|
li:nth-child(2){
|
||||||
|
margin-top:10px;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,7 @@
|
||||||
<p>
|
<div class="bubble-main">
|
||||||
<span>
|
<span>
|
||||||
{{ message.sentMessage }}
|
{{ message.sentMessage }}
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
.bubble-main {
|
||||||
|
padding: 14px;
|
||||||
|
text-align:left;
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
<div class="translation-main">
|
||||||
|
<div class="original">
|
||||||
|
{{ message.sentMessage }}
|
||||||
|
</div>
|
||||||
|
<div class="translation">
|
||||||
|
<span class="language">Kor</span>
|
||||||
|
녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문
|
||||||
|
롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트
|
||||||
|
</div>
|
||||||
|
<div class="btn-box">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<button mat-button>Save</button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button mat-button><span class="language">Kor</span>번역보기</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,46 @@
|
||||||
|
@charset "UTF-8"
|
||||||
|
.translation-main {
|
||||||
|
text-align: left;
|
||||||
|
.original {
|
||||||
|
padding: 14px;
|
||||||
|
}
|
||||||
|
.translation {
|
||||||
|
padding: 10px;
|
||||||
|
border-top: 1px solid #dddddd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.language {
|
||||||
|
padding: 2px 6px;
|
||||||
|
background-color: #222222;
|
||||||
|
margin-right: 6px;
|
||||||
|
border-radius: 2px;
|
||||||
|
font-size: 11px;
|
||||||
|
color: #fff;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
.btn-box {
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
border-top: 1px solid #dddddd;
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
ul {
|
||||||
|
width: 100%;
|
||||||
|
li {
|
||||||
|
width: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 13px;
|
||||||
|
border-right: 1px solid #dddddd;
|
||||||
|
&:last-child {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
.mat-button {
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,24 @@
|
||||||
<ul>
|
<div class="bubble-main">
|
||||||
<li>
|
<div class="file-img video"></div>
|
||||||
{{ fileInfo.FileName }}
|
<ul class="file-info">
|
||||||
</li>
|
<li class="file-name">
|
||||||
<li>
|
{{ fileInfo.FileName }}
|
||||||
{{ fileInfo.AttSize }}
|
</li>
|
||||||
</li>
|
<li class="file-size">
|
||||||
<li>
|
{{ fileInfo.AttSize }}
|
||||||
{{ fileInfo.FileExt }}
|
</li>
|
||||||
</li>
|
<li class="file-ext">
|
||||||
</ul>
|
{{ fileInfo.FileExt }}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<span class="btn-box">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<button mat-button >Save</button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button mat-button >Save As</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</span>
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
@charset "UTF-8"
|
||||||
|
.bubble-main{
|
||||||
|
flex-direction: column;
|
||||||
|
padding:14px;
|
||||||
|
.file-img {
|
||||||
|
display: inline-flex;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
float: left;
|
||||||
|
margin-right: 14px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
&.video {
|
||||||
|
background-image: url(/assets/images/file/icon_talk_video.png);
|
||||||
|
&.disable{
|
||||||
|
background-image: url(/assets/images/file/icon_talk_video_d.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.file-info{
|
||||||
|
display:inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: left;
|
||||||
|
line-height:1.6em;
|
||||||
|
.file-name{
|
||||||
|
font-size:14px;
|
||||||
|
font-weight:bold;
|
||||||
|
display:inline-flex
|
||||||
|
}
|
||||||
|
.file-size{
|
||||||
|
display:inline-flex;
|
||||||
|
font-size:11px;
|
||||||
|
color:#666666;
|
||||||
|
}
|
||||||
|
.file-ext{
|
||||||
|
font-size:12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn-box{
|
||||||
|
width:100%;
|
||||||
|
height:40px;
|
||||||
|
border-top:1px solid #dddddd;
|
||||||
|
display:flex;
|
||||||
|
ul{
|
||||||
|
width:100%;
|
||||||
|
li{
|
||||||
|
width:50%;
|
||||||
|
display:inline-block;
|
||||||
|
text-align:center;
|
||||||
|
align-items: center;
|
||||||
|
font-size:13px;
|
||||||
|
border-right:1px solid #dddddd;
|
||||||
|
&:last-child{
|
||||||
|
border-right:none;
|
||||||
|
}
|
||||||
|
.mat-button {
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,8 @@
|
||||||
<div class="chat-messages">
|
<div class="chat-messages">
|
||||||
<!-- MESSAGE -->
|
<!-- MESSAGE -->
|
||||||
|
<ucap-chat-message-box-date-splitter *ngIf="getDateSplitter(i)" [message]="message">
|
||||||
|
</ucap-chat-message-box-date-splitter>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
*ngFor="let message of messages; let i = index"
|
*ngFor="let message of messages; let i = index"
|
||||||
class="message-row"
|
class="message-row"
|
||||||
|
@ -8,11 +11,6 @@
|
||||||
contact: message.senderSeq !== loginRes.userSeq
|
contact: message.senderSeq !== loginRes.userSeq
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<ucap-chat-message-box-date-splitter
|
|
||||||
*ngIf="getDateSplitter(i)"
|
|
||||||
[message]="message"
|
|
||||||
>
|
|
||||||
</ucap-chat-message-box-date-splitter>
|
|
||||||
|
|
||||||
<div
|
<div
|
||||||
*ngIf="getIsInformation(message); then information; else contents"
|
*ngIf="getIsInformation(message); then information; else contents"
|
||||||
|
@ -47,9 +45,7 @@
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template #contents>
|
<ng-template #contents>
|
||||||
<div>
|
<div *ngIf="getUserProfile(message.senderSeq) != ''" class="profile-img">
|
||||||
<ul>
|
|
||||||
<li *ngIf="getUserProfile(message.senderSeq) != ''">
|
|
||||||
<!-- <img
|
<!-- <img
|
||||||
class="avatar"
|
class="avatar"
|
||||||
style="width: 50px; height: 50px;"
|
style="width: 50px; height: 50px;"
|
||||||
|
@ -70,61 +66,64 @@
|
||||||
[path]="getUserProfile(message.senderSeq)"
|
[path]="getUserProfile(message.senderSeq)"
|
||||||
[default]="'assets/images/img_nophoto_50.png'"
|
[default]="'assets/images/img_nophoto_50.png'"
|
||||||
></ucap-ui-imaage>
|
></ucap-ui-imaage>
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
{{ getUserName(message.senderSeq) }}
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ng-container
|
<div class="message-main">
|
||||||
class="bubble"
|
<div class="chat-name">
|
||||||
*ngIf="message.type !== EventType.NotificationForTimerRoom"
|
{{ getUserName(message.senderSeq) }}
|
||||||
[ngSwitch]="message.type"
|
|
||||||
>
|
|
||||||
<ucap-chat-message-box-mass
|
|
||||||
*ngSwitchCase="EventType.MassText"
|
|
||||||
[message]="message"
|
|
||||||
(massDetail)="onMassDetail($event)"
|
|
||||||
>
|
|
||||||
</ucap-chat-message-box-mass>
|
|
||||||
<ucap-chat-message-box-file
|
|
||||||
*ngSwitchCase="EventType.File"
|
|
||||||
[message]="message"
|
|
||||||
(save)="onSave($event)"
|
|
||||||
(imageViewer)="onImageViewer($event)"
|
|
||||||
>
|
|
||||||
</ucap-chat-message-box-file>
|
|
||||||
<ucap-chat-message-box-sticker
|
|
||||||
*ngSwitchCase="EventType.Sticker"
|
|
||||||
[message]="message"
|
|
||||||
>
|
|
||||||
</ucap-chat-message-box-sticker>
|
|
||||||
<ucap-chat-message-box-recall
|
|
||||||
*ngSwitchCase="EventType.RecalledMessage"
|
|
||||||
></ucap-chat-message-box-recall>
|
|
||||||
<ucap-chat-message-box-text
|
|
||||||
*ngSwitchCase="EventType.Character"
|
|
||||||
[message]="message"
|
|
||||||
(contextmenu)="onContextMenuMessage($event, message)"
|
|
||||||
>
|
|
||||||
</ucap-chat-message-box-text>
|
|
||||||
<div *ngSwitchDefault>
|
|
||||||
mass-translation
|
|
||||||
<ucap-chat-message-box-mass-translation></ucap-chat-message-box-mass-translation>
|
|
||||||
notice
|
|
||||||
<ucap-chat-message-box-notice></ucap-chat-message-box-notice>
|
|
||||||
<ucap-chat-message-box-schedule></ucap-chat-message-box-schedule>
|
|
||||||
translation
|
|
||||||
<ucap-chat-message-box-translation></ucap-chat-message-box-translation>
|
|
||||||
video-conference
|
|
||||||
<ucap-chat-message-box-video-conference></ucap-chat-message-box-video-conference>
|
|
||||||
|
|
||||||
<div class="message">
|
|
||||||
{{ message.sentMessage }}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</ng-container>
|
|
||||||
|
<div class="bubble">
|
||||||
|
<ng-container
|
||||||
|
class="bubble"
|
||||||
|
*ngIf="message.type !== EventType.NotificationForTimerRoom"
|
||||||
|
[ngSwitch]="message.type"
|
||||||
|
>
|
||||||
|
<ucap-chat-message-box-mass
|
||||||
|
*ngSwitchCase="EventType.MassText"
|
||||||
|
[message]="message"
|
||||||
|
(massDetail)="onMassDetail($event)"
|
||||||
|
>
|
||||||
|
</ucap-chat-message-box-mass>
|
||||||
|
<ucap-chat-message-box-file
|
||||||
|
*ngSwitchCase="EventType.File"
|
||||||
|
[message]="message"
|
||||||
|
(save)="onSave($event)"
|
||||||
|
(imageViewer)="onImageViewer($event)"
|
||||||
|
>
|
||||||
|
</ucap-chat-message-box-file>
|
||||||
|
<ucap-chat-message-box-sticker
|
||||||
|
*ngSwitchCase="EventType.Sticker"
|
||||||
|
[message]="message"
|
||||||
|
>
|
||||||
|
</ucap-chat-message-box-sticker>
|
||||||
|
<ucap-chat-message-box-recall
|
||||||
|
*ngSwitchCase="EventType.RecalledMessage"
|
||||||
|
></ucap-chat-message-box-recall>
|
||||||
|
<ucap-chat-message-box-text
|
||||||
|
*ngSwitchCase="EventType.Character"
|
||||||
|
[message]="message"
|
||||||
|
(contextmenu)="onContextMenuMessage($event, message)"
|
||||||
|
>
|
||||||
|
</ucap-chat-message-box-text>
|
||||||
|
<div *ngSwitchDefault>
|
||||||
|
mass-translation
|
||||||
|
<ucap-chat-message-box-mass-translation></ucap-chat-message-box-mass-translation>
|
||||||
|
notice
|
||||||
|
<ucap-chat-message-box-notice></ucap-chat-message-box-notice>
|
||||||
|
<ucap-chat-message-box-schedule></ucap-chat-message-box-schedule>
|
||||||
|
translation
|
||||||
|
<ucap-chat-message-box-translation></ucap-chat-message-box-translation>
|
||||||
|
video-conference
|
||||||
|
<ucap-chat-message-box-video-conference></ucap-chat-message-box-video-conference>
|
||||||
|
|
||||||
|
<div class="message">
|
||||||
|
{{ message.sentMessage }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ng-container>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="time secondary-text">
|
<div class="time secondary-text">
|
||||||
{{ message.sendDate | date: 'a hh:mm' }}
|
{{ message.sendDate | date: 'a hh:mm' }}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.chat-messages {
|
/*.chat-messages {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 16px 0 40px 40px;
|
padding: 16px 40px;
|
||||||
|
|
||||||
.message-row {
|
.message-row {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -129,3 +129,126 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
$otherBox-line: #cccccc;
|
||||||
|
$otherBox-bg: #ffffff;
|
||||||
|
$meBox-line: #cccccc;
|
||||||
|
$meBox-bg: #ffffff;
|
||||||
|
|
||||||
|
.chat-messages {
|
||||||
|
padding: 30px 40px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
.message-row {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
&.me {
|
||||||
|
flex-direction: row-reverse;
|
||||||
|
.profile-info {
|
||||||
|
flex-direction: row-reverse;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-row {
|
||||||
|
margin-bottom: 30px;
|
||||||
|
.profile-img {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
}
|
||||||
|
.message-main {
|
||||||
|
margin-left: 20px;
|
||||||
|
margin-right: 10px;
|
||||||
|
.chat-name {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #333333;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
.bubble {
|
||||||
|
border: 1px solid $otherBox-line;
|
||||||
|
font-weight: 900;
|
||||||
|
position: relative;
|
||||||
|
background-color: $otherBox-bg;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
|
||||||
|
&:before {
|
||||||
|
content: '';
|
||||||
|
width: 0px;
|
||||||
|
height: 0px;
|
||||||
|
position: absolute;
|
||||||
|
border-left: 6px solid transparent;
|
||||||
|
border-right: 6px solid $otherBox-line;
|
||||||
|
border-top: 6px solid $otherBox-line;
|
||||||
|
border-bottom: 6px solid transparent;
|
||||||
|
left: -12px;
|
||||||
|
top: 4px;
|
||||||
|
}
|
||||||
|
&:after {
|
||||||
|
content: '';
|
||||||
|
width: 0px;
|
||||||
|
height: 0px;
|
||||||
|
position: absolute;
|
||||||
|
border-left: 6px solid transparent;
|
||||||
|
border-right: 6px solid $otherBox-bg;
|
||||||
|
border-top: 6px solid $otherBox-bg;
|
||||||
|
border-bottom: 6px solid transparent;
|
||||||
|
left: -10px;
|
||||||
|
top: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.secondary-text {
|
||||||
|
align-self: flex-end;
|
||||||
|
font-size: 11px;
|
||||||
|
word-wrap: break-word;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-row.me > .bubble {
|
||||||
|
border: 1px solid $meBox-line;
|
||||||
|
background-color: $meBox-bg;
|
||||||
|
}
|
||||||
|
.message-row.me {
|
||||||
|
.profile-img{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
.chat-name{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
.message-main {
|
||||||
|
text-align: right;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 20px;
|
||||||
|
& .bubble:before {
|
||||||
|
content: '';
|
||||||
|
width: 0px;
|
||||||
|
height: 0px;
|
||||||
|
position: absolute;
|
||||||
|
border-left: 6px solid $meBox-line;
|
||||||
|
border-right: 6px solid transparent;
|
||||||
|
border-top: 6px solid $meBox-line;
|
||||||
|
border-bottom: 6px solid transparent;
|
||||||
|
left: initial;
|
||||||
|
right: -12px;
|
||||||
|
top: 4px;
|
||||||
|
}
|
||||||
|
& .bubble:after {
|
||||||
|
content: '';
|
||||||
|
width: 0px;
|
||||||
|
height: 0px;
|
||||||
|
position: absolute;
|
||||||
|
border-left: 6px solid $meBox-bg;
|
||||||
|
border-right: 6px solid transparent;
|
||||||
|
border-top: 6px solid $meBox-bg;
|
||||||
|
border-bottom: 6px solid transparent;
|
||||||
|
left: initial;
|
||||||
|
right: -10px;
|
||||||
|
top: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<mat-expansion-panel
|
<mat-expansion-panel
|
||||||
*ngFor="let groupBuddy of groupBuddyList"
|
*ngFor="let groupBuddy of groupBuddyList"
|
||||||
[togglePosition]="'before'"
|
[togglePosition]="'before'"
|
||||||
|
class="groupExpansionPanel"
|
||||||
>
|
>
|
||||||
<mat-expansion-panel-header>
|
<mat-expansion-panel-header>
|
||||||
<mat-panel-title> {{ groupBuddy.group.name }} </mat-panel-title>
|
<mat-panel-title> {{ groupBuddy.group.name }} </mat-panel-title>
|
||||||
|
|
|
@ -5,5 +5,42 @@
|
||||||
|
|
||||||
.more-spacer {
|
.more-spacer {
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
::ng-deep .groupExpansionPanel .mat-expansion-panel-body {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.mat-expansion-panel-header{
|
||||||
|
height:40px ! important;
|
||||||
|
padding: 0 20px;
|
||||||
|
.mat-expansion-panel-header-title {
|
||||||
|
align-items: center;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
.mat-expansion-panel-header-description{
|
||||||
|
margin-right:0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.mat-icon-button {
|
||||||
|
margin-right: 0;
|
||||||
|
width: inherit;
|
||||||
|
}
|
||||||
|
.mat-icon {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.groupList {
|
||||||
|
.mat-expansion-panel-header {
|
||||||
|
padding: 0 20px;
|
||||||
|
.mat-content {
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.box-more-spacer {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<div>
|
<div class="list-search">
|
||||||
<div>
|
<div class="selectbox">
|
||||||
<mat-select [(value)]="companyCode">
|
<mat-select [(value)]="companyCode">
|
||||||
<mat-option
|
<mat-option
|
||||||
*ngFor="let company of companyList"
|
*ngFor="let company of companyList"
|
||||||
|
@ -9,12 +9,27 @@
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="searchbox">
|
||||||
<input
|
<input
|
||||||
matInput
|
matInput
|
||||||
#searchWordInput
|
#searchWordInput
|
||||||
placeholder="name"
|
placeholder="name"
|
||||||
(keydown.enter)="onKeyDownEnter(searchWordInput.value)"
|
(keydown.enter)="onKeyDownEnter(searchWordInput.value)"
|
||||||
/>
|
/>
|
||||||
|
<div class="btn-search"><i class="material-icons">search</i></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!--검색창만 있는 경우--------------------------------------------------------------------------
|
||||||
|
<div class="list-search">
|
||||||
|
<div class="searchbox">
|
||||||
|
<input
|
||||||
|
matInput
|
||||||
|
#searchWordInput
|
||||||
|
placeholder="name"
|
||||||
|
(keydown.enter)="onKeyDownEnter(searchWordInput.value)"
|
||||||
|
/>
|
||||||
|
<div class="btn-search"><i class="material-icons">search</i></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
@charset 'utf-8';
|
||||||
.organization-tree {
|
.organization-tree {
|
||||||
ul,
|
ul,
|
||||||
li {
|
li {
|
||||||
|
@ -10,3 +11,39 @@
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.list-search {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
height: 60px;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 20px;
|
||||||
|
font-size: 14px;
|
||||||
|
border-bottom: 1px solid #dddddd;
|
||||||
|
.searchbox {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
input {
|
||||||
|
display: inline-flex;
|
||||||
|
width: 100%;
|
||||||
|
font-size: 14px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.btn-search {
|
||||||
|
color: #777777;
|
||||||
|
font-size: 12px;
|
||||||
|
display: inline-flex;
|
||||||
|
margin-left: auto;
|
||||||
|
flex: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.selectbox {
|
||||||
|
display: inline-flex;
|
||||||
|
width: 45%;
|
||||||
|
margin-right: 1%;
|
||||||
|
}
|
||||||
|
+ .searchbox {
|
||||||
|
width: 54%;
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
|
@ -13,14 +13,15 @@
|
||||||
</mat-nested-tree-node>
|
</mat-nested-tree-node>
|
||||||
<mat-nested-tree-node *matTreeNodeDef="let node; when: hasChildren">
|
<mat-nested-tree-node *matTreeNodeDef="let node; when: hasChildren">
|
||||||
<li>
|
<li>
|
||||||
<div class="mat-tree-node" (click)="onClickNode(node)">
|
<div class="mat-tree-node" (click)="onClickNode(node)" class="path">
|
||||||
<button
|
<button
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
matTreeNodeToggle
|
matTreeNodeToggle
|
||||||
[attr.aria-label]="'toggle ' + node.filename"
|
[attr.aria-label]="'toggle ' + node.filename"
|
||||||
>
|
>
|
||||||
<mat-icon class="mat-icon-rtl-mirror">
|
<mat-icon class="mat-icon-rtl-mirror">
|
||||||
{{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}
|
<!-- {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}-->
|
||||||
|
{{ treeControl.isExpanded(node) ? 'remove' : 'add' }}
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
{{ node.title }}
|
{{ node.title }}
|
||||||
|
@ -28,7 +29,7 @@
|
||||||
<ul
|
<ul
|
||||||
[class.organization-tree-node-invisible]="!treeControl.isExpanded(node)"
|
[class.organization-tree-node-invisible]="!treeControl.isExpanded(node)"
|
||||||
>
|
>
|
||||||
<div *ngIf="treeControl.isExpanded(node)">
|
<div *ngIf="treeControl.isExpanded(node)" class="boxnone">
|
||||||
<ng-container matTreeNodeOutlet></ng-container>
|
<ng-container matTreeNodeOutlet></ng-container>
|
||||||
</div>
|
</div>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -1,12 +1,61 @@
|
||||||
.organization-tree {
|
.organization-tree {
|
||||||
|
padding:10px;
|
||||||
ul,
|
ul,
|
||||||
li {
|
li {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
|
padding-left: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.organization-tree-node-invisible {
|
.organization-tree-node-invisible {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.mat-tree-node {
|
||||||
|
min-height: 30px;
|
||||||
|
font-size: 13px;
|
||||||
|
padding-left:20px;
|
||||||
|
margin-top:4px;
|
||||||
|
&:hover {
|
||||||
|
background-color: #f4f4f4;
|
||||||
|
border:1px solid #cccccc;
|
||||||
|
border-radius:4px;
|
||||||
|
box-shadow: 0 1px 4px rgba(32, 33, 36, 0.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.path {
|
||||||
|
//border: 1px solid #dddddd;
|
||||||
|
padding: 4px;
|
||||||
|
margin-top: 10px;
|
||||||
|
//box-shadow: 0 1px 4px rgba(32, 33, 36, 0.1);
|
||||||
|
+ ul{
|
||||||
|
li:last-chlid{
|
||||||
|
border-bottom:1px solid #dddddd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.mat-icon-button{
|
||||||
|
padding: 0;
|
||||||
|
min-width: 0;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
line-height: 20px;
|
||||||
|
margin-right:10px;
|
||||||
|
.mat-icon-rtl-mirror{
|
||||||
|
line-height: 14px;
|
||||||
|
font-size: 14px;
|
||||||
|
border: 1px solid #dddddd;
|
||||||
|
padding: 2px;
|
||||||
|
font-size: 14px;
|
||||||
|
min-width: 14px;
|
||||||
|
min-height: 14px;
|
||||||
|
line-height: 14px;
|
||||||
|
width:20px;
|
||||||
|
height:20px;
|
||||||
|
box-shadow: 0 1px 4px rgba(32, 33, 36, 0.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -39,12 +39,14 @@
|
||||||
{{ userInfo.deptName }}
|
{{ userInfo.deptName }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<!-- 상태메시지 제외
|
||||||
|
<div
|
||||||
class="msg-status"
|
class="msg-status"
|
||||||
*ngIf="!checkable && userInfo.intro.trim() && !compactable"
|
*ngIf="!checkable && userInfo.intro.trim() && !compactable"
|
||||||
>
|
>
|
||||||
{{ userInfo.intro }}
|
{{ userInfo.intro }}
|
||||||
</div>
|
</div>
|
||||||
|
-->
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<mat-checkbox
|
<mat-checkbox
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
@charset 'utf-8';
|
@charset 'utf-8';
|
||||||
@import '../../../../ucap-webmessenger-app/src/assets/scss/global/common.scss';
|
@import '../../../../ucap-webmessenger-app/src/assets/scss/global/common';
|
||||||
|
|
||||||
|
|
||||||
%list-item {
|
%list-item {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -7,17 +8,17 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: $listH-row2;
|
height: $listH-row2;
|
||||||
border-bottom: 1px solid #dddddd;
|
border-bottom: $line-basic;
|
||||||
padding: 0 10px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
%presence {
|
%presence {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: $presence-size;
|
width: $presence-size;
|
||||||
height: $presence-size;
|
height: $presence-size;
|
||||||
//margin-top: position-m($listH-row2, $presence-size, 0);
|
align-self: flex-start;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
text-indent: -10000000px;
|
text-indent: -10000000px;
|
||||||
margin-right: 8px;
|
margin-right: 4px;
|
||||||
border-radius: 100px;
|
border-radius: 100px;
|
||||||
}
|
}
|
||||||
%msg-status {
|
%msg-status {
|
||||||
|
@ -28,7 +29,7 @@
|
||||||
padding: 2px 6px;
|
padding: 2px 6px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@include ellipsis(20);
|
@include ellipsis(2);
|
||||||
@include border-radius(4px);
|
@include border-radius(4px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,51 +61,49 @@
|
||||||
.item-default {
|
.item-default {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
.thumbnail {
|
dt{
|
||||||
width: $thumbnail-msize;
|
flex:none;
|
||||||
height: $thumbnail-msize;
|
.thumbnail {
|
||||||
margin-right: 12px;
|
width: $thumbnail-msize;
|
||||||
@include border-radius(100px);
|
height: $thumbnail-msize;
|
||||||
|
margin-right: 16px;
|
||||||
|
@include border-radius(50%);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.info {
|
|
||||||
|
.info{
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
width: calc(100% - 50px);
|
width: calc(100% - 50px);
|
||||||
.detail {
|
.detail{
|
||||||
display: inline-block;
|
flex-flow: column;
|
||||||
float: left;
|
|
||||||
.name {
|
.name {
|
||||||
font-size: 14px;
|
font-size: 13px;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
|
color: $font-dark;
|
||||||
@include ellipsis(1);
|
@include ellipsis(1);
|
||||||
b {
|
b {
|
||||||
font-weight: bold;
|
font-size: 16px;
|
||||||
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.dept {
|
.dept {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
color: $font-mid;
|
||||||
@include ellipsis(1);
|
@include ellipsis(1);
|
||||||
}
|
}
|
||||||
}
|
.msg-status {
|
||||||
.msg-status {
|
display: inline-block;
|
||||||
display: inline-block;
|
float: right;
|
||||||
float: right;
|
@extend %msg-status;
|
||||||
@extend %msg-status;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//가변에 따른 list-item width값 변경
|
//가변에 따른 list-item width값 변경
|
||||||
.list-item {
|
.list-item {
|
||||||
.item-default {
|
|
||||||
.detail {
|
|
||||||
width: 60%;
|
|
||||||
}
|
|
||||||
.msg-status {
|
|
||||||
width: 38%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.presence {
|
.presence {
|
||||||
+ .item-default {
|
+ .item-default {
|
||||||
width: calc(100% - 20px);
|
width: calc(100% - 20px);
|
||||||
|
|
|
@ -1,6 +1,21 @@
|
||||||
<div>
|
<div class="list-item">
|
||||||
<div class="room-name">{{ getRoomName(roomInfo) }}</div>
|
<dl class="item-default">
|
||||||
<div>{{ roomInfo.finalEventDate }}</div>
|
<dt>
|
||||||
<div>{{ finalEventMessage }}</div>
|
<img class="thumbnail" />
|
||||||
<div *ngIf="roomInfo.noReadCnt > 0">noReadCnt : {{ roomInfo.noReadCnt }}</div>
|
</dt>
|
||||||
|
<dd class="info">
|
||||||
|
<div class="detail">
|
||||||
|
<div class="room-name">
|
||||||
|
<div class="name">{{ getRoomName(roomInfo) }}</div>
|
||||||
|
<div class="num" *ngIf="roomInfo.noReadCnt > 0">
|
||||||
|
noReadCnt : {{ roomInfo.noReadCnt }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="room-msg">{{ finalEventMessage }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="date">{{ roomInfo.finalEventDate }}</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<span class="noti">1</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
|
@charset 'utf-8';
|
||||||
|
@import '../../../../ucap-webmessenger-app/src/assets/scss/global/common.scss';
|
||||||
.profile {
|
.profile {
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
letter-spacing: 0.01em;
|
letter-spacing: 0.01em;
|
||||||
min-height: 88px;
|
min-height: 88px;
|
||||||
border-bottom: 1px solid;
|
border-bottom: $line-basic;
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
|
@ -16,8 +18,7 @@
|
||||||
|
|
||||||
.profile-name {
|
.profile-name {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
white-space: nowrap;
|
@include ellipsis(1)
|
||||||
text-overflow: ellipsis;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile-last-message {
|
.profile-last-message {
|
||||||
|
@ -44,3 +45,84 @@
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
%list-item {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
height: $listH-row2;
|
||||||
|
border-bottom: $line-basic;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
.item-default {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
.thumbnail {
|
||||||
|
width: $thumbnail-msize;
|
||||||
|
height: $thumbnail-msize;
|
||||||
|
margin-right: 16px;
|
||||||
|
@include border-radius(100px);
|
||||||
|
}
|
||||||
|
.info {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: calc(100% - 50px);
|
||||||
|
.detail {
|
||||||
|
flex-direction: column;
|
||||||
|
width: calc(100% - 80px);
|
||||||
|
.room-name {
|
||||||
|
display: inline-flex;
|
||||||
|
color: $font-dark;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
.name {
|
||||||
|
font-size: 16px;
|
||||||
|
@include ellipsis(1);
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.num {
|
||||||
|
font-size: 12px;
|
||||||
|
color: $color-main;
|
||||||
|
flex: none;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.room-msg {
|
||||||
|
font-size: 12px;
|
||||||
|
color: $font-mid;
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.date {
|
||||||
|
float: right;
|
||||||
|
width: 70px;
|
||||||
|
font-size: 11px;
|
||||||
|
text-align: right;
|
||||||
|
margin-left: 10px;
|
||||||
|
color: $font-mid;
|
||||||
|
@include ellipsis(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-item {
|
||||||
|
@extend %list-item;
|
||||||
|
&:hover {
|
||||||
|
background-color: $bg-list-hover;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.noti {
|
||||||
|
position: absolute;
|
||||||
|
right: 22px;
|
||||||
|
bottom: 22px;
|
||||||
|
max-width: 60px;
|
||||||
|
padding: 0 6px;
|
||||||
|
font-size: 11px;
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: $color-main;
|
||||||
|
@include ellipsis(1);
|
||||||
|
@include border-radius(100px);
|
||||||
|
}
|
||||||
|
|