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

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 (264) 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/inboxsdk.d.ts +2 -0
  12. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  13. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  14. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  15. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  16. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  17. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  18. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  19. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  20. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  21. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  22. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  23. package/src/injected-js/main.js +11 -24
  24. package/src/injected-js/message-metadata-holder.js +52 -82
  25. package/src/injected-js/setup-data-exposer.js +89 -148
  26. package/src/injected-js/setup-error-silencer.js +21 -21
  27. package/src/injected-js/setup-event-reemitter.js +30 -22
  28. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  29. package/src/injected-js/setupPushStateListener.js +18 -11
  30. package/src/injected-js/xhr-helper.js +62 -65
  31. package/src/injected-js/xhr-proxy-factory.js +195 -445
  32. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  33. package/src/platform-implementation-js/constants/router.js +14 -9
  34. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  35. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  36. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  37. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  38. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  39. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  40. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  41. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  42. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  43. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  44. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  45. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  46. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  47. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  48. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  49. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  50. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  51. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  52. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  53. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  54. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  55. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  56. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  57. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  58. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  59. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  60. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  61. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  62. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  66. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  67. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  68. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  69. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  70. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  71. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  72. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  73. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  74. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  75. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  76. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  77. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  78. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  79. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  80. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  81. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  82. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  83. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  84. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  85. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  86. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  87. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  88. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  89. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  90. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  91. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  92. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  93. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  111. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  112. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  113. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  114. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  115. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  116. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  117. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  118. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  119. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  120. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  121. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  122. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  123. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  124. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  125. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  126. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  127. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  128. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  129. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  130. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  131. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  132. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  133. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  134. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  135. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  136. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  137. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  138. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  139. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  140. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  141. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  142. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  143. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  144. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  145. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  146. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  147. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  148. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  149. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  150. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  151. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  152. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  153. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  154. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  155. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  156. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  157. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  158. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  159. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  160. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  161. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  162. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  163. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  164. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  165. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  166. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  167. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  168. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  169. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  170. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  171. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  172. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  173. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  174. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  175. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  176. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  177. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  178. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  179. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  180. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  181. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  182. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  183. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  184. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  185. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  186. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  187. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  188. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  189. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  190. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  191. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  192. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  193. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  194. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  195. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  196. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  197. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  198. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  199. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  200. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  201. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  202. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  203. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  204. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  205. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  206. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  207. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  208. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  209. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  210. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  211. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  212. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  213. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  214. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  215. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  216. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  217. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  218. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  219. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  220. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  221. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  222. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  223. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  224. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  225. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  226. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  227. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  228. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  229. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  230. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  231. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  232. package/src/platform-implementation-js/main.js +9 -24
  233. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  234. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  235. package/src/platform-implementation-js/namespaces/global.js +27 -39
  236. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  237. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  238. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  239. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  240. package/src/platform-implementation-js/namespaces/router.js +70 -137
  241. package/src/platform-implementation-js/namespaces/search.js +19 -17
  242. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  243. package/src/platform-implementation-js/namespaces/user.js +36 -37
  244. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  245. package/src/platform-implementation-js/platform-implementation.js +98 -229
  246. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  247. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  248. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  249. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  250. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  251. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  252. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  253. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  254. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  255. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  256. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  257. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  258. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  259. package/src/platform-implementation-js/views/section-view.js +60 -52
  260. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  261. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  262. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  263. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  264. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,50 +1,42 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import type GmailDriver from '../gmail-driver';
