@hivegpt/hiveai-angular 0.0.375 → 0.0.380

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 (34) hide show
  1. package/README.md +23 -23
  2. package/karma.conf.js +32 -32
  3. package/ng-package.json +6 -6
  4. package/package.json +20 -20
  5. package/src/environments/environment.ts +19 -19
  6. package/src/lib/components/NotificationSocket.ts +37 -37
  7. package/src/lib/components/bot-html-editor/bot-html-editor.component.css +9 -9
  8. package/src/lib/components/bot-html-editor/bot-html-editor.component.html +11 -11
  9. package/src/lib/components/bot-html-editor/bot-html-editor.component.spec.ts +25 -25
  10. package/src/lib/components/bot-html-editor/bot-html-editor.component.ts +152 -152
  11. package/src/lib/components/bot.service.ts +51 -51
  12. package/src/lib/components/chat-drawer/chat-drawer.component.html +1586 -1586
  13. package/src/lib/components/chat-drawer/chat-drawer.component.scss +2906 -2906
  14. package/src/lib/components/chat-drawer/chat-drawer.component.ts +2143 -2143
  15. package/src/lib/components/chatbot/chatbot.component.html +37 -37
  16. package/src/lib/components/chatbot/chatbot.component.scss +97 -97
  17. package/src/lib/components/chatbot/chatbot.component.ts +44 -44
  18. package/src/lib/components/conversation.service.spec.ts +16 -16
  19. package/src/lib/components/conversation.service.ts +54 -54
  20. package/src/lib/components/socket-service.service.spec.ts +16 -16
  21. package/src/lib/components/socket-service.service.ts +77 -77
  22. package/src/lib/components/translations/translation.service.ts +221 -254
  23. package/src/lib/components/video-player/video-player.component.html +51 -51
  24. package/src/lib/components/video-player/video-player.component.scss +262 -262
  25. package/src/lib/components/video-player/video-player.component.ts +148 -148
  26. package/src/lib/hivegpt.module.ts +18 -18
  27. package/src/lib/models/video.ts +36 -36
  28. package/src/lib/pipes/safe-html.pipe.ts +16 -16
  29. package/src/lib/utils/utils.ts +37 -37
  30. package/src/public-api.ts +7 -7
  31. package/tsconfig.lib.json +25 -25
  32. package/tsconfig.lib.prod.json +10 -10
  33. package/tsconfig.spec.json +17 -17
  34. package/tslint.json +17 -17
