@meetelise/chat 1.20.62 → 1.20.64
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/package.json +1 -1
- package/public/demo/index.html +1 -0
- package/public/dist/index.js +499 -519
- package/public/dist/index.js.LICENSE.txt +0 -6
- package/src/MEChat.ts +10 -0
- package/src/WebComponent/Scheduler/tour-scheduler.ts +22 -20
- package/src/WebComponent/index.ts +1 -1
- package/src/WebComponent/{Launcher.ts → launcher/Launcher.ts} +207 -213
- package/src/WebComponent/{launcherStyles.ts → launcher/launcherStyles.ts} +5 -330
- package/src/WebComponent/launcher/typeEmojiStyles.ts +301 -0
- package/src/WebComponent/launcher/typeMiniStyles.ts +60 -0
- package/src/WebComponent/launcher/typeMobileStyles.ts +51 -0
- package/src/WebComponent/me-chat.ts +16 -77
- package/src/WebComponent/me-select.ts +4 -0
- package/src/fetchBuildingABTestType.ts +2 -2
- package/src/svgIcons.ts +26 -146
- package/src/themes.ts +21 -7
- package/src/utils.ts +37 -0
package/src/MEChat.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
2
|
import { StyleInfo } from "lit/directives/style-map";
|
|
3
3
|
import { ThemeIdString } from "./themes";
|
|
4
|
+
import { tintColor } from "./utils";
|
|
4
5
|
import "./WebComponent/me-chat";
|
|
5
6
|
import { MEChat as MEChatLitElement } from "./WebComponent/me-chat";
|
|
6
7
|
|
|
@@ -22,6 +23,7 @@ export default class MEChat {
|
|
|
22
23
|
static mutationObserver: MutationObserver | null = null;
|
|
23
24
|
static previousUrl = "";
|
|
24
25
|
static hasBuildingSlug: boolean | null = null;
|
|
26
|
+
static brandColor = "";
|
|
25
27
|
|
|
26
28
|
static start(opts: Options, isInitialStart = true): void {
|
|
27
29
|
// If clients are Yardi and have a resident portal with rentcafe,
|
|
@@ -58,6 +60,12 @@ export default class MEChat {
|
|
|
58
60
|
if (opts.launcherStyles) {
|
|
59
61
|
meChat.launcherStyles = opts.launcherStyles;
|
|
60
62
|
}
|
|
63
|
+
if (opts.brandColor) {
|
|
64
|
+
this.brandColor = opts.brandColor;
|
|
65
|
+
|
|
66
|
+
// we must tint the brand color, to ensure it is visible
|
|
67
|
+
meChat.setAttribute("brandColor", tintColor(opts.brandColor, 0.3));
|
|
68
|
+
}
|
|
61
69
|
document.body.appendChild(meChat);
|
|
62
70
|
MEChat.meChat = meChat;
|
|
63
71
|
}
|
|
@@ -130,6 +138,7 @@ export default class MEChat {
|
|
|
130
138
|
const opts = {
|
|
131
139
|
organization: this.orgSlug,
|
|
132
140
|
building: buildingSlug.data,
|
|
141
|
+
brandColor: this.brandColor,
|
|
133
142
|
};
|
|
134
143
|
this.start(opts, false);
|
|
135
144
|
}
|
|
@@ -142,6 +151,7 @@ export interface Options {
|
|
|
142
151
|
avatarSrc?: string;
|
|
143
152
|
mini?: boolean;
|
|
144
153
|
launcherStyles?: StyleInfo;
|
|
154
|
+
brandColor?: string;
|
|
145
155
|
}
|
|
146
156
|
|
|
147
157
|
/** You can't install a font from CSS in a shadow DOM, so we use JS to do it here in the regular DOM. */
|
|
@@ -1193,26 +1193,28 @@ export class TourScheduler extends LitElement {
|
|
|
1193
1193
|
i.layout === this.layoutTypeSelect.value
|
|
1194
1194
|
).length > 0
|
|
1195
1195
|
? html`
|
|
1196
|
-
<
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
.
|
|
1201
|
-
(
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1196
|
+
<div class="unitLayoutChoice">
|
|
1197
|
+
<me-select
|
|
1198
|
+
id="unitType"
|
|
1199
|
+
placeholder="Select unit"
|
|
1200
|
+
.options="${this.unitOptions
|
|
1201
|
+
.filter(
|
|
1202
|
+
(i) =>
|
|
1203
|
+
!this.layoutTypeSelect ||
|
|
1204
|
+
i.layout === this.layoutTypeSelect.value
|
|
1205
|
+
)
|
|
1206
|
+
.map((i) => ({
|
|
1207
|
+
label: i.name,
|
|
1208
|
+
value: i.name,
|
|
1209
|
+
}))}"
|
|
1210
|
+
defaultOption="Studio"
|
|
1211
|
+
@change=${() => {
|
|
1212
|
+
// to revalidate the form
|
|
1213
|
+
this.requestUpdate();
|
|
1214
|
+
}}
|
|
1215
|
+
>Studio
|
|
1216
|
+
</me-select>
|
|
1217
|
+
</div>
|
|
1216
1218
|
`
|
|
1217
1219
|
: ""
|
|
1218
1220
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { Launcher } from "./Launcher";
|
|
1
|
+
export { Launcher } from "./launcher/Launcher";
|
|
2
2
|
import "./me-chat";
|
|
@@ -1,37 +1,43 @@
|
|
|
1
|
-
import { html, LitElement, TemplateResult } from "lit";
|
|
1
|
+
import { html, LitElement, TemplateResult, css } from "lit";
|
|
2
2
|
import { customElement, property, state } from "lit/decorators.js";
|
|
3
3
|
import { createRef, ref, Ref } from "lit/directives/ref.js";
|
|
4
|
-
import { glowBackgroundMp4 } from "../assetUrls";
|
|
5
4
|
import { launcherStyles } from "./launcherStyles";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { typeEmojiStyles } from "./typeEmojiStyles";
|
|
6
|
+
import { typeMobileStyles } from "./typeMobileStyles";
|
|
7
|
+
import { typeMiniStyles } from "./typeMiniStyles";
|
|
8
|
+
import {
|
|
9
|
+
EmailUsWindow,
|
|
10
|
+
installEmailUsWindow,
|
|
11
|
+
} from "../actions/email-us-window";
|
|
12
|
+
import { installTextUsWindow, TextUsWindow } from "../actions/text-us-window";
|
|
8
13
|
import { StyleInfo, styleMap } from "lit/directives/style-map.js";
|
|
9
14
|
import { classMap } from "lit/directives/class-map.js";
|
|
10
|
-
import { installCallUsWindow } from "
|
|
11
|
-
import { getRegisteredPhoneNumbers } from "
|
|
12
|
-
import { TourScheduler } from "
|
|
13
|
-
import { LabeledOption, UnitV2 } from "
|
|
14
|
-
import { abTestTypes } from "
|
|
15
|
+
import { installCallUsWindow } from "../actions/call-us-window";
|
|
16
|
+
import { getRegisteredPhoneNumbers } from "../../getRegisteredPhoneNumbers";
|
|
17
|
+
import { TourScheduler } from "../Scheduler/tour-scheduler";
|
|
18
|
+
import { LabeledOption, UnitV2 } from "../../fetchBuildingInfo";
|
|
19
|
+
import { abTestTypes } from "../../fetchBuildingABTestType";
|
|
15
20
|
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
ChevronIconWhite,
|
|
21
|
+
EmailBlackOutlineIcon,
|
|
22
|
+
ChatWhiteOutlineIcon,
|
|
23
|
+
BookTourBlackOutlineIcon,
|
|
24
|
+
PhoneBlackOutlineIcon,
|
|
21
25
|
HeyThereEmoji,
|
|
22
|
-
EmailBlackStrokeIcon,
|
|
23
|
-
PhoneBlackStrokeIcon,
|
|
24
|
-
ChatWhiteStrokeIcon,
|
|
25
|
-
EmailWhiteStrokeIcon,
|
|
26
|
-
TabletWhiteStrokeIcon,
|
|
27
|
-
ChatBlueBttnIcon,
|
|
28
|
-
PhoneWhiteStrokeIcon,
|
|
29
26
|
ChevronIconBlack,
|
|
30
|
-
|
|
27
|
+
ChevronIconWhite,
|
|
28
|
+
XWhiteOutlineIcon,
|
|
29
|
+
ChatBlackOutlineIcon,
|
|
30
|
+
} from "../../svgIcons";
|
|
31
|
+
import { defaultBrandColor } from "../../themes";
|
|
31
32
|
|
|
32
33
|
@customElement("meetelise-launcher")
|
|
33
34
|
export class Launcher extends LitElement {
|
|
34
|
-
static styles =
|
|
35
|
+
static styles = css`
|
|
36
|
+
${launcherStyles}
|
|
37
|
+
${typeEmojiStyles}
|
|
38
|
+
${typeMobileStyles}
|
|
39
|
+
${typeMiniStyles}
|
|
40
|
+
`;
|
|
35
41
|
|
|
36
42
|
@property({ type: Boolean })
|
|
37
43
|
isMobile = false;
|
|
@@ -88,7 +94,7 @@ export class Launcher extends LitElement {
|
|
|
88
94
|
@property({ type: Boolean })
|
|
89
95
|
hasSSTEnabled = false;
|
|
90
96
|
@property({ type: Boolean })
|
|
91
|
-
hasTextUsEnabled =
|
|
97
|
+
hasTextUsEnabled = false;
|
|
92
98
|
@property({ attribute: false })
|
|
93
99
|
layoutOptions: string[] = [];
|
|
94
100
|
@property({ attribute: false })
|
|
@@ -99,9 +105,13 @@ export class Launcher extends LitElement {
|
|
|
99
105
|
onChatTapped: () => void = () => {
|
|
100
106
|
return;
|
|
101
107
|
};
|
|
108
|
+
|
|
102
109
|
@property({ attribute: false })
|
|
103
110
|
launcherStyles: StyleInfo = {};
|
|
104
111
|
|
|
112
|
+
@property({ attribute: true })
|
|
113
|
+
brandColor: string | null = null;
|
|
114
|
+
|
|
105
115
|
@state()
|
|
106
116
|
isEmailWindowOpen = false;
|
|
107
117
|
@state()
|
|
@@ -306,189 +316,158 @@ export class Launcher extends LitElement {
|
|
|
306
316
|
</div>
|
|
307
317
|
`;
|
|
308
318
|
};
|
|
309
|
-
renderPillVertical = (
|
|
310
|
-
content: TemplateResult,
|
|
311
|
-
onClick: (e: MouseEvent) => void
|
|
312
|
-
): TemplateResult => {
|
|
313
|
-
return html`
|
|
314
|
-
<div @click=${onClick} class="inner-pill-wrapper">${content}</div>
|
|
315
|
-
`;
|
|
316
|
-
};
|
|
317
319
|
|
|
318
320
|
renderActionPills = (): TemplateResult => {
|
|
319
321
|
if (this.isMobile || this.isMinimized) {
|
|
320
322
|
return html`<div class="typeMobile-list">
|
|
321
323
|
${this.isMobile
|
|
322
324
|
? ""
|
|
323
|
-
: html` <button
|
|
325
|
+
: html` <button
|
|
326
|
+
id="minimize-mobile"
|
|
327
|
+
@click=${this.onClickMinimize}
|
|
328
|
+
class="minimize-bttn"
|
|
329
|
+
>
|
|
324
330
|
<div class="chevron-up">${ChevronIconBlack}</div>
|
|
325
331
|
</button>`}
|
|
326
332
|
<ul>
|
|
327
|
-
<li @click=${this.
|
|
333
|
+
<li @click=${this.onClickEmailOption} class="typeMobile-bttn">
|
|
328
334
|
<div class="typeMobile-inner">
|
|
329
|
-
<div class="typeMobile-icon">${
|
|
335
|
+
<div class="typeMobile-icon">${EmailBlackOutlineIcon}</div>
|
|
330
336
|
</div>
|
|
331
337
|
</li>
|
|
332
|
-
<li @click=${this.
|
|
338
|
+
<li @click=${this.onClickPhoneOption} class="typeMobile-bttn">
|
|
333
339
|
<div class="typeMobile-inner">
|
|
334
|
-
<div class="typeMobile-icon">${
|
|
340
|
+
<div class="typeMobile-icon">${PhoneBlackOutlineIcon}</div>
|
|
335
341
|
</div>
|
|
336
342
|
</li>
|
|
337
|
-
<li @click=${this.
|
|
343
|
+
<li @click=${this.onClickSSTOption} class="typeMobile-bttn">
|
|
338
344
|
<div class="typeMobile-inner">
|
|
339
|
-
<div class="typeMobile-icon">${
|
|
345
|
+
<div class="typeMobile-icon">${BookTourBlackOutlineIcon}</div>
|
|
346
|
+
</div>
|
|
347
|
+
</li>
|
|
348
|
+
<li @click=${this.onChatTapped} class="typeMobile-bttn">
|
|
349
|
+
<div class="typeMobile-inner">
|
|
350
|
+
<div class="typeMobile-icon">${ChatBlackOutlineIcon}</div>
|
|
340
351
|
</div>
|
|
341
352
|
</li>
|
|
342
353
|
</ul>
|
|
343
354
|
</div>`;
|
|
344
355
|
}
|
|
345
356
|
|
|
346
|
-
if (this.buildingABTestType === abTestTypes.
|
|
347
|
-
return html`
|
|
348
|
-
<
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
<div class="type-gradient__chat-container">
|
|
363
|
-
<div class="type-gradient__chat-header">
|
|
364
|
-
<span class="title-bold">Chat</span> with us
|
|
365
|
-
</div>
|
|
366
|
-
${ChevronIconWhite}
|
|
367
|
-
</div>
|
|
368
|
-
<ul class="type-gradient__description">
|
|
369
|
-
<li>our apartments</li>
|
|
370
|
-
<li>unit availability</li>
|
|
371
|
-
<li>tour bookings</li>
|
|
372
|
-
<li>our amenities</li>
|
|
373
|
-
<li>neighborhood</li>
|
|
374
|
-
</ul>
|
|
375
|
-
</div>
|
|
376
|
-
</div>
|
|
377
|
-
`
|
|
378
|
-
: ""}
|
|
379
|
-
${this.hasEmailEnabled
|
|
380
|
-
? html` <div class="type-gradient__email type-gradient__bottom-tab" @click=${this.onClickEmailOption}>
|
|
381
|
-
<div class="type-gradient__icon">${EmailWhiteStrokeIcon}</div>
|
|
382
|
-
<div class="type-gradient__inner-txt">
|
|
383
|
-
<span class="title-bold">Email</span> an agent
|
|
357
|
+
if (this.buildingABTestType === abTestTypes.ConceptEmoji) {
|
|
358
|
+
return html`
|
|
359
|
+
<div
|
|
360
|
+
class="type-hey__list"
|
|
361
|
+
style=${styleMap({
|
|
362
|
+
background: this.brandColor ?? defaultBrandColor,
|
|
363
|
+
})}
|
|
364
|
+
>
|
|
365
|
+
<div class="type-hey__chat-container" @click=${this.onClickMinimize}>
|
|
366
|
+
<div
|
|
367
|
+
class="type-hey__inner-chat-container"
|
|
368
|
+
style=${styleMap({
|
|
369
|
+
background: this.brandColor ?? defaultBrandColor,
|
|
370
|
+
})}
|
|
371
|
+
>
|
|
372
|
+
<div class="type-hey__chat-icon">${XWhiteOutlineIcon}</div>
|
|
384
373
|
</div>
|
|
385
|
-
<div class="type-gradient__icon">${ChevronIconWhite}</div>
|
|
386
374
|
</div>
|
|
387
|
-
</div>`
|
|
388
|
-
: ""}
|
|
389
|
-
${this.phoneNumber && this.hasCallUsEnabled
|
|
390
|
-
? html`
|
|
391
|
-
<div class="type-gradient__contact type-gradient__bottom-tab" @click=${
|
|
392
|
-
this.onClickPhoneOption
|
|
393
|
-
}>
|
|
394
|
-
<div class="type-gradient__icon">${TabletWhiteStrokeIcon}</div>
|
|
395
|
-
<div class="type-gradient__inner-txt">
|
|
396
|
-
<span class="title-bold">Call</span>
|
|
397
|
-
${
|
|
398
|
-
this.hasTextUsEnabled
|
|
399
|
-
? html`or <span class="title-bold">text</span> us`
|
|
400
|
-
: "us"
|
|
401
|
-
}
|
|
402
|
-
</div>
|
|
403
|
-
<div class="type-gradient__icon">${ChevronIconWhite}</div>
|
|
404
|
-
</div>
|
|
405
|
-
</div>
|
|
406
|
-
`
|
|
407
|
-
: ""}
|
|
408
|
-
</div>`;
|
|
409
|
-
}
|
|
410
375
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
<div class="type-hey__ai-topic-notch"></div>
|
|
422
|
-
</div>
|
|
423
|
-
<div class="type-hey__greeting">
|
|
424
|
-
<h1>Hey there!</h1>
|
|
425
|
-
<div>${HeyThereEmoji}</div>
|
|
426
|
-
</div>
|
|
427
|
-
${
|
|
428
|
-
this.hasChatEnabled
|
|
376
|
+
<div class="type-hey__top-section" @click=${this.onChatTapped}>
|
|
377
|
+
<div class="type-hey__ai-topic">
|
|
378
|
+
<p>AI Assistant</p>
|
|
379
|
+
<div class="type-hey__ai-topic-notch"></div>
|
|
380
|
+
</div>
|
|
381
|
+
<div class="type-hey__greeting">
|
|
382
|
+
<h1>Hey there!</h1>
|
|
383
|
+
<div>${HeyThereEmoji}</div>
|
|
384
|
+
</div>
|
|
385
|
+
${this.hasChatEnabled
|
|
429
386
|
? html`
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
387
|
+
<div class="type-hey__ask-prompt">
|
|
388
|
+
<div class="type-hey__ask-prompt-inner">
|
|
389
|
+
<div class="type-hey__ask-start">
|
|
390
|
+
<h2>Ask me about</h2>
|
|
391
|
+
<div class="scroll-container">
|
|
392
|
+
<ul>
|
|
393
|
+
${[...Array(4)].map(() => {
|
|
394
|
+
// hack fix to prevent animation 'jump'
|
|
395
|
+
return html`
|
|
396
|
+
<li>booking a tour</li>
|
|
397
|
+
<li>our pet policy</li>
|
|
398
|
+
<li>our amenities</li>
|
|
399
|
+
<li>our availability</li>
|
|
400
|
+
`;
|
|
401
|
+
})}
|
|
402
|
+
</ul>
|
|
403
|
+
</div>
|
|
404
|
+
</div>
|
|
405
|
+
<div>${ChevronIconWhite}</div>
|
|
441
406
|
</div>
|
|
442
407
|
</div>
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
</div>
|
|
447
|
-
`
|
|
448
|
-
: ""
|
|
449
|
-
}
|
|
450
|
-
</div>
|
|
408
|
+
`
|
|
409
|
+
: ""}
|
|
410
|
+
</div>
|
|
451
411
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
412
|
+
<div class="type-hey__bottom-section">
|
|
413
|
+
<div class="type-hey__botton-section-pills">
|
|
414
|
+
${this.hasEmailEnabled
|
|
415
|
+
? html` <div
|
|
416
|
+
class="type-hey__pill"
|
|
417
|
+
@click=${this.onClickEmailOption}
|
|
418
|
+
>
|
|
419
|
+
<div class="type-hey__pill-left">
|
|
420
|
+
<div class="type-hey__icon">${EmailBlackOutlineIcon}</div>
|
|
421
|
+
<div><span class="title-bold">Email</span> an agent</div>
|
|
422
|
+
</div>
|
|
423
|
+
<div class="type-gradient__icon">${ChevronIconBlack}</div>
|
|
424
|
+
</div>
|
|
425
|
+
</div>`
|
|
426
|
+
: ""}
|
|
427
|
+
${this.phoneNumber && this.hasCallUsEnabled
|
|
428
|
+
? html`
|
|
429
|
+
<div class="type-hey__pill" @click=${
|
|
430
|
+
this.onClickPhoneOption
|
|
431
|
+
}>
|
|
432
|
+
<div class="type-hey__pill-left">
|
|
433
|
+
<div class="type-hey__icon">${PhoneBlackOutlineIcon}</div>
|
|
434
|
+
<div>
|
|
435
|
+
<span class="title-bold">Call</span>
|
|
436
|
+
${
|
|
437
|
+
this.hasTextUsEnabled
|
|
438
|
+
? html`or
|
|
439
|
+
<span class="title-bold">text</span> us`
|
|
440
|
+
: "us"
|
|
441
|
+
}
|
|
442
|
+
</div>
|
|
443
|
+
</div>
|
|
444
|
+
<div class="type-gradient__icon">${ChevronIconBlack}</div>
|
|
445
|
+
</div>
|
|
446
|
+
</div>`
|
|
447
|
+
: ""}
|
|
448
|
+
${this.hasSSTEnabled
|
|
449
|
+
? html`
|
|
450
|
+
<div class="type-hey__pill" @click=${this.onClickSSTOption}>
|
|
451
|
+
<div class="type-hey__pill-left">
|
|
452
|
+
<div class="type-hey__icon">${BookTourBlackOutlineIcon}</div>
|
|
453
|
+
<div>
|
|
454
|
+
<span class="title-bold">Book</span> a tour
|
|
455
|
+
</div>
|
|
456
|
+
</div>
|
|
457
|
+
<div class="type-gradient__icon">${ChevronIconBlack}</div>
|
|
458
|
+
</div>
|
|
459
|
+
</div>`
|
|
460
|
+
: ""}
|
|
459
461
|
</div>
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
${
|
|
466
|
-
this.phoneNumber && this.hasCallUsEnabled
|
|
467
|
-
? html`
|
|
468
|
-
<div class="type-hey__contact" @click=${this.onClickPhoneOption}>
|
|
469
|
-
<div class="type-hey__icon">${PhoneBlackStrokeIcon}</div>
|
|
470
|
-
<div>
|
|
471
|
-
<span class="title-bold">Call</span>
|
|
472
|
-
${
|
|
473
|
-
this.hasTextUsEnabled
|
|
474
|
-
? html`or <span class="title-bold">text</span> us`
|
|
475
|
-
: "us"
|
|
476
|
-
}
|
|
477
|
-
</div>
|
|
478
|
-
<div class="type-gradient__icon">${ChevronIconWhite}</div>
|
|
479
|
-
</div>
|
|
462
|
+
|
|
463
|
+
<div class="type-hey__bottom-info">
|
|
464
|
+
<div class="type-hey__bottom-info-inner">
|
|
465
|
+
Online <span class="title-bold">24 hours</span> a day,
|
|
466
|
+
<span class="title-bold">7</span> days a week
|
|
480
467
|
</div>
|
|
481
|
-
|
|
482
|
-
: ""
|
|
483
|
-
}
|
|
484
|
-
<div class="type-hey__bottom-info">
|
|
485
|
-
Online <span class="heavy-blue">24 hours</span> a day, <span class="heavy-blue">7</span> days a week</div>
|
|
468
|
+
</div>
|
|
486
469
|
</div>
|
|
487
470
|
</div>
|
|
488
|
-
<div class="type-hey__chat-container" @click=${
|
|
489
|
-
this.onChatTapped
|
|
490
|
-
}>${ChatBlueBttnIcon}</div>
|
|
491
|
-
</div>
|
|
492
471
|
`;
|
|
493
472
|
}
|
|
494
473
|
|
|
@@ -496,52 +475,67 @@ export class Launcher extends LitElement {
|
|
|
496
475
|
<button @click=${this.onClickMinimize} class="minimize-bttn">
|
|
497
476
|
<div class="chevron-down">${ChevronIconBlack}</div>
|
|
498
477
|
</button>
|
|
499
|
-
${this.hasEmailEnabled
|
|
500
|
-
? this.renderPillVertical(
|
|
501
|
-
html`
|
|
502
|
-
<div class="vertical-pill-icon">${FilledEmailIcon}</div>
|
|
503
|
-
<div class="vertical-pill-title">
|
|
504
|
-
<span class="vertical-pill-bold">Email</span> an agent
|
|
505
|
-
</div>
|
|
506
|
-
`,
|
|
507
|
-
this.onClickEmailOption
|
|
508
|
-
)
|
|
509
|
-
: ""}
|
|
510
478
|
${this.hasChatEnabled
|
|
511
|
-
?
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
479
|
+
? html`
|
|
480
|
+
<div id="overlay-inner-pill" class="inner-pill-wrapper" style=${styleMap(
|
|
481
|
+
{
|
|
482
|
+
background: this.brandColor ?? defaultBrandColor,
|
|
483
|
+
}
|
|
484
|
+
)} @click=${this.onChatTapped}>
|
|
485
|
+
<div class="vertical-pill-left">
|
|
486
|
+
<div class="vertical-pill-icon">${ChatWhiteOutlineIcon}</div>
|
|
487
|
+
<div class="vertical-pill-title">
|
|
488
|
+
<span class="vertical-pill-bold">Chat</span> with us
|
|
489
|
+
</div>
|
|
490
|
+
</div>
|
|
491
|
+
<div class="chevron-right">${ChevronIconWhite}</div>
|
|
516
492
|
</div>
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
)
|
|
493
|
+
</div>
|
|
494
|
+
`
|
|
520
495
|
: ""}
|
|
521
|
-
${this.
|
|
522
|
-
?
|
|
523
|
-
|
|
524
|
-
<div class="vertical-pill-
|
|
525
|
-
|
|
526
|
-
<
|
|
496
|
+
${this.hasEmailEnabled
|
|
497
|
+
? html`
|
|
498
|
+
<div @click=${this.onClickEmailOption} class="inner-pill-wrapper">
|
|
499
|
+
<div class="vertical-pill-left">
|
|
500
|
+
<div class="vertical-pill-icon">${EmailBlackOutlineIcon}</div>
|
|
501
|
+
<div class="vertical-pill-title">
|
|
502
|
+
<span class="vertical-pill-bold">Email</span> an agent
|
|
503
|
+
</div>
|
|
527
504
|
</div>
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
505
|
+
<div class="chevron-right">${ChevronIconBlack}</div>
|
|
506
|
+
</div>
|
|
507
|
+
`
|
|
531
508
|
: ""}
|
|
532
509
|
${this.phoneNumber && this.hasCallUsEnabled
|
|
533
|
-
?
|
|
534
|
-
|
|
535
|
-
<div class="vertical-pill-
|
|
536
|
-
|
|
537
|
-
<
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
510
|
+
? html`
|
|
511
|
+
<div @click=${this.onClickPhoneOption} class="inner-pill-wrapper">
|
|
512
|
+
<div class="vertical-pill-left">
|
|
513
|
+
<div class="vertical-pill-icon">${PhoneBlackOutlineIcon}</div>
|
|
514
|
+
<div class="vertical-pill-title">
|
|
515
|
+
<span class="vertical-pill-bold">Call</span>
|
|
516
|
+
${this.hasTextUsEnabled
|
|
517
|
+
? html`or <span class="vertical-pill-bold">text</span> us`
|
|
518
|
+
: "us"}
|
|
519
|
+
</div>
|
|
520
|
+
</div>
|
|
521
|
+
<div class="chevron-right">${ChevronIconBlack}</div>
|
|
522
|
+
</div>
|
|
523
|
+
`
|
|
524
|
+
: ""}
|
|
525
|
+
${this.hasSSTEnabled
|
|
526
|
+
? html`
|
|
527
|
+
<div @click=${this.onClickSSTOption} class="inner-pill-wrapper">
|
|
528
|
+
<div class="vertical-pill-left">
|
|
529
|
+
<div class="vertical-pill-icon">
|
|
530
|
+
${BookTourBlackOutlineIcon}
|
|
531
|
+
</div>
|
|
532
|
+
<div class="vertical-pill-title">
|
|
533
|
+
<span class="vertical-pill-bold">Book</span> a tour
|
|
534
|
+
</div>
|
|
541
535
|
</div>
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
536
|
+
<div class="chevron-right">${ChevronIconBlack}</div>
|
|
537
|
+
</div>
|
|
538
|
+
`
|
|
545
539
|
: ""}
|
|
546
540
|
</div>`;
|
|
547
541
|
};
|