@inboxsdk/core 1.2.5 → 1.2.8-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/inboxsdk.js +4462 -456
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +3 -2
  4. package/pageWorld.js +1 -1
  5. package/pageWorld.js.map +1 -1
  6. package/src/inboxsdk.d.ts +29 -0
  7. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -2
  8. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +1 -1
  9. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +6 -1
  10. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +1 -1
  11. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +2 -2
  12. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -1
  13. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +5 -0
  14. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
  15. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts +13 -5
  16. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.d.ts.map +1 -1
  17. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.d.ts +15 -1
  18. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.d.ts.map +1 -1
  19. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -1
  20. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
  21. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.d.ts +9 -0
  22. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.d.ts.map +1 -1
  23. package/src/platform-implementation-js/namespaces/conversations.d.ts +7 -0
  24. package/src/platform-implementation-js/namespaces/conversations.d.ts.map +1 -1
  25. package/src/platform-implementation-js/namespaces/nav-menu.d.ts +4 -2
  26. package/src/platform-implementation-js/namespaces/nav-menu.d.ts.map +1 -1
  27. package/src/platform-implementation-js/views/compose-view.d.ts +8 -2
  28. package/src/platform-implementation-js/views/compose-view.d.ts.map +1 -1
  29. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts +12 -5
  30. package/src/platform-implementation-js/views/conversations/attachment-card-view.d.ts.map +1 -1
  31. package/src/platform-implementation-js/views/native-nav-item-view.d.ts +2 -1
  32. package/src/platform-implementation-js/views/native-nav-item-view.d.ts.map +1 -1
  33. package/src/build/exec.js +0 -26
  34. package/src/build/spawn.js +0 -17
  35. package/src/common/ajax.js +0 -90
  36. package/src/common/cachebust-url.js +0 -10
  37. package/src/common/censorHTMLstring.js +0 -37
  38. package/src/common/censorHTMLtree.js +0 -28
  39. package/src/common/censorJSONTree.js +0 -15
  40. package/src/common/connectivity-test.js +0 -21
  41. package/src/common/defer.js +0 -11
  42. package/src/common/find-parent.js +0 -10
  43. package/src/common/get-extension-id.js +0 -7
  44. package/src/common/get-or-fail.js +0 -8
  45. package/src/common/get-session-id.js +0 -14
  46. package/src/common/get-stack-trace.js +0 -6
  47. package/src/common/html-to-text.js +0 -7
  48. package/src/common/isElementVisible.js +0 -6
  49. package/src/common/load-script.js +0 -126
  50. package/src/common/log-error.js +0 -185
  51. package/src/common/quoted-split.js +0 -18
  52. package/src/common/rate-limit-queuer.js +0 -57
  53. package/src/common/rate-limit.js +0 -14
  54. package/src/common/version.js +0 -8
  55. package/src/inboxsdk-js/header.js +0 -19
  56. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +0 -4
  57. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +0 -4
  58. package/src/inboxsdk-js/inboxsdk-REMOTE.js +0 -2
  59. package/src/inboxsdk-js/inboxsdk-TEST.js +0 -5
  60. package/src/inboxsdk-js/inboxsdk.js +0 -23
  61. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +0 -14
  62. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -28
  63. package/src/injected-js/gmail/constants.js +0 -2
  64. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  65. package/src/injected-js/gmail/setup-gmail-interceptor.js +0 -936
  66. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  67. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  68. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  69. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -109
  70. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +0 -71
  71. package/src/injected-js/gmail/thread-identifier/index.js +0 -133
  72. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +0 -61
  73. package/src/injected-js/injected-logger.js +0 -50
  74. package/src/injected-js/main.js +0 -49
  75. package/src/injected-js/message-metadata-holder.js +0 -103
  76. package/src/injected-js/setup-data-exposer.js +0 -135
  77. package/src/injected-js/setup-error-silencer.js +0 -15
  78. package/src/injected-js/setup-event-reemitter.js +0 -47
  79. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  80. package/src/injected-js/setupInboxCustomViewLinkFixer.js +0 -24
  81. package/src/injected-js/setupPushStateListener.js +0 -14
  82. package/src/injected-js/xhr-helper.js +0 -43
  83. package/src/injected-js/xhr-proxy-factory.js +0 -537
  84. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  85. package/src/platform-implementation-js/constants/router.js +0 -60
  86. package/src/platform-implementation-js/constants/toolbars.js +0 -5
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +0 -158
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -20
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -38
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +0 -14
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +0 -60
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +0 -47
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +0 -31
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +0 -22
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +0 -18
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +0 -57
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +0 -40
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +0 -55
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -14
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +0 -177
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +0 -17
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +0 -49
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +0 -18
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +0 -138
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +0 -112
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +0 -152
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +0 -21
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +0 -48
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +0 -357
  116. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +0 -19
  117. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +0 -36
  118. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +0 -36
  119. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +0 -85
  120. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +0 -142
  121. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +0 -115
  122. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +0 -50
  123. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +0 -723
  124. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  125. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  126. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -264
  127. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -201
  128. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -532
  129. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -300
  130. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  131. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +0 -92
  132. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  133. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -129
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +0 -80
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +0 -23
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +0 -26
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +0 -16
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +0 -723
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +0 -24
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +0 -172
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +0 -106
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +0 -338
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +0 -22
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +0 -720
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +0 -135
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +0 -50
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +0 -65
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +0 -66
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +0 -10
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +0 -14
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +0 -13
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +0 -60
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +0 -54
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +0 -98
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +0 -13
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +0 -18
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +0 -16
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +0 -23
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +0 -19
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +0 -355
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +0 -21
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +0 -63
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +0 -19
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +0 -123
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +0 -16
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +0 -1542
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -4
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +0 -75
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +0 -737
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -763
  180. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +0 -103
  181. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +0 -508
  182. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +0 -236
  183. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  184. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +0 -986
  185. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +0 -26
  186. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +0 -658
  187. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +0 -459
  188. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +0 -265
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -61
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -58
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +0 -23
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -101
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  196. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  197. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +0 -42
  198. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  199. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +0 -112
  200. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +0 -122
  201. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +0 -194
  202. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +0 -352
  203. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +0 -76
  204. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +0 -57
  205. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +0 -291
  206. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +0 -28
  207. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +0 -46
  208. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  209. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +0 -17
  210. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +0 -44
  211. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  212. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +0 -18
  213. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  214. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +0 -13
  215. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  216. package/src/platform-implementation-js/driver-common/inboxAjax.js +0 -5
  217. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  218. package/src/platform-implementation-js/driver-common/requestGmailThread.js +0 -24
  219. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +0 -245
  220. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +0 -144
  221. package/src/platform-implementation-js/driver-common/sidebar/constants.js +0 -26
  222. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  223. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +0 -1
  224. package/src/platform-implementation-js/driver-interfaces/driver.js +0 -1
  225. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +0 -1
  226. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +0 -1
  227. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  228. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  229. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  230. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  231. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  232. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +0 -35
  233. package/src/platform-implementation-js/lib/css-selector-escape.js +0 -6
  234. package/src/platform-implementation-js/lib/delay-asap.js +0 -10
  235. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  236. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  237. package/src/platform-implementation-js/lib/dom/custom-events.js +0 -5
  238. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +0 -9
  239. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  240. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  241. package/src/platform-implementation-js/lib/dom/get-selection.js +0 -30
  242. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  243. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +0 -83
  244. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +0 -12
  245. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  246. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  247. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -27
  248. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  249. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  250. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  251. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +0 -8
  252. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -38
  253. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  254. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  255. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  256. package/src/platform-implementation-js/lib/dom/set-css.js +0 -20
  257. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +0 -88
  258. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  259. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  260. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  261. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  262. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  263. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  264. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  265. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +0 -124
  266. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  267. package/src/platform-implementation-js/lib/idMap.js +0 -40
  268. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  269. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  270. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -13
  271. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  272. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +0 -44
  273. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  274. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  275. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  276. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  277. package/src/platform-implementation-js/lib/logger.js +0 -439
  278. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +0 -10
  279. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  280. package/src/platform-implementation-js/lib/populateRouteID.js +0 -17
  281. package/src/platform-implementation-js/lib/react/ElementContainer.js +0 -26
  282. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +0 -8
  283. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -16
  284. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  285. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  286. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +0 -12
  287. package/src/platform-implementation-js/lib/toLiveSet.js +0 -22
  288. package/src/platform-implementation-js/lib/wait-for.js +0 -38
  289. package/src/platform-implementation-js/lib/waitForAsync.js +0 -18
  290. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +0 -5
  291. package/src/platform-implementation-js/main.js +0 -42
  292. package/src/platform-implementation-js/namespaces/app-menu.js +0 -81
  293. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  294. package/src/platform-implementation-js/namespaces/compose.js +0 -59
  295. package/src/platform-implementation-js/namespaces/conversations.js +0 -83
  296. package/src/platform-implementation-js/namespaces/global.js +0 -30
  297. package/src/platform-implementation-js/namespaces/keyboard.js +0 -30
  298. package/src/platform-implementation-js/namespaces/lists.js +0 -40
  299. package/src/platform-implementation-js/namespaces/modal.js +0 -43
  300. package/src/platform-implementation-js/namespaces/nav-menu.js +0 -33
  301. package/src/platform-implementation-js/namespaces/router.js +0 -139
  302. package/src/platform-implementation-js/namespaces/search.js +0 -29
  303. package/src/platform-implementation-js/namespaces/toolbars.js +0 -147
  304. package/src/platform-implementation-js/namespaces/user.js +0 -57
  305. package/src/platform-implementation-js/namespaces/widgets.js +0 -73
  306. package/src/platform-implementation-js/platform-implementation.js +0 -178
  307. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  308. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -442
  309. package/src/platform-implementation-js/views/app-toolbar-button-view.js +0 -43
  310. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -256
  311. package/src/platform-implementation-js/views/collapsible-section-view.js +0 -63
  312. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  313. package/src/platform-implementation-js/views/compose-view.js +0 -310
  314. package/src/platform-implementation-js/views/content-panel-view.js +0 -36
  315. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +0 -41
  316. package/src/platform-implementation-js/views/conversations/custom-message-view.js +0 -117
  317. package/src/platform-implementation-js/views/conversations/message-view.js +0 -203
  318. package/src/platform-implementation-js/views/conversations/thread-view.js +0 -97
  319. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  320. package/src/platform-implementation-js/views/native-nav-item-view.js +0 -60
  321. package/src/platform-implementation-js/views/nav-item-view.js +0 -130
  322. package/src/platform-implementation-js/views/route-view/custom-route-view.js +0 -25
  323. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +0 -29
  324. package/src/platform-implementation-js/views/route-view/list-route-view.js +0 -46
  325. package/src/platform-implementation-js/views/route-view/route-view.js +0 -47
  326. package/src/platform-implementation-js/views/section-view.js +0 -60
  327. package/src/platform-implementation-js/views/thread-row-view.js +0 -90
  328. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  329. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  330. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -121
  331. package/src/platform-implementation-js/widgets/drawer-view.js +0 -46
  332. package/src/platform-implementation-js/widgets/modal-view.js +0 -108
  333. package/src/platform-implementation-js/widgets/mole-view.js +0 -38
  334. package/src/platform-implementation-js/widgets/top-message-bar-view.js +0 -15
