@inboxsdk/core 0.2.28 → 0.2.29-alpha.1

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 +62 -28
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +5 -1
  4. package/pageWorld.js.map +1 -1
  5. package/src/build/exec.d.ts +1 -0
  6. package/src/build/exec.d.ts.map +1 -0
  7. package/src/build/exec.js +26 -0
  8. package/src/build/spawn.d.ts +1 -0
  9. package/src/build/spawn.d.ts.map +1 -0
  10. package/src/build/spawn.js +17 -0
  11. package/src/common/ajax.d.ts +1 -0
  12. package/src/common/ajax.d.ts.map +1 -0
  13. package/src/common/ajax.js +90 -0
  14. package/src/common/cachebust-url.d.ts +1 -0
  15. package/src/common/cachebust-url.d.ts.map +1 -0
  16. package/src/common/cachebust-url.js +10 -0
  17. package/src/common/censorHTMLstring.d.ts +1 -0
  18. package/src/common/censorHTMLstring.d.ts.map +1 -0
  19. package/src/common/censorHTMLstring.js +37 -0
  20. package/src/common/censorHTMLtree.d.ts +1 -0
  21. package/src/common/censorHTMLtree.d.ts.map +1 -0
  22. package/src/common/censorHTMLtree.js +28 -0
  23. package/src/common/censorJSONTree.d.ts +1 -0
  24. package/src/common/censorJSONTree.d.ts.map +1 -0
  25. package/src/common/censorJSONTree.js +15 -0
  26. package/src/common/connectivity-test.d.ts +1 -0
  27. package/src/common/connectivity-test.d.ts.map +1 -0
  28. package/src/common/connectivity-test.js +21 -0
  29. package/src/common/defer.d.ts +1 -0
  30. package/src/common/defer.d.ts.map +1 -0
  31. package/src/common/defer.js +11 -0
  32. package/src/common/find-parent.d.ts +1 -0
  33. package/src/common/find-parent.d.ts.map +1 -0
  34. package/src/common/find-parent.js +10 -0
  35. package/src/common/get-extension-id.d.ts +1 -0
  36. package/src/common/get-extension-id.d.ts.map +1 -0
  37. package/src/common/get-extension-id.js +7 -0
  38. package/src/common/get-or-fail.d.ts +1 -0
  39. package/src/common/get-or-fail.d.ts.map +1 -0
  40. package/src/common/get-or-fail.js +8 -0
  41. package/src/common/get-session-id.d.ts +1 -0
  42. package/src/common/get-session-id.d.ts.map +1 -0
  43. package/src/common/get-session-id.js +14 -0
  44. package/src/common/get-stack-trace.d.ts +1 -0
  45. package/src/common/get-stack-trace.d.ts.map +1 -0
  46. package/src/common/get-stack-trace.js +6 -0
  47. package/src/common/html-to-text.d.ts +1 -0
  48. package/src/common/html-to-text.d.ts.map +1 -0
  49. package/src/common/html-to-text.js +7 -0
  50. package/src/common/isElementVisible.d.ts +1 -0
  51. package/src/common/isElementVisible.d.ts.map +1 -0
  52. package/src/common/isElementVisible.js +6 -0
  53. package/src/common/load-script.d.ts +1 -0
  54. package/src/common/load-script.d.ts.map +1 -0
  55. package/src/common/load-script.js +127 -0
  56. package/src/common/log-error.d.ts +1 -0
  57. package/src/common/log-error.d.ts.map +1 -0
  58. package/src/common/log-error.js +191 -0
  59. package/src/common/quoted-split.d.ts +1 -0
  60. package/src/common/quoted-split.d.ts.map +1 -0
  61. package/src/common/quoted-split.js +18 -0
  62. package/src/common/rate-limit-queuer.d.ts +1 -0
  63. package/src/common/rate-limit-queuer.d.ts.map +1 -0
  64. package/src/common/rate-limit-queuer.js +57 -0
  65. package/src/common/rate-limit.d.ts +1 -0
  66. package/src/common/rate-limit.d.ts.map +1 -0
  67. package/src/common/rate-limit.js +14 -0
  68. package/src/common/version.d.ts +1 -0
  69. package/src/common/version.d.ts.map +1 -0
  70. package/src/common/version.js +6 -0
  71. package/src/inboxsdk-js/check-requirements.js +7 -3
  72. package/src/inboxsdk-js/header.js +1 -0
  73. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +5 -6
  74. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -3
  75. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -1
  76. package/src/inboxsdk-js/inboxsdk-TEST.js +4 -3
  77. package/src/inboxsdk-js/inboxsdk.js +33 -39
  78. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +15 -18
  79. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts +1 -0
  80. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +1 -0
  81. package/src/inboxsdk-js/loading/platform-implementation-loader.js +27 -0
  82. package/src/inboxsdk.d.ts +12 -27
  83. package/src/injected-js/gmail/constants.d.ts +1 -0
  84. package/src/injected-js/gmail/constants.d.ts.map +1 -0
  85. package/src/injected-js/gmail/constants.js +2 -0
  86. package/src/injected-js/gmail/modify-suggestions.d.ts +1 -0
  87. package/src/injected-js/gmail/modify-suggestions.d.ts.map +1 -0
  88. package/src/injected-js/gmail/modify-suggestions.js +106 -0
  89. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  90. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  91. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts +1 -0
  92. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts.map +1 -0
  93. package/src/injected-js/gmail/setup-gmonkey-handler.js +49 -0
  94. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts +1 -0
  95. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts.map +1 -0
  96. package/src/injected-js/gmail/sync-compose-processor-20220909.js +298 -0
  97. package/src/injected-js/gmail/sync-compose-processor.d.ts +1 -0
  98. package/src/injected-js/gmail/sync-compose-processor.d.ts.map +1 -0
  99. package/src/injected-js/gmail/sync-compose-processor.js +55 -0
  100. package/src/injected-js/gmail/sync-compose-request-processor.d.ts +1 -0
  101. package/src/injected-js/gmail/sync-compose-request-processor.d.ts.map +1 -0
  102. package/src/injected-js/gmail/sync-compose-request-processor.js +110 -0
  103. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  104. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  105. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  106. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  107. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  108. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  109. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  110. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  111. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  112. package/src/injected-js/injected-logger.d.ts +1 -0
  113. package/src/injected-js/injected-logger.d.ts.map +1 -0
  114. package/src/injected-js/injected-logger.js +50 -0
  115. package/src/injected-js/main.js +11 -24
  116. package/src/injected-js/message-metadata-holder.js +52 -82
  117. package/src/injected-js/setup-data-exposer.js +89 -148
  118. package/src/injected-js/setup-error-silencer.js +21 -21
  119. package/src/injected-js/setup-event-reemitter.js +30 -22
  120. package/src/injected-js/setupCustomViewEventAssassin.d.ts +1 -0
  121. package/src/injected-js/setupCustomViewEventAssassin.d.ts.map +1 -0
  122. package/src/injected-js/setupCustomViewEventAssassin.js +90 -0
  123. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  124. package/src/injected-js/setupPushStateListener.js +18 -11
  125. package/src/injected-js/xhr-helper.js +62 -65
  126. package/src/injected-js/xhr-proxy-factory.js +195 -445
  127. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  128. package/src/platform-implementation-js/constants/nav-item-types.d.ts +1 -0
  129. package/src/platform-implementation-js/constants/nav-item-types.d.ts.map +1 -0
  130. package/src/platform-implementation-js/constants/nav-item-types.js +19 -0
  131. package/src/platform-implementation-js/constants/router.js +22 -9
  132. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  133. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  134. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  135. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts +5 -0
  136. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts.map +1 -0
  137. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +21 -0
  138. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts +5 -0
  139. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts.map +1 -0
  140. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +28 -0
  141. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +3 -2
  142. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -0
  143. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +98 -0
  144. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts +1 -0
  145. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts.map +1 -0
  146. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +4 -0
  147. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  148. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  149. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts +1 -0
  150. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts.map +1 -0
  151. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +8 -0
  152. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  153. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  154. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts +1 -0
  155. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts.map +1 -0
  156. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +12 -0
  157. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts +1 -0
  158. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts.map +1 -0
  159. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +33 -0
  160. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  161. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  162. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  163. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  164. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  165. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +1 -0
  166. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -0
  167. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +4 -0
  168. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  169. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  170. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts +1 -0
  171. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts.map +1 -0
  172. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +44 -0
  173. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  174. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  175. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  176. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  177. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  178. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  179. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  180. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  181. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  182. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  183. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  184. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  185. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  186. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  187. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  188. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  189. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts +2 -0
  190. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts.map +1 -0
  191. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +83 -110
  192. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  193. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  194. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +13 -3
  195. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +355 -683
  196. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts +1 -0
  197. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts.map +1 -0
  198. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +38 -0
  199. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts +1 -0
  200. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts.map +1 -0
  201. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +12 -0
  202. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +4 -0
  203. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -0
  204. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +253 -0
  205. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts +1 -0
  206. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts.map +1 -0
  207. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +200 -0
  208. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts +1 -0
  209. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts.map +1 -0
  210. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +533 -0
  211. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts +1 -0
  212. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts.map +1 -0
  213. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +289 -0
  214. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts +1 -0
  215. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts.map +1 -0
  216. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +21 -0
  217. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  218. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts +1 -0
  219. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts.map +1 -0
  220. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +28 -0
  221. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts +1 -0
  222. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts.map +1 -0
  223. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +19 -0
  224. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts +39 -0
  225. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts.map +1 -0
  226. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +126 -0
  227. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  228. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  229. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  230. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  231. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  232. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  233. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  234. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  235. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  236. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  237. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  238. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  239. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  240. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  241. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  242. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  243. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  244. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  245. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts +1 -0
  246. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts.map +1 -0
  247. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +101 -0
  248. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  249. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts +1 -0
  250. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts.map +1 -0
  251. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +38 -0
  252. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  253. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  254. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  255. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  256. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  257. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  258. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts +1 -0
  259. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts.map +1 -0
  260. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +28 -0
  261. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  262. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  263. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  264. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts +1 -0
  265. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts.map +1 -0
  266. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +22 -0
  267. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  268. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts +1 -0
  269. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts.map +1 -0
  270. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +233 -0
  271. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  272. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  273. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  274. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  275. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts +1 -0
  276. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts.map +1 -0
  277. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +223 -0
  278. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  279. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts +1 -0
  280. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts.map +1 -0
  281. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +157 -0
  282. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts +1 -0
  283. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts.map +1 -0
  284. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +109 -0
  285. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  286. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  287. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  288. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts +1 -0
  289. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts.map +1 -0
  290. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +5 -0
  291. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  292. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  293. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +34 -1
  294. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -0
  295. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +759 -0
  296. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +31 -48
  297. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +221 -378
  298. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  299. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts +1 -0
  300. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts.map +1 -0
  301. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +84 -0
  302. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  303. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  304. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  305. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  306. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  307. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  308. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  309. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  310. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts +1 -0
  311. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts.map +1 -0
  312. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +33 -0
  313. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts +1 -0
  314. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts.map +1 -0
  315. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +325 -0
  316. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts +1 -0
  317. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts.map +1 -0
  318. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +58 -0
  319. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts +1 -0
  320. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts.map +1 -0
  321. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +55 -0
  322. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  323. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts +1 -0
  324. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts.map +1 -0
  325. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +96 -0
  326. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts +1 -0
  327. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts.map +1 -0
  328. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +30 -0
  329. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts +1 -0
  330. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts.map +1 -0
  331. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +10 -0
  332. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  333. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts +1 -0
  334. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts.map +1 -0
  335. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +22 -0
  336. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  337. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  338. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  339. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  340. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  341. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  342. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  343. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  344. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  345. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  346. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  347. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  348. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  349. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  350. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  351. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  352. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  353. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  354. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  355. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  356. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  357. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  358. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  359. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  360. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  361. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  362. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  363. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  364. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +531 -823
  365. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  366. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  367. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  368. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  369. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  370. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  371. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  372. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  373. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  374. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  375. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  376. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  377. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  378. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  379. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  380. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  381. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  382. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  383. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  384. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  385. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  386. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  387. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  388. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  389. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  390. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  391. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  392. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  393. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  394. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  395. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  396. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  397. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  398. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  399. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  400. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  401. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  402. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  403. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts +1 -0
  404. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts.map +1 -0
  405. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +17 -0
  406. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  407. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  408. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts +1 -0
  409. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts.map +1 -0
  410. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +33 -0
  411. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  412. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts +1 -0
  413. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts.map +1 -0
  414. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +49 -0
  415. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  416. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts +1 -0
  417. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts.map +1 -0
  418. package/src/platform-implementation-js/driver-common/gmailAjax.js +65 -0
  419. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  420. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts +1 -0
  421. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts.map +1 -0
  422. package/src/platform-implementation-js/driver-common/render-custom-icon.js +16 -0
  423. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  424. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  425. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  426. package/src/platform-implementation-js/driver-common/update-icon.d.ts +1 -0
  427. package/src/platform-implementation-js/driver-common/update-icon.d.ts.map +1 -0
  428. package/src/platform-implementation-js/driver-common/update-icon.js +90 -0
  429. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  430. package/src/platform-implementation-js/driver-interfaces/driver.d.ts +5 -0
  431. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -126
  432. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  433. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  434. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  435. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  436. package/src/platform-implementation-js/lib/ErrorCollector.d.ts +1 -0
  437. package/src/platform-implementation-js/lib/ErrorCollector.d.ts.map +1 -0
  438. package/src/platform-implementation-js/lib/ErrorCollector.js +47 -0
  439. package/src/platform-implementation-js/lib/Membrane.d.ts +1 -0
  440. package/src/platform-implementation-js/lib/Membrane.d.ts.map +1 -0
  441. package/src/platform-implementation-js/lib/Membrane.js +22 -0
  442. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts +1 -0
  443. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts.map +1 -0
  444. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +30 -0
  445. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  446. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  447. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts +1 -0
  448. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts.map +1 -0
  449. package/src/platform-implementation-js/lib/attemptWithRetries.js +16 -0
  450. package/src/platform-implementation-js/lib/common-page-communicator.d.ts +1 -0
  451. package/src/platform-implementation-js/lib/common-page-communicator.d.ts.map +1 -0
  452. package/src/platform-implementation-js/lib/common-page-communicator.js +137 -0
  453. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  454. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  455. package/src/platform-implementation-js/lib/delay-asap.d.ts +1 -0
  456. package/src/platform-implementation-js/lib/delay-asap.d.ts.map +1 -0
  457. package/src/platform-implementation-js/lib/delay-asap.js +12 -0
  458. package/src/platform-implementation-js/lib/delay-idle.d.ts +1 -0
  459. package/src/platform-implementation-js/lib/delay-idle.d.ts.map +1 -0
  460. package/src/platform-implementation-js/lib/delay-idle.js +16 -0
  461. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts +1 -0
  462. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts.map +1 -0
  463. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +36 -0
  464. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  465. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts +1 -0
  466. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts.map +1 -0
  467. package/src/platform-implementation-js/lib/dom/generic-button-view.js +39 -0
  468. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts +1 -0
  469. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts.map +1 -0
  470. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +39 -0
  471. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  472. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts +1 -0
  473. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts.map +1 -0
  474. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +38 -0
  475. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  476. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  477. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts +1 -0
  478. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts.map +1 -0
  479. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +12 -0
  480. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts +1 -0
  481. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts.map +1 -0
  482. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +79 -0
  483. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts +1 -0
  484. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts.map +1 -0
  485. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +28 -0
  486. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts +1 -0
  487. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts.map +1 -0
  488. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +15 -0
  489. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts +1 -0
  490. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts.map +1 -0
  491. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +15 -0
  492. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts +1 -0
  493. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts.map +1 -0
  494. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +5 -0
  495. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  496. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts +1 -0
  497. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts.map +1 -0
  498. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +39 -0
  499. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts +1 -0
  500. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts.map +1 -0
  501. package/src/platform-implementation-js/lib/dom/parentNodes.js +8 -0
  502. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  503. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts +1 -0
  504. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts.map +1 -0
  505. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +6 -0
  506. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts +1 -0
  507. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts.map +1 -0
  508. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +22 -0
  509. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  510. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  511. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  512. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts +1 -0
  513. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts.map +1 -0
  514. package/src/platform-implementation-js/lib/dom/simulate-key.js +46 -0
  515. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts +1 -0
  516. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts.map +1 -0
  517. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +16 -0
  518. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts +1 -0
  519. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts.map +1 -0
  520. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +7 -0
  521. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts +1 -0
  522. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts.map +1 -0
  523. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +25 -0
  524. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  525. package/src/platform-implementation-js/lib/fake-window-resize.d.ts +1 -0
  526. package/src/platform-implementation-js/lib/fake-window-resize.d.ts.map +1 -0
  527. package/src/platform-implementation-js/lib/fake-window-resize.js +5 -0
  528. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts +1 -0
  529. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts.map +1 -0
  530. package/src/platform-implementation-js/lib/from-event-target-capture.js +12 -0
  531. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts +1 -0
  532. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts.map +1 -0
  533. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +10 -0
  534. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  535. package/src/platform-implementation-js/lib/handler-registry.d.ts +1 -0
  536. package/src/platform-implementation-js/lib/handler-registry.d.ts.map +1 -0
  537. package/src/platform-implementation-js/lib/handler-registry.js +67 -0
  538. package/src/platform-implementation-js/lib/idMap.d.ts +1 -0
  539. package/src/platform-implementation-js/lib/idMap.d.ts.map +1 -0
  540. package/src/platform-implementation-js/lib/idMap.js +45 -0
  541. package/src/platform-implementation-js/lib/imageRequest.d.ts +1 -0
  542. package/src/platform-implementation-js/lib/imageRequest.d.ts.map +1 -0
  543. package/src/platform-implementation-js/lib/imageRequest.js +8 -0
  544. package/src/platform-implementation-js/lib/incrementName.d.ts +1 -0
  545. package/src/platform-implementation-js/lib/incrementName.d.ts.map +1 -0
  546. package/src/platform-implementation-js/lib/incrementName.js +7 -0
  547. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts +1 -0
  548. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +1 -0
  549. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +14 -0
  550. package/src/platform-implementation-js/lib/inject-script.d.ts +1 -0
  551. package/src/platform-implementation-js/lib/inject-script.d.ts.map +1 -0
  552. package/src/platform-implementation-js/lib/inject-script.js +33 -0
  553. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  554. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts +1 -0
  555. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts.map +1 -0
  556. package/src/platform-implementation-js/lib/is-valid-app-id.js +27 -0
  557. package/src/platform-implementation-js/lib/is-valid-email.d.ts +1 -0
  558. package/src/platform-implementation-js/lib/is-valid-email.d.ts.map +1 -0
  559. package/src/platform-implementation-js/lib/is-valid-email.js +14 -0
  560. package/src/platform-implementation-js/lib/isNotNil.d.ts +1 -0
  561. package/src/platform-implementation-js/lib/isNotNil.d.ts.map +1 -0
  562. package/src/platform-implementation-js/lib/isNotNil.js +5 -0
  563. package/src/platform-implementation-js/lib/isStreakAppId.d.ts +1 -0
  564. package/src/platform-implementation-js/lib/isStreakAppId.d.ts.map +1 -0
  565. package/src/platform-implementation-js/lib/isStreakAppId.js +11 -0
  566. package/src/platform-implementation-js/lib/logger.d.ts +1 -0
  567. package/src/platform-implementation-js/lib/logger.d.ts.map +1 -0
  568. package/src/platform-implementation-js/lib/logger.js +441 -0
  569. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  570. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  571. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  572. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  573. package/src/platform-implementation-js/lib/persistent-queue.d.ts +1 -0
  574. package/src/platform-implementation-js/lib/persistent-queue.d.ts.map +1 -0
  575. package/src/platform-implementation-js/lib/persistent-queue.js +107 -0
  576. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  577. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  578. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  579. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  580. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  581. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  582. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  583. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts +1 -0
  584. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts.map +1 -0
  585. package/src/platform-implementation-js/lib/safe-event-emitter.js +17 -0
  586. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  587. package/src/platform-implementation-js/lib/stopper-pool.d.ts +1 -0
  588. package/src/platform-implementation-js/lib/stopper-pool.d.ts.map +1 -0
  589. package/src/platform-implementation-js/lib/stopper-pool.js +41 -0
  590. package/src/platform-implementation-js/lib/stream-wait-for.d.ts +1 -0
  591. package/src/platform-implementation-js/lib/stream-wait-for.d.ts.map +1 -0
  592. package/src/platform-implementation-js/lib/stream-wait-for.js +30 -0
  593. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  594. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  595. package/src/platform-implementation-js/lib/wait-for.d.ts +2 -1
  596. package/src/platform-implementation-js/lib/wait-for.d.ts.map +1 -0
  597. package/src/platform-implementation-js/lib/wait-for.js +28 -0
  598. package/src/platform-implementation-js/lib/waitForAsync.d.ts +1 -0
  599. package/src/platform-implementation-js/lib/waitForAsync.d.ts.map +1 -0
  600. package/src/platform-implementation-js/lib/waitForAsync.js +19 -0
  601. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  602. package/src/platform-implementation-js/main.js +9 -24
  603. package/src/platform-implementation-js/namespaces/app-menu.d.ts +40 -0
  604. package/src/platform-implementation-js/namespaces/app-menu.d.ts.map +1 -0
  605. package/src/platform-implementation-js/namespaces/app-menu.js +19 -0
  606. package/src/platform-implementation-js/namespaces/butter-bar.d.ts +1 -0
  607. package/src/platform-implementation-js/namespaces/butter-bar.d.ts.map +1 -0
  608. package/src/platform-implementation-js/namespaces/butter-bar.js +163 -0
  609. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  610. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  611. package/src/platform-implementation-js/namespaces/global.js +27 -39
  612. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  613. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  614. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  615. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  616. package/src/platform-implementation-js/namespaces/router.js +70 -137
  617. package/src/platform-implementation-js/namespaces/search.js +19 -17
  618. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  619. package/src/platform-implementation-js/namespaces/user.js +36 -37
  620. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  621. package/src/platform-implementation-js/platform-implementation.d.ts +2 -0
  622. package/src/platform-implementation-js/platform-implementation.js +98 -226
  623. package/src/platform-implementation-js/views/SimpleElementView.d.ts +1 -0
  624. package/src/platform-implementation-js/views/SimpleElementView.d.ts.map +1 -0
  625. package/src/platform-implementation-js/views/SimpleElementView.js +16 -0
  626. package/src/platform-implementation-js/views/app-menu-item-view.d.ts +23 -0
  627. package/src/platform-implementation-js/views/app-menu-item-view.d.ts.map +1 -0
  628. package/src/platform-implementation-js/views/app-menu-item-view.js +324 -0
  629. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  630. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts +37 -0
  631. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts.map +1 -0
  632. package/src/platform-implementation-js/views/collapsible-panel-view.js +167 -0
  633. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  634. package/src/platform-implementation-js/views/compose-button-view.d.ts +1 -0
  635. package/src/platform-implementation-js/views/compose-button-view.d.ts.map +1 -0
  636. package/src/platform-implementation-js/views/compose-button-view.js +45 -0
  637. package/src/platform-implementation-js/views/compose-view.d.ts +1 -0
  638. package/src/platform-implementation-js/views/compose-view.d.ts.map +1 -0
  639. package/src/platform-implementation-js/views/compose-view.js +312 -0
  640. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  641. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  642. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  643. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  644. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  645. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts +1 -0
  646. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts.map +1 -0
  647. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +14 -0
  648. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  649. package/src/platform-implementation-js/views/nav-item-view.d.ts +24 -0
  650. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  651. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  652. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  653. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  654. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  655. package/src/platform-implementation-js/views/section-view.js +60 -52
  656. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  657. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts +1 -0
  658. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts.map +1 -0
  659. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +39 -0
  660. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts +1 -0
  661. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts.map +1 -0
  662. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +98 -0
  663. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts +1 -0
  664. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts.map +1 -0
  665. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +122 -0
  666. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  667. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  668. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  669. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,121 +1,69 @@
