@inboxsdk/core 1.2.5 → 1.2.8-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/inboxsdk.js +4462 -456
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +3 -2
  4. package/pageWorld.js +1 -1
  5. package/pageWorld.js.map +1 -1
  6. package/src/inboxsdk.d.ts +29 -0
  7. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -2
  8. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -1
  9. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +6 -1
  10. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -1
  11. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +2 -2
  12. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  13. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +5 -0
  14. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
  15. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts +13 -5
  16. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts.map +1 -1
  17. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.d.ts +15 -1
  18. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.d.ts.map +1 -1
  19. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -1
  20. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
  21. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.d.ts +9 -0
  22. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.d.ts.map +1 -1
  23. package/src/platform-implementation-js/namespaces/conversations.d.ts +7 -0
  24. package/src/platform-implementation-js/namespaces/conversations.d.ts.map +1 -1
  25. package/src/platform-implementation-js/namespaces/nav-menu.d.ts +4 -2
  26. package/src/platform-implementation-js/namespaces/nav-menu.d.ts.map +1 -1
  27. package/src/platform-implementation-js/views/compose-view.d.ts +8 -2
  28. package/src/platform-implementation-js/views/compose-view.d.ts.map +1 -1
  29. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +12 -5
  30. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -1
  31. package/src/platform-implementation-js/views/native-nav-item-view.d.ts +2 -1
  32. package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -1
  33. package/src/build/exec.js +0 -26
  34. package/src/build/spawn.js +0 -17
  35. package/src/common/ajax.js +0 -90
  36. package/src/common/cachebust-url.js +0 -10
  37. package/src/common/censorHTMLstring.js +0 -37
  38. package/src/common/censorHTMLtree.js +0 -28
  39. package/src/common/censorJSONTree.js +0 -15
  40. package/src/common/connectivity-test.js +0 -21
  41. package/src/common/defer.js +0 -11
  42. package/src/common/find-parent.js +0 -10
  43. package/src/common/get-extension-id.js +0 -7
  44. package/src/common/get-or-fail.js +0 -8
  45. package/src/common/get-session-id.js +0 -14
  46. package/src/common/get-stack-trace.js +0 -6
  47. package/src/common/html-to-text.js +0 -7
  48. package/src/common/isElementVisible.js +0 -6
  49. package/src/common/load-script.js +0 -126
  50. package/src/common/log-error.js +0 -185
  51. package/src/common/quoted-split.js +0 -18
  52. package/src/common/rate-limit-queuer.js +0 -57
  53. package/src/common/rate-limit.js +0 -14
  54. package/src/common/version.js +0 -8
  55. package/src/inboxsdk-js/header.js +0 -19
  56. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +0 -4
  57. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +0 -4
  58. package/src/inboxsdk-js/inboxsdk-REMOTE.js +0 -2
  59. package/src/inboxsdk-js/inboxsdk-TEST.js +0 -5
  60. package/src/inboxsdk-js/inboxsdk.js +0 -23
  61. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +0 -14
  62. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -28
  63. package/src/injected-js/gmail/constants.js +0 -2
  64. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  65. package/src/injected-js/gmail/setup-gmail-interceptor.js +0 -936
  66. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  67. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  68. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  69. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -109
  70. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +0 -71
  71. package/src/injected-js/gmail/thread-identifier/index.js +0 -133
  72. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +0 -61
  73. package/src/injected-js/injected-logger.js +0 -50
  74. package/src/injected-js/main.js +0 -49
  75. package/src/injected-js/message-metadata-holder.js +0 -103
  76. package/src/injected-js/setup-data-exposer.js +0 -135
  77. package/src/injected-js/setup-error-silencer.js +0 -15
  78. package/src/injected-js/setup-event-reemitter.js +0 -47
  79. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  80. package/src/injected-js/setupInboxCustomViewLinkFixer.js +0 -24
  81. package/src/injected-js/setupPushStateListener.js +0 -14
  82. package/src/injected-js/xhr-helper.js +0 -43
  83. package/src/injected-js/xhr-proxy-factory.js +0 -537
  84. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  85. package/src/platform-implementation-js/constants/router.js +0 -60
  86. package/src/platform-implementation-js/constants/toolbars.js +0 -5
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +0 -158
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -20
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -38
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -14
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +0 -60
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +0 -47
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +0 -31
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -22
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -18
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +0 -57
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -40
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -55
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -14
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +0 -177
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +0 -17
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +0 -49
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +0 -18
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +0 -138
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +0 -112
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +0 -152
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +0 -21
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +0 -48
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +0 -357
  116. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +0 -19
  117. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +0 -36
  118. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +0 -36
  119. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +0 -85
  120. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +0 -142
  121. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +0 -115
  122. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +0 -50
  123. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -723
  124. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  125. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  126. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -264
  127. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -201
  128. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -532
  129. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -300
  130. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  131. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -92
  132. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  133. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -129
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +0 -80
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +0 -23
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +0 -26
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +0 -16
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +0 -723
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +0 -24
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +0 -172
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +0 -106
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +0 -338
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +0 -22
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +0 -720
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +0 -135
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +0 -50
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +0 -65
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +0 -66
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +0 -10
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +0 -14
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +0 -13
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +0 -60
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +0 -54
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +0 -98
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +0 -13
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +0 -18
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +0 -16
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +0 -23
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +0 -19
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +0 -355
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +0 -21
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +0 -63
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +0 -19
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +0 -123
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +0 -16
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +0 -1542
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -4
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +0 -75
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +0 -737
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -763
  180. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +0 -103
  181. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +0 -508
  182. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +0 -236
  183. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  184. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +0 -986
  185. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +0 -26
  186. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +0 -658
  187. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +0 -459
  188. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +0 -265
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -61
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -58
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +0 -23
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -101
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  196. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  197. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +0 -42
  198. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  199. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +0 -112
  200. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +0 -122
  201. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +0 -194
  202. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +0 -352
  203. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +0 -76
  204. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +0 -57
  205. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +0 -291
  206. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +0 -28
  207. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +0 -46
  208. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  209. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +0 -17
  210. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +0 -44
  211. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  212. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +0 -18
  213. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  214. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +0 -13
  215. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  216. package/src/platform-implementation-js/driver-common/inboxAjax.js +0 -5
  217. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  218. package/src/platform-implementation-js/driver-common/requestGmailThread.js +0 -24
  219. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +0 -245
  220. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +0 -144
  221. package/src/platform-implementation-js/driver-common/sidebar/constants.js +0 -26
  222. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  223. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +0 -1
  224. package/src/platform-implementation-js/driver-interfaces/driver.js +0 -1
  225. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +0 -1
  226. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +0 -1
  227. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  228. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  229. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  230. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  231. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  232. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +0 -35
  233. package/src/platform-implementation-js/lib/css-selector-escape.js +0 -6
  234. package/src/platform-implementation-js/lib/delay-asap.js +0 -10
  235. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  236. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  237. package/src/platform-implementation-js/lib/dom/custom-events.js +0 -5
  238. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +0 -9
  239. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  240. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  241. package/src/platform-implementation-js/lib/dom/get-selection.js +0 -30
  242. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  243. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +0 -83
  244. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +0 -12
  245. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  246. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  247. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -27
  248. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  249. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  250. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  251. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +0 -8
  252. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -38
  253. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  254. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  255. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  256. package/src/platform-implementation-js/lib/dom/set-css.js +0 -20
  257. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +0 -88
  258. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  259. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  260. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  261. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  262. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  263. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  264. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  265. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +0 -124
  266. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  267. package/src/platform-implementation-js/lib/idMap.js +0 -40
  268. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  269. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  270. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -13
  271. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  272. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +0 -44
  273. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  274. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  275. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  276. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  277. package/src/platform-implementation-js/lib/logger.js +0 -439
  278. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +0 -10
  279. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  280. package/src/platform-implementation-js/lib/populateRouteID.js +0 -17
  281. package/src/platform-implementation-js/lib/react/ElementContainer.js +0 -26
  282. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +0 -8
  283. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -16
  284. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  285. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  286. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +0 -12
  287. package/src/platform-implementation-js/lib/toLiveSet.js +0 -22
  288. package/src/platform-implementation-js/lib/wait-for.js +0 -38
  289. package/src/platform-implementation-js/lib/waitForAsync.js +0 -18
  290. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +0 -5
  291. package/src/platform-implementation-js/main.js +0 -42
  292. package/src/platform-implementation-js/namespaces/app-menu.js +0 -81
  293. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  294. package/src/platform-implementation-js/namespaces/compose.js +0 -59
  295. package/src/platform-implementation-js/namespaces/conversations.js +0 -83
  296. package/src/platform-implementation-js/namespaces/global.js +0 -30
  297. package/src/platform-implementation-js/namespaces/keyboard.js +0 -30
  298. package/src/platform-implementation-js/namespaces/lists.js +0 -40
  299. package/src/platform-implementation-js/namespaces/modal.js +0 -43
  300. package/src/platform-implementation-js/namespaces/nav-menu.js +0 -33
  301. package/src/platform-implementation-js/namespaces/router.js +0 -139
  302. package/src/platform-implementation-js/namespaces/search.js +0 -29
  303. package/src/platform-implementation-js/namespaces/toolbars.js +0 -147
  304. package/src/platform-implementation-js/namespaces/user.js +0 -57
  305. package/src/platform-implementation-js/namespaces/widgets.js +0 -73
  306. package/src/platform-implementation-js/platform-implementation.js +0 -178
  307. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  308. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -442
  309. package/src/platform-implementation-js/views/app-toolbar-button-view.js +0 -43
  310. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -256
  311. package/src/platform-implementation-js/views/collapsible-section-view.js +0 -63
  312. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  313. package/src/platform-implementation-js/views/compose-view.js +0 -310
  314. package/src/platform-implementation-js/views/content-panel-view.js +0 -36
  315. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +0 -41
  316. package/src/platform-implementation-js/views/conversations/custom-message-view.js +0 -117
  317. package/src/platform-implementation-js/views/conversations/message-view.js +0 -203
  318. package/src/platform-implementation-js/views/conversations/thread-view.js +0 -97
  319. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  320. package/src/platform-implementation-js/views/native-nav-item-view.js +0 -60
  321. package/src/platform-implementation-js/views/nav-item-view.js +0 -130
  322. package/src/platform-implementation-js/views/route-view/custom-route-view.js +0 -25
  323. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +0 -29
  324. package/src/platform-implementation-js/views/route-view/list-route-view.js +0 -46
  325. package/src/platform-implementation-js/views/route-view/route-view.js +0 -47
  326. package/src/platform-implementation-js/views/section-view.js +0 -60
  327. package/src/platform-implementation-js/views/thread-row-view.js +0 -90
  328. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  329. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  330. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -121
  331. package/src/platform-implementation-js/widgets/drawer-view.js +0 -46
  332. package/src/platform-implementation-js/widgets/modal-view.js +0 -108
  333. package/src/platform-implementation-js/widgets/mole-view.js +0 -38
  334. package/src/platform-implementation-js/widgets/top-message-bar-view.js +0 -15
