@meetelise/chat 1.25.0 → 1.25.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/coverage/lcov-report/base.css +224 -0
  2. package/coverage/lcov-report/block-navigation.js +79 -0
  3. package/coverage/lcov-report/favicon.png +0 -0
  4. package/coverage/lcov-report/index.html +111 -0
  5. package/coverage/lcov-report/index.js.html +17093 -0
  6. package/coverage/lcov-report/prettify.css +1 -0
  7. package/coverage/lcov-report/prettify.js +2 -0
  8. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  9. package/coverage/lcov-report/sorter.js +170 -0
  10. package/coverage/lcov.info +9986 -0
  11. package/dist/index.d.ts +1 -0
  12. package/package.json +1 -1
  13. package/.eslintignore +0 -2
  14. package/.eslintrc.cjs +0 -23
  15. package/.github/pull_request_template.md +0 -61
  16. package/.github/workflows/pull.yml +0 -46
  17. package/.github/workflows/release.yml +0 -23
  18. package/.husky/commit-msg +0 -2
  19. package/.husky/pre-commit +0 -4
  20. package/.idea/codeStyles/Project.xml +0 -57
  21. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  22. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  23. package/.idea/vcs.xml +0 -6
  24. package/.idea/workspace.xml +0 -67
  25. package/.prettierignore +0 -2
  26. package/.prettierrc.json +0 -1
  27. package/.vscode/settings.json +0 -13
  28. package/CONTRIBUTING.md +0 -36
  29. package/public/demo/index.html +0 -347
  30. package/public/demo/secret.html +0 -63
  31. package/src/MyPubnub.ts +0 -792
  32. package/src/WebComponent/FeeCalculator/components/collapsible-fee-section/collapsible-fee-section-styles.ts +0 -86
  33. package/src/WebComponent/FeeCalculator/components/collapsible-fee-section/collapsible-fee-section.ts +0 -94
  34. package/src/WebComponent/FeeCalculator/components/fee-item/fee-item-styles.ts +0 -47
  35. package/src/WebComponent/FeeCalculator/components/fee-item/fee-item.ts +0 -50
  36. package/src/WebComponent/FeeCalculator/components/floor-plan-selector/floor-plan-selector-styles.ts +0 -46
  37. package/src/WebComponent/FeeCalculator/components/floor-plan-selector/floor-plan-selector.ts +0 -70
  38. package/src/WebComponent/FeeCalculator/components/index.ts +0 -3
  39. package/src/WebComponent/FeeCalculator/components/promo-card/promo-card-styles.ts +0 -39
  40. package/src/WebComponent/FeeCalculator/components/promo-card/promo-card.ts +0 -39
  41. package/src/WebComponent/FeeCalculator/fee-calculator-styles.ts +0 -280
  42. package/src/WebComponent/FeeCalculator/fee-calculator.ts +0 -256
  43. package/src/WebComponent/FeeCalculator/index.ts +0 -4
  44. package/src/WebComponent/FeeCalculator/model/building-fee.ts +0 -83
  45. package/src/WebComponent/FeeCalculator/model/transaction-category.ts +0 -23
  46. package/src/WebComponent/LeadSourceClient.ts +0 -332
  47. package/src/WebComponent/MEChat.css +0 -5
  48. package/src/WebComponent/OfficeHours.ts +0 -73
  49. package/src/WebComponent/Scheduler/date-picker.ts +0 -405
  50. package/src/WebComponent/Scheduler/time-picker.ts +0 -190
  51. package/src/WebComponent/Scheduler/tour-scheduler.ts +0 -1352
  52. package/src/WebComponent/Scheduler/tour-type-option.ts +0 -112
  53. package/src/WebComponent/Scheduler/tourSchedulerStyles.ts +0 -418
  54. package/src/WebComponent/actions/InputStyles.ts +0 -57
  55. package/src/WebComponent/actions/action-confirm-button.ts +0 -125
  56. package/src/WebComponent/actions/call-us-window.ts +0 -445
  57. package/src/WebComponent/actions/collapse-expand-button.ts +0 -65
  58. package/src/WebComponent/actions/details-window.ts +0 -150
  59. package/src/WebComponent/actions/email-us-window.ts +0 -555
  60. package/src/WebComponent/actions/formatPhoneNumber.ts +0 -72
  61. package/src/WebComponent/actions/minimize-expand-button.ts +0 -93
  62. package/src/WebComponent/chat-additional-actions.ts +0 -135
  63. package/src/WebComponent/health-chat.ts +0 -270
  64. package/src/WebComponent/healthchat-styles.ts +0 -119
  65. package/src/WebComponent/icons/ApplyOutlineIcon.ts +0 -22
  66. package/src/WebComponent/icons/BookTourOutlineIcon.ts +0 -13
  67. package/src/WebComponent/icons/CalculatorOutlineIcon.ts +0 -22
  68. package/src/WebComponent/icons/ChatOutlineIcon.ts +0 -10
  69. package/src/WebComponent/icons/ChevronLeftIcon.ts +0 -7
  70. package/src/WebComponent/icons/ChevronRightIcon.ts +0 -7
  71. package/src/WebComponent/icons/ContactResidentIcon.ts +0 -9
  72. package/src/WebComponent/icons/DollarOutlineIcon.ts +0 -18
  73. package/src/WebComponent/icons/EmailOutlineIcon.ts +0 -7
  74. package/src/WebComponent/icons/HeyThereEmojiIcon.ts +0 -12
  75. package/src/WebComponent/icons/PhoneOutlineIcon.ts +0 -7
  76. package/src/WebComponent/icons/SendMessageIcon.ts +0 -17
  77. package/src/WebComponent/icons/TourSelfGuidedIcon.ts +0 -17
  78. package/src/WebComponent/icons/TourVirtuallyIcon.ts +0 -17
  79. package/src/WebComponent/icons/TourWithAgentIcon.ts +0 -17
  80. package/src/WebComponent/icons/XOutlineIcon.ts +0 -8
  81. package/src/WebComponent/index.ts +0 -2
  82. package/src/WebComponent/launcher/Launcher.ts +0 -1193
  83. package/src/WebComponent/launcher/launcherStyles.ts +0 -500
  84. package/src/WebComponent/launcher/mobile-launcher.ts +0 -159
  85. package/src/WebComponent/launcher/typeEmojiStyles.ts +0 -161
  86. package/src/WebComponent/launcher/typeMiniStyles.ts +0 -60
  87. package/src/WebComponent/launcher/typeMobileStyles.ts +0 -50
  88. package/src/WebComponent/leasing-chat-styles.ts +0 -114
  89. package/src/WebComponent/me-chat.ts +0 -1257
  90. package/src/WebComponent/me-select.ts +0 -322
  91. package/src/WebComponent/mini-loader.ts +0 -28
  92. package/src/WebComponent/pubnub-chat-styles.ts +0 -204
  93. package/src/WebComponent/pubnub-chat.ts +0 -928
  94. package/src/WebComponent/pubnub-media.ts +0 -208
  95. package/src/WebComponent/pubnub-message-styles.ts +0 -54
  96. package/src/WebComponent/pubnub-message.ts +0 -431
  97. package/src/WebComponent/simple-launcher/simple-launcher-styles.ts +0 -34
  98. package/src/WebComponent/simple-launcher/simple-launcher.ts +0 -100
  99. package/src/WebComponent/utilities-chat.ts +0 -270
  100. package/src/WebComponent/utilities-styles.ts +0 -110
  101. package/src/WebComponent/utils.ts +0 -82
  102. package/src/analytics.ts +0 -217
  103. package/src/assetUrls.ts +0 -6
  104. package/src/disclaimers.ts +0 -58
  105. package/src/fetchBuildingABTestType.ts +0 -21
  106. package/src/fetchBuildingInfo.ts +0 -87
  107. package/src/fetchBuildingWebchatView.ts +0 -154
  108. package/src/fetchFeatureFlag.ts +0 -250
  109. package/src/fetchLeadSources.ts +0 -98
  110. package/src/fetchPhoneNumberFromSource.ts +0 -31
  111. package/src/fetchWebchatPreferences.ts +0 -54
  112. package/src/getAvailabilities.ts +0 -174
  113. package/src/getBuildingPhoneNumber.ts +0 -26
  114. package/src/getShouldAllowScheduling.ts +0 -16
  115. package/src/getShouldShowWebchat.ts +0 -114
  116. package/src/getTimezoneString.ts +0 -39
  117. package/src/globals.ts +0 -1
  118. package/src/gtm.ts +0 -17
  119. package/src/handleChatId.ts +0 -101
  120. package/src/insertDNIIntoWebsite.ts +0 -146
  121. package/src/insertLeadSourceIntoSchedulerLinks.ts +0 -71
  122. package/src/main/MEChat.test.ts +0 -110
  123. package/src/main/MEChat.ts +0 -404
  124. package/src/main/utils.ts +0 -70
  125. package/src/postLeadSources.ts +0 -44
  126. package/src/rentgrata.ts +0 -74
  127. package/src/replaceSelectButtonsWithNewLink.ts +0 -68
  128. package/src/services/fees/fetchBuildingFees.ts +0 -28
  129. package/src/svgIcons.ts +0 -14
  130. package/src/themes.ts +0 -65
  131. package/src/types/rest-sdk.types.ts +0 -13
  132. package/src/types/webchat-no-show-reason.ts +0 -6
  133. package/src/utils.ts +0 -121
  134. package/tsconfig.json +0 -84
  135. package/web-test-runner.config.js +0 -10
  136. package/webpack.config.cjs +0 -48
