@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.
@@ -22,12 +22,6 @@ object-assign
22
22
  * SPDX-License-Identifier: BSD-3-Clause
23
23
  */
24
24
 
25
- /**
26
- * @license
27
- * Copyright 2019 Google LLC
28
- * SPDX-License-Identifier: BSD-3-Clause
29
- */
30
-
31
25
  /**
32
26
  * @license
33
27
  * Copyright 2020 Google LLC
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
- <me-select
1197
- id="unitType"
1198
- placeholder="Select unit"
1199
- .options="${this.unitOptions
1200
- .filter(
1201
- (i) =>
1202
- !this.layoutTypeSelect ||
1203
- i.layout === this.layoutTypeSelect.value
1204
- )
1205
- .map((i) => ({
1206
- label: i.name,
1207
- value: i.name,
1208
- }))}"
1209
- defaultOption="Studio"
1210
- @change=${() => {
1211
- // to revalidate the form
1212
- this.requestUpdate();
1213
- }}
1214
- >Studio
1215
- </me-select>
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 { EmailUsWindow, installEmailUsWindow } from "./actions/email-us-window";
7
- import { installTextUsWindow, TextUsWindow } from "./actions/text-us-window";
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 "./actions/call-us-window";
11
- import { getRegisteredPhoneNumbers } from "../getRegisteredPhoneNumbers";
12
- import { TourScheduler } from "./Scheduler/tour-scheduler";
13
- import { LabeledOption, UnitV2 } from "../fetchBuildingInfo";
14
- import { abTestTypes } from "../fetchBuildingABTestType";
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
- FilledChatIcon,
17
- FilledEmailIcon,
18
- FilledPhoneIcon,
19
- FilledTourIcon,
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
- } from "../svgIcons";
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 = launcherStyles;
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 = true;
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 @click=${this.onClickMinimize} class="minimize-bttn">
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.onChatTapped} class="typeMobile-bttn">
333
+ <li @click=${this.onClickEmailOption} class="typeMobile-bttn">
328
334
  <div class="typeMobile-inner">
329
- <div class="typeMobile-icon">${ChatWhiteStrokeIcon}</div>
335
+ <div class="typeMobile-icon">${EmailBlackOutlineIcon}</div>
330
336
  </div>
331
337
  </li>
332
- <li @click=${this.onClickEmailOption} class="typeMobile-bttn">
338
+ <li @click=${this.onClickPhoneOption} class="typeMobile-bttn">
333
339
  <div class="typeMobile-inner">
334
- <div class="typeMobile-icon">${EmailWhiteStrokeIcon}</div>
340
+ <div class="typeMobile-icon">${PhoneBlackOutlineIcon}</div>
335
341
  </div>
336
342
  </li>
337
- <li @click=${this.onClickPhoneOption} class="typeMobile-bttn">
343
+ <li @click=${this.onClickSSTOption} class="typeMobile-bttn">
338
344
  <div class="typeMobile-inner">
339
- <div class="typeMobile-icon">${PhoneWhiteStrokeIcon}</div>
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.ConceptBlueBlack) {
347
- return html` <div class="type-gradient__list">
348
- <button @click=${this.onClickMinimize} class="minimize-bttn">
349
- <div class="chevron-down">${ChevronIconBlack}</div>
350
- </button>
351
- ${this.hasChatEnabled
352
- ? html`
353
- <div
354
- class="type-gradient__top-container"
355
- @click=${this.onChatTapped}
356
- >
357
- <video class="glowBackground" autoplay loop muted playsinline>
358
- <source src="${glowBackgroundMp4}" type="video/mp4" />
359
- </video>
360
- <div class="type-gradient__scroll-info">
361
- ${ChatWhiteStrokeIcon}
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
- if (this.buildingABTestType === abTestTypes.ConceptBlueWhite) {
412
- return html`
413
-
414
- <div class="type-hey__list">
415
- <button @click=${this.onClickMinimize} class="minimize-bttn">
416
- <div class="chevron-down">${ChevronIconBlack}</div>
417
- </button>
418
- <div class="type-hey__top-section">
419
- <div class="type-hey__ai-topic">
420
- <p>AI Assistant</p>
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
- <div class="type-hey__ask-prompt" @click=${this.onChatTapped}>
431
- <div class="type-hey__ask-prompt-inner">
432
- <div class="type-hey__ask-start">
433
- <h2>Ask me about</h2>
434
- <div class="scroll-container">
435
- <ul>
436
- <li>booking a tour</li>
437
- <li>our pet policy</li>
438
- <li>our amenities</li>
439
- <li>our availability</li>
440
- </ul>
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
- <div>${ChevronIconWhite}</div>
444
- </div>
445
- </div>
446
- </div>
447
- `
448
- : ""
449
- }
450
- </div>
408
+ `
409
+ : ""}
410
+ </div>
451
411
 
452
- <div class="type-hey__bottom-section">
453
- ${
454
- this.hasEmailEnabled
455
- ? html` <div class="type-hey__email" @click=${this.onClickEmailOption}>
456
- <div class="type-hey__icon">${EmailBlackStrokeIcon}</div>
457
- <div>
458
- <span class="title-bold">Email</span> an agent
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
- <div class="type-gradient__icon">${ChevronIconWhite}</div>
461
- </div>
462
- </div>`
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
- ? this.renderPillVertical(
512
- html`
513
- <div class="vertical-pill-icon">${FilledChatIcon}</div>
514
- <div class="vertical-pill-title">
515
- <span class="vertical-pill-bold">Chat</span> with us
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
- this.onChatTapped
519
- )
493
+ </div>
494
+ `
520
495
  : ""}
521
- ${this.hasSSTEnabled
522
- ? this.renderPillVertical(
523
- html`
524
- <div class="vertical-pill-icon">${FilledTourIcon}</div>
525
- <div class="vertical-pill-title">
526
- <span class="vertical-pill-bold">Book</span> a tour
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
- this.onClickSSTOption
530
- )
505
+ <div class="chevron-right">${ChevronIconBlack}</div>
506
+ </div>
507
+ `
531
508
  : ""}
532
509
  ${this.phoneNumber && this.hasCallUsEnabled
533
- ? this.renderPillVertical(
534
- html`
535
- <div class="vertical-pill-icon">${FilledPhoneIcon}</div>
536
- <div class="vertical-pill-title">
537
- <span class="vertical-pill-bold">Call</span>
538
- ${this.hasTextUsEnabled
539
- ? html`or <span class="vertical-pill-bold">text</span> us`
540
- : "us"}
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
- this.onClickPhoneOption
544
- )
536
+ <div class="chevron-right">${ChevronIconBlack}</div>
537
+ </div>
538
+ `
545
539
  : ""}
546
540
  </div>`;
547
541
  };