@inboxsdk/core 0.2.28-alpha.6 → 0.2.28

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 (669) hide show
  1. package/inboxsdk.js +28 -62
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +1 -5
  4. package/pageWorld.js.map +1 -1
  5. package/src/build/exec.d.ts +0 -1
  6. package/src/build/spawn.d.ts +0 -1
  7. package/src/common/ajax.d.ts +0 -1
  8. package/src/common/cachebust-url.d.ts +0 -1
  9. package/src/common/censorHTMLstring.d.ts +0 -1
  10. package/src/common/censorHTMLtree.d.ts +0 -1
  11. package/src/common/censorJSONTree.d.ts +0 -1
  12. package/src/common/connectivity-test.d.ts +0 -1
  13. package/src/common/defer.d.ts +0 -1
  14. package/src/common/find-parent.d.ts +0 -1
  15. package/src/common/get-extension-id.d.ts +0 -1
  16. package/src/common/get-or-fail.d.ts +0 -1
  17. package/src/common/get-session-id.d.ts +0 -1
  18. package/src/common/get-stack-trace.d.ts +0 -1
  19. package/src/common/html-to-text.d.ts +0 -1
  20. package/src/common/isElementVisible.d.ts +0 -1
  21. package/src/common/load-script.d.ts +0 -1
  22. package/src/common/log-error.d.ts +0 -1
  23. package/src/common/quoted-split.d.ts +0 -1
  24. package/src/common/rate-limit-queuer.d.ts +0 -1
  25. package/src/common/rate-limit.d.ts +0 -1
  26. package/src/common/version.d.ts +0 -1
  27. package/src/inboxsdk-js/check-requirements.js +3 -7
  28. package/src/inboxsdk-js/header.js +0 -1
  29. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +6 -5
  30. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +3 -4
  31. package/src/inboxsdk-js/inboxsdk-REMOTE.js +1 -3
  32. package/src/inboxsdk-js/inboxsdk-TEST.js +3 -4
  33. package/src/inboxsdk-js/inboxsdk.js +39 -33
  34. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +18 -15
  35. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts +0 -1
  36. package/src/inboxsdk.d.ts +27 -12
  37. package/src/injected-js/gmail/constants.d.ts +0 -1
  38. package/src/injected-js/gmail/modify-suggestions.d.ts +0 -1
  39. package/src/injected-js/gmail/modify-suggestions.test.js +9 -8
  40. package/src/injected-js/gmail/setup-gmail-interceptor.js +579 -340
  41. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts +0 -1
  42. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts +0 -1
  43. package/src/injected-js/gmail/sync-compose-processor.d.ts +0 -1
  44. package/src/injected-js/gmail/sync-compose-request-processor.d.ts +0 -1
  45. package/src/injected-js/gmail/sync-compose-request-processor.test.js +49 -39
  46. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +33 -20
  47. package/src/injected-js/gmail/thread-identifier/index.js +93 -57
  48. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +31 -22
  49. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +28 -12
  50. package/src/injected-js/inbox/setupAjaxInterceptor.js +121 -64
  51. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +66 -53
  52. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +36 -20
  53. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  54. package/src/injected-js/injected-logger.d.ts +0 -1
  55. package/src/injected-js/main.js +24 -11
  56. package/src/injected-js/message-metadata-holder.js +82 -52
  57. package/src/injected-js/setup-data-exposer.js +148 -89
  58. package/src/injected-js/setup-error-silencer.js +21 -21
  59. package/src/injected-js/setup-event-reemitter.js +22 -30
  60. package/src/injected-js/setupCustomViewEventAssassin.d.ts +0 -1
  61. package/src/injected-js/setupInboxCustomViewLinkFixer.js +29 -24
  62. package/src/injected-js/setupPushStateListener.js +11 -18
  63. package/src/injected-js/xhr-helper.js +65 -62
  64. package/src/injected-js/xhr-proxy-factory.js +445 -195
  65. package/src/injected-js/xhr-proxy-factory.test.js +991 -824
  66. package/src/platform-implementation-js/constants/nav-item-types.d.ts +0 -1
  67. package/src/platform-implementation-js/constants/router.js +9 -17
  68. package/src/platform-implementation-js/constants/toolbars.js +3 -8
  69. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  70. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +136 -115
  71. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -3
  72. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts +0 -1
  73. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +14 -13
  74. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +48 -27
  75. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts +0 -1
  76. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +42 -31
  77. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +40 -30
  78. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts +0 -1
  79. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts +0 -1
  80. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +18 -10
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +28 -21
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +45 -33
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +49 -31
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +65 -58
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +0 -1
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +124 -40
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +22 -17
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts +0 -1
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +11 -10
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +80 -44
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +26 -19
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +147 -71
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +148 -91
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +166 -150
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +120 -70
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +67 -44
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +379 -230
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +307 -121
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +24 -17
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +49 -41
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +40 -30
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +60 -28
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +133 -61
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +110 -83
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +42 -30
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +46 -52
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +3 -13
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +683 -355
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts +0 -1
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts +0 -1
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +0 -4
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts +0 -1
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts +0 -1
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts +0 -1
  116. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts +0 -1
  117. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +93 -77
  118. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts +0 -1
  119. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts +0 -1
  120. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +82 -35
  121. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +94 -44
  122. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +19 -12
  123. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +29 -17
  124. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  125. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +797 -391
  126. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +9 -7
  127. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +109 -60
  128. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +135 -95
  129. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +211 -103
  130. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  131. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  132. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +541 -188
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +135 -67
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +49 -27
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +13 -7
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +22 -9
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +63 -36
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts +0 -1
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +113 -38
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts +0 -1
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +16 -11
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +17 -11
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +11 -8
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +47 -27
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +24 -11
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +111 -59
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts +0 -1
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +14 -15
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +17 -11
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +24 -18
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts +0 -1
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +23 -19
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts +0 -1
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +19 -11
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +376 -141
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +28 -17
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +70 -34
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts +0 -1
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +17 -10
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts +0 -1
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts +0 -1
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +137 -83
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +19 -10
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +1190 -632
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts +0 -1
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +38 -29
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +617 -327
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -34
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +48 -29
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +380 -188
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +194 -104
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts +0 -1
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +811 -382
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +58 -34
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +581 -330
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +277 -123
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +35 -15
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +571 -216
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +336 -152
  180. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +211 -87
  181. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts +0 -1
  182. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts +0 -1
  183. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts +0 -1
  184. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts +0 -1
  185. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +11 -10
  186. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts +0 -1
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts +0 -1
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts +0 -1
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +29 -20
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts +0 -1
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +76 -41
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +99 -45
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +128 -76
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +319 -128
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +78 -45
  196. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +4 -8
  197. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +54 -36
  198. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +53 -35
  199. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +15 -13
  200. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +18 -15
  201. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +13 -14
  202. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +20 -14
  203. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +13 -14
  204. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +67 -35
  205. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +18 -16
  206. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +185 -68
  207. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +56 -28
  208. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +10 -12
  209. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  210. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +35 -24
  211. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +89 -37
  212. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +78 -56
  213. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +32 -26
  214. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +109 -52
  215. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +8 -7
  216. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +20 -16
  217. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +16 -15
  218. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +83 -75
  219. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +823 -531
  220. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +61 -48
  221. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +12 -9
  222. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +19 -12
  223. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +33 -24
  224. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +388 -201
  225. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +265 -249
  226. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +152 -84
  227. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +67 -55
  228. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +65 -43
  229. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +56 -31
  230. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +294 -191
  231. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +45 -32
  232. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +39 -21
  233. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +240 -153
  234. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +150 -75
  235. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +37 -20
  236. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +114 -60
  237. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +65 -47
  238. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +52 -41
  239. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +36 -27
  240. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +80 -52
  241. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +649 -465
  242. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +58 -37
  243. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +26 -14
  244. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +235 -118
  245. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +11 -10
  246. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +46 -28
  247. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +202 -131
  248. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +80 -40
  249. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +61 -35
  250. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +221 -124
  251. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +213 -125
  252. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +126 -104
  253. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +51 -36
  254. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +297 -158
  255. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +35 -21
  256. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +43 -24
  257. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +68 -39
  258. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts +0 -1
  259. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +19 -14
  260. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +35 -27
  261. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts +0 -1
  262. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +22 -16
  263. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts +0 -1
  264. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  265. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts +0 -1
  266. package/src/platform-implementation-js/driver-common/inboxAjax.js +7 -12
  267. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts +0 -1
  268. package/src/platform-implementation-js/driver-common/requestGmailThread.js +20 -19
  269. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +306 -197
  270. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +161 -113
  271. package/src/platform-implementation-js/driver-common/update-icon.d.ts +0 -1
  272. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +114 -1
  273. package/src/platform-implementation-js/driver-interfaces/driver.d.ts +0 -5
  274. package/src/platform-implementation-js/driver-interfaces/driver.js +126 -1
  275. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +48 -4
  276. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +29 -1
  277. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +32 -1
  278. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +11 -1
  279. package/src/platform-implementation-js/lib/ErrorCollector.d.ts +0 -1
  280. package/src/platform-implementation-js/lib/Membrane.d.ts +0 -1
  281. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts +0 -1
  282. package/src/platform-implementation-js/lib/array-to-lifetimes.js +41 -43
  283. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +155 -139
  284. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts +0 -1
  285. package/src/platform-implementation-js/lib/common-page-communicator.d.ts +0 -1
  286. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +38 -19
  287. package/src/platform-implementation-js/lib/css-selector-escape.js +3 -7
  288. package/src/platform-implementation-js/lib/delay-asap.d.ts +0 -1
  289. package/src/platform-implementation-js/lib/delay-idle.d.ts +0 -1
  290. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts +0 -1
  291. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +11 -8
  292. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts +0 -1
  293. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts +0 -1
  294. package/src/platform-implementation-js/lib/dom/get-selection.js +52 -23
  295. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts +0 -1
  296. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +101 -69
  297. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +10 -8
  298. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts +0 -1
  299. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts +0 -1
  300. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts +0 -1
  301. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts +0 -1
  302. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts +0 -1
  303. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts +0 -1
  304. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +17 -15
  305. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts +0 -1
  306. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts +0 -1
  307. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +11 -8
  308. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts +0 -1
  309. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts +0 -1
  310. package/src/platform-implementation-js/lib/dom/set-css.js +3 -7
  311. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +11 -9
  312. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +33 -32
  313. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts +0 -1
  314. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts +0 -1
  315. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts +0 -1
  316. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts +0 -1
  317. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +26 -23
  318. package/src/platform-implementation-js/lib/fake-window-resize.d.ts +0 -1
  319. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts +0 -1
  320. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts +0 -1
  321. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +149 -86
  322. package/src/platform-implementation-js/lib/handler-registry.d.ts +0 -1
  323. package/src/platform-implementation-js/lib/idMap.d.ts +0 -1
  324. package/src/platform-implementation-js/lib/imageRequest.d.ts +0 -1
  325. package/src/platform-implementation-js/lib/incrementName.d.ts +0 -1
  326. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts +0 -1
  327. package/src/platform-implementation-js/lib/inject-script.d.ts +0 -1
  328. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +57 -42
  329. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts +0 -1
  330. package/src/platform-implementation-js/lib/is-valid-email.d.ts +0 -1
  331. package/src/platform-implementation-js/lib/isNotNil.d.ts +0 -1
  332. package/src/platform-implementation-js/lib/isStreakAppId.d.ts +0 -1
  333. package/src/platform-implementation-js/lib/logger.d.ts +0 -1
  334. package/src/platform-implementation-js/lib/make-revocable-function.js +21 -19
  335. package/src/platform-implementation-js/lib/make-revocable-function.test.js +22 -20
  336. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +17 -15
  337. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +18 -9
  338. package/src/platform-implementation-js/lib/persistent-queue.d.ts +0 -1
  339. package/src/platform-implementation-js/lib/populateRouteID.js +9 -8
  340. package/src/platform-implementation-js/lib/populateRouteID.test.js +19 -20
  341. package/src/platform-implementation-js/lib/react/ElementContainer.js +20 -23
  342. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +9 -10
  343. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +20 -13
  344. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +18 -13
  345. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +17 -11
  346. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts +0 -1
  347. package/src/platform-implementation-js/lib/shared-style.js +13 -14
  348. package/src/platform-implementation-js/lib/stopper-pool.d.ts +0 -1
  349. package/src/platform-implementation-js/lib/stream-wait-for.d.ts +0 -1
  350. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +17 -18
  351. package/src/platform-implementation-js/lib/toLiveSet.js +15 -17
  352. package/src/platform-implementation-js/lib/wait-for.d.ts +1 -2
  353. package/src/platform-implementation-js/lib/waitForAsync.d.ts +0 -1
  354. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +5 -6
  355. package/src/platform-implementation-js/main.js +24 -9
  356. package/src/platform-implementation-js/namespaces/butter-bar.d.ts +0 -1
  357. package/src/platform-implementation-js/namespaces/compose.js +60 -37
  358. package/src/platform-implementation-js/namespaces/conversations.js +124 -52
  359. package/src/platform-implementation-js/namespaces/global.js +39 -27
  360. package/src/platform-implementation-js/namespaces/keyboard.js +33 -29
  361. package/src/platform-implementation-js/namespaces/lists.js +31 -25
  362. package/src/platform-implementation-js/namespaces/modal.js +28 -34
  363. package/src/platform-implementation-js/namespaces/nav-menu.js +45 -30
  364. package/src/platform-implementation-js/namespaces/router.js +137 -70
  365. package/src/platform-implementation-js/namespaces/search.js +17 -19
  366. package/src/platform-implementation-js/namespaces/toolbars.js +117 -71
  367. package/src/platform-implementation-js/namespaces/user.js +37 -36
  368. package/src/platform-implementation-js/namespaces/widgets.js +61 -54
  369. package/src/platform-implementation-js/platform-implementation.d.ts +0 -2
  370. package/src/platform-implementation-js/platform-implementation.js +226 -98
  371. package/src/platform-implementation-js/views/SimpleElementView.d.ts +0 -1
  372. package/src/platform-implementation-js/views/app-toolbar-button-view.js +47 -26
  373. package/src/platform-implementation-js/views/collapsible-section-view.js +63 -66
  374. package/src/platform-implementation-js/views/compose-button-view.d.ts +0 -1
  375. package/src/platform-implementation-js/views/compose-view.d.ts +0 -1
  376. package/src/platform-implementation-js/views/content-panel-view.js +30 -28
  377. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +44 -21
  378. package/src/platform-implementation-js/views/conversations/custom-message-view.js +104 -44
  379. package/src/platform-implementation-js/views/conversations/message-view.js +202 -131
  380. package/src/platform-implementation-js/views/conversations/thread-view.js +127 -75
  381. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts +0 -1
  382. package/src/platform-implementation-js/views/native-nav-item-view.js +65 -32
  383. package/src/platform-implementation-js/views/nav-item-view.js +115 -51
  384. package/src/platform-implementation-js/views/route-view/custom-route-view.js +20 -25
  385. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  386. package/src/platform-implementation-js/views/route-view/list-route-view.js +52 -30
  387. package/src/platform-implementation-js/views/route-view/route-view.js +35 -24
  388. package/src/platform-implementation-js/views/section-view.js +52 -60
  389. package/src/platform-implementation-js/views/thread-row-view.js +74 -49
  390. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts +0 -1
  391. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts +0 -1
  392. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts +0 -1
  393. package/src/platform-implementation-js/widgets/drawer-view.js +36 -29
  394. package/src/platform-implementation-js/widgets/modal-view.js +68 -39
  395. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  396. package/src/platform-implementation-js/widgets/top-message-bar-view.js +10 -13
  397. package/src/build/exec.d.ts.map +0 -1
  398. package/src/build/exec.js +0 -26
  399. package/src/build/spawn.d.ts.map +0 -1
  400. package/src/build/spawn.js +0 -17
  401. package/src/common/ajax.d.ts.map +0 -1
  402. package/src/common/ajax.js +0 -90
  403. package/src/common/cachebust-url.d.ts.map +0 -1
  404. package/src/common/cachebust-url.js +0 -10
  405. package/src/common/censorHTMLstring.d.ts.map +0 -1
  406. package/src/common/censorHTMLstring.js +0 -37
  407. package/src/common/censorHTMLtree.d.ts.map +0 -1
  408. package/src/common/censorHTMLtree.js +0 -28
  409. package/src/common/censorJSONTree.d.ts.map +0 -1
  410. package/src/common/censorJSONTree.js +0 -15
  411. package/src/common/connectivity-test.d.ts.map +0 -1
  412. package/src/common/connectivity-test.js +0 -21
  413. package/src/common/defer.d.ts.map +0 -1
  414. package/src/common/defer.js +0 -11
  415. package/src/common/find-parent.d.ts.map +0 -1
  416. package/src/common/find-parent.js +0 -10
  417. package/src/common/get-extension-id.d.ts.map +0 -1
  418. package/src/common/get-extension-id.js +0 -7
  419. package/src/common/get-or-fail.d.ts.map +0 -1
  420. package/src/common/get-or-fail.js +0 -8
  421. package/src/common/get-session-id.d.ts.map +0 -1
  422. package/src/common/get-session-id.js +0 -14
  423. package/src/common/get-stack-trace.d.ts.map +0 -1
  424. package/src/common/get-stack-trace.js +0 -6
  425. package/src/common/html-to-text.d.ts.map +0 -1
  426. package/src/common/html-to-text.js +0 -7
  427. package/src/common/isElementVisible.d.ts.map +0 -1
  428. package/src/common/isElementVisible.js +0 -6
  429. package/src/common/load-script.d.ts.map +0 -1
  430. package/src/common/load-script.js +0 -127
  431. package/src/common/log-error.d.ts.map +0 -1
  432. package/src/common/log-error.js +0 -191
  433. package/src/common/quoted-split.d.ts.map +0 -1
  434. package/src/common/quoted-split.js +0 -18
  435. package/src/common/rate-limit-queuer.d.ts.map +0 -1
  436. package/src/common/rate-limit-queuer.js +0 -57
  437. package/src/common/rate-limit.d.ts.map +0 -1
  438. package/src/common/rate-limit.js +0 -14
  439. package/src/common/version.d.ts.map +0 -1
  440. package/src/common/version.js +0 -6
  441. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +0 -1
  442. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -27
  443. package/src/injected-js/gmail/constants.d.ts.map +0 -1
  444. package/src/injected-js/gmail/constants.js +0 -2
  445. package/src/injected-js/gmail/modify-suggestions.d.ts.map +0 -1
  446. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  447. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts.map +0 -1
  448. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  449. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts.map +0 -1
  450. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  451. package/src/injected-js/gmail/sync-compose-processor.d.ts.map +0 -1
  452. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  453. package/src/injected-js/gmail/sync-compose-request-processor.d.ts.map +0 -1
  454. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -110
  455. package/src/injected-js/injected-logger.d.ts.map +0 -1
  456. package/src/injected-js/injected-logger.js +0 -50
  457. package/src/injected-js/setupCustomViewEventAssassin.d.ts.map +0 -1
  458. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  459. package/src/platform-implementation-js/constants/nav-item-types.d.ts.map +0 -1
  460. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  461. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts +0 -5
  462. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts.map +0 -1
  463. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -21
  464. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts +0 -5
  465. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts.map +0 -1
  466. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -28
  467. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +0 -1
  468. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  469. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts.map +0 -1
  470. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  471. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts.map +0 -1
  472. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  473. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts.map +0 -1
  474. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  475. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts.map +0 -1
  476. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  477. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +0 -1
  478. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -4
  479. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts.map +0 -1
  480. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  481. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts +0 -2
  482. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts.map +0 -1
  483. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts.map +0 -1
  484. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  485. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts.map +0 -1
  486. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  487. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +0 -1
  488. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -253
  489. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts.map +0 -1
  490. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -200
  491. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts.map +0 -1
  492. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -533
  493. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts.map +0 -1
  494. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -289
  495. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts.map +0 -1
  496. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  497. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts.map +0 -1
  498. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  499. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts.map +0 -1
  500. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  501. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts +0 -43
  502. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts.map +0 -1
  503. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -126
  504. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts.map +0 -1
  505. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  506. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts.map +0 -1
  507. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  508. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts.map +0 -1
  509. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  510. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts.map +0 -1
  511. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  512. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts.map +0 -1
  513. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  514. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts.map +0 -1
  515. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  516. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts.map +0 -1
  517. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  518. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts.map +0 -1
  519. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  520. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts.map +0 -1
  521. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -5
  522. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +0 -1
  523. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -759
  524. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts.map +0 -1
  525. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  526. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts.map +0 -1
  527. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  528. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts.map +0 -1
  529. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  530. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts.map +0 -1
  531. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -58
  532. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts.map +0 -1
  533. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -55
  534. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts.map +0 -1
  535. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -96
  536. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts.map +0 -1
  537. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  538. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts.map +0 -1
  539. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  540. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts.map +0 -1
  541. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  542. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts.map +0 -1
  543. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  544. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts.map +0 -1
  545. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  546. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts.map +0 -1
  547. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  548. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts.map +0 -1
  549. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  550. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts.map +0 -1
  551. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  552. package/src/platform-implementation-js/driver-common/update-icon.d.ts.map +0 -1
  553. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  554. package/src/platform-implementation-js/lib/ErrorCollector.d.ts.map +0 -1
  555. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  556. package/src/platform-implementation-js/lib/Membrane.d.ts.map +0 -1
  557. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  558. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts.map +0 -1
  559. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  560. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts.map +0 -1
  561. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  562. package/src/platform-implementation-js/lib/common-page-communicator.d.ts.map +0 -1
  563. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  564. package/src/platform-implementation-js/lib/delay-asap.d.ts.map +0 -1
  565. package/src/platform-implementation-js/lib/delay-asap.js +0 -12
  566. package/src/platform-implementation-js/lib/delay-idle.d.ts.map +0 -1
  567. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  568. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts.map +0 -1
  569. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  570. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts.map +0 -1
  571. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  572. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts.map +0 -1
  573. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  574. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts.map +0 -1
  575. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  576. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts.map +0 -1
  577. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  578. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts.map +0 -1
  579. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  580. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts.map +0 -1
  581. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -28
  582. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts.map +0 -1
  583. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  584. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts.map +0 -1
  585. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  586. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts.map +0 -1
  587. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  588. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts.map +0 -1
  589. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -39
  590. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts.map +0 -1
  591. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  592. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts.map +0 -1
  593. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  594. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts.map +0 -1
  595. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  596. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts.map +0 -1
  597. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  598. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts.map +0 -1
  599. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  600. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts.map +0 -1
  601. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  602. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts.map +0 -1
  603. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  604. package/src/platform-implementation-js/lib/fake-window-resize.d.ts.map +0 -1
  605. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  606. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts.map +0 -1
  607. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  608. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts.map +0 -1
  609. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  610. package/src/platform-implementation-js/lib/handler-registry.d.ts.map +0 -1
  611. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  612. package/src/platform-implementation-js/lib/idMap.d.ts.map +0 -1
  613. package/src/platform-implementation-js/lib/idMap.js +0 -45
  614. package/src/platform-implementation-js/lib/imageRequest.d.ts.map +0 -1
  615. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  616. package/src/platform-implementation-js/lib/incrementName.d.ts.map +0 -1
  617. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  618. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +0 -1
  619. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -14
  620. package/src/platform-implementation-js/lib/inject-script.d.ts.map +0 -1
  621. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  622. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts.map +0 -1
  623. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  624. package/src/platform-implementation-js/lib/is-valid-email.d.ts.map +0 -1
  625. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  626. package/src/platform-implementation-js/lib/isNotNil.d.ts.map +0 -1
  627. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  628. package/src/platform-implementation-js/lib/isStreakAppId.d.ts.map +0 -1
  629. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  630. package/src/platform-implementation-js/lib/logger.d.ts.map +0 -1
  631. package/src/platform-implementation-js/lib/logger.js +0 -441
  632. package/src/platform-implementation-js/lib/persistent-queue.d.ts.map +0 -1
  633. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  634. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts.map +0 -1
  635. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -17
  636. package/src/platform-implementation-js/lib/stopper-pool.d.ts.map +0 -1
  637. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  638. package/src/platform-implementation-js/lib/stream-wait-for.d.ts.map +0 -1
  639. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  640. package/src/platform-implementation-js/lib/wait-for.d.ts.map +0 -1
  641. package/src/platform-implementation-js/lib/wait-for.js +0 -28
  642. package/src/platform-implementation-js/lib/waitForAsync.d.ts.map +0 -1
  643. package/src/platform-implementation-js/lib/waitForAsync.js +0 -19
  644. package/src/platform-implementation-js/namespaces/app-menu.d.ts +0 -38
  645. package/src/platform-implementation-js/namespaces/app-menu.d.ts.map +0 -1
  646. package/src/platform-implementation-js/namespaces/app-menu.js +0 -31
  647. package/src/platform-implementation-js/namespaces/butter-bar.d.ts.map +0 -1
  648. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  649. package/src/platform-implementation-js/views/SimpleElementView.d.ts.map +0 -1
  650. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  651. package/src/platform-implementation-js/views/app-menu-item-view.d.ts +0 -23
  652. package/src/platform-implementation-js/views/app-menu-item-view.d.ts.map +0 -1
  653. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -257
  654. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts +0 -50
  655. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts.map +0 -1
  656. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -222
  657. package/src/platform-implementation-js/views/compose-button-view.d.ts.map +0 -1
  658. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  659. package/src/platform-implementation-js/views/compose-view.d.ts.map +0 -1
  660. package/src/platform-implementation-js/views/compose-view.js +0 -312
  661. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts.map +0 -1
  662. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  663. package/src/platform-implementation-js/views/nav-item-view.d.ts +0 -24
  664. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts.map +0 -1
  665. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  666. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts.map +0 -1
  667. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  668. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts.map +0 -1
  669. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -122
