@nyaruka/temba-components 0.45.0 → 0.47.0

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 (90) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{0887303b.js → df04e47b.js} +225 -340
  3. package/dist/index.js +225 -340
  4. package/dist/sw.js +1 -1
  5. package/dist/sw.js.map +1 -1
  6. package/dist/templates/components-body.html +1 -1
  7. package/dist/templates/components-head.html +1 -1
  8. package/out-tsc/src/button/Button.js +10 -0
  9. package/out-tsc/src/button/Button.js.map +1 -1
  10. package/out-tsc/src/completion/Completion.js +3 -0
  11. package/out-tsc/src/completion/Completion.js.map +1 -1
  12. package/out-tsc/src/completion/helpers.js +3 -0
  13. package/out-tsc/src/completion/helpers.js.map +1 -1
  14. package/out-tsc/src/contacts/ContactChat.js +8 -201
  15. package/out-tsc/src/contacts/ContactChat.js.map +1 -1
  16. package/out-tsc/src/contacts/ContactFieldEditor.js +34 -8
  17. package/out-tsc/src/contacts/ContactFieldEditor.js.map +1 -1
  18. package/out-tsc/src/contacts/ContactFields.js +34 -21
  19. package/out-tsc/src/contacts/ContactFields.js.map +1 -1
  20. package/out-tsc/src/contacts/ContactHistory.js +5 -111
  21. package/out-tsc/src/contacts/ContactHistory.js.map +1 -1
  22. package/out-tsc/src/contacts/ContactTickets.js +99 -17
  23. package/out-tsc/src/contacts/ContactTickets.js.map +1 -1
  24. package/out-tsc/src/contacts/events.js +28 -46
  25. package/out-tsc/src/contacts/events.js.map +1 -1
  26. package/out-tsc/src/date/TembaDate.js +4 -1
  27. package/out-tsc/src/date/TembaDate.js.map +1 -1
  28. package/out-tsc/src/datepicker/DatePicker.js +15 -4
  29. package/out-tsc/src/datepicker/DatePicker.js.map +1 -1
  30. package/out-tsc/src/formfield/FormField.js +1 -1
  31. package/out-tsc/src/formfield/FormField.js.map +1 -1
  32. package/out-tsc/src/interfaces.js.map +1 -1
  33. package/out-tsc/src/list/TembaList.js +1 -2
  34. package/out-tsc/src/list/TembaList.js.map +1 -1
  35. package/out-tsc/src/options/Options.js +6 -2
  36. package/out-tsc/src/options/Options.js.map +1 -1
  37. package/out-tsc/src/store/StoreElement.js +8 -1
  38. package/out-tsc/src/store/StoreElement.js.map +1 -1
  39. package/out-tsc/src/utils/index.js +16 -6
  40. package/out-tsc/src/utils/index.js.map +1 -1
  41. package/out-tsc/src/vectoricon/index.js +1 -1
  42. package/out-tsc/src/vectoricon/index.js.map +1 -1
  43. package/out-tsc/test/temba-contact-chat.test.js +0 -105
  44. package/out-tsc/test/temba-contact-chat.test.js.map +1 -1
  45. package/package.json +1 -1
  46. package/screenshots/truth/contacts/badges.png +0 -0
  47. package/screenshots/truth/contacts/compose-attachments-no-text-failure.png +0 -0
  48. package/screenshots/truth/contacts/compose-attachments-no-text-success.png +0 -0
  49. package/screenshots/truth/contacts/compose-text-and-attachments-failure-attachments.png +0 -0
  50. package/screenshots/truth/contacts/compose-text-and-attachments-failure-generic.png +0 -0
  51. package/screenshots/truth/contacts/compose-text-and-attachments-failure-text-and-attachments.png +0 -0
  52. package/screenshots/truth/contacts/compose-text-and-attachments-failure-text.png +0 -0
  53. package/screenshots/truth/contacts/compose-text-and-attachments-success.png +0 -0
  54. package/screenshots/truth/contacts/compose-text-no-attachments-failure.png +0 -0
  55. package/screenshots/truth/contacts/compose-text-no-attachments-success.png +0 -0
  56. package/screenshots/truth/contacts/contact-active-default.png +0 -0
  57. package/screenshots/truth/contacts/contact-active-show-chatbox.png +0 -0
  58. package/screenshots/truth/contacts/contact-archived-hide-chatbox.png +0 -0
  59. package/screenshots/truth/contacts/contact-blocked-hide-chatbox.png +0 -0
  60. package/screenshots/truth/contacts/contact-stopped-hide-chatbox.png +0 -0
  61. package/screenshots/truth/contacts/fields-updated.png +0 -0
  62. package/screenshots/truth/contacts/fields.png +0 -0
  63. package/screenshots/truth/contacts/history.png +0 -0
  64. package/screenshots/truth/datepicker/datetime.png +0 -0
  65. package/screenshots/truth/datepicker/initial-timezone.png +0 -0
  66. package/screenshots/truth/datepicker/initial-value.png +0 -0
  67. package/screenshots/truth/datepicker/updated-keyboard.png +0 -0
  68. package/src/button/Button.ts +10 -0
  69. package/src/completion/Completion.ts +3 -0
  70. package/src/completion/helpers.ts +4 -0
  71. package/src/contacts/ContactChat.ts +8 -214
  72. package/src/contacts/ContactFieldEditor.ts +33 -8
  73. package/src/contacts/ContactFields.ts +31 -22
  74. package/src/contacts/ContactHistory.ts +7 -129
  75. package/src/contacts/ContactTickets.ts +99 -19
  76. package/src/contacts/events.ts +28 -47
  77. package/src/date/TembaDate.ts +7 -1
  78. package/src/datepicker/DatePicker.ts +15 -4
  79. package/src/formfield/FormField.ts +1 -1
  80. package/src/interfaces.ts +1 -1
  81. package/src/list/TembaList.ts +1 -3
  82. package/src/options/Options.ts +8 -2
  83. package/src/store/StoreElement.ts +7 -1
  84. package/src/utils/index.ts +14 -6
  85. package/src/vectoricon/index.ts +1 -1
  86. package/static/css/temba-components.css +2 -1
  87. package/test/temba-contact-chat.test.ts +0 -141
  88. package/screenshots/truth/contacts/contact-active-ticket-closed-show-reopen-button.png +0 -0
  89. package/screenshots/truth/contacts/contact-active-ticket-open-show-chatbox.png +0 -0
  90. package/screenshots/truth/contacts/contact-archived-ticket-closed-hide-chatbox.png +0 -0
