@inboxsdk/core 0.2.28-alpha.4 → 0.2.28-alpha.5

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 (263) hide show
  1. package/inboxsdk.js +1 -1
  2. package/package.json +5 -1
  3. package/src/inboxsdk-js/check-requirements.js +7 -3
  4. package/src/inboxsdk-js/header.js +1 -0
  5. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +5 -6
  6. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -3
  7. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -1
  8. package/src/inboxsdk-js/inboxsdk-TEST.js +4 -3
  9. package/src/inboxsdk-js/inboxsdk.js +33 -39
  10. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +15 -18
  11. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  12. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  13. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  14. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  15. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  16. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  17. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  18. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  19. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  20. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  21. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  22. package/src/injected-js/main.js +11 -24
  23. package/src/injected-js/message-metadata-holder.js +52 -82
  24. package/src/injected-js/setup-data-exposer.js +89 -148
  25. package/src/injected-js/setup-error-silencer.js +21 -21
  26. package/src/injected-js/setup-event-reemitter.js +30 -22
  27. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  28. package/src/injected-js/setupPushStateListener.js +18 -11
  29. package/src/injected-js/xhr-helper.js +62 -65
  30. package/src/injected-js/xhr-proxy-factory.js +195 -445
  31. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  32. package/src/platform-implementation-js/constants/router.js +14 -9
  33. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  34. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  35. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  36. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  37. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  38. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  39. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  40. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  41. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  42. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  43. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  44. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  45. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  46. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  47. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  48. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  49. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  50. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  51. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  52. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  53. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  54. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  55. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  56. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  57. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  58. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  59. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  60. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  61. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  62. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  66. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  67. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  68. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  69. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  70. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  71. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  72. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  73. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  74. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  75. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  76. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  77. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  78. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  79. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  80. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  81. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  82. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  83. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  84. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  85. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  86. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  87. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  88. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  89. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  90. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  91. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  92. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  93. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  111. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  112. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  113. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  114. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  115. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  116. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  117. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  118. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  119. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  120. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  121. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  122. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  123. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  124. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  125. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  126. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  127. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  128. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  129. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  130. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  131. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  132. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  133. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  134. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  135. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  136. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  137. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  138. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  139. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  140. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  141. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  142. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  143. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  144. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  145. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  146. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  147. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  148. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  149. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  150. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  151. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  152. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  153. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  154. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  155. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  156. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  157. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  158. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  159. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  160. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  161. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  162. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  163. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  164. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  165. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  166. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  167. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  168. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  169. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  170. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  171. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  172. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  173. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  174. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  175. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  176. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  177. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  178. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  179. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  180. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  181. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  182. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  183. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  184. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  185. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  186. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  187. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  188. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  189. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  190. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  191. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  192. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  193. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  194. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  195. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  196. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  197. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  198. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  199. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  200. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  201. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  202. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  203. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  204. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  205. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  206. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  207. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  208. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  209. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  210. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  211. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  212. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  213. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  214. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  215. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  216. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  217. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  218. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  219. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  220. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  221. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  222. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  223. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  224. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  225. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  226. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  227. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  228. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  229. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  230. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  231. package/src/platform-implementation-js/main.js +9 -24
  232. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  233. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  234. package/src/platform-implementation-js/namespaces/global.js +27 -39
  235. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  236. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  237. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  238. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  239. package/src/platform-implementation-js/namespaces/router.js +70 -137
  240. package/src/platform-implementation-js/namespaces/search.js +19 -17
  241. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  242. package/src/platform-implementation-js/namespaces/user.js +36 -37
  243. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  244. package/src/platform-implementation-js/platform-implementation.js +98 -229
  245. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  246. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  247. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  248. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  249. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  250. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  251. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  252. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  253. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  254. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  255. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  256. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  257. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  258. package/src/platform-implementation-js/views/section-view.js +60 -52
  259. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  260. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  261. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  262. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  263. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,18 +1,18 @@