1
- /* @flow */
2
- import constant from 'lodash/constant';
3
- import asap from 'asap';
4
- import delay from 'pdelay';
5
- import { defn } from 'ud';
6
- import util from 'util';
7
- import Kefir from 'kefir';
8
- import { parse } from 'querystring';
9
- import kefirBus from 'kefir-bus';
10
- import kefirStopper from 'kefir-stopper';
11
- import type { Bus } from 'kefir-bus';
12
-
13
- import findParent from '../../../../common/find-parent';
14
- import makeMutationObserverChunkedStream from '../../../lib/dom/make-mutation-observer-chunked-stream';
15
- import querySelector from '../../../lib/dom/querySelectorOrFail';
16
- import idMap from '../../../lib/idMap';
17
- import SimpleElementView from '../../../views/SimpleElementView';
18
- import CustomMessageView from '../../../views/conversations/custom-message-view';
19
-
20
- import delayAsap from '../../../lib/delay-asap';
21
- import type GmailDriver from '../gmail-driver';
22
- import GmailElementGetter from '../gmail-element-getter';
23
- import GmailMessageView from './gmail-message-view';
24
- import GmailToolbarView from './gmail-toolbar-view';
25
- import type GmailAppSidebarView from './gmail-app-sidebar-view';
26
- import GmailThreadSidebarView from './gmail-thread-sidebar-view';
27
- import WidthManager from './gmail-thread-view/width-manager';
28
-
29
- import type { CustomMessageDescriptor } from '../../../views/conversations/custom-message-view';
30
-
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 _constant = _interopRequireDefault(require("lodash/constant"));
10
+ var _asap = _interopRequireDefault(require("asap"));
11
+ var _pdelay = _interopRequireDefault(require("pdelay"));
12
+ var _ud = require("ud");
13
+ var _util = _interopRequireDefault(require("util"));
14
+ var _kefir = _interopRequireDefault(require("kefir"));
15
+ var _querystring = require("querystring");
16
+ var _kefirBus = _interopRequireDefault(require("kefir-bus"));
17
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
18
+ var _findParent = _interopRequireDefault(require("../../../../common/find-parent"));
19
+ var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../../lib/dom/make-mutation-observer-chunked-stream"));
20
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
21
+ var _idMap = _interopRequireDefault(require("../../../lib/idMap"));
22
+ var _SimpleElementView = _interopRequireDefault(require("../../../views/SimpleElementView"));
23
+ var _customMessageView = _interopRequireDefault(require("../../../views/conversations/custom-message-view"));
24
+ var _delayAsap = _interopRequireDefault(require("../../../lib/delay-asap"));
25
+ var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
26
+ var _gmailMessageView = _interopRequireDefault(require("./gmail-message-view"));
27
+ var _gmailToolbarView = _interopRequireDefault(require("./gmail-toolbar-view"));
28
+ var _gmailThreadSidebarView = _interopRequireDefault(require("./gmail-thread-sidebar-view"));
29
+ var _widthManager = _interopRequireDefault(require("./gmail-thread-view/width-manager"));
31
30
  let hasLoggedAddonInfo = false;