@@ -2,8 +2,6 @@ import { useFakeTimers } from 'sinon';
2
2
  import { Button } from '../src/button/Button';
3
3
  import { Compose } from '../src/compose/Compose';
4
4
  import { ContactChat } from '../src/contacts/ContactChat';
5
- import { CustomEventType } from '../src/interfaces';
6
- import { TicketList } from '../src/list/TicketList';
7
5
  import {
8
6
  assertScreenshot,
9
7
  clearMockPosts,
@@ -42,25 +40,6 @@ const getContactChat = async (attrs: any = {}) => {
42
40
  return chat;
43
41
  };
44
42
 
45
- const list_TAG = 'temba-list';
46
- const getTicketList = async (attrs: any = {}) => {
47
- const list = (await getComponent(list_TAG, attrs)) as TicketList;
48
-
49
- if (!list.endpoint) {
50
- return list;
51
- }
52
-
53
- return new Promise<TicketList>(resolve => {
54
- list.addEventListener(
55
- CustomEventType.FetchComplete,
56
- async () => {
57
- resolve(list);
58
- },
59
- { once: true }
60
- );
61
- });
62
- };
63
-
64
43
  describe('temba-contact-chat - contact tests', () => {
65
44
  // map requests for contact history to our static files
66
45
  // we'll just us the same historylist for everybody for now
@@ -468,123 +447,3 @@ describe('temba-contact-chat - contact tests - handle send tests - text and atta
468
447
  );
469
448
  });
470
449
  });