1
- /* @flow */
2
-
3
- import showCustomThreadList from './show-custom-thread-list';
4
-
5
- import * as GSRP from '../gmail-sync-response-processor';
6
-
7
- import fs from 'fs';
8
- import once from 'lodash/once';
9
- import Kefir from 'kefir';
10
- import kefirBus from 'kefir-bus';
11
-
12
- const readFile = fs.promises.readFile;
13
-
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _showCustomThreadList = _interopRequireDefault(require("./show-custom-thread-list"));
6
+ var GSRP = _interopRequireWildcard(require("../gmail-sync-response-processor"));
7
+ var _fs = _interopRequireDefault(require("fs"));
8
+ var _once = _interopRequireDefault(require("lodash/once"));
9
+ var _kefir = _interopRequireDefault(require("kefir"));
10
+ var _kefirBus = _interopRequireDefault(require("kefir-bus"));
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+ const readFile = _fs.default.promises.readFile;
14
14
  beforeAll(() => {
15
- (document.body: any).innerHTML = `
15
+ document.body.innerHTML = `
16
16
  <div>
17
17
  <form role="search">
18
18
  <input type="text">
@@ -20,385 +20,199 @@ beforeAll(() => {
20
20
  </div>
21
21
  `;
22
22
  });
23
-
24
23
  class ShowCustomThreadListTester {
25
- _ajaxInterceptStream = kefirBus();
26
- _customListNewQueryBus = kefirBus();
27
- _customListResultsBus = kefirBus();
28
- _allowGmailThreadIdLookup = kefirBus();
29
- _driver: any = {
30
- isUsingSyncAPI: () => true,
31
- getLogger: once(() => ({
32
- error(e) {
33
- // eslint-disable-next-line no-console
34
- console.error(e);
35
- throw e;
36
- },
37
- })),
38
- getCustomListSearchStringsToRouteIds: once(() => new Map()),
39
- getPageCommunicator: once(() => ({
40
- ajaxInterceptStream: this._ajaxInterceptStream,
41
- setupCustomListResultsQuery: jest.fn(),
42
- setCustomListNewQuery: jest.fn((value) => {
43
- this._customListNewQueryBus.value(value);
44
- }),
45
- setCustomListResults: jest.fn((value) => {
46
- this._customListResultsBus.value(value);
24
+ constructor(options) {
25
+ (0, _defineProperty2.default)(this, "_ajaxInterceptStream", (0, _kefirBus.default)());
26
+ (0, _defineProperty2.default)(this, "_customListNewQueryBus", (0, _kefirBus.default)());
27
+ (0, _defineProperty2.default)(this, "_customListResultsBus", (0, _kefirBus.default)());
28
+ (0, _defineProperty2.default)(this, "_allowGmailThreadIdLookup", (0, _kefirBus.default)());
29
+ (0, _defineProperty2.default)(this, "_driver", {
30
+ isUsingSyncAPI: () => true,
31
+ getLogger: (0, _once.default)(() => ({
32
+ error(e) {
33
+ // eslint-disable-next-line no-console
34
+ console.error(e);
35
+ throw e;
36
+ }
37
+ })),
38
+ getCustomListSearchStringsToRouteIds: (0, _once.default)(() => new Map()),
39
+ getPageCommunicator: (0, _once.default)(() => ({
40
+ ajaxInterceptStream: this._ajaxInterceptStream,
41
+ setupCustomListResultsQuery: jest.fn(),
42
+ setCustomListNewQuery: jest.fn(value => {
43
+ this._customListNewQueryBus.value(value);
44
+ }),
45
+ setCustomListResults: jest.fn(value => {
46
+ this._customListResultsBus.value(value);
47
+ })
48
+ })),
49
+ signalCustomThreadListActivity: jest.fn(),
50
+ getRfcMessageIdForGmailThreadId: jest.fn(async gmailThreadId => {
51
+ if (!this._threadIdsToRfcIds.has(gmailThreadId)) {
52
+ throw new Error('Failed to find id');
53
+ }
54
+ return this._threadIdsToRfcIds.get(gmailThreadId);
47
55
  }),
48
- })),
49
- signalCustomThreadListActivity: jest.fn(),
50
- getRfcMessageIdForGmailThreadId: jest.fn(async (gmailThreadId: string) => {
51
- if (!this._threadIdsToRfcIds.has(gmailThreadId)) {
52
- throw new Error('Failed to find id');
53
- }
54
- return this._threadIdsToRfcIds.get(gmailThreadId);
55
- }),
56
- getGmailThreadIdForRfcMessageId: jest.fn(async (rfcId: string) => {
57
- if (!this._rfcIdsToThreadIds.has(rfcId)) {
58
- throw new Error('Failed to find id');
59
- }
60
- await this._allowGmailThreadIdLookup.take(1).toPromise();
61
- return this._rfcIdsToThreadIds.get(rfcId);
62
- }),
63
- };
64
-
65
- _customRouteID = 'tlbeep';
66
- _routeParams = [];
67
-
68
- _onActivate: Function;
69
- _expectedSearchQuery: string;
70
- _start: number;
71
- _getOriginalSearchResponse: () => Promise<string>;
72
- _threadIdsToRfcIds: Map<string, string>;
73
- _rfcIdsToThreadIds: Map<string, string>;
74
-
75
- _newQuery: string;
76
-
77
- constructor(options: {|
78
- onActivate: Function,
79
- threadAndRfcIds: Array<[string, string]>,
80
- expectedSearchQuery: string,
81
- start: number,
82
- getOriginalSearchResponse: () => Promise<string>,
83
- |}) {
56
+ getGmailThreadIdForRfcMessageId: jest.fn(async rfcId => {
57
+ if (!this._rfcIdsToThreadIds.has(rfcId)) {
58
+ throw new Error('Failed to find id');
59
+ }
60
+ await this._allowGmailThreadIdLookup.take(1).toPromise();
61
+ return this._rfcIdsToThreadIds.get(rfcId);
62
+ })
63
+ });
64
+ (0, _defineProperty2.default)(this, "_customRouteID", 'tlbeep');
65
+ (0, _defineProperty2.default)(this, "_routeParams", []);
84
66
  this._onActivate = options.onActivate;
85
-
86
67
  this._threadIdsToRfcIds = new Map(options.threadAndRfcIds);
87
- this._rfcIdsToThreadIds = new Map(
88
- options.threadAndRfcIds.map(([threadId, rfcId]) => [rfcId, threadId])
89
- );
90
-
68
+ this._rfcIdsToThreadIds = new Map(options.threadAndRfcIds.map(_ref => {
69
+ let [threadId, rfcId] = _ref;
70
+ return [rfcId, threadId];
71
+ }));
91
72
  this._expectedSearchQuery = options.expectedSearchQuery;
92
73
  this._start = options.start;
93
74
  this._getOriginalSearchResponse = options.getOriginalSearchResponse;
94
75
  }
95
-
96
- async runAndGetSetCustomListResults(): Promise<Object> {
97
- showCustomThreadList(
98
- this._driver,
99
- this._customRouteID,
100
- this._onActivate,
101
- this._routeParams,
102
- () => null
103
- );
104
-
105
- expect(
106
- this._driver.getPageCommunicator().setupCustomListResultsQuery.mock.calls
107
- .length
108
- ).toBe(1);
109
- this._newQuery =
110
- this._driver.getPageCommunicator().setupCustomListResultsQuery.mock.calls[0][0];
76
+ async runAndGetSetCustomListResults() {
77
+ (0, _showCustomThreadList.default)(this._driver, this._customRouteID, this._onActivate, this._routeParams, () => null);
78
+ expect(this._driver.getPageCommunicator().setupCustomListResultsQuery.mock.calls.length).toBe(1);
79
+ this._newQuery = this._driver.getPageCommunicator().setupCustomListResultsQuery.mock.calls[0][0];
111
80
  expect(typeof this._newQuery).toBe('string');
112
-
113
81
  expect(this._driver.getCustomListSearchStringsToRouteIds().size).toBe(1);
114
- expect(
115
- this._driver.getCustomListSearchStringsToRouteIds().get(this._newQuery)
116
- ).toBe('tlbeep');
117
-
82
+ expect(this._driver.getCustomListSearchStringsToRouteIds().get(this._newQuery)).toBe('tlbeep');
118
83
  expect(this._driver.signalCustomThreadListActivity.mock.calls).toEqual([]);
119
- expect(
120
- this._driver.getPageCommunicator().setCustomListNewQuery.mock.calls
121
- ).toEqual([]);
84
+ expect(this._driver.getPageCommunicator().setCustomListNewQuery.mock.calls).toEqual([]);
122
85
  this._ajaxInterceptStream.value({
123
86
  type: 'searchForReplacement',
124
87
  query: this._newQuery,
125
- start: this._start,
88
+ start: this._start
126
89
  });
127
- expect(this._driver.signalCustomThreadListActivity.mock.calls).toEqual([
128
- [this._customRouteID],
129
- ]);
90
+ expect(this._driver.signalCustomThreadListActivity.mock.calls).toEqual([[this._customRouteID]]);
130
91
  await this._customListNewQueryBus.take(1).toPromise();
131
- expect(
132
- this._driver.getPageCommunicator().setCustomListNewQuery.mock.calls
133
- ).toEqual([
134
- [
135
- {
136
- newQuery: this._expectedSearchQuery,
137
- newStart: 0,
138
- query: this._newQuery,
139
- start: this._start,
140
- },
141
- ],
142
- ]);
143
-
92
+ expect(this._driver.getPageCommunicator().setCustomListNewQuery.mock.calls).toEqual([[{
93
+ newQuery: this._expectedSearchQuery,
94
+ newStart: 0,
95
+ query: this._newQuery,
96
+ start: this._start
97
+ }]]);
144
98
  const originalSearchResponse = await this._getOriginalSearchResponse();
145
-
146
99
  this._ajaxInterceptStream.value({
147
100
  type: 'searchResultsResponse',
148
101
  query: this._newQuery,
149
102
  start: this._start,
150
- response: originalSearchResponse,
103
+ response: originalSearchResponse
151
104
  });
152
-
153
- expect(
154
- this._driver.getPageCommunicator().setCustomListResults.mock.calls.length
155
- ).toBe(0);
105
+ expect(this._driver.getPageCommunicator().setCustomListResults.mock.calls.length).toBe(0);
156
106
  this._allowGmailThreadIdLookup.value();
157
107
  await this._customListResultsBus.take(1).toPromise();
158
- expect(
159
- this._driver.getPageCommunicator().setCustomListResults.mock.calls.length
160
- ).toBe(1);
161
-
162
- expect(
163
- this._driver.getPageCommunicator().setCustomListResults.mock.calls[0][0]
164
- ).toBe(this._newQuery);
165
-
166
- return this._driver.getPageCommunicator().setCustomListResults.mock
167
- .calls[0][1];
108
+ expect(this._driver.getPageCommunicator().setCustomListResults.mock.calls.length).toBe(1);
109
+ expect(this._driver.getPageCommunicator().setCustomListResults.mock.calls[0][0]).toBe(this._newQuery);
110
+ return this._driver.getPageCommunicator().setCustomListResults.mock.calls[0][1];
168
111
  }
169
112
  }
170
-
171
113
  test('works', async () => {
172
- const getOriginalSearchResponse = once(() =>
173
- readFile(
174
- __dirname + '/../../../../../test/data/2019-02-01 search results.json',
175
- 'utf8'
176
- )
177
- );
178
-
114
+ const getOriginalSearchResponse = (0, _once.default)(() => readFile(__dirname + '/../../../../../test/data/2019-02-01 search results.json', 'utf8'));
179
115
  const tester = new ShowCustomThreadListTester({
180
116
  onActivate() {
181
117
  return {
182
118
  hasMore: false,
183
- threads: [
184
- '168ab8987a3b61b3',
185
- '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
186
- ],
119
+ threads: ['168ab8987a3b61b3', '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>']
187
120
  };
188
121
  },
189
- threadAndRfcIds: [
190
- [
191
- '168ab8987a3b61b3',
192
- '<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>',
193
- ],
194
- [
195
- '168a6018f86576ac',
196
- '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
197
- ],
198
- ],
199
- expectedSearchQuery:
200
- 'rfc822msgid:<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com> OR rfc822msgid:<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
122
+ threadAndRfcIds: [['168ab8987a3b61b3', '<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>'], ['168a6018f86576ac', '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>']],
123
+ expectedSearchQuery: 'rfc822msgid:<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com> OR rfc822msgid:<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
201
124
  start: 0,
202
- getOriginalSearchResponse,
125
+ getOriginalSearchResponse
203
126
  });
204
127
  const setCustomListResults = await tester.runAndGetSetCustomListResults();
205
-
206
- function ignoreRawResponses(syncThreads: GSRP.SyncThread[]) {
207
- return syncThreads.map((o) => ({
128
+ function ignoreRawResponses(syncThreads) {
129
+ return syncThreads.map(o => ({
208
130
  ...o,
209
- rawResponse: 'ignored',
131
+ rawResponse: 'ignored'
210
132
  }));
211
133
  }
212
-
213
- expect(
214
- ignoreRawResponses(
215
- GSRP.extractThreadsFromSearchResponse(setCustomListResults)
216
- )
217
- ).toEqual(
218
- ignoreRawResponses(
219
- GSRP.extractThreadsFromSearchResponse(await getOriginalSearchResponse())
220
- )
221
- );
134
+ expect(ignoreRawResponses(GSRP.extractThreadsFromSearchResponse(setCustomListResults))).toEqual(ignoreRawResponses(GSRP.extractThreadsFromSearchResponse(await getOriginalSearchResponse())));
222
135
  });
223
-
224
136
  test('can reorder list', async () => {
225
- const getOriginalSearchResponse = once(() =>
226
- readFile(
227
- __dirname + '/../../../../../test/data/2019-02-01 search results.json',
228
- 'utf8'
229
- )
230
- );
231
-
137
+ const getOriginalSearchResponse = (0, _once.default)(() => readFile(__dirname + '/../../../../../test/data/2019-02-01 search results.json', 'utf8'));
232
138
  const tester = new ShowCustomThreadListTester({
233
139
  onActivate() {
234
140
  return {
235
141
  hasMore: false,
236
- threads: [
237
- '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
238
- '168ab8987a3b61b3',
239
- ],
142
+ threads: ['<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>', '168ab8987a3b61b3']
240
143
  };
241
144
  },
242
- threadAndRfcIds: [
243
- [
244
- '168ab8987a3b61b3',
245
- '<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>',
246
- ],
247
- [
248
- '168a6018f86576ac',
249
- '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
250
- ],
251
- ],
252
- expectedSearchQuery:
253
- 'rfc822msgid:<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com> OR rfc822msgid:<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>',
145
+ threadAndRfcIds: [['168ab8987a3b61b3', '<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>'], ['168a6018f86576ac', '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>']],
146
+ expectedSearchQuery: 'rfc822msgid:<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com> OR rfc822msgid:<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>',
254
147
  start: 0,
255
- getOriginalSearchResponse,
148
+ getOriginalSearchResponse
256
149
  });
257
150
  const setCustomListResults = await tester.runAndGetSetCustomListResults();
258
-
259
- function ignoreSomeFields(syncThreads: GSRP.SyncThread[]) {
260
- return syncThreads.map((o) => ({
151
+ function ignoreSomeFields(syncThreads) {
152
+ return syncThreads.map(o => ({
261
153
  ...o,
262
154
  rawResponse: 'ignored',
263
155
  extraMetaData: {
264
156
  ...o.extraMetaData,
265
- syncMessageData: o.extraMetaData.syncMessageData.map((s) => ({
157
+ syncMessageData: o.extraMetaData.syncMessageData.map(s => ({
266
158
  ...s,
267
- date: 'ignored',
268
- })),
269
- },
159
+ date: 'ignored'
160
+ }))
161
+ }
270
162
  }));
271
163
  }
272
-
273
- expect(
274
- ignoreSomeFields(
275
- GSRP.extractThreadsFromSearchResponse(setCustomListResults)
276
- )
277
- ).toEqual(
278
- ignoreSomeFields(
279
- GSRP.extractThreadsFromSearchResponse(await getOriginalSearchResponse())
280
- ).reverse()
281
- );
164
+ expect(ignoreSomeFields(GSRP.extractThreadsFromSearchResponse(setCustomListResults))).toEqual(ignoreSomeFields(GSRP.extractThreadsFromSearchResponse(await getOriginalSearchResponse())).reverse());
282
165
  });
283
-
284
166
  test('missing thread id', async () => {
285
- const getOriginalSearchResponse = once(() =>
286
- readFile(
287
- __dirname + '/../../../../../test/data/2019-02-01 search results.json',
288
- 'utf8'
289
- )
290
- );
291
-
167
+ const getOriginalSearchResponse = (0, _once.default)(() => readFile(__dirname + '/../../../../../test/data/2019-02-01 search results.json', 'utf8'));
292
168
  const tester = new ShowCustomThreadListTester({
293
169
  onActivate() {
294
170
  return {
295
171
  hasMore: false,
296
- threads: [
297
- '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
298
- '168ab8987a3b61b3',
299
- '1111111111111111',
300
- '1111111111111112',
301
- '<a@b.com>',
302
- ],
172
+ threads: ['<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>', '168ab8987a3b61b3', '1111111111111111', '1111111111111112', '<a@b.com>']
303
173
  };
304
174
  },
305
- threadAndRfcIds: [
306
- [
307
- '168ab8987a3b61b3',
308
- '<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>',
309
- ],
310
- [
311
- '168a6018f86576ac',
312
- '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
313
- ],
314
- ],
315
- expectedSearchQuery:
316
- 'rfc822msgid:<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com> OR rfc822msgid:<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com> OR rfc822msgid:<a@b.com>',
175
+ threadAndRfcIds: [['168ab8987a3b61b3', '<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>'], ['168a6018f86576ac', '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>']],
176
+ expectedSearchQuery: 'rfc822msgid:<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com> OR rfc822msgid:<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com> OR rfc822msgid:<a@b.com>',
317
177
  start: 0,
318
- getOriginalSearchResponse,
178
+ getOriginalSearchResponse
319
179
  });
320
180
  const setCustomListResults = await tester.runAndGetSetCustomListResults();
321
-
322
- function ignoreSomeFields(syncThreads: GSRP.SyncThread[]) {
323
- return syncThreads.map((o) => ({
181
+ function ignoreSomeFields(syncThreads) {
182
+ return syncThreads.map(o => ({
324
183
  ...o,
325
184
  rawResponse: 'ignored',
326
185
  extraMetaData: {
327
186
  ...o.extraMetaData,
328
- syncMessageData: o.extraMetaData.syncMessageData.map((s) => ({
187
+ syncMessageData: o.extraMetaData.syncMessageData.map(s => ({
329
188
  ...s,
330
- date: 'ignored',
331
- })),
332
- },
189
+ date: 'ignored'
190
+ }))
191
+ }
333
192
  }));
334
193
  }
335
-
336
- expect(
337
- ignoreSomeFields(
338
- GSRP.extractThreadsFromSearchResponse(setCustomListResults)
339
- )
340
- ).toEqual(
341
- ignoreSomeFields(
342
- GSRP.extractThreadsFromSearchResponse(await getOriginalSearchResponse())
343
- ).reverse()
344
- );
194
+ expect(ignoreSomeFields(GSRP.extractThreadsFromSearchResponse(setCustomListResults))).toEqual(ignoreSomeFields(GSRP.extractThreadsFromSearchResponse(await getOriginalSearchResponse())).reverse());
345
195
  });
346
-
347
196
  test('missing threads in response', async () => {
348
- const getOriginalSearchResponse = once(() =>
349
- readFile(
350
- __dirname + '/../../../../../test/data/2019-02-01 search results.json',
351
- 'utf8'
352
- )
353
- );
354
-
197
+ const getOriginalSearchResponse = (0, _once.default)(() => readFile(__dirname + '/../../../../../test/data/2019-02-01 search results.json', 'utf8'));
355
198
  const tester = new ShowCustomThreadListTester({
356
199
  onActivate() {
357
200
  return {
358
201
  hasMore: false,
359
- threads: [
360
- '168ab8987a3b61b3',
361
- '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
362
- '1111111111111111',
363
- '1111111111111112',
364
- '<a@b.com>',
365
- ],
202
+ threads: ['168ab8987a3b61b3', '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>', '1111111111111111', '1111111111111112', '<a@b.com>']
366
203
  };
367
204
  },
368
- threadAndRfcIds: [
369
- [
370
- '168ab8987a3b61b3',
371
- '<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>',
372
- ],
373
- [
374
- '168a6018f86576ac',
375
- '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>',
376
- ],
377
- ['1111111111111111', '<ones@example.com>'],
378
- ['1111111111111112', '<onesandatwo@example.com>'],
379
- ['abab111111111111', '<a@b.com>'],
380
- ],
381
- expectedSearchQuery:
382
- 'rfc822msgid:<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com> OR rfc822msgid:<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com> OR rfc822msgid:<ones@example.com> OR rfc822msgid:<onesandatwo@example.com> OR rfc822msgid:<a@b.com>',
205
+ threadAndRfcIds: [['168ab8987a3b61b3', '<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com>'], ['168a6018f86576ac', '<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com>'], ['1111111111111111', '<ones@example.com>'], ['1111111111111112', '<onesandatwo@example.com>'], ['abab111111111111', '<a@b.com>']],
206
+ expectedSearchQuery: 'rfc822msgid:<CAL_Ays_RcwA0U8-43zY8JYPRsyQ5EOavXjrYZx7=EqVTx9Jz3g@mail.gmail.com> OR rfc822msgid:<CAL_Ays8e-3FpHxkJ8qWNXKMHKnysR2XTeSakv_yvQNUjZsSSdw@mail.gmail.com> OR rfc822msgid:<ones@example.com> OR rfc822msgid:<onesandatwo@example.com> OR rfc822msgid:<a@b.com>',
383
207
  start: 0,
384
- getOriginalSearchResponse,
208
+ getOriginalSearchResponse
385
209
  });
386
210
  const setCustomListResults = await tester.runAndGetSetCustomListResults();
387
-
388
- function ignoreRawResponses(syncThreads: GSRP.SyncThread[]) {
389
- return syncThreads.map((o) => ({
211
+ function ignoreRawResponses(syncThreads) {
212
+ return syncThreads.map(o => ({
390
213
  ...o,
391
- rawResponse: 'ignored',
214
+ rawResponse: 'ignored'
392
215
  }));
393
216
  }
394
-
395
- expect(
396
- ignoreRawResponses(
397
- GSRP.extractThreadsFromSearchResponse(setCustomListResults)
398
- )
399
- ).toEqual(
400
- ignoreRawResponses(
401
- GSRP.extractThreadsFromSearchResponse(await getOriginalSearchResponse())
402
- )
403
- );
404
- });
217
+ expect(ignoreRawResponses(GSRP.extractThreadsFromSearchResponse(setCustomListResults))).toEqual(ignoreRawResponses(GSRP.extractThreadsFromSearchResponse(await getOriginalSearchResponse())));
218
+ });
@@ -1,33 +1,26 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import GmailElementGetter from '../gmail-element-getter';
4
- import fakeWindowResize from '../../../lib/fake-window-resize';
5
-
6
- export default function showNativeRouteView(gmailDriver: any) {
7
- const contentSectionElement = GmailElementGetter.getContentSectionElement();
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = showNativeRouteView;
8
+ var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
9
+ var _fakeWindowResize = _interopRequireDefault(require("../../../lib/fake-window-resize"));
10
+ function showNativeRouteView(gmailDriver) {
11
+ const contentSectionElement = _gmailElementGetter.default.getContentSectionElement();
8
12
  if (!contentSectionElement) {
9
13
  return;
10
14
  }
11
-
12
- Array.prototype.forEach.call(
13
- (contentSectionElement: any).children,
14
- (child: HTMLElement) => {
15
- child.style.display = '';
16
- }
17
- );
18
-
19
- if (
20
- ((document.body: any): HTMLElement).classList.contains(
21
- 'inboxsdk__custom_view_active'
22
- )
23
- ) {
24
- ((document.body: any): HTMLElement).classList.remove(
25
- 'inboxsdk__custom_view_active'
26
- );
15
+ Array.prototype.forEach.call(contentSectionElement.children, child => {
16
+ child.style.display = '';
17
+ });
18
+ if (document.body.classList.contains('inboxsdk__custom_view_active')) {
19
+ document.body.classList.remove('inboxsdk__custom_view_active');
27
20
  // Work around issue where Gmail sometimes screws up its formatting until
28
21
  // the user resizes their screen. Reproduction steps that sometimes work:
29
22
  // use multiple inboxes lab, with multiple inboxes set below the inbox, go
30
23
  // to a pipeline, resize the window slightly, and then go to inbox.
31
- fakeWindowResize();
24
+ (0, _fakeWindowResize.default)();
32
25
  }
33
- }
26
+ }