@chat21/chat21-ionic 3.0.78 → 3.0.79-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/package.json +1 -1
  3. package/src/app/app.component.scss +2 -1
  4. package/src/app/app.component.ts +52 -7
  5. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +8 -1
  6. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +36 -10
  7. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +110 -38
  8. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +15 -2
  9. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +1 -1
  10. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +3 -1
  11. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.html +5 -1
  12. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.scss +22 -15
  13. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.ts +25 -5
  14. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.html +2 -1
  15. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss +14 -15
  16. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.ts +24 -5
  17. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.html +6 -1
  18. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss +12 -13
  19. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.ts +26 -5
  20. package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.scss +2 -2
  21. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.html +16 -6
  22. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.ts +2 -0
  23. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +78 -52
  24. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +62 -20
  25. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +14 -10
  26. package/src/app/components/canned-response/canned-response.component.html +4 -4
  27. package/src/app/components/canned-response/canned-response.component.scss +1 -1
  28. package/src/app/components/canned-response/canned-response.component.ts +1 -0
  29. package/src/app/components/contacts-directory/contacts-directory.component.html +22 -26
  30. package/src/app/components/contacts-directory/contacts-directory.component.scss +8 -6
  31. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +61 -42
  32. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +98 -61
  33. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +9 -25
  34. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +4 -4
  35. package/src/app/components/conversation-info/info-content/info-content.component.html +2 -1
  36. package/src/app/components/conversation-info/info-content/info-content.component.ts +3 -2
  37. package/src/app/components/conversation-info/info-direct/info-direct.component.html +1 -9
  38. package/src/app/components/conversation-info/info-direct/info-direct.component.ts +0 -2
  39. package/src/app/components/conversation-info/info-group/info-group.component.html +44 -108
  40. package/src/app/components/conversation-info/info-group/info-group.component.scss +101 -61
  41. package/src/app/components/conversation-info/info-group/info-group.component.ts +1 -0
  42. package/src/app/components/{ddp-header/ddp-header.component.html → conversations-list/header-conversations-list/header-conversations-list.component.html} +2 -2
  43. package/src/app/components/{ddp-header/ddp-header.component.scss → conversations-list/header-conversations-list/header-conversations-list.component.scss} +16 -4
  44. package/src/app/components/{ddp-header/ddp-header.component.spec.ts → conversations-list/header-conversations-list/header-conversations-list.component.spec.ts} +6 -6
  45. package/src/app/components/{ddp-header/ddp-header.component.ts → conversations-list/header-conversations-list/header-conversations-list.component.ts} +7 -16
  46. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.html +12 -0
  47. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.scss +14 -0
  48. package/src/app/components/{conversation-detail/option-header/option-header.component.spec.ts → conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.spec.ts} +5 -5
  49. package/src/app/components/{conversation-detail/option-header/option-header.component.ts → conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.ts} +5 -4
  50. package/src/app/components/project-item/project-item.component.html +98 -149
  51. package/src/app/components/project-item/project-item.component.scss +39 -32
  52. package/src/app/components/project-item/project-item.component.ts +5 -3
  53. package/src/app/components/utils/user-presence/user-presence.component.html +7 -2
  54. package/src/app/components/utils/user-presence/user-presence.component.scss +35 -18
  55. package/src/app/components/utils/user-presence/user-presence.component.ts +6 -10
  56. package/src/app/pages/contacts-directory/contacts-directory.page.html +1 -1
  57. package/src/app/pages/contacts-directory/contacts-directory.page.scss +41 -0
  58. package/src/app/pages/contacts-directory/contacts-directory.page.ts +2 -0
  59. package/src/app/pages/conversation-detail/conversation-detail.page.html +40 -23
  60. package/src/app/pages/conversation-detail/conversation-detail.page.scss +40 -250
  61. package/src/app/pages/conversation-detail/conversation-detail.page.ts +165 -46
  62. package/src/app/pages/conversations-list/conversations-list.page.html +11 -8
  63. package/src/app/pages/conversations-list/conversations-list.page.scss +10 -2
  64. package/src/app/pages/conversations-list/conversations-list.page.ts +22 -17
  65. package/src/app/pages/loader-preview/loader-preview.page.html +1 -1
  66. package/src/app/pages/loader-preview/loader-preview.page.scss +4 -0
  67. package/src/app/pages/profile-info/profile-info.page.html +2 -4
  68. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +1 -1
  69. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +42 -0
  70. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +1 -0
  71. package/src/app/shared/shared.module.ts +24 -24
  72. package/src/assets/i18n/ar.json +270 -265
  73. package/src/assets/i18n/az.json +5 -0
  74. package/src/assets/i18n/de.json +5 -0
  75. package/src/assets/i18n/en.json +5 -0
  76. package/src/assets/i18n/es.json +5 -0
  77. package/src/assets/i18n/fr.json +5 -0
  78. package/src/assets/i18n/it.json +5 -0
  79. package/src/assets/i18n/kk.json +5 -0
  80. package/src/assets/i18n/pt.json +5 -0
  81. package/src/assets/i18n/ru.json +5 -0
  82. package/src/assets/i18n/sr.json +5 -0
  83. package/src/assets/i18n/sv.json +5 -0
  84. package/src/assets/i18n/tr.json +5 -0
  85. package/src/assets/i18n/uk.json +5 -0
  86. package/src/assets/i18n/uz.json +5 -0
  87. package/src/assets/sounds/wheep-wheep.mp3 +0 -0
  88. package/src/chat21-core/providers/firebase/firebase-typing.service.ts +7 -9
  89. package/src/chat21-core/utils/constants.ts +5 -1
  90. package/src/chat21-core/utils/user-typing/user-typing.component.html +8 -5
  91. package/src/chat21-core/utils/user-typing/user-typing.component.scss +87 -17
  92. package/src/chat21-core/utils/user-typing/user-typing.component.ts +12 -94
  93. package/src/chat21-core/utils/utils.ts +9 -1
  94. package/src/global.scss +47 -43
  95. package/src/variables.scss +26 -9
  96. package/src/app/components/conversation-detail/option-header/option-header.component.html +0 -13
  97. package/src/app/components/conversation-detail/option-header/option-header.component.scss +0 -0