@@ -1,126 +1,206 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _toValueObservable = _interopRequireDefault(require("live-set/toValueObservable"));
10
- var _ud = require("ud");
11
- var _transducers = _interopRequireDefault(require("transducers.js"));
12
- var _kefir = _interopRequireDefault(require("kefir"));
13
- var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
14
- var _kefirBus = _interopRequireDefault(require("kefir-bus"));
15
- var _asap = _interopRequireDefault(require("asap"));
16
- var _includes = _interopRequireDefault(require("lodash/includes"));
17
- var _getOrFail = _interopRequireDefault(require("../../../common/get-or-fail"));
18
- var _showAppIdWarning = _interopRequireDefault(require("./gmail-driver/show-app-id-warning"));
19
- var _makePageParserTree = _interopRequireDefault(require("./makePageParserTree"));
20
- var _gmailElementGetter = _interopRequireDefault(require("./gmail-element-getter"));
21
- var _makeXhrInterceptor = _interopRequireDefault(require("./make-xhr-interceptor"));
22
- var _gmailBackdrop = _interopRequireDefault(require("./views/gmail-backdrop"));
23
- var _gmailThreadRowView = require("./views/gmail-thread-row-view");
24
- var _gmailTopMessageBarDriver = _interopRequireDefault(require("./widgets/gmail-top-message-bar-driver"));
25
- var _gmailModalViewDriver = _interopRequireDefault(require("./widgets/gmail-modal-view-driver"));
26
- var _gmailMoleViewDriver = _interopRequireDefault(require("./widgets/gmail-mole-view-driver"));
27
- var _inboxDrawerView = _interopRequireDefault(require("../inbox/views/inbox-drawer-view"));
28
- var _gmailRouteProcessor = _interopRequireDefault(require("./views/gmail-route-view/gmail-route-processor"));
29
- var _keyboardShortcutHelpModifier = _interopRequireDefault(require("./gmail-driver/keyboard-shortcut-help-modifier"));
30
- var _openDraftByMessageId = _interopRequireDefault(require("./gmail-driver/open-draft-by-message-id"));
31
- var _userInfo = _interopRequireDefault(require("./gmail-driver/user-info"));
32
- var _gmailButterBarDriver = _interopRequireDefault(require("./gmail-butter-bar-driver"));
33
- var _trackGmailStyles = _interopRequireDefault(require("./gmail-driver/track-gmail-styles"));
34
- var _temporaryTrackDownloadUrlValidity = _interopRequireDefault(require("./gmail-driver/temporary-track-download-url-validity"));
35
- var _getGmailThreadIdForRfcMessageId = _interopRequireDefault(require("../../driver-common/getGmailThreadIdForRfcMessageId"));
36
- var _getRfcMessageIdForGmailThreadId = _interopRequireDefault(require("./gmail-driver/get-rfc-message-id-for-gmail-thread-id"));
37
- var _getGmailMessageIdForSyncMessageId = _interopRequireDefault(require("../../driver-common/getGmailMessageIdForSyncMessageId"));
38
- var _bimapcache = _interopRequireDefault(require("bimapcache"));
39
- var _getDraftIdForMessageId = _interopRequireDefault(require("./gmail-driver/get-draft-id-for-message-id"));
40
- var _addNavItem = _interopRequireDefault(require("./gmail-driver/add-nav-item"));
41
- var _addAppMenuItem = require("./gmail-driver/add-app-menu-item");
42
- var _addSupportItem = _interopRequireDefault(require("./gmail-driver/add-support-item"));
43
- var _gotoView = _interopRequireDefault(require("./gmail-driver/goto-view"));
44
- var _showCustomThreadList = _interopRequireDefault(require("./gmail-driver/show-custom-thread-list"));
45
- var _showCustomRouteView = _interopRequireDefault(require("./gmail-driver/show-custom-route-view"));
46
- var _showNativeRouteView = _interopRequireDefault(require("./gmail-driver/show-native-route-view"));
47
- var _registerSearchSuggestionsProvider = _interopRequireDefault(require("./gmail-driver/register-search-suggestions-provider"));
48
- var _setupComposeViewDriverStream = _interopRequireDefault(require("./gmail-driver/setup-compose-view-driver-stream"));
49
- var _trackEvents = _interopRequireDefault(require("./gmail-driver/track-events"));
50
- var _gmailLoadEvent = _interopRequireDefault(require("./gmail-driver/gmail-load-event"));
51
- var _threadRowIdentifier = _interopRequireDefault(require("./gmail-driver/thread-row-identifier"));
52
- var _customStyle = _interopRequireDefault(require("./custom-style"));
53
- var _overrideGmailBackButton = _interopRequireDefault(require("./gmail-driver/override-gmail-back-button"));
54
- var _addToolbarButtonForApp = _interopRequireDefault(require("./gmail-driver/add-toolbar-button-for-app"));
55
- var _setupRouteViewDriverStream = _interopRequireDefault(require("./gmail-driver/setup-route-view-driver-stream"));
56
- var _getNativeNavItem = _interopRequireDefault(require("./gmail-driver/get-native-nav-item"));
57
- var _createLink = _interopRequireDefault(require("./gmail-driver/create-link"));
58
- var _registerSearchQueryRewriter = _interopRequireDefault(require("./gmail-driver/register-search-query-rewriter"));
59
- var _openComposeWindow = _interopRequireDefault(require("./gmail-driver/open-compose-window"));
60
- var _gmailAppSidebarView = _interopRequireDefault(require("./views/gmail-app-sidebar-view"));
61
- var _suppressAddon = _interopRequireDefault(require("./gmail-driver/suppressAddon"));
62
- var _getSyncThreadFromSyncThreadId = _interopRequireDefault(require("./gmail-driver/getSyncThreadFromSyncThreadId"));
63
- var _getSyncThreadForOldGmailThreadId = _interopRequireDefault(require("./gmail-driver/getSyncThreadForOldGmailThreadId"));
64
- var _toItemWithLifetimeStream = _interopRequireDefault(require("../../lib/toItemWithLifetimeStream"));
65
- var _toLiveSet = _interopRequireDefault(require("../../lib/toLiveSet"));
66
- var _streamWaitFor = _interopRequireDefault(require("../../lib/stream-wait-for"));
67
- var _waitFor = _interopRequireDefault(require("../../lib/wait-for"));
68
- var _gmailNavItemView = _interopRequireDefault(require("./views/gmail-nav-item-view"));
1
+ /* @flow */
2
+
3
+ import type LiveSet from 'live-set';
4
+ import toValueObservable from 'live-set/toValueObservable';
5
+ import { defn } from 'ud';
6
+ import t from 'transducers.js';
7
+ import Kefir from 'kefir';
8
+ import kefirStopper from 'kefir-stopper';
9
+ import kefirBus from 'kefir-bus';
10
+ import type { Bus } from 'kefir-bus';
11
+ import type { TagTree } from 'tag-tree';
12
+ import type PageParserTree from 'page-parser-tree';
13
+ import asap from 'asap';
14
+ import includes from 'lodash/includes';
15
+
16
+ import get from '../../../common/get-or-fail';
17
+ import showAppIdWarning from './gmail-driver/show-app-id-warning';
18
+ import makePageParserTree from './makePageParserTree';
19
+
20
+ import GmailElementGetter from './gmail-element-getter';
21
+ import makeXhrInterceptor from './make-xhr-interceptor';
22
+ import GmailBackdrop from './views/gmail-backdrop';
23
+ import type GmailThreadRowView from './views/gmail-thread-row-view';
24
+ import type GmailAppToolbarButtonView from './views/gmail-app-toolbar-button-view';
25
+
26
+ import { removeAllThreadRowUnclaimedModifications } from './views/gmail-thread-row-view';
27
+
28
+ import GmailTopMessageBarDriver from './widgets/gmail-top-message-bar-driver';
29
+ import GmailModalViewDriver from './widgets/gmail-modal-view-driver';
30
+ import GmailMoleViewDriver from './widgets/gmail-mole-view-driver';
31
+ import InboxDrawerView from '../inbox/views/inbox-drawer-view';
32
+ import GmailRouteProcessor from './views/gmail-route-view/gmail-route-processor';
33
+ import KeyboardShortcutHelpModifier from './gmail-driver/keyboard-shortcut-help-modifier';
34
+ import openDraftByMessageID from './gmail-driver/open-draft-by-message-id';
35
+ import UserInfo from './gmail-driver/user-info';
36
+ import GmailButterBarDriver from './gmail-butter-bar-driver';
37
+ import trackGmailStyles from './gmail-driver/track-gmail-styles';
38
+ import temporaryTrackDownloadUrlValidity from './gmail-driver/temporary-track-download-url-validity';
39
+ import getGmailThreadIdForRfcMessageId from '../../driver-common/getGmailThreadIdForRfcMessageId';
40
+ import getRfcMessageIdForGmailThreadId from './gmail-driver/get-rfc-message-id-for-gmail-thread-id';
41
+ import getGmailMessageIdForSyncMessageId from '../../driver-common/getGmailMessageIdForSyncMessageId';
42
+ import BiMapCache from 'bimapcache';
43
+ import type KeyboardShortcutHandle from '../../views/keyboard-shortcut-handle';
44
+ import getDraftIDForMessageID from './gmail-driver/get-draft-id-for-message-id';
45
+ import type { GetDraftIdResult } from './gmail-driver/get-draft-id-for-message-id';
46
+ import addNavItem from './gmail-driver/add-nav-item';
47
+ import addSupportItem from './gmail-driver/add-support-item';
48
+ import gotoView from './gmail-driver/goto-view';
49
+ import showCustomThreadList from './gmail-driver/show-custom-thread-list';
50
+ import showCustomRouteView from './gmail-driver/show-custom-route-view';
51
+ import showNativeRouteView from './gmail-driver/show-native-route-view';
52
+ import registerSearchSuggestionsProvider from './gmail-driver/register-search-suggestions-provider';
53
+ import setupComposeViewDriverStream from './gmail-driver/setup-compose-view-driver-stream';
54
+ import trackEvents from './gmail-driver/track-events';
55
+ import gmailLoadEvent from './gmail-driver/gmail-load-event';
56
+ import ThreadRowIdentifier from './gmail-driver/thread-row-identifier';
57
+ import customStyle from './custom-style';
58
+ import overrideGmailBackButton from './gmail-driver/override-gmail-back-button';
59
+ import addToolbarButtonForApp from './gmail-driver/add-toolbar-button-for-app';
60
+ import setupRouteViewDriverStream from './gmail-driver/setup-route-view-driver-stream';
61
+ import getNativeNavItem from './gmail-driver/get-native-nav-item';
62
+ import createLink from './gmail-driver/create-link';
63
+ import registerSearchQueryRewriter from './gmail-driver/register-search-query-rewriter';
64
+ import openComposeWindow from './gmail-driver/open-compose-window';
65
+ import GmailAppSidebarView from './views/gmail-app-sidebar-view';
66
+ import suppressAddon from './gmail-driver/suppressAddon';
67
+
68
+ import getSyncThreadFromSyncThreadId from './gmail-driver/getSyncThreadFromSyncThreadId';
69
+ import getSyncThreadForOldGmailThreadId from './gmail-driver/getSyncThreadForOldGmailThreadId';
70
+
71
+ import toItemWithLifetimeStream from '../../lib/toItemWithLifetimeStream';
72
+ import toLiveSet from '../../lib/toLiveSet';
73
+
74
+ import waitFor from '../../lib/stream-wait-for';
75
+ import promiseWaitFor from '../../lib/wait-for';
76
+
77
+ import type Logger from '../../lib/logger';
78
+ import type PageCommunicator from './gmail-page-communicator';
79
+ import type { RouteParams } from '../../namespaces/router';
80
+ import type ButterBar from '../../namespaces/butter-bar';
81
+ import type { Driver, DrawerViewOptions } from '../../driver-interfaces/driver';
82
+ import type { ComposeViewDriver } from '../../driver-interfaces/compose-view-driver';
83
+ import type GmailComposeView from './views/gmail-compose-view';
84
+ import type GmailMessageView from './views/gmail-message-view';
85
+ import type GmailThreadView from './views/gmail-thread-view';
86
+ import type GmailToolbarView from './views/gmail-toolbar-view';
87
+ import type GmailRowListView from './views/gmail-row-list-view';
88
+ import type GmailRouteView from './views/gmail-route-view/gmail-route-view';
89
+ import type GmailSupportItemView from './views/gmail-support-item-view';
90
+ import type SupportItemDescriptor from './views/gmail-support-item-view';
91
+ import type { PiOpts, EnvData } from '../../platform-implementation';
92
+ import type NativeGmailNavItemView from './views/native-gmail-nav-item-view';
93
+
94
+ import type ContentPanelViewDriver from '../../driver-common/sidebar/ContentPanelViewDriver';
95
+ import GmailNavItemView from './views/gmail-nav-item-view';
96
+
69
97
  class GmailDriver {
70
- constructor(appId, LOADER_VERSION, IMPL_VERSION, logger, opts, envData) {
71
- (0, _defineProperty2.default)(this, "_customRouteIDs", new Set());
72
- (0, _defineProperty2.default)(this, "_customListRouteIDs", new Map());
73
- (0, _defineProperty2.default)(this, "_customListSearchStringsToRouteIds", new Map());
74
- (0, _defineProperty2.default)(this, "_messageIDsToThreadIDs", new Map());
75
- (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
76
- (0, _defineProperty2.default)(this, "_navMarkerHiddenChanged", (0, _kefirBus.default)());
77
- (0, _defineProperty2.default)(this, "_addonSidebarHiddenChanged", (0, _kefirBus.default)());
78
- (0, _defineProperty2.default)(this, "_appSidebarView", null);
79
- (0, _defineProperty2.default)(this, "_recentSyncDraftIds", new Map());
80
- (0, _defineProperty2.default)(this, "_selectedThreadRows", _transducers.default.mapcat(gmailRowListView => gmailRowListView.getSelectedThreadRowViewDrivers()));
81
- (0, _defineProperty2.default)(this, "_threadRowViewSelectionChanges", (0, _kefirBus.default)());
82
- this; // interface check
83
- (0, _customStyle.default)();
98
+ _appId: string;
99
+ _logger: Logger;
100
+ _opts: PiOpts;
101
+ _envData: EnvData;
102
+ _customRouteIDs: Set<string> = new Set();
103
+ _customListRouteIDs: Map<string, Function> = new Map();
104
+ _customListSearchStringsToRouteIds: Map<string, string> = new Map();
105
+ _messageIDsToThreadIDs: Map<string, string> = new Map();
106
+ _threadRowIdentifier: ThreadRowIdentifier;
107
+ _gmailRouteProcessor: GmailRouteProcessor;
108
+ _keyboardShortcutHelpModifier: KeyboardShortcutHelpModifier;
109
+ onready: Promise<void>;
110
+ _page: PageParserTree;
111
+ _pageCommunicator: PageCommunicator;
112
+ _pageCommunicatorPromise: Promise<PageCommunicator>;
113
+ _butterBar: ?ButterBar;
114
+ _butterBarDriver: GmailButterBarDriver;
115
+ _routeViewDriverStream: Kefir.Observable<GmailRouteView>;
116
+ _rowListViewDriverStream: Kefir.Observable<Object>;
117
+ _threadRowViewDriverKefirStream: Kefir.Observable<Object>;
118
+ _threadViewDriverLiveSet: LiveSet<GmailThreadView>;
119
+ _toolbarViewDriverLiveSet: LiveSet<GmailToolbarView>;
120
+ _composeViewDriverStream: Kefir.Observable<GmailComposeView>;
121
+ _xhrInterceptorStream: Kefir.Observable<Object>;
122
+ _messageViewDriverStream: Kefir.Observable<GmailMessageView>;
123
+ _stopper = kefirStopper();
124
+ _navMarkerHiddenChanged: Bus<null> = kefirBus();
125
+ _addonSidebarHiddenChanged: Bus<null> = kefirBus();
126
+ _userInfo: UserInfo;
127
+ _timestampAccountSwitcherReady: ?number;
128
+ _timestampGlobalsFound: ?number;
129
+ _timestampOnready: ?number;
130
+ _lastCustomThreadListActivity: ?{ customRouteID: string, timestamp: Date };
131
+ _currentRouteViewDriver: GmailRouteView;
132
+ _appSidebarView: ?GmailAppSidebarView = null;
133
+
134
+ getGmailThreadIdForRfcMessageId: (rfcId: string) => Promise<string>;
135
+ getRfcMessageIdForGmailThreadId: (threadId: string) => Promise<string>;
136
+ getSyncThreadIdForOldGmailThreadId: (threadId: string) => Promise<string>;
137
+ getOldGmailThreadIdFromSyncThreadId: (threadId: string) => Promise<string>;
138
+ removeCachedOldGmailThreadIdFromSyncThreadId: (threadId: string) => void;
139
+
140
+ getGmailMessageIdForSyncDraftId: (syncDraftId: string) => Promise<string>;
141
+ getGmailMessageIdForSyncMessageId: (syncMessageId: string) => Promise<string>;
142
+ removeCachedGmailMessageIdForSyncMessageId: (syncMessageID: string) => void;
143
+
144
+ constructor(
145
+ appId: string,
146
+ LOADER_VERSION: string,
147
+ IMPL_VERSION: string,
148
+ logger: Logger,
149
+ opts: PiOpts,
150
+ envData: EnvData
151
+ ) {
152
+ (this: Driver); // interface check
153
+ customStyle();
154
+
84
155
  this._appId = appId;
85
156
  this._logger = logger;
86
157
  this._opts = opts;
87
158
  this._envData = envData;
88
- this._page = (0, _makePageParserTree.default)(this, document);
159
+ this._page = makePageParserTree(this, document);
89
160
  this._stopper.onValue(() => this._page.dump());
90
161
 
91
162
  // Manages the mapping between RFC Message Ids and Gmail Message Ids. Caches to
92
163
  // localStorage. Used for custom thread lists.
93
164
  {
94
- const rfcIdCache = new _bimapcache.default({
165
+ const rfcIdCache = new BiMapCache({
95
166
  key: 'inboxsdk__cached_thread_ids',
96
- getAfromB: gmailThreadId => (0, _getRfcMessageIdForGmailThreadId.default)(this, gmailThreadId),
97
- getBfromA: rfcMessageId => (0, _getGmailThreadIdForRfcMessageId.default)(this, rfcMessageId)
167
+ getAfromB: (gmailThreadId) =>
168
+ getRfcMessageIdForGmailThreadId(this, gmailThreadId),
169
+ getBfromA: (rfcMessageId) =>
170
+ getGmailThreadIdForRfcMessageId(this, rfcMessageId),
98
171
  });
99
- this.getGmailThreadIdForRfcMessageId = rfcMessageId => rfcIdCache.getBfromA(rfcMessageId);
100
- this.getRfcMessageIdForGmailThreadId = gmailThreadId => rfcIdCache.getAfromB(gmailThreadId);
172
+ this.getGmailThreadIdForRfcMessageId = (rfcMessageId) =>
173
+ rfcIdCache.getBfromA(rfcMessageId);
174
+ this.getRfcMessageIdForGmailThreadId = (gmailThreadId) =>
175
+ rfcIdCache.getAfromB(gmailThreadId);
101
176
  }
102
177
 
103
178
  // Manages mapping between old hex thread ids and new sync based thread ids
104
179
  {
105
- const syncThreadIdToOldGmailThreadIdCache = new _bimapcache.default({
180
+ const syncThreadIdToOldGmailThreadIdCache = new BiMapCache({
106
181
  key: 'inboxsdk__cached_sync_thread_id_old_gmail_thread_id',
107
- getAfromB: oldGmailThreadId => {
108
- return (0, _getSyncThreadForOldGmailThreadId.default)(this, oldGmailThreadId).then(_ref => {
109
- let {
110
- syncThreadID
111
- } = _ref;
112
- return syncThreadID;
113
- });
182
+ getAfromB: (oldGmailThreadId: string) => {
183
+ return getSyncThreadForOldGmailThreadId(this, oldGmailThreadId).then(
184
+ ({ syncThreadID }) => syncThreadID
185
+ );
186
+ },
187
+ getBfromA: (syncThreadID: string) => {
188
+ return getSyncThreadFromSyncThreadId(this, syncThreadID).then(
189
+ (syncThread) => {
190
+ if (syncThread) return syncThread.oldGmailThreadID;
191
+ else throw new Error('syncThread not found');
192
+ }
193
+ );
114
194
  },
115
- getBfromA: syncThreadID => {
116
- return (0, _getSyncThreadFromSyncThreadId.default)(this, syncThreadID).then(syncThread => {
117
- if (syncThread) return syncThread.oldGmailThreadID;else throw new Error('syncThread not found');
118
- });
119
- }
120
195
  });
121
- this.getSyncThreadIdForOldGmailThreadId = oldGmailThreadId => syncThreadIdToOldGmailThreadIdCache.getAfromB(oldGmailThreadId);
122
- this.getOldGmailThreadIdFromSyncThreadId = syncThreadId => syncThreadIdToOldGmailThreadIdCache.getBfromA(syncThreadId);
123
- this.removeCachedOldGmailThreadIdFromSyncThreadId = syncThreadId => syncThreadIdToOldGmailThreadIdCache.removeAfromCache(syncThreadId);
196
+ this.getSyncThreadIdForOldGmailThreadId = (oldGmailThreadId) =>
197
+ syncThreadIdToOldGmailThreadIdCache.getAfromB(oldGmailThreadId);
198
+
199
+ this.getOldGmailThreadIdFromSyncThreadId = (syncThreadId) =>
200
+ syncThreadIdToOldGmailThreadIdCache.getBfromA(syncThreadId);
201
+
202
+ this.removeCachedOldGmailThreadIdFromSyncThreadId = (syncThreadId) =>
203
+ syncThreadIdToOldGmailThreadIdCache.removeAfromCache(syncThreadId);
124
204
  }
125
205
 
126
206
  // mapping between sync message ids and old message ids
@@ -128,92 +208,111 @@ class GmailDriver {
128
208
  try {
129
209
  // TODO remove sometime after March 24 2019 to give time for this to
130
210
  // run for most users.
131
- localStorage.removeItem('inboxsdk__cached_gmail_and_inbox_message_ids_2');
211
+ localStorage.removeItem(
212
+ 'inboxsdk__cached_gmail_and_inbox_message_ids_2'
213
+ );
132
214
  } catch (err) {
133
215
  // eslint-disable-next-line no-console
134
216
  console.error(err);
135
217
  }
136
- const gmailMessageIdForSyncMessageIdCache = new _bimapcache.default({
218
+ const gmailMessageIdForSyncMessageIdCache = new BiMapCache({
137
219
  key: 'inboxsdk__cached_gmail_and_inbox_message_ids_3',
138
- getAfromB: sync => (0, _getGmailMessageIdForSyncMessageId.default)(this, sync),
220
+ getAfromB: (sync: string) =>
221
+ getGmailMessageIdForSyncMessageId(this, sync),
139
222
  getBfromA() {
140
223
  throw new Error('should not happen');
141
- }
224
+ },
142
225
  });
143
- this.getGmailMessageIdForSyncMessageId = syncMessageId => gmailMessageIdForSyncMessageIdCache.getAfromB(syncMessageId);
144
- this.removeCachedGmailMessageIdForSyncMessageId = syncMessageId => gmailMessageIdForSyncMessageIdCache.removeBfromCache(syncMessageId);
226
+ this.getGmailMessageIdForSyncMessageId = (syncMessageId) =>
227
+ gmailMessageIdForSyncMessageIdCache.getAfromB(syncMessageId);
228
+ this.removeCachedGmailMessageIdForSyncMessageId = (syncMessageId) =>
229
+ gmailMessageIdForSyncMessageIdCache.removeBfromCache(syncMessageId);
145
230
 
146
231
  // It's important that this doesn't use the same cache for looking up
147
232
  // sync message IDs, because the legacy ID of a draft changes when it's
148
233
  // sent. It doesn't really need to be cached so it's not here.
149
- this.getGmailMessageIdForSyncDraftId = syncDraftId => (0, _getGmailMessageIdForSyncMessageId.default)(this, syncDraftId);
234
+ this.getGmailMessageIdForSyncDraftId = (syncDraftId) =>
235
+ getGmailMessageIdForSyncMessageId(this, syncDraftId);
150
236
  }
151
- this._gmailRouteProcessor = new _gmailRouteProcessor.default();
152
- this._keyboardShortcutHelpModifier = new _keyboardShortcutHelpModifier.default();
153
- this._butterBarDriver = new _gmailButterBarDriver.default();
154
- _kefir.default.later(45 * 1000).takeUntilBy((0, _toItemWithLifetimeStream.default)(this._page.tree.getAllByTag('supportMenu'))).onValue(() => {
155
- this._logger.errorSite(new Error('Failed to find gmail supportMenu'));
156
- });
237
+
238
+ this._gmailRouteProcessor = new GmailRouteProcessor();
239
+ this._keyboardShortcutHelpModifier = new KeyboardShortcutHelpModifier();
240
+ this._butterBarDriver = new GmailButterBarDriver();
241
+
242
+ Kefir.later(45 * 1000)
243
+ .takeUntilBy(
244
+ toItemWithLifetimeStream(this._page.tree.getAllByTag('supportMenu'))
245
+ )
246
+ .onValue(() => {
247
+ this._logger.errorSite(new Error('Failed to find gmail supportMenu'));
248
+ });
249
+
157
250
  this._setupEventStreams();
158
- this.onready.then(() => {
159
- (0, _trackEvents.default)(this);
160
- (0, _gmailLoadEvent.default)(this);
161
- (0, _overrideGmailBackButton.default)(this, this._gmailRouteProcessor);
162
- (0, _trackGmailStyles.default)();
163
- (0, _temporaryTrackDownloadUrlValidity.default)(this);
164
- if (opts.suppressAddonTitle != null) {
165
- (0, _suppressAddon.default)(this, opts.suppressAddonTitle);
166
- }
167
- }).catch(err => {
168
- this._logger.error(err);
169
- });
251
+
252
+ this.onready
253
+ .then(() => {
254
+ trackEvents(this);
255
+ gmailLoadEvent(this);
256
+ overrideGmailBackButton(this, this._gmailRouteProcessor);
257
+ trackGmailStyles();
258
+ temporaryTrackDownloadUrlValidity(this);
259
+ if (opts.suppressAddonTitle != null) {
260
+ suppressAddon(this, opts.suppressAddonTitle);
261
+ }
262
+ })
263
+ .catch((err) => {
264
+ this._logger.error(err);
265
+ });
170
266
  }
267
+
171
268
  destroy() {
172
269
  this._threadRowViewSelectionChanges.end();
173
270
  this._keyboardShortcutHelpModifier.destroy();
174
271
  this._stopper.destroy();
175
- (0, _gmailThreadRowView.removeAllThreadRowUnclaimedModifications)();
272
+
273
+ removeAllThreadRowUnclaimedModifications();
176
274
  }
177
- getAppId() {
275
+
276
+ getAppId(): string {
178
277
  return this._appId;
179
278
  }
180
- getOpts() {
279
+ getOpts(): PiOpts {
181
280
  return this._opts;
182
281
  }
183
- getPageCommunicator() {
282
+ getPageCommunicator(): PageCommunicator {
184
283
  return this._pageCommunicator;
185
284
  }
186
- getPageCommunicatorPromise() {
285
+ getPageCommunicatorPromise(): Promise<PageCommunicator> {
187
286
  return this._pageCommunicatorPromise;
188
287
  }
189
- getLogger() {
288
+ getLogger(): Logger {
190
289
  return this._logger;
191
290
  }
192
- getTagTree() {
291
+ getTagTree(): TagTree<HTMLElement> {
193
292
  return this._page.tree;
194
293
  }
195
- getCustomListSearchStringsToRouteIds() {
294
+ getCustomListSearchStringsToRouteIds(): Map<string, string> {
196
295
  return this._customListSearchStringsToRouteIds;
197
296
  }
198
- getThreadRowIdentifier() {
297
+ getThreadRowIdentifier(): ThreadRowIdentifier {
199
298
  return this._threadRowIdentifier;
200
299
  }
201
- getButterBarDriver() {
300
+ getButterBarDriver(): GmailButterBarDriver {
202
301
  return this._butterBarDriver;
203
302
  }
204
- getButterBar() {
303
+ getButterBar(): ?ButterBar {
205
304
  return this._butterBar;
206
305
  }
207
- setButterBar(bb) {
306
+ setButterBar(bb: ButterBar) {
208
307
  this._butterBar = bb;
209
308
  }
210
- getCustomRouteIDs() {
309
+ getCustomRouteIDs(): Set<string> {
211
310
  return this._customRouteIDs;
212
311
  }
213
- getCustomListRouteIDs() {
312
+ getCustomListRouteIDs(): Map<string, Function> {
214
313
  return this._customListRouteIDs;
215
314
  }
216
- getKeyboardShortcutHelpModifier() {
315
+ getKeyboardShortcutHelpModifier(): KeyboardShortcutHelpModifier {
217
316
  return this._keyboardShortcutHelpModifier;
218
317
  }
219
318
  getRouteViewDriverStream() {
@@ -226,32 +325,41 @@ class GmailDriver {
226
325
  return this._threadRowViewDriverKefirStream;
227
326
  }
228
327
  getThreadViewDriverStream() {
229
- return (0, _toItemWithLifetimeStream.default)(this._threadViewDriverLiveSet).map(_ref2 => {
230
- let {
231
- el
232
- } = _ref2;
233
- return el;
234
- });
328
+ return toItemWithLifetimeStream(this._threadViewDriverLiveSet).map(
329
+ ({ el }) => el
330
+ );
235
331
  }
236
332
  getAttachmentCardViewDriverStream() {
237
- return this._messageViewDriverStream.flatMap(messageViewDriver => messageViewDriver.isLoaded() ? _kefir.default.constant(messageViewDriver) : messageViewDriver.getEventStream().filter(event => event.eventName === 'messageLoad').map(() => messageViewDriver).take(1)).map(messageView => messageView.getAttachmentCardViewDrivers()).flatten();
333
+ return this._messageViewDriverStream
334
+ .flatMap((messageViewDriver) =>
335
+ messageViewDriver.isLoaded()
336
+ ? Kefir.constant(messageViewDriver)
337
+ : messageViewDriver
338
+ .getEventStream()
339
+ .filter((event) => event.eventName === 'messageLoad')
340
+ .map(() => messageViewDriver)
341
+ .take(1)
342
+ )
343
+ .map((messageView) => messageView.getAttachmentCardViewDrivers())
344
+ .flatten();
238
345
  }
239
346
  getComposeViewDriverStream() {
240
347
  return this._composeViewDriverStream;
241
348
  }
242
- getXhrInterceptorStream() {
349
+ getXhrInterceptorStream(): Kefir.Observable<Object> {
243
350
  return this._xhrInterceptorStream;
244
351
  }
245
352
  getMessageViewDriverStream() {
246
353
  return this._messageViewDriverStream;
247
354
  }
248
- getStopper() {
355
+ getStopper(): Kefir.Observable<null> {
249
356
  return this._stopper;
250
357
  }
251
- getEnvData() {
358
+ getEnvData(): EnvData {
252
359
  return this._envData;
253
360
  }
254
- getTimestampOnReady() {
361
+
362
+ getTimestampOnReady(): number {
255
363
  if (this._timestampOnready == null) {
256
364
  this._logger.error(new Error('getTimestampOnReady called before ready'));
257
365
  return Date.now();
@@ -261,169 +369,218 @@ class GmailDriver {
261
369
 
262
370
  // Returns a stream that emits an event once at least `time` milliseconds has
263
371
  // passed since the GmailDriver's ready event.
264
- delayToTimeAfterReady(time) {
372
+ delayToTimeAfterReady(time: number): Kefir.Observable<void> {
265
373
  const targetTime = this.getTimestampOnReady() + time;
266
374
  const timeToWait = Math.max(0, targetTime - Date.now());
267
- return _kefir.default.later(timeToWait);
375
+ return Kefir.later(timeToWait);
268
376
  }
269
- getTimings() {
377
+
378
+ getTimings(): { [ix: string]: ?number } {
270
379
  return {
271
380
  piMainStarted: this._envData.piMainStarted,
272
381
  piLoadStarted: this._envData.piLoadStarted,
273
382
  globalsFound: this._timestampGlobalsFound,
274
383
  accountSwitcherReady: this._timestampAccountSwitcherReady,
275
- onready: this._timestampOnready
384
+ onready: this._timestampOnready,
276
385
  };
277
386
  }
278
- registerThreadButton(options) {
279
- const unregister = (0, _kefirStopper.default)();
280
- const removeButtonOnUnregister = button => {
387
+
388
+ registerThreadButton(options: Object) {
389
+ const unregister = kefirStopper();
390
+
391
+ const removeButtonOnUnregister = (button) => {
281
392
  unregister.takeUntilBy(button.getStopper()).onValue(() => {
282
393
  button.destroy();
283
394
  });
284
395
  };
285
- const toolbarViewSub = (0, _toValueObservable.default)(this._toolbarViewDriverLiveSet).subscribe(_ref3 => {
286
- let {
287
- value: gmailToolbarView
288
- } = _ref3;
396
+
397
+ const toolbarViewSub = toValueObservable(
398
+ this._toolbarViewDriverLiveSet
399
+ ).subscribe(({ value: gmailToolbarView }: { value: GmailToolbarView }) => {
289
400
  if (gmailToolbarView.isForThread()) {
290
- if (!options.positions || (0, _includes.default)(options.positions, 'THREAD')) {
291
- removeButtonOnUnregister(gmailToolbarView.addButton({
292
- ...options,
293
- section: options.threadSection || 'METADATA_STATE',
294
- onClick: event => {
295
- options.onClick({
296
- position: 'THREAD',
297
- dropdown: event.dropdown,
298
- selectedThreadViewDrivers: [gmailToolbarView.getThreadViewDriver()],
299
- selectedThreadRowViewDrivers: []
300
- });
301
- }
302
- }));
401
+ if (!options.positions || includes(options.positions, 'THREAD')) {
402
+ removeButtonOnUnregister(
403
+ gmailToolbarView.addButton({
404
+ ...options,
405
+ section: options.threadSection || 'METADATA_STATE',
406
+ onClick: (event) => {
407
+ options.onClick({
408
+ position: 'THREAD',
409
+ dropdown: event.dropdown,
410
+ selectedThreadViewDrivers: [
411
+ gmailToolbarView.getThreadViewDriver(),
412
+ ],
413
+ selectedThreadRowViewDrivers: [],
414
+ });
415
+ },
416
+ })
417
+ );
303
418
  }
304
419
  } else if (gmailToolbarView.isForRowList()) {
305
- if (!options.positions || (0, _includes.default)(options.positions, 'LIST')) {
306
- removeButtonOnUnregister(gmailToolbarView.addButton({
307
- ...options,
308
- section: options.listSection || 'METADATA_STATE',
309
- onClick: event => {
310
- const selectedThreadRowViewDrivers = Array.from(gmailToolbarView.getThreadRowViewDrivers()).filter(gmailThreadRow => gmailThreadRow.isSelected());
311
- options.onClick({
312
- position: 'LIST',
313
- dropdown: event.dropdown,
314
- selectedThreadViewDrivers: [],
315
- selectedThreadRowViewDrivers
316
- });
317
- }
318
- }));
420
+ if (!options.positions || includes(options.positions, 'LIST')) {
421
+ removeButtonOnUnregister(
422
+ gmailToolbarView.addButton({
423
+ ...options,
424
+ section: options.listSection || 'METADATA_STATE',
425
+ onClick: (event) => {
426
+ const selectedThreadRowViewDrivers = Array.from(
427
+ gmailToolbarView.getThreadRowViewDrivers()
428
+ ).filter((gmailThreadRow) => gmailThreadRow.isSelected());
429
+
430
+ options.onClick({
431
+ position: 'LIST',
432
+ dropdown: event.dropdown,
433
+ selectedThreadViewDrivers: [],
434
+ selectedThreadRowViewDrivers,
435
+ });
436
+ },
437
+ })
438
+ );
319
439
  }
320
440
  }
321
441
  });
322
442
  unregister.onValue(() => {
323
443
  toolbarViewSub.unsubscribe();
324
444
  });
325
- if (!options.positions || (0, _includes.default)(options.positions, 'ROW')) {
326
- const perThreadRow = gmailThreadRow => {
327
- gmailThreadRow.addButton(_kefir.default.constant({
328
- hasDropdown: options.hasDropdown,
329
- iconClass: options.iconClass,
330
- iconUrl: options.iconUrl,
331
- orderHint: options.orderHint,
332
- onClick: event => {
333
- if (!options.onClick) return;
334
- options.onClick({
335
- position: 'ROW',
336
- dropdown: event.dropdown,
337
- selectedThreadViewDrivers: [],
338
- selectedThreadRowViewDrivers: [gmailThreadRow]
339
- });
340
- }
341
- }).merge(unregister));
445
+
446
+ if (!options.positions || includes(options.positions, 'ROW')) {
447
+ const perThreadRow = (gmailThreadRow: GmailThreadRowView) => {
448
+ gmailThreadRow.addButton(
449
+ Kefir.constant({
450
+ hasDropdown: options.hasDropdown,
451
+ iconClass: options.iconClass,
452
+ iconUrl: options.iconUrl,
453
+ orderHint: options.orderHint,
454
+ onClick: (event) => {
455
+ if (!options.onClick) return;
456
+ options.onClick({
457
+ position: 'ROW',
458
+ dropdown: event.dropdown,
459
+ selectedThreadViewDrivers: [],
460
+ selectedThreadRowViewDrivers: [gmailThreadRow],
461
+ });
462
+ },
463
+ }).merge(unregister)
464
+ );
342
465
  };
466
+
343
467
  if (this._currentRouteViewDriver) {
344
- this._currentRouteViewDriver.getRowListViews().forEach(gmailRowListView => {
345
- gmailRowListView.getThreadRowViewDrivers().forEach(perThreadRow);
346
- });
468
+ this._currentRouteViewDriver
469
+ .getRowListViews()
470
+ .forEach((gmailRowListView) => {
471
+ gmailRowListView.getThreadRowViewDrivers().forEach(perThreadRow);
472
+ });
347
473
  }
348
474
  const threadRowViewSub = this._threadRowViewDriverKefirStream.observe({
349
- value: perThreadRow
475
+ value: perThreadRow,
350
476
  });
351
477
  unregister.onValue(() => {
352
478
  threadRowViewSub.unsubscribe();
353
479
  });
354
480
  }
481
+
355
482
  return () => {
356
483
  unregister.destroy();
357
484
  };
358
485
  }
359
- hashChangeNoViewChange(hash) {
486
+
487
+ hashChangeNoViewChange(hash: string) {
360
488
  if (hash[0] !== '#') {
361
489
  throw new Error('bad hash');
362
490
  }
363
491
  window.history.replaceState(null, null, hash);
364
- var hce = new window.HashChangeEvent('hashchange', {
365
- oldURL: document.location.href.replace(/#.*$/, '') + '#inboxsdk-fake-no-vc',
366
- newURL: document.location.href.replace(/#.*$/, '') + hash
492
+ var hce = new (window: any).HashChangeEvent('hashchange', {
493
+ oldURL:
494
+ document.location.href.replace(/#.*$/, '') + '#inboxsdk-fake-no-vc',
495
+ newURL: document.location.href.replace(/#.*$/, '') + hash,
367
496
  });
368
497
  window.dispatchEvent(hce);
369
498
  }
370
- addCustomRouteID(routeID) {
499
+
500
+ addCustomRouteID(routeID: string): () => void {
371
501
  this._customRouteIDs.add(routeID);
372
- this._pageCommunicator.registerAllowedHashLinkStartTerm(routeID.split('/')[0]);
502
+ this._pageCommunicator.registerAllowedHashLinkStartTerm(
503
+ routeID.split('/')[0]
504
+ );
373
505
  return () => {
374
506
  this._customRouteIDs.delete(routeID);
375
507
  };
376
508
  }
377
- addCustomListRouteID(routeID, handler) {
509
+
510
+ addCustomListRouteID(routeID: string, handler: Function): () => void {
378
511
  this._customListRouteIDs.set(routeID, handler);
379
- this._pageCommunicator.registerAllowedHashLinkStartTerm(routeID.split('/')[0]);
512
+ this._pageCommunicator.registerAllowedHashLinkStartTerm(
513
+ routeID.split('/')[0]
514
+ );
380
515
  return () => {
381
516
  this._customListRouteIDs.delete(routeID);
382
517
  };
383
518
  }
384
- signalCustomThreadListActivity(customRouteID) {
519
+
520
+ signalCustomThreadListActivity(customRouteID: string) {
385
521
  this._lastCustomThreadListActivity = {
386
522
  customRouteID,
387
- timestamp: new Date()
523
+ timestamp: new Date(),
388
524
  };
389
525
  }
390
526
 
391
527
  // Returns the last time a request for a custom thread list search has gone
392
528
  // out or we got a response, and the customRouteID for that.
393
- getLastCustomThreadListActivity() {
529
+ getLastCustomThreadListActivity(): ?{
530
+ customRouteID: string,
531
+ timestamp: Date,
532
+ } {
394
533
  return this._lastCustomThreadListActivity;
395
534
  }
396
- showCustomThreadList(customRouteID, onActivate, params) {
397
- (0, _showCustomThreadList.default)(this, customRouteID, onActivate, params);
535
+
536
+ showCustomThreadList(
537
+ customRouteID: string,
538
+ onActivate: Function,
539
+ params: Array<string>
540
+ ) {
541
+ showCustomThreadList(this, customRouteID, onActivate, params);
398
542
  }
399
- showCustomRouteView(element) {
400
- (0, _showCustomRouteView.default)(this, element);
543
+
544
+ showCustomRouteView(element: HTMLElement) {
545
+ showCustomRouteView(this, element);
401
546
  }
547
+
402
548
  showNativeRouteView() {
403
- (0, _showNativeRouteView.default)(this);
549
+ showNativeRouteView(this);
404
550
  }
405
- createLink(routeID, params) {
406
- return (0, _createLink.default)(this._gmailRouteProcessor, routeID, params);
551
+
552
+ createLink(routeID: string, params: ?RouteParams | string) {
553
+ return createLink(this._gmailRouteProcessor, routeID, params);
407
554
  }
408
- goto(routeID, params) {
409
- return (0, _gotoView.default)(this, routeID, params);
555
+
556
+ goto(routeID: string, params: ?RouteParams | string): Promise<void> {
557
+ return gotoView(this, routeID, params);
410
558
  }
411
- resolveUrlRedirects(url) {
412
- return this._pageCommunicatorPromise.then(pageCommunicator => pageCommunicator.resolveUrlRedirects(url));
559
+
560
+ resolveUrlRedirects(url: string): Promise<string> {
561
+ return this._pageCommunicatorPromise.then((pageCommunicator) =>
562
+ pageCommunicator.resolveUrlRedirects(url)
563
+ );
413
564
  }
414
- registerSearchSuggestionsProvider(handler) {
415
- (0, _registerSearchSuggestionsProvider.default)(this, handler);
565
+
566
+ registerSearchSuggestionsProvider(handler: Function) {
567
+ registerSearchSuggestionsProvider(this, handler);
416
568
  }
417
- registerSearchQueryRewriter(obj) {
418
- (0, _registerSearchQueryRewriter.default)(this._pageCommunicator, obj);
569
+
570
+ registerSearchQueryRewriter(obj: Object) {
571
+ registerSearchQueryRewriter(this._pageCommunicator, obj);
419
572
  }
420
- addToolbarButtonForApp(buttonDescriptor) {
421
- return (0, _addToolbarButtonForApp.default)(this, buttonDescriptor);
573
+
574
+ addToolbarButtonForApp(
575
+ buttonDescriptor: Object
576
+ ): Promise<GmailAppToolbarButtonView> {
577
+ return addToolbarButtonForApp(this, buttonDescriptor);
422
578
  }
423
- async openNewComposeViewDriver() {
579
+
580
+ async openNewComposeViewDriver(): Promise<GmailComposeView> {
424
581
  try {
425
582
  const composeViewDriverPromise = this.getNextComposeViewDriver();
426
- await (0, _openComposeWindow.default)(this);
583
+ await openComposeWindow(this);
427
584
  const composeViewDriver = await composeViewDriverPromise;
428
585
  return composeViewDriver;
429
586
  } catch (err) {
@@ -431,231 +588,402 @@ class GmailDriver {
431
588
  throw err;
432
589
  }
433
590
  }
434
- getNextComposeViewDriver() {
435
- let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10 * 1000;
436
- return this._composeViewDriverStream.merge(_kefir.default.later(timeout, new Error('Reached timeout while waiting for getNextComposeViewDriver'))).beforeEnd(() => new Error('Driver was shut down before a new compose was found')).flatMap(x => x instanceof Error ? _kefir.default.constantError(x) : _kefir.default.constant(x)).take(1).takeErrors(1).toPromise();
437
- }
438
- openDraftByMessageID(messageID) {
439
- return (0, _openDraftByMessageId.default)(this, messageID);
591
+
592
+ getNextComposeViewDriver(
593
+ timeout: number = 10 * 1000
594
+ ): Promise<GmailComposeView> {
595
+ return this._composeViewDriverStream
596
+ .merge(
597
+ Kefir.later(
598
+ timeout,
599
+ new Error(
600
+ 'Reached timeout while waiting for getNextComposeViewDriver'
601
+ )
602
+ )
603
+ )
604
+ .beforeEnd(
605
+ () => new Error('Driver was shut down before a new compose was found')
606
+ )
607
+ .flatMap((x) =>
608
+ x instanceof Error ? Kefir.constantError(x) : Kefir.constant(x)
609
+ )
610
+ .take(1)
611
+ .takeErrors(1)
612
+ .toPromise();
440
613
  }
441
- createModalViewDriver(options) {
442
- return new _gmailModalViewDriver.default(options);
614
+
615
+ openDraftByMessageID(messageID: string): Promise<void> {
616
+ return openDraftByMessageID(this, messageID);
443
617
  }
444
- createMoleViewDriver(options) {
445
- return new _gmailMoleViewDriver.default(this, options);
618
+
619
+ createModalViewDriver(options: Object): GmailModalViewDriver {
620
+ return new GmailModalViewDriver(options);
446
621
  }
447
- createDrawerViewDriver(options) {
448
- return new _inboxDrawerView.default(options);
622
+
623
+ createMoleViewDriver(options: Object): GmailMoleViewDriver {
624
+ return new GmailMoleViewDriver(this, options);
449
625
  }
450
- createBackdrop(zIndex, target) {
451
- return new _gmailBackdrop.default(zIndex, target);
626
+
627
+ createDrawerViewDriver(options: DrawerViewOptions) {
628
+ return new InboxDrawerView(options);
452
629
  }
453
- addNavItem(appId, navItemDescriptorPropertyStream, navMenuInjectionContainer) {
454
- return (0, _addNavItem.default)(this, appId, navItemDescriptorPropertyStream, navMenuInjectionContainer);
630
+
631
+ createBackdrop(zIndex?: number, target?: HTMLElement) {
632
+ return new GmailBackdrop(zIndex, target);
455
633
  }
456
- addAppMenuItem(menuItemDescriptor) {
457
- return (0, _addAppMenuItem.addAppMenuItem)(this, menuItemDescriptor);
634
+
635
+ addNavItem(
636
+ appId: string,
637
+ navItemDescriptorPropertyStream: Kefir.Observable<Object>
638
+ ): Promise<GmailNavItemView> {
639
+ return addNavItem(this, appId, navItemDescriptorPropertyStream);
458
640
  }
459
- addSupportItem(supportItemDescriptor) {
460
- return (0, _addSupportItem.default)(this, supportItemDescriptor);
641
+
642
+ addSupportItem(
643
+ supportItemDescriptor: SupportItemDescriptor
644
+ ): GmailSupportItemView {
645
+ return addSupportItem(this, supportItemDescriptor);
461
646
  }
462
- getSentMailNativeNavItem() {
463
- const p = (0, _getNativeNavItem.default)(this, 'sent');
464
- p.catch(err => this._logger.error(err));
647
+
648
+ getSentMailNativeNavItem(): Promise<NativeGmailNavItemView> {
649
+ const p = getNativeNavItem(this, 'sent');
650
+ p.catch((err) => this._logger.error(err));
465
651
  return p;
466
652
  }
467
- setShowNativeNavMarker(isNative) {
653
+
654
+ setShowNativeNavMarker(isNative: boolean) {
468
655
  this._navMarkerHiddenChanged.emit(null);
469
- const leftNavContainerElement = _gmailElementGetter.default.getLeftNavContainerElement();
656
+ const leftNavContainerElement =
657
+ GmailElementGetter.getLeftNavContainerElement();
470
658
  if (leftNavContainerElement) {
471
659
  if (isNative) {
472
- leftNavContainerElement.classList.remove('inboxsdk__hide_native_marker');
660
+ leftNavContainerElement.classList.remove(
661
+ 'inboxsdk__hide_native_marker'
662
+ );
473
663
  } else {
474
664
  leftNavContainerElement.classList.add('inboxsdk__hide_native_marker');
475
665
  this._stopper.takeUntilBy(this._navMarkerHiddenChanged).onValue(() => {
476
- leftNavContainerElement.classList.remove('inboxsdk__hide_native_marker');
666
+ leftNavContainerElement.classList.remove(
667
+ 'inboxsdk__hide_native_marker'
668
+ );
477
669
  });
478
670
  }
479
671
  }
480
672
  }
481
- setShowNativeAddonSidebar(isNative) {
673
+
674
+ setShowNativeAddonSidebar(isNative: boolean) {
482
675
  this._addonSidebarHiddenChanged.emit(null);
483
- const addonContainerElement = _gmailElementGetter.default.getAddonSidebarContainerElement();
484
- const mainContentBodyContainerElement = _gmailElementGetter.default.getMainContentBodyContainerElement();
676
+ const addonContainerElement =
677
+ GmailElementGetter.getAddonSidebarContainerElement();
678
+ const mainContentBodyContainerElement =
679
+ GmailElementGetter.getMainContentBodyContainerElement();
680
+
485
681
  if (addonContainerElement && mainContentBodyContainerElement) {
486
682
  const parent = mainContentBodyContainerElement.parentElement;
487
683
  if (!parent) return;
684
+
488
685
  if (isNative) {
489
686
  parent.classList.remove('inboxsdk__hide_addon_container');
490
687
  } else {
491
688
  parent.classList.add('inboxsdk__hide_addon_container');
492
- this._stopper.takeUntilBy(this._addonSidebarHiddenChanged).onValue(() => {
493
- parent.classList.remove('inboxsdk__hide_addon_container');
494
- });
689
+ this._stopper
690
+ .takeUntilBy(this._addonSidebarHiddenChanged)
691
+ .onValue(() => {
692
+ parent.classList.remove('inboxsdk__hide_addon_container');
693
+ });
495
694
  }
496
695
  }
497
696
  }
498
- async getGmailActionToken() {
697
+
698
+ async getGmailActionToken(): Promise<string> {
499
699
  return this._pageCommunicator.getActionTokenValue();
500
700
  }
501
- getUserEmailAddress() {
701
+
702
+ getUserEmailAddress(): string {
502
703
  return this._pageCommunicator.getUserEmailAddress();
503
704
  }
504
- isConversationViewDisabled() {
705
+
706
+ isConversationViewDisabled(): Promise<boolean> {
505
707
  return this._pageCommunicator.isConversationViewDisabled();
506
708
  }
507
- getUserLanguage() {
709
+
710
+ getUserLanguage(): string {
508
711
  return this._pageCommunicator.getUserLanguage();
509
712
  }
510
- getUserContact() {
713
+
714
+ getUserContact(): Contact {
511
715
  return {
512
716
  emailAddress: this.getUserEmailAddress(),
513
- name: this._userInfo.getUserName()
717
+ name: this._userInfo.getUserName(),
514
718
  };
515
719
  }
516
- getAccountSwitcherContactList() {
720
+
721
+ getAccountSwitcherContactList(): Contact[] {
517
722
  return this._userInfo.getAccountSwitcherContactList();
518
723
  }
519
- activateShortcut(keyboardShortcutHandle, appName, appIconUrl) {
520
- this.getKeyboardShortcutHelpModifier().set(keyboardShortcutHandle, this._appId, appName, appIconUrl);
724
+
725
+ activateShortcut(
726
+ keyboardShortcutHandle: KeyboardShortcutHandle,
727
+ appName: ?string,
728
+ appIconUrl: ?string
729
+ ) {
730
+ this.getKeyboardShortcutHelpModifier().set(
731
+ keyboardShortcutHandle,
732
+ this._appId,
733
+ appName,
734
+ appIconUrl
735
+ );
521
736
  keyboardShortcutHandle.once('destroy', () => {
522
737
  this.getKeyboardShortcutHelpModifier().delete(keyboardShortcutHandle);
523
738
  });
524
739
  }
740
+
525
741
  _setupEventStreams() {
526
- var result = (0, _makeXhrInterceptor.default)();
527
- this._xhrInterceptorStream = result.xhrInterceptStream.takeUntilBy(this._stopper);
742
+ var result = makeXhrInterceptor();
743
+
744
+ this._xhrInterceptorStream = result.xhrInterceptStream.takeUntilBy(
745
+ this._stopper
746
+ );
747
+
528
748
  this._pageCommunicatorPromise = result.pageCommunicatorPromise;
529
- this.onready = this._pageCommunicatorPromise.then(pageCommunicator => {
749
+
750
+ this.onready = this._pageCommunicatorPromise.then((pageCommunicator) => {
530
751
  this._timestampGlobalsFound = Date.now();
531
752
  this._pageCommunicator = pageCommunicator;
532
753
  this._logger.setUserEmailAddress(this.getUserEmailAddress());
533
754
  this._logger.setIsUsingSyncAPI(pageCommunicator.isUsingSyncAPI());
534
- this._userInfo = new _userInfo.default(this);
755
+ this._userInfo = new UserInfo(this);
756
+
535
757
  this._timestampAccountSwitcherReady = Date.now();
536
- this._routeViewDriverStream = (0, _setupRouteViewDriverStream.default)(this._gmailRouteProcessor, this).takeUntilBy(this._stopper).toProperty();
537
- this._routeViewDriverStream.onValue(gmailRouteView => {
758
+
759
+ this._routeViewDriverStream = setupRouteViewDriverStream(
760
+ this._gmailRouteProcessor,
761
+ this
762
+ )
763
+ .takeUntilBy(this._stopper)
764
+ .toProperty();
765
+
766
+ this._routeViewDriverStream.onValue((gmailRouteView) => {
538
767
  this._currentRouteViewDriver = gmailRouteView;
539
768
  });
540
- this._rowListViewDriverStream = this._setupRouteSubViewDriver('newGmailRowListView').takeUntilBy(this._stopper);
769
+
770
+ this._rowListViewDriverStream = this._setupRouteSubViewDriver(
771
+ 'newGmailRowListView'
772
+ ).takeUntilBy(this._stopper);
773
+
541
774
  this._setupThreadRowViewDriverKefirStream();
542
- this._threadViewDriverLiveSet = (0, _toLiveSet.default)(this._setupRouteSubViewDriver('newGmailThreadView').takeUntilBy(this._stopper).flatMap(gmailThreadView => gmailThreadView.getReadyStream().map(() => gmailThreadView)).map(gmailThreadView => ({
543
- el: gmailThreadView,
544
- removalStream: gmailThreadView.getStopper()
545
- })));
775
+ this._threadViewDriverLiveSet = toLiveSet(
776
+ this._setupRouteSubViewDriver('newGmailThreadView')
777
+ .takeUntilBy(this._stopper)
778
+ .flatMap((gmailThreadView) =>
779
+ gmailThreadView.getReadyStream().map(() => gmailThreadView)
780
+ )
781
+ .map((gmailThreadView) => ({
782
+ el: gmailThreadView,
783
+ removalStream: gmailThreadView.getStopper(),
784
+ }))
785
+ );
786
+
546
787
  this._setupToolbarViewDriverStream();
547
788
  this._setupMessageViewDriverStream();
548
789
  this._setupComposeViewDriverStream();
549
- this._threadRowIdentifier = new _threadRowIdentifier.default(this);
790
+
791
+ this._threadRowIdentifier = new ThreadRowIdentifier(this);
792
+
550
793
  this._timestampOnready = Date.now();
551
794
  });
552
795
  }
796
+
553
797
  _setupComposeViewDriverStream() {
554
- this._composeViewDriverStream = (0, _setupComposeViewDriverStream.default)(this, this._messageViewDriverStream, this._xhrInterceptorStream).takeUntilBy(this._stopper);
798
+ this._composeViewDriverStream = setupComposeViewDriverStream(
799
+ this,
800
+ this._messageViewDriverStream,
801
+ this._xhrInterceptorStream
802
+ ).takeUntilBy(this._stopper);
555
803
  }
556
- _setupRouteSubViewDriver(viewName) {
557
- return this._routeViewDriverStream.flatMap(gmailRouteView => {
558
- return gmailRouteView.getEventStream().filter(event => event.eventName === viewName).map(event => event.view);
804
+
805
+ _setupRouteSubViewDriver(viewName: string): Kefir.Observable<Object> {
806
+ return this._routeViewDriverStream.flatMap((gmailRouteView) => {
807
+ return gmailRouteView
808
+ .getEventStream()
809
+ .filter((event) => event.eventName === viewName)
810
+ .map((event) => event.view);
559
811
  });
560
812
  }
813
+
561
814
  _setupThreadRowViewDriverKefirStream() {
562
- this._threadRowViewDriverKefirStream = this._rowListViewDriverStream.flatMap(rowListViewDriver => rowListViewDriver.getRowViewDriverStream()).takeUntilBy(this._stopper);
815
+ this._threadRowViewDriverKefirStream = this._rowListViewDriverStream
816
+ .flatMap((rowListViewDriver) =>
817
+ rowListViewDriver.getRowViewDriverStream()
818
+ )
819
+ .takeUntilBy(this._stopper);
563
820
  }
821
+
564
822
  _setupToolbarViewDriverStream() {
565
- this._toolbarViewDriverLiveSet = (0, _toLiveSet.default)(_kefir.default.merge([this._rowListViewDriverStream.map(gmailRowListView => gmailRowListView.getToolbarView()), this.getThreadViewDriverStream().map(gmailThreadView => gmailThreadView.getToolbarView())]).filter(Boolean).flatMap(gmailToolbarView => gmailToolbarView.waitForReady()).map(gmailToolbarView => ({
566
- el: gmailToolbarView,
567
- removalStream: gmailToolbarView.getStopper()
568
- })).takeUntilBy(this._stopper));
823
+ this._toolbarViewDriverLiveSet = toLiveSet(
824
+ Kefir.merge([
825
+ this._rowListViewDriverStream.map((gmailRowListView) =>
826
+ gmailRowListView.getToolbarView()
827
+ ),
828
+ this.getThreadViewDriverStream().map((gmailThreadView) =>
829
+ gmailThreadView.getToolbarView()
830
+ ),
831
+ ])
832
+ .filter(Boolean)
833
+ .flatMap((gmailToolbarView) => gmailToolbarView.waitForReady())
834
+ .map((gmailToolbarView) => ({
835
+ el: gmailToolbarView,
836
+ removalStream: gmailToolbarView.getStopper(),
837
+ }))
838
+ .takeUntilBy(this._stopper)
839
+ );
569
840
  this._toolbarViewDriverLiveSet.subscribe({});
570
841
  }
842
+
571
843
  _setupMessageViewDriverStream() {
572
- this._messageViewDriverStream = this.getThreadViewDriverStream().flatMap(gmailThreadView => gmailThreadView.getMessageViewDriverStream()).takeUntilBy(this._stopper);
844
+ this._messageViewDriverStream = this.getThreadViewDriverStream()
845
+ .flatMap((gmailThreadView) =>
846
+ gmailThreadView.getMessageViewDriverStream()
847
+ )
848
+ .takeUntilBy(this._stopper);
573
849
  }
574
- async addGlobalSidebarContentPanel(descriptor) {
575
- await this.waitForGlobalSidebarReady().merge(this._stopper.flatMap(() => _kefir.default.constantError(new Error('Driver instance was destroyed early')))).take(1).takeErrors(1).toPromise();
850
+
851
+ async addGlobalSidebarContentPanel(
852
+ descriptor: Kefir.Observable<Object>
853
+ ): Promise<?ContentPanelViewDriver> {
854
+ await this.waitForGlobalSidebarReady()
855
+ .merge(
856
+ this._stopper.flatMap(() =>
857
+ Kefir.constantError(new Error('Driver instance was destroyed early'))
858
+ )
859
+ )
860
+ .take(1)
861
+ .takeErrors(1)
862
+ .toPromise();
576
863
  const appSidebar = this.getGlobalSidebar();
577
864
  return appSidebar.addGlobalSidebarContentPanel(descriptor);
578
865
  }
579
- waitForGlobalSidebarReady() {
580
- const condition = () => _gmailElementGetter.default.getCompanionSidebarContentContainerElement() && (_gmailElementGetter.default.getCompanionSidebarIconContainerElement() || _gmailElementGetter.default.getAddonSidebarContainerElement());
866
+
867
+ waitForGlobalSidebarReady(): Kefir.Observable<void> {
868
+ const condition = () =>
869
+ GmailElementGetter.getCompanionSidebarContentContainerElement() &&
870
+ (GmailElementGetter.getCompanionSidebarIconContainerElement() ||
871
+ GmailElementGetter.getAddonSidebarContainerElement());
581
872
  if (condition()) {
582
- return _kefir.default.constant(undefined);
873
+ return Kefir.constant(undefined);
583
874
  }
584
- return (0, _streamWaitFor.default)(condition).map(() => undefined);
875
+ return waitFor(condition).map(() => undefined);
585
876
  }
586
- getGlobalSidebar() {
877
+
878
+ getGlobalSidebar(): GmailAppSidebarView {
587
879
  let appSidebarView = this._appSidebarView;
588
880
  if (!appSidebarView) {
589
- const companionSidebarContentContainerEl = _gmailElementGetter.default.getCompanionSidebarContentContainerElement();
590
- if (!companionSidebarContentContainerEl) throw new Error('did not find companionSidebarContentContainerEl');
591
- appSidebarView = this._appSidebarView = new _gmailAppSidebarView.default(this, companionSidebarContentContainerEl);
881
+ const companionSidebarContentContainerEl =
882
+ GmailElementGetter.getCompanionSidebarContentContainerElement();
883
+ if (!companionSidebarContentContainerEl)
884
+ throw new Error('did not find companionSidebarContentContainerEl');
885
+ appSidebarView = this._appSidebarView = new GmailAppSidebarView(
886
+ this,
887
+ companionSidebarContentContainerEl
888
+ );
592
889
  }
890
+
593
891
  return appSidebarView;
594
892
  }
595
- isRunningInPageContext() {
893
+
894
+ isRunningInPageContext(): boolean {
596
895
  return !!(global.GLOBALS && global._GM_main);
597
896
  }
598
- isUsingSyncAPI() {
897
+
898
+ isUsingSyncAPI(): boolean {
599
899
  return this._pageCommunicator.isUsingSyncAPI();
600
900
  }
901
+
601
902
  showAppIdWarning() {
602
- (0, _showAppIdWarning.default)(this);
903
+ showAppIdWarning(this);
603
904
  }
604
- createTopMessageBarDriver(optionStream) {
605
- return new _gmailTopMessageBarDriver.default(optionStream);
905
+
906
+ createTopMessageBarDriver(
907
+ optionStream: Kefir.Observable<?Object>
908
+ ): GmailTopMessageBarDriver {
909
+ return new GmailTopMessageBarDriver(optionStream);
606
910
  }
607
- associateThreadAndMessageIDs(threadID, messageID) {
911
+
912
+ associateThreadAndMessageIDs(threadID: string, messageID: string) {
608
913
  this._messageIDsToThreadIDs.set(messageID, threadID);
609
914
  }
610
- getThreadIDForMessageID(messageID) {
611
- return (0, _getOrFail.default)(this._messageIDsToThreadIDs, messageID);
915
+
916
+ getThreadIDForMessageID(messageID: string): string {
917
+ return get(this._messageIDsToThreadIDs, messageID);
612
918
  }
613
- getDraftIDForMessageID(messageID) {
614
- let skipCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
615
- return (0, _getDraftIdForMessageId.default)(this, messageID, skipCache);
919
+
920
+ getDraftIDForMessageID(
921
+ messageID: string,
922
+ skipCache: boolean = false
923
+ ): Promise<GetDraftIdResult> {
924
+ return getDraftIDForMessageID(this, messageID, skipCache);
616
925
  }
617
- reportRecentSyncDraftId(syncDraftId) {
618
- const count = this._recentSyncDraftIds.get(syncDraftId);
926
+
927
+ _recentSyncDraftIds = new Map<string, number>();
928
+
929
+ reportRecentSyncDraftId(syncDraftId: string) {
930
+ const count: ?number = this._recentSyncDraftIds.get(syncDraftId);
619
931
  const newCount = (count ?? 0) + 1;
620
932
  this._recentSyncDraftIds.set(syncDraftId, newCount);
621
933
  }
622
- reportDraftClosed(syncDraftId) {
623
- _kefir.default.later(30 * 1000).takeUntilBy(this._stopper).onValue(() => {
624
- const count = this._recentSyncDraftIds.get(syncDraftId);
625
- let newCount;
626
- if (count == null || count < 1) {
627
- newCount = 0;
628
- this._logger.error(new Error('_recentSyncDraftIds count had unexpected value'), {
629
- count
630
- });
631
- } else {
632
- newCount = count - 1;
633
- }
634
- if (newCount === 0) {
635
- this._recentSyncDraftIds.delete(syncDraftId);
636
- } else {
637
- this._recentSyncDraftIds.set(syncDraftId, newCount);
638
- }
639
- });
934
+ reportDraftClosed(syncDraftId: string) {
935
+ Kefir.later(30 * 1000)
936
+ .takeUntilBy(this._stopper)
937
+ .onValue(() => {
938
+ const count: ?number = this._recentSyncDraftIds.get(syncDraftId);
939
+ let newCount;
940
+ if (count == null || count < 1) {
941
+ newCount = 0;
942
+ this._logger.error(
943
+ new Error('_recentSyncDraftIds count had unexpected value'),
944
+ {
945
+ count,
946
+ }
947
+ );
948
+ } else {
949
+ newCount = count - 1;
950
+ }
951
+ if (newCount === 0) {
952
+ this._recentSyncDraftIds.delete(syncDraftId);
953
+ } else {
954
+ this._recentSyncDraftIds.set(syncDraftId, newCount);
955
+ }
956
+ });
640
957
  }
641
- isRecentSyncDraftId(syncMessageId) {
958
+ isRecentSyncDraftId(syncMessageId: string): boolean {
642
959
  return this._recentSyncDraftIds.has(syncMessageId);
643
960
  }
644
- getSelectedThreadRowViewDrivers() {
961
+
962
+ _selectedThreadRows = t.mapcat((gmailRowListView: GmailRowListView) =>
963
+ gmailRowListView.getSelectedThreadRowViewDrivers()
964
+ );
965
+ getSelectedThreadRowViewDrivers(): $ReadOnlyArray<GmailThreadRowView> {
645
966
  if (!this._currentRouteViewDriver) {
646
967
  return [];
647
968
  }
648
- return _transducers.default.toArray(this._currentRouteViewDriver.getRowListViews(), this._selectedThreadRows);
969
+ return t.toArray(
970
+ this._currentRouteViewDriver.getRowListViews(),
971
+ this._selectedThreadRows
972
+ );
649
973
  }
974
+
975
+ _threadRowViewSelectionChanges = kefirBus();
976
+
650
977
  signalThreadRowViewSelectionChange() {
651
978
  this._threadRowViewSelectionChanges.value(undefined);
652
979
  }
653
- registerThreadRowViewSelectionHandler(handler) {
980
+
981
+ registerThreadRowViewSelectionHandler(handler: () => any): () => void {
654
982
  this._threadRowViewSelectionChanges.onValue(handler);
655
983
  return () => {
656
984
  this._threadRowViewSelectionChanges.offValue(handler);
657
985
  };
658
986
  }
659
987
  }
660
- var _default = (0, _ud.defn)(module, GmailDriver);
661
- exports.default = _default;
988
+
989
+ export default defn(module, GmailDriver);