@inboxsdk/core 0.2.28-alpha.5 → 0.2.28

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