32
-
33
31
  class GmailThreadView {
34
- _element: HTMLElement;
35
- _routeViewDriver: any;
36
- _driver: GmailDriver;
37
- _isPreviewedThread: boolean;
38
- _eventStream: Bus<any>;
39
- _stopper = kefirStopper();
40
- _threadSidebar: ?GmailThreadSidebarView = null;
41
- _widthManager: ?WidthManager = null;
42
-
43
- _toolbarView: any;
44
- _messageViewDrivers: any[];
45
- _newMessageMutationObserver: ?MutationObserver;
46
- _readyStream: Kefir.Observable<any>;
47
- _threadID: ?string;
48
- _syncThreadID: ?string;
49
- _customMessageViews: Set<CustomMessageView> = new Set();
50
- _hiddenCustomMessageViews: Set<CustomMessageView> = new Set();
51
- _hiddenCustomMessageNoticeProvider: ?(
52
- numberCustomMessagesHidden: number,
53
- numberNativeMessagesHidden: ?number,
54
- unmountPromise: Promise<void>
55
- ) => ?HTMLElement;
56
- _hiddenCustomMessageNoticeElement: ?HTMLElement;
57
- _resolveUnmountHiddenNoticePromise: ?() => void;
58
-
59
- constructor(
60
- element: HTMLElement,
61
- routeViewDriver: any,
62
- driver: GmailDriver,
63
- isPreviewedThread: boolean = false
64
- ) {
32
+ constructor(element, routeViewDriver, driver) {
33
+ let isPreviewedThread = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
34
+ (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
35
+ (0, _defineProperty2.default)(this, "_threadSidebar", null);
36
+ (0, _defineProperty2.default)(this, "_widthManager", null);
37
+ (0, _defineProperty2.default)(this, "_customMessageViews", new Set());
38
+ (0, _defineProperty2.default)(this, "_hiddenCustomMessageViews", new Set());
39
+ (0, _defineProperty2.default)(this, "_subjectContainerSelectors", {
40
+ '2022_10_21': '.a98.iY > .nH',
41
+ '2022_10_12': '.PeIF1d > .nH',
42
+ [2018]: '.if > .nH'
43
+ });
65
44
  this._element = element;
66
45
  this._routeViewDriver = routeViewDriver;
67
46
  this._driver = driver;
68
47
  this._isPreviewedThread = isPreviewedThread;
69
-
70
- this._eventStream = kefirBus();
48
+ this._eventStream = (0, _kefirBus.default)();
71
49
  this._messageViewDrivers = [];
72
-
73
- this._logAddonElementInfo().catch((err) =>
74
- this._driver.getLogger().error(err)
75
- );
76
-
77
- const waitForSidebarReady = this._driver
78
- .waitForGlobalSidebarReady()
79
- .merge(
80
- this._driver
81
- .delayToTimeAfterReady(15 * 1000)
82
- .flatMap(() =>
83
- Kefir.constantError(
84
- new Error('15 second timeout while waiting for sidebar fired')
85
- )
86
- )
87
- )
88
- .take(1)
89
- .takeErrors(1)
90
- .flatMapErrors((err) => {
91
- this._driver.getLogger().error(err);
92
- return Kefir.constant(null);
93
- })
94
- .toProperty();
95
-
50
+ this._logAddonElementInfo().catch(err => this._driver.getLogger().error(err));
51
+ const waitForSidebarReady = this._driver.waitForGlobalSidebarReady().merge(this._driver.delayToTimeAfterReady(15 * 1000).flatMap(() => _kefir.default.constantError(new Error('15 second timeout while waiting for sidebar fired')))).take(1).takeErrors(1).flatMapErrors(err => {
52
+ this._driver.getLogger().error(err);
53
+ return _kefir.default.constant(null);
54
+ }).toProperty();
96
55
  let combinedReadyStream;
97
- if (
98
- driver.getOpts().REQUESTED_API_VERSION === 1 &&
99
- driver.isUsingSyncAPI()
100
- ) {
101
- combinedReadyStream = Kefir.combine([
102
- waitForSidebarReady,
103
- Kefir.fromPromise(this.getThreadIDAsync()),
104
- ]);
56
+ if (driver.getOpts().REQUESTED_API_VERSION === 1 && driver.isUsingSyncAPI()) {
57
+ combinedReadyStream = _kefir.default.combine([waitForSidebarReady, _kefir.default.fromPromise(this.getThreadIDAsync())]);
105
58
  } else {
106
59
  combinedReadyStream = waitForSidebarReady;
107
60
  }
108
- this._readyStream = combinedReadyStream
109
- .map(() => {
110
- this._setupToolbarView();
111
- this._setupMessageViewStream();
112
- return null;
113
- })
114
- .takeUntilBy(this._stopper)
115
- .toProperty();
116
-
61
+ this._readyStream = combinedReadyStream.map(() => {
62
+ this._setupToolbarView();
63
+ this._setupMessageViewStream();
64
+ return null;
65
+ }).takeUntilBy(this._stopper).toProperty();
117
66
  this._listenToExpandCollapseAll();
118
-
119
67
  this._stopper.take(1).onValue(() => {
120
68
  if (this._resolveUnmountHiddenNoticePromise) {
121
69
  this._resolveUnmountHiddenNoticePromise();
@@ -124,396 +72,231 @@ class GmailThreadView {
124
72
  }
125
73
 
126
74
  // TODO use livesets eventually
127
- getMessageViewDriverStream(): Kefir.Observable<GmailMessageView> {
128
- return Kefir.constant(this._messageViewDrivers)
129
- .flatten()
130
- .merge(
131
- this._eventStream
132
- .filter(
133
- (event) =>
134
- event.type === 'internal' && event.eventName === 'messageCreated'
135
- )
136
- .map((event) => event.view)
137
- );
75
+ getMessageViewDriverStream() {
76
+ return _kefir.default.constant(this._messageViewDrivers).flatten().merge(this._eventStream.filter(event => event.type === 'internal' && event.eventName === 'messageCreated').map(event => event.view));
138
77
  }
139
-
140
78
  isLoadingStub() {
141
79
  return false;
142
80
  }
143
81
  getStopper() {
144
82
  return this._stopper;
145
83
  }
146
- getEventStream(): Kefir.Observable<Object> {
84
+ getEventStream() {
147
85
  return this._eventStream;
148
86
  }
149
- getElement(): HTMLElement {
87
+ getElement() {
150
88
  return this._element;
151
89
  }
152
- getRouteViewDriver(): any {
90
+ getRouteViewDriver() {
153
91
  return this._routeViewDriver;
154
92
  }
155
- getIsPreviewedThread(): boolean {
93
+ getIsPreviewedThread() {
156
94
  return this._isPreviewedThread;
157
95
  }
158
- getToolbarView(): any {
96
+ getToolbarView() {
159
97
  return this._toolbarView;
160
98
  }
161
- getMessageViewDrivers(): GmailMessageView[] {
99
+ getMessageViewDrivers() {
162
100
  return this._messageViewDrivers;
163
101
  }
164
-
165
102
  destroy() {
166
103
  this._eventStream.end();
167
104
  this._stopper.destroy();
168
105
  if (this._toolbarView) this._toolbarView.destroy();
169
106
  if (this._threadSidebar) this._threadSidebar.destroy();
170
-
171
- this._messageViewDrivers.forEach((messageView) => {
107
+ this._messageViewDrivers.forEach(messageView => {
172
108
  messageView.destroy();
173
109
  });
174
110
  this._messageViewDrivers.length = 0;
175
111
  if (this._newMessageMutationObserver) {
176
112
  this._newMessageMutationObserver.disconnect();
177
113
  }
178
-
179
114
  for (let customMessageView of this._customMessageViews) {
180
115
  customMessageView.destroy();
181
116
  }
182
117
  }
183
-
184
- addSidebarContentPanel(descriptor: Kefir.Observable<Object>) {
118
+ addSidebarContentPanel(descriptor) {
185
119
  const sidebar = this._driver.getGlobalSidebar();
186
120
  return sidebar.addThreadSidebarContentPanel(descriptor, this);
187
121
  }
188
-
189
- _subjectContainerSelectors = {
190
- '2022_10_21': '.a98.iY > .nH',
191
- '2022_10_12': '.PeIF1d > .nH',
192
- [2018]: '.if > .nH',
193
- };
194
-
195
- addNoticeBar(): SimpleElementView {
122
+ addNoticeBar() {
196
123
  const el = document.createElement('div');
197
- el.className = idMap('thread_noticeBar');
124
+ el.className = (0, _idMap.default)('thread_noticeBar');
198
125
  let version;
199
126
  let subjectContainer;
200
-
201
- for (const [currentVersion, selector] of Object.entries(
202
- this._subjectContainerSelectors
203
- )) {
127
+ for (const [currentVersion, selector] of Object.entries(this._subjectContainerSelectors)) {
204
128
  // Flow should be able to infer selector to be a string,
205
129
  // Typescript can. Remove this when ported.
206
- const el = this._element.querySelector((selector: any));
130
+ const el = this._element.querySelector(selector);
207
131
  if (!el) {
208
132
  continue;
209
133
  }
210
-
211
134
  version = currentVersion;
212
135
  subjectContainer = el;
213
136
  break;
214
137
  }
215
-
216
138
  if (!subjectContainer) throw new Error('Failed to find subject container');
217
139
  this._driver.getLogger().eventSdkPassive('addNoticeBar subjectContainer', {
218
- version,
140
+ version
219
141
  });
220
142
  subjectContainer.insertAdjacentElement('afterend', el);
221
- const view = new SimpleElementView(el);
222
-
223
- this._stopper
224
- .takeUntilBy(Kefir.fromEvents(view, 'destroy'))
225
- .onValue(() => view.destroy());
226
-
143
+ const view = new _SimpleElementView.default(el);
144
+ this._stopper.takeUntilBy(_kefir.default.fromEvents(view, 'destroy')).onValue(() => view.destroy());
227
145
  return view;
228
146
  }
229
-
230
- registerHiddenCustomMessageNoticeProvider(
231
- provider: (
232
- numberCustomMessagesHidden: number,
233
- numberNativeMessagesHidden: ?number,
234
- unmountPromise: Promise<void>
235
- ) => HTMLElement
236
- ) {
147
+ registerHiddenCustomMessageNoticeProvider(provider) {
237
148
  this._hiddenCustomMessageNoticeProvider = provider;
238
149
  }
239
-
240
- addCustomMessage(
241
- descriptorStream: Kefir.Observable<CustomMessageDescriptor>
242
- ): CustomMessageView {
150
+ addCustomMessage(descriptorStream) {
243
151
  const parentElement = this._element.parentElement;
244
152
  if (!parentElement) throw new Error('missing parent element');
245
- const customMessageView = new CustomMessageView(descriptorStream, () => {
246
- this._readyStream.onValue(async (): any => {
153
+ const customMessageView = new _customMessageView.default(descriptorStream, () => {
154
+ this._readyStream.onValue(async () => {
247
155
  const messageContainer = this._element.querySelector('[role=list]');
248
156
  if (!messageContainer) return;
249
-
250
157
  let mostRecentDate = Number.MIN_SAFE_INTEGER;
251
158
  let insertBeforeMessage;
252
-
253
159
  let isInHidden = false;
254
-
255
- const messages = [
256
- ...(await Promise.all(
257
- this._messageViewDrivers.map(async (messageView) => ({
258
- sortDatetime: (await messageView.getDate()) || 0,
259
- isHidden: messageView.getViewState() === 'HIDDEN',
260
- element: messageView.getElement(),
261
- }))
262
- )),
263
- ...Array.from(this._customMessageViews)
264
- .filter(
265
- (cmv) =>
266
- cmv !== customMessageView &&
267
- cmv.getElement()
268
- .parentElement /* it has been inserted into dom */
269
- )
270
- .map((cmv) => {
271
- const date = cmv.getSortDate();
272
- const datetime = date ? date.getTime() : null;
273
-
274
- return {
275
- sortDatetime: datetime || 0,
276
- isHidden: cmv
277
- .getElement()
278
- .classList.contains('inboxsdk__custom_message_view_hidden'),
279
- element: cmv.getElement(),
280
- };
281
- }),
282
- ].sort((a, b) => a.sortDatetime - b.sortDatetime);
283
-
160
+ const messages = [...(await Promise.all(this._messageViewDrivers.map(async messageView => ({
161
+ sortDatetime: (await messageView.getDate()) || 0,
162
+ isHidden: messageView.getViewState() === 'HIDDEN',
163
+ element: messageView.getElement()
164
+ })))), ...Array.from(this._customMessageViews).filter(cmv => cmv !== customMessageView && cmv.getElement().parentElement /* it has been inserted into dom */).map(cmv => {
165
+ const date = cmv.getSortDate();
166
+ const datetime = date ? date.getTime() : null;
167
+ return {
168
+ sortDatetime: datetime || 0,
169
+ isHidden: cmv.getElement().classList.contains('inboxsdk__custom_message_view_hidden'),
170
+ element: cmv.getElement()
171
+ };
172
+ })].sort((a, b) => a.sortDatetime - b.sortDatetime);
284
173
  const messageDate = customMessageView.getSortDate();
285
174
  if (!messageDate) return;
286
-
287
175
  for (let message of messages) {
288
176
  isInHidden = message.isHidden;
289
-
290
- if (
291
- messageDate.getTime() >= mostRecentDate &&
292
- messageDate.getTime() <= message.sortDatetime
293
- ) {
177
+ if (messageDate.getTime() >= mostRecentDate && messageDate.getTime() <= message.sortDatetime) {
294
178
  insertBeforeMessage = message.element;
295
179
  break;
296
180
  }
297
-
298
181
  mostRecentDate = message.sortDatetime;
299
182
  }
300
-
301
- if (insertBeforeMessage)
302
- insertBeforeMessage.insertAdjacentElement(
303
- 'beforebegin',
304
- customMessageView.getElement()
305
- );
306
- else
307
- messageContainer.insertAdjacentElement(
308
- 'beforeend',
309
- customMessageView.getElement()
310
- );
311
-
183
+ if (insertBeforeMessage) insertBeforeMessage.insertAdjacentElement('beforebegin', customMessageView.getElement());else messageContainer.insertAdjacentElement('beforeend', customMessageView.getElement());
312
184
  if (isInHidden) {
313
185
  this._setupHiddenCustomMessage(customMessageView);
314
186
  }
315
-
316
187
  parentElement.classList.add('inboxsdk__thread_view_with_custom_view');
317
188
  });
318
189
  });
319
-
320
190
  this._customMessageViews.add(customMessageView);
321
191
  customMessageView.on('destroy', () => {
322
192
  this._customMessageViews.delete(customMessageView);
323
- if (this._customMessageViews.size > 0)
324
- parentElement.classList.add('inboxsdk__thread_view_with_custom_view');
325
- else
326
- parentElement.classList.remove(
327
- 'inboxsdk__thread_view_with_custom_view'
328
- );
193
+ if (this._customMessageViews.size > 0) parentElement.classList.add('inboxsdk__thread_view_with_custom_view');else parentElement.classList.remove('inboxsdk__thread_view_with_custom_view');
329
194
  });
330
-
331
195
  return customMessageView;
332
196
  }
333
-
334
- _setupHiddenCustomMessage(customMessageView: CustomMessageView) {
197
+ _setupHiddenCustomMessage(customMessageView) {
335
198
  this._hiddenCustomMessageViews.add(customMessageView);
336
199
 
337
200
  // hide the element
338
- customMessageView
339
- .getElement()
340
- .classList.add('inboxsdk__custom_message_view_hidden');
201
+ customMessageView.getElement().classList.add('inboxsdk__custom_message_view_hidden');
341
202
 
342
203
  // get the message element that contains the hidden messages notice
343
204
  let hiddenNoticeMessageElement = this._element.querySelector('.adv');
344
205
  let nativeHiddenNoticePresent = true;
345
206
  if (!hiddenNoticeMessageElement) {
346
207
  nativeHiddenNoticePresent = false;
347
- const superCollapsedMessageElements = Array.from(
348
- this._element.querySelectorAll('.kQ')
349
- );
208
+ const superCollapsedMessageElements = Array.from(this._element.querySelectorAll('.kQ'));
350
209
  if (superCollapsedMessageElements.length < 2) return;
351
-
352
210
  hiddenNoticeMessageElement = superCollapsedMessageElements[1];
353
211
  }
354
212
 
355
213
  // listen for a class change on that message which occurs when it becomes visible
356
- makeMutationObserverChunkedStream(hiddenNoticeMessageElement, {
214
+ (0, _makeMutationObserverChunkedStream.default)(hiddenNoticeMessageElement, {
357
215
  attributes: true,
358
- attributeFilter: ['class'],
359
- })
360
- .takeUntilBy(
361
- Kefir.merge([
362
- this._stopper,
363
- Kefir.fromEvents(customMessageView, 'destroy'),
364
- ])
365
- )
366
- .filter(
367
- () =>
368
- hiddenNoticeMessageElement &&
369
- !hiddenNoticeMessageElement.classList.contains('kQ')
370
- ) //when kQ is gone, message is visible
371
- .onValue(() => {
372
- customMessageView
373
- .getElement()
374
- .classList.remove('inboxsdk__custom_message_view_hidden');
375
- if (this._hiddenCustomMessageNoticeElement)
376
- this._hiddenCustomMessageNoticeElement.remove();
377
- this._hiddenCustomMessageNoticeElement = null;
378
- });
379
-
380
- this._updateHiddenNotice(
381
- hiddenNoticeMessageElement,
382
- nativeHiddenNoticePresent
383
- );
384
-
385
- Kefir.fromEvents(customMessageView, 'destroy')
386
- .takeUntilBy(this._stopper)
387
- .take(1)
388
- .onValue(() => {
389
- this._hiddenCustomMessageViews.delete(customMessageView);
390
- if (hiddenNoticeMessageElement)
391
- this._updateHiddenNotice(
392
- hiddenNoticeMessageElement,
393
- nativeHiddenNoticePresent
394
- );
395
- });
216
+ attributeFilter: ['class']
217
+ }).takeUntilBy(_kefir.default.merge([this._stopper, _kefir.default.fromEvents(customMessageView, 'destroy')])).filter(() => hiddenNoticeMessageElement && !hiddenNoticeMessageElement.classList.contains('kQ')) //when kQ is gone, message is visible
218
+ .onValue(() => {
219
+ customMessageView.getElement().classList.remove('inboxsdk__custom_message_view_hidden');
220
+ if (this._hiddenCustomMessageNoticeElement) this._hiddenCustomMessageNoticeElement.remove();
221
+ this._hiddenCustomMessageNoticeElement = null;
222
+ });
223
+ this._updateHiddenNotice(hiddenNoticeMessageElement, nativeHiddenNoticePresent);
224
+ _kefir.default.fromEvents(customMessageView, 'destroy').takeUntilBy(this._stopper).take(1).onValue(() => {
225
+ this._hiddenCustomMessageViews.delete(customMessageView);
226
+ if (hiddenNoticeMessageElement) this._updateHiddenNotice(hiddenNoticeMessageElement, nativeHiddenNoticePresent);
227
+ });
396
228
  }
397
-
398
- _updateHiddenNotice(
399
- hiddenNoticeMessageElement: HTMLElement,
400
- nativeHiddenNoticePresent: boolean
401
- ) {
229
+ _updateHiddenNotice(hiddenNoticeMessageElement, nativeHiddenNoticePresent) {
402
230
  const existingAppNoticeElement = this._hiddenCustomMessageNoticeElement;
403
231
  if (existingAppNoticeElement) {
404
232
  existingAppNoticeElement.remove();
405
233
  this._hiddenCustomMessageNoticeElement = null;
406
-
407
- if (this._resolveUnmountHiddenNoticePromise)
408
- this._resolveUnmountHiddenNoticePromise();
234
+ if (this._resolveUnmountHiddenNoticePromise) this._resolveUnmountHiddenNoticePromise();
409
235
  }
410
-
411
236
  const noticeProvider = this._hiddenCustomMessageNoticeProvider;
412
237
  if (!noticeProvider) return;
413
-
414
- const appNoticeContainerElement = (this._hiddenCustomMessageNoticeElement =
415
- document.createElement('span'));
416
- appNoticeContainerElement.classList.add(
417
- 'inboxsdk__custom_message_view_app_notice_content'
418
- );
419
-
238
+ const appNoticeContainerElement = this._hiddenCustomMessageNoticeElement = document.createElement('span');
239
+ appNoticeContainerElement.classList.add('inboxsdk__custom_message_view_app_notice_content');
420
240
  const numberCustomHiddenMessages = this._hiddenCustomMessageViews.size;
421
-
422
241
  let numberNativeHiddenMessages = null;
423
242
  if (nativeHiddenNoticePresent) {
424
- const nativeHiddenNoticeCountSpan = querySelector(
425
- hiddenNoticeMessageElement,
426
- '.adx span'
427
- );
428
- numberNativeHiddenMessages = Number(
429
- nativeHiddenNoticeCountSpan.innerHTML
430
- );
243
+ const nativeHiddenNoticeCountSpan = (0, _querySelectorOrFail.default)(hiddenNoticeMessageElement, '.adx span');
244
+ numberNativeHiddenMessages = Number(nativeHiddenNoticeCountSpan.innerHTML);
431
245
  if (isNaN(numberNativeHiddenMessages)) {
432
- throw new Error(
433
- "Couldn't find number of native hidden messages in dom structure"
434
- );
246
+ throw new Error("Couldn't find number of native hidden messages in dom structure");
435
247
  }
436
248
  }
437
-
438
- const appNoticeElement = noticeProvider(
439
- numberCustomHiddenMessages,
440
- numberNativeHiddenMessages,
441
- new Promise((resolve) => {
442
- this._resolveUnmountHiddenNoticePromise = resolve;
443
- })
444
- );
249
+ const appNoticeElement = noticeProvider(numberCustomHiddenMessages, numberNativeHiddenMessages, new Promise(resolve => {
250
+ this._resolveUnmountHiddenNoticePromise = resolve;
251
+ }));
445
252
  if (!appNoticeElement) {
446
253
  return;
447
254
  }
448
255
  appNoticeContainerElement.appendChild(appNoticeElement);
449
-
450
256
  if (!nativeHiddenNoticePresent) {
451
257
  const fakeAppNoticeElement = document.createElement('span');
452
258
  fakeAppNoticeElement.classList.add('adx');
453
-
454
- const insertionPoint = querySelector(hiddenNoticeMessageElement, '.G3');
259
+ const insertionPoint = (0, _querySelectorOrFail.default)(hiddenNoticeMessageElement, '.G3');
455
260
  insertionPoint.appendChild(fakeAppNoticeElement);
456
261
  }
457
-
458
- const hiddenNoticeElement = querySelector(
459
- hiddenNoticeMessageElement,
460
- '.adx'
461
- );
462
- hiddenNoticeElement.classList.add(
463
- 'inboxsdk__custom_message_view_app_notice_container'
464
- );
262
+ const hiddenNoticeElement = (0, _querySelectorOrFail.default)(hiddenNoticeMessageElement, '.adx');
263
+ hiddenNoticeElement.classList.add('inboxsdk__custom_message_view_app_notice_container');
465
264
  hiddenNoticeElement.appendChild(appNoticeContainerElement);
466
265
  }
467
-
468
- getSubject(): string {
266
+ getSubject() {
469
267
  var subjectElement = this._element.querySelector('.ha h2');
470
268
  if (!subjectElement) {
471
269
  return '';
472
270
  }
473
-
474
271
  if (subjectElement.querySelector('img[data-emoji]')) {
475
- return Array.from(subjectElement.childNodes)
476
- .map((c) => {
477
- if (c instanceof HTMLElement && c.nodeName === 'IMG') {
478
- const maybeEmoji = c.getAttribute('data-emoji');
479
- return maybeEmoji;
480
- }
481
-
482
- if (c.nodeName === '#text') {
483
- return (c: any).wholeText;
484
- }
485
- })
486
- .filter((x) => x != null)
487
- .join('');
272
+ return Array.from(subjectElement.childNodes).map(c => {
273
+ if (c instanceof HTMLElement && c.nodeName === 'IMG') {
274
+ const maybeEmoji = c.getAttribute('data-emoji');
275
+ return maybeEmoji;
276
+ }
277
+ if (c.nodeName === '#text') {
278
+ return c.wholeText;
279
+ }
280
+ }).filter(x => x != null).join('');
488
281
  }
489
-
490
282
  return subjectElement.textContent;
491
283
  }
492
-
493
- getInternalID(): string {
284
+ getInternalID() {
494
285
  return this._syncThreadID || this.getThreadID();
495
286
  }
496
287
 
497
288
  // Follows a similar structure to getThreadIDAsync, but gives up if async work is needed
498
- getThreadID(): string {
289
+ getThreadID() {
499
290
  if (this._threadID) return this._threadID;
500
-
501
291
  let threadID;
502
292
  if (this._driver.isUsingSyncAPI()) {
503
293
  const idElement = this._element.querySelector('[data-thread-perm-id]');
504
294
  if (!idElement) throw new Error('threadID element not found');
505
-
506
- const syncThreadID = (this._syncThreadID = idElement.getAttribute(
507
- 'data-thread-perm-id'
508
- ));
509
- if (!syncThreadID)
510
- throw new Error('syncThreadID attribute with no value');
511
-
295
+ const syncThreadID = this._syncThreadID = idElement.getAttribute('data-thread-perm-id');
296
+ if (!syncThreadID) throw new Error('syncThreadID attribute with no value');
512
297
  threadID = idElement.getAttribute('data-legacy-thread-id');
513
298
  if (!threadID) {
514
- const err = new Error(
515
- 'Failed to get id for thread: data-legacy-thread-id attribute missing'
516
- );
299
+ const err = new Error('Failed to get id for thread: data-legacy-thread-id attribute missing');
517
300
  this._driver.getLogger().error(err);
518
301
  // throw err;
519
302
  // Fall back to old behavior instead of throwing. Probably not super sensible, but
@@ -521,16 +304,12 @@ class GmailThreadView {
521
304
  // probably an okay choice.
522
305
  }
523
306
  }
307
+
524
308
  if (!threadID) {
525
309
  if (this._isPreviewedThread) {
526
- threadID = this._driver
527
- .getPageCommunicator()
528
- .getCurrentThreadID(this._element, true);
310
+ threadID = this._driver.getPageCommunicator().getCurrentThreadID(this._element, true);
529
311
  } else {
530
- const params = this._routeViewDriver
531
- ? this._routeViewDriver.getParams()
532
- : null;
533
-
312
+ const params = this._routeViewDriver ? this._routeViewDriver.getParams() : null;
534
313
  if (params && params.threadID) {
535
314
  threadID = params.threadID;
536
315
  } else {
@@ -540,40 +319,25 @@ class GmailThreadView {
540
319
  }
541
320
  }
542
321
  }
543
-
544
322
  this._threadID = threadID;
545
323
  return threadID;
546
324
  }
547
-
548
- async getThreadIDAsync(): Promise<string> {
325
+ async getThreadIDAsync() {
549
326
  let threadID;
550
327
  if (this._driver.isUsingSyncAPI()) {
551
328
  const idElement = this._element.querySelector('[data-thread-perm-id]');
552
329
  if (!idElement) throw new Error('threadID element not found');
553
-
554
- const syncThreadID = (this._syncThreadID = idElement.getAttribute(
555
- 'data-thread-perm-id'
556
- ));
557
- if (!syncThreadID)
558
- throw new Error('syncThreadID attribute with no value');
559
-
560
- this._threadID = threadID = idElement.getAttribute(
561
- 'data-legacy-thread-id'
562
- );
330
+ const syncThreadID = this._syncThreadID = idElement.getAttribute('data-thread-perm-id');
331
+ if (!syncThreadID) throw new Error('syncThreadID attribute with no value');
332
+ this._threadID = threadID = idElement.getAttribute('data-legacy-thread-id');
563
333
  if (!threadID) {
564
- this._threadID = threadID =
565
- await this._driver.getOldGmailThreadIdFromSyncThreadId(syncThreadID);
334
+ this._threadID = threadID = await this._driver.getOldGmailThreadIdFromSyncThreadId(syncThreadID);
566
335
  }
567
336
  } else {
568
337
  if (this._isPreviewedThread) {
569
- threadID = this._driver
570
- .getPageCommunicator()
571
- .getCurrentThreadID(this._element, true);
338
+ threadID = this._driver.getPageCommunicator().getCurrentThreadID(this._element, true);
572
339
  } else {
573
- const params = this._routeViewDriver
574
- ? this._routeViewDriver.getParams()
575
- : null;
576
-
340
+ const params = this._routeViewDriver ? this._routeViewDriver.getParams() : null;
577
341
  if (params && params.threadID) {
578
342
  threadID = params.threadID;
579
343
  } else {
@@ -582,133 +346,73 @@ class GmailThreadView {
582
346
  throw err;
583
347
  }
584
348
  }
585
-
586
349
  this._threadID = threadID;
587
350
  }
588
-
589
- if (this._threadID) return this._threadID;
590
- else throw new Error('Failed to get id for thread');
351
+ if (this._threadID) return this._threadID;else throw new Error('Failed to get id for thread');
591
352
  }
592
-
593
- addLabel(): SimpleElementView {
353
+ addLabel() {
594
354
  const labelContainer = this._element.querySelector('.ha .J-J5-Ji');
595
355
  if (!labelContainer) {
596
356
  throw new Error('Thread view label container not found');
597
357
  }
598
358
  const el = document.createElement('span');
599
-
600
359
  labelContainer.appendChild(el);
601
- const view = new SimpleElementView(el);
602
-
603
- const observer = new MutationObserver((mutationsList) => {
604
- if (
605
- mutationsList.some(
606
- (mutation) =>
607
- mutation.type === 'childList' &&
608
- mutation.removedNodes &&
609
- mutation.removedNodes.length &&
610
- mutation.removedNodes.length > 0
611
- )
612
- ) {
360
+ const view = new _SimpleElementView.default(el);
361
+ const observer = new MutationObserver(mutationsList => {
362
+ if (mutationsList.some(mutation => mutation.type === 'childList' && mutation.removedNodes && mutation.removedNodes.length && mutation.removedNodes.length > 0)) {
613
363
  if (!labelContainer.contains(el)) {
614
364
  labelContainer.appendChild(el);
615
365
  }
616
366
  }
617
367
  });
618
- observer.observe(labelContainer, { childList: true });
619
-
620
- this._stopper
621
- .takeUntilBy(Kefir.fromEvents(view, 'destroy'))
622
- .onValue(() => view.destroy());
623
-
624
- Kefir.fromEvents(view, 'destroy')
625
- .take(1)
626
- .onValue(() => {
627
- observer.disconnect();
628
- });
629
-
368
+ observer.observe(labelContainer, {
369
+ childList: true
370
+ });
371
+ this._stopper.takeUntilBy(_kefir.default.fromEvents(view, 'destroy')).onValue(() => view.destroy());
372
+ _kefir.default.fromEvents(view, 'destroy').take(1).onValue(() => {
373
+ observer.disconnect();
374
+ });
630
375
  return view;
631
376
  }
632
-
633
377
  _setupToolbarView() {
634
378
  const toolbarElement = this._findToolbarElement();
635
379
  if (!toolbarElement) throw new Error('No toolbar element found');
636
380
  const toolbarParent = toolbarElement.parentElement;
637
- if (toolbarParent)
638
- toolbarParent.classList.add('inboxsdk__thread_toolbar_parent');
639
-
640
- this._toolbarView = new GmailToolbarView(
641
- toolbarElement,
642
- this._driver,
643
- this._routeViewDriver,
644
- this
645
- );
381
+ if (toolbarParent) toolbarParent.classList.add('inboxsdk__thread_toolbar_parent');
382
+ this._toolbarView = new _gmailToolbarView.default(toolbarElement, this._driver, this._routeViewDriver, this);
646
383
  }
647
-
648
- _findToolbarElement(): ?HTMLElement {
384
+ _findToolbarElement() {
649
385
  var toolbarContainerElements = document.querySelectorAll('[gh=tm]');
650
386
  for (var ii = 0; ii < toolbarContainerElements.length; ii++) {
651
387
  if (this._isToolbarContainerRelevant(toolbarContainerElements[ii])) {
652
388
  return toolbarContainerElements[ii].querySelector('[gh=mtb]');
653
389
  }
654
390
  }
655
-
656
391
  return null;
657
392
  }
658
-
659
- _isToolbarContainerRelevant(toolbarContainerElement: HTMLElement): boolean {
660
- if (
661
- (toolbarContainerElement: any).parentElement.parentElement ===
662
- (this._element: any).parentElement.parentElement
663
- ) {
393
+ _isToolbarContainerRelevant(toolbarContainerElement) {
394
+ if (toolbarContainerElement.parentElement.parentElement === this._element.parentElement.parentElement) {
664
395
  return true;
665
396
  }
666
-
667
- if (
668
- (toolbarContainerElement: any).parentElement.getAttribute('role') !==
669
- 'main' &&
670
- (this._element: any).parentElement.getAttribute('role') !== 'main'
671
- ) {
397
+ if (toolbarContainerElement.parentElement.getAttribute('role') !== 'main' && this._element.parentElement.getAttribute('role') !== 'main') {
672
398
  return true;
673
399
  }
674
-
675
- if (
676
- (toolbarContainerElement: any).parentElement.getAttribute('role') ===
677
- 'main' &&
678
- (toolbarContainerElement: any).parentElement.querySelector(
679
- '.if, .PeIF1d, .a98.iY'
680
- ) &&
681
- (toolbarContainerElement: any).parentElement.querySelector(
682
- '.if, .PeIF1d, .a98.iY'
683
- ).parentElement === this._element
684
- ) {
400
+ if (toolbarContainerElement.parentElement.getAttribute('role') === 'main' && toolbarContainerElement.parentElement.querySelector('.if, .PeIF1d, .a98.iY') && toolbarContainerElement.parentElement.querySelector('.if, .PeIF1d, .a98.iY').parentElement === this._element) {
685
401
  let version = '2018';
686
-
687
- if (
688
- (toolbarContainerElement: any).parentElement.querySelector('.a98.iY')
689
- ) {
402
+ if (toolbarContainerElement.parentElement.querySelector('.a98.iY')) {
690
403
  version = '2022-10-20';
691
- } else if (
692
- (toolbarContainerElement: any).parentElement.querySelector('.PeIF1d')
693
- ) {
404
+ } else if (toolbarContainerElement.parentElement.querySelector('.PeIF1d')) {
694
405
  version = '2022-10-12';
695
406
  }
696
-
697
- this._driver
698
- .getLogger()
699
- .eventSdkPassive('gmailThreadView_isToolbarContainerRelevant', {
700
- version,
701
- });
702
-
407
+ this._driver.getLogger().eventSdkPassive('gmailThreadView_isToolbarContainerRelevant', {
408
+ version
409
+ });
703
410
  return true;
704
411
  }
705
-
706
412
  return false;
707
413
  }
708
-
709
414
  _setupMessageViewStream() {
710
415
  var openMessage = this._element.querySelector('.h7');
711
-
712
416
  if (!openMessage) {
713
417
  var self = this;
714
418
  setTimeout(function () {
@@ -718,176 +422,117 @@ class GmailThreadView {
718
422
  }, 500);
719
423
  return;
720
424
  }
721
-
722
- var messageContainer: HTMLElement = (openMessage.parentElement: any);
723
-
425
+ var messageContainer = openMessage.parentElement;
724
426
  this._initializeExistingMessages(messageContainer);
725
427
  this._observeNewMessages(messageContainer);
726
428
  }
727
-
728
- _initializeExistingMessages(messageContainer: any) {
429
+ _initializeExistingMessages(messageContainer) {
729
430
  var self = this;
730
431
  var children = messageContainer.children;
731
432
  Array.prototype.forEach.call(children, function (childElement) {
732
433
  self._createMessageView(childElement);
733
434
  });
734
435
  }
735
-
736
- _observeNewMessages(messageContainer: any) {
737
- this._newMessageMutationObserver = (new MutationObserver(
738
- this._handleNewMessageMutations.bind(this)
739
- ): any);
436
+ _observeNewMessages(messageContainer) {
437
+ this._newMessageMutationObserver = new MutationObserver(this._handleNewMessageMutations.bind(this));
740
438
  this._newMessageMutationObserver.observe(messageContainer, {
741
- childList: true,
439
+ childList: true
742
440
  });
743
441
  }
744
-
745
- _handleNewMessageMutations(mutations: MutationRecord[]) {
442
+ _handleNewMessageMutations(mutations) {
746
443
  var self = this;
747
444
  mutations.forEach(function (mutation) {
748
445
  Array.prototype.forEach.call(mutation.addedNodes, function (addedNode) {
749
- if (!addedNode.classList.contains('inboxsdk__custom_message_view'))
750
- self._createMessageView(addedNode);
446
+ if (!addedNode.classList.contains('inboxsdk__custom_message_view')) self._createMessageView(addedNode);
751
447
  });
752
448
  });
753
449
  }
754
-
755
- _createMessageView(messageElement: HTMLElement) {
756
- var messageView = new GmailMessageView(messageElement, this, this._driver);
757
-
450
+ _createMessageView(messageElement) {
451
+ var messageView = new _gmailMessageView.default(messageElement, this, this._driver);
758
452
  this._eventStream.plug(messageView.getEventStream());
759
-
760
453
  this._messageViewDrivers.push(messageView);
761
454
  this._eventStream.emit({
762
455
  type: 'internal',
763
456
  eventName: 'messageCreated',
764
- view: messageView,
457
+ view: messageView
765
458
  });
766
459
  }
767
-
768
460
  _setupWidthManager() {
769
461
  let widthManager = this._widthManager;
770
462
  if (!widthManager) {
771
- const addonSidebarElement =
772
- GmailElementGetter.getAddonSidebarContainerElement();
773
- if (!addonSidebarElement)
774
- throw new Error('addonSidebarElement not found');
775
-
776
- const mainContentBodyContainerElement =
777
- GmailElementGetter.getMainContentBodyContainerElement();
778
- if (!mainContentBodyContainerElement)
779
- throw new Error('mainContentBodyContainerElement not found');
463
+ const addonSidebarElement = _gmailElementGetter.default.getAddonSidebarContainerElement();
464
+ if (!addonSidebarElement) throw new Error('addonSidebarElement not found');
465
+ const mainContentBodyContainerElement = _gmailElementGetter.default.getMainContentBodyContainerElement();
466
+ if (!mainContentBodyContainerElement) throw new Error('mainContentBodyContainerElement not found');
780
467
  const contentContainer = mainContentBodyContainerElement.parentElement;
781
- if (!contentContainer)
782
- throw new Error(
783
- 'mainContentBodyContainerElement has no parent element'
784
- );
785
-
786
- this._widthManager = widthManager = new WidthManager(
787
- (contentContainer: any),
788
- addonSidebarElement
789
- );
468
+ if (!contentContainer) throw new Error('mainContentBodyContainerElement has no parent element');
469
+ this._widthManager = widthManager = new _widthManager.default(contentContainer, addonSidebarElement);
790
470
  }
791
-
792
471
  return widthManager;
793
472
  }
794
-
795
473
  getReadyStream() {
796
474
  return this._readyStream;
797
475
  }
798
-
799
476
  async _logAddonElementInfo() {
800
477
  if (hasLoggedAddonInfo) return;
801
-
802
478
  function readInfo() {
803
- const container = GmailElementGetter.getAddonSidebarContainerElement();
479
+ const container = _gmailElementGetter.default.getAddonSidebarContainerElement();
804
480
  if (!container) return null;
805
-
806
481
  const isDisplayNone = {
807
- parent: container.parentElement
808
- ? (container.parentElement: any).style.display === 'none'
809
- : null,
482
+ parent: container.parentElement ? container.parentElement.style.display === 'none' : null,
810
483
  self: container.style.display === 'none',
811
- children: Array.from(container.children).map((el) =>
812
- el.style ? el.style.display === 'none' : null
813
- ),
484
+ children: Array.from(container.children).map(el => el.style ? el.style.display === 'none' : null)
814
485
  };
815
-
816
486
  const rect = container.getBoundingClientRect();
817
487
  const size = {
818
488
  width: rect.width,
819
- height: rect.height,
489
+ height: rect.height
490
+ };
491
+ return {
492
+ isDisplayNone,
493
+ size
820
494
  };
821
- return { isDisplayNone, size };
822
495
  }
823
-
824
- const eventData = { time: {} };
496
+ const eventData = {
497
+ time: {}
498
+ };
825
499
  eventData.time[0] = readInfo();
826
-
827
- await Promise.all(
828
- [30, 5000].map(async (time) => {
829
- await delay(time);
830
- if (this._stopper.stopped) return;
831
- eventData.time[time] = readInfo();
832
- })
833
- );
500
+ await Promise.all([30, 5000].map(async time => {
501
+ await (0, _pdelay.default)(time);
502
+ if (this._stopper.stopped) return;
503
+ eventData.time[time] = readInfo();
504
+ }));
834
505
  if (this._stopper.stopped) return;
835
-
836
- this._driver
837
- .getLogger()
838
- .eventSdkPassive('gmailSidebarElementInfo', eventData);
839
-
506
+ this._driver.getLogger().eventSdkPassive('gmailSidebarElementInfo', eventData);
840
507
  hasLoggedAddonInfo = true;
841
508
  }
842
-
843
509
  _listenToExpandCollapseAll() {
844
510
  //expand all
845
511
  const expandAllElementImg = this._element.querySelector('img.gx');
846
512
  if (expandAllElementImg) {
847
- const expandAllElement = findParent(
848
- expandAllElementImg,
849
- (el) => el.getAttribute('role') === 'button'
850
- );
851
-
513
+ const expandAllElement = (0, _findParent.default)(expandAllElementImg, el => el.getAttribute('role') === 'button');
852
514
  if (expandAllElement) {
853
- Kefir.merge([
854
- Kefir.fromEvents(expandAllElement, 'click'),
855
- Kefir.fromEvents(expandAllElement, 'keydown').filter(
856
- (e) => e.which === 13 /* enter */
857
- ),
858
- ])
859
- .takeUntilBy(this._stopper)
860
- .onValue(() => {
861
- for (let customMessageView of this._customMessageViews) {
862
- customMessageView.expand();
863
- }
864
- });
515
+ _kefir.default.merge([_kefir.default.fromEvents(expandAllElement, 'click'), _kefir.default.fromEvents(expandAllElement, 'keydown').filter(e => e.which === 13 /* enter */)]).takeUntilBy(this._stopper).onValue(() => {
516
+ for (let customMessageView of this._customMessageViews) {
517
+ customMessageView.expand();
518
+ }
519
+ });
865
520
  }
866
521
  }
867
522
 
868
523
  //collapse all
869
524
  const collapseAllElementImg = this._element.querySelector('img.gq');
870
525
  if (collapseAllElementImg) {
871
- const collapseAllElement = findParent(
872
- collapseAllElementImg,
873
- (el) => el.getAttribute('role') === 'button'
874
- );
526
+ const collapseAllElement = (0, _findParent.default)(collapseAllElementImg, el => el.getAttribute('role') === 'button');
875
527
  if (collapseAllElement) {
876
- Kefir.merge([
877
- Kefir.fromEvents(collapseAllElement, 'click'),
878
- Kefir.fromEvents(collapseAllElement, 'keydown').filter(
879
- (e) => e.which === 13 /* enter */
880
- ),
881
- ])
882
- .takeUntilBy(this._stopper)
883
- .onValue(() => {
884
- for (let customMessageView of this._customMessageViews) {
885
- customMessageView.collapse();
886
- }
887
- });
528
+ _kefir.default.merge([_kefir.default.fromEvents(collapseAllElement, 'click'), _kefir.default.fromEvents(collapseAllElement, 'keydown').filter(e => e.which === 13 /* enter */)]).takeUntilBy(this._stopper).onValue(() => {
529
+ for (let customMessageView of this._customMessageViews) {
530
+ customMessageView.collapse();
531
+ }
532
+ });
888
533
  }
889
534
  }
890
535
  }
891
536
  }
892
-
893
- export default defn(module, GmailThreadView);
537
+ var _default = (0, _ud.defn)(module, GmailThreadView);
538
+ exports.default = _default;