@inboxsdk/core 0.2.28-alpha.0 → 0.2.28-alpha.2

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 (552) hide show
  1. package/inboxsdk.d.ts +1 -0
  2. package/inboxsdk.js +299 -56
  3. package/inboxsdk.js.map +1 -1
  4. package/package.json +3 -1
  5. package/pageWorld.js +46 -12
  6. package/pageWorld.js.map +1 -1
  7. package/src/build/exec.d.ts +1 -0
  8. package/src/build/exec.d.ts.map +1 -0
  9. package/src/build/spawn.d.ts +1 -0
  10. package/src/build/spawn.d.ts.map +1 -0
  11. package/src/common/ajax.d.ts +1 -0
  12. package/src/common/ajax.d.ts.map +1 -0
  13. package/src/common/cachebust-url.d.ts +1 -0
  14. package/src/common/cachebust-url.d.ts.map +1 -0
  15. package/src/common/censorHTMLstring.d.ts +1 -0
  16. package/src/common/censorHTMLstring.d.ts.map +1 -0
  17. package/src/common/censorHTMLtree.d.ts +1 -0
  18. package/src/common/censorHTMLtree.d.ts.map +1 -0
  19. package/src/common/censorJSONTree.d.ts +1 -0
  20. package/src/common/censorJSONTree.d.ts.map +1 -0
  21. package/src/common/connectivity-test.d.ts +1 -0
  22. package/src/common/connectivity-test.d.ts.map +1 -0
  23. package/src/common/defer.d.ts +1 -0
  24. package/src/common/defer.d.ts.map +1 -0
  25. package/src/common/find-parent.d.ts +1 -0
  26. package/src/common/find-parent.d.ts.map +1 -0
  27. package/src/common/get-extension-id.d.ts +1 -0
  28. package/src/common/get-extension-id.d.ts.map +1 -0
  29. package/src/common/get-or-fail.d.ts +1 -0
  30. package/src/common/get-or-fail.d.ts.map +1 -0
  31. package/src/common/get-session-id.d.ts +1 -0
  32. package/src/common/get-session-id.d.ts.map +1 -0
  33. package/src/common/get-stack-trace.d.ts +1 -0
  34. package/src/common/get-stack-trace.d.ts.map +1 -0
  35. package/src/common/html-to-text.d.ts +1 -0
  36. package/src/common/html-to-text.d.ts.map +1 -0
  37. package/src/common/isElementVisible.d.ts +1 -0
  38. package/src/common/isElementVisible.d.ts.map +1 -0
  39. package/src/common/load-script.d.ts +1 -0
  40. package/src/common/load-script.d.ts.map +1 -0
  41. package/src/common/log-error.d.ts +1 -0
  42. package/src/common/log-error.d.ts.map +1 -0
  43. package/src/common/quoted-split.d.ts +1 -0
  44. package/src/common/quoted-split.d.ts.map +1 -0
  45. package/src/common/rate-limit-queuer.d.ts +1 -0
  46. package/src/common/rate-limit-queuer.d.ts.map +1 -0
  47. package/src/common/rate-limit.d.ts +1 -0
  48. package/src/common/rate-limit.d.ts.map +1 -0
  49. package/src/common/version.d.ts +1 -0
  50. package/src/common/version.d.ts.map +1 -0
  51. package/src/inboxsdk-js/check-requirements.js +7 -0
  52. package/src/inboxsdk-js/header.js +18 -0
  53. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +10 -0
  54. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +5 -0
  55. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -0
  56. package/src/inboxsdk-js/inboxsdk-TEST.js +5 -0
  57. package/src/inboxsdk-js/inboxsdk.js +41 -0
  58. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +19 -0
  59. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts +1 -0
  60. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +1 -0
  61. package/src/inboxsdk.d.ts +9 -28
  62. package/src/injected-js/gmail/constants.d.ts +1 -0
  63. package/src/injected-js/gmail/constants.d.ts.map +1 -0
  64. package/src/injected-js/gmail/modify-suggestions.d.ts +1 -0
  65. package/src/injected-js/gmail/modify-suggestions.d.ts.map +1 -0
  66. package/src/injected-js/gmail/modify-suggestions.test.js +21 -0
  67. package/src/injected-js/gmail/setup-gmail-interceptor.d.ts +4 -0
  68. package/src/injected-js/gmail/setup-gmail-interceptor.js +1185 -0
  69. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts +1 -0
  70. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts.map +1 -0
  71. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts +1 -0
  72. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts.map +1 -0
  73. package/src/injected-js/gmail/sync-compose-processor.d.ts +1 -0
  74. package/src/injected-js/gmail/sync-compose-processor.d.ts.map +1 -0
  75. package/src/injected-js/gmail/sync-compose-request-processor.d.ts +1 -0
  76. package/src/injected-js/gmail/sync-compose-request-processor.d.ts.map +1 -0
  77. package/src/injected-js/gmail/sync-compose-request-processor.test.js +90 -0
  78. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +96 -0
  79. package/src/injected-js/gmail/thread-identifier/index.js +157 -0
  80. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +72 -0
  81. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +57 -0
  82. package/src/injected-js/inbox/setupAjaxInterceptor.js +268 -0
  83. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +80 -0
  84. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +51 -0
  85. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +29 -0
  86. package/src/injected-js/injected-logger.d.ts +1 -0
  87. package/src/injected-js/injected-logger.d.ts.map +1 -0
  88. package/src/injected-js/main.js +70 -0
  89. package/src/injected-js/message-metadata-holder.js +141 -0
  90. package/src/injected-js/setup-data-exposer.js +187 -0
  91. package/src/injected-js/setup-error-silencer.js +25 -0
  92. package/src/injected-js/setup-event-reemitter.js +52 -0
  93. package/src/injected-js/setupCustomViewEventAssassin.d.ts +1 -0
  94. package/src/injected-js/setupCustomViewEventAssassin.d.ts.map +1 -0
  95. package/src/injected-js/setupInboxCustomViewLinkFixer.js +31 -0
  96. package/src/injected-js/setupPushStateListener.js +16 -0
  97. package/src/injected-js/xhr-helper.js +86 -0
  98. package/src/injected-js/xhr-proxy-factory.js +739 -0
  99. package/src/injected-js/xhr-proxy-factory.test.js +1219 -0
  100. package/src/platform-implementation-js/constants/nav-item-types.d.ts +1 -0
  101. package/src/platform-implementation-js/constants/nav-item-types.d.ts.map +1 -0
  102. package/src/platform-implementation-js/constants/router.js +53 -0
  103. package/src/platform-implementation-js/constants/toolbars.js +7 -0
  104. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +22 -0
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +214 -0
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts +5 -0
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts.map +1 -0
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts +5 -0
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts.map +1 -0
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +3 -2
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -0
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts +1 -0
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts.map +1 -0
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +21 -0
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +78 -0
  116. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts +1 -0
  117. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts.map +1 -0
  118. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +70 -0
  119. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +43 -0
  120. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts +1 -0
  121. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts.map +1 -0
  122. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts +1 -0
  123. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts.map +1 -0
  124. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +33 -0
  125. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +38 -0
  126. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +76 -0
  127. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +61 -0
  128. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +72 -0
  129. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +1 -0
  130. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -0
  131. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +226 -0
  132. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +27 -0
  133. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts +1 -0
  134. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts.map +1 -0
  135. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +23 -0
  136. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +92 -0
  137. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +30 -0
  138. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +207 -0
  139. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +162 -0
  140. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +194 -0
  141. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +233 -0
  142. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +30 -0
  143. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +79 -0
  144. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +516 -0
  145. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +404 -0
  146. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +33 -0
  147. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +50 -0
  148. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +45 -0
  149. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +123 -0
  150. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +171 -0
  151. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts +2 -0
  152. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts.map +1 -0
  153. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +69 -0
  154. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +79 -0
  155. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +108 -0
  156. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +1001 -0
  157. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts +1 -0
  158. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts.map +1 -0
  159. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts +1 -0
  160. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts.map +1 -0
  161. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +4 -0
  162. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -0
  163. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts +1 -0
  164. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts.map +1 -0
  165. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts +1 -0
  166. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts.map +1 -0
  167. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts +1 -0
  168. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts.map +1 -0
  169. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts +1 -0
  170. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts.map +1 -0
  171. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +98 -0
  172. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts +1 -0
  173. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts.map +1 -0
  174. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts +1 -0
  175. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts.map +1 -0
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts +43 -0
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts.map +1 -0
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +133 -0
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +162 -0
  180. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +39 -0
  181. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +47 -0
  182. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +33 -0
  183. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +1048 -0
  184. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +27 -0
  185. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +215 -0
  186. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +141 -0
  187. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +422 -0
  188. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +141 -0
  189. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +34 -0
  190. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +909 -0
  191. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +197 -0
  192. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +76 -0
  193. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +34 -0
  194. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +46 -0
  195. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +97 -0
  196. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts +1 -0
  197. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts.map +1 -0
  198. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +125 -0
  199. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts +1 -0
  200. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts.map +1 -0
  201. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +22 -0
  202. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +29 -0
  203. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +19 -0
  204. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +82 -0
  205. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +67 -0
  206. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +151 -0
  207. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts +1 -0
  208. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts.map +1 -0
  209. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +20 -0
  210. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +31 -0
  211. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +30 -0
  212. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts +1 -0
  213. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts.map +1 -0
  214. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +33 -0
  215. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts +1 -0
  216. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts.map +1 -0
  217. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +35 -0
  218. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +533 -0
  219. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +29 -0
  220. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +92 -0
  221. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts +1 -0
  222. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts.map +1 -0
  223. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +28 -0
  224. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts +1 -0
  225. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts.map +1 -0
  226. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts +1 -0
  227. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts.map +1 -0
  228. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +177 -0
  229. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +28 -0
  230. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.d.ts +119 -0
  231. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +1938 -0
  232. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts +1 -0
  233. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts.map +1 -0
  234. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +85 -0
  235. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +950 -0
  236. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +34 -1
  237. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -0
  238. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +125 -0
  239. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +601 -0
  240. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +309 -0
  241. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts +1 -0
  242. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts.map +1 -0
  243. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +1287 -0
  244. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +127 -0
  245. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +744 -0
  246. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +349 -0
  247. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +49 -0
  248. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +893 -0
  249. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +591 -0
  250. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +360 -0
  251. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts +1 -0
  252. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts.map +1 -0
  253. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts +1 -0
  254. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts.map +1 -0
  255. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts +1 -0
  256. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts.map +1 -0
  257. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts +1 -0
  258. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts.map +1 -0
  259. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +32 -0
  260. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts +1 -0
  261. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts.map +1 -0
  262. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts +1 -0
  263. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts.map +1 -0
  264. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts +1 -0
  265. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts.map +1 -0
  266. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +57 -0
  267. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts +1 -0
  268. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts.map +1 -0
  269. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +148 -0
  270. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +179 -0
  271. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +246 -0
  272. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +504 -0
  273. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +109 -0
  274. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +9 -0
  275. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +56 -0
  276. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +73 -0
  277. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +21 -0
  278. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +30 -0
  279. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +22 -0
  280. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +49 -0
  281. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +33 -0
  282. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +85 -0
  283. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +33 -0
  284. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +220 -0
  285. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +97 -0
  286. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +30 -0
  287. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +28 -0
  288. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +60 -0
  289. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +152 -0
  290. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +121 -0
  291. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +42 -0
  292. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +171 -0
  293. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +74 -0
  294. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +43 -0
  295. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +29 -0
  296. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +156 -0
  297. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +1164 -0
  298. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +75 -0
  299. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +15 -0
  300. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +25 -0
  301. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +42 -0
  302. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +452 -0
  303. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +317 -0
  304. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +251 -0
  305. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +76 -0
  306. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +94 -0
  307. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +103 -0
  308. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +400 -0
  309. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +105 -0
  310. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +72 -0
  311. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +362 -0
  312. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +236 -0
  313. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +75 -0
  314. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +252 -0
  315. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +108 -0
  316. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +74 -0
  317. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +55 -0
  318. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +144 -0
  319. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +1027 -0
  320. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +97 -0
  321. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +43 -0
  322. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +386 -0
  323. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +26 -0
  324. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +82 -0
  325. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +348 -0
  326. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +153 -0
  327. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +123 -0
  328. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +413 -0
  329. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +308 -0
  330. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +193 -0
  331. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +143 -0
  332. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +452 -0
  333. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +40 -0
  334. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +52 -0
  335. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +73 -0
  336. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts +1 -0
  337. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts.map +1 -0
  338. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +30 -0
  339. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +61 -0
  340. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts +1 -0
  341. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts.map +1 -0
  342. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +32 -0
  343. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts +1 -0
  344. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts.map +1 -0
  345. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +21 -0
  346. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts +1 -0
  347. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts.map +1 -0
  348. package/src/platform-implementation-js/driver-common/inboxAjax.js +8 -0
  349. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts +1 -0
  350. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts.map +1 -0
  351. package/src/platform-implementation-js/driver-common/requestGmailThread.js +35 -0
  352. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +408 -0
  353. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +197 -0
  354. package/src/platform-implementation-js/driver-common/update-icon.d.ts +1 -0
  355. package/src/platform-implementation-js/driver-common/update-icon.d.ts.map +1 -0
  356. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.d.ts +133 -0
  357. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +114 -0
  358. package/src/platform-implementation-js/driver-interfaces/driver.d.ts +142 -0
  359. package/src/platform-implementation-js/driver-interfaces/driver.js +131 -0
  360. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +49 -0
  361. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +29 -0
  362. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +32 -0
  363. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +11 -0
  364. package/src/platform-implementation-js/lib/ErrorCollector.d.ts +1 -0
  365. package/src/platform-implementation-js/lib/ErrorCollector.d.ts.map +1 -0
  366. package/src/platform-implementation-js/lib/Membrane.d.ts +1 -0
  367. package/src/platform-implementation-js/lib/Membrane.d.ts.map +1 -0
  368. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts +1 -0
  369. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts.map +1 -0
  370. package/src/platform-implementation-js/lib/array-to-lifetimes.js +67 -0
  371. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +171 -0
  372. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts +1 -0
  373. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts.map +1 -0
  374. package/src/platform-implementation-js/lib/common-page-communicator.d.ts +1 -0
  375. package/src/platform-implementation-js/lib/common-page-communicator.d.ts.map +1 -0
  376. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +55 -0
  377. package/src/platform-implementation-js/lib/css-selector-escape.js +8 -0
  378. package/src/platform-implementation-js/lib/delay-asap.d.ts +1 -0
  379. package/src/platform-implementation-js/lib/delay-asap.d.ts.map +1 -0
  380. package/src/platform-implementation-js/lib/delay-idle.d.ts +1 -0
  381. package/src/platform-implementation-js/lib/delay-idle.d.ts.map +1 -0
  382. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts +1 -0
  383. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts.map +1 -0
  384. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +20 -0
  385. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts +1 -0
  386. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts.map +1 -0
  387. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts +1 -0
  388. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts.map +1 -0
  389. package/src/platform-implementation-js/lib/dom/get-selection.js +61 -0
  390. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts +1 -0
  391. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts.map +1 -0
  392. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +113 -0
  393. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +19 -0
  394. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts +1 -0
  395. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts.map +1 -0
  396. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts +1 -0
  397. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts.map +1 -0
  398. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts +1 -0
  399. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts.map +1 -0
  400. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts +1 -0
  401. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts.map +1 -0
  402. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts +1 -0
  403. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts.map +1 -0
  404. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts +1 -0
  405. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts.map +1 -0
  406. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +19 -0
  407. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts +1 -0
  408. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts.map +1 -0
  409. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts +1 -0
  410. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts.map +1 -0
  411. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +16 -0
  412. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts +1 -0
  413. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts.map +1 -0
  414. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts +1 -0
  415. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts.map +1 -0
  416. package/src/platform-implementation-js/lib/dom/set-css.js +21 -0
  417. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +14 -0
  418. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +98 -0
  419. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts +1 -0
  420. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts.map +1 -0
  421. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts +1 -0
  422. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts.map +1 -0
  423. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts +1 -0
  424. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts.map +1 -0
  425. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts +1 -0
  426. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts.map +1 -0
  427. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +42 -0
  428. package/src/platform-implementation-js/lib/fake-window-resize.d.ts +1 -0
  429. package/src/platform-implementation-js/lib/fake-window-resize.d.ts.map +1 -0
  430. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts +1 -0
  431. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts.map +1 -0
  432. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts +1 -0
  433. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts.map +1 -0
  434. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +179 -0
  435. package/src/platform-implementation-js/lib/handler-registry.d.ts +1 -0
  436. package/src/platform-implementation-js/lib/handler-registry.d.ts.map +1 -0
  437. package/src/platform-implementation-js/lib/idMap.d.ts +1 -0
  438. package/src/platform-implementation-js/lib/idMap.d.ts.map +1 -0
  439. package/src/platform-implementation-js/lib/imageRequest.d.ts +1 -0
  440. package/src/platform-implementation-js/lib/imageRequest.d.ts.map +1 -0
  441. package/src/platform-implementation-js/lib/incrementName.d.ts +1 -0
  442. package/src/platform-implementation-js/lib/incrementName.d.ts.map +1 -0
  443. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts +1 -0
  444. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +1 -0
  445. package/src/platform-implementation-js/lib/inject-script.d.ts +1 -0
  446. package/src/platform-implementation-js/lib/inject-script.d.ts.map +1 -0
  447. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +66 -0
  448. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts +1 -0
  449. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts.map +1 -0
  450. package/src/platform-implementation-js/lib/is-valid-email.d.ts +1 -0
  451. package/src/platform-implementation-js/lib/is-valid-email.d.ts.map +1 -0
  452. package/src/platform-implementation-js/lib/isNotNil.d.ts +1 -0
  453. package/src/platform-implementation-js/lib/isNotNil.d.ts.map +1 -0
  454. package/src/platform-implementation-js/lib/isStreakAppId.d.ts +1 -0
  455. package/src/platform-implementation-js/lib/isStreakAppId.d.ts.map +1 -0
  456. package/src/platform-implementation-js/lib/logger.d.ts +1 -0
  457. package/src/platform-implementation-js/lib/logger.d.ts.map +1 -0
  458. package/src/platform-implementation-js/lib/make-revocable-function.js +40 -0
  459. package/src/platform-implementation-js/lib/make-revocable-function.test.js +63 -0
  460. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +20 -0
  461. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +28 -0
  462. package/src/platform-implementation-js/lib/persistent-queue.d.ts +1 -0
  463. package/src/platform-implementation-js/lib/persistent-queue.d.ts.map +1 -0
  464. package/src/platform-implementation-js/lib/populateRouteID.js +23 -0
  465. package/src/platform-implementation-js/lib/populateRouteID.test.js +31 -0
  466. package/src/platform-implementation-js/lib/react/ElementContainer.js +35 -0
  467. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -0
  468. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +50 -0
  469. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +20 -0
  470. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +23 -0
  471. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts +1 -0
  472. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts.map +1 -0
  473. package/src/platform-implementation-js/lib/shared-style.js +22 -0
  474. package/src/platform-implementation-js/lib/stopper-pool.d.ts +1 -0
  475. package/src/platform-implementation-js/lib/stopper-pool.d.ts.map +1 -0
  476. package/src/platform-implementation-js/lib/stream-wait-for.d.ts +1 -0
  477. package/src/platform-implementation-js/lib/stream-wait-for.d.ts.map +1 -0
  478. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.d.ts +7 -0
  479. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -0
  480. package/src/platform-implementation-js/lib/toLiveSet.js +31 -0
  481. package/src/platform-implementation-js/lib/wait-for.d.ts +2 -1
  482. package/src/platform-implementation-js/lib/wait-for.d.ts.map +1 -0
  483. package/src/platform-implementation-js/lib/waitForAsync.d.ts +1 -0
  484. package/src/platform-implementation-js/lib/waitForAsync.d.ts.map +1 -0
  485. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +8 -0
  486. package/src/platform-implementation-js/main.js +83 -0
  487. package/src/platform-implementation-js/namespaces/app-menu.d.ts +38 -0
  488. package/src/platform-implementation-js/namespaces/app-menu.d.ts.map +1 -0
  489. package/src/platform-implementation-js/namespaces/butter-bar.d.ts +1 -0
  490. package/src/platform-implementation-js/namespaces/butter-bar.d.ts.map +1 -0
  491. package/src/platform-implementation-js/namespaces/compose.js +88 -0
  492. package/src/platform-implementation-js/namespaces/conversations.js +156 -0
  493. package/src/platform-implementation-js/namespaces/global.js +51 -0
  494. package/src/platform-implementation-js/namespaces/keyboard.js +48 -0
  495. package/src/platform-implementation-js/namespaces/lists.js +58 -0
  496. package/src/platform-implementation-js/namespaces/modal.js +45 -0
  497. package/src/platform-implementation-js/namespaces/nav-menu.js +55 -0
  498. package/src/platform-implementation-js/namespaces/router.js +217 -0
  499. package/src/platform-implementation-js/namespaces/search.js +36 -0
  500. package/src/platform-implementation-js/namespaces/toolbars.js +195 -0
  501. package/src/platform-implementation-js/namespaces/user.js +67 -0
  502. package/src/platform-implementation-js/namespaces/widgets.js +89 -0
  503. package/src/platform-implementation-js/platform-implementation.d.ts +133 -0
  504. package/src/platform-implementation-js/platform-implementation.js +309 -0
  505. package/src/platform-implementation-js/views/SimpleElementView.d.ts +1 -0
  506. package/src/platform-implementation-js/views/SimpleElementView.d.ts.map +1 -0
  507. package/src/platform-implementation-js/views/app-menu-item-view.d.ts +23 -0
  508. package/src/platform-implementation-js/views/app-menu-item-view.d.ts.map +1 -0
  509. package/src/platform-implementation-js/views/app-toolbar-button-view.js +73 -0
  510. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts +50 -0
  511. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts.map +1 -0
  512. package/src/platform-implementation-js/views/collapsible-section-view.js +88 -0
  513. package/src/platform-implementation-js/views/compose-button-view.d.ts +1 -0
  514. package/src/platform-implementation-js/views/compose-button-view.d.ts.map +1 -0
  515. package/src/platform-implementation-js/views/compose-view.d.ts +1 -0
  516. package/src/platform-implementation-js/views/compose-view.d.ts.map +1 -0
  517. package/src/platform-implementation-js/views/content-panel-view.js +53 -0
  518. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +69 -0
  519. package/src/platform-implementation-js/views/conversations/custom-message-view.js +165 -0
  520. package/src/platform-implementation-js/views/conversations/message-view.js +288 -0
  521. package/src/platform-implementation-js/views/conversations/thread-view.js +156 -0
  522. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts +1 -0
  523. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts.map +1 -0
  524. package/src/platform-implementation-js/views/native-nav-item-view.js +98 -0
  525. package/src/platform-implementation-js/views/nav-item-view.d.ts +24 -0
  526. package/src/platform-implementation-js/views/nav-item-view.js +191 -0
  527. package/src/platform-implementation-js/views/route-view/custom-route-view.js +32 -0
  528. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +40 -0
  529. package/src/platform-implementation-js/views/route-view/list-route-view.js +78 -0
  530. package/src/platform-implementation-js/views/route-view/route-view.js +68 -0
  531. package/src/platform-implementation-js/views/section-view.js +77 -0
  532. package/src/platform-implementation-js/views/thread-row-view.js +117 -0
  533. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts +1 -0
  534. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts.map +1 -0
  535. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts +1 -0
  536. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts.map +1 -0
  537. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts +1 -0
  538. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts.map +1 -0
  539. package/src/platform-implementation-js/widgets/drawer-view.js +61 -0
  540. package/src/platform-implementation-js/widgets/modal-view.js +134 -0
  541. package/src/platform-implementation-js/widgets/mole-view.js +47 -0
  542. package/src/platform-implementation-js/widgets/top-message-bar-view.js +20 -0
  543. package/src/types/combokeys-capture.d.ts +1 -0
  544. package/src/types/gulp-add-src.d.ts +7 -0
  545. package/src/types/gulp-dest-atomic.d.ts +4 -0
  546. package/src/types/gulp-streamify.d.ts +1 -0
  547. package/src/types/gulp-terser.d.ts +4 -0
  548. package/src/types/jest-puppeteer.d.ts +11 -0
  549. package/src/types/notp.d.ts +8 -0
  550. package/src/types/sha.d.ts +36 -0
  551. package/src/types/stdio.d.ts +6 -0
  552. package/src/types/thirty-two.d.ts +6 -0
