@chat21/chat21-ionic 3.0.107-rc.9 → 3.0.108-rc.1
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.
- package/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/src/app/app.module.ts +6 -4
- package/src/app/chatlib/conversation-detail/message/avatar/avatar.component.ts +0 -1
- package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.scss +5 -5
- package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss +5 -5
- package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss +5 -5
- package/src/app/components/authentication/login/login.component.scss +1 -1
- package/src/app/components/authentication/login/login.component.ts +1 -1
- package/src/app/components/conversation-info/info-support-group/info-support-group.component.ts +1 -1
- package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.html +2 -3
- package/src/app/components/sidebar/sidebar.component.html +4 -7
- package/src/app/components/sidebar/sidebar.component.scss +6 -0
- package/src/app/components/sidebar/sidebar.component.ts +4 -0
- package/src/app/modals/send-email/send-email.page.html +1 -1
- package/src/app/modals/send-email/send-email.page.scss +2 -0
- package/src/app/modals/send-email/send-email.page.ts +2 -0
- package/src/app/pages/authentication/login/login.page.html +1 -0
- package/src/app/pages/authentication/login/login.page.ts +5 -2
- package/src/app/services/brand/brand.service.spec.ts +16 -0
- package/src/app/services/brand/brand.service.ts +210 -0
- package/src/app/utils/BrandResources.ts +59 -0
- package/src/app/utils/utils-resources.ts +22 -0
- package/src/assets/logos/tiledesk-logo_new_white.svg +45 -0
- package/src/assets/logos/tiledesk_logo.svg +51 -0
- package/src/assets/logos/tiledesk_logo_no_text.svg +14 -0
- package/src/assets/logos/tiledesk_logo_white_small.svg +15 -0
- package/src/chat-config-template.json +1 -0
- package/src/chat-config.json +1 -0
- package/src/variables.scss +2 -0
- package/src/assets/transparent.png +0 -0
- /package/src/assets/{chat21-logo.png → logos/chat21-logo.png} +0 -0
- /package/src/assets/{logo.png → logos/logo.png} +0 -0
- /package/src/assets/{tiledesk-solo-logo.png → logos/tiledesk-solo-logo.png} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# chat21-ionic ver 3.0
|
|
2
2
|
|
|
3
|
+
### 3.0.108.rc.1
|
|
4
|
+
- added: brandService to manage remote resources
|
|
5
|
+
- added: brandSrc env property
|
|
6
|
+
- bug-fixed: conversation-list header shows sidebar-user-detail button
|
|
7
|
+
|
|
8
|
+
### 3.0.107 in PROD
|
|
9
|
+
|
|
3
10
|
### 3.0.107.rc.9
|
|
4
11
|
- changed: whatsapp api url
|
|
5
12
|
- changed: whatsapp template params removed if array is empty
|
package/package.json
CHANGED
package/src/app/app.module.ts
CHANGED
|
@@ -117,6 +117,7 @@ import { Deeplinks } from '@ionic-native/deeplinks/ngx';
|
|
|
117
117
|
import { TriggerEvents } from './services/triggerEvents/triggerEvents';
|
|
118
118
|
import { Globals } from './utils/globals';
|
|
119
119
|
import { GlobalSettingsService } from './services/global-settings/global-settings.service';
|
|
120
|
+
import { BrandService } from './services/brand/brand.service';
|
|
120
121
|
|
|
121
122
|
// FACTORIES
|
|
122
123
|
export function createTranslateLoader(http: HttpClient) {
|
|
@@ -254,13 +255,14 @@ export function notificationsServiceFactory(appConfig: AppConfigProvider, chat21
|
|
|
254
255
|
}
|
|
255
256
|
}
|
|
256
257
|
|
|
257
|
-
const appInitializerFn = (appConfig: AppConfigProvider, logger: NGXLogger) => {
|
|
258
|
-
return () => {
|
|
258
|
+
const appInitializerFn = (appConfig: AppConfigProvider, brandService: BrandService, logger: NGXLogger) => {
|
|
259
|
+
return async() => {
|
|
259
260
|
let customLogger = new CustomLogger(logger)
|
|
260
261
|
LoggerInstance.setInstance(customLogger)
|
|
261
262
|
if (environment.remoteConfig) {
|
|
262
|
-
|
|
263
|
+
await appConfig.loadAppConfig();
|
|
263
264
|
}
|
|
265
|
+
await brandService.loadBrand();
|
|
264
266
|
};
|
|
265
267
|
};
|
|
266
268
|
|
|
@@ -323,7 +325,7 @@ const appInitializerFn = (appConfig: AppConfigProvider, logger: NGXLogger) => {
|
|
|
323
325
|
provide: APP_INITIALIZER,
|
|
324
326
|
useFactory: appInitializerFn,
|
|
325
327
|
multi: true,
|
|
326
|
-
deps: [AppConfigProvider, NGXLogger]
|
|
328
|
+
deps: [AppConfigProvider, BrandService, NGXLogger]
|
|
327
329
|
},
|
|
328
330
|
{
|
|
329
331
|
provide: MessagingAuthService,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @import '../../../../../sass/variables';
|
|
2
2
|
|
|
3
3
|
div {
|
|
4
|
-
--backgroundColor: --basic-blue;
|
|
5
|
-
--textColor: --bck-msg-sent;
|
|
6
|
-
--hoverBackgroundColor: --bck-msg-sent;
|
|
7
|
-
--hoverTextColor: --basic-blue;
|
|
8
|
-
|
|
4
|
+
--backgroundColor: #{var(--basic-blue)};
|
|
5
|
+
--textColor: #{var(--bck-msg-sent)};
|
|
6
|
+
--hoverBackgroundColor: #{var(--bck-msg-sent)};
|
|
7
|
+
--hoverTextColor: #{var(--basic-blue)};
|
|
8
|
+
---buttonFontSize: #{var(--button-in-msg-font-size)};
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.button-in-msg {
|
package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @import '../../../../../sass/variables';
|
|
2
2
|
|
|
3
3
|
div {
|
|
4
|
-
--backgroundColor: --basic-blue;
|
|
5
|
-
--textColor: --bck-msg-sent;
|
|
6
|
-
--hoverBackgroundColor: --bck-msg-sent;
|
|
7
|
-
--hoverTextColor: --basic-blue;
|
|
8
|
-
|
|
4
|
+
--backgroundColor: #{var(--basic-blue)};
|
|
5
|
+
--textColor: #{var(--bck-msg-sent)};
|
|
6
|
+
--hoverBackgroundColor: #{var(--bck-msg-sent)};
|
|
7
|
+
--hoverTextColor: #{var(--basic-blue)};
|
|
8
|
+
---buttonFontSize: #{var(--button-in-msg-font-size)};
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.button-in-msg {
|
package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @import '../../../../../sass/variables';
|
|
2
2
|
div {
|
|
3
|
-
--backgroundColor: --basic-blue;
|
|
4
|
-
--textColor: --bck-msg-sent;
|
|
5
|
-
--hoverBackgroundColor: --bck-msg-sent;
|
|
6
|
-
--hoverTextColor: --basic-blue;
|
|
7
|
-
|
|
3
|
+
--backgroundColor: #{var(--basic-blue)};
|
|
4
|
+
--textColor: #{var(--bck-msg-sent)};
|
|
5
|
+
--hoverBackgroundColor: #{var(--bck-msg-sent)};
|
|
6
|
+
--hoverTextColor: #{var(--basic-blue)};
|
|
7
|
+
---buttonFontSize: #{var(--button-in-msg-font-size)};
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
|
|
@@ -23,6 +23,7 @@ export class LoginComponent implements OnInit {
|
|
|
23
23
|
@Input() showSpinnerInLoginBtn: boolean;
|
|
24
24
|
@Input() translationMap: Map<string, string>;
|
|
25
25
|
@Input() companyLogoBlackUrl: string;
|
|
26
|
+
@Input() companySiteUrl: string;
|
|
26
27
|
@Input() companyName: string;
|
|
27
28
|
@Output() onSignInWithEmailAndPassword = new EventEmitter<{ email: string, password: string }>();
|
|
28
29
|
@Output() onSignInWithGoogle = new EventEmitter()
|
|
@@ -30,7 +31,6 @@ export class LoginComponent implements OnInit {
|
|
|
30
31
|
|
|
31
32
|
// @ViewChild('email', { static: false }) emailInputEl: IonInput;
|
|
32
33
|
userForm: FormGroup;
|
|
33
|
-
companySiteUrl: string;
|
|
34
34
|
emailMustBeAValidEmail: string;
|
|
35
35
|
DASHBOARD_URL: string;
|
|
36
36
|
|
package/src/app/components/conversation-info/info-support-group/info-support-group.component.ts
CHANGED
|
@@ -33,7 +33,7 @@ export class InfoSupportGroupComponent implements OnInit {
|
|
|
33
33
|
|
|
34
34
|
onLoad(iframe){
|
|
35
35
|
let styleData = this.appStorageService.getItem('style')
|
|
36
|
-
|
|
36
|
+
this.logger.log('[InfoSupportGroupComponent] styleeeeee', styleData)
|
|
37
37
|
if(styleData && styleData !== 'undefined'){
|
|
38
38
|
this.loadStyle(JSON.parse(styleData))
|
|
39
39
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
<ion-toolbar [class.mobile]="isMobile">
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
<ion-buttons slot="start" style="height:60px">
|
|
3
|
+
|
|
4
|
+
<ion-buttons *ngIf="isMobile || !supportMode" slot="start" style="height:60px">
|
|
5
5
|
<ion-button ion-button icon-only fill="clear" (click)="onOpenProfileInfo($event)">
|
|
6
6
|
<ion-icon slot="icon-only" name="reorder-three-outline"></ion-icon>
|
|
7
7
|
</ion-button>
|
|
8
8
|
</ion-buttons>
|
|
9
9
|
|
|
10
10
|
<ion-title>
|
|
11
|
-
<!-- <img src="assets/chat21-logo.svg" class="header-logo" alt="header-logo"> -->
|
|
12
11
|
<div *ngIf="numberOpenConv > 0" class="number-open-conv">({{numberOpenConv}})</div>
|
|
13
12
|
</ion-title>
|
|
14
13
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div class="logo">
|
|
3
3
|
<!-- <a class="logo-img-wpr" [ngClass]="{'small-sidebar-logo-img-wpr' : SIDEBAR_IS_SMALL === true }">
|
|
4
4
|
<div class="logo-img" (click)="goToHome()" style="cursor: pointer;">
|
|
5
|
-
<img class="small-sidebar__logo" src="assets/tiledesk-solo-logo.
|
|
5
|
+
<img class="small-sidebar__logo" src="assets/logos/tiledesk-solo-logo.svg" />
|
|
6
6
|
</div>
|
|
7
7
|
</a> -->
|
|
8
8
|
|
|
@@ -222,16 +222,13 @@
|
|
|
222
222
|
|
|
223
223
|
</ul>
|
|
224
224
|
|
|
225
|
-
<div matTooltipClass="custom-mat-tooltip" matTooltip="
|
|
225
|
+
<div matTooltipClass="custom-mat-tooltip" [matTooltip]="LOGOS_ITEMS['COMPANY_LOGO_NO_TEXT'].label" class="logoBrand"
|
|
226
226
|
#tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
|
|
227
227
|
<!-- ------------------------------------------- -->
|
|
228
|
-
<!-- LOGO
|
|
228
|
+
<!-- LOGO BRAND (click)="goToOfficialSite()" -->
|
|
229
229
|
<!-- ------------------------------------------- -->
|
|
230
230
|
<a target="_blank" href="{{ tiledesk_url }}" class="customAncor">
|
|
231
|
-
<
|
|
232
|
-
<path d="M51.8,28.2h-19c-1.7,0-3-1.3-3-3V6.4c0-1.7-1.3-3-3-3H8c-1.7,0-3,1.3-3,3v22v22c0,1.7,1.3,3,3,3H6.7h3.4 c0.8,0,1.3,0.2,1.9,0.8l2.3,2.3l2.1,2.1c0.8,0.8,1.7,0.8,2.4,0l2.1-2.1l2.3-2.3c0.6-0.6,1.1-0.8,1.9-0.8H52c1.7,0,3-1.3,3-3V31.2 C54.8,29.5,53.5,28.2,51.8,28.2"/>
|
|
233
|
-
<path d="M52,24.2H36.8c-1.5,0-2.8-1.3-2.8-2.8V6.2c0-1.5,1.3-2.8,2.8-2.8H52c1.5,0,2.8,1.3,2.8,2.8v15.2 C54.8,22.9,53.5,24.2,52,24.2"/>
|
|
234
|
-
</svg>
|
|
231
|
+
<img [src]="LOGOS_ITEMS['COMPANY_LOGO_NO_TEXT'].icon">
|
|
235
232
|
</a>
|
|
236
233
|
</div>
|
|
237
234
|
</div>
|
|
@@ -24,6 +24,8 @@
|
|
|
24
24
|
position: absolute;
|
|
25
25
|
bottom: 0;
|
|
26
26
|
display: flex;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
width: 100%;
|
|
27
29
|
height: 60px;
|
|
28
30
|
|
|
29
31
|
svg path:first-child {
|
|
@@ -32,6 +34,10 @@
|
|
|
32
34
|
svg path:nth-child(2){
|
|
33
35
|
fill: #E5BBAD
|
|
34
36
|
}
|
|
37
|
+
|
|
38
|
+
img{
|
|
39
|
+
width: 30px;
|
|
40
|
+
}
|
|
35
41
|
}
|
|
36
42
|
|
|
37
43
|
|
|
@@ -14,6 +14,7 @@ import { tranlatedLanguage } from '../../../chat21-core/utils/constants';
|
|
|
14
14
|
|
|
15
15
|
// utils
|
|
16
16
|
import { avatarPlaceholder, getColorBck } from 'src/chat21-core/utils/utils-user';
|
|
17
|
+
import { BRAND_BASE_INFO, LOGOS_ITEMS } from 'src/app/utils/utils-resources';
|
|
17
18
|
|
|
18
19
|
@Component({
|
|
19
20
|
selector: 'app-sidebar',
|
|
@@ -58,6 +59,7 @@ export class SidebarComponent implements OnInit {
|
|
|
58
59
|
dashboard_history_url: string;
|
|
59
60
|
dashboard_settings_url: string;
|
|
60
61
|
tiledesk_url: string;
|
|
62
|
+
LOGOS_ITEMS = LOGOS_ITEMS;
|
|
61
63
|
constructor(
|
|
62
64
|
public imageRepoService: ImageRepoService,
|
|
63
65
|
public appStorageService: AppStorageService,
|
|
@@ -72,6 +74,8 @@ export class SidebarComponent implements OnInit {
|
|
|
72
74
|
) { }
|
|
73
75
|
|
|
74
76
|
ngOnInit() {
|
|
77
|
+
this.tiledesk_url = BRAND_BASE_INFO['COMPANY_SITE_URL']
|
|
78
|
+
|
|
75
79
|
this.DASHBOARD_URL = this.appConfig.getConfig().dashboardUrl + '#/project/';
|
|
76
80
|
// console.log('[SIDEBAR] DASHBOARD_URL ', this.DASHBOARD_URL)
|
|
77
81
|
this.getStoredProjectAndUserRole()
|
|
@@ -7,6 +7,7 @@ import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service
|
|
|
7
7
|
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
8
8
|
import { UserModel } from 'src/chat21-core/models/user';
|
|
9
9
|
import { checkPlatformIsMobile } from 'src/chat21-core/utils/utils';
|
|
10
|
+
import { LOGOS_ITEMS } from 'src/app/utils/utils-resources';
|
|
10
11
|
|
|
11
12
|
@Component({
|
|
12
13
|
selector: 'send-email-modal',
|
|
@@ -27,6 +28,7 @@ export class SendEmailModal implements OnInit {
|
|
|
27
28
|
emailFormGroup: FormGroup;
|
|
28
29
|
private logger: LoggerService = LoggerInstance.getInstance()
|
|
29
30
|
public isMobile: boolean = false;
|
|
31
|
+
LOGOS_ITEMS = LOGOS_ITEMS;
|
|
30
32
|
|
|
31
33
|
constructor(
|
|
32
34
|
public viewCtrl: ModalController,
|
|
@@ -17,6 +17,7 @@ import { isInArray } from 'src/chat21-core/utils/utils';
|
|
|
17
17
|
import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
|
|
18
18
|
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
19
19
|
import { AppStorageService } from 'src/chat21-core/providers/abstract/app-storage.service';
|
|
20
|
+
import { BRAND_BASE_INFO, LOGOS_ITEMS } from 'src/app/utils/utils-resources';
|
|
20
21
|
|
|
21
22
|
@Component({
|
|
22
23
|
selector: 'app-login',
|
|
@@ -29,6 +30,7 @@ export class LoginPage implements OnInit {
|
|
|
29
30
|
showErrorSignIn = false;
|
|
30
31
|
companyLogoBlackUrl: string;
|
|
31
32
|
companyName: string;
|
|
33
|
+
companySiteUrl: string;
|
|
32
34
|
|
|
33
35
|
public translationMap: Map<string, string>;
|
|
34
36
|
private subscriptions = [];
|
|
@@ -60,8 +62,9 @@ export class LoginPage implements OnInit {
|
|
|
60
62
|
|
|
61
63
|
/** */
|
|
62
64
|
initialize() {
|
|
63
|
-
this.companyLogoBlackUrl = '
|
|
64
|
-
this.companyName = '
|
|
65
|
+
this.companyLogoBlackUrl = LOGOS_ITEMS['BASE_LOGO'].icon;
|
|
66
|
+
this.companyName = BRAND_BASE_INFO['COMPANY_NAME']; // this.chatManager.getTenant();
|
|
67
|
+
this.companySiteUrl = BRAND_BASE_INFO['COMPANY_SITE_URL']
|
|
65
68
|
this.translations();
|
|
66
69
|
this.events.subscribe('sign-in', this.signIn);
|
|
67
70
|
this.setSubscriptions();
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { BrandService } from './brand.service';
|
|
4
|
+
|
|
5
|
+
describe('BrandService', () => {
|
|
6
|
+
let service: BrandService;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
TestBed.configureTestingModule({});
|
|
10
|
+
service = TestBed.inject(BrandService);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should be created', () => {
|
|
14
|
+
expect(service).toBeTruthy();
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
+
import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
|
|
5
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
6
|
+
import { AppConfigProvider } from '../app-config';
|
|
7
|
+
import { BrandResources } from 'src/app/utils/BrandResources';
|
|
8
|
+
|
|
9
|
+
@Injectable({
|
|
10
|
+
providedIn: 'root'
|
|
11
|
+
})
|
|
12
|
+
export class BrandService {
|
|
13
|
+
|
|
14
|
+
// "brandSrc":"https://tiledeskbrand.nicolan74.repl.co/mybrand",
|
|
15
|
+
|
|
16
|
+
public brand: any;
|
|
17
|
+
|
|
18
|
+
_brand = {
|
|
19
|
+
DASHBOARD: {
|
|
20
|
+
META_TITLE: "Tiledesk Support Dashboard",
|
|
21
|
+
FAVICON_URL: "https://tiledesk.com/wp-content/uploads/2022/07/tiledesk_v13-300x300.png",
|
|
22
|
+
"company_name": "Tiledesk",
|
|
23
|
+
"company_site_name": "tiledesk.com",
|
|
24
|
+
"company_site_url": "https://www.tiledesk.com",
|
|
25
|
+
"company_logo_white__url": "assets/img/logos/tiledesk-logo_white_orange.svg",
|
|
26
|
+
"company_logo_black__url": "assets/img/logos/tiledesk_3.0_logo_black_v2_no_version.svg",
|
|
27
|
+
"company_logo_allwhite__url": "assets/img/logos/tiledesk_3.0_logo_all_white_v2_no_version.svg",
|
|
28
|
+
"company_logo_no_text__url": "assets/img/logos/tiledesk-solo-logo.png",
|
|
29
|
+
"privacy_policy_link_text": "Privacy Policy",
|
|
30
|
+
"privacy_policy_url": "https://www.tiledesk.com/privacy.html",
|
|
31
|
+
"display_terms_and_conditions_link": true,
|
|
32
|
+
"terms_and_conditions_url": "https://www.tiledesk.com/termsofservice.html",
|
|
33
|
+
"contact_us_email": "support@tiledesk.com",
|
|
34
|
+
"footer": {
|
|
35
|
+
"display_terms_and_conditions_link": true,
|
|
36
|
+
"display_contact_us_email": true
|
|
37
|
+
},
|
|
38
|
+
"recent_project_page": {
|
|
39
|
+
"company_logo_black__width": "130px"
|
|
40
|
+
},
|
|
41
|
+
"signup_page": {
|
|
42
|
+
"display_terms_and_conditions_link": true
|
|
43
|
+
},
|
|
44
|
+
"handle_invitation_page": {
|
|
45
|
+
"company_logo_45x45": "assets/img/logos/tiledesk-solo-logo.png"
|
|
46
|
+
},
|
|
47
|
+
"wizard_create_project_page": {
|
|
48
|
+
"logo_x_rocket": "assets/img/logos/logo_x_rocket4x4.svg"
|
|
49
|
+
},
|
|
50
|
+
"wizard_install_widget_page": {
|
|
51
|
+
"logo_on_rocket": "assets/img/logos/tiledesk-solo-logo.png"
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
CHAT: {
|
|
55
|
+
|
|
56
|
+
},
|
|
57
|
+
CDS: {
|
|
58
|
+
META_TITLE:"Design Studio",
|
|
59
|
+
FAVICON_URL: "https://tiledesk.com/wp-content/uploads/2022/07/tiledesk_v13-300x300.png",
|
|
60
|
+
INFO_MENU_ITEMS: [
|
|
61
|
+
{ key: 'HELP_CENTER', icon: "", src:"", status: "inactive"},
|
|
62
|
+
{ key: 'ROAD_MAP', icon: "", src:"", status: "inactive"},
|
|
63
|
+
{ key: 'FEEDBACK', icon: "", src:"", status: "inactive"},
|
|
64
|
+
{ key: 'SUPPORT', icon: "", src:"", status: "inactive"},
|
|
65
|
+
{ key: 'CHANGELOG', icon: "", src:"", status: "inactive"},
|
|
66
|
+
{ key: 'GITHUB', icon: "", src:"", status: "inactive"},
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
COMMON: {
|
|
70
|
+
COMPANY_LOGO:"assets/logos/tiledesk_logo.svg",
|
|
71
|
+
COMPANY_LOGO_NO_TEXT:"assets/logos/tiledesk_logo.svg",
|
|
72
|
+
BASE_LOGO: "assets/logos/tiledesk_logo.svg",
|
|
73
|
+
BASE_LOGO_NO_TEXT: "assets/logos/tiledesk_logo.svg",
|
|
74
|
+
BASE_LOGO_WHITE: "assets/logos/tiledesk-logo_new_white.svg",
|
|
75
|
+
BASE_LOGO_WHITE_NO_TEXT:"",
|
|
76
|
+
COMPANY_NAME: "Tiledesk",
|
|
77
|
+
COMPANY_SITE_NAME:"tiledesk.com",
|
|
78
|
+
COMANY_SITE_URL:"https://www.tiledesk.com",
|
|
79
|
+
CONTACT_US_EMAIL: "support@tiledesk.com",
|
|
80
|
+
COMPANY_PRIMARY_COLOR:""
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public assetBrand: any;
|
|
85
|
+
// public brand = brand
|
|
86
|
+
// local_url = '/assets/brand/brand.json';
|
|
87
|
+
warning: string;
|
|
88
|
+
loadBrandError: string;
|
|
89
|
+
|
|
90
|
+
private logger: LoggerService = LoggerInstance.getInstance();
|
|
91
|
+
|
|
92
|
+
constructor(
|
|
93
|
+
private httpClient: HttpClient,
|
|
94
|
+
private translate: TranslateService,
|
|
95
|
+
private appConfigProvider: AppConfigProvider
|
|
96
|
+
) {
|
|
97
|
+
this.getTranslations()
|
|
98
|
+
this.brand = this._brand
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
getTranslations() {
|
|
102
|
+
this.translate.get('Warning')
|
|
103
|
+
.subscribe((text: string) => {
|
|
104
|
+
this.warning = text;
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
this.translate.get('RelatedKnowledgeBase')
|
|
108
|
+
.subscribe((text: string) => {
|
|
109
|
+
this.loadBrandError = text;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
isEmpty(url: string) {
|
|
114
|
+
return (url === undefined || url == null || url.length <= 0) ? true : false;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// getData() {
|
|
118
|
+
// return this.httpClient.get('/assets/brand/brand.json');
|
|
119
|
+
// }
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
async loadBrand() {
|
|
124
|
+
// this.getData()
|
|
125
|
+
// .subscribe(data => {
|
|
126
|
+
// this.assetBrand = data
|
|
127
|
+
// console.log('[BRAND-SERV] BRAND RETIEVED FROM ASSET assetBrand ', this.assetBrand);
|
|
128
|
+
// });
|
|
129
|
+
|
|
130
|
+
// let url = ''
|
|
131
|
+
// if (environment.remoteConfig === false) {
|
|
132
|
+
|
|
133
|
+
// if (environment.hasOwnProperty("brandSrc")) {
|
|
134
|
+
|
|
135
|
+
// this.logger.log('[BRAND-SERV] loadBrand remoteConfig is false - env has Property brandSrc');
|
|
136
|
+
// const remoteBrandUrl = this.isEmpty(environment['brandSrc']);
|
|
137
|
+
|
|
138
|
+
// if (!remoteBrandUrl) {
|
|
139
|
+
// this.logger.log('[BRAND-SERV] loadBrand remoteConfig is false - env brandSrc is empty ? ', remoteBrandUrl);
|
|
140
|
+
// url = environment['brandSrc']
|
|
141
|
+
// } else {
|
|
142
|
+
// this.logger.log('[BRAND-SERV] loadBrand remoteConfig is false - env brandSrc is empty ? ', remoteBrandUrl, ' -> load from assets')
|
|
143
|
+
// this.brand = this._brand;
|
|
144
|
+
// }
|
|
145
|
+
// } else {
|
|
146
|
+
// this.logger.log('[BRAND-SERV] loadBrand remoteConfig is false - env NOT has Property brandSrc -> load from assets');
|
|
147
|
+
// this.brand = this._brand;
|
|
148
|
+
// }
|
|
149
|
+
// } else {
|
|
150
|
+
// const res = await this.httpClient.get(environment['remoteConfigUrl']).toPromise();
|
|
151
|
+
// this.logger.log('[BRAND-SERV] loadBrand - remoteConfig -> true get remoteConfig response ', res);
|
|
152
|
+
|
|
153
|
+
// // const remoteConfigData = JSON.parse(res['_body'])
|
|
154
|
+
// const remoteConfigData = res
|
|
155
|
+
// // this.logger.log('BrandService loadBrand - remoteConfig is true - get remoteConfigData res ', remoteConfigData);
|
|
156
|
+
|
|
157
|
+
// if (remoteConfigData.hasOwnProperty("brandSrc")) {
|
|
158
|
+
// this.logger.log('[BRAND-SERV] loadBrand remoteConfig is true - remoteConfigData has Property brandSrc');
|
|
159
|
+
|
|
160
|
+
// const remoteBrandUrl = this.isEmpty(remoteConfigData['brandSrc']);
|
|
161
|
+
// if (!remoteBrandUrl) {
|
|
162
|
+
// this.logger.log('[BRAND-SERV] loadBrand remoteConfig is true - remoteConfigData brandSrc is empty ?', remoteBrandUrl);
|
|
163
|
+
|
|
164
|
+
// url = remoteConfigData['brandSrc']
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
// } else {
|
|
168
|
+
// this.logger.log('[BRAND-SERV] loadBrand remoteConfig is true - remoteConfigData brandSrc is empty ?', remoteBrandUrl, ' -> load from assets');
|
|
169
|
+
|
|
170
|
+
// this.brand = this._brand;
|
|
171
|
+
// }
|
|
172
|
+
|
|
173
|
+
// } else {
|
|
174
|
+
// this.logger.log('[BRAND-SERV] loadBrand remoteConfig is true - remoteConfigData NOT has Property brandSrc -> load from assets');
|
|
175
|
+
// // this.setBrand(this.local_url)
|
|
176
|
+
// // url = this.local_url
|
|
177
|
+
// this.brand = this._brand;
|
|
178
|
+
// }
|
|
179
|
+
// }
|
|
180
|
+
|
|
181
|
+
try {
|
|
182
|
+
let url = this.appConfigProvider.getConfig().brandSrc
|
|
183
|
+
if (url && url !== 'CHANGEIT') {
|
|
184
|
+
const data = await this.httpClient.get(url).toPromise();
|
|
185
|
+
|
|
186
|
+
console.log('[BRAND-SERV] **** GET BRAND FROM URL ****', url);
|
|
187
|
+
|
|
188
|
+
this.brand =data
|
|
189
|
+
|
|
190
|
+
console.log('[BRAND-SERV] loadBrand - brand: ', this.brand);
|
|
191
|
+
|
|
192
|
+
const resources = new BrandResources(this);
|
|
193
|
+
resources.loadResources()
|
|
194
|
+
}
|
|
195
|
+
} catch (err) {
|
|
196
|
+
console.error('[BRAND-SERV] loadBrand error : ', err);
|
|
197
|
+
|
|
198
|
+
this.brand = this._brand;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
getBrand() {
|
|
205
|
+
console.log('BrandService getBrand has been called - brand: ', this.brand);
|
|
206
|
+
return { ...this.brand['CHAT'], ...this.brand['COMMON'] }
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { BrandService } from "../services/brand/brand.service";
|
|
3
|
+
import { BRAND_BASE_INFO, LOGOS_ITEMS } from "./utils-resources";
|
|
4
|
+
|
|
5
|
+
@Injectable({
|
|
6
|
+
providedIn: 'root'
|
|
7
|
+
})
|
|
8
|
+
export class BrandResources {
|
|
9
|
+
|
|
10
|
+
brand: {}
|
|
11
|
+
|
|
12
|
+
constructor(
|
|
13
|
+
brandService: BrandService
|
|
14
|
+
) {
|
|
15
|
+
this.brand = brandService.getBrand()
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
loadResources(){
|
|
19
|
+
if(!this.brand){
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** META TITLE and FAVICON */
|
|
24
|
+
document.title = this.brand['COMPANY_NAME'] + ' ' + this.brand['META_TITLE']
|
|
25
|
+
var icon = document.querySelector("link[rel~='icon']") as HTMLElement;
|
|
26
|
+
icon.setAttribute('href', this.brand['FAVICON_URL'])
|
|
27
|
+
|
|
28
|
+
/** CSS */
|
|
29
|
+
document.body.style.setProperty('--base-brand-color', this.brand['BRAND_COLOR']);
|
|
30
|
+
|
|
31
|
+
/** LOGOS_ITEMS */
|
|
32
|
+
Object.keys(LOGOS_ITEMS).forEach(key => { LOGOS_ITEMS[key].icon = this.brand[key]; LOGOS_ITEMS[key].label = this.brand['COMPANY_NAME']})
|
|
33
|
+
|
|
34
|
+
/** BRAND_BASE_INFO */
|
|
35
|
+
Object.keys(BRAND_BASE_INFO).forEach(key => BRAND_BASE_INFO[key] = this.brand[key])
|
|
36
|
+
|
|
37
|
+
// /** INFO_MENU_ITEMS */
|
|
38
|
+
// let result: Array<{ key: string, label: string, icon: string, type: TYPE_URL, status: "active" | "inactive", src?: string}> = Array.from([...INFO_MENU_ITEMS, ...this.brand['INFO_MENU_ITEMS']].reduce((m, o) => m.set(o.key, o), new Map).values());
|
|
39
|
+
// result.forEach(el => {
|
|
40
|
+
// INFO_MENU_ITEMS.find(a => a.key === el.key).icon = el.icon
|
|
41
|
+
// INFO_MENU_ITEMS.find(a => a.key === el.key).src = el.src
|
|
42
|
+
// INFO_MENU_ITEMS.find(a => a.key === el.key).status = el.status
|
|
43
|
+
// INFO_MENU_ITEMS.find(a => a.key === el.key).icon = el.icon
|
|
44
|
+
// })
|
|
45
|
+
|
|
46
|
+
// /** MEDIA */
|
|
47
|
+
// Object.keys(MEDIA).forEach(key => {
|
|
48
|
+
// if(this.brand['MEDIA'][key].src) MEDIA[key].src = this.brand['MEDIA'][key].src
|
|
49
|
+
// if(this.brand['MEDIA'][key].text) MEDIA[key].text = this.brand['MEDIA'][key].text
|
|
50
|
+
// if(this.brand['MEDIA'][key].description) MEDIA[key].description = this.brand['MEDIA'][key].description
|
|
51
|
+
// })
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
// console.log('infooooo', INFO_MENU_ITEMS)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const LOGOS_ITEMS: { [key: string] : { label: string, icon: string }} ={
|
|
2
|
+
COMPANY_LOGO: {label: 'Tiledesk', icon: 'assets/logos/tiledesk_logo.svg'},
|
|
3
|
+
COMPANY_LOGO_NO_TEXT: {label: 'Tiledesk', icon: 'assets/logos/tiledesk_logo_no_text.svg'},
|
|
4
|
+
BASE_LOGO: {label: 'Tiledesk', icon: 'assets/logos/tiledesk_logo.svg'},
|
|
5
|
+
BASE_LOGO_NO_TEXT: {label: 'Tiledesk', icon: 'assets/logos/tiledesk_logo_no_text.svg'},
|
|
6
|
+
BASE_LOGO_WHITE: { label: 'Tiledesk', icon: '"assets/logos/tiledesk-logo_new_white.svg'},
|
|
7
|
+
BASE_LOGO_WHITE_NO_TEXT: { label: 'Tiledesk', icon: '"assets/logos/tiledesk-logo_new_white.svg'}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const BRAND_BASE_INFO: { [key: string] : any} ={
|
|
11
|
+
COMPANY_NAME: "Tiledesk",
|
|
12
|
+
COMPANY_SITE_NAME:"tiledesk.com",
|
|
13
|
+
COMPANY_SITE_URL:"https://www.tiledesk.com",
|
|
14
|
+
CONTACT_US_EMAIL: "support@tiledesk.com",
|
|
15
|
+
FAVICON: "https://tiledesk.com/wp-content/uploads/2022/07/tiledesk_v13-300x300.png",
|
|
16
|
+
META_TITLE:"Design Studio"
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const MEDIA: { [key: string]: { src: string, text: string, description: string}}= {
|
|
20
|
+
RULES: { src: "https://www.youtube.com/embed/p0ux-86Y4_I", text: "CDSSplashScreen.YouHaveNoRules", description: "CDSSplashScreen.LearnAboutAI"},
|
|
21
|
+
GLOBALS: { src: "", text: "CDSGlobals.NoGlobalVariables", description: ""},
|
|
22
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 412 132" style="enable-background:new 0 0 412 132;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
.st0{fill:#FFFFFF;}
|
|
7
|
+
</style>
|
|
8
|
+
<g>
|
|
9
|
+
<path class="st0" d="M84,53.1H54.7c-2.6,0-4.6-2.1-4.6-4.6V19.2c0-2.6-2.1-4.6-4.6-4.6H16.1c-2.6,0-4.6,2.1-4.6,4.6v33.9V87
|
|
10
|
+
c0,2.6,2.1,4.6,4.6,4.6h-2h5.3c1.1,0,2.1,0.4,2.8,1.2l3.4,3.4l3.2,3.2c1,1,2.7,1,3.7,0l3.2-3.2l3.4-3.4c0.8-0.8,1.8-1.2,2.8-1.2h42
|
|
11
|
+
c2.6,0,4.6-2.1,4.6-4.6V57.8C88.6,55.2,86.6,53.1,84,53.1"/>
|
|
12
|
+
<path class="st0" d="M85.8,46.9H59.1c-1.5,0-2.8-1.3-2.8-2.8V17.4c0-1.5,1.3-2.8,2.8-2.8h26.8c1.5,0,2.8,1.3,2.8,2.8v26.8
|
|
13
|
+
C88.6,45.7,87.4,46.9,85.8,46.9"/>
|
|
14
|
+
<path class="st0" d="M262.4,26.5h-0.2c-1.3,0-2.3,1-2.3,2.3c0,0.1,0,9,0,15.5c-3.7-2.7-8.3-4.2-13.4-3.7c-9,0.9-16.3,8.1-17.3,17.1
|
|
15
|
+
c-1.2,11.6,7.8,21.5,19.2,21.5c4.5,0,8.7-1.6,12-4.2c0.1,2.4,2.1,4.3,4.5,4.3c2.5,0,4.5-2,4.5-4.5V33.6
|
|
16
|
+
C269.5,29.7,266.3,26.5,262.4,26.5 M251.8,71.2c-8.3,1.8-15.5-5.4-13.7-13.7c0.9-4.2,4.3-7.6,8.5-8.5c8.3-1.8,15.5,5.4,13.7,13.7
|
|
17
|
+
C259.4,66.9,256,70.3,251.8,71.2"/>
|
|
18
|
+
<path class="st0" d="M147.4,75l-1.4-3.7c-0.4-1.1-1.7-1.7-2.8-1.3c-4,1.3-7.5-0.5-7.2-5.4V52.2c0-0.8,0.7-1.5,1.5-1.5h5.7
|
|
19
|
+
c1.3,0,2.3-1,2.3-2.3v-5.5c0-1.3-1-2.3-2.3-2.3h-5.7c-0.8,0-1.5-0.7-1.5-1.5V28.8c0-1.3-1-2.3-2.3-2.3c-4.9,0-8.9,4-8.9,8.9v3.7
|
|
20
|
+
c0,0.8-0.7,1.5-1.5,1.5h-2.1c-1.3,0-2.3,1-2.3,2.3v5.5c0,1.3,1,2.3,2.3,2.3h2.1c0.8,0,1.5,0.7,1.5,1.5v12.7
|
|
21
|
+
c-0.1,9.9,5,14.3,14.3,14.4C141.7,79.1,148.5,79,147.4,75"/>
|
|
22
|
+
<path class="st0" d="M168.5,76.5V29.3c0-1.6,1.3-2.8,2.8-2.8h5.4c1.6,0,2.8,1.3,2.8,2.8v47.2c0,1.6-1.3,2.8-2.8,2.8h-5.4
|
|
23
|
+
C169.7,79.3,168.5,78.1,168.5,76.5"/>
|
|
24
|
+
<path class="st0" d="M222.2,49.7c-7.1-12.5-28.2-12.2-35.1,0.3c-5.4,9.2-2.3,22.6,7.7,27.3c7.4,3.8,21.4,3.1,25.6-2
|
|
25
|
+
c0.9-1.1,1.2-3.8-0.6-5.4c-2-1.8-6-0.4-7.8,0.2c-5,1.9-12.4,1.1-15.2-3.9c-0.5-0.9-1-2.8-0.3-2.8c0.9,0,24,0,24,0
|
|
26
|
+
C224.3,63.3,225.7,56.3,222.2,49.7 M213.2,56.8c-2,0-17.3,0-17.4,0c-0.7,0,0-2,0.7-3.3c1.4-2.9,4.6-4.5,7.8-4.7
|
|
27
|
+
c2-0.1,4.4,0.1,6.2,1.3C214.3,52.7,214.1,56.8,213.2,56.8"/>
|
|
28
|
+
<path class="st0" d="M312.1,49.7C305,37.2,283.9,37.5,277,50c-5.4,9.2-2.3,22.6,7.7,27.3c7.4,3.8,21.4,3.1,25.6-2
|
|
29
|
+
c0.9-1.1,1.2-3.8-0.6-5.4c-2-1.8-6-0.4-7.8,0.2c-5,1.9-12.4,1.1-15.2-3.9c-0.5-0.9-1-2.8-0.3-2.8c0.9,0,24,0,24,0
|
|
30
|
+
C314.3,63.3,315.6,56.3,312.1,49.7 M303.1,56.8c-2,0-17.3,0-17.4,0c-0.7,0,0-2,0.7-3.3c1.4-2.9,4.6-4.5,7.8-4.7
|
|
31
|
+
c2-0.1,4.4,0.1,6.2,1.3C304.2,52.7,304,56.8,303.1,56.8"/>
|
|
32
|
+
<path class="st0" d="M334.7,79.8c-5-0.2-10.3-1.6-14.5-3.8c-1.1-0.6-1.4-2-0.9-3.1l1.9-3.7c0.6-1.1,2-1.6,3.1-1
|
|
33
|
+
c3.7,2.2,17.5,6.2,18.4,0.1c0-0.9-0.3-1.6-1.1-2.1c-2.1-1.2-5-1.5-7.7-2.2c-3.2-0.7-6.6-1.5-9.3-3.3c-5.1-2.9-5.4-10.8-1.7-15.1
|
|
34
|
+
c3.8-4.3,9.6-5.4,15.8-5.1c2.6,0.1,5.4,0.6,8.1,1.4c3.6,1,5.2,5.1,3.5,8.4c-1.6,2.7-4.4-0.1-6.5-0.4c-3.2-1-8.5-1.5-10.9-0.2
|
|
35
|
+
c-2.1,0.9-2.6,3.5-0.7,4.7c0.8,0.5,1.9,1,3.3,1.3c4.5,1,9.8,1.7,13.8,4.3c4.7,2.7,5.3,9.6,2.4,14C348,78.9,341.4,80.2,334.7,79.8"
|
|
36
|
+
/>
|
|
37
|
+
<path class="st0" d="M396.4,75.6l-13.6-17.2c-0.5-0.6-0.5-1.5,0.1-2.1L394,45c1.4-1.5,0.4-3.9-1.6-3.9h-6.8c-0.6,0-1.2,0.2-1.6,0.6
|
|
38
|
+
l-13.1,12.4c-0.9,0.9-2.5,0.2-2.5-1.1V34.1c0-4.2-3.4-7.6-7.6-7.6h-0.9c-0.9,0-1.6,0.7-1.6,1.6v49.6c0,0.9,0.7,1.6,1.6,1.6h6.2
|
|
39
|
+
c1.3,0,2.3-1,2.3-2.3v-6.3c0-0.7,0.3-1.3,0.8-1.8l3.6-3.5c0.6-0.6,1.6-0.5,2.1,0.1c2.7,3.4,10.3,12.9,10.3,12.9
|
|
40
|
+
c0.4,0.5,1.1,0.9,1.8,0.9h7.6C396.5,79.3,397.6,77.1,396.4,75.6"/>
|
|
41
|
+
<path class="st0" d="M152.4,76.5V43.3c0-1.6,1.3-2.8,2.8-2.8h5.4c1.6,0,2.8,1.3,2.8,2.8v33.2c0,1.6-1.3,2.8-2.8,2.8h-5.4
|
|
42
|
+
C153.7,79.3,152.4,78.1,152.4,76.5"/>
|
|
43
|
+
<path class="st0" d="M163.4,32.1c-0.2,7.3-10.8,7.3-11,0C152.6,24.8,163.3,24.8,163.4,32.1"/>
|
|
44
|
+
</g>
|
|
45
|
+
</svg>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 26.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 311.8 73.7" style="enable-background:new 0 0 311.8 73.7;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
.st0{fill:#F28779;}
|
|
7
|
+
.st1{fill:#F6B0A1;}
|
|
8
|
+
.st2{fill:#454848;}
|
|
9
|
+
</style>
|
|
10
|
+
<g>
|
|
11
|
+
<path class="st0" d="M61.1,33.5H37.9c-2,0-3.7-1.6-3.7-3.7V6.7c0-2-1.6-3.7-3.7-3.7h-23c-2,0-3.7,1.6-3.7,3.7v26.8v26.8
|
|
12
|
+
c0,2,1.6,3.7,3.7,3.7H5.9h4.2c0.8,0,1.6,0.3,2.2,0.9l2.7,2.7l2.5,2.5c0.8,0.8,2.1,0.8,3,0l2.5-2.5l2.7-2.7c0.6-0.6,1.4-0.9,2.2-0.9
|
|
13
|
+
h33.2c2,0,3.7-1.6,3.7-3.7V37.1C64.7,35.1,63.1,33.5,61.1,33.5"/>
|
|
14
|
+
<path class="st1" d="M62.5,28.6H41.4c-1.2,0-2.2-1-2.2-2.2V5.3c0-1.2,1-2.2,2.2-2.2h21.1c1.2,0,2.2,1,2.2,2.2v21.1
|
|
15
|
+
C64.7,27.6,63.7,28.6,62.5,28.6"/>
|
|
16
|
+
</g>
|
|
17
|
+
<g>
|
|
18
|
+
<g>
|
|
19
|
+
<path class="st2" d="M196,14.7h-0.1c-1,0-1.9,0.8-1.9,1.9c0,0.1,0,7.5,0,12.8c-3-2.2-6.9-3.5-11-3c-7.5,0.7-13.5,6.7-14.4,14.2
|
|
20
|
+
c-1.1,9.7,6.5,17.8,16,17.8c3.8,0,7.1-1.3,9.9-3.5c0.1,2,1.7,3.6,3.8,3.6c2.1,0,3.8-1.7,3.8-3.8V20.6
|
|
21
|
+
C201.9,17.5,199.2,14.7,196,14.7 M187.3,51.8c-6.9,1.6-12.9-4.5-11.3-11.3c0.7-3.5,3.6-6.3,7-7c6.9-1.6,12.9,4.5,11.3,11.3
|
|
22
|
+
C193.5,48.2,190.7,51.1,187.3,51.8"/>
|
|
23
|
+
<path class="st2" d="M100.7,55l-1.2-3c-0.3-0.9-1.4-1.4-2.3-1.1c-3.4,1.1-6.2-0.4-6-4.5V36.1c0-0.6,0.5-1.3,1.3-1.3h4.7
|
|
24
|
+
c1,0,1.9-0.8,1.9-1.9v-4.6c0-1-0.8-1.9-1.9-1.9h-4.7c-0.6,0-1.3-0.5-1.3-1.3v-8.5c0-1.1-0.8-1.9-1.9-1.9c-4.1,0-7.4,3.3-7.4,7.3v3
|
|
25
|
+
c0,0.6-0.5,1.3-1.3,1.3H79c-1.1,0-1.9,0.8-1.9,1.9V33c0,1,0.8,1.9,1.9,1.9h1.8c0.6,0,1.3,0.5,1.3,1.3v10.5
|
|
26
|
+
c-0.1,8.2,4.1,11.9,11.9,12C96,58.4,101.7,58.3,100.7,55"/>
|
|
27
|
+
<path class="st2" d="M118.2,56.2V17.1c0-1.3,1.1-2.3,2.3-2.3h4.5c1.3,0,2.3,1.1,2.3,2.3v39.1c0,1.3-1.1,2.3-2.3,2.3h-4.5
|
|
28
|
+
C119.2,58.6,118.2,57.5,118.2,56.2"/>
|
|
29
|
+
<path class="st2" d="M162.7,34c-5.9-10.4-23.3-10.1-29.1,0.2c-4.5,7.6-1.9,18.8,6.4,22.7c6.1,3.2,17.7,2.6,21.2-1.7
|
|
30
|
+
c0.7-0.8,1.1-3.2-0.5-4.5c-1.7-1.5-4.9-0.3-6.5,0.1c-4.2,1.6-10.3,0.8-12.6-3.3c-0.4-0.7-0.8-2.3-0.2-2.3c0.7,0,19.8,0,19.8,0
|
|
31
|
+
C164.5,45.3,165.6,39.4,162.7,34 M155.2,39.9c-1.7,0-14.3,0-14.4,0c-0.5,0,0-1.7,0.5-2.7c1.2-2.4,3.8-3.8,6.4-3.9
|
|
32
|
+
c1.7-0.1,3.7,0.1,5.1,1.2C156.2,36.6,156,39.9,155.2,39.9"/>
|
|
33
|
+
<path class="st2" d="M237.2,34c-5.9-10.4-23.3-10.1-29.1,0.2c-4.5,7.6-1.9,18.8,6.4,22.7c6.1,3.2,17.7,2.6,21.2-1.7
|
|
34
|
+
c0.7-0.8,1.1-3.2-0.5-4.5c-1.7-1.5-4.9-0.3-6.5,0.1c-4.2,1.6-10.3,0.8-12.6-3.3c-0.4-0.7-0.8-2.3-0.2-2.3c0.7,0,19.8,0,19.8,0
|
|
35
|
+
C239,45.3,240.1,39.4,237.2,34 M229.8,39.9c-1.7,0-14.3,0-14.4,0c-0.5,0,0-1.7,0.5-2.7c1.2-2.4,3.8-3.8,6.4-3.9
|
|
36
|
+
c1.7-0.1,3.7,0.1,5.1,1.2C230.6,36.6,230.5,39.9,229.8,39.9"/>
|
|
37
|
+
<path class="st2" d="M255.9,58.9c-4.2-0.2-8.5-1.3-12-3.1c-0.9-0.5-1.2-1.7-0.7-2.5l1.6-3c0.5-0.9,1.6-1.3,2.5-0.8
|
|
38
|
+
c3,1.8,14.5,5.1,15.2,0.1c0-0.7-0.3-1.4-0.9-1.8c-1.8-1-4.1-1.3-6.4-1.8c-2.6-0.5-5.5-1.3-7.8-2.7c-4.2-2.4-4.5-9-1.4-12.5
|
|
39
|
+
c3.2-3.6,8-4.5,13.1-4.2c2.1,0.1,4.5,0.5,6.7,1.2c2.9,0.8,4.3,4.3,2.8,6.9c-1.4,2.2-3.7-0.1-5.4-0.3c-2.7-0.8-7-1.3-9-0.2
|
|
40
|
+
c-1.7,0.7-2.1,2.9-0.5,3.9c0.7,0.4,1.6,0.8,2.7,1c3.7,0.8,8.1,1.4,11.4,3.6c3.9,2.3,4.4,8,2,11.5C267,58.2,261.5,59.2,255.9,58.9"
|
|
41
|
+
/>
|
|
42
|
+
<path class="st2" d="M307.1,55.5l-11.2-14.3c-0.4-0.5-0.4-1.3,0.1-1.8l9.2-9.3c1.2-1.2,0.3-3.3-1.4-3.3h-5.7
|
|
43
|
+
c-0.5,0-0.9,0.2-1.3,0.5l-10.8,10.3c-0.7,0.7-2.1,0.2-2.1-0.8V21c0-3.5-2.8-6.3-6.3-6.3h-0.7c-0.7,0-1.4,0.6-1.4,1.4v41.2
|
|
44
|
+
c0,0.7,0.6,1.4,1.4,1.4h5.1c1,0,1.9-0.8,1.9-1.9v-5.2c0-0.5,0.2-1.2,0.6-1.5l2.9-2.9c0.5-0.5,1.3-0.4,1.8,0.1
|
|
45
|
+
c2.3,2.8,8.6,10.7,8.6,10.7c0.3,0.4,0.9,0.7,1.5,0.7h6.3C307.2,58.6,308,56.7,307.1,55.5"/>
|
|
46
|
+
<path class="st2" d="M104.9,56.2V28.7c0-1.3,1-2.3,2.3-2.3h4.5c1.3,0,2.3,1.1,2.3,2.3v27.5c0,1.3-1,2.3-2.3,2.3h-4.5
|
|
47
|
+
C106,58.6,104.9,57.5,104.9,56.2"/>
|
|
48
|
+
</g>
|
|
49
|
+
<path class="st2" d="M114,19.3c-0.1,6-8.9,6-9.1,0C105,13.4,113.9,13.4,114,19.3"/>
|
|
50
|
+
</g>
|
|
51
|
+
</svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 26.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 60 60" style="enable-background:new 0 0 60 60;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
.st0{fill:#F18876;}
|
|
7
|
+
.st1{fill:#E5BBAD;}
|
|
8
|
+
</style>
|
|
9
|
+
<path class="st0" d="M51.8,28.2h-19c-1.7,0-3-1.3-3-3V6.4c0-1.7-1.3-3-3-3H8c-1.7,0-3,1.3-3,3v22v22c0,1.7,1.3,3,3,3H6.7h3.4
|
|
10
|
+
c0.8,0,1.3,0.2,1.9,0.8l2.3,2.3l2.1,2.1c0.8,0.8,1.7,0.8,2.4,0l2.1-2.1l2.3-2.3c0.6-0.6,1.1-0.8,1.9-0.8H52c1.7,0,3-1.3,3-3V31.2
|
|
11
|
+
C54.8,29.5,53.5,28.2,51.8,28.2"/>
|
|
12
|
+
<path class="st1" d="M52,24.2H36.8c-1.5,0-2.8-1.3-2.8-2.8V6.2c0-1.5,1.3-2.8,2.8-2.8H52c1.5,0,2.8,1.3,2.8,2.8v15.2
|
|
13
|
+
C54.8,22.9,53.5,24.2,52,24.2"/>
|
|
14
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 62.4 62.4" style="enable-background:new 0 0 62.4 62.4;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
.st0{fill:#FFFFFF;}
|
|
7
|
+
</style>
|
|
8
|
+
<g>
|
|
9
|
+
<path class="st0" d="M53.5,28.4H34.2c-1.7,0-3-1.4-3-3V6.1c0-1.7-1.4-3-3-3H8.9c-1.7,0-3,1.4-3,3v22.3v22.3c0,1.7,1.4,3,3,3H7.5H11
|
|
10
|
+
c0.7,0,1.4,0.3,1.9,0.8l2.2,2.2l2.1,2.1c0.7,0.7,1.8,0.7,2.5,0l2.1-2.1l2.2-2.2c0.5-0.5,1.2-0.8,1.9-0.8h27.6c1.7,0,3-1.4,3-3V31.4
|
|
11
|
+
C56.5,29.7,55.2,28.4,53.5,28.4"/>
|
|
12
|
+
<path class="st0" d="M54.7,24.3H37.1c-1,0-1.8-0.8-1.8-1.8V4.9c0-1,0.8-1.8,1.8-1.8h17.6c1,0,1.8,0.8,1.8,1.8v17.6
|
|
13
|
+
C56.5,23.5,55.7,24.3,54.7,24.3"/>
|
|
14
|
+
</g>
|
|
15
|
+
</svg>
|
package/src/chat-config.json
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"APIendpoint": "http://localhost:8004/api"
|
|
26
26
|
},
|
|
27
27
|
"apiUrl": "http://localhost:3000/",
|
|
28
|
+
"brandSrc": "${BRAND_SRC}",
|
|
28
29
|
"whatsappTemplatesBaseUrl":"http://localhost:3000/",
|
|
29
30
|
"baseImageUrl": "https://firebasestorage.googleapis.com/v0/b/",
|
|
30
31
|
"dashboardUrl": "https://support-pre.tiledesk.com/dashboard/",
|
package/src/variables.scss
CHANGED
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|