@@ -1,51 +1,51 @@
1
- <div class="video-wrapper" >
2
- <div class="overlymask-video"></div>
3
- <video (click)="toggleFullscreen()" #video [loop]="true" [muted]="isMuted" [src]="videoObj.processedUrls || videoObj.url" playsinline
4
- [controls]="false"></video>
5
- <div class="main-controls" [class.no-opacity]="video.isPlaying">
6
- <button mat-icon-button *ngIf="!videoObj.isPlaying"
7
- attr.aria-label="Play Video"
8
- title="Play Video" class="play-pause-btn"
9
- (click)="togglePlay(true, video)">
10
- <!-- <mat-icon alt="Play">play_arrow</mat-icon> -->
11
- <span class="material-icons notranslate " aria-hidden="true">play_circle_outline</span>
12
- </button>
13
-
14
- <button mat-icon-button id="pause-btn" [hidden]="!videoObj.isPlaying" class="pause_btn play-pause-btn playing"
15
- title="Pause Video"
16
- [class.half-opacity]="video.isPlaying" (click)="togglePlay(false, video)">
17
- <!-- <mat-icon alt="Pause">pause</mat-icon> -->
18
- <span class="material-icons notranslate " aria-hidden="true">pause_circle_outline</span>
19
- </button>
20
- </div>
21
- <div class="video-actions">
22
- <button class="button-trasparent action" (click)="toggleSound()" title="Mute" *ngIf="isMuted">
23
- <span class="material-icons notranslate " aria-hidden="true">volume_off</span>
24
- </button>
25
- <button class="button-trasparent action" (click)="toggleSound()" title="Unmute" *ngIf="!isMuted">
26
- <span class="material-icons notranslate " aria-hidden="true">volume_up</span>
27
- </button>
28
-
29
- </div>
30
- </div>
31
-
32
- <div class="full-screen" *ngIf="isFullscreen" [ngClass]="{'show': isFullscreen}">
33
- <div class="video-wrapper">
34
- <video #fullscreenvideo (click)="toggleFullscreenPlay()" [loop]="true" [muted]="isMuted" [src]="videoObj.processedUrls || videoObj.url"
35
- playsinline [controls]="false"></video>
36
- <div (click)="toggleFullscreen()" class="close-btn">
37
- <span class="material-icons notranslate ">clear</span>
38
- </div>
39
- <div class="video-actions">
40
- <button *ngIf="!video.isPlaying" title="Play"
41
- class="material-icons notranslate body-text-color fs-h2 play position-absolute transparent-btn" (click)="togglePlay(true, video)">
42
- play_circle_outline
43
- </button>
44
- <button id="pause-btn" [hidden]="!videoObj.isPlaying" title="Pause"
45
- class="pause_btn material-icons body-text-color fs-h2 play position-absolute transparent-btn"
46
- [class.half-opacity]="video.isPlaying" (click)="togglePlay(false, video)">
47
- pause_circle_outline
48
- </button>
49
- </div>
50
- </div>
51
- </div>
1
+ <div class="video-wrapper" >
2
+ <div class="overlymask-video"></div>
3
+ <video (click)="toggleFullscreen()" #video [loop]="true" [muted]="isMuted" [src]="videoObj.processedUrls || videoObj.url" playsinline
4
+ [controls]="false"></video>
5
+ <div class="main-controls" [class.no-opacity]="video.isPlaying">
6
+ <button mat-icon-button *ngIf="!videoObj.isPlaying"
7
+ attr.aria-label="Play Video"
8
+ title="Play Video" class="play-pause-btn"
9
+ (click)="togglePlay(true, video)">
10
+ <!-- <mat-icon alt="Play">play_arrow</mat-icon> -->
11
+ <span class="material-icons notranslate " aria-hidden="true">play_circle_outline</span>
12
+ </button>
13
+
14
+ <button mat-icon-button id="pause-btn" [hidden]="!videoObj.isPlaying" class="pause_btn play-pause-btn playing"
15
+ title="Pause Video"
16
+ [class.half-opacity]="video.isPlaying" (click)="togglePlay(false, video)">
17
+ <!-- <mat-icon alt="Pause">pause</mat-icon> -->
18
+ <span class="material-icons notranslate " aria-hidden="true">pause_circle_outline</span>
19
+ </button>
20
+ </div>
21
+ <div class="video-actions">
22
+ <button class="button-trasparent action" (click)="toggleSound()" title="Mute" *ngIf="isMuted">
23
+ <span class="material-icons notranslate " aria-hidden="true">volume_off</span>
24
+ </button>
25
+ <button class="button-trasparent action" (click)="toggleSound()" title="Unmute" *ngIf="!isMuted">
26
+ <span class="material-icons notranslate " aria-hidden="true">volume_up</span>
27
+ </button>
28
+
29
+ </div>
30
+ </div>
31
+
32
+ <div class="full-screen" *ngIf="isFullscreen" [ngClass]="{'show': isFullscreen}">
33
+ <div class="video-wrapper">
34
+ <video #fullscreenvideo (click)="toggleFullscreenPlay()" [loop]="true" [muted]="isMuted" [src]="videoObj.processedUrls || videoObj.url"
35
+ playsinline [controls]="false"></video>
36
+ <div (click)="toggleFullscreen()" class="close-btn">
37
+ <span class="material-icons notranslate ">clear</span>
38
+ </div>
39
+ <div class="video-actions">
40
+ <button *ngIf="!video.isPlaying" title="Play"
41
+ class="material-icons notranslate body-text-color fs-h2 play position-absolute transparent-btn" (click)="togglePlay(true, video)">
42
+ play_circle_outline
43
+ </button>
44
+ <button id="pause-btn" [hidden]="!videoObj.isPlaying" title="Pause"
45
+ class="pause_btn material-icons body-text-color fs-h2 play position-absolute transparent-btn"
46
+ [class.half-opacity]="video.isPlaying" (click)="togglePlay(false, video)">
47
+ pause_circle_outline
48
+ </button>
49
+ </div>
50
+ </div>
51
+ </div>
@@ -1,262 +1,262 @@
1
- .video-wrapper {
2
- position: relative;
3
- &:hover {
4
- video {
5
- //transform: scale(1.02);
6
- }
7
- }
8
- video {
9
- width: 100%;
10
- height: 330px;
11
- outline: 0;
12
- object-fit: cover;
13
- border-radius: 5px;
14
- cursor: pointer;
15
- transition: 0.3s ease-in-out;
16
- @media only screen and (max-width: 576px) {
17
- //height: 75vh;
18
- }
19
- }
20
- .video-actions {
21
- position: absolute;
22
- right: 10px;
23
- top: 10px;
24
- display: flex;
25
- flex-direction: column;
26
- .action {
27
- margin-bottom: 5px;
28
- cursor: pointer;
29
- color: #fff;
30
- }
31
- }
32
- .author-details {
33
- display: flex;
34
- position: absolute;
35
- bottom: 18px;
36
- left: 12px;
37
- right: 12px;
38
- transition: 0.3s ease-in-out;
39
- justify-content: flex-start;
40
- flex-direction: column;
41
-
42
- .author-image {
43
- // margin-bottom: 5px;
44
- margin-right: 6px;
45
- width: 34px;
46
- height: 34px;
47
- border-radius: 50%;
48
- overflow: hidden;
49
- img {
50
- width: 100%;
51
- height: 100%;
52
- object-fit: cover;
53
- }
54
- }
55
- .author-name {
56
- font-size: 14px;
57
- mix-blend-mode: hard-light;
58
- color: #ffffff;
59
- display: block;
60
- }
61
-
62
- .video-title{
63
- font-size: 14px;
64
- mix-blend-mode: hard-light;
65
- color: #ffffff;
66
- display: block;
67
- }
68
- }
69
- .connect-btn {
70
- width: 100%;
71
- position: absolute;
72
- bottom: 20px;
73
- text-align: center;
74
- outline: 0;
75
- opacity: 0;
76
- transition: 0.3s ease-in-out;
77
- @media only screen and (max-width: 576px) {
78
- opacity: 1;
79
- width: unset;
80
- right: 20px;
81
- }
82
-
83
- button {
84
- margin: auto;
85
- }
86
- }
87
- &:hover {
88
- .author-details {
89
- opacity: 0;
90
- @media only screen and (max-width: 576px) {
91
- opacity: 1;
92
- }
93
- }
94
- .connect-btn {
95
- opacity: 1;
96
- }
97
- }
98
- .half-opacity {
99
- opacity: 0.2;
100
- }
101
-
102
- .no-opacity {
103
- background-color: transparent;
104
- }
105
- }
106
-
107
- .like-btn {
108
- text-align: center;
109
- margin-bottom: 20px;
110
- transition: 0.2s ease-in-out;
111
- .count {
112
- font-size: 16px;
113
- margin-left: 3px;
114
- }
115
- span {
116
- cursor: pointer;
117
- font-size: 30px;
118
- }
119
- &:hover {
120
- transform: scale(1.1);
121
- }
122
-
123
- &.like {
124
- color: #025be7;
125
- }
126
- &.dislike {
127
- color: #8d8d8d;
128
- }
129
- &.info {
130
- color: #aeae3f;
131
- }
132
- }
133
-
134
- .full-screen {
135
- &.show {
136
- width: 100%;
137
- height: 100%;
138
- position: fixed;
139
- top: 0;
140
- left: 0;
141
- display: flex;
142
- justify-content: center;
143
- align-items: center;
144
- background: #1b1a1af5;
145
- z-index: 9999;
146
- .video-wrapper {
147
- video {
148
- transition: none;
149
- transform: none !important;
150
- width: 300px;
151
- height: 270px;
152
- }
153
- }
154
- }
155
- .close-btn {
156
- position: absolute;
157
- left: 10px;
158
- top: 10px;
159
- cursor: pointer;
160
- span {
161
- color: #fff;
162
- }
163
- }
164
- }
165
-
166
- .main-controls {
167
- top: 0;
168
- left: 0;
169
- right: 0;
170
- bottom: 0;
171
- position: absolute;
172
- display: flex;
173
- align-items: center;
174
- justify-content: center;
175
- background-color: rgb(0 0 0 / 30%);
176
-
177
- .play-pause-btn {
178
- // line-height: 0;
179
- // color: #fff;
180
- // display: flex;
181
- // align-items: center;
182
- // justify-content: center;
183
- line-height: 0;
184
- color: #fff;
185
- display: flex;
186
- align-items: center;
187
- justify-content: center;
188
- background: none;
189
- border: none;
190
- position: absolute;
191
- top: 34%;
192
- &.playing {
193
- position: absolute;
194
- top: 40%;
195
- left: 50%;
196
- transform: translate(-50%, -50%);
197
- cursor: pointer;
198
- span {
199
- //font-size: 65px;
200
- color: #fff;
201
- text-shadow: 0px 0px 6px rgb(47 47 47 / 36%);
202
- }
203
- }
204
- &:focus {
205
- outline: none;
206
- }
207
-
208
- .material-icons {
209
- font-size: 40px;
210
- }
211
-
212
- .mat-icon {
213
- height: auto;
214
- width: auto;
215
- }
216
- }
217
- .half-opacity {
218
- opacity: 0.2;
219
- }
220
-
221
- .no-opacity {
222
- background-color: transparent;
223
- }
224
- }
225
-
226
- button.transparent-btn {
227
- background: transparent;
228
- border: 0 !important;
229
- }
230
-
231
- .pause_btn {
232
- width: 100%;
233
- height: 100%;
234
-
235
- &:hover {
236
- opacity: 1 !important;
237
- background-color: #000000bd;
238
- }
239
-
240
- opacity: 0.02 !important;
241
- }
242
-
243
- .hide-pause-btn {
244
- opacity: 0 !important;
245
- }
246
-
247
- .no-photo{
248
- height: 35px;
249
- width: 35px;
250
- display: flex;
251
- align-items: center;
252
- justify-content: center;
253
- font-size: 14px;
254
- }
255
- .overlymask-video {
256
- background-image: linear-gradient(#ffffff0f, #0000002e);
257
- position: absolute;
258
- width: 100%;
259
- height: 275px;
260
- z-index: 0;
261
- background-position: 0 bottom;
262
- }
1
+ .video-wrapper {
2
+ position: relative;
3
+ &:hover {
4
+ video {
5
+ //transform: scale(1.02);
6
+ }
7
+ }
8
+ video {
9
+ width: 100%;
10
+ height: 330px;
11
+ outline: 0;
12
+ object-fit: cover;
13
+ border-radius: 5px;
14
+ cursor: pointer;
15
+ transition: 0.3s ease-in-out;
16
+ @media only screen and (max-width: 576px) {
17
+ //height: 75vh;
18
+ }
19
+ }
20
+ .video-actions {
21
+ position: absolute;
22
+ right: 10px;
23
+ top: 10px;
24
+ display: flex;
25
+ flex-direction: column;
26
+ .action {
27
+ margin-bottom: 5px;
28
+ cursor: pointer;
29
+ color: #fff;
30
+ }
31
+ }
32
+ .author-details {
33
+ display: flex;
34
+ position: absolute;
35
+ bottom: 18px;
36
+ left: 12px;
37
+ right: 12px;
38
+ transition: 0.3s ease-in-out;
39
+ justify-content: flex-start;
40
+ flex-direction: column;
41
+
42
+ .author-image {
43
+ // margin-bottom: 5px;
44
+ margin-right: 6px;
45
+ width: 34px;
46
+ height: 34px;
47
+ border-radius: 50%;
48
+ overflow: hidden;
49
+ img {
50
+ width: 100%;
51
+ height: 100%;
52
+ object-fit: cover;
53
+ }
54
+ }
55
+ .author-name {
56
+ font-size: 14px;
57
+ mix-blend-mode: hard-light;
58
+ color: #ffffff;
59
+ display: block;
60
+ }
61
+
62
+ .video-title{
63
+ font-size: 14px;
64
+ mix-blend-mode: hard-light;
65
+ color: #ffffff;
66
+ display: block;
67
+ }
68
+ }
69
+ .connect-btn {
70
+ width: 100%;
71
+ position: absolute;
72
+ bottom: 20px;
73
+ text-align: center;
74
+ outline: 0;
75
+ opacity: 0;
76
+ transition: 0.3s ease-in-out;
77
+ @media only screen and (max-width: 576px) {
78
+ opacity: 1;
79
+ width: unset;
80
+ right: 20px;
81
+ }
82
+
83
+ button {
84
+ margin: auto;
85
+ }
86
+ }
87
+ &:hover {
88
+ .author-details {
89
+ opacity: 0;
90
+ @media only screen and (max-width: 576px) {
91
+ opacity: 1;
92
+ }
93
+ }
94
+ .connect-btn {
95
+ opacity: 1;
96
+ }
97
+ }
98
+ .half-opacity {
99
+ opacity: 0.2;
100
+ }
101
+
102
+ .no-opacity {
103
+ background-color: transparent;
104
+ }
105
+ }
106
+
107
+ .like-btn {
108
+ text-align: center;
109
+ margin-bottom: 20px;
110
+ transition: 0.2s ease-in-out;
111
+ .count {
112
+ font-size: 16px;
113
+ margin-left: 3px;
114
+ }
115
+ span {
116
+ cursor: pointer;
117
+ font-size: 30px;
118
+ }
119
+ &:hover {
120
+ transform: scale(1.1);
121
+ }
122
+
123
+ &.like {
124
+ color: #025be7;
125
+ }
126
+ &.dislike {
127
+ color: #8d8d8d;
128
+ }
129
+ &.info {
130
+ color: #aeae3f;
131
+ }
132
+ }
133
+
134
+ .full-screen {
135
+ &.show {
136
+ width: 100%;
137
+ height: 100%;
138
+ position: fixed;
139
+ top: 0;
140
+ left: 0;
141
+ display: flex;
142
+ justify-content: center;
143
+ align-items: center;
144
+ background: #1b1a1af5;
145
+ z-index: 9999;
146
+ .video-wrapper {
147
+ video {
148
+ transition: none;
149
+ transform: none !important;
150
+ width: 300px;
151
+ height: 270px;
152
+ }
153
+ }
154
+ }
155
+ .close-btn {
156
+ position: absolute;
157
+ left: 10px;
158
+ top: 10px;
159
+ cursor: pointer;
160
+ span {
161
+ color: #fff;
162
+ }
163
+ }
164
+ }
165
+
166
+ .main-controls {
167
+ top: 0;
168
+ left: 0;
169
+ right: 0;
170
+ bottom: 0;
171
+ position: absolute;
172
+ display: flex;
173
+ align-items: center;
174
+ justify-content: center;
175
+ background-color: rgb(0 0 0 / 30%);
176
+
177
+ .play-pause-btn {
178
+ // line-height: 0;
179
+ // color: #fff;
180
+ // display: flex;
181
+ // align-items: center;
182
+ // justify-content: center;
183
+ line-height: 0;
184
+ color: #fff;
185
+ display: flex;
186
+ align-items: center;
187
+ justify-content: center;
188
+ background: none;
189
+ border: none;
190
+ position: absolute;
191
+ top: 34%;
192
+ &.playing {
193
+ position: absolute;
194
+ top: 40%;
195
+ left: 50%;
196
+ transform: translate(-50%, -50%);
197
+ cursor: pointer;
198
+ span {
199
+ //font-size: 65px;
200
+ color: #fff;
201
+ text-shadow: 0px 0px 6px rgb(47 47 47 / 36%);
202
+ }
203
+ }
204
+ &:focus {
205
+ outline: none;
206
+ }
207
+
208
+ .material-icons {
209
+ font-size: 40px;
210
+ }
211
+
212
+ .mat-icon {
213
+ height: auto;
214
+ width: auto;
215
+ }
216
+ }
217
+ .half-opacity {
218
+ opacity: 0.2;
219
+ }
220
+
221
+ .no-opacity {
222
+ background-color: transparent;
223
+ }
224
+ }
225
+
226
+ button.transparent-btn {
227
+ background: transparent;
228
+ border: 0 !important;
229
+ }
230
+
231
+ .pause_btn {
232
+ width: 100%;
233
+ height: 100%;
234
+
235
+ &:hover {
236
+ opacity: 1 !important;
237
+ background-color: #000000bd;
238
+ }
239
+
240
+ opacity: 0.02 !important;
241
+ }
242
+
243
+ .hide-pause-btn {
244
+ opacity: 0 !important;
245
+ }
246
+
247
+ .no-photo{
248
+ height: 35px;
249
+ width: 35px;
250
+ display: flex;
251
+ align-items: center;
252
+ justify-content: center;
253
+ font-size: 14px;
254
+ }
255
+ .overlymask-video {
256
+ background-image: linear-gradient(#ffffff0f, #0000002e);
257
+ position: absolute;
258
+ width: 100%;
259
+ height: 275px;
260
+ z-index: 0;
261
+ background-position: 0 bottom;
262
+ }