@@ -1,178 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-empty-function */
2
- import SafeEventEmitter from './lib/safe-event-emitter';
3
- import { BUILD_VERSION } from '../common/version';
4
- import get from '../common/get-or-fail';
5
- import Membrane from './lib/Membrane';
6
- import AttachmentCardView from './views/conversations/attachment-card-view';
7
- import GmailAttachmentCardView from './dom-driver/gmail/views/gmail-attachment-card-view';
8
- import MessageView from './views/conversations/message-view';
9
- import GmailMessageView from './dom-driver/gmail/views/gmail-message-view';
10
- import ThreadView from './views/conversations/thread-view';
11
- import GmailThreadView from './dom-driver/gmail/views/gmail-thread-view';
12
- import ThreadRowView from './views/thread-row-view';
13
- import GmailThreadRowView from './dom-driver/gmail/views/gmail-thread-row-view';
14
- import ComposeView from './views/compose-view';
15
- import GmailComposeView from './dom-driver/gmail/views/gmail-compose-view';
16
- import DummyRouteViewDriver from './views/route-view/dummy-route-view-driver';
17
- import RouteView from './views/route-view/route-view';
18
- import GmailRouteView from './dom-driver/gmail/views/gmail-route-view/gmail-route-view';
19
- import ButterBar from './namespaces/butter-bar';
20
- import Compose from './namespaces/compose';
21
- import Conversations from './namespaces/conversations';
22
- import Keyboard from './namespaces/keyboard';
23
- import Widgets from './namespaces/widgets';
24
- import Modal from './namespaces/modal';
25
- import Lists from './namespaces/lists';
26
- import NavMenu from './namespaces/nav-menu';
27
- import AppMenu from './namespaces/app-menu';
28
- import Router from './namespaces/router';
29
- import Search from './namespaces/search';
30
- import Toolbars from './namespaces/toolbars';
31
- import User from './namespaces/user';
32
- import Global from './namespaces/global';
33
- import GmailDriver from './dom-driver/gmail/gmail-driver';
34
- import Logger from './lib/logger';
35
- import isValidAppId from './lib/is-valid-app-id';
36
- const loadedAppIds = new Set();
37
- const memberMap = new WeakMap();
38
- export class PlatformImplementation extends SafeEventEmitter {
39
- destroyed;
40
- LOADER_VERSION;
41
- IMPL_VERSION;
42
- Compose;
43
- Conversations;
44
- Keyboard;
45
- User;
46
- Lists;
47
- NavMenu;
48
- AppMenu;
49
- Router;
50
- Search;
51
- Toolbars;
52
- ButterBar;
53
- Widgets;
54
- Global;
55
- Modal;
56
- Logger;
57
- constructor(driver, appId, piOpts) {
58
- super();
59
- const { appName, appIconUrl, VERSION: LOADER_VERSION } = piOpts;
60
- const members = {
61
- driver,
62
- };
63
- memberMap.set(this, members);
64
- if (process.env.NODE_ENV !== 'production') {
65
- this._members = members;
66
- }
67
- const membrane = new Membrane([
68
- [
69
- GmailComposeView,
70
- (viewDriver) => new ComposeView(driver, viewDriver, membrane),
71
- ],
72
- [
73
- GmailAttachmentCardView,
74
- (viewDriver) => new AttachmentCardView(viewDriver, driver, membrane),
75
- ],
76
- [
77
- GmailMessageView,
78
- (viewDriver) => new MessageView(viewDriver, appId, membrane, this.Conversations, driver),
79
- ],
80
- [
81
- GmailThreadView,
82
- (viewDriver) => new ThreadView(viewDriver, appId, driver, membrane),
83
- ],
84
- [GmailThreadRowView, (viewDriver) => new ThreadRowView(viewDriver)],
85
- [GmailRouteView, (viewDriver) => new RouteView(viewDriver)],
86
- [DummyRouteViewDriver, (viewDriver) => new RouteView(viewDriver)],
87
- ]);
88
- this.destroyed = false;
89
- this.LOADER_VERSION = LOADER_VERSION;
90
- this.IMPL_VERSION = BUILD_VERSION;
91
- this.ButterBar = new ButterBar(appId, driver);
92
- driver.setButterBar(this.ButterBar);
93
- this.Compose = new Compose(driver, membrane);
94
- this.Conversations = new Conversations(appId, driver, membrane);
95
- this.Keyboard = new Keyboard(appId, appName, appIconUrl, driver);
96
- this.User = new User(driver, piOpts);
97
- this.Lists = new Lists(appId, driver, membrane);
98
- this.NavMenu = new NavMenu(appId, driver);
99
- this.AppMenu = new AppMenu(driver);
100
- this.Router = new Router(appId, driver, membrane);
101
- this.Search = new Search(appId, driver);
102
- this.Toolbars = new Toolbars(appId, driver, membrane, piOpts);
103
- this.Widgets = new Widgets(appId, driver);
104
- if (piOpts.REQUESTED_API_VERSION === 1) {
105
- // Modal is deprecated; just drop it when apps switch to the next version
106
- // whenever we start that.
107
- this.Modal = new Modal(appId, driver, piOpts);
108
- }
109
- if (piOpts.REQUESTED_API_VERSION >= 2) {
110
- // new Global namespace only available in v2 or above
111
- this.Global = new Global(appId, driver, piOpts);
112
- }
113
- this.Logger = driver.getLogger().getAppLogger();
114
- }
115
- destroy() {
116
- if (!this.destroyed) {
117
- this.destroyed = true;
118
- get(memberMap, this).driver.destroy();
119
- this.emit('destroy');
120
- }
121
- }
122
- }
123
- // returns a promise for the PlatformImplementation object
124
- export function makePlatformImplementation(appId, _opts, envData) {
125
- if (typeof appId !== 'string') {
126
- throw new Error('appId must be a string');
127
- }
128
- const opts = {
129
- // defaults
130
- globalErrorLogging: true,
131
- eventTracking: true,
132
- inboxBeta: false,
133
- ..._opts,
134
- };
135
- opts.REQUESTED_API_VERSION = +opts.REQUESTED_API_VERSION;
136
- switch (opts.REQUESTED_API_VERSION) {
137
- case 2:
138
- opts.inboxBeta = true;
139
- break;
140
- case 1:
141
- break;
142
- default:
143
- throw new Error('InboxSDK: Unsupported API version ' + opts.REQUESTED_API_VERSION);
144
- }
145
- const LOADER_VERSION = opts.VERSION;
146
- const IMPL_VERSION = BUILD_VERSION;
147
- const logger = new Logger(appId, opts, LOADER_VERSION, IMPL_VERSION);
148
- const origin = (process.env.NODE_ENV === 'test' && global.__test_origin) ||
149
- document.location.origin;
150
- if (origin !== 'https://mail.google.com') {
151
- // never resolve
152
- return new Promise(() => { });
153
- }
154
- const driver = new GmailDriver(appId, LOADER_VERSION, IMPL_VERSION, logger, opts, envData);
155
- return driver.onready.then(() => {
156
- if (!isValidAppId(appId)) {
157
- console.error(`
158
- ===========================================================
159
- InboxSDK: You have loaded InboxSDK with an invalid appId:
160
- ${appId}
161
- Registering an appId is free. Please see
162
- https://www.inboxsdk.com/docs/#RequiredSetup
163
- ===========================================================
164
- `);
165
- driver.showAppIdWarning();
166
- }
167
- if (driver.isRunningInPageContext()) {
168
- console.warn('Running the InboxSDK outside of an extension content script is not recommended!');
169
- }
170
- logger.eventSdkPassive('instantiate');
171
- const pi = new PlatformImplementation(driver, appId, opts);
172
- if (!loadedAppIds.has(appId)) {
173
- loadedAppIds.add(appId);
174
- logger.eventSdkPassive('load');
175
- }
176
- return pi;
177
- });
178
- }
@@ -1,16 +0,0 @@
1
- import SafeEventEmitter from '../lib/safe-event-emitter';
2
- export default class SimpleElementView extends SafeEventEmitter {
3
- el;
4
- destroyed = false;
5
- constructor(el) {
6
- super();
7
- this.el = el;
8
- }
9
- destroy() {
10
- if (this.destroyed)
11
- return;
12
- this.destroyed = true;
13
- this.emit('destroy');
14
- this.el.remove();
15
- }
16
- }
@@ -1,442 +0,0 @@
1
- import Kefir from 'kefir';
2
- import kefirBus from 'kefir-bus';
3
- import cx from 'classnames';
4
- import EventEmitter from '../lib/safe-event-emitter';
5
- import { GmailAppMenuItemView, NATIVE_CLASS, INBOXSDK_CLASS, ICON_ELEMENT_SELECTOR, } from '../dom-driver/gmail/views/gmail-app-menu-item-view';
6
- import { NATIVE_CLASS as PANEL_NATIVE_CLASS, CollapsiblePanelView, } from './collapsible-panel-view';
7
- import { addCollapsiblePanel } from '../dom-driver/gmail/gmail-driver/add-collapsible-panel';
8
- import GmailElementGetter from '../dom-driver/gmail/gmail-element-getter';
9
- import defer from '../../common/defer';
10
- var NativeAppMenuClassName;
11
- (function (NativeAppMenuClassName) {
12
- NativeAppMenuClassName["MAIL"] = "XJ";
13
- NativeAppMenuClassName["CHAT"] = "ao4";
14
- NativeAppMenuClassName["SPACES"] = "aIt";
15
- NativeAppMenuClassName["MEET"] = "adZ";
16
- })(NativeAppMenuClassName || (NativeAppMenuClassName = {}));
17
- // Native Gmail menu button => the panel class names mapping
18
- const nativeButtonToPanelMap = new Map([
19
- [NativeAppMenuClassName.MAIL, 'aIH'],
20
- [NativeAppMenuClassName.CHAT, 'arL'],
21
- [NativeAppMenuClassName.SPACES, 'arM'],
22
- [NativeAppMenuClassName.MEET, undefined], // Meet
23
- ]);
24
- /**
25
- * Mail routes list is not exhaustive
26
- */
27
- const MAIL_ROUTES = ['inbox/:page'];
28
- const CHAT_ROUTES = ['chat/welcome', 'chat/dm/:chatID'];
29
- const SPACES_ROUTES = ['rooms/welcome', 'chat/space/:spaceID'];
30
- const MEET_ROUTES = ['calls'];
31
- const routeIDtoMenuItemClass = Object.fromEntries([
32
- ...MAIL_ROUTES.map((route) => [route, NativeAppMenuClassName.MAIL]),
33
- ...CHAT_ROUTES.map((route) => [route, NativeAppMenuClassName.CHAT]),
34
- ...SPACES_ROUTES.map((route) => [route, NativeAppMenuClassName.SPACES]),
35
- ...MEET_ROUTES.map((route) => [route, NativeAppMenuClassName.MEET]),
36
- ]);
37
- /**
38
- * Each AppMenuItemView represents an entry in the app menu of Gmail. Typically the main action of a AppMenuItemView is performed when the user clicks or hovers on the app menu item.
39
- *
40
- * @note Contains both a native Gmail app menu item and a collapsible panel.
41
- */
42
- class AppMenuItemView extends EventEmitter {
43
- static #menuItemChangeStream = Kefir.pool();
44
- static #menuItemChangeBus = kefirBus();
45
- static #menuItemAddedDeferred = defer();
46
- static #routeViewDriverStream;
47
- static #menuItemToPanelMap = new Map();
48
- static #appMenuItemViews = new Set();
49
- static #getActivePanel() {
50
- const appMenuElement = GmailElementGetter.getAppMenuContainer();
51
- const { ACTIVE } = CollapsiblePanelView.elementCss;
52
- const nativePanel = appMenuElement?.querySelector(`.${PANEL_NATIVE_CLASS}.${ACTIVE}`);
53
- return nativePanel;
54
- }
55
- static #getActiveMenuItem() {
56
- const appMenuElement = GmailElementGetter.getAppMenuContainer();
57
- const { ACTIVE } = GmailAppMenuItemView.elementCss;
58
- const button = appMenuElement?.querySelector(`.${NATIVE_CLASS}.${ACTIVE}`);
59
- return button;
60
- }
61
- static #isPanelLess() {
62
- const activePanel = AppMenuItemView.#getActivePanel();
63
- return !activePanel;
64
- }
65
- static #adjustTooltipNub() {
66
- // adjust all menu items' collapsible panel's tooltip nub position
67
- const appMenuElement = GmailElementGetter.getAppMenu();
68
- for (const menuItem of appMenuElement?.querySelectorAll(`.${NATIVE_CLASS}`) ?? []) {
69
- const panel = AppMenuItemView.#menuItemToPanelMap.get(menuItem);
70
- if (!panel)
71
- continue;
72
- const nubElement = panel?.querySelector('* > .aTV');
73
- const iconElement = menuItem?.querySelector('.V6');
74
- const iconElementBox = iconElement?.getBoundingClientRect();
75
- const offsetTop = (iconElement?.offsetTop ?? 0) + (iconElementBox?.height ?? 0) * 0.5;
76
- const nubSide = 17;
77
- const nubDiagonal = nubSide * Math.sqrt(2);
78
- const offsetNub = nubDiagonal / 4;
79
- const offset = offsetTop - offsetNub;
80
- if (nubElement && offset) {
81
- nubElement.style.top = `${offset}px`;
82
- }
83
- }
84
- }
85
- static #isPanelDropdownShown() {
86
- const sdkDropdown = document.querySelector('.inboxsdk__menu');
87
- if (sdkDropdown) {
88
- return true;
89
- }
90
- const mailDropdown = document.querySelector('.JM');
91
- if (mailDropdown && mailDropdown.style.display !== 'none') {
92
- return true;
93
- }
94
- const chatAndSpacesDropdown = document.querySelector('.tP');
95
- if (chatAndSpacesDropdown &&
96
- chatAndSpacesDropdown.style.display !== 'none') {
97
- return true;
98
- }
99
- return false;
100
- }
101
- static #setUpRouteViewDriverStream(driver) {
102
- if (AppMenuItemView.#routeViewDriverStream)
103
- return;
104
- AppMenuItemView.#routeViewDriverStream = driver.getRouteViewDriverStream();
105
- // Activate menu items on route changes. Used for deep-links, browser history navigation etc.
106
- AppMenuItemView.#routeViewDriverStream.onValue(async (routeView) => {
107
- const routeViewID = routeView.getRouteID();
108
- const routeType = routeView.getRouteType();
109
- /* Handling custom app menu items */
110
- const descriptors = Array.from(AppMenuItemView.#appMenuItemViews, async (appMenuItemView) => {
111
- const gmailView = await appMenuItemView.#gmailViewPromise;
112
- return [gmailView.menuItemDescriptor, gmailView];
113
- });
114
- const results = await Promise.all(descriptors);
115
- const [, gmailView] = results.find(([descriptor]) => {
116
- return descriptor?.isRouteActive(routeView);
117
- }) ?? [];
118
- if (gmailView?.element) {
119
- AppMenuItemView.#menuItemChangeBus.emit([
120
- 'route-activated',
121
- gmailView.element,
122
- ]);
123
- return;
124
- }
125
- /* Handling native app menu items */
126
- let menuItemClass = '';
127
- if (routeViewID) {
128
- menuItemClass = routeIDtoMenuItemClass[routeViewID];
129
- }
130
- if ((!routeViewID || !menuItemClass) && routeType !== 'CUSTOM') {
131
- menuItemClass = NativeAppMenuClassName.MAIL;
132
- }
133
- const menuItemElement = menuItemClass &&
134
- document.querySelector(`.${menuItemClass}`);
135
- if (menuItemElement) {
136
- AppMenuItemView.#menuItemChangeBus.emit([
137
- 'route-activated',
138
- menuItemElement,
139
- ]);
140
- }
141
- });
142
- }
143
- static {
144
- (async function init() {
145
- const gmailAppMenu = await GmailElementGetter.getAppMenuAsync();
146
- if (!gmailAppMenu) {
147
- return;
148
- }
149
- AppMenuItemView.#menuItemChangeStream.plug(AppMenuItemView.#menuItemChangeBus);
150
- // Set up menu item panel -> menu collapsible panel element mappings
151
- for (const [menuItemClass, panelClass] of nativeButtonToPanelMap) {
152
- const menuItemElement = document.querySelector(`.${NATIVE_CLASS}.${menuItemClass}`);
153
- const panelElement = panelClass
154
- ? document.querySelector(`.${PANEL_NATIVE_CLASS}.${panelClass}`)
155
- : null;
156
- if (menuItemElement) {
157
- AppMenuItemView.#menuItemToPanelMap.set(menuItemElement, panelElement ?? undefined);
158
- }
159
- }
160
- })();
161
- }
162
- static {
163
- AppMenuItemView.#menuItemAddedDeferred.promise.then(() => {
164
- // Set up event listeners we use to control menu UI
165
- // We intercept some events emitted on Gmail (native) menu items to gain full control of the menu (menu items and panels).
166
- // Thus, some native event handlers won't be invoked so we replicate the Gmail's behavior by ourselves.
167
- const appMenuElement = GmailElementGetter.getAppMenuContainer();
168
- for (const nativeMenuItem of appMenuElement?.querySelectorAll(`.${NATIVE_CLASS}:not(.${INBOXSDK_CLASS})`) ?? []) {
169
- // Gmail uses this listener for panel hover state activation. It's prevented from propagation and we handle UI updates
170
- const buttonElement = nativeMenuItem.querySelector('.V6.CL');
171
- buttonElement?.addEventListener('mouseenter', (e) => {
172
- e.stopImmediatePropagation();
173
- AppMenuItemView.#menuItemChangeBus.emit([
174
- 'mouseenter',
175
- nativeMenuItem,
176
- e,
177
- ]);
178
- }, true);
179
- // Gmail uses this listener for panel hover state deactivation. It's prevented from propagation and we handle UI updates
180
- nativeMenuItem.addEventListener('mouseleave', (e) => {
181
- e.stopImmediatePropagation();
182
- AppMenuItemView.#menuItemChangeBus.emit([
183
- 'mouseleave',
184
- nativeMenuItem,
185
- e,
186
- ]);
187
- }, true);
188
- // Click event isn't prevented from propagation to let Gmail handle routing. The styling is handled by us
189
- nativeMenuItem.addEventListener('click', () => {
190
- AppMenuItemView.#menuItemChangeBus.emit(['click', nativeMenuItem]);
191
- });
192
- // Handle moving cursor out of panel. We use it to enhance the styling since it won't be handled by Gmail
193
- const panel = AppMenuItemView.#menuItemToPanelMap.get(nativeMenuItem);
194
- panel?.addEventListener('mouseleave', (e) => {
195
- e.stopImmediatePropagation();
196
- AppMenuItemView.#menuItemChangeBus.emit([
197
- 'mouseleave',
198
- nativeMenuItem,
199
- e,
200
- ]);
201
- });
202
- }
203
- });
204
- }
205
- static {
206
- AppMenuItemView.#menuItemChangeStream.onValue(async (v) => {
207
- const [type, menuItem, mouseEvent] = v;
208
- const { ACTIVE, HOVER } = GmailAppMenuItemView.elementCss;
209
- function handleActivate() {
210
- const appMenuElement = GmailElementGetter.getAppMenuContainer();
211
- // deactivate active panel
212
- const activePanel = AppMenuItemView.#getActivePanel();
213
- if (activePanel) {
214
- activePanel.style.removeProperty('height');
215
- activePanel.classList.remove(CollapsiblePanelView.elementCss.ACTIVE);
216
- activePanel.classList.remove(CollapsiblePanelView.elementCss.HOVER);
217
- }
218
- // deactivate menu items and handle keyboard accessibility
219
- for (const menuItem_ of appMenuElement?.querySelectorAll(`.${NATIVE_CLASS}`) ?? []) {
220
- menuItem_.classList.remove(ACTIVE);
221
- menuItem_.classList.remove(HOVER);
222
- // update tabindex
223
- const iconElement = menuItem_.querySelector(ICON_ELEMENT_SELECTOR);
224
- if (iconElement) {
225
- iconElement.tabIndex = menuItem_ === menuItem ? 0 : -1;
226
- }
227
- }
228
- // activate menu item
229
- menuItem.classList.add(ACTIVE);
230
- // activate panel
231
- const panel = AppMenuItemView.#menuItemToPanelMap.get(menuItem);
232
- if (panel) {
233
- panel.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
234
- }
235
- }
236
- switch (type) {
237
- case 'mouseenter': {
238
- const panel = AppMenuItemView.#menuItemToPanelMap.get(menuItem);
239
- const activeMenuItem = AppMenuItemView.#getActiveMenuItem();
240
- const activePanel = AppMenuItemView.#getActivePanel();
241
- const burgerMenuOpen = GmailElementGetter.isAppBurgerMenuOpen();
242
- // hover-styled panel is displayed for collapsed burger menu
243
- if (activeMenuItem === menuItem &&
244
- activePanel === panel &&
245
- burgerMenuOpen)
246
- return;
247
- // deactivate active panel
248
- if (activePanel) {
249
- activePanel.style.removeProperty('height');
250
- activePanel.classList.remove(CollapsiblePanelView.elementCss.ACTIVE);
251
- activePanel.classList.remove(CollapsiblePanelView.elementCss.HOVER);
252
- }
253
- // activate new panel
254
- if (panel) {
255
- const height = window.innerHeight - panel.getBoundingClientRect().top;
256
- panel.style.cssText = `height: ${height}px;`;
257
- panel.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
258
- panel.classList.add(CollapsiblePanelView.elementCss.HOVER);
259
- // hover menu item
260
- menuItem.classList.add(HOVER);
261
- // handle burger menu collapsed
262
- if (!burgerMenuOpen) {
263
- for (const panel of document.querySelectorAll(CollapsiblePanelView.elementSelectors.NATIVE) ?? []) {
264
- panel.classList.add(CollapsiblePanelView.elementCss.COLLAPSED_HOVER);
265
- }
266
- }
267
- }
268
- else {
269
- // panel doesn't exist (i.e. Meet) so activate active menu item's panel instead (as Gmail currently does -- FEB 2023)
270
- const panel = activeMenuItem &&
271
- AppMenuItemView.#menuItemToPanelMap.get(activeMenuItem);
272
- panel?.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
273
- }
274
- break;
275
- }
276
- case 'mouseleave': {
277
- // Do not handle blur event when we're in one of the panel's dropdowns
278
- const isPanelDropdownShown = AppMenuItemView.#isPanelDropdownShown();
279
- if (isPanelDropdownShown)
280
- return;
281
- const activeMenuItem = AppMenuItemView.#getActiveMenuItem();
282
- const activePanel = AppMenuItemView.#getActivePanel();
283
- const activeMenuItemPanel = activeMenuItem &&
284
- AppMenuItemView.#menuItemToPanelMap.get(activeMenuItem);
285
- if (mouseEvent.relatedTarget instanceof Node &&
286
- (menuItem.contains(mouseEvent.relatedTarget) ||
287
- activePanel?.contains(mouseEvent.relatedTarget)))
288
- return;
289
- const burgerMenuOpen = GmailElementGetter.isAppBurgerMenuOpen();
290
- if (activePanel === activeMenuItemPanel && burgerMenuOpen)
291
- return;
292
- // unhover menu item
293
- menuItem.classList.remove(HOVER);
294
- // handle burger menu collapsed
295
- for (const panel of document.querySelectorAll(CollapsiblePanelView.elementSelectors.NATIVE) ?? []) {
296
- panel.classList.remove(CollapsiblePanelView.elementCss.COLLAPSED_HOVER);
297
- }
298
- // deactivate active panel
299
- if (activePanel) {
300
- activePanel.style.removeProperty('height');
301
- activePanel.classList.remove(CollapsiblePanelView.elementCss.ACTIVE);
302
- activePanel.classList.remove(CollapsiblePanelView.elementCss.HOVER);
303
- }
304
- // activate active menu item panel
305
- if (activeMenuItemPanel) {
306
- activeMenuItemPanel.classList.add(CollapsiblePanelView.elementCss.ACTIVE);
307
- }
308
- break;
309
- }
310
- case 'click': {
311
- handleActivate();
312
- // handle panel-less mode
313
- const isPanelLess = AppMenuItemView.#isPanelLess();
314
- for (const panel of document.querySelectorAll(CollapsiblePanelView.elementSelectors.NATIVE) ?? []) {
315
- panel.classList.toggle(CollapsiblePanelView.elementCss.PANEL_LESS, isPanelLess);
316
- }
317
- GmailElementGetter.getAppMenu()?.classList.toggle('aTO', isPanelLess);
318
- GmailElementGetter.getAppHeader()?.classList.toggle('aTO', isPanelLess);
319
- break;
320
- }
321
- case 'route-activated': {
322
- handleActivate();
323
- break;
324
- }
325
- }
326
- });
327
- }
328
- get menuItemDescriptor() {
329
- return this.#menuItemDescriptor;
330
- }
331
- #driver;
332
- #destroyed = false;
333
- #gmailViewPromise;
334
- #collapsiblePanel;
335
- #menuItemDescriptor;
336
- constructor(driver, menuItemDescriptor) {
337
- super();
338
- this.#driver = driver;
339
- this.#menuItemDescriptor = menuItemDescriptor;
340
- const gmailAppMenuItemView = this.#driver.addAppMenuItem(menuItemDescriptor);
341
- this.#gmailViewPromise = gmailAppMenuItemView;
342
- gmailAppMenuItemView.then((gmailView) => {
343
- if (this.#destroyed || !gmailView) {
344
- return; //we have been removed already
345
- }
346
- const gmailElement = gmailView.element;
347
- if (gmailElement) {
348
- AppMenuItemView.#menuItemToPanelMap.set(gmailElement, undefined);
349
- AppMenuItemView.#adjustTooltipNub();
350
- }
351
- gmailView.on('destroy', () => {
352
- this.remove();
353
- });
354
- gmailView.on('click', () => {
355
- AppMenuItemView.#menuItemChangeBus.emit(['click', gmailElement]);
356
- this.emit('click');
357
- });
358
- gmailView.on('hover', (e) => {
359
- AppMenuItemView.#menuItemChangeBus.emit([
360
- 'mouseenter',
361
- gmailElement,
362
- e,
363
- ]);
364
- this.emit('hover');
365
- });
366
- gmailView.on('blur', (e) => {
367
- AppMenuItemView.#menuItemChangeBus.emit([
368
- 'mouseleave',
369
- gmailElement,
370
- e,
371
- ]);
372
- this.emit('blur');
373
- });
374
- });
375
- AppMenuItemView.#setUpRouteViewDriverStream(driver);
376
- AppMenuItemView.#menuItemAddedDeferred.resolve(undefined);
377
- AppMenuItemView.#appMenuItemViews.add(this);
378
- }
379
- /**
380
- * Add a panel to an AppMenuItemView.
381
- *
382
- * @param panelDescriptor A single descriptor for the app menu item panel.
383
- *
384
- * @returns A promise that resolves to the CollapsiblePanelView instance. The result is undefined if the SDK doesn't detect the AppMenu being shown.
385
- */
386
- async addCollapsiblePanel(panelDescriptor) {
387
- const descriptor = {
388
- ...panelDescriptor,
389
- className: cx(panelDescriptor.className, {
390
- [CollapsiblePanelView.elementCss.COLLAPSED]: !GmailElementGetter.isAppBurgerMenuOpen(),
391
- [CollapsiblePanelView.elementCss.PANEL_LESS]: AppMenuItemView.#isPanelLess(),
392
- }),
393
- };
394
- const collapsiblePanel = await addCollapsiblePanel(this.#driver, descriptor, this.menuItemDescriptor.insertIndex);
395
- if (collapsiblePanel) {
396
- this.#gmailViewPromise.then((gmailView) => {
397
- const gmailElement = gmailView.element;
398
- if (gmailElement) {
399
- collapsiblePanel.on('blur', (e) => {
400
- AppMenuItemView.#menuItemChangeBus.value([
401
- 'mouseleave',
402
- gmailElement,
403
- e,
404
- ]);
405
- });
406
- AppMenuItemView.#menuItemToPanelMap.set(gmailElement, collapsiblePanel.element);
407
- AppMenuItemView.#adjustTooltipNub();
408
- }
409
- });
410
- }
411
- this.#collapsiblePanel = collapsiblePanel;
412
- return collapsiblePanel;
413
- }
414
- /**
415
- * Updates the AppMenuItem's AppMenuItemDescriptor
416
- *
417
- * @param menuItemDescriptor The new descriptor for the app menu item panel.
418
- */
419
- async update(menuItemDescriptor) {
420
- const gmailView = await this.#gmailViewPromise;
421
- gmailView.menuItemDescriptor = menuItemDescriptor;
422
- this.#menuItemDescriptor = menuItemDescriptor;
423
- }
424
- /**
425
- * Remove this AppMenuItemView from its parent
426
- */
427
- remove() {
428
- if (this.#destroyed)
429
- return;
430
- this.#destroyed = true;
431
- this.emit('destroy');
432
- this.#collapsiblePanel?.remove();
433
- this.#gmailViewPromise.then((gmailView) => {
434
- gmailView.element &&
435
- AppMenuItemView.#menuItemToPanelMap.delete(gmailView.element);
436
- gmailView.remove();
437
- AppMenuItemView.#adjustTooltipNub();
438
- });
439
- AppMenuItemView.#appMenuItemViews.delete(this);
440
- }
441
- }
442
- export { AppMenuItemView };
@@ -1,43 +0,0 @@
1
- import EventEmitter from '../lib/safe-event-emitter';
2
- import get from '../../common/get-or-fail';
3
- const memberMap = new WeakMap(); // Documented in src/docs/app-toolbar-button-view.js
4
- export default class AppToolbarButtonView extends EventEmitter {
5
- destroyed;
6
- constructor(driver, appToolbarButtonViewDriverPromise) {
7
- super();
8
- const members = {
9
- appToolbarButtonViewDriverPromise,
10
- appToolbarButtonViewDriver: null,
11
- };
12
- memberMap.set(this, members);
13
- this.destroyed = false;
14
- members.appToolbarButtonViewDriverPromise.then((appToolbarButtonViewDriver) => {
15
- members.appToolbarButtonViewDriver = appToolbarButtonViewDriver;
16
- appToolbarButtonViewDriver.getStopper().onValue(() => {
17
- this.destroyed = true;
18
- this.emit('destroy');
19
- });
20
- });
21
- driver.getStopper().onValue(() => {
22
- this.remove();
23
- });
24
- }
25
- open() {
26
- const members = get(memberMap, this);
27
- members.appToolbarButtonViewDriverPromise.then(function (appToolbarButtonViewDriver) {
28
- appToolbarButtonViewDriver.open();
29
- });
30
- }
31
- close() {
32
- const members = get(memberMap, this);
33
- members.appToolbarButtonViewDriverPromise.then(function (appToolbarButtonViewDriver) {
34
- appToolbarButtonViewDriver.close();
35
- });
36
- }
37
- remove() {
38
- const members = get(memberMap, this);
39
- members.appToolbarButtonViewDriverPromise.then(function (appToolbarButtonViewDriver) {
40
- appToolbarButtonViewDriver.destroy();
41
- });
42
- }
43
- }