@meetelise/chat 1.22.56 → 1.22.57

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.
@@ -12,17 +12,9 @@ import { StyleInfo, styleMap } from "lit/directives/style-map.js";
12
12
  import { installCallUsWindow } from "../actions/call-us-window";
13
13
  import { TourScheduler } from "../Scheduler/tour-scheduler";
14
14
  import { LabeledOption } from "../../fetchBuildingInfo";
15
- import {
16
- EmailBlackOutlineIcon,
17
- BookTourBlackOutlineIcon,
18
- PhoneBlackOutlineIcon,
19
- HeyThereEmoji,
20
- ChatBlackOutlineIcon,
21
- ContactResidentBlackOutlineIcon,
22
- } from "../../svgIcons";
23
15
  import {
24
16
  defaultBackgroundColor,
25
- defaultBrandColor,
17
+ defaultPrimaryColor,
26
18
  hexToAlmostWhite,
27
19
  } from "../../themes";
28
20
  import "./mobile-launcher";
@@ -40,6 +32,11 @@ import {
40
32
  import noop from "lodash/noop";
41
33
  import { ChatOutlineIcon } from "../icons/ChatOutlineIcon";
42
34
  import { ChevronRightIcon } from "../icons/ChevronRightIcon";
35
+ import { BookTourOutlineIcon } from "../icons/BookTourOutlineIcon";
36
+ import { EmailOutlineIcon } from "../icons/EmailOutlineIcon";
37
+ import { PhoneOutlineIcon } from "../icons/PhoneOutlineIcon";
38
+ import { HeyThereEmoji } from "../icons/HeyThereEmojiIcon";
39
+ import { ContactResidentIcon } from "../icons/ContactResidentIcon";
43
40
 
44
41
  @customElement("meetelise-launcher")
45
42
  export class Launcher extends LitElement {
@@ -157,13 +154,15 @@ export class Launcher extends LitElement {
157
154
  launcherStyles: StyleInfo = {};
158
155
 
159
156
  @property({ attribute: true })
160
- brandColor: string = defaultBrandColor;
157
+ primaryColor: string = defaultPrimaryColor;
161
158
 
162
159
  @property({ attribute: true })
163
160
  backgroundColor: string = defaultBackgroundColor;
164
161
 
165
162
  @property({ attribute: true })
166
- foregroundColorOnCustomBackground = "white";
163
+ foregroundColorOnPrimaryBackgroundColor = "white";
164
+ @property({ attribute: true })
165
+ foregroundColorOnSecondaryBackgroundColor = "black";
167
166
 
168
167
  @property({ attribute: true })
169
168
  private leadSourceClient: LeadSourceClient | null = null;
@@ -241,18 +240,6 @@ export class Launcher extends LitElement {
241
240
  this.isEmailWindowOpen = false;
242
241
  };
243
242
 
244
- renderEmailOption = (): TemplateResult => {
245
- const text = this.getNumCallToActions() > 2 ? "Email" : "Email us";
246
- return html`
247
- <div
248
- @click=${this.onClickEmailOption}
249
- class="launcher__call-to-action-option"
250
- >
251
- ${text}
252
- </div>
253
- `;
254
- };
255
-
256
243
  onClickPhoneOption = (e: MouseEvent): void => {
257
244
  e.preventDefault();
258
245
  e.stopPropagation();
@@ -264,11 +251,6 @@ export class Launcher extends LitElement {
264
251
  this.isCallUsWindowOpen = false;
265
252
  };
266
253
 
267
- renderCallUsOption = (): TemplateResult => {
268
- const text = this.getNumCallToActions() > 2 ? "Phone" : "Hours/Phone";
269
- return html` <div class="launcher__call-to-action-option">${text}</div> `;
270
- };
271
-
272
254
  onClickSSTOption = (e: MouseEvent): void => {
273
255
  e.preventDefault();
274
256
  e.stopPropagation();
@@ -287,40 +269,12 @@ export class Launcher extends LitElement {
287
269
  );
288
270
  }
289
271
  };
290
-
291
- renderSSTOption = (): TemplateResult => {
292
- const text = this.getNumCallToActions() > 2 ? "Book" : "Book a tour";
293
- return html`
294
- <div
295
- class="launcher__call-to-action-option"
296
- @click=${this.onClickSSTOption}
297
- >
298
- ${text}
299
- </div>
300
- `;
301
- };
302
-
303
272
  onClickTextUsOption = (e: MouseEvent): void => {
304
273
  e.preventDefault();
305
274
  e.stopPropagation();
306
275
  this.isTextUsWindowOpen = true;
307
276
  };
308
277
 
309
- onCloseTextUsWindow = (): void => {
310
- this.isTextUsWindowOpen = false;
311
- };
312
-
313
- renderTextUsOption = (): TemplateResult => {
314
- return html`
315
- <div
316
- @click=${this.onClickTextUsOption}
317
- class="launcher__call-to-action-option"
318
- >
319
- Text us
320
- </div>
321
- `;
322
- };
323
-
324
278
  isCallToActionWindowOpen = (): boolean => {
325
279
  return (
326
280
  [
@@ -345,7 +299,7 @@ export class Launcher extends LitElement {
345
299
  return html` ${this.hasHideMobileFeatures && isMobile()
346
300
  ? html`<collapse-expand-button
347
301
  .toExpand=${this.isMobileFeaturesExpanded}
348
- .brandColor=${this.backgroundColor}
302
+ .primaryColor=${this.primaryColor}
349
303
  .onClick=${this.toggleMobileFeatures}
350
304
  ></collapse-expand-button>`
351
305
  : ""}
@@ -358,7 +312,7 @@ export class Launcher extends LitElement {
358
312
  .overrideRentgrata=${this.overrideRentgrata}
359
313
  .isMobileDesign=${isMobile() ||
360
314
  this.designConcept === DesignConcepts.MINIMIZED}
361
- .brandColor=${this.brandColor}
315
+ .primaryColor=${this.primaryColor}
362
316
  .backgroundColor=${this.backgroundColor}
363
317
  .hasChatEnabled=${!isMobile()
364
318
  ? this.hasChatEnabledDesktop
@@ -387,83 +341,76 @@ export class Launcher extends LitElement {
387
341
  }
388
342
 
389
343
  if (this.designConcept === DesignConcepts.EMOJI) {
390
- return html`
391
- <div
392
- class="type-hey__list"
344
+ return this.emojiPillList();
345
+ }
346
+ return this.verticalPillList();
347
+ };
348
+
349
+ private emojiPillList = (): TemplateResult => {
350
+ const emojiPillListItems: {
351
+ pillKey: string;
352
+ pill: TemplateResult | null;
353
+ }[] = [
354
+ {
355
+ pillKey: "Email",
356
+ pill: this.hasEmailEnabledDesktop
357
+ ? html` <div
358
+ class="type-hey__pill"
359
+ @click=${this.onClickEmailOption}
393
360
  style=${styleMap({
394
- background: this.brandColor,
361
+ background: this.backgroundColor,
395
362
  })}
396
363
  >
397
- <div class="type-hey__chat-container">
398
- ${this.hasChatEnabledDesktop
399
- ? html`<minimize-expand-button
400
- .brandColor=${this.brandColor}
401
- .onClick=${this.onClickMinimize}
402
- ></minimize-expand-button>`
403
- : ""}
364
+ <div class="type-hey__pill-left">
365
+ <div class="type-hey__icon">${EmailOutlineIcon(
366
+ this.foregroundColorOnSecondaryBackgroundColor
367
+ )}</div>
368
+ <div style=${styleMap({
369
+ color: this.foregroundColorOnSecondaryBackgroundColor,
370
+ })}><span class="title-bold">Email</span> an agent</div>
404
371
  </div>
405
-
406
- <div class="type-hey__top-section">
407
- <div class="type-hey__ai-topic">
408
- <p>AI Assistant</p>
409
- <div class="type-hey__ai-topic-notch"></div>
410
- </div>
411
- <div class="type-hey__greeting">
412
- <h1>Hey there!</h1>
413
- <div>${HeyThereEmoji}</div>
414
- </div>
415
- ${this.hasChatEnabledDesktop
416
- ? html`
417
- <div
418
- id="type-hey__ask-prompt"
419
- class="type-hey__pill"
420
- @click=${this.onChatTapped}
421
- style=${styleMap({
422
- background: hexToAlmostWhite(this.brandColor, 0.2),
423
- })}
424
- >
425
- <div class="type-hey__pill-left">
426
- <div class="type-hey__icon">
427
- ${ChatOutlineIcon(
428
- this.foregroundColorOnCustomBackground
429
- )}
430
- </div>
431
- <div><span class="title-bold">Chat</span> with us</div>
432
- </div>
433
- <div class="type-gradient__icon">
434
- ${ChevronRightIcon(
435
- this.foregroundColorOnCustomBackground
436
- )}
437
- </div>
438
- </div>
439
- `
440
- : ""}
372
+ <div class="type-gradient__icon">${ChevronRightIcon(
373
+ this.foregroundColorOnSecondaryBackgroundColor
374
+ )}</div>
441
375
  </div>
442
-
443
- <div class="type-hey__bottom-section">
444
- <div class="type-hey__botton-section-pills">
445
- ${this.hasEmailEnabledDesktop
446
- ? html` <div
447
- class="type-hey__pill"
448
- @click=${this.onClickEmailOption}
449
- style=${styleMap({
450
- background: this.backgroundColor,
451
- })}
452
- >
453
- <div class="type-hey__pill-left">
454
- <div class="type-hey__icon">${EmailBlackOutlineIcon}</div>
455
- <div><span class="title-bold">Email</span> an agent</div>
456
- </div>
457
- <div class="type-gradient__icon">${ChevronRightIcon(
458
- "black"
459
- )}</div>
376
+ </div>`
377
+ : null,
378
+ },
379
+ {
380
+ pillKey: "SST",
381
+ pill: this.hasSSTEnabledDesktop
382
+ ? html`
383
+ <div
384
+ class="type-hey__pill"
385
+ @click=${this.onClickSSTOption}
386
+ style=${styleMap({
387
+ background: this.backgroundColor,
388
+ })}>
389
+ <div class="type-hey__pill-left">
390
+ <div class="type-hey__icon">${BookTourOutlineIcon(
391
+ this.foregroundColorOnSecondaryBackgroundColor
392
+ )}</div>
393
+ <div style=${styleMap({
394
+ color: this.foregroundColorOnSecondaryBackgroundColor,
395
+ })}>
396
+ <span class="title-bold">Book</span> a tour
460
397
  </div>
461
- </div>`
462
- : ""}
463
- ${this.phoneNumber &&
464
- (this.hasCallUsEnabledDesktop || this.hasTextUsEnabledDesktop)
465
- ? html`
466
- <div
398
+ </div>
399
+ <div class="type-gradient__icon">${ChevronRightIcon(
400
+ this.foregroundColorOnSecondaryBackgroundColor
401
+ )}</div>
402
+ </div>
403
+ </div>
404
+ `
405
+ : null,
406
+ },
407
+ {
408
+ pillKey: "Phone",
409
+ pill:
410
+ this.phoneNumber &&
411
+ (this.hasCallUsEnabledDesktop || this.hasTextUsEnabledDesktop)
412
+ ? html`
413
+ <div
467
414
  class="type-hey__pill"
468
415
  @click=${this.onClickPhoneOption}
469
416
  style=${styleMap({
@@ -471,8 +418,12 @@ export class Launcher extends LitElement {
471
418
  })}
472
419
  >
473
420
  <div class="type-hey__pill-left">
474
- <div class="type-hey__icon">${PhoneBlackOutlineIcon}</div>
475
- <div>
421
+ <div class="type-hey__icon">${PhoneOutlineIcon(
422
+ this.foregroundColorOnSecondaryBackgroundColor
423
+ )}</div>
424
+ <div style=${styleMap({
425
+ color: this.foregroundColorOnSecondaryBackgroundColor,
426
+ })}>
476
427
  ${
477
428
  this.hasCallUsEnabledDesktop &&
478
429
  this.hasTextUsEnabledDesktop
@@ -496,33 +447,79 @@ export class Launcher extends LitElement {
496
447
  </div>
497
448
  </div>
498
449
  <div class="type-gradient__icon">${ChevronRightIcon(
499
- "black"
450
+ this.foregroundColorOnSecondaryBackgroundColor
500
451
  )}</div>
501
452
  </div>
502
- </div>`
503
- : ""}
504
- ${this.hasSSTEnabledDesktop
505
- ? html`
453
+ </div>
454
+ `
455
+ : null,
456
+ },
457
+ ];
458
+ const pills = emojiPillListItems.filter((v) => !!v.pill);
459
+ return html`
460
+ <div
461
+ class="type-hey__list"
462
+ style=${styleMap({
463
+ background: this.primaryColor,
464
+ })}
465
+ >
466
+ <div class="type-hey__chat-container">
467
+ ${this.hasChatEnabledDesktop
468
+ ? html`<minimize-expand-button
469
+ .primaryColor=${this.primaryColor}
470
+ .onClick=${this.onClickMinimize}
471
+ ></minimize-expand-button>`
472
+ : ""}
473
+ </div>
474
+
475
+ <div class="type-hey__top-section">
476
+ <div class="type-hey__ai-topic">
477
+ <p>AI Assistant</p>
478
+ <div class="type-hey__ai-topic-notch"></div>
479
+ </div>
480
+ <div class="type-hey__greeting">
481
+ <h1>Hey there!</h1>
482
+ <div>${HeyThereEmoji()}</div>
483
+ </div>
484
+ ${this.hasChatEnabledDesktop
485
+ ? html`
486
+ <div
487
+ id="type-hey__ask-prompt"
488
+ class="type-hey__pill"
489
+ @click=${this.onChatTapped}
490
+ style=${styleMap({
491
+ background: hexToAlmostWhite(this.primaryColor, 0.2),
492
+ })}
493
+ >
494
+ <div class="type-hey__pill-left">
495
+ <div class="type-hey__icon">
496
+ ${ChatOutlineIcon(
497
+ this.foregroundColorOnPrimaryBackgroundColor
498
+ )}
499
+ </div>
506
500
  <div
507
- class="type-hey__pill"
508
- @click=${this.onClickSSTOption}
509
501
  style=${styleMap({
510
- background: this.backgroundColor,
511
- })}>
512
- <div class="type-hey__pill-left">
513
- <div class="type-hey__icon">${BookTourBlackOutlineIcon}</div>
514
- <div>
515
- <span class="title-bold">Book</span> a tour
516
- </div>
517
- </div>
518
- <div class="type-gradient__icon">${ChevronRightIcon(
519
- "black"
520
- )}</div>
521
- </div>
522
- </div>`
523
- : ""}
524
- ${this.overrideRentgrata && hasRentgrata()
525
- ? html`
502
+ color: this.foregroundColorOnPrimaryBackgroundColor,
503
+ })}
504
+ >
505
+ <span class="title-bold">Chat</span> with us
506
+ </div>
507
+ </div>
508
+ <div class="type-gradient__icon">
509
+ ${ChevronRightIcon(
510
+ this.foregroundColorOnPrimaryBackgroundColor
511
+ )}
512
+ </div>
513
+ </div>
514
+ `
515
+ : ""}
516
+ </div>
517
+
518
+ <div class="type-hey__bottom-section">
519
+ <div class="type-hey__botton-section-pills">
520
+ ${pills.map((p) => p.pill)}
521
+ ${this.overrideRentgrata && hasRentgrata()
522
+ ? html`
526
523
  <div
527
524
  class="type-hey__pill"
528
525
  @click=${() => {
@@ -532,272 +529,278 @@ export class Launcher extends LitElement {
532
529
  background: this.backgroundColor,
533
530
  })}>
534
531
  <div class="type-hey__pill-left">
535
- <div class="type-hey__icon">${ContactResidentBlackOutlineIcon}</div>
532
+ <div class="type-hey__icon">${ContactResidentIcon(
533
+ "black"
534
+ )}</div>
536
535
  <div>
537
536
  <span class="title-bold">Contact</span> a resident
538
537
  </div>
539
538
  </div>
540
539
  <div class="type-gradient__icon">${ChevronRightIcon(
541
- "black"
540
+ this.foregroundColorOnSecondaryBackgroundColor
542
541
  )}</div>
543
542
  </div>
544
543
  </div>`
545
- : ""}
546
- </div>
544
+ : ""}
545
+ </div>
547
546
 
548
- <div class="type-hey__bottom-info">
549
- <div class="type-hey__bottom-info-inner">
550
- Online <span class="title-bold">24 hours</span> a day,
551
- <span class="title-bold">7</span> days a week
552
- </div>
547
+ <div class="type-hey__bottom-info">
548
+ <div class="type-hey__bottom-info-inner">
549
+ Online <span class="title-bold">24 hours</span> a day,
550
+ <span class="title-bold">7</span> days a week
553
551
  </div>
554
552
  </div>
555
553
  </div>
556
- `;
557
- }
554
+ </div>
555
+ `;
556
+ };
558
557
 
559
- {
560
- /* PUR is very insistent on the ordering of our launch statuses */
561
- }
562
- if (
558
+ private verticalPillList = (): TemplateResult => {
559
+ // Some clients are insisting on the tour pill being at the top
560
+ const showTourAtTop =
563
561
  this.orgSlug === "Pacific Urban Residential" ||
564
- this.orgSlug === "cbc11aba-21c4-4571-bc43-ff9d86a029e3"
565
- ) {
566
- return html` <div class="vertical-pill-list">
567
- ${this.hasChatEnabledDesktop
568
- ? html`<button
569
- @click=${this.onClickMinimize}
570
- class="minimize-button"
571
- aria-label="Minimize"
572
- >
573
- <div class="chevron-down">${ChevronRightIcon("black")}</div>
574
- </button>`
575
- : ""}
576
- ${this.hasSSTEnabledDesktop
562
+ this.orgSlug === "cbc11aba-21c4-4571-bc43-ff9d86a029e3";
563
+
564
+ const verticalPillListItems: {
565
+ pillKey: string;
566
+ pill: TemplateResult | null;
567
+ }[] = [
568
+ {
569
+ pillKey: "Chat",
570
+ pill: this.hasChatEnabledDesktop
577
571
  ? html`
578
- <div
579
- @click=${this.onClickSSTOption}
572
+ <div class="inner-pill-wrapper"
580
573
  style=${styleMap({
581
- background: this.brandColor,
574
+ background: showTourAtTop
575
+ ? this.backgroundColor
576
+ : this.primaryColor,
582
577
  })}
578
+ @click=${this.onChatTapped}>
579
+ <div class="vertical-pill-left">
580
+ <div class="vertical-pill-icon">${ChatOutlineIcon(
581
+ showTourAtTop
582
+ ? this.foregroundColorOnSecondaryBackgroundColor
583
+ : this.foregroundColorOnPrimaryBackgroundColor
584
+ )}</div>
585
+ <div class="vertical-pill-title" style=${styleMap({
586
+ color: showTourAtTop
587
+ ? this.foregroundColorOnSecondaryBackgroundColor
588
+ : this.foregroundColorOnPrimaryBackgroundColor,
589
+ })}>
590
+ <span class="vertical-pill-bold">Chat</span> with us
591
+ </div>
592
+ </div>
593
+ <div class="chevron-right">${ChevronRightIcon(
594
+ showTourAtTop
595
+ ? this.foregroundColorOnSecondaryBackgroundColor
596
+ : this.foregroundColorOnPrimaryBackgroundColor
597
+ )}</div>
598
+ </div>
599
+ </div>
600
+ `
601
+ : null,
602
+ },
603
+ {
604
+ pillKey: "SST",
605
+ pill: this.hasSSTEnabledDesktop
606
+ ? html`
607
+ <div
608
+ @click=${this.onClickSSTOption}
583
609
  id="overlay-inner-pill"
584
610
  class="inner-pill-wrapper"
611
+ style=${styleMap({
612
+ background: showTourAtTop
613
+ ? this.primaryColor
614
+ : this.backgroundColor,
615
+ })}
585
616
  >
586
617
  <div class="vertical-pill-left">
587
618
  <div class="vertical-pill-icon">
588
- ${BookTourBlackOutlineIcon}
619
+ ${BookTourOutlineIcon(
620
+ showTourAtTop
621
+ ? this.foregroundColorOnPrimaryBackgroundColor
622
+ : this.foregroundColorOnSecondaryBackgroundColor
623
+ )}
589
624
  </div>
590
- <div class="vertical-pill-title">
591
- <span class="vertical-pill-bold">Book</span> a tour
625
+ <div
626
+ class="vertical-pill-title"
627
+ style=${styleMap({
628
+ color: showTourAtTop
629
+ ? this.foregroundColorOnPrimaryBackgroundColor
630
+ : this.foregroundColorOnSecondaryBackgroundColor,
631
+ })}
632
+ >
633
+ <span class="vertical-pill-bold">Book</span>
634
+ a tour
592
635
  </div>
593
636
  </div>
594
637
  <div class="chevron-right">
595
- ${ChevronRightIcon(this.foregroundColorOnCustomBackground)}
638
+ ${ChevronRightIcon(
639
+ showTourAtTop
640
+ ? this.foregroundColorOnPrimaryBackgroundColor
641
+ : this.foregroundColorOnSecondaryBackgroundColor
642
+ )}
596
643
  </div>
597
644
  </div>
598
645
  `
599
- : ""}
600
- ${this.hasChatEnabledDesktop
646
+ : null,
647
+ },
648
+ {
649
+ pillKey: "Email",
650
+ pill: this.hasEmailEnabledDesktop
601
651
  ? html`
602
- <div class="inner-pill-wrapper"
603
- @click=${this.onChatTapped}>
652
+ <div
653
+ @click=${this.onClickEmailOption}
654
+ class="inner-pill-wrapper"
655
+ style=${styleMap({
656
+ background: this.backgroundColor,
657
+ })}
658
+ >
604
659
  <div class="vertical-pill-left">
605
- <div class="vertical-pill-icon">${ChatBlackOutlineIcon}</div>
606
- <div class="vertical-pill-title">
607
- <span class="vertical-pill-bold">Chat</span> with us
660
+ <div class="vertical-pill-icon">
661
+ ${EmailOutlineIcon(
662
+ this.foregroundColorOnSecondaryBackgroundColor
663
+ )}
608
664
  </div>
609
- </div>
610
- <div class="chevron-right">${ChevronRightIcon("black")}</div>
611
- </div>
612
- </div>
613
- `
614
- : ""}
615
- ${this.hasEmailEnabledDesktop
616
- ? html`
617
- <div @click=${this.onClickEmailOption} class="inner-pill-wrapper">
618
- <div class="vertical-pill-left">
619
- <div class="vertical-pill-icon">${EmailBlackOutlineIcon}</div>
620
- <div class="vertical-pill-title">
621
- <span class="vertical-pill-bold">Email</span> an agent
665
+ <div
666
+ class="vertical-pill-title"
667
+ style=${styleMap({
668
+ color: this.foregroundColorOnSecondaryBackgroundColor,
669
+ })}
670
+ >
671
+ <span class="vertical-pill-bold">Email</span>
672
+ an agent
622
673
  </div>
623
674
  </div>
624
- <div class="chevron-right">${ChevronRightIcon("black")}</div>
625
- </div>
626
- `
627
- : ""}
628
- ${this.phoneNumber &&
629
- (this.hasCallUsEnabledDesktop || this.hasTextUsEnabledDesktop)
630
- ? html`
631
- <div @click=${this.onClickPhoneOption} class="inner-pill-wrapper">
632
- <div class="vertical-pill-left">
633
- <div class="vertical-pill-icon">${PhoneBlackOutlineIcon}</div>
634
- ${this.hasCallUsEnabledDesktop && this.hasTextUsEnabledDesktop
635
- ? html`
636
- <div class="vertical-pill-title">
637
- <span class="vertical-pill-bold">Call</span> or
638
- <span class="vertical-pill-bold">text</span> us
639
- </div>
640
- `
641
- : ""}
642
- ${this.hasCallUsEnabledDesktop &&
643
- !this.hasTextUsEnabledDesktop
644
- ? html`
645
- <div class="vertical-pill-title">
646
- <span class="vertical-pill-bold">Call</span> us
647
- </div>
648
- `
649
- : ""}
650
- ${!this.hasCallUsEnabledDesktop &&
651
- this.hasTextUsEnabledDesktop
652
- ? html`
653
- <div class="vertical-pill-title">
654
- <span class="vertical-pill-bold">Text</span> us
655
- </div>
656
- `
657
- : ""}
675
+ <div class="chevron-right">
676
+ ${ChevronRightIcon(
677
+ this.foregroundColorOnSecondaryBackgroundColor
678
+ )}
658
679
  </div>
659
- <div class="chevron-right">${ChevronRightIcon("black")}</div>
660
680
  </div>
661
681
  `
662
- : ""}
663
- </div>`;
682
+ : null,
683
+ },
684
+ {
685
+ pillKey: "Phone",
686
+ pill:
687
+ this.phoneNumber &&
688
+ (this.hasCallUsEnabledDesktop || this.hasTextUsEnabledDesktop)
689
+ ? html`
690
+ <div
691
+ @click=${this.onClickPhoneOption}
692
+ class="inner-pill-wrapper"
693
+ style=${styleMap({
694
+ background: this.backgroundColor,
695
+ })}
696
+ >
697
+ <div class="vertical-pill-left">
698
+ <div class="vertical-pill-icon">
699
+ ${PhoneOutlineIcon(
700
+ this.foregroundColorOnSecondaryBackgroundColor
701
+ )}
702
+ </div>
703
+ ${this.hasCallUsEnabledDesktop &&
704
+ this.hasTextUsEnabledDesktop
705
+ ? html`
706
+ <div
707
+ class="vertical-pill-title"
708
+ style=${styleMap({
709
+ color:
710
+ this.foregroundColorOnSecondaryBackgroundColor,
711
+ })}
712
+ >
713
+ <span class="vertical-pill-bold">Call</span> or
714
+ <span class="vertical-pill-bold">text</span> us
715
+ </div>
716
+ `
717
+ : ""}
718
+ ${this.hasCallUsEnabledDesktop &&
719
+ !this.hasTextUsEnabledDesktop
720
+ ? html`
721
+ <div
722
+ class="vertical-pill-title"
723
+ style=${styleMap({
724
+ color:
725
+ this.foregroundColorOnSecondaryBackgroundColor,
726
+ })}
727
+ >
728
+ <span class="vertical-pill-bold">Call</span> us
729
+ </div>
730
+ `
731
+ : ""}
732
+ ${!this.hasCallUsEnabledDesktop &&
733
+ this.hasTextUsEnabledDesktop
734
+ ? html`
735
+ <div
736
+ class="vertical-pill-title"
737
+ style=${styleMap({
738
+ color:
739
+ this.foregroundColorOnSecondaryBackgroundColor,
740
+ })}
741
+ >
742
+ <span class="vertical-pill-bold">Text</span> us
743
+ </div>
744
+ `
745
+ : ""}
746
+ </div>
747
+ <div class="chevron-right">
748
+ ${ChevronRightIcon(
749
+ this.foregroundColorOnSecondaryBackgroundColor
750
+ )}
751
+ </div>
752
+ </div>
753
+ `
754
+ : null,
755
+ },
756
+ ];
757
+ const pills = verticalPillListItems.filter((v) => !!v.pill);
758
+ if (showTourAtTop) {
759
+ const sstIndex = pills.findIndex((p) => p.pillKey === "SST");
760
+ if (sstIndex !== -1) {
761
+ const [sstPill] = pills.splice(sstIndex, 1);
762
+ pills.unshift(sstPill);
763
+ }
664
764
  }
665
- return html` <div class="vertical-pill-list">
666
- ${this.hasChatEnabledDesktop
667
- ? html`<button
668
- @click=${this.onClickMinimize}
669
- class="minimize-button"
670
- aria-label="Minimize"
671
- >
672
- <div class="chevron-down">${ChevronRightIcon("black")}</div>
673
- </button>`
674
- : ""}
675
- ${this.hasChatEnabledDesktop
676
- ? html`
677
- <div id="overlay-inner-pill" class="inner-pill-wrapper"
678
- style=${styleMap({
679
- background: this.brandColor,
680
- })} @click=${this.onChatTapped}>
765
+ return html`
766
+ <div class="vertical-pill-list">
767
+ <div class="vertical-pill-list">
768
+ ${this.hasChatEnabledDesktop
769
+ ? html`<button
770
+ @click=${this.onClickMinimize}
771
+ class="minimize-button"
772
+ aria-label="Minimize"
773
+ >
774
+ <div class="chevron-down">${ChevronRightIcon("black")}</div>
775
+ </button>`
776
+ : ""}
777
+ ${pills.map((p) => p.pill)}
778
+ ${this.overrideRentgrata && hasRentgrata()
779
+ ? html`<div
780
+ @click=${() => {
781
+ openRengrataWidget();
782
+ }}
783
+ class="inner-pill-wrapper"
784
+ style=${styleMap({
785
+ background: this.backgroundColor,
786
+ })}
787
+ >
681
788
  <div class="vertical-pill-left">
682
789
  <div class="vertical-pill-icon">
683
- ${ChatOutlineIcon(this.foregroundColorOnCustomBackground)}
790
+ ${ContactResidentIcon(
791
+ this.foregroundColorOnSecondaryBackgroundColor
792
+ )}
684
793
  </div>
685
- <div class="vertical-pill-title" style=${styleMap({
686
- color: this.foregroundColorOnCustomBackground,
687
- })}>
688
- <span class="vertical-pill-bold">Chat</span> with us
794
+ <div class="vertical-pill-title">
795
+ <span class="vertical-pill-bold">Contact</span> a resident
689
796
  </div>
690
797
  </div>
691
- <div class="chevron-right">${ChevronRightIcon(
692
- this.foregroundColorOnCustomBackground
693
- )}</div>
694
- </div>
695
- </div>
696
- `
697
- : ""}
698
- ${this.hasEmailEnabledDesktop
699
- ? html`
700
- <div
701
- @click=${this.onClickEmailOption}
702
- class="inner-pill-wrapper"
703
- style=${styleMap({
704
- background: this.backgroundColor,
705
- })}
706
- >
707
- <div class="vertical-pill-left">
708
- <div class="vertical-pill-icon">${EmailBlackOutlineIcon}</div>
709
- <div class="vertical-pill-title">
710
- <span class="vertical-pill-bold">Email</span> an agent
711
- </div>
712
- </div>
713
- <div class="chevron-right">${ChevronRightIcon("black")}</div>
714
- </div>
715
- `
716
- : ""}
717
- ${this.phoneNumber &&
718
- (this.hasCallUsEnabledDesktop || this.hasTextUsEnabledDesktop)
719
- ? html`
720
- <div
721
- @click=${this.onClickPhoneOption}
722
- class="inner-pill-wrapper"
723
- style=${styleMap({
724
- background: this.backgroundColor,
725
- })}
726
- >
727
- <div class="vertical-pill-left">
728
- <div class="vertical-pill-icon">${PhoneBlackOutlineIcon}</div>
729
- ${this.hasCallUsEnabledDesktop && this.hasTextUsEnabledDesktop
730
- ? html`
731
- <div class="vertical-pill-title">
732
- <span class="vertical-pill-bold">Call</span> or
733
- <span class="vertical-pill-bold">text</span> us
734
- </div>
735
- `
736
- : ""}
737
- ${this.hasCallUsEnabledDesktop && !this.hasTextUsEnabledDesktop
738
- ? html`
739
- <div class="vertical-pill-title">
740
- <span class="vertical-pill-bold">Call</span> us
741
- </div>
742
- `
743
- : ""}
744
- ${!this.hasCallUsEnabledDesktop && this.hasTextUsEnabledDesktop
745
- ? html`
746
- <div class="vertical-pill-title">
747
- <span class="vertical-pill-bold">Text</span> us
748
- </div>
749
- `
750
- : ""}
751
- </div>
752
- <div class="chevron-right">${ChevronRightIcon("black")}</div>
753
- </div>
754
- `
755
- : ""}
756
- ${this.hasSSTEnabledDesktop
757
- ? html`
758
- <div
759
- @click=${this.onClickSSTOption}
760
- class="inner-pill-wrapper"
761
- style=${styleMap({
762
- background: this.backgroundColor,
763
- })}
764
- >
765
- <div class="vertical-pill-left">
766
- <div class="vertical-pill-icon">
767
- ${BookTourBlackOutlineIcon}
768
- </div>
769
- <div class="vertical-pill-title">
770
- <span class="vertical-pill-bold">Book</span> a tour
771
- </div>
772
- </div>
773
- <div class="chevron-right">${ChevronRightIcon("black")}</div>
774
- </div>
775
- `
776
- : ""}
777
- ${this.overrideRentgrata && hasRentgrata()
778
- ? html`
779
- <div
780
- @click=${() => {
781
- openRengrataWidget();
782
- }}
783
- class="inner-pill-wrapper"
784
- style=${styleMap({
785
- background: this.backgroundColor,
786
- })}
787
- >
788
- <div class="vertical-pill-left">
789
- <div class="vertical-pill-icon">
790
- ${ContactResidentBlackOutlineIcon}
791
- </div>
792
- <div class="vertical-pill-title">
793
- <span class="vertical-pill-bold">Contact</span> a resident
794
- </div>
795
- </div>
796
- <div class="chevron-right">${ChevronRightIcon("black")}</div>
797
- </div>
798
- `
799
- : ""}
800
- </div>`;
798
+ <div class="chevron-right">${ChevronRightIcon("black")}</div>
799
+ </div>`
800
+ : ""}
801
+ </div>
802
+ </div>
803
+ `;
801
804
  };
802
805
 
803
806
  render(): TemplateResult {
@@ -852,6 +855,24 @@ export class Launcher extends LitElement {
852
855
  };
853
856
  }
854
857
 
858
+ const overrideStyleWindows = {
859
+ top:
860
+ !isMobile() && this.top !== undefined && !isNaN(this.top)
861
+ ? `${this.top}px`
862
+ : undefined,
863
+ bottom:
864
+ !isMobile() && this.bottom !== undefined && !isNaN(this.bottom)
865
+ ? `${this.bottom}px`
866
+ : undefined,
867
+ left:
868
+ !isMobile() && this.left !== undefined && !isNaN(this.left)
869
+ ? `${this.left}px`
870
+ : undefined,
871
+ right:
872
+ !isMobile() && this.right !== undefined && !isNaN(this.right)
873
+ ? `${this.right}px`
874
+ : undefined,
875
+ };
855
876
  return html`
856
877
  <div
857
878
  class=${classNames({
@@ -893,26 +914,7 @@ export class Launcher extends LitElement {
893
914
  ${this.isEmailWindowOpen
894
915
  ? html`<div
895
916
  class="launcher__window-wrapper"
896
- style=${styleMap({
897
- top:
898
- !isMobile() && this.top !== undefined && !isNaN(this.top)
899
- ? `${this.top}px`
900
- : undefined,
901
- bottom:
902
- !isMobile() &&
903
- this.bottom !== undefined &&
904
- !isNaN(this.bottom)
905
- ? `${this.bottom}px`
906
- : undefined,
907
- left:
908
- !isMobile() && this.left !== undefined && !isNaN(this.left)
909
- ? `${this.left}px`
910
- : undefined,
911
- right:
912
- !isMobile() && this.right !== undefined && !isNaN(this.right)
913
- ? `${this.right}px`
914
- : undefined,
915
- })}
917
+ style=${styleMap(overrideStyleWindows)}
916
918
  >
917
919
  <email-us-window
918
920
  id="email-us-window"
@@ -934,26 +936,7 @@ export class Launcher extends LitElement {
934
936
  ${this.isSSTWindowOpen
935
937
  ? html`<div
936
938
  class="launcher__window-wrapper"
937
- style=${styleMap({
938
- top:
939
- !isMobile() && this.top !== undefined && !isNaN(this.top)
940
- ? `${this.top}px`
941
- : undefined,
942
- bottom:
943
- !isMobile() &&
944
- this.bottom !== undefined &&
945
- !isNaN(this.bottom)
946
- ? `${this.bottom}px`
947
- : undefined,
948
- left:
949
- !isMobile() && this.left !== undefined && !isNaN(this.left)
950
- ? `${this.left}px`
951
- : undefined,
952
- right:
953
- !isMobile() && this.right !== undefined && !isNaN(this.right)
954
- ? `${this.right}px`
955
- : undefined,
956
- })}
939
+ style=${styleMap(overrideStyleWindows)}
957
940
  >
958
941
  <tour-scheduler
959
942
  id="tour-scheduler-window"
@@ -971,7 +954,11 @@ export class Launcher extends LitElement {
971
954
  buildingId=${this.buildingId}
972
955
  featureFlagShowDropdown="${this.featureFlagShowDropdown}"
973
956
  .buildingName=${this.buildingName}
974
- .brandColor=${this.brandColor}
957
+ .primaryColor=${this.primaryColor}
958
+ .foregroundColorOnPrimaryBackgroundColor=${this
959
+ .foregroundColorOnPrimaryBackgroundColor}
960
+ .foregroundColorOnSecondaryBackgroundColor=${this
961
+ .foregroundColorOnSecondaryBackgroundColor}
975
962
  .compactDesign=${this.showTourNextToChat
976
963
  ? this.showTourNextToChat
977
964
  : ""}
@@ -984,28 +971,7 @@ export class Launcher extends LitElement {
984
971
  ? html`
985
972
  <div
986
973
  class="launcher__window-wrapper"
987
- style=${styleMap({
988
- top:
989
- !isMobile() && this.top !== undefined && !isNaN(this.top)
990
- ? `${this.top}px`
991
- : undefined,
992
- bottom:
993
- !isMobile() &&
994
- this.bottom !== undefined &&
995
- !isNaN(this.bottom)
996
- ? `${this.bottom}px`
997
- : undefined,
998
- left:
999
- !isMobile() && this.left !== undefined && !isNaN(this.left)
1000
- ? `${this.left}px`
1001
- : undefined,
1002
- right:
1003
- !isMobile() &&
1004
- this.right !== undefined &&
1005
- !isNaN(this.right)
1006
- ? `${this.right}px`
1007
- : undefined,
1008
- })}
974
+ style=${styleMap(overrideStyleWindows)}
1009
975
  >
1010
976
  <call-us-window
1011
977
  id="call-us-window"