@@ -1,112 +0,0 @@
1
- import { css, html, LitElement, TemplateResult } from "lit";
2
- import { customElement, property } from "lit/decorators.js";
3
- import { styleMap } from "lit/directives/style-map.js";
4
- import { defaultPrimaryColor, defaultBackgroundColor } from "../../themes";
5
-
6
- @customElement("tour-type-option")
7
- export class TourTypeOption extends LitElement {
8
- @property({ type: String })
9
- heading = "";
10
- @property({ type: String })
11
- subtitle = "";
12
- @property({ type: Boolean })
13
- selected = false;
14
- @property({ attribute: false })
15
- onClick?: () => void;
16
-
17
- @property({ attribute: true })
18
- primaryColor: string = defaultPrimaryColor;
19
-
20
- @property({ attribute: true })
21
- backgroundColor: string = defaultBackgroundColor;
22
-
23
- @property({ attribute: true })
24
- foregroundColorOnPrimaryBackgroundColor = "white";
25
-
26
- @property({ attribute: true })
27
- foregroundColorOnSecondaryBackgroundColor = "black";
28
-
29
- static styles = [
30
- css`
31
- .tour-type-option {
32
- height: 90px;
33
- width: 100%;
34
- background: #e7e7e7;
35
- border: 1px solid #ffffff;
36
- border-radius: 10px;
37
- position: relative;
38
- user-select: none;
39
- box-sizing: border-box;
40
- }
41
-
42
- :host([selected]) .tour-type-option {
43
- background: #202020;
44
- border: 3px solid #83818e;
45
- }
46
-
47
- .content {
48
- display: flex;
49
- align-items: center;
50
- justify-content: center;
51
- gap: 15px;
52
- width: 100%;
53
- position: absolute;
54
- top: 50%;
55
- left: 50%;
56
- transform: translate(-50%, -50%);
57
- }
58
-
59
- .text {
60
- display: flex;
61
- flex-direction: column;
62
- color: #202020;
63
- font-family: "Helvetica Neue", Arial;
64
- }
65
-
66
- :host([selected]) .text {
67
- color: #ffffff;
68
- }
69
-
70
- h1,
71
- h2 {
72
- font-size: 15px;
73
- margin: 0;
74
- }
75
-
76
- h1 {
77
- font-weight: 600;
78
- }
79
-
80
- h2 {
81
- font-weight: 400;
82
- }
83
- `,
84
- ];
85
-
86
- render(): TemplateResult {
87
- return html`
88
- <div
89
- class="tour-type-option"
90
- tabindex="0"
91
- style=${styleMap({
92
- background: this.selected ? this.primaryColor : undefined,
93
- })}
94
- >
95
- <div class="content">
96
- <slot name="icon"></slot>
97
- <div
98
- class="text"
99
- style=${styleMap({
100
- color: this.selected
101
- ? this.foregroundColorOnPrimaryBackgroundColor
102
- : this.foregroundColorOnSecondaryBackgroundColor,
103
- })}
104
- >
105
- <h1>${this.heading}</h1>
106
- <h2>${this.subtitle}</h2>
107
- </div>
108
- </div>
109
- </div>
110
- `;
111
- }
112
- }
@@ -1,418 +0,0 @@
1
- import { css } from "lit";
2
-
3
- // the entire tourScheduler needs a complete rework - it's a mess
4
- export const tourSchedulerStyles = css`
5
- * {
6
- box-sizing: border-box;
7
- }
8
-
9
- h1,
10
- h2,
11
- h3,
12
- h4,
13
- h5,
14
- h6 {
15
- margin: 0;
16
- padding: 0;
17
- }
18
-
19
- .tour-scheduler-full,
20
- .tour-scheduler-compact,
21
- .tour-scheduler-mobile {
22
- background: #ffffff;
23
- box-shadow: 0px 16px 18px 10px rgba(21, 21, 21, 0.4);
24
- border-radius: 10px;
25
- font-family: "Helvetica Neue", Arial;
26
- color: #202020;
27
-
28
- max-width: 1000px;
29
- }
30
- .tour-scheduler-full {
31
- position: fixed;
32
- left: 50%;
33
- top: 50%;
34
- transform: translate(-50%, -50%);
35
- width: 100%;
36
- max-width: 1018px;
37
- }
38
- .tour-scheduler-compact {
39
- position: fixed;
40
- left: 5%;
41
- top: 50%;
42
- transform: translate(0%, -50%);
43
- width: 100%;
44
- max-width: calc(90% - 340px); /* 340px is width of chat popup */
45
- }
46
- .tour-scheduler-mobile {
47
- position: fixed;
48
- left: 6px;
49
- right: 0;
50
- bottom: 0;
51
- top: 6px;
52
- height: calc(100% - 12px);
53
- width: calc(100% - 12px);
54
- box-sizing: border-box;
55
-
56
- display: flex;
57
- flex-direction: column;
58
- overflow: hidden;
59
- }
60
- #mobile-body-container {
61
- flex: 1;
62
- box-sizing: border-box;
63
- padding: 24px;
64
- }
65
-
66
- #mobile-next-bttn {
67
- height: 50px;
68
- padding: 13px 22px 14px 22px;
69
- float: right;
70
- background: #202020;
71
- border: 1px solid #ffffff;
72
- border-radius: 10px;
73
- font-family: "Helvetica Neue", Arial;
74
- font-weight: 700;
75
- font-size: 14px;
76
- color: #ffffff;
77
- box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
78
- margin-top: 22px;
79
- cursor: pointer;
80
- }
81
- #mobile-next-bttn:disabled {
82
- background: #e7e7e7;
83
- box-shadow: none;
84
- }
85
- #schedule-bttn {
86
- float: right;
87
- margin-top: 4px;
88
- margin-bottom: 4px;
89
- cursor: pointer;
90
- }
91
- #top-header {
92
- position: sticky;
93
- top: 0;
94
- left: 0;
95
- width: 100%;
96
- height: 64px;
97
-
98
- box-sizing: border-box;
99
- padding-left: 24px;
100
- padding-right: 24px;
101
- display: flex;
102
- justify-content: space-between;
103
- align-items: center;
104
-
105
- border-bottom: 1px solid #e7e7e7;
106
- }
107
- #tour-header-title {
108
- font-size: 14px;
109
- font-weight: 600;
110
- }
111
- #close-button {
112
- background: none;
113
- border: none;
114
- cursor: pointer;
115
- padding: 0;
116
- margin: 0;
117
- }
118
- #scheduler-container {
119
- padding: 24px;
120
- height: 500px;
121
- overflow-y: auto;
122
- position: relative;
123
- }
124
-
125
- #book-tour-journey-items {
126
- display: flex;
127
- justify-content: space-between;
128
- gap: 24px;
129
- }
130
- .journey-header {
131
- font-size: 14px;
132
- font-weight: 600;
133
- padding-bottom: 12px;
134
- }
135
-
136
- #tour-type-menu-outer-container {
137
- width: 220px;
138
- }
139
- #date-and-time-menu-outer-container {
140
- width: calc(70% - 220px);
141
- }
142
- #user-info-and-layout-menu-outer-container {
143
- width: 30%;
144
- }
145
-
146
- #tour-type-menu {
147
- align-self: start;
148
- display: flex;
149
- flex-direction: column;
150
- gap: 6px;
151
- }
152
-
153
- @media screen and (max-width: 1200px) {
154
- #book-tour-journey-items {
155
- display: flex;
156
- flex-direction: column;
157
- align-items: center;
158
- }
159
- #tour-type-menu-outer-container {
160
- width: 320px;
161
- padding-bottom: 24px;
162
- border-bottom: 1px solid #e7e7e7;
163
- }
164
- #date-and-time-menu-outer-container {
165
- width: 320px;
166
- padding-bottom: 24px;
167
- border-bottom: 1px solid #e7e7e7;
168
- }
169
- #user-info-and-layout-menu-outer-container {
170
- width: 320px;
171
- padding-bottom: 64px;
172
- }
173
-
174
- #datePicker {
175
- display: flex;
176
- flex-direction: column;
177
- justify-content: center;
178
- align-items: center;
179
- width: 100%;
180
- }
181
- }
182
-
183
- /*
184
- makes button fit size of SVG:
185
- https://stackoverflow.com/questions/45423874/button-height-is-greater-than-the-nested-contents-height
186
- otherwise there's some empty space at the bottom of the button, which interferes with vertical centering
187
- */
188
- button#closeButton > svg {
189
- vertical-align: middle;
190
- }
191
-
192
- h2 {
193
- font-weight: 600;
194
- font-size: 14px;
195
- grid-row: label-row;
196
- }
197
-
198
- h2#tourType {
199
- grid-column: 1;
200
- grid-row: 2;
201
- }
202
-
203
- h2#dateAndTime {
204
- grid-column: 2;
205
- grid-row: 2;
206
- }
207
-
208
- h2#yourInformation {
209
- grid-column: 3;
210
- grid-row: 2;
211
- }
212
-
213
- #datePicker {
214
- display: flex;
215
- gap: 8px;
216
- }
217
-
218
- #dateAndTimeMenu {
219
- grid-row: 4 / 5;
220
- grid-column: 2;
221
- align-self: start;
222
- display: flex;
223
- flex-direction: column;
224
- }
225
-
226
- #yourInformationMenu {
227
- grid-row: 4 / 5;
228
- grid-column: 3;
229
- display: flex;
230
- flex-direction: column;
231
- gap: 12px;
232
- }
233
-
234
- #yourInformationMenu input {
235
- width: 100%;
236
- height: 49px;
237
- }
238
-
239
- hr {
240
- grid-row: 6;
241
- grid-column: 1 / 5;
242
- /* remove side margins because of this
243
- * (https://stackoverflow.com/questions/34365271/hr-inside-container-with-display-flex-become-corrupted)
244
- * and top/bottom margins to position the line exactly at the gridline
245
- */
246
- margin: 0;
247
- }
248
-
249
- #tour-scheduler-footer {
250
- height: 100px;
251
- display: flex;
252
- justify-content: space-between;
253
- align-items: center;
254
- border-top: 1px solid #e7e7e7;
255
-
256
- padding-left: 24px;
257
- padding-right: 24px;
258
- box-sizing: border-box;
259
- }
260
-
261
- .explanation {
262
- font-weight: 400;
263
- font-size: 14px;
264
- padding-right: 24px;
265
- }
266
- #schedule {
267
- width: 145px;
268
- height: 50px;
269
- justify-self: end;
270
- }
271
-
272
- #confirmationMessage {
273
- display: flex;
274
- flex-direction: column;
275
- justify-content: center;
276
- align-items: center;
277
- padding: 24px;
278
- box-sizing: border-box;
279
- gap: 12px;
280
- }
281
-
282
- #confirmationMessage > p {
283
- font-size: 18px;
284
- }
285
-
286
- /* Loading styles: pulsing gray overlay on all the form elements */
287
-
288
- @keyframes spin {
289
- 0% {
290
- transform: none;
291
- }
292
- 50% {
293
- transform: rotateZ(180deg);
294
- }
295
- 100% {
296
- transform: rotateZ(360deg);
297
- }
298
- }
299
-
300
- svg#loadingIcon {
301
- animation: spin 2s infinite linear;
302
- }
303
-
304
- .tour-scheduler.loading #scheduleATour {
305
- display: flex;
306
- gap: 10px;
307
- }
308
-
309
- @keyframes loadingPulse {
310
- 0% {
311
- background-color: #e7e7e7;
312
- }
313
- 50% {
314
- background-color: white;
315
- }
316
- 100% {
317
- background-color: #e7e7e7;
318
- }
319
- }
320
-
321
- tour-type-option,
322
- date-picker,
323
- #yourInformationMenu .inputContainer {
324
- position: relative;
325
- }
326
-
327
- #self-guided-redirect-bttn {
328
- height: 50px;
329
- width: 240px;
330
- background: #d4d4d4;
331
- border: 1px solid #ffffff;
332
- border-radius: 10px;
333
- font-family: "Helvetica Neue", Arial;
334
- font-weight: 500;
335
- font-size: 14px;
336
- color: #000000;
337
- box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
338
- cursor: pointer;
339
- }
340
-
341
- .tour-scheduler.loading
342
- :is(tour-type-option, date-picker, #yourInformationMenu
343
- .inputContainer)::after {
344
- content: "";
345
- position: absolute;
346
- top: 0;
347
- left: 0;
348
- height: 100%;
349
- z-index: 1;
350
- animation: loadingPulse 2s infinite;
351
- }
352
-
353
- .tour-scheduler.loading tour-type-option::after {
354
- border-radius: 10px;
355
- width: 200px;
356
- }
357
-
358
- .tour-scheduler.loading date-picker::after {
359
- border-radius: 10px;
360
- width: 205px;
361
- }
362
-
363
- .tour-scheduler.loading #yourInformationMenu .inputContainer input {
364
- visibility: hidden;
365
- }
366
-
367
- .tour-scheduler.loading time-picker {
368
- display: none;
369
- }
370
-
371
- #namesWrapper {
372
- display: flex;
373
- justify-content: space-between;
374
- }
375
-
376
- .nameContainer {
377
- width: 48%;
378
- }
379
-
380
- .nameInput {
381
- width: 100%;
382
- }
383
-
384
- .center-tour-not-avail {
385
- display: flex;
386
- justify-content: center;
387
- align-items: center;
388
- flex-direction: column;
389
-
390
- height: 320px;
391
- box-sizing: border-box;
392
- text-align: center;
393
-
394
- width: 100%;
395
- padding: 24px;
396
- max-width: 440px;
397
- margin: auto;
398
- }
399
- .center-tour-not-avail > h1 {
400
- font-size: 18px;
401
- font-weight: 400;
402
- text-align: center;
403
- margin: 0;
404
- }
405
- .center-tour-not-avail > p {
406
- font-size: 14px;
407
- text-align: left;
408
- }
409
- .loading-entire-tour-icon {
410
- padding: 24px;
411
- }
412
-
413
- .reschedule-buttons-wrapper {
414
- display: flex;
415
- gap: 12px;
416
- align-items: center;
417
- }
418
- `;
@@ -1,57 +0,0 @@
1
- import { css } from "lit";
2
-
3
- export const InputStyles = css`
4
- .webchat-input {
5
- outline: none;
6
-
7
- color: #202020;
8
- font-family: "Helvetica Neue", Arial;
9
- font-style: normal;
10
- font-weight: 400;
11
- line-height: 22px;
12
-
13
- background: #d9d9d9;
14
- border: 1px solid #efefef;
15
- border-radius: 100px;
16
- padding: 10px 16px;
17
-
18
- font-size: 14px;
19
- }
20
-
21
- .webchat-input__error {
22
- border-color: #ff0000;
23
- }
24
-
25
- .error-message {
26
- color: #ff0000;
27
- font-size: 12px;
28
- font-weight: 400;
29
- line-height: 16px;
30
- margin-top: 4px;
31
- }
32
-
33
- .webchat-font__desktop {
34
- font-size: 14px;
35
- }
36
- .webchat-font__mobile {
37
- font-size: 16px;
38
- }
39
- .webchat-textarea {
40
- border-radius: 8px;
41
- padding: 8px 16px;
42
- }
43
-
44
- .webchat-input:active {
45
- border: 1px solid #000000;
46
- }
47
-
48
- .webchat-input:focus-within {
49
- border: 1px solid #000000;
50
- }
51
-
52
- .webchat-input::placeholder {
53
- color: rgba(32, 32, 32, 0.5);
54
- font-family: "Helvetica Neue", Arial;
55
- font-size: 14px;
56
- }
57
- `;
@@ -1,125 +0,0 @@
1
- import classnames from "classnames";
2
- import { css, html, LitElement, TemplateResult } from "lit";
3
- import { customElement, property } from "lit/decorators.js";
4
-
5
- @customElement("action-confirm-button")
6
- export class ActionConfirmButton extends LitElement {
7
- static styles = [
8
- css`
9
- .action-confirm-button {
10
- display: flex;
11
- justify-content: center;
12
- align-items: center;
13
-
14
- background: #000000;
15
- border: none;
16
-
17
- border-radius: 20px;
18
-
19
- font-family: "Helvetica Neue", Arial;
20
- font-style: normal;
21
- font-weight: 400;
22
- font-size: 12px;
23
- line-height: 20px;
24
-
25
- color: #ffffff;
26
- padding: 5px 15px;
27
- cursor: pointer;
28
- }
29
-
30
- .action-confirm-button:disabled {
31
- background: #e7e7e7;
32
- box-shadow: none;
33
- cursor: initial;
34
- }
35
- .action-confirm-button:not(:is(:disabled, .loading)):active {
36
- transform: translateY(2px);
37
- box-shadow: 0px 0px 0px rgba(36, 53, 141, 0.25);
38
- }
39
-
40
- .action-confirm-button:not(:is(:active, :disabled, .loading)):hover {
41
- opacity: 0.7;
42
- }
43
-
44
- .loading {
45
- cursor: initial;
46
- }
47
-
48
- .lds-ring {
49
- display: inline-block;
50
- position: relative;
51
- width: 28px;
52
- height: 28px;
53
- }
54
- .lds-ring div {
55
- box-sizing: border-box;
56
- display: block;
57
- position: absolute;
58
- width: 28px;
59
- height: 28px;
60
- border: 8px solid #fff;
61
- border-radius: 50%;
62
- animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
63
- border-color: #fff transparent transparent transparent;
64
- }
65
- .lds-ring div:nth-child(1) {
66
- animation-delay: -0.45s;
67
- }
68
- .lds-ring div:nth-child(2) {
69
- animation-delay: -0.3s;
70
- }
71
- .lds-ring div:nth-child(3) {
72
- animation-delay: -0.15s;
73
- }
74
- @keyframes lds-ring {
75
- 0% {
76
- transform: rotate(0deg);
77
- }
78
- 100% {
79
- transform: rotate(360deg);
80
- }
81
- }
82
- `,
83
- ];
84
- @property()
85
- onClick?: () => void;
86
- @property()
87
- text = "Submit";
88
- @property({ attribute: false })
89
- isLoading = false;
90
- @property({ type: Boolean })
91
- disabled = false;
92
- @property({ type: String })
93
- height = "initial";
94
- @property({ type: String })
95
- width = "initial";
96
-
97
- focus = (): void => {
98
- this.shadowRoot?.querySelector("button")?.focus();
99
- };
100
-
101
- render = (): TemplateResult => {
102
- return html`<button
103
- class=${classnames("action-confirm-button", { loading: this.isLoading })}
104
- @click=${!this.isLoading ? this.onClick : null}
105
- ?disabled=${this.disabled}
106
- style=${`height: ${this.height}; width: ${this.width};`}
107
- tabindex="0"
108
- >
109
- ${!this.isLoading
110
- ? this.text
111
- : html`<div class="lds-ring">
112
- <div></div>
113
- <div></div>
114
- <div></div>
115
- <div></div>
116
- </div>`}
117
- </button>`;
118
- };
119
- }
120
-
121
- export const installActionConfirmButton = (): void => {
122
- if (!window.customElements.get("action-confirm-button")) {
123
- window.customElements.define("action-confirm-button", ActionConfirmButton);
124
- }
125
- };