@@ -0,0 +1,452 @@
1
+ /* @flow */
2
+
3
+ import Kefir from 'kefir';
4
+ import kefirBus from 'kefir-bus';
5
+ import kefirStopper from 'kefir-stopper';
6
+ import insertElementInOrder from '../../../lib/dom/insert-element-in-order';
7
+ import querySelector from '../../../lib/dom/querySelectorOrFail';
8
+ import DropdownView from '../../../widgets/buttons/dropdown-view';
9
+ import InboxDropdownView from './inbox-dropdown-view';
10
+
11
+ import NAV_ITEM_TYPES from '../../../constants/nav-item-types';
12
+
13
+ import updateIcon from '../../../driver-common/update-icon';
14
+
15
+ import type { Bus } from 'kefir-bus';
16
+
17
+ type Destroyable = { destroy: () => void };
18
+
19
+ export default class InboxNavItemView {
20
+ _eventStream: Bus<any> = kefirBus();
21
+ _level: number;
22
+ _stopper: Kefir.Observable<null>;
23
+ _transitionResetter: Bus<null> = kefirBus();
24
+ _navItemDescriptor: ?Object;
25
+ _children: number = 0;
26
+ _name: string = '';
27
+ _type: ?string = null;
28
+ _orderHint: number = Number.MAX_SAFE_INTEGER;
29
+ _disabled: boolean = false;
30
+ _isCollapsed: boolean = false;
31
+ _iconSettings: Object = {};
32
+ _accessory: ?Object = null;
33
+ _accessoryView: ?Destroyable = null;
34
+ _elements: {
35
+ wrapper: HTMLElement,
36
+ expander: HTMLElement,
37
+ navItem: HTMLElement,
38
+ name: HTMLElement,
39
+ subNav: HTMLElement,
40
+ subNavInner: HTMLElement,
41
+ accessory: HTMLElement,
42
+ };
43
+
44
+ constructor(navItemDescriptor: Kefir.Observable<Object>, level: number) {
45
+ this._level = level || 0;
46
+ this._elements = {
47
+ wrapper: document.createElement('div'),
48
+ expander: document.createElement('div'),
49
+ navItem: document.createElement('div'),
50
+ name: document.createElement('span'),
51
+ subNav: document.createElement('div'),
52
+ subNavInner: document.createElement('div'),
53
+ accessory: document.createElement('div'),
54
+ };
55
+
56
+ if (this._level > 2) {
57
+ console.warn('Adding NavItems more than 3 levels deep is not supported'); //eslint-disable-line no-console
58
+ }
59
+
60
+ this._stopper = this._eventStream
61
+ .ignoreValues()
62
+ .beforeEnd(() => null)
63
+ .toProperty();
64
+
65
+ this._setupElements();
66
+
67
+ navItemDescriptor.takeUntilBy(this._stopper).onValue((descriptor) => {
68
+ this._update(descriptor);
69
+ this._navItemDescriptor = descriptor;
70
+ });
71
+ }
72
+
73
+ addNavItem(
74
+ orderGroup: number | string,
75
+ navItemDescriptor: Kefir.Observable<Object>
76
+ ): InboxNavItemView {
77
+ const childNavItemView = new InboxNavItemView(
78
+ navItemDescriptor,
79
+ this._level + 1
80
+ );
81
+
82
+ childNavItemView
83
+ .getEventStream()
84
+ .filter((event) => event.eventName === 'orderChanged')
85
+ .onValue(() =>
86
+ insertElementInOrder(
87
+ this._elements.subNavInner,
88
+ childNavItemView.getElement()
89
+ )
90
+ );
91
+
92
+ insertElementInOrder(
93
+ this._elements.subNavInner,
94
+ childNavItemView.getElement()
95
+ );
96
+
97
+ this._children += 1;
98
+
99
+ childNavItemView.getStopper().onValue(() => {
100
+ this._children -= 1;
101
+ this._updateChildrenClass();
102
+ this._updateDisabledState(this._navItemDescriptor || {});
103
+ this._updateAccessory(this._accessory, true);
104
+ });
105
+
106
+ this._updateChildrenClass();
107
+ this._updateDisabledState(this._navItemDescriptor || {});
108
+ this._updateAccessory(this._accessory, true);
109
+
110
+ return childNavItemView;
111
+ }
112
+
113
+ setActive(value: boolean) {
114
+ this._elements.navItem.classList.toggle('inboxsdk__navItem_active', value);
115
+ }
116
+
117
+ toggleCollapse() {
118
+ this._isCollapsed = !this._isCollapsed;
119
+
120
+ this._isCollapsed ? this._collapse() : this._expand();
121
+ }
122
+
123
+ setCollapsed(value: boolean) {
124
+ if (this._isCollapsed === value) return;
125
+
126
+ this._isCollapsed = value;
127
+
128
+ this._isCollapsed ? this._collapse() : this._expand();
129
+ }
130
+
131
+ isCollapsed(): boolean {
132
+ return this._isCollapsed;
133
+ }
134
+
135
+ getElement(): HTMLElement {
136
+ return this._elements.wrapper;
137
+ }
138
+
139
+ getEventStream(): Kefir.Observable<Object> {
140
+ return this._eventStream;
141
+ }
142
+
143
+ getStopper(): Kefir.Observable<null> {
144
+ return this._stopper;
145
+ }
146
+
147
+ destroy() {
148
+ this._eventStream.end();
149
+ this._elements.wrapper.remove();
150
+ }
151
+
152
+ _setupElements() {
153
+ const { wrapper, expander, navItem, name, subNav, subNavInner, accessory } =
154
+ this._elements;
155
+
156
+ wrapper.className = `inboxsdk__navItem_wrapper inboxsdk__navItem_level${this._level}`;
157
+ wrapper.setAttribute('tabindex', '-1');
158
+ wrapper.setAttribute('data-order-hint', String(this._orderHint));
159
+ navItem.setAttribute('role', 'menuitem');
160
+
161
+ expander.classList.add('inboxsdk__navItem_expander');
162
+ navItem.classList.add('inboxsdk__navItem');
163
+ name.classList.add('inboxsdk__navItem_name');
164
+ accessory.classList.add('inboxsdk__navItem_accessory');
165
+ subNav.classList.add('inboxsdk__navItem_subNav');
166
+ subNavInner.classList.add('inboxsdk__navItem_subNavInner');
167
+
168
+ // Arrow SVG
169
+ expander.innerHTML =
170
+ '<svg><polygon points="16.59 8.59 12 13.17 7.41 8.59 6 10 12 16 18 10"></polygon></svg>';
171
+
172
+ navItem.appendChild(expander);
173
+ navItem.appendChild(name);
174
+ navItem.appendChild(accessory);
175
+ wrapper.appendChild(navItem);
176
+
177
+ subNav.appendChild(subNavInner);
178
+ wrapper.appendChild(subNav);
179
+
180
+ this._eventStream.plug(
181
+ Kefir.fromEvents(navItem, 'click')
182
+ .filter(() => !this._disabled)
183
+ .map((domEvent: MouseEvent) => {
184
+ domEvent.stopPropagation();
185
+ domEvent.preventDefault();
186
+ return { eventName: 'click', domEvent };
187
+ })
188
+ );
189
+
190
+ Kefir.fromEvents(expander, 'click')
191
+ .takeUntilBy(this._stopper)
192
+ .filter(() => this._children > 0)
193
+ .onValue((domEvent: MouseEvent) => {
194
+ this.toggleCollapse();
195
+ domEvent.stopPropagation();
196
+ });
197
+ }
198
+
199
+ _collapse() {
200
+ const { subNav, subNavInner } = this._elements;
201
+
202
+ this._transitionResetter.emit(null);
203
+ this._elements.wrapper.classList.add('inboxsdk__navItem_collapsed');
204
+
205
+ subNav.style.height = `${subNavInner.clientHeight}px`;
206
+ subNav.clientHeight; // Force layout
207
+ subNav.style.height = '0';
208
+
209
+ Kefir.merge([Kefir.fromEvents(subNav, 'transitionend'), Kefir.later(750)])
210
+ .takeUntilBy(this._transitionResetter)
211
+ .take(1)
212
+ .onValue(() => {
213
+ subNav.style.display = 'none';
214
+ });
215
+
216
+ this._eventStream.emit({
217
+ eventName: 'collapsed',
218
+ });
219
+ }
220
+
221
+ _expand() {
222
+ const { subNav, subNavInner } = this._elements;
223
+
224
+ this._transitionResetter.emit(null);
225
+ this._elements.wrapper.classList.remove('inboxsdk__navItem_collapsed');
226
+
227
+ subNav.style.display = '';
228
+ subNav.style.height = `${subNavInner.clientHeight}px`;
229
+
230
+ Kefir.merge([Kefir.fromEvents(subNav, 'transitionend'), Kefir.later(750)])
231
+ .takeUntilBy(this._transitionResetter)
232
+ .take(1)
233
+ .onValue(() => {
234
+ subNav.style.height = '';
235
+ });
236
+
237
+ this._eventStream.emit({
238
+ eventName: 'expanded',
239
+ });
240
+ }
241
+
242
+ _update(descriptor: Object) {
243
+ this._updateName(descriptor.name);
244
+ this._updateType(descriptor.type);
245
+ this._updateExpander(descriptor);
246
+ this._updateDisabledState(descriptor);
247
+ this._updateIcon(descriptor);
248
+ this._updateAccessory(descriptor.accessory);
249
+ this._updateOrder(
250
+ descriptor.orderHint || descriptor.orderHint === 0
251
+ ? descriptor.orderHint
252
+ : Number.MAX_SAFE_INTEGER
253
+ );
254
+ }
255
+
256
+ _updateName(name: string) {
257
+ if (this._name === name) return;
258
+
259
+ this._elements.name.textContent = name;
260
+ this._elements.name.setAttribute('title', name);
261
+
262
+ this._name = name;
263
+ }
264
+
265
+ _updateType(type: string = NAV_ITEM_TYPES.NAVIGATION) {
266
+ if (this._type === type) return;
267
+
268
+ this._elements.navItem.classList.toggle(
269
+ 'inboxsdk__navItem_link',
270
+ type === NAV_ITEM_TYPES.LINK
271
+ );
272
+
273
+ this._type = type;
274
+ }
275
+
276
+ _updateExpander({ backgroundColor, expanderForegroundColor }: Object) {
277
+ this._elements.expander.style.backgroundColor = backgroundColor || '';
278
+
279
+ const arrow = querySelector(this._elements.expander, 'polygon');
280
+ (arrow.style: any).fill = expanderForegroundColor || '';
281
+
282
+ this._elements.wrapper.classList.toggle(
283
+ 'inboxsdk__navItem_hasColor',
284
+ typeof backgroundColor === 'string'
285
+ );
286
+ }
287
+
288
+ _updateIcon(descriptor: Object) {
289
+ this._elements.navItem.classList.toggle(
290
+ 'inboxsdk__navItem_hasIcon',
291
+ (!this._disabled || this._level > 0) &&
292
+ Boolean(descriptor.iconUrl || descriptor.iconClass)
293
+ );
294
+
295
+ updateIcon(
296
+ this._iconSettings,
297
+ this._elements.navItem,
298
+ false,
299
+ descriptor.iconClass,
300
+ descriptor.iconUrl,
301
+ this._elements.name
302
+ );
303
+ }
304
+
305
+ _updateAccessory(accessory: ?Object, forceUpdate: boolean = false) {
306
+ if (!forceUpdate && this._accessory === accessory) return;
307
+
308
+ if (this._accessoryView) {
309
+ this._accessoryView.destroy();
310
+ this._accessoryView = null;
311
+ }
312
+
313
+ if (accessory && !this._disabled) {
314
+ this._accessoryView = this._createAccessory(accessory);
315
+ }
316
+
317
+ this._accessory = accessory;
318
+ }
319
+
320
+ _updateDisabledState(descriptor: Object) {
321
+ this._disabled =
322
+ !(descriptor.routeID || descriptor.onClick) ||
323
+ (this._level === 0 && this._children > 0);
324
+ this._elements.wrapper.classList.toggle(
325
+ 'inboxsdk__navItem_disabled',
326
+ this._disabled
327
+ );
328
+ }
329
+
330
+ _updateOrder(orderHint: number) {
331
+ if (this._orderHint === orderHint) return;
332
+
333
+ this._elements.wrapper.setAttribute('data-order-hint', String(orderHint));
334
+ this._orderHint = orderHint;
335
+ this._eventStream.emit({ eventName: 'orderChanged' });
336
+ }
337
+
338
+ _updateChildrenClass() {
339
+ this._elements.wrapper.classList.toggle(
340
+ 'inboxsdk__navItem_hasChildren',
341
+ this._children > 0
342
+ );
343
+ }
344
+
345
+ _createAccessory(accessory: Object): Destroyable {
346
+ switch (accessory.type) {
347
+ case 'CREATE':
348
+ return this._createCreateAccessory(accessory);
349
+ case 'ICON_BUTTON':
350
+ return this._createIconButtonAccessory(accessory);
351
+ case 'DROPDOWN_BUTTON':
352
+ return this._createDropdownButtonAccessory(accessory);
353
+ default:
354
+ throw new Error('A type must be specified for NavItem accessories');
355
+ }
356
+ }
357
+
358
+ _createCreateAccessory(accessory: Object): Destroyable {
359
+ const { onClick } = accessory;
360
+ return this._createIconButtonAccessory({
361
+ onClick,
362
+ iconUrl:
363
+ '//ssl.gstatic.com/bt/C3341AA7A1A076756462EE2E5CD71C11/2x/ic_add-cluster_24px_g60_r3_2x.png',
364
+ });
365
+ }
366
+
367
+ _createDropdownButtonAccessory(accessory: Object): Destroyable {
368
+ const { onClick } = accessory;
369
+ return this._createIconButtonAccessory(
370
+ {
371
+ onClick,
372
+ iconUrl:
373
+ '//www.gstatic.com/images/icons/material/system/2x/settings_black_18dp.png',
374
+ },
375
+ true
376
+ );
377
+ }
378
+
379
+ _createIconButtonAccessory(
380
+ accessory: Object,
381
+ hasDropdown: boolean = false
382
+ ): Destroyable {
383
+ if (!accessory.onClick) throw new Error('An onClick handler is required');
384
+
385
+ this._elements.wrapper.classList.add('inboxsdk__navItem_hasAccessory');
386
+
387
+ updateIcon(
388
+ {},
389
+ this._elements.accessory,
390
+ false,
391
+ accessory.iconClass,
392
+ accessory.iconUrl
393
+ );
394
+
395
+ const iconEl = querySelector(
396
+ this._elements.accessory,
397
+ '.inboxsdk__button_icon'
398
+ );
399
+ iconEl.setAttribute('tabindex', '-1');
400
+
401
+ const destroyStopper = kefirStopper();
402
+ let dropdown = null;
403
+
404
+ Kefir.fromEvents(this._elements.accessory, 'click')
405
+ .takeUntilBy(this._stopper)
406
+ .takeUntilBy(destroyStopper)
407
+ .onValue((event) => {
408
+ event.preventDefault();
409
+ event.stopPropagation();
410
+ if (hasDropdown) {
411
+ if (dropdown) {
412
+ dropdown.close();
413
+ return;
414
+ } else {
415
+ iconEl.classList.add('inboxsdk__active');
416
+
417
+ dropdown = new DropdownView(
418
+ new InboxDropdownView(),
419
+ this._elements.accessory
420
+ );
421
+ dropdown.setPlacementOptions({
422
+ position: 'right',
423
+ hAlign: 'left',
424
+ vAlign: 'top',
425
+ buffer: 10,
426
+ });
427
+ dropdown.on('destroy', () => {
428
+ iconEl.classList.remove('inboxsdk__active');
429
+ dropdown = null;
430
+ });
431
+ }
432
+ }
433
+ accessory.onClick({ dropdown });
434
+ });
435
+
436
+ Kefir.merge([this._stopper, destroyStopper])
437
+ .take(1)
438
+ .onValue(() => {
439
+ if (dropdown) {
440
+ dropdown.close();
441
+ }
442
+ });
443
+
444
+ const destroy = () => {
445
+ this._elements.wrapper.classList.remove('inboxsdk__navItem_hasAccessory');
446
+ this._elements.accessory.innerHTML = '';
447
+ destroyStopper.destroy();
448
+ };
449
+
450
+ return { destroy };
451
+ }
452
+ }
@@ -0,0 +1,40 @@
1
+ /* @flow */
2
+
3
+ import once from 'lodash/once';
4
+ import find from 'lodash/find';
5
+ import Kefir from 'kefir';
6
+
7
+ import makeMutationObserverChunkedStream from '../../lib/dom/make-mutation-observer-chunked-stream';
8
+
9
+ const getAnimationClickBlocker: () => HTMLElement = once(() =>
10
+ find(((document.body: any): HTMLElement).children, (el) => {
11
+ const c = window.getComputedStyle(el);
12
+ return (
13
+ c.position === 'fixed' &&
14
+ parseFloat(c.top) === 0 &&
15
+ parseFloat(c.bottom) === 0 &&
16
+ parseFloat(c.left) === 0 &&
17
+ parseFloat(c.right) === 0
18
+ );
19
+ })
20
+ );
21
+
22
+ export default function waitForAnimationClickBlockerGone(): Kefir.Observable<void> {
23
+ const el = getAnimationClickBlocker();
24
+
25
+ // Wait for (the animationClickBlocker to appear OR 150 ms to pass), then
26
+ // wait for the animationClickBlocker to disappear.
27
+ return makeMutationObserverChunkedStream(el, { attributes: true })
28
+ .toProperty(() => undefined)
29
+ .filter(() => window.getComputedStyle(el).display !== 'none')
30
+ .merge(Kefir.later(150))
31
+ .take(1)
32
+ .flatMap(() =>
33
+ makeMutationObserverChunkedStream(el, { attributes: true }).toProperty(
34
+ () => undefined
35
+ )
36
+ )
37
+ .filter(() => window.getComputedStyle(el).display === 'none')
38
+ .map(() => undefined)
39
+ .take(1);
40
+ }
@@ -0,0 +1,52 @@
1
+ /* @flow */
2
+
3
+ import asap from 'asap';
4
+ import Kefir from 'kefir';
5
+ import fromEventTargetCapture from '../../lib/from-event-target-capture';
6
+
7
+ const dispatchCancel = (element) =>
8
+ asap(() =>
9
+ element.dispatchEvent(
10
+ new CustomEvent('inboxSDKdiscardCanceled', {
11
+ bubbles: false,
12
+ cancelable: false,
13
+ detail: null,
14
+ })
15
+ )
16
+ );
17
+
18
+ export default function getDiscardStream({
19
+ element,
20
+ discardButton,
21
+ }: {
22
+ element: HTMLElement,
23
+ discardButton: HTMLElement,
24
+ }): Kefir.Observable<Object> {
25
+ const domEventStream = Kefir.merge([
26
+ fromEventTargetCapture(element, 'keydown')
27
+ .filter(
28
+ (domEvent) =>
29
+ [13, 32].indexOf(domEvent.which) > -1 ||
30
+ [13, 32].indexOf(domEvent.keyCode) > -1
31
+ )
32
+ .filter(
33
+ (domEvent) => discardButton && discardButton.contains(domEvent.target)
34
+ ),
35
+
36
+ fromEventTargetCapture(element, 'click').filter(
37
+ (domEvent) => discardButton && discardButton.contains(domEvent.target)
38
+ ),
39
+ ]);
40
+
41
+ return domEventStream.map((domEvent) => ({
42
+ eventName: 'discard',
43
+ data: {
44
+ cancel() {
45
+ domEvent.preventDefault();
46
+ domEvent.stopPropagation();
47
+ domEvent.stopImmediatePropagation();
48
+ dispatchCancel(element);
49
+ },
50
+ },
51
+ }));
52
+ }
@@ -0,0 +1,73 @@
1
+ /* @flow */
2
+
3
+ import asap from 'asap';
4
+ import Kefir from 'kefir';
5
+ import fromEventTargetCapture from '../../lib/from-event-target-capture';
6
+
7
+ const dispatchCancel = (element) =>
8
+ // asap necessary so we don't emit this event during the click/keydown event dispatch
9
+ asap(() =>
10
+ element.dispatchEvent(
11
+ new CustomEvent('inboxSDKsendCanceled', {
12
+ bubbles: false,
13
+ cancelable: false,
14
+ detail: null,
15
+ })
16
+ )
17
+ );
18
+
19
+ export default function ({
20
+ element,
21
+ sendButton,
22
+ sendAndArchive,
23
+ }: {
24
+ element: HTMLElement,
25
+ sendButton: HTMLElement,
26
+ sendAndArchive?: ?HTMLElement,
27
+ }): Kefir.Observable<Object> {
28
+ const domEventStream = Kefir.merge([
29
+ fromEventTargetCapture(element, 'keydown')
30
+ .filter((domEvent) => domEvent.ctrlKey || domEvent.metaKey)
31
+ .filter((domEvent) => domEvent.which === 13 || domEvent.keyCode === 13),
32
+
33
+ fromEventTargetCapture(element, 'keydown')
34
+ .filter(
35
+ (domEvent) =>
36
+ [13, 32].indexOf(domEvent.which) > -1 ||
37
+ [13, 32].indexOf(domEvent.keyCode) > -1
38
+ )
39
+ .filter(
40
+ (domEvent) =>
41
+ (sendButton && sendButton.contains(domEvent.target)) ||
42
+ (sendAndArchive && sendAndArchive.contains(domEvent.target))
43
+ ),
44
+
45
+ fromEventTargetCapture(element, 'click').filter(
46
+ (domEvent) =>
47
+ (sendButton && sendButton.contains(domEvent.target)) ||
48
+ (sendAndArchive && sendAndArchive.contains(domEvent.target))
49
+ ),
50
+ ]);
51
+
52
+ return domEventStream
53
+ .filter((domEvent) => {
54
+ if (element.hasAttribute('data-inboxsdk-send-replaced')) {
55
+ domEvent.preventDefault();
56
+ domEvent.stopPropagation();
57
+ domEvent.stopImmediatePropagation();
58
+ return false;
59
+ }
60
+ return true;
61
+ })
62
+ .map((domEvent) => ({
63
+ eventName: 'presending',
64
+ data: {
65
+ cancel() {
66
+ domEvent.preventDefault();
67
+ domEvent.stopPropagation();
68
+ domEvent.stopImmediatePropagation();
69
+ dispatchCancel(element);
70
+ },
71
+ },
72
+ }));
73
+ }
@@ -1 +1,2 @@
1
1
  export default function getAccountUrlPart(): string;