4
- import { simulateClick } from '../../../lib/dom/simulate-mouse-event';
5
- import makeElementChildStream from '../../../lib/dom/make-element-child-stream';
6
- import waitFor from '../../../lib/stream-wait-for';
7
- import GmailElementGetter from '../gmail-element-getter';
8
-
9
- export default function suppressAddon(driver: GmailDriver, addonTitle: string) {
10
- waitFor(() => GmailElementGetter.getCompanionSidebarIconContainerElement())
11
- .map((iconContainerElement) => {
12
- // .J-KU-Jg is pre-2018-07-30 element?
13
- const elementToWatch = iconContainerElement.querySelector(
14
- '.J-KU-Jg, [role=tablist], .brC-bsf-aT5-aOt'
15
- );
16
- if (!elementToWatch) {
17
- driver
18
- .getLogger()
19
- .error(
20
- new Error('_waitForAddonTitleAndSuppress: elementToWatch not found')
21
- );
22
- return null;
23
- }
24
- return elementToWatch;
25
- })
26
- .filter()
27
- .flatMap(makeElementChildStream)
28
- .filter(
29
- ({ el }) =>
30
- el.getAttribute('role') === 'tab' &&
31
- (el.getAttribute('data-tooltip') || el.getAttribute('aria-label')) ===
32
- addonTitle
33
- )
34
- .takeUntilBy(driver.getStopper())
35
- .onValue(({ el }) => {
36
- if (
37
- el.classList.contains('J-KU-KO') || // old pre-2018-07-30 classname?
38
- el.classList.contains('bse-bvF-I-KO') || // old pre-2018-10-15 classname?
39
- el.classList.contains('aT5-aOt-I-KO')
40
- ) {
41
- // it is currently open, so let's close
42
- simulateClick(el);
43
- }
44
-
45
- el.style.display = 'none';
46
- })
47
- .onError((err) => {
48
- driver.getLogger().error(err, 'error in suppressAddon');
49
- });
50
- }
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = suppressAddon;
8
+ var _simulateMouseEvent = require("../../../lib/dom/simulate-mouse-event");
9
+ var _makeElementChildStream = _interopRequireDefault(require("../../../lib/dom/make-element-child-stream"));
10
+ var _streamWaitFor = _interopRequireDefault(require("../../../lib/stream-wait-for"));
11
+ var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
12
+ function suppressAddon(driver, addonTitle) {
13
+ (0, _streamWaitFor.default)(() => _gmailElementGetter.default.getCompanionSidebarIconContainerElement()).map(iconContainerElement => {
14
+ // .J-KU-Jg is pre-2018-07-30 element?
15
+ const elementToWatch = iconContainerElement.querySelector('.J-KU-Jg, [role=tablist], .brC-bsf-aT5-aOt');
16
+ if (!elementToWatch) {
17
+ driver.getLogger().error(new Error('_waitForAddonTitleAndSuppress: elementToWatch not found'));
18
+ return null;
19
+ }
20
+ return elementToWatch;
21
+ }).filter().flatMap(_makeElementChildStream.default).filter(_ref => {
22
+ let {
23
+ el
24
+ } = _ref;
25
+ return el.getAttribute('role') === 'tab' && (el.getAttribute('data-tooltip') || el.getAttribute('aria-label')) === addonTitle;
26
+ }).takeUntilBy(driver.getStopper()).onValue(_ref2 => {
27
+ let {
28
+ el
29
+ } = _ref2;
30
+ if (el.classList.contains('J-KU-KO') ||
31
+ // old pre-2018-07-30 classname?
32
+ el.classList.contains('bse-bvF-I-KO') ||
33
+ // old pre-2018-10-15 classname?
34
+ el.classList.contains('aT5-aOt-I-KO')) {
35
+ // it is currently open, so let's close
36
+ (0, _simulateMouseEvent.simulateClick)(el);
37
+ }
38
+ el.style.display = 'none';
39
+ }).onError(err => {
40
+ driver.getLogger().error(err, 'error in suppressAddon');
41
+ });
42
+ }
@@ -1,45 +1,35 @@
1
- /* @flow */
2
-
3
- import type GmailDriver from '../gmail-driver';
1
+ "use strict";
4
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = temporaryTrackDownloadUrlValidity;
5
7
  let isTrackingValidity = false;