@@ -1,723 +0,0 @@
1
- import toValueObservable from 'live-set/toValueObservable';
2
- import t from 'transducers.js';
3
- import * as Kefir from 'kefir';
4
- import kefirStopper from 'kefir-stopper';
5
- import kefirBus from 'kefir-bus';
6
- import includes from 'lodash/includes';
7
- import get from '../../../common/get-or-fail';
8
- import showAppIdWarning from './gmail-driver/show-app-id-warning';
9
- import makePageParserTree from './makePageParserTree';
10
- import GmailElementGetter from './gmail-element-getter';
11
- import makeXhrInterceptor from './make-xhr-interceptor';
12
- import GmailBackdrop from './views/gmail-backdrop';
13
- import { removeAllThreadRowUnclaimedModifications } from './views/gmail-thread-row-view';
14
- import GmailTopMessageBarDriver from './widgets/gmail-top-message-bar-driver';
15
- import GmailModalViewDriver from './widgets/gmail-modal-view-driver';
16
- import GmailMoleViewDriver from './widgets/gmail-mole-view-driver';
17
- import InboxDrawerView from '../inbox/views/inbox-drawer-view';
18
- import GmailRouteProcessor from './views/gmail-route-view/gmail-route-processor';
19
- import KeyboardShortcutHelpModifier from './gmail-driver/keyboard-shortcut-help-modifier';
20
- import openDraftByMessageID from './gmail-driver/open-draft-by-message-id';
21
- import UserInfo from './gmail-driver/user-info';
22
- import GmailButterBarDriver from './gmail-butter-bar-driver';
23
- import trackGmailStyles from './gmail-driver/track-gmail-styles';
24
- import temporaryTrackDownloadUrlValidity from './gmail-driver/temporary-track-download-url-validity';
25
- import getGmailThreadIdForRfcMessageId from '../../driver-common/getGmailThreadIdForRfcMessageId';
26
- import getRfcMessageIdForGmailThreadId from './gmail-driver/get-rfc-message-id-for-gmail-thread-id';
27
- import getGmailMessageIdForSyncMessageId from '../../driver-common/getGmailMessageIdForSyncMessageId';
28
- import BiMapCache from 'bimapcache';
29
- import getDraftIDForMessageID from './gmail-driver/get-draft-id-for-message-id';
30
- import addNavItem from './gmail-driver/add-nav-item';
31
- import { addAppMenuItem } from './gmail-driver/add-app-menu-item';
32
- import addSupportItem from './gmail-driver/add-support-item';
33
- import gotoView from './gmail-driver/goto-view';
34
- import showCustomThreadList from './gmail-driver/show-custom-thread-list';
35
- import showCustomRouteView from './gmail-driver/show-custom-route-view';
36
- import showNativeRouteView from './gmail-driver/show-native-route-view';
37
- import registerSearchSuggestionsProvider from './gmail-driver/register-search-suggestions-provider';
38
- import setupComposeViewDriverStream from './gmail-driver/setup-compose-view-driver-stream';
39
- import trackEvents from './gmail-driver/track-events';
40
- import gmailLoadEvent from './gmail-driver/gmail-load-event';
41
- import ThreadRowIdentifier from './gmail-driver/thread-row-identifier';
42
- import overrideGmailBackButton from './gmail-driver/override-gmail-back-button';
43
- import addToolbarButtonForApp from './gmail-driver/add-toolbar-button-for-app';
44
- import setupRouteViewDriverStream from './gmail-driver/setup-route-view-driver-stream';
45
- import getNativeNavItem from './gmail-driver/get-native-nav-item';
46
- import createLink from './gmail-driver/create-link';
47
- import registerSearchQueryRewriter from './gmail-driver/register-search-query-rewriter';
48
- import openComposeWindow from './gmail-driver/open-compose-window';
49
- import GmailAppSidebarView from './views/gmail-app-sidebar-view';
50
- import suppressAddon from './gmail-driver/suppressAddon';
51
- import getSyncThreadFromSyncThreadId from './gmail-driver/getSyncThreadFromSyncThreadId';
52
- import getSyncThreadForOldGmailThreadId from './gmail-driver/getSyncThreadForOldGmailThreadId';
53
- import toItemWithLifetimeStream from '../../lib/toItemWithLifetimeStream';
54
- import toLiveSet from '../../lib/toLiveSet';
55
- import waitFor from '../../lib/stream-wait-for';
56
- class GmailDriver {
57
- _appId;
58
- _logger;
59
- _opts;
60
- _envData;
61
- _customRouteIDs = new Set();
62
- _customListRouteIDs = new Map();
63
- _customListSearchStringsToRouteIds = new Map();
64
- _messageIDsToThreadIDs = new Map();
65
- _threadRowIdentifier;
66
- _gmailRouteProcessor;
67
- _keyboardShortcutHelpModifier;
68
- onready;
69
- _page;
70
- _pageCommunicator;
71
- _pageCommunicatorPromise;
72
- _butterBar;
73
- _butterBarDriver;
74
- _routeViewDriverStream;
75
- _rowListViewDriverStream;
76
- _threadRowViewDriverKefirStream;
77
- _threadViewDriverLiveSet;
78
- _toolbarViewDriverLiveSet;
79
- _composeViewDriverStream;
80
- _xhrInterceptorStream;
81
- _messageViewDriverStream;
82
- _stopper = kefirStopper();
83
- _navMarkerHiddenChanged = kefirBus();
84
- _addonSidebarHiddenChanged = kefirBus();
85
- _userInfo;
86
- _timestampAccountSwitcherReady;
87
- _timestampGlobalsFound;
88
- _timestampOnready;
89
- _lastCustomThreadListActivity;
90
- _currentRouteViewDriver;
91
- _appSidebarView = null;
92
- getGmailThreadIdForRfcMessageId;
93
- getRfcMessageIdForGmailThreadId;
94
- getSyncThreadIdForOldGmailThreadId;
95
- getOldGmailThreadIdFromSyncThreadId;
96
- removeCachedOldGmailThreadIdFromSyncThreadId;
97
- getGmailMessageIdForSyncDraftId;
98
- getGmailMessageIdForSyncMessageId;
99
- removeCachedGmailMessageIdForSyncMessageId;
100
- constructor(appId, LOADER_VERSION, IMPL_VERSION, logger, opts, envData) {
101
- this._appId = appId;
102
- this._logger = logger;
103
- this._opts = opts;
104
- this._envData = envData;
105
- this._page = makePageParserTree(this, document);
106
- this._stopper.onValue(() => this._page.dump());
107
- // Manages the mapping between RFC Message Ids and Gmail Message Ids. Caches to
108
- // localStorage. Used for custom thread lists.
109
- {
110
- const rfcIdCache = new BiMapCache({
111
- key: 'inboxsdk__cached_thread_ids',
112
- getAfromB: (gmailThreadId) => getRfcMessageIdForGmailThreadId(this, gmailThreadId),
113
- getBfromA: (rfcMessageId) => getGmailThreadIdForRfcMessageId(this, rfcMessageId),
114
- });
115
- this.getGmailThreadIdForRfcMessageId = (rfcMessageId) => rfcIdCache.getBfromA(rfcMessageId);
116
- this.getRfcMessageIdForGmailThreadId = (gmailThreadId) => rfcIdCache.getAfromB(gmailThreadId);
117
- }
118
- // Manages mapping between old hex thread ids and new sync based thread ids
119
- {
120
- const syncThreadIdToOldGmailThreadIdCache = new BiMapCache({
121
- key: 'inboxsdk__cached_sync_thread_id_old_gmail_thread_id',
122
- getAfromB: (oldGmailThreadId) => {
123
- return getSyncThreadForOldGmailThreadId(this, oldGmailThreadId).then(({ syncThreadID }) => syncThreadID);
124
- },
125
- getBfromA: (syncThreadID) => {
126
- return getSyncThreadFromSyncThreadId(this, syncThreadID).then((syncThread) => {
127
- if (syncThread)
128
- return syncThread.oldGmailThreadID;
129
- else
130
- throw new Error('syncThread not found');
131
- });
132
- },
133
- });
134
- this.getSyncThreadIdForOldGmailThreadId = (oldGmailThreadId) => syncThreadIdToOldGmailThreadIdCache.getAfromB(oldGmailThreadId);
135
- this.getOldGmailThreadIdFromSyncThreadId = (syncThreadId) => syncThreadIdToOldGmailThreadIdCache.getBfromA(syncThreadId);
136
- this.removeCachedOldGmailThreadIdFromSyncThreadId = (syncThreadId) => syncThreadIdToOldGmailThreadIdCache.removeAfromCache(syncThreadId);
137
- }
138
- // mapping between sync message ids and old message ids
139
- {
140
- try {
141
- // TODO remove sometime after March 24 2019 to give time for this to
142
- // run for most users.
143
- localStorage.removeItem('inboxsdk__cached_gmail_and_inbox_message_ids_2');
144
- }
145
- catch (err) {
146
- console.error(err);
147
- }
148
- const gmailMessageIdForSyncMessageIdCache = new BiMapCache({
149
- key: 'inboxsdk__cached_gmail_and_inbox_message_ids_3',
150
- getAfromB: (sync) => getGmailMessageIdForSyncMessageId(this, sync),
151
- getBfromA() {
152
- throw new Error('should not happen');
153
- },
154
- });
155
- this.getGmailMessageIdForSyncMessageId = (syncMessageId) => gmailMessageIdForSyncMessageIdCache.getAfromB(syncMessageId);
156
- this.removeCachedGmailMessageIdForSyncMessageId = (syncMessageId) => gmailMessageIdForSyncMessageIdCache.removeBfromCache(syncMessageId);
157
- // It's important that this doesn't use the same cache for looking up
158
- // sync message IDs, because the legacy ID of a draft changes when it's
159
- // sent. It doesn't really need to be cached so it's not here.
160
- this.getGmailMessageIdForSyncDraftId = (syncDraftId) => getGmailMessageIdForSyncMessageId(this, syncDraftId);
161
- }
162
- this._gmailRouteProcessor = new GmailRouteProcessor();
163
- this._keyboardShortcutHelpModifier = new KeyboardShortcutHelpModifier();
164
- this._butterBarDriver = new GmailButterBarDriver();
165
- Kefir.later(45 * 1000, undefined)
166
- .takeUntilBy(toItemWithLifetimeStream(this._page.tree.getAllByTag('supportMenu')))
167
- .onValue(() => {
168
- this._logger.errorSite(new Error('Failed to find gmail supportMenu'));
169
- });
170
- this._setupEventStreams();
171
- this.onready
172
- .then(() => {
173
- trackEvents(this);
174
- gmailLoadEvent(this);
175
- overrideGmailBackButton(this, this._gmailRouteProcessor);
176
- trackGmailStyles();
177
- temporaryTrackDownloadUrlValidity(this);
178
- if (opts.suppressAddonTitle != null) {
179
- suppressAddon(this, opts.suppressAddonTitle);
180
- }
181
- })
182
- .catch((err) => {
183
- this._logger.error(err);
184
- });
185
- }
186
- destroy() {
187
- this._threadRowViewSelectionChanges.end();
188
- this._keyboardShortcutHelpModifier.destroy();
189
- this._stopper.destroy();
190
- removeAllThreadRowUnclaimedModifications();
191
- }
192
- getAppId() {
193
- return this._appId;
194
- }
195
- getOpts() {
196
- return this._opts;
197
- }
198
- getPageCommunicator() {
199
- return this._pageCommunicator;
200
- }
201
- getPageCommunicatorPromise() {
202
- return this._pageCommunicatorPromise;
203
- }
204
- getLogger() {
205
- return this._logger;
206
- }
207
- getTagTree() {
208
- return this._page.tree;
209
- }
210
- getCustomListSearchStringsToRouteIds() {
211
- return this._customListSearchStringsToRouteIds;
212
- }
213
- getThreadRowIdentifier() {
214
- return this._threadRowIdentifier;
215
- }
216
- getButterBarDriver() {
217
- return this._butterBarDriver;
218
- }
219
- getButterBar() {
220
- return this._butterBar;
221
- }
222
- setButterBar(bb) {
223
- this._butterBar = bb;
224
- }
225
- getCustomRouteIDs() {
226
- return this._customRouteIDs;
227
- }
228
- getCustomListRouteIDs() {
229
- return this._customListRouteIDs;
230
- }
231
- getKeyboardShortcutHelpModifier() {
232
- return this._keyboardShortcutHelpModifier;
233
- }
234
- getRouteViewDriverStream() {
235
- return this._routeViewDriverStream;
236
- }
237
- getRowListViewDriverStream() {
238
- return this._rowListViewDriverStream;
239
- }
240
- getThreadRowViewDriverStream() {
241
- return this._threadRowViewDriverKefirStream;
242
- }
243
- getThreadViewDriverStream() {
244
- return toItemWithLifetimeStream(this._threadViewDriverLiveSet).map(({ el }) => el);
245
- }
246
- getAttachmentCardViewDriverStream() {
247
- return this._messageViewDriverStream
248
- .flatMap((messageViewDriver) => messageViewDriver.isLoaded()
249
- ? Kefir.constant(messageViewDriver)
250
- : messageViewDriver
251
- .getEventStream()
252
- .filter((event) => event.eventName === 'messageLoad')
253
- .map(() => messageViewDriver)
254
- .take(1))
255
- .map((messageView) => messageView.getAttachmentCardViewDrivers())
256
- .flatten();
257
- }
258
- getComposeViewDriverStream() {
259
- return this._composeViewDriverStream;
260
- }
261
- getXhrInterceptorStream() {
262
- return this._xhrInterceptorStream;
263
- }
264
- getMessageViewDriverStream() {
265
- return this._messageViewDriverStream;
266
- }
267
- getStopper() {
268
- return this._stopper;
269
- }
270
- getEnvData() {
271
- return this._envData;
272
- }
273
- getTimestampOnReady() {
274
- if (this._timestampOnready == null) {
275
- this._logger.error(new Error('getTimestampOnReady called before ready'));
276
- return Date.now();
277
- }
278
- return this._timestampOnready;
279
- }
280
- // Returns a stream that emits an event once at least `time` milliseconds has
281
- // passed since the GmailDriver's ready event.
282
- delayToTimeAfterReady(time) {
283
- const targetTime = this.getTimestampOnReady() + time;
284
- const timeToWait = Math.max(0, targetTime - Date.now());
285
- return Kefir.later(timeToWait, undefined);
286
- }
287
- getTimings() {
288
- return {
289
- piMainStarted: this._envData.piMainStarted,
290
- piLoadStarted: this._envData.piLoadStarted,
291
- globalsFound: this._timestampGlobalsFound,
292
- accountSwitcherReady: this._timestampAccountSwitcherReady,
293
- onready: this._timestampOnready,
294
- };
295
- }
296
- registerThreadButton(options) {
297
- const unregister = kefirStopper();
298
- const removeButtonOnUnregister = (button) => {
299
- unregister.takeUntilBy(button.getStopper()).onValue(() => {
300
- button.destroy();
301
- });
302
- };
303
- const toolbarViewSub = toValueObservable(this._toolbarViewDriverLiveSet).subscribe(({ value: gmailToolbarView }) => {
304
- if (gmailToolbarView.isForThread()) {
305
- if (!options.positions || includes(options.positions, 'THREAD')) {
306
- removeButtonOnUnregister(gmailToolbarView.addButton({
307
- ...options,
308
- section: options.threadSection || 'METADATA_STATE',
309
- onClick: (event) => {
310
- options.onClick({
311
- position: 'THREAD',
312
- dropdown: event.dropdown,
313
- selectedThreadViewDrivers: [
314
- gmailToolbarView.getThreadViewDriver(),
315
- ],
316
- selectedThreadRowViewDrivers: [],
317
- });
318
- },
319
- }));
320
- }
321
- }
322
- else if (gmailToolbarView.isForRowList()) {
323
- if (!options.positions || includes(options.positions, 'LIST')) {
324
- removeButtonOnUnregister(gmailToolbarView.addButton({
325
- ...options,
326
- section: options.listSection || 'METADATA_STATE',
327
- onClick: (event) => {
328
- const selectedThreadRowViewDrivers = Array.from(gmailToolbarView.getThreadRowViewDrivers()).filter((gmailThreadRow) => gmailThreadRow.isSelected());
329
- options.onClick({
330
- position: 'LIST',
331
- dropdown: event.dropdown,
332
- selectedThreadViewDrivers: [],
333
- selectedThreadRowViewDrivers,
334
- });
335
- },
336
- }));
337
- }
338
- }
339
- });
340
- unregister.onValue(() => {
341
- toolbarViewSub.unsubscribe();
342
- });
343
- if (!options.positions || includes(options.positions, 'ROW')) {
344
- const perThreadRow = (gmailThreadRow) => {
345
- gmailThreadRow.addButton(Kefir.constant({
346
- hasDropdown: options.hasDropdown,
347
- iconClass: options.iconClass,
348
- iconUrl: options.iconUrl,
349
- orderHint: options.orderHint,
350
- onClick: (event) => {
351
- if (!options.onClick)
352
- return;
353
- options.onClick({
354
- position: 'ROW',
355
- dropdown: event.dropdown,
356
- selectedThreadViewDrivers: [],
357
- selectedThreadRowViewDrivers: [gmailThreadRow],
358
- });
359
- },
360
- }).merge(unregister));
361
- };
362
- if (this._currentRouteViewDriver) {
363
- this._currentRouteViewDriver
364
- .getRowListViews()
365
- .forEach((gmailRowListView) => {
366
- gmailRowListView.getThreadRowViewDrivers().forEach(perThreadRow);
367
- });
368
- }
369
- const threadRowViewSub = this._threadRowViewDriverKefirStream.observe({
370
- value: perThreadRow,
371
- });
372
- unregister.onValue(() => {
373
- threadRowViewSub.unsubscribe();
374
- });
375
- }
376
- return () => {
377
- unregister.destroy();
378
- };
379
- }
380
- hashChangeNoViewChange(hash) {
381
- if (hash[0] !== '#') {
382
- throw new Error('bad hash');
383
- }
384
- window.history.replaceState(null, null, hash);
385
- var hce = new window.HashChangeEvent('hashchange', {
386
- oldURL: document.location.href.replace(/#.*$/, '') + '#inboxsdk-fake-no-vc',
387
- newURL: document.location.href.replace(/#.*$/, '') + hash,
388
- });
389
- window.dispatchEvent(hce);
390
- }
391
- addCustomRouteID(routeID) {
392
- this._customRouteIDs.add(routeID);
393
- this._pageCommunicator.registerAllowedHashLinkStartTerm(routeID.split('/')[0]);
394
- return () => {
395
- this._customRouteIDs.delete(routeID);
396
- };
397
- }
398
- addCustomListRouteID(routeID, handler) {
399
- this._customListRouteIDs.set(routeID, handler);
400
- this._pageCommunicator.registerAllowedHashLinkStartTerm(routeID.split('/')[0]);
401
- return () => {
402
- this._customListRouteIDs.delete(routeID);
403
- };
404
- }
405
- signalCustomThreadListActivity(customRouteID) {
406
- this._lastCustomThreadListActivity = {
407
- customRouteID,
408
- timestamp: new Date(),
409
- };
410
- }
411
- // Returns the last time a request for a custom thread list search has gone
412
- // out or we got a response, and the customRouteID for that.
413
- getLastCustomThreadListActivity() {
414
- return this._lastCustomThreadListActivity;
415
- }
416
- showCustomThreadList(customRouteID, onActivate, params) {
417
- showCustomThreadList(this, customRouteID, onActivate, params);
418
- }
419
- showCustomRouteView(element) {
420
- showCustomRouteView(this, element);
421
- }
422
- showNativeRouteView() {
423
- showNativeRouteView(this);
424
- }
425
- createLink(routeID, params) {
426
- return createLink(this._gmailRouteProcessor, routeID, params);
427
- }
428
- goto(routeID, params) {
429
- return gotoView(this, routeID, params);
430
- }
431
- resolveUrlRedirects(url) {
432
- return this._pageCommunicatorPromise.then((pageCommunicator) => pageCommunicator.resolveUrlRedirects(url));
433
- }
434
- registerSearchSuggestionsProvider(handler) {
435
- registerSearchSuggestionsProvider(this, handler);
436
- }
437
- registerSearchQueryRewriter(obj) {
438
- registerSearchQueryRewriter(this._pageCommunicator, obj);
439
- }
440
- addToolbarButtonForApp(buttonDescriptor) {
441
- return addToolbarButtonForApp(this, buttonDescriptor);
442
- }
443
- async openNewComposeViewDriver() {
444
- try {
445
- const composeViewDriverPromise = this.getNextComposeViewDriver();
446
- await openComposeWindow(this);
447
- const composeViewDriver = await composeViewDriverPromise;
448
- return composeViewDriver;
449
- }
450
- catch (err) {
451
- this._logger.error(err);
452
- throw err;
453
- }
454
- }
455
- getNextComposeViewDriver(timeout = 10 * 1000) {
456
- return this._composeViewDriverStream
457
- .merge(Kefir.later(timeout, new Error('Reached timeout while waiting for getNextComposeViewDriver')))
458
- .beforeEnd(() => new Error('Driver was shut down before a new compose was found'))
459
- .flatMap((x) => x instanceof Error ? Kefir.constantError(x) : Kefir.constant(x))
460
- .take(1)
461
- .takeErrors(1)
462
- .toPromise();
463
- }
464
- openDraftByMessageID(messageID) {
465
- return openDraftByMessageID(this, messageID);
466
- }
467
- createModalViewDriver(options) {
468
- return new GmailModalViewDriver(options);
469
- }
470
- createMoleViewDriver(options) {
471
- return new GmailMoleViewDriver(this, options);
472
- }
473
- createDrawerViewDriver(options) {
474
- return new InboxDrawerView(options);
475
- }
476
- createBackdrop(zIndex, target) {
477
- return new GmailBackdrop(zIndex, target);
478
- }
479
- addNavItem(appId, navItemDescriptorPropertyStream, navMenuInjectionContainer) {
480
- return addNavItem(this, appId, navItemDescriptorPropertyStream, navMenuInjectionContainer);
481
- }
482
- addAppMenuItem(menuItemDescriptor) {
483
- return addAppMenuItem(this, menuItemDescriptor);
484
- }
485
- addSupportItem(supportItemDescriptor) {
486
- return addSupportItem(this, supportItemDescriptor);
487
- }
488
- getSentMailNativeNavItem() {
489
- const p = getNativeNavItem(this, 'sent');
490
- p.catch((err) => this._logger.error(err));
491
- return p;
492
- }
493
- setShowNativeNavMarker(isNative) {
494
- this._navMarkerHiddenChanged.emit(null);
495
- const leftNavContainerElement = GmailElementGetter.getLeftNavContainerElement();
496
- if (leftNavContainerElement) {
497
- if (isNative) {
498
- leftNavContainerElement.classList.remove('inboxsdk__hide_native_marker');
499
- }
500
- else {
501
- leftNavContainerElement.classList.add('inboxsdk__hide_native_marker');
502
- this._stopper.takeUntilBy(this._navMarkerHiddenChanged).onValue(() => {
503
- leftNavContainerElement.classList.remove('inboxsdk__hide_native_marker');
504
- });
505
- }
506
- }
507
- }
508
- setShowNativeAddonSidebar(isNative) {
509
- this._addonSidebarHiddenChanged.emit(null);
510
- const addonContainerElement = GmailElementGetter.getAddonSidebarContainerElement();
511
- const mainContentBodyContainerElement = GmailElementGetter.getMainContentBodyContainerElement();
512
- if (addonContainerElement && mainContentBodyContainerElement) {
513
- const parent = mainContentBodyContainerElement.parentElement;
514
- if (!parent)
515
- return;
516
- if (isNative) {
517
- parent.classList.remove('inboxsdk__hide_addon_container');
518
- }
519
- else {
520
- parent.classList.add('inboxsdk__hide_addon_container');
521
- this._stopper
522
- .takeUntilBy(this._addonSidebarHiddenChanged)
523
- .onValue(() => {
524
- parent.classList.remove('inboxsdk__hide_addon_container');
525
- });
526
- }
527
- }
528
- }
529
- async getGmailActionToken() {
530
- return this._pageCommunicator.getActionTokenValue();
531
- }
532
- getUserEmailAddress() {
533
- return this._pageCommunicator.getUserEmailAddress();
534
- }
535
- isConversationViewDisabled() {
536
- return this._pageCommunicator.isConversationViewDisabled();
537
- }
538
- getUserLanguage() {
539
- return this._pageCommunicator.getUserLanguage();
540
- }
541
- getUserContact() {
542
- return {
543
- emailAddress: this.getUserEmailAddress(),
544
- name: this._userInfo.getUserName(),
545
- };
546
- }
547
- getAccountSwitcherContactList() {
548
- return this._userInfo.getAccountSwitcherContactList();
549
- }
550
- activateShortcut(keyboardShortcutHandle, appName, appIconUrl) {
551
- this.getKeyboardShortcutHelpModifier().set(keyboardShortcutHandle, this._appId, appName, appIconUrl);
552
- keyboardShortcutHandle.once('destroy', () => {
553
- this.getKeyboardShortcutHelpModifier().delete(keyboardShortcutHandle);
554
- });
555
- }
556
- _setupEventStreams() {
557
- var result = makeXhrInterceptor();
558
- this._xhrInterceptorStream = result.xhrInterceptStream.takeUntilBy(this._stopper);
559
- this._pageCommunicatorPromise = result.pageCommunicatorPromise;
560
- this.onready = this._pageCommunicatorPromise.then((pageCommunicator) => {
561
- this._timestampGlobalsFound = Date.now();
562
- this._pageCommunicator = pageCommunicator;
563
- this._logger.setUserEmailAddress(this.getUserEmailAddress());
564
- this._logger.setIsUsingSyncAPI(pageCommunicator.isUsingSyncAPI());
565
- this._userInfo = new UserInfo(this);
566
- this._timestampAccountSwitcherReady = Date.now();
567
- this._routeViewDriverStream = setupRouteViewDriverStream(this._gmailRouteProcessor, this)
568
- .takeUntilBy(this._stopper)
569
- .toProperty();
570
- this._routeViewDriverStream.onValue((gmailRouteView) => {
571
- this._currentRouteViewDriver = gmailRouteView;
572
- });
573
- this._rowListViewDriverStream = this._setupRouteSubViewDriver('newGmailRowListView').takeUntilBy(this._stopper);
574
- this._setupThreadRowViewDriverKefirStream();
575
- this._threadViewDriverLiveSet = toLiveSet(this._setupRouteSubViewDriver('newGmailThreadView')
576
- .takeUntilBy(this._stopper)
577
- .flatMap((gmailThreadView) => gmailThreadView.getReadyStream().map(() => gmailThreadView))
578
- .map((gmailThreadView) => ({
579
- el: gmailThreadView,
580
- removalStream: gmailThreadView.getStopper(),
581
- })));
582
- this._setupToolbarViewDriverStream();
583
- this._setupMessageViewDriverStream();
584
- this._setupComposeViewDriverStream();
585
- this._threadRowIdentifier = new ThreadRowIdentifier(this);
586
- this._timestampOnready = Date.now();
587
- });
588
- }
589
- _setupComposeViewDriverStream() {
590
- this._composeViewDriverStream = setupComposeViewDriverStream(this, this._messageViewDriverStream, this._xhrInterceptorStream).takeUntilBy(this._stopper);
591
- }
592
- _setupRouteSubViewDriver(viewName) {
593
- return this._routeViewDriverStream.flatMap((gmailRouteView) => {
594
- return gmailRouteView
595
- .getEventStream()
596
- .filter((event) => event.eventName === viewName)
597
- .map((event) => event.view);
598
- });
599
- }
600
- _setupThreadRowViewDriverKefirStream() {
601
- this._threadRowViewDriverKefirStream = this._rowListViewDriverStream
602
- .flatMap((rowListViewDriver) => rowListViewDriver.getRowViewDriverStream())
603
- .takeUntilBy(this._stopper);
604
- }
605
- _setupToolbarViewDriverStream() {
606
- this._toolbarViewDriverLiveSet = toLiveSet(Kefir.merge([
607
- this._rowListViewDriverStream.map((gmailRowListView) => gmailRowListView.getToolbarView()),
608
- this.getThreadViewDriverStream().map((gmailThreadView) => gmailThreadView.getToolbarView()),
609
- ])
610
- .filter(Boolean)
611
- .flatMap((gmailToolbarView) => gmailToolbarView.waitForReady())
612
- .map((gmailToolbarView) => ({
613
- el: gmailToolbarView,
614
- removalStream: gmailToolbarView.getStopper(),
615
- }))
616
- .takeUntilBy(this._stopper));
617
- this._toolbarViewDriverLiveSet.subscribe({});
618
- }
619
- _setupMessageViewDriverStream() {
620
- this._messageViewDriverStream = this.getThreadViewDriverStream()
621
- .flatMap((gmailThreadView) => gmailThreadView.getMessageViewDriverStream())
622
- .takeUntilBy(this._stopper);
623
- }
624
- async addGlobalSidebarContentPanel(descriptor) {
625
- await this.waitForGlobalSidebarReady()
626
- .merge(this._stopper.flatMap(() => Kefir.constantError(new Error('Driver instance was destroyed early'))))
627
- .take(1)
628
- .takeErrors(1)
629
- .toPromise();
630
- const appSidebar = this.getGlobalSidebar();
631
- return appSidebar.addGlobalSidebarContentPanel(descriptor);
632
- }
633
- waitForGlobalSidebarReady() {
634
- const condition = () => GmailElementGetter.getCompanionSidebarContentContainerElement() &&
635
- (GmailElementGetter.getCompanionSidebarIconContainerElement() ||
636
- GmailElementGetter.getAddonSidebarContainerElement());
637
- if (condition()) {
638
- return Kefir.constant(undefined);
639
- }
640
- return waitFor(condition).map(() => undefined);
641
- }
642
- getGlobalSidebar() {
643
- let appSidebarView = this._appSidebarView;
644
- if (!appSidebarView) {
645
- const companionSidebarContentContainerEl = GmailElementGetter.getCompanionSidebarContentContainerElement();
646
- if (!companionSidebarContentContainerEl)
647
- throw new Error('did not find companionSidebarContentContainerEl');
648
- appSidebarView = this._appSidebarView = new GmailAppSidebarView(this, companionSidebarContentContainerEl);
649
- }
650
- return appSidebarView;
651
- }
652
- isRunningInPageContext() {
653
- return !!(global.GLOBALS && global._GM_main);
654
- }
655
- isUsingSyncAPI() {
656
- return this._pageCommunicator.isUsingSyncAPI();
657
- }
658
- showAppIdWarning() {
659
- showAppIdWarning(this);
660
- }
661
- createTopMessageBarDriver(optionStream) {
662
- return new GmailTopMessageBarDriver(optionStream);
663
- }
664
- associateThreadAndMessageIDs(threadID, messageID) {
665
- this._messageIDsToThreadIDs.set(messageID, threadID);
666
- }
667
- getThreadIDForMessageID(messageID) {
668
- return get(this._messageIDsToThreadIDs, messageID);
669
- }
670
- getDraftIDForMessageID(messageID, skipCache = false) {
671
- return getDraftIDForMessageID(this, messageID, skipCache);
672
- }
673
- _recentSyncDraftIds = new Map();
674
- reportRecentSyncDraftId(syncDraftId) {
675
- const count = this._recentSyncDraftIds.get(syncDraftId);
676
- const newCount = (count ?? 0) + 1;
677
- this._recentSyncDraftIds.set(syncDraftId, newCount);
678
- }
679
- reportDraftClosed(syncDraftId) {
680
- Kefir.later(30 * 1000, undefined)
681
- .takeUntilBy(this._stopper)
682
- .onValue(() => {
683
- const count = this._recentSyncDraftIds.get(syncDraftId);
684
- let newCount;
685
- if (count == null || count < 1) {
686
- newCount = 0;
687
- this._logger.error(new Error('_recentSyncDraftIds count had unexpected value'), {
688
- count,
689
- });
690
- }
691
- else {
692
- newCount = count - 1;
693
- }
694
- if (newCount === 0) {
695
- this._recentSyncDraftIds.delete(syncDraftId);
696
- }
697
- else {
698
- this._recentSyncDraftIds.set(syncDraftId, newCount);
699
- }
700
- });
701
- }
702
- isRecentSyncDraftId(syncMessageId) {
703
- return this._recentSyncDraftIds.has(syncMessageId);
704
- }
705
- _selectedThreadRows = t.mapcat((gmailRowListView) => gmailRowListView.getSelectedThreadRowViewDrivers());
706
- getSelectedThreadRowViewDrivers() {
707
- if (!this._currentRouteViewDriver) {
708
- return [];
709
- }
710
- return t.toArray(this._currentRouteViewDriver.getRowListViews(), this._selectedThreadRows);
711
- }
712
- _threadRowViewSelectionChanges = kefirBus();
713
- signalThreadRowViewSelectionChange() {
714
- this._threadRowViewSelectionChanges.value(undefined);
715
- }
716
- registerThreadRowViewSelectionHandler(handler) {
717
- this._threadRowViewSelectionChanges.onValue(handler);
718
- return () => {
719
- this._threadRowViewSelectionChanges.offValue(handler);
720
- };
721
- }
722
- }
723
- export default GmailDriver;