471
-
472
- describe('temba-contact-chat - ticket tests', () => {
473
- // map requests for contact history to our static files
474
- // we'll just us the same history for everybody for now
475
- beforeEach(() => {
476
- mockGET(
477
- /\/contact\/history\/contact-.*/,
478
- '/test-assets/contacts/history.json'
479
- );
480
-
481
- mockGET(/\/api\/v2\/tickets\.json.*/, '/test-assets/tickets/empty.json');
482
- clock = useFakeTimers();
483
- });
484
-
485
- afterEach(function () {
486
- clock.restore();
487
- });
488
-
489
- it('show history and show chatbox if contact is active and ticket is open', async () => {
490
- // we are a StoreElement, so load a store first
491
- await loadStore();
492
- const chat: ContactChat = await getContactChat({
493
- contact: 'contact-carter-active',
494
- });
495
-
496
- const tickets: TicketList = await getTicketList({
497
- endpoint: '/test-assets/tickets/ticket-carter-open.json',
498
- });
499
-
500
- chat.currentTicket = tickets.items[0];
501
- chat.refresh();
502
- await chat.httpComplete;
503
-
504
- // we want to wait until our scroll is finished before taking our screenshot
505
- // once we have two scrollTops that are the same, we'll assume we're ready
506
- let lastScroll = 0;
507
- await assertScreenshot(
508
- 'contacts/contact-active-ticket-open-show-chatbox',
509
- getClip(chat),
510
- {
511
- clock: clock,
512
- predicate: () => {
513
- const currentScroll = chat
514
- .getContactHistory()
515
- .getEventsPane().scrollTop;
516
- if (currentScroll !== 0 && currentScroll === lastScroll) {
517
- return true;
518
- }
519
- lastScroll = currentScroll;
520
- },
521
- }
522
- );
523
- });
524
-
525
- it('show history and show reopen button if contact is active and ticket is closed', async () => {
526
- // we are a StoreElement, so load a store first
527
- await loadStore();
528
- const chat: ContactChat = await getContactChat({
529
- contact: 'contact-carter-active',
530
- });
531
-
532
- const tickets: TicketList = await getTicketList({
533
- endpoint: '/test-assets/tickets/ticket-carter-closed.json',
534
- });
535
- chat.currentTicket = tickets.items[0];
536
- chat.refresh();
537
- await chat.httpComplete;
538
-
539
- let lastScroll = 0;
540
- await assertScreenshot(
541
- 'contacts/contact-active-ticket-closed-show-reopen-button',
542
- getClip(chat),
543
- {
544
- clock: clock,
545
- predicate: () => {
546
- const currentScroll = chat
547
- .getContactHistory()
548
- .getEventsPane().scrollTop;
549
- if (currentScroll !== 0 && currentScroll === lastScroll) {
550
- return true;
551
- }
552
- lastScroll = currentScroll;
553
- },
554
- }
555
- );
556
- });
557
-
558
- it('show history and hide chatbox if contact is archived and ticket is closed', async () => {
559
- // we are a StoreElement, so load a store first
560
- await loadStore();
561
-
562
- const chat: ContactChat = await getContactChat({
563
- contact: 'contact-barack-archived',
564
- });
565
-
566
- const tickets: TicketList = await getTicketList({
567
- endpoint: '/test-assets/tickets/ticket-barack-closed.json',
568
- });
569
- chat.currentTicket = tickets.items[0];
570
- chat.refresh();
571
- await chat.httpComplete;
572
- let lastScroll = 0;
573
- await assertScreenshot(
574
- 'contacts/contact-archived-ticket-closed-hide-chatbox',
575
- getClip(chat),
576
- {
577
- clock: clock,
578
- predicate: () => {
579
- const currentScroll = chat
580
- .getContactHistory()
581
- .getEventsPane().scrollTop;
582
- if (currentScroll !== 0 && currentScroll === lastScroll) {
583
- return true;
584
- }
585
- lastScroll = currentScroll;
586
- },
587
- }
588
- );
589
- });
590
- });