6
-
7
- export default function temporaryTrackDownloadUrlValidity(driver: GmailDriver) {
8
- if (
9
- driver.getAppId() !== 'sdk_streak_21e9788951' ||
10
- !global.fetch ||
11
- isTrackingValidity
12
- ) {
8
+ function temporaryTrackDownloadUrlValidity(driver) {
9
+ if (driver.getAppId() !== 'sdk_streak_21e9788951' || !global.fetch || isTrackingValidity) {
13
10
  return;
14
11
  }
15
12
  isTrackingValidity = true;
16
-
17
- driver
18
- .getAttachmentCardViewDriverStream()
19
- .filter((cardView) => cardView.getAttachmentType() === 'FILE')
20
- .filter(() => Math.random() < 0.01)
21
- .onValue(async (cardView) => {
22
- const downloadLinkBefore = cardView._getDownloadLink();
23
- let downloadUrl;
24
- try {
25
- downloadUrl = await cardView.getDownloadURL();
26
- } catch (err) {
27
- driver.getLogger().error(err, {
28
- reason: 'problem getting download url',
29
- downloadLinkBefore,
30
- downloadLinkAfter: cardView._getDownloadLink(),
31
- });
32
- return;
33
- }
34
-
35
- if (!downloadUrl) {
36
- driver.getLogger().error(new Error('no download url found'), {
37
- downloadLinkBefore,
38
- downloadLinkAfter: cardView._getDownloadLink(),
39
- });
40
- return;
41
- }
42
-
43
- driver.getLogger().eventSdkPassive('testing.getDownloadURL success');
44
- });
45
- }
13
+ driver.getAttachmentCardViewDriverStream().filter(cardView => cardView.getAttachmentType() === 'FILE').filter(() => Math.random() < 0.01).onValue(async cardView => {
14
+ const downloadLinkBefore = cardView._getDownloadLink();
15
+ let downloadUrl;
16
+ try {
17
+ downloadUrl = await cardView.getDownloadURL();
18
+ } catch (err) {
19
+ driver.getLogger().error(err, {
20
+ reason: 'problem getting download url',
21
+ downloadLinkBefore,
22
+ downloadLinkAfter: cardView._getDownloadLink()
23
+ });
24
+ return;
25
+ }
26
+ if (!downloadUrl) {
27
+ driver.getLogger().error(new Error('no download url found'), {
28
+ downloadLinkBefore,
29
+ downloadLinkAfter: cardView._getDownloadLink()
30
+ });
31
+ return;
32
+ }
33
+ driver.getLogger().eventSdkPassive('testing.getDownloadURL success');
34
+ });
35
+ }
@@ -1,53 +1,35 @@
1
- /* @flow */
2
-
3
- import { defn } from 'ud';
4
- import Kefir from 'kefir';
5
-
6
- import getSyncThreadFromSyncThreadId from './getSyncThreadFromSyncThreadId';
7
-
8
- import type GmailDriver from '../gmail-driver';
9
- import type GmailComposeView from '../views/gmail-compose-view';
10
- import type GmailThreadRowView from '../views/gmail-thread-row-view';
11
-
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _ud = require("ud");
9
+ var _kefir = _interopRequireDefault(require("kefir"));
10
+ var _getSyncThreadFromSyncThreadId = _interopRequireDefault(require("./getSyncThreadFromSyncThreadId"));
12
11
  // This object helps GmailThreadRowViews identify themselves if the normal
13
12
  // method (ask the injected script) fails to work. This object keeps track of
14
13
  // the open GmailComposeViews so it can
15
14
  class ThreadRowIdentifier {
16
- _driver: GmailDriver;
17
- _composeViews: Set<GmailComposeView>;
18
-
19
- constructor(driver: GmailDriver) {
15
+ constructor(driver) {
20
16
  this._driver = driver;
21
17
  this._composeViews = new Set();
22
-
23
- this._driver
24
- .getComposeViewDriverStream()
25
- .onValue((gmailComposeView: Object) => {
26
- this._composeViews.add(gmailComposeView);
27
-
28
- gmailComposeView.getStopper().onValue(() => {
29
- this._composeViews.delete(gmailComposeView);
30
- });
18
+ this._driver.getComposeViewDriverStream().onValue(gmailComposeView => {
19
+ this._composeViews.add(gmailComposeView);
20
+ gmailComposeView.getStopper().onValue(() => {
21
+ this._composeViews.delete(gmailComposeView);
31
22
  });
23
+ });
32
24
  }
33
-
34
- getThreadIdForThreadRow(
35
- gmailThreadRowView: GmailThreadRowView,
36
- elements: HTMLElement[]
37
- ): ?string {
25
+ getThreadIdForThreadRow(gmailThreadRowView, elements) {
38
26
  {
39
- const threadID = this._driver
40
- .getPageCommunicator()
41
- .getThreadIdForThreadRowByDatabase(elements[0]);
27
+ const threadID = this._driver.getPageCommunicator().getThreadIdForThreadRowByDatabase(elements[0]);
42
28
  if (threadID) {
43
29
  return threadID;
44
30
  }
45
31
  }
46
-
47
- if (
48
- gmailThreadRowView.getVisibleMessageCount() == 0 &&
49
- gmailThreadRowView.getVisibleDraftCount() > 0
50
- ) {
32
+ if (gmailThreadRowView.getVisibleMessageCount() == 0 && gmailThreadRowView.getVisibleDraftCount() > 0) {
51
33
  const composeView = this._findComposeForThreadRow(gmailThreadRowView);
52
34
  if (composeView) {
53
35
  return composeView.getMessageID();
@@ -68,9 +50,7 @@ class ThreadRowIdentifier {
68
50
  minimizedComposes.push(composeView);
69
51
  }
70
52
  }
71
- const threadID = this._driver
72
- .getPageCommunicator()
73
- .getThreadIdForThreadRowByClick(elements[0]);
53
+ const threadID = this._driver.getPageCommunicator().getThreadIdForThreadRowByClick(elements[0]);
74
54
  if (threadID) {
75
55
  return threadID;
76
56
  }
@@ -78,34 +58,22 @@ class ThreadRowIdentifier {
78
58
  composeView.setMinimized(true);
79
59
  }
80
60
  }
81
-
82
61
  return null;
83
62
  }
84
-
85
- async getDraftIdForThreadRow(
86
- gmailThreadRowView: GmailThreadRowView
87
- ): Promise<?string> {
88
- if (
89
- gmailThreadRowView.getVisibleMessageCount() > 0 ||
90
- gmailThreadRowView.getVisibleDraftCount() == 0
91
- ) {
63
+ async getDraftIdForThreadRow(gmailThreadRowView) {
64
+ if (gmailThreadRowView.getVisibleMessageCount() > 0 || gmailThreadRowView.getVisibleDraftCount() == 0) {
92
65
  return Promise.resolve(null);
93
66
  }
94
-
95
67
  const composeView = this._findComposeForThreadRow(gmailThreadRowView);
96
68
  if (composeView) {
97
69
  return composeView.getDraftID();
98
70
  }
99
-
100
- const { draftID } = await this._driver.getDraftIDForMessageID(
101
- gmailThreadRowView.getThreadID()
102
- );
71
+ const {
72
+ draftID
73
+ } = await this._driver.getDraftIDForMessageID(gmailThreadRowView.getThreadID());
103
74
  return draftID;
104
75
  }
105
-
106
- _findComposeForThreadRow(
107
- gmailThreadRowView: GmailThreadRowView
108
- ): ?GmailComposeView {
76
+ _findComposeForThreadRow(gmailThreadRowView) {
109
77
  const candidates = [];
110
78
  const subject = gmailThreadRowView.getSubject();
111
79
  for (let gmailComposeView of this._composeViews) {
@@ -119,5 +87,5 @@ class ThreadRowIdentifier {
119
87
  return null;
120
88
  }
121
89
  }
122
-
123
- export default defn(module, ThreadRowIdentifier);
90
+ var _default = (0, _ud.defn)(module, ThreadRowIdentifier);
91
+ exports.default = _default;
@@ -1,171 +1,99 @@
1
- /* @flow */
2
-
3
- import Kefir from 'kefir';
4
- import makeElementChildStream from '../../../lib/dom/make-element-child-stream';
5
- import type GmailDriver from '../gmail-driver';
6
-
7
- export default function trackEvents(gmailDriver: GmailDriver) {
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = trackEvents;
8
+ var _kefir = _interopRequireDefault(require("kefir"));
9
+ var _makeElementChildStream = _interopRequireDefault(require("../../../lib/dom/make-element-child-stream"));
10
+ function trackEvents(gmailDriver) {
8
11
  _setupComposeMonitoring(gmailDriver);
9
12
  _setupAttachmentModalMonitoring(gmailDriver);
10
13
  _setupDragDropMonitoring(gmailDriver);
11
14
  }
12
-
13
- function _setupComposeMonitoring(gmailDriver: GmailDriver) {
14
- gmailDriver.getComposeViewDriverStream().onValue((composeViewDriver) => {
15
+ function _setupComposeMonitoring(gmailDriver) {
16
+ gmailDriver.getComposeViewDriverStream().onValue(composeViewDriver => {
15
17
  var logFunction = _getLogFunction(gmailDriver, composeViewDriver);
16
18
  logFunction('compose open');
17
-
18
19
  _monitorComposeSpecificEvents(composeViewDriver, logFunction);
19
20
  });
20
21
  }
21
-
22
22
  function _getLogFunction(gmailDriver, composeViewDriver) {
23
23
  var logger = gmailDriver.getLogger();
24
24
  var composeStats = {
25
25
  isInlineReply: composeViewDriver.isInlineReplyForm(),
26
- isReply: composeViewDriver.isReply(),
26
+ isReply: composeViewDriver.isReply()
27
27
  };
28
-
29
28
  return function (eventName, extraOptions) {
30
- logger.eventSite(eventName, { ...composeStats, ...extraOptions });
29
+ logger.eventSite(eventName, {
30
+ ...composeStats,
31
+ ...extraOptions
32
+ });
31
33
  };
32
34
  }
33
-
34
35
  function _monitorComposeSpecificEvents(composeViewDriver, logFunction) {
35
36
  _monitorAttachmentButton(composeViewDriver, logFunction);
36
37
  _monitorDriveButton(composeViewDriver, logFunction);
37
38
  }
38
-
39
39
  function _monitorAttachmentButton(composeViewDriver, logFunction) {
40
40
  var attachmentButton = composeViewDriver.getElement().querySelector('.a1');
41
41
  if (attachmentButton) {
42
- Kefir.fromEvents(attachmentButton, 'mousedown')
43
- .takeUntilBy(composeViewDriver.getStopper())
44
- .onValue(() => {
45
- logFunction('attachment button clicked');
46
- _monitorAttachmentAdded(composeViewDriver, logFunction);
47
- });
42
+ _kefir.default.fromEvents(attachmentButton, 'mousedown').takeUntilBy(composeViewDriver.getStopper()).onValue(() => {
43
+ logFunction('attachment button clicked');
44
+ _monitorAttachmentAdded(composeViewDriver, logFunction);
45
+ });
48
46
  }
49
47
  }
50
-
51
48
  function _monitorAttachmentAdded(composeViewDriver, logFunction) {
52
- makeElementChildStream(((document.body: any): HTMLElement))
53
- .map((event) => event.el)
54
- .filter((node) => node && (node: any).type === 'file')
55
- .take(1)
56
- .flatMap((node) => {
57
- return Kefir.fromEvents(node, 'change')
58
- .map(() => true)
59
- .merge(
60
- Kefir.fromEvents(composeViewDriver.getBodyElement(), 'focus')
61
- .map(() => false)
62
- .delay(1000)
63
- );
64
- })
65
- .take(1)
66
- .filter(Boolean)
67
- .takeUntilBy(composeViewDriver.getStopper())
68
- .onValue(() => logFunction('attachment uploaded'));
49
+ (0, _makeElementChildStream.default)(document.body).map(event => event.el).filter(node => node && node.type === 'file').take(1).flatMap(node => {
50
+ return _kefir.default.fromEvents(node, 'change').map(() => true).merge(_kefir.default.fromEvents(composeViewDriver.getBodyElement(), 'focus').map(() => false).delay(1000));
51
+ }).take(1).filter(Boolean).takeUntilBy(composeViewDriver.getStopper()).onValue(() => logFunction('attachment uploaded'));
69
52
  }
70
-
71
53
  function _monitorDriveButton(composeViewDriver, logFunction) {
72
54
  var driveButton = composeViewDriver.getElement().querySelector('.aA7');
73
55
  if (driveButton) {
74
- Kefir.fromEvents(driveButton, 'mousedown')
75
- .takeUntilBy(composeViewDriver.getStopper())
76
- .onValue(() => {
77
- logFunction('drive button clicked');
78
- _monitorDriveFileAdded(composeViewDriver, logFunction);
79
- });
56
+ _kefir.default.fromEvents(driveButton, 'mousedown').takeUntilBy(composeViewDriver.getStopper()).onValue(() => {
57
+ logFunction('drive button clicked');
58
+ _monitorDriveFileAdded(composeViewDriver, logFunction);
59
+ });
80
60
  }
81
61
  }
82
-
83
62
  function _monitorDriveFileAdded(composeViewDriver, logFunction) {
84
- var numberCurrentDriveChips = composeViewDriver
85
- .getBodyElement()
86
- .querySelectorAll('.gmail_drive_chip').length;
87
-
88
- makeElementChildStream(((document.body: any): HTMLElement))
89
- .map((event) => event.el)
90
- .filter((node) => node && node.classList.contains('picker-dialog'))
91
- .take(1)
92
- .flatMap((node) => {
93
- return Kefir.fromEvents(composeViewDriver.getBodyElement(), 'focus')
94
- .delay(1000)
95
- .map(() => {
96
- if (composeViewDriver.getBodyElement()) {
97
- return composeViewDriver
98
- .getBodyElement()
99
- .querySelectorAll('.gmail_drive_chip').length;
100
- }
101
-
102
- return 0;
103
- })
104
- .map((newNumber) => numberCurrentDriveChips < newNumber)
105
- .take(1);
106
- })
107
- .take(1)
108
- .filter(Boolean)
109
- .takeUntilBy(composeViewDriver.getStopper())
110
- .onValue(() => logFunction('drive file added'));
63
+ var numberCurrentDriveChips = composeViewDriver.getBodyElement().querySelectorAll('.gmail_drive_chip').length;
64
+ (0, _makeElementChildStream.default)(document.body).map(event => event.el).filter(node => node && node.classList.contains('picker-dialog')).take(1).flatMap(node => {
65
+ return _kefir.default.fromEvents(composeViewDriver.getBodyElement(), 'focus').delay(1000).map(() => {
66
+ if (composeViewDriver.getBodyElement()) {
67
+ return composeViewDriver.getBodyElement().querySelectorAll('.gmail_drive_chip').length;
68
+ }
69
+ return 0;
70
+ }).map(newNumber => numberCurrentDriveChips < newNumber).take(1);
71
+ }).take(1).filter(Boolean).takeUntilBy(composeViewDriver.getStopper()).onValue(() => logFunction('drive file added'));
111
72
  }
112
-
113
- function _setupAttachmentModalMonitoring(gmailDriver: GmailDriver) {
114
- makeElementChildStream(((document.body: any): HTMLElement))
115
- .map((event) => event.el)
116
- .filter(
117
- (node) => node.getAttribute && node.getAttribute('role') === 'alertdialog'
118
- )
119
- .takeUntilBy(gmailDriver.getStopper())
120
- .onValue((node) => {
121
- var heading = node.querySelector('[role=heading]');
122
- if (heading) {
123
- if (heading.textContent.indexOf('exceeds the 25MB') > -1) {
124
- gmailDriver.getLogger().eventSite('large attachment suggest drive');
125
- return;
126
- }
73
+ function _setupAttachmentModalMonitoring(gmailDriver) {
74
+ (0, _makeElementChildStream.default)(document.body).map(event => event.el).filter(node => node.getAttribute && node.getAttribute('role') === 'alertdialog').takeUntilBy(gmailDriver.getStopper()).onValue(node => {
75
+ var heading = node.querySelector('[role=heading]');
76
+ if (heading) {
77
+ if (heading.textContent.indexOf('exceeds the 25MB') > -1) {
78
+ gmailDriver.getLogger().eventSite('large attachment suggest drive');
79
+ return;
127
80
  }
128
-
129
- var body = node.querySelector('.Kj-JD-Jz');
130
- if (body) {
131
- if (body.textContent.indexOf('exceeds the maximum') > -1) {
132
- gmailDriver
133
- .getLogger()
134
- .eventSite('large attachment from drag and drop');
135
- return;
136
- }
81
+ }
82
+ var body = node.querySelector('.Kj-JD-Jz');
83
+ if (body) {
84
+ if (body.textContent.indexOf('exceeds the maximum') > -1) {
85
+ gmailDriver.getLogger().eventSite('large attachment from drag and drop');
86
+ return;
137
87
  }
138
- });
139
- }
140
-
141
- function _setupDragDropMonitoring(gmailDriver: GmailDriver) {
142
- gmailDriver
143
- .getComposeViewDriverStream()
144
- .flatMapLatest(() => {
145
- return Kefir.fromEvents((document.body: any), 'dragenter')
146
- .filter((event) => event.toElement) // ignore events caused by dragFilesIntoCompose
147
- .filter(
148
- (event) =>
149
- event.toElement.classList.contains('aC7') ||
150
- event.toElement.classList.contains('aC9')
151
- )
152
- .take(1);
153
- })
154
- .takeUntilBy(gmailDriver.getStopper())
155
- .onValue(() => gmailDriver.getLogger().eventSite('compose drag file'));
156
-
157
- gmailDriver
158
- .getComposeViewDriverStream()
159
- .flatMapLatest(() => {
160
- return Kefir.fromEvents((document.body: any), 'drop')
161
- .filter((event) => event.toElement)
162
- .filter(
163
- (event) =>
164
- event.toElement.classList.contains('aC7') ||
165
- event.toElement.classList.contains('aC9')
166
- )
167
- .take(1);
168
- })
169
- .takeUntilBy(gmailDriver.getStopper())
170
- .onValue(() => gmailDriver.getLogger().eventSite('compose drop file'));
88
+ }
89
+ });
171
90
  }
91
+ function _setupDragDropMonitoring(gmailDriver) {
92
+ gmailDriver.getComposeViewDriverStream().flatMapLatest(() => {
93
+ return _kefir.default.fromEvents(document.body, 'dragenter').filter(event => event.toElement) // ignore events caused by dragFilesIntoCompose
94
+ .filter(event => event.toElement.classList.contains('aC7') || event.toElement.classList.contains('aC9')).take(1);
95
+ }).takeUntilBy(gmailDriver.getStopper()).onValue(() => gmailDriver.getLogger().eventSite('compose drag file'));
96
+ gmailDriver.getComposeViewDriverStream().flatMapLatest(() => {
97
+ return _kefir.default.fromEvents(document.body, 'drop').filter(event => event.toElement).filter(event => event.toElement.classList.contains('aC7') || event.toElement.classList.contains('aC9')).take(1);
98
+ }).takeUntilBy(gmailDriver.getStopper()).onValue(() => gmailDriver.getLogger().eventSite('compose drop file'));
99
+ }
@@ -1,30 +1,28 @@
1
- /* @flow */
1
+ "use strict";
2
2
 
3
- import find from 'lodash/find';
4
- import uniqBy from 'lodash/uniqBy';
5
- import censorHTMLstring from '../../../../common/censorHTMLstring';
6
- import Logger from '../../../lib/logger';
7
- import waitFor from '../../../lib/wait-for';
8
-
9
- export default class UserInfo {
10
- _failedWaitFor: boolean;
11
- _userEmail: string;
12
-
13
- constructor(driver: Object) {
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _find = _interopRequireDefault(require("lodash/find"));
9
+ var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
10
+ var _censorHTMLstring = _interopRequireDefault(require("../../../../common/censorHTMLstring"));
11
+ var _logger = _interopRequireDefault(require("../../../lib/logger"));
12
+ var _waitFor = _interopRequireDefault(require("../../../lib/wait-for"));
13
+ class UserInfo {
14
+ constructor(driver) {
14
15
  this._failedWaitFor = false;
15
16
  this._userEmail = driver.getUserEmailAddress();
16
17
  }
17
18
 
18
19
  // deprecated
19
- getUserName(): string {
20
+ getUserName() {
20
21
  const nameEl = document.querySelector('div.gb_w div.gb_B .gb_D');
21
22
  if (nameEl) {
22
23
  return nameEl.textContent;
23
24
  }
24
- const contact: Contact = find(
25
- this.getAccountSwitcherContactList(),
26
- (contact: Contact) => contact.emailAddress === this._userEmail
27
- );
25
+ const contact = (0, _find.default)(this.getAccountSwitcherContactList(), contact => contact.emailAddress === this._userEmail);
28
26
  if (contact && contact.name != null) {
29
27
  return contact.name;
30
28
  }
@@ -32,38 +30,28 @@ export default class UserInfo {
32
30
  }
33
31
 
34
32
  // deprecated
35
- getAccountSwitcherContactList(): Contact[] {
36
- const main: Contact[] = Array.from(
37
- document.querySelectorAll(
38
- '[role=banner] div[aria-label] div div a[href^="https://myaccount.google."]'
39
- )
40
- )
41
- .slice(0, 1)
42
- .map((btn: HTMLElement) => {
43
- const btnParent: HTMLElement = (btn: any).parentElement;
44
- const nameEl = btnParent.children[0];
45
- const emailAddressEl = btnParent.children[1];
46
- if (!nameEl || !emailAddressEl) return null;
47
- return {
48
- name: nameEl.textContent,
49
- emailAddress: emailAddressEl.textContent,
50
- };
51
- })
52
- .filter(Boolean);
53
- const extras: Contact[] = Array.from(
54
- document.querySelectorAll(
55
- '[role=banner] div[aria-label] div > a[target="_blank"] > img + div'
56
- )
57
- ).map((el: HTMLElement) => {
33
+ getAccountSwitcherContactList() {
34
+ const main = Array.from(document.querySelectorAll('[role=banner] div[aria-label] div div a[href^="https://myaccount.google."]')).slice(0, 1).map(btn => {
35
+ const btnParent = btn.parentElement;
36
+ const nameEl = btnParent.children[0];
37
+ const emailAddressEl = btnParent.children[1];
38
+ if (!nameEl || !emailAddressEl) return null;
39
+ return {
40
+ name: nameEl.textContent,
41
+ emailAddress: emailAddressEl.textContent
42
+ };
43
+ }).filter(Boolean);
44
+ const extras = Array.from(document.querySelectorAll('[role=banner] div[aria-label] div > a[target="_blank"] > img + div')).map(el => {
58
45
  const match = el.children[1].textContent.match(/\S+/);
59
46
  if (!match) {
60
47
  throw new Error('Failed to match');
61
48
  }
62
49
  return {
63
50
  name: el.children[0].textContent,
64
- emailAddress: match[0],
51
+ emailAddress: match[0]
65
52
  };
66
53
  });
67
- return uniqBy(main.concat(extras), (x) => x.emailAddress.toLowerCase());
54
+ return (0, _uniqBy.default)(main.concat(extras), x => x.emailAddress.toLowerCase());
68
55
  }
69
56
  }
57
+ exports.default = UserInfo;