@@ -1,113 +1,31 @@
1
- import { Component, OnInit, OnDestroy, Input } from '@angular/core';
2
-
3
- // services
4
- import { TypingService } from '../../providers/abstract/typing.service';
5
-
6
- // Logger
7
- import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
8
- import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
1
+ import { Component, OnInit, OnDestroy, Input, ElementRef } from '@angular/core';
9
2
 
10
3
  @Component({
11
- selector: 'app-user-typing',
4
+ selector: 'user-typing',
12
5
  templateUrl: './user-typing.component.html',
13
6
  styleUrls: ['./user-typing.component.scss'],
14
7
  })
15
8
  export class UserTypingComponent implements OnInit, OnDestroy {
16
9
 
17
- @Input() idConversation: string;
18
- @Input() idCurrentUser: string;
19
- @Input() isDirect: boolean;
10
+ // @Input() idConversation: string;
11
+ // @Input() idCurrentUser: string;
12
+ // @Input() isDirect: boolean;
13
+ @Input() typingLocation: string = 'content'
20
14
  @Input() translationMap: Map<string, string>;
21
- @Input() color: string;
22
- @Input() membersConversation: [string];
23
-
24
- public status = '';
25
- public isTyping = false;
26
- public nameUserTypingNow: string;
27
-
28
- private setTimeoutWritingMessages: any;
29
- private subscriptions = [];
30
-
31
- private logger: LoggerService = LoggerInstance.getInstance();
15
+ @Input() themeColor: string;
16
+ @Input() idUserTypingNow: string;
17
+ @Input() nameUserTypingNow: string;
18
+ // @Input() membersConversation: [string];
32
19
 
33
- constructor(
34
- public typingService: TypingService
35
- ) { }
20
+ constructor(private elementRef: ElementRef) { }
36
21
 
37
22
  /** */
38
23
  ngOnInit() {
39
- this.logger.log('[USER-TYPING-COMPONENT] - ngOnInit');
40
- this.initialize();
24
+ this.elementRef.nativeElement.style.setProperty('--themeColor', this.themeColor);
41
25
  }
42
26
 
43
27
  /** */
44
28
  ngOnDestroy() {
45
- this.logger.log('UserTypingComponent - ngOnDestroy');
46
- // this.unsubescribeAll();
47
- }
48
-
49
- /** */
50
- initialize() {
51
- this.status = ''; // this.translationMap.get('LABEL_AVAILABLE');
52
- this.logger.log('this.translationMap', this.translationMap);
53
- this.logger.log('this.status', this.status);
54
- this.setSubscriptions();
55
- this.typingService.isTyping(this.idConversation, this.idCurrentUser, this.isDirect);
56
- }
57
-
58
- /** */
59
- private setSubscriptions() {
60
- const that = this;
61
- const conversationSelected = this.subscriptions.find(item => item.key === this.idConversation);
62
- if (!conversationSelected) {
63
- const subscribeBSIsTyping = this.typingService.BSIsTyping.subscribe((data: any) => {
64
- this.logger.log('***** BSIsTyping *****', data);
65
- if (data) {
66
- const isTypingUid = data.uid;
67
- if (this.idConversation === isTypingUid) {
68
- that.subscribeTypings(data);
69
- }
70
- }
71
- });
72
- const subscribe = {key: this.idConversation, value: subscribeBSIsTyping };
73
- this.subscriptions.push(subscribe);
74
- }
75
- }
76
-
77
- /** */
78
- subscribeTypings(data: any) {
79
- const that = this;
80
- try {
81
- const key = data.uidUserTypingNow;
82
- this.nameUserTypingNow = null;
83
- if (data.nameUserTypingNow) {
84
- this.nameUserTypingNow = data.nameUserTypingNow;
85
- }
86
- this.logger.log('subscribeTypings data:', data);
87
- const userTyping = this.membersConversation.includes(key);
88
- if ( !userTyping ) {
89
- this.isTyping = true;
90
- this.logger.log('child_changed key', key);
91
- this.logger.log('child_changed name', this.nameUserTypingNow);
92
- clearTimeout(this.setTimeoutWritingMessages);
93
- this.setTimeoutWritingMessages = setTimeout(() => {
94
- that.isTyping = false;
95
- }, 2000);
96
- }
97
- } catch (error) {
98
- this.logger.log('error: ', error);
99
- }
100
- }
101
-
102
-
103
- /** */
104
- private unsubescribeAll() {
105
- this.logger.log('UserTypingComponent unsubescribeAll: ', this.subscriptions);
106
- this.subscriptions.forEach((subscription: any) => {
107
- this.logger.log('unsubescribe: ', subscription);
108
- subscription.unsubescribe();
109
- });
110
- this.subscriptions = [];
111
29
  }
112
30
 
113
31
 
@@ -590,8 +590,10 @@ export function setConversationAvatar(
590
590
  conversationWith: string,
591
591
  conversationWithFullname: string,
592
592
  conversationChannelType: string,
593
+ projectId?: string,
594
+ project_name?: string,
593
595
  width?: string,
594
- height?: string
596
+ height?: string,
595
597
  ): any {
596
598
  const conversationWidth = (width) ? width : '40px';
597
599
  const conversationHeight = (height) ? height : '40px';
@@ -602,6 +604,8 @@ export function setConversationAvatar(
602
604
  channelType: conversationChannelType,
603
605
  avatar: avatarPlaceholder(conversationWithFullname),
604
606
  color: getColorBck(conversationWithFullname),
607
+ projectId: projectId,
608
+ project_name: project_name,
605
609
  width: conversationWidth,
606
610
  height: conversationHeight
607
611
  };
@@ -810,6 +814,10 @@ export function redirect2(router, IDConv, conversationSelected) {
810
814
  /** */
811
815
  export function checkPlatformIsMobile() {
812
816
  // console.log('UTILS - checkPlatformIsMobile:: ', window.innerWidth);
817
+ // if (/Android|iPhone/i.test(window.navigator.userAgent)) {
818
+ // return true
819
+ // }
820
+ // return false
813
821
  if (window.innerWidth < 768) {
814
822
  return true;
815
823
  }
package/src/global.scss CHANGED
@@ -794,66 +794,70 @@ select:-webkit-autofill:focus {
794
794
  }
795
795
 
796
796
  // select teammate status in user detail drawer
797
- .ng-select.teammate-status-in-drawer {
797
+ .teammate-status-in-drawer {
798
+
799
+ &.ng-select {
798
800
 
799
- .ng-select-container {
800
- background-color: #2d323e;
801
- color: #fff;
802
- border: 1px solid #2d323e;
803
- }
804
- &.ng-select-opened{
805
801
  .ng-select-container {
806
802
  background-color: #2d323e;
803
+ color: #fff;
807
804
  border: 1px solid #2d323e;
808
805
  }
806
+ &.ng-select-opened{
807
+ .ng-select-container {
808
+ background-color: #2d323e;
809
+ border: 1px solid #2d323e;
810
+ }
811
+ }
812
+
813
+ &.ng-select-focused:not(.ng-select-opened){
814
+ >.ng-select-container{
815
+ border: 1px solid #2d323e;
816
+ box-shadow: unset;
817
+ }
818
+ }
819
+
820
+
809
821
  }
810
822
 
811
- &.ng-select-focused:not(.ng-select-opened){
812
- >.ng-select-container{
823
+ .ng-dropdown-panel {
824
+ background-color: #2d323e;
825
+ border: 1px solid #2d323e;
826
+
827
+ &.ng-select-bottom {
813
828
  border: 1px solid #2d323e;
814
- box-shadow: unset;
815
- }
816
- }
817
-
829
+ margin-top: 8px;
830
+ border-top-right-radius: 4px;
831
+ border-top-left-radius: 4px;
832
+ }
818
833
 
819
- }
820
-
821
- .ng-dropdown-panel {
822
- background-color: #2d323e;
823
- border: 1px solid #2d323e;
824
-
825
- &.ng-select-bottom {
826
- border: 1px solid #2d323e;
827
- margin-top: 8px;
828
- border-top-right-radius: 4px;
829
- border-top-left-radius: 4px;
830
- }
831
-
832
- .ng-dropdown-panel-items {
833
- .ng-option {
834
- background-color: #2d323e;
835
- color: #fff;
836
-
837
- &.ng-option-marked {
838
- background-color: rgba(30, 33, 41, 0.3);
839
- color: #fff;
840
- }
841
-
842
- &.ng-option-selected {
834
+ .ng-dropdown-panel-items {
835
+ .ng-option {
843
836
  background-color: #2d323e;
844
837
  color: #fff;
838
+
839
+ &.ng-option-marked {
840
+ background-color: rgba(30, 33, 41, 0.3);
841
+ color: #fff;
842
+ }
843
+
844
+ &.ng-option-selected {
845
+ background-color: #2d323e;
846
+ color: #fff;
847
+ }
848
+
849
+ &.ng-option-marked.ng-option-selected{
850
+ background-color: rgba(30, 33, 41, 0.3);
851
+ color: #fff;
852
+ }
845
853
  }
846
-
847
- &.ng-option-marked.ng-option-selected{
848
- background-color: rgba(30, 33, 41, 0.3);
849
- color: #fff;
850
- }
854
+
851
855
  }
852
-
853
856
  }
854
857
  }
855
858
 
856
859
 
860
+
857
861
  /* *** SMALL SIDEBAR STYLE *** */
858
862
  .small-sidebar-tiledesk-nav-user {
859
863
  height: 40px;
@@ -1,4 +1,4 @@
1
- :root {
1
+ body {
2
2
  /* Color palette */
3
3
  --white: #ffffff;
4
4
  --black: #000000;
@@ -7,27 +7,44 @@
7
7
  --basic-green: #0A7D41;
8
8
  --dark-green: #005f3b;
9
9
  --light-green: #8cc841;
10
-
11
10
  --light-gray: #F2F2F2;
12
11
  --basic-gray: #666666;
13
12
  --dark-gray: #363636;
14
-
15
-
16
13
  --light-blue: #C9E4F6;
17
14
  --basic-blue: #2a69c1;
18
15
  --bubble-blue: rgb(0, 153, 255);
19
- --bubble-lightyellow: rgb(255, 247, 237);
20
- --bubble-privateMsg: rgb(254, 214, 168);
21
- --bubble-privateMsgColor: rgb(47, 57, 65);
16
+
22
17
 
23
18
  --basic-yellow: #FFC627;
24
19
  --basic-red: #EB1E23;
25
20
 
26
- --bck-msg-sent: #62a8ea;
21
+ --bck-msg-sent: #2a6ac1;
27
22
  --col-msg-sent:#ffffff;
23
+
24
+ --bck-msg-received: #f0f2f7;
25
+ --col-msg-received: #06132b;
26
+
27
+ --bubble-lightyellow: rgb(255, 247, 237);
28
+ --bubble-privateMsg: rgb(254, 214, 168);
29
+ --bubble-privateMsgColor: rgb(47, 57, 65);
30
+
28
31
  --light-white: #f7f7f7;
29
32
  --black: #1a1a1a;
30
33
  --gray: #aaaaaa;
31
34
 
35
+ --header-height: 60px;
36
+ --list-bkg-color: #f8fafc;
37
+ --list-bkg-color-selected: rgba(24, 119, 242, 0.12); //rgba(24, 119, 242, 0.04);
38
+
39
+ --button-in-msg-font-size: 15px;
40
+ --buttonBackgroundColor: #ffffff;
41
+ --buttonTextColor: #2a6ac1;
42
+ --buttonHoverBackgroundColor: #2a6ac1;
43
+ --buttonHoverTextColor: #ffffff;
44
+
45
+ --padding-conversation-detail: 10px;
46
+
47
+ --border-radius-item: 16px;
48
+ --border-radius-content: 16px
32
49
 
33
- }
50
+ }
@@ -1,13 +0,0 @@
1
- <ion-header no-border class="ion-no-border">
2
- <ion-toolbar>
3
-
4
- <ion-buttons slot="start">
5
- <ion-button ion-button (click)="onBackButtonHandler()">
6
- <ion-icon slot="icon-only" name="arrow-back-outline"></ion-icon>
7
- </ion-button>
8
- </ion-buttons>
9
-
10
- <ion-title> {{headerTitle}}</ion-title>
11
-
12
- </ion-toolbar>
13
- </ion-header>