2
+ //# sourceMappingURL=getAccountUrlPart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccountUrlPart.d.ts","sourceRoot":"","sources":["../../../../../src/platform-implementation-js/driver-common/getAccountUrlPart.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,iBAAiB,IAAI,MAAM,CAalD"}
@@ -0,0 +1,30 @@
1
+ /* @flow */
2
+
3
+ import { defn } from 'ud';
4
+
5
+ import getOriginalMessagePage from './getOriginalMessagePage';
6
+
7
+ import type { Driver } from '../driver-interfaces/driver';
8
+
9
+ // Messages sent from the local user in Inbox have a fake ID in the DOM (with
10
+ // the "msg-a:r" prefix) that doesn't match up with anything in the Gmail API.
11
+ // This function translates the Inbox ID into the real ID that can be found in
12
+ // the Gmail API.
13
+ async function getGmailMessageIdForSyncMessageId(
14
+ driver: Driver,
15
+ syncMessageID: string
16
+ ): Promise<string> {
17
+ const text = await getOriginalMessagePage(driver, {
18
+ syncMessageID: syncMessageID,
19
+ });
20
+
21
+ const messageIdMatch = text.match(
22
+ /<a\b[^<>]+\bhref="\/mail[^"]*(?:\?|&(?:amp;)?)view=att&(?:amp;)?th=([a-f0-9]+)&/i
23
+ );
24
+ if (!messageIdMatch) {
25
+ throw new Error('Failed to find gmail message id for inbox message id');
26
+ }
27
+ return messageIdMatch[1];
28
+ }
29
+
30
+ export default defn(module, getGmailMessageIdForSyncMessageId);