@inboxsdk/core 0.2.28-alpha.6 → 0.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. package/inboxsdk.js +28 -62
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +1 -5
  4. package/pageWorld.js.map +1 -1
  5. package/src/build/exec.d.ts +0 -1
  6. package/src/build/spawn.d.ts +0 -1
  7. package/src/common/ajax.d.ts +0 -1
  8. package/src/common/cachebust-url.d.ts +0 -1
  9. package/src/common/censorHTMLstring.d.ts +0 -1
  10. package/src/common/censorHTMLtree.d.ts +0 -1
  11. package/src/common/censorJSONTree.d.ts +0 -1
  12. package/src/common/connectivity-test.d.ts +0 -1
  13. package/src/common/defer.d.ts +0 -1
  14. package/src/common/find-parent.d.ts +0 -1
  15. package/src/common/get-extension-id.d.ts +0 -1
  16. package/src/common/get-or-fail.d.ts +0 -1
  17. package/src/common/get-session-id.d.ts +0 -1
  18. package/src/common/get-stack-trace.d.ts +0 -1
  19. package/src/common/html-to-text.d.ts +0 -1
  20. package/src/common/isElementVisible.d.ts +0 -1
  21. package/src/common/load-script.d.ts +0 -1
  22. package/src/common/log-error.d.ts +0 -1
  23. package/src/common/quoted-split.d.ts +0 -1
  24. package/src/common/rate-limit-queuer.d.ts +0 -1
  25. package/src/common/rate-limit.d.ts +0 -1
  26. package/src/common/version.d.ts +0 -1
  27. package/src/inboxsdk-js/check-requirements.js +3 -7
  28. package/src/inboxsdk-js/header.js +0 -1
  29. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +6 -5
  30. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +3 -4
  31. package/src/inboxsdk-js/inboxsdk-REMOTE.js +1 -3
  32. package/src/inboxsdk-js/inboxsdk-TEST.js +3 -4
  33. package/src/inboxsdk-js/inboxsdk.js +39 -33
  34. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +18 -15
  35. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts +0 -1
  36. package/src/inboxsdk.d.ts +27 -12
  37. package/src/injected-js/gmail/constants.d.ts +0 -1
  38. package/src/injected-js/gmail/modify-suggestions.d.ts +0 -1
  39. package/src/injected-js/gmail/modify-suggestions.test.js +9 -8
  40. package/src/injected-js/gmail/setup-gmail-interceptor.js +579 -340
  41. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts +0 -1
  42. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts +0 -1
  43. package/src/injected-js/gmail/sync-compose-processor.d.ts +0 -1
  44. package/src/injected-js/gmail/sync-compose-request-processor.d.ts +0 -1
  45. package/src/injected-js/gmail/sync-compose-request-processor.test.js +49 -39
  46. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +33 -20
  47. package/src/injected-js/gmail/thread-identifier/index.js +93 -57
  48. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +31 -22
  49. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +28 -12
  50. package/src/injected-js/inbox/setupAjaxInterceptor.js +121 -64
  51. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +66 -53
  52. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +36 -20
  53. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  54. package/src/injected-js/injected-logger.d.ts +0 -1
  55. package/src/injected-js/main.js +24 -11
  56. package/src/injected-js/message-metadata-holder.js +82 -52
  57. package/src/injected-js/setup-data-exposer.js +148 -89
  58. package/src/injected-js/setup-error-silencer.js +21 -21
  59. package/src/injected-js/setup-event-reemitter.js +22 -30
  60. package/src/injected-js/setupCustomViewEventAssassin.d.ts +0 -1
  61. package/src/injected-js/setupInboxCustomViewLinkFixer.js +29 -24
  62. package/src/injected-js/setupPushStateListener.js +11 -18
  63. package/src/injected-js/xhr-helper.js +65 -62
  64. package/src/injected-js/xhr-proxy-factory.js +445 -195
  65. package/src/injected-js/xhr-proxy-factory.test.js +991 -824
  66. package/src/platform-implementation-js/constants/nav-item-types.d.ts +0 -1
  67. package/src/platform-implementation-js/constants/router.js +9 -17
  68. package/src/platform-implementation-js/constants/toolbars.js +3 -8
  69. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  70. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +136 -115
  71. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts +2 -3
  72. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts +0 -1
  73. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +14 -13
  74. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +48 -27
  75. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts +0 -1
  76. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +42 -31
  77. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +40 -30
  78. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts +0 -1
  79. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts +0 -1
  80. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +18 -10
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +28 -21
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +45 -33
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +49 -31
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +65 -58
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts +0 -1
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +124 -40
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +22 -17
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts +0 -1
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +11 -10
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +80 -44
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +26 -19
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +147 -71
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +148 -91
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +166 -150
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +120 -70
  96. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  97. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +67 -44
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +379 -230
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +307 -121
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +24 -17
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +49 -41
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +40 -30
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +60 -28
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +133 -61
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +110 -83
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +42 -30
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +46 -52
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +3 -13
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +683 -355
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts +0 -1
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts +0 -1
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts +0 -4
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts +0 -1
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts +0 -1
  115. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts +0 -1
  116. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts +0 -1
  117. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +93 -77
  118. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts +0 -1
  119. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts +0 -1
  120. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +82 -35
  121. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +94 -44
  122. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +19 -12
  123. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +29 -17
  124. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  125. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +797 -391
  126. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +9 -7
  127. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +109 -60
  128. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +135 -95
  129. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +211 -103
  130. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  131. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  132. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +541 -188
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +135 -67
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +49 -27
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +13 -7
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +22 -9
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +63 -36
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts +0 -1
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +113 -38
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts +0 -1
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +16 -11
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +17 -11
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +11 -8
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +47 -27
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +24 -11
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +111 -59
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts +0 -1
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +14 -15
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +17 -11
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +24 -18
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts +0 -1
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +23 -19
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts +0 -1
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +19 -11
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +376 -141
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +28 -17
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +70 -34
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts +0 -1
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +17 -10
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts +0 -1
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts +0 -1
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +137 -83
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +19 -10
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +1190 -632
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts +0 -1
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +38 -29
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +617 -327
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -34
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +48 -29
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +380 -188
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +194 -104
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts +0 -1
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +811 -382
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +58 -34
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +581 -330
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +277 -123
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +35 -15
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +571 -216
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +336 -152
  180. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +211 -87
  181. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts +0 -1
  182. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts +0 -1
  183. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts +0 -1
  184. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts +0 -1
  185. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +11 -10
  186. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts +0 -1
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts +0 -1
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts +0 -1
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +29 -20
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts +0 -1
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +76 -41
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +99 -45
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +128 -76
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +319 -128
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +78 -45
  196. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +4 -8
  197. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +54 -36
  198. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +53 -35
  199. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +15 -13
  200. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +18 -15
  201. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +13 -14
  202. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +20 -14
  203. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +13 -14
  204. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +67 -35
  205. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +18 -16
  206. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +185 -68
  207. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +56 -28
  208. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +10 -12
  209. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  210. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +35 -24
  211. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +89 -37
  212. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +78 -56
  213. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +32 -26
  214. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +109 -52
  215. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +8 -7
  216. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +20 -16
  217. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +16 -15
  218. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +83 -75
  219. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +823 -531
  220. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +61 -48
  221. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +12 -9
  222. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +19 -12
  223. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +33 -24
  224. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +388 -201
  225. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +265 -249
  226. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +152 -84
  227. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +67 -55
  228. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +65 -43
  229. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +56 -31
  230. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +294 -191
  231. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +45 -32
  232. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +39 -21
  233. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +240 -153
  234. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +150 -75
  235. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +37 -20
  236. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +114 -60
  237. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +65 -47
  238. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +52 -41
  239. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +36 -27
  240. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +80 -52
  241. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +649 -465
  242. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +58 -37
  243. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +26 -14
  244. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +235 -118
  245. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +11 -10
  246. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +46 -28
  247. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +202 -131
  248. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +80 -40
  249. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +61 -35
  250. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +221 -124
  251. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +213 -125
  252. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +126 -104
  253. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +51 -36
  254. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +297 -158
  255. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +35 -21
  256. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +43 -24
  257. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +68 -39
  258. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts +0 -1
  259. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +19 -14
  260. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +35 -27
  261. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts +0 -1
  262. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +22 -16
  263. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts +0 -1
  264. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  265. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts +0 -1
  266. package/src/platform-implementation-js/driver-common/inboxAjax.js +7 -12
  267. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts +0 -1
  268. package/src/platform-implementation-js/driver-common/requestGmailThread.js +20 -19
  269. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +306 -197
  270. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +161 -113
  271. package/src/platform-implementation-js/driver-common/update-icon.d.ts +0 -1
  272. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +114 -1
  273. package/src/platform-implementation-js/driver-interfaces/driver.d.ts +0 -5
  274. package/src/platform-implementation-js/driver-interfaces/driver.js +126 -1
  275. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +48 -4
  276. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +29 -1
  277. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +32 -1
  278. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +11 -1
  279. package/src/platform-implementation-js/lib/ErrorCollector.d.ts +0 -1
  280. package/src/platform-implementation-js/lib/Membrane.d.ts +0 -1
  281. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts +0 -1
  282. package/src/platform-implementation-js/lib/array-to-lifetimes.js +41 -43
  283. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +155 -139
  284. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts +0 -1
  285. package/src/platform-implementation-js/lib/common-page-communicator.d.ts +0 -1
  286. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +38 -19
  287. package/src/platform-implementation-js/lib/css-selector-escape.js +3 -7
  288. package/src/platform-implementation-js/lib/delay-asap.d.ts +0 -1
  289. package/src/platform-implementation-js/lib/delay-idle.d.ts +0 -1
  290. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts +0 -1
  291. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +11 -8
  292. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts +0 -1
  293. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts +0 -1
  294. package/src/platform-implementation-js/lib/dom/get-selection.js +52 -23
  295. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts +0 -1
  296. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +101 -69
  297. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +10 -8
  298. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts +0 -1
  299. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts +0 -1
  300. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts +0 -1
  301. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts +0 -1
  302. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts +0 -1
  303. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts +0 -1
  304. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +17 -15
  305. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts +0 -1
  306. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts +0 -1
  307. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +11 -8
  308. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts +0 -1
  309. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts +0 -1
  310. package/src/platform-implementation-js/lib/dom/set-css.js +3 -7
  311. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +11 -9
  312. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +33 -32
  313. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts +0 -1
  314. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts +0 -1
  315. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts +0 -1
  316. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts +0 -1
  317. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +26 -23
  318. package/src/platform-implementation-js/lib/fake-window-resize.d.ts +0 -1
  319. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts +0 -1
  320. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts +0 -1
  321. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +149 -86
  322. package/src/platform-implementation-js/lib/handler-registry.d.ts +0 -1
  323. package/src/platform-implementation-js/lib/idMap.d.ts +0 -1
  324. package/src/platform-implementation-js/lib/imageRequest.d.ts +0 -1
  325. package/src/platform-implementation-js/lib/incrementName.d.ts +0 -1
  326. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts +0 -1
  327. package/src/platform-implementation-js/lib/inject-script.d.ts +0 -1
  328. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +57 -42
  329. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts +0 -1
  330. package/src/platform-implementation-js/lib/is-valid-email.d.ts +0 -1
  331. package/src/platform-implementation-js/lib/isNotNil.d.ts +0 -1
  332. package/src/platform-implementation-js/lib/isStreakAppId.d.ts +0 -1
  333. package/src/platform-implementation-js/lib/logger.d.ts +0 -1
  334. package/src/platform-implementation-js/lib/make-revocable-function.js +21 -19
  335. package/src/platform-implementation-js/lib/make-revocable-function.test.js +22 -20
  336. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +17 -15
  337. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +18 -9
  338. package/src/platform-implementation-js/lib/persistent-queue.d.ts +0 -1
  339. package/src/platform-implementation-js/lib/populateRouteID.js +9 -8
  340. package/src/platform-implementation-js/lib/populateRouteID.test.js +19 -20
  341. package/src/platform-implementation-js/lib/react/ElementContainer.js +20 -23
  342. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +9 -10
  343. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +20 -13
  344. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +18 -13
  345. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +17 -11
  346. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts +0 -1
  347. package/src/platform-implementation-js/lib/shared-style.js +13 -14
  348. package/src/platform-implementation-js/lib/stopper-pool.d.ts +0 -1
  349. package/src/platform-implementation-js/lib/stream-wait-for.d.ts +0 -1
  350. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +17 -18
  351. package/src/platform-implementation-js/lib/toLiveSet.js +15 -17
  352. package/src/platform-implementation-js/lib/wait-for.d.ts +1 -2
  353. package/src/platform-implementation-js/lib/waitForAsync.d.ts +0 -1
  354. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +5 -6
  355. package/src/platform-implementation-js/main.js +24 -9
  356. package/src/platform-implementation-js/namespaces/butter-bar.d.ts +0 -1
  357. package/src/platform-implementation-js/namespaces/compose.js +60 -37
  358. package/src/platform-implementation-js/namespaces/conversations.js +124 -52
  359. package/src/platform-implementation-js/namespaces/global.js +39 -27
  360. package/src/platform-implementation-js/namespaces/keyboard.js +33 -29
  361. package/src/platform-implementation-js/namespaces/lists.js +31 -25
  362. package/src/platform-implementation-js/namespaces/modal.js +28 -34
  363. package/src/platform-implementation-js/namespaces/nav-menu.js +45 -30
  364. package/src/platform-implementation-js/namespaces/router.js +137 -70
  365. package/src/platform-implementation-js/namespaces/search.js +17 -19
  366. package/src/platform-implementation-js/namespaces/toolbars.js +117 -71
  367. package/src/platform-implementation-js/namespaces/user.js +37 -36
  368. package/src/platform-implementation-js/namespaces/widgets.js +61 -54
  369. package/src/platform-implementation-js/platform-implementation.d.ts +0 -2
  370. package/src/platform-implementation-js/platform-implementation.js +226 -98
  371. package/src/platform-implementation-js/views/SimpleElementView.d.ts +0 -1
  372. package/src/platform-implementation-js/views/app-toolbar-button-view.js +47 -26
  373. package/src/platform-implementation-js/views/collapsible-section-view.js +63 -66
  374. package/src/platform-implementation-js/views/compose-button-view.d.ts +0 -1
  375. package/src/platform-implementation-js/views/compose-view.d.ts +0 -1
  376. package/src/platform-implementation-js/views/content-panel-view.js +30 -28
  377. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +44 -21
  378. package/src/platform-implementation-js/views/conversations/custom-message-view.js +104 -44
  379. package/src/platform-implementation-js/views/conversations/message-view.js +202 -131
  380. package/src/platform-implementation-js/views/conversations/thread-view.js +127 -75
  381. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts +0 -1
  382. package/src/platform-implementation-js/views/native-nav-item-view.js +65 -32
  383. package/src/platform-implementation-js/views/nav-item-view.js +115 -51
  384. package/src/platform-implementation-js/views/route-view/custom-route-view.js +20 -25
  385. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  386. package/src/platform-implementation-js/views/route-view/list-route-view.js +52 -30
  387. package/src/platform-implementation-js/views/route-view/route-view.js +35 -24
  388. package/src/platform-implementation-js/views/section-view.js +52 -60
  389. package/src/platform-implementation-js/views/thread-row-view.js +74 -49
  390. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts +0 -1
  391. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts +0 -1
  392. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts +0 -1
  393. package/src/platform-implementation-js/widgets/drawer-view.js +36 -29
  394. package/src/platform-implementation-js/widgets/modal-view.js +68 -39
  395. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  396. package/src/platform-implementation-js/widgets/top-message-bar-view.js +10 -13
  397. package/src/build/exec.d.ts.map +0 -1
  398. package/src/build/exec.js +0 -26
  399. package/src/build/spawn.d.ts.map +0 -1
  400. package/src/build/spawn.js +0 -17
  401. package/src/common/ajax.d.ts.map +0 -1
  402. package/src/common/ajax.js +0 -90
  403. package/src/common/cachebust-url.d.ts.map +0 -1
  404. package/src/common/cachebust-url.js +0 -10
  405. package/src/common/censorHTMLstring.d.ts.map +0 -1
  406. package/src/common/censorHTMLstring.js +0 -37
  407. package/src/common/censorHTMLtree.d.ts.map +0 -1
  408. package/src/common/censorHTMLtree.js +0 -28
  409. package/src/common/censorJSONTree.d.ts.map +0 -1
  410. package/src/common/censorJSONTree.js +0 -15
  411. package/src/common/connectivity-test.d.ts.map +0 -1
  412. package/src/common/connectivity-test.js +0 -21
  413. package/src/common/defer.d.ts.map +0 -1
  414. package/src/common/defer.js +0 -11
  415. package/src/common/find-parent.d.ts.map +0 -1
  416. package/src/common/find-parent.js +0 -10
  417. package/src/common/get-extension-id.d.ts.map +0 -1
  418. package/src/common/get-extension-id.js +0 -7
  419. package/src/common/get-or-fail.d.ts.map +0 -1
  420. package/src/common/get-or-fail.js +0 -8
  421. package/src/common/get-session-id.d.ts.map +0 -1
  422. package/src/common/get-session-id.js +0 -14
  423. package/src/common/get-stack-trace.d.ts.map +0 -1
  424. package/src/common/get-stack-trace.js +0 -6
  425. package/src/common/html-to-text.d.ts.map +0 -1
  426. package/src/common/html-to-text.js +0 -7
  427. package/src/common/isElementVisible.d.ts.map +0 -1
  428. package/src/common/isElementVisible.js +0 -6
  429. package/src/common/load-script.d.ts.map +0 -1
  430. package/src/common/load-script.js +0 -127
  431. package/src/common/log-error.d.ts.map +0 -1
  432. package/src/common/log-error.js +0 -191
  433. package/src/common/quoted-split.d.ts.map +0 -1
  434. package/src/common/quoted-split.js +0 -18
  435. package/src/common/rate-limit-queuer.d.ts.map +0 -1
  436. package/src/common/rate-limit-queuer.js +0 -57
  437. package/src/common/rate-limit.d.ts.map +0 -1
  438. package/src/common/rate-limit.js +0 -14
  439. package/src/common/version.d.ts.map +0 -1
  440. package/src/common/version.js +0 -6
  441. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +0 -1
  442. package/src/inboxsdk-js/loading/platform-implementation-loader.js +0 -27
  443. package/src/injected-js/gmail/constants.d.ts.map +0 -1
  444. package/src/injected-js/gmail/constants.js +0 -2
  445. package/src/injected-js/gmail/modify-suggestions.d.ts.map +0 -1
  446. package/src/injected-js/gmail/modify-suggestions.js +0 -106
  447. package/src/injected-js/gmail/setup-gmonkey-handler.d.ts.map +0 -1
  448. package/src/injected-js/gmail/setup-gmonkey-handler.js +0 -49
  449. package/src/injected-js/gmail/sync-compose-processor-20220909.d.ts.map +0 -1
  450. package/src/injected-js/gmail/sync-compose-processor-20220909.js +0 -298
  451. package/src/injected-js/gmail/sync-compose-processor.d.ts.map +0 -1
  452. package/src/injected-js/gmail/sync-compose-processor.js +0 -55
  453. package/src/injected-js/gmail/sync-compose-request-processor.d.ts.map +0 -1
  454. package/src/injected-js/gmail/sync-compose-request-processor.js +0 -110
  455. package/src/injected-js/injected-logger.d.ts.map +0 -1
  456. package/src/injected-js/injected-logger.js +0 -50
  457. package/src/injected-js/setupCustomViewEventAssassin.d.ts.map +0 -1
  458. package/src/injected-js/setupCustomViewEventAssassin.js +0 -90
  459. package/src/platform-implementation-js/constants/nav-item-types.d.ts.map +0 -1
  460. package/src/platform-implementation-js/constants/nav-item-types.js +0 -19
  461. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts +0 -5
  462. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts.map +0 -1
  463. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +0 -21
  464. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts +0 -5
  465. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.d.ts.map +0 -1
  466. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +0 -28
  467. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.d.ts.map +0 -1
  468. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +0 -98
  469. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.d.ts.map +0 -1
  470. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +0 -4
  471. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.d.ts.map +0 -1
  472. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +0 -8
  473. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.d.ts.map +0 -1
  474. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +0 -12
  475. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.d.ts.map +0 -1
  476. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +0 -33
  477. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.d.ts.map +0 -1
  478. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +0 -4
  479. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.d.ts.map +0 -1
  480. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +0 -44
  481. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts +0 -2
  482. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.d.ts.map +0 -1
  483. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.d.ts.map +0 -1
  484. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +0 -38
  485. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.d.ts.map +0 -1
  486. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +0 -12
  487. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +0 -1
  488. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +0 -253
  489. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts.map +0 -1
  490. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +0 -200
  491. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.d.ts.map +0 -1
  492. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +0 -533
  493. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.d.ts.map +0 -1
  494. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +0 -289
  495. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.d.ts.map +0 -1
  496. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +0 -21
  497. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.d.ts.map +0 -1
  498. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +0 -28
  499. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.d.ts.map +0 -1
  500. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +0 -19
  501. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts +0 -43
  502. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.d.ts.map +0 -1
  503. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +0 -126
  504. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts.map +0 -1
  505. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +0 -101
  506. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.d.ts.map +0 -1
  507. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +0 -38
  508. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.d.ts.map +0 -1
  509. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +0 -28
  510. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.d.ts.map +0 -1
  511. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +0 -22
  512. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts.map +0 -1
  513. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +0 -233
  514. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.d.ts.map +0 -1
  515. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +0 -223
  516. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.d.ts.map +0 -1
  517. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +0 -157
  518. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.d.ts.map +0 -1
  519. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +0 -109
  520. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.d.ts.map +0 -1
  521. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +0 -5
  522. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +0 -1
  523. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +0 -759
  524. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.d.ts.map +0 -1
  525. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +0 -84
  526. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.d.ts.map +0 -1
  527. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +0 -33
  528. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts.map +0 -1
  529. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +0 -325
  530. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts.map +0 -1
  531. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +0 -58
  532. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts.map +0 -1
  533. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +0 -55
  534. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts.map +0 -1
  535. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +0 -96
  536. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.d.ts.map +0 -1
  537. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +0 -30
  538. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.d.ts.map +0 -1
  539. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +0 -10
  540. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts.map +0 -1
  541. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +0 -22
  542. package/src/platform-implementation-js/driver-common/getAccountUrlPart.d.ts.map +0 -1
  543. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +0 -17
  544. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.d.ts.map +0 -1
  545. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +0 -33
  546. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.d.ts.map +0 -1
  547. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +0 -49
  548. package/src/platform-implementation-js/driver-common/gmailAjax.d.ts.map +0 -1
  549. package/src/platform-implementation-js/driver-common/gmailAjax.js +0 -65
  550. package/src/platform-implementation-js/driver-common/render-custom-icon.d.ts.map +0 -1
  551. package/src/platform-implementation-js/driver-common/render-custom-icon.js +0 -16
  552. package/src/platform-implementation-js/driver-common/update-icon.d.ts.map +0 -1
  553. package/src/platform-implementation-js/driver-common/update-icon.js +0 -90
  554. package/src/platform-implementation-js/lib/ErrorCollector.d.ts.map +0 -1
  555. package/src/platform-implementation-js/lib/ErrorCollector.js +0 -47
  556. package/src/platform-implementation-js/lib/Membrane.d.ts.map +0 -1
  557. package/src/platform-implementation-js/lib/Membrane.js +0 -22
  558. package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts.map +0 -1
  559. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +0 -30
  560. package/src/platform-implementation-js/lib/attemptWithRetries.d.ts.map +0 -1
  561. package/src/platform-implementation-js/lib/attemptWithRetries.js +0 -16
  562. package/src/platform-implementation-js/lib/common-page-communicator.d.ts.map +0 -1
  563. package/src/platform-implementation-js/lib/common-page-communicator.js +0 -137
  564. package/src/platform-implementation-js/lib/delay-asap.d.ts.map +0 -1
  565. package/src/platform-implementation-js/lib/delay-asap.js +0 -12
  566. package/src/platform-implementation-js/lib/delay-idle.d.ts.map +0 -1
  567. package/src/platform-implementation-js/lib/delay-idle.js +0 -16
  568. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.d.ts.map +0 -1
  569. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +0 -36
  570. package/src/platform-implementation-js/lib/dom/generic-button-view.d.ts.map +0 -1
  571. package/src/platform-implementation-js/lib/dom/generic-button-view.js +0 -39
  572. package/src/platform-implementation-js/lib/dom/get-insert-before-element.d.ts.map +0 -1
  573. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +0 -39
  574. package/src/platform-implementation-js/lib/dom/insert-element-in-order.d.ts.map +0 -1
  575. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +0 -38
  576. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.d.ts.map +0 -1
  577. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +0 -12
  578. package/src/platform-implementation-js/lib/dom/make-element-child-stream.d.ts.map +0 -1
  579. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +0 -79
  580. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.d.ts.map +0 -1
  581. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +0 -28
  582. package/src/platform-implementation-js/lib/dom/make-element-view-stream.d.ts.map +0 -1
  583. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +0 -15
  584. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.d.ts.map +0 -1
  585. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +0 -15
  586. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.d.ts.map +0 -1
  587. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +0 -5
  588. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.d.ts.map +0 -1
  589. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +0 -39
  590. package/src/platform-implementation-js/lib/dom/parentNodes.d.ts.map +0 -1
  591. package/src/platform-implementation-js/lib/dom/parentNodes.js +0 -8
  592. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.d.ts.map +0 -1
  593. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +0 -6
  594. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.d.ts.map +0 -1
  595. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +0 -22
  596. package/src/platform-implementation-js/lib/dom/simulate-key.d.ts.map +0 -1
  597. package/src/platform-implementation-js/lib/dom/simulate-key.js +0 -46
  598. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.d.ts.map +0 -1
  599. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +0 -16
  600. package/src/platform-implementation-js/lib/dom/trigger-relay-event.d.ts.map +0 -1
  601. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +0 -7
  602. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.d.ts.map +0 -1
  603. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +0 -25
  604. package/src/platform-implementation-js/lib/fake-window-resize.d.ts.map +0 -1
  605. package/src/platform-implementation-js/lib/fake-window-resize.js +0 -5
  606. package/src/platform-implementation-js/lib/from-event-target-capture.d.ts.map +0 -1
  607. package/src/platform-implementation-js/lib/from-event-target-capture.js +0 -12
  608. package/src/platform-implementation-js/lib/fromEventsWithOptions.d.ts.map +0 -1
  609. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +0 -10
  610. package/src/platform-implementation-js/lib/handler-registry.d.ts.map +0 -1
  611. package/src/platform-implementation-js/lib/handler-registry.js +0 -67
  612. package/src/platform-implementation-js/lib/idMap.d.ts.map +0 -1
  613. package/src/platform-implementation-js/lib/idMap.js +0 -45
  614. package/src/platform-implementation-js/lib/imageRequest.d.ts.map +0 -1
  615. package/src/platform-implementation-js/lib/imageRequest.js +0 -8
  616. package/src/platform-implementation-js/lib/incrementName.d.ts.map +0 -1
  617. package/src/platform-implementation-js/lib/incrementName.js +0 -7
  618. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.d.ts.map +0 -1
  619. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +0 -14
  620. package/src/platform-implementation-js/lib/inject-script.d.ts.map +0 -1
  621. package/src/platform-implementation-js/lib/inject-script.js +0 -33
  622. package/src/platform-implementation-js/lib/is-valid-app-id.d.ts.map +0 -1
  623. package/src/platform-implementation-js/lib/is-valid-app-id.js +0 -27
  624. package/src/platform-implementation-js/lib/is-valid-email.d.ts.map +0 -1
  625. package/src/platform-implementation-js/lib/is-valid-email.js +0 -14
  626. package/src/platform-implementation-js/lib/isNotNil.d.ts.map +0 -1
  627. package/src/platform-implementation-js/lib/isNotNil.js +0 -5
  628. package/src/platform-implementation-js/lib/isStreakAppId.d.ts.map +0 -1
  629. package/src/platform-implementation-js/lib/isStreakAppId.js +0 -11
  630. package/src/platform-implementation-js/lib/logger.d.ts.map +0 -1
  631. package/src/platform-implementation-js/lib/logger.js +0 -441
  632. package/src/platform-implementation-js/lib/persistent-queue.d.ts.map +0 -1
  633. package/src/platform-implementation-js/lib/persistent-queue.js +0 -107
  634. package/src/platform-implementation-js/lib/safe-event-emitter.d.ts.map +0 -1
  635. package/src/platform-implementation-js/lib/safe-event-emitter.js +0 -17
  636. package/src/platform-implementation-js/lib/stopper-pool.d.ts.map +0 -1
  637. package/src/platform-implementation-js/lib/stopper-pool.js +0 -41
  638. package/src/platform-implementation-js/lib/stream-wait-for.d.ts.map +0 -1
  639. package/src/platform-implementation-js/lib/stream-wait-for.js +0 -30
  640. package/src/platform-implementation-js/lib/wait-for.d.ts.map +0 -1
  641. package/src/platform-implementation-js/lib/wait-for.js +0 -28
  642. package/src/platform-implementation-js/lib/waitForAsync.d.ts.map +0 -1
  643. package/src/platform-implementation-js/lib/waitForAsync.js +0 -19
  644. package/src/platform-implementation-js/namespaces/app-menu.d.ts +0 -38
  645. package/src/platform-implementation-js/namespaces/app-menu.d.ts.map +0 -1
  646. package/src/platform-implementation-js/namespaces/app-menu.js +0 -31
  647. package/src/platform-implementation-js/namespaces/butter-bar.d.ts.map +0 -1
  648. package/src/platform-implementation-js/namespaces/butter-bar.js +0 -163
  649. package/src/platform-implementation-js/views/SimpleElementView.d.ts.map +0 -1
  650. package/src/platform-implementation-js/views/SimpleElementView.js +0 -16
  651. package/src/platform-implementation-js/views/app-menu-item-view.d.ts +0 -23
  652. package/src/platform-implementation-js/views/app-menu-item-view.d.ts.map +0 -1
  653. package/src/platform-implementation-js/views/app-menu-item-view.js +0 -257
  654. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts +0 -50
  655. package/src/platform-implementation-js/views/collapsible-panel-view.d.ts.map +0 -1
  656. package/src/platform-implementation-js/views/collapsible-panel-view.js +0 -222
  657. package/src/platform-implementation-js/views/compose-button-view.d.ts.map +0 -1
  658. package/src/platform-implementation-js/views/compose-button-view.js +0 -45
  659. package/src/platform-implementation-js/views/compose-view.d.ts.map +0 -1
  660. package/src/platform-implementation-js/views/compose-view.js +0 -312
  661. package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts.map +0 -1
  662. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +0 -14
  663. package/src/platform-implementation-js/views/nav-item-view.d.ts +0 -24
  664. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts.map +0 -1
  665. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +0 -39
  666. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.d.ts.map +0 -1
  667. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +0 -98
  668. package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts.map +0 -1
  669. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +0 -122
@@ -1,47 +1,57 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _findIndex = _interopRequireDefault(require("lodash/findIndex"));
10
- var _asap = _interopRequireDefault(require("asap"));
11
- var _ud = require("ud");
12
- var _autoHtml = _interopRequireDefault(require("auto-html"));
13
- var _kefir = _interopRequireDefault(require("kefir"));
14
- var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
15
- var _kefirBus = _interopRequireDefault(require("kefir-bus"));
16
- var _react = _interopRequireDefault(require("react"));
17
- var _reactDom = _interopRequireDefault(require("react-dom"));
18
- var _findParent = _interopRequireDefault(require("../../../../common/find-parent"));
19
- var _delayAsap = _interopRequireDefault(require("../../../lib/delay-asap"));
20
- var _fromEventTargetCapture = _interopRequireDefault(require("../../../lib/from-event-target-capture"));
21
- var _orderManager = _interopRequireDefault(require("order-manager"));
22
- var _idMap = _interopRequireDefault(require("../../../lib/idMap"));
23
- var _incrementName = _interopRequireDefault(require("../../../lib/incrementName"));
24
- var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
25
- var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../../lib/dom/make-mutation-observer-chunked-stream"));
26
- var _makeElementChildStream = _interopRequireDefault(require("../../../lib/dom/make-element-child-stream"));
27
- var _simulateMouseEvent = require("../../../lib/dom/simulate-mouse-event");
28
- var _fakeWindowResize = _interopRequireDefault(require("../../../lib/fake-window-resize"));
29
- var _AppSidebar = _interopRequireDefault(require("../../../driver-common/sidebar/AppSidebar"));
30
- var _ContentPanelViewDriver = _interopRequireDefault(require("../../../driver-common/sidebar/ContentPanelViewDriver"));
31
- var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
32
- var _addIconArea = _interopRequireDefault(require("./gmail-thread-sidebar-view/add-icon-area"));
33
- var _addToIconArea = _interopRequireDefault(require("./gmail-app-sidebar-view/primary/add-to-icon-area"));
1
+ /* @flow */
2
+
34
3
  /*
35
4
  This is used for PRE MATERIAL GMAIL, when sidebar only existed on threads.
36
5
  If you're reading this in the future, do you remember a time when there wasn't a global sidebar?
37
6
  It was a strange world, can you believe who the President of the United States was?
38
7
 
39
8
  */
9
+
10
+ import findIndex from 'lodash/findIndex';
11
+ import asap from 'asap';
12
+ import { defn } from 'ud';
13
+ import autoHtml from 'auto-html';
14
+ import Kefir from 'kefir';
15
+ import kefirStopper from 'kefir-stopper';
16
+ import kefirBus from 'kefir-bus';
17
+ import React from 'react';
18
+ import ReactDOM from 'react-dom';
19
+ import findParent from '../../../../common/find-parent';
20
+ import delayAsap from '../../../lib/delay-asap';
21
+ import fromEventTargetCapture from '../../../lib/from-event-target-capture';
22
+ import OrderManager from 'order-manager';
23
+ import idMap from '../../../lib/idMap';
24
+ import incrementName from '../../../lib/incrementName';
25
+ import querySelector from '../../../lib/dom/querySelectorOrFail';
26
+ import makeMutationObserverChunkedStream from '../../../lib/dom/make-mutation-observer-chunked-stream';
27
+ import makeElementChildStream from '../../../lib/dom/make-element-child-stream';
28
+ import { simulateClick } from '../../../lib/dom/simulate-mouse-event';
29
+ import fakeWindowResize from '../../../lib/fake-window-resize';
30
+ import type GmailDriver from '../gmail-driver';
31
+
32
+ import AppSidebar from '../../../driver-common/sidebar/AppSidebar';
33
+ import ContentPanelViewDriver from '../../../driver-common/sidebar/ContentPanelViewDriver';
34
+ import GmailElementGetter from '../gmail-element-getter';
35
+
36
+ import addIconArea from './gmail-thread-sidebar-view/add-icon-area';
37
+ import addToIconArea from './gmail-app-sidebar-view/primary/add-to-icon-area';
38
+
40
39
  const ADD_ON_SIDEBAR_CONTENT_SELECTOR = '.J-KU-Jz';
41
40
  const ACTIVE_ADD_ON_ICON_SELECTOR = '.J-KU-KO';
41
+
42
+ import type WidthManager from './gmail-thread-view/width-manager';
43
+
42
44
  class GmailAppSidebarView {
43
- constructor(driver, sidebarContainerEl, addonSidebarElement, widthManager) {
44
- (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
45
+ _stopper = kefirStopper();
46
+ _driver: GmailDriver;
47
+ _instanceId: string;
48
+
49
+ constructor(
50
+ driver: GmailDriver,
51
+ sidebarContainerEl?: ?HTMLElement,
52
+ addonSidebarElement: ?HTMLElement,
53
+ widthManager: ?WidthManager
54
+ ) {
45
55
  this._driver = driver;
46
56
 
47
57
  // We need to be able to cooperate with other apps/extensions that are
@@ -57,34 +67,53 @@ class GmailAppSidebarView {
57
67
  if (instanceId != null) {
58
68
  this._instanceId = instanceId;
59
69
  } else {
60
- this._createElement(sidebarContainerEl, addonSidebarElement, widthManager);
70
+ this._createElement(
71
+ sidebarContainerEl,
72
+ addonSidebarElement,
73
+ widthManager
74
+ );
61
75
  }
62
76
  }
77
+
63
78
  destroy() {
64
79
  this._stopper.destroy();
65
80
  }
66
- getStopper() {
81
+
82
+ getStopper(): Kefir.Observable<*> {
67
83
  return this._stopper;
68
84
  }
69
85
 
70
86
  // This value controls whether the app sidebar should automatically open
71
87
  // itself when available when the chat sidebar isn't present. It's only set
72
88
  // if the user interacts with the app sidebar button.
73
- _getShouldAppSidebarOpen() {
74
- return global.localStorage.getItem('inboxsdk__app_sidebar_should_open') !== 'false';
89
+ _getShouldAppSidebarOpen(): boolean {
90
+ return (
91
+ global.localStorage.getItem('inboxsdk__app_sidebar_should_open') !==
92
+ 'false'
93
+ );
75
94
  }
76
- _setShouldAppSidebarOpen(open) {
95
+
96
+ _setShouldAppSidebarOpen(open: boolean) {
77
97
  try {
78
- global.localStorage.setItem('inboxsdk__app_sidebar_should_open', String(open));
98
+ global.localStorage.setItem(
99
+ 'inboxsdk__app_sidebar_should_open',
100
+ String(open)
101
+ );
79
102
  } catch (err) {
80
103
  console.error('error saving', err); //eslint-disable-line no-console
81
104
  }
82
105
  }
83
106
 
84
- _createElement(_sidebarContainerEl, _addonSidebarContainerEl, widthManager) {
107
+ _createElement(
108
+ _sidebarContainerEl: ?HTMLElement,
109
+ _addonSidebarContainerEl: ?HTMLElement,
110
+ widthManager: ?WidthManager
111
+ ) {
85
112
  let container, iconArea;
86
- let component;
113
+ let component: AppSidebar;
114
+
87
115
  this._instanceId = `${Date.now()}-${Math.random()}`;
116
+
88
117
  {
89
118
  const idElement = _addonSidebarContainerEl || _sidebarContainerEl;
90
119
  if (!idElement) throw new Error('should not happen');
@@ -93,154 +122,237 @@ class GmailAppSidebarView {
93
122
  idElement.removeAttribute('data-sdk-sidebar-instance-id');
94
123
  });
95
124
  }
125
+
96
126
  const el = document.createElement('div');
97
- el.className = (0, _idMap.default)('app_sidebar_container');
98
- const buttonContainers = new Map();
99
- let activatedWhileLoading = false;
127
+ el.className = idMap('app_sidebar_container');
128
+
129
+ const buttonContainers: Map<string, HTMLElement> = new Map();
130
+ let activatedWhileLoading: boolean = false;
131
+
100
132
  let contentContainer;
101
133
  let usedAddonsSidebar = false;
102
- const updateHighlightedAppIconBus = (0, _kefirBus.default)();
134
+
135
+ const updateHighlightedAppIconBus = kefirBus();
103
136
  this._stopper.onEnd(() => {
104
137
  updateHighlightedAppIconBus.end();
105
138
  });
139
+
106
140
  if (_addonSidebarContainerEl) {
107
- const mainContentBodyContainerElement = _gmailElementGetter.default.getMainContentBodyContainerElement();
141
+ const mainContentBodyContainerElement =
142
+ GmailElementGetter.getMainContentBodyContainerElement();
108
143
  if (mainContentBodyContainerElement) {
109
144
  contentContainer = mainContentBodyContainerElement.parentElement;
110
145
  if (!contentContainer) throw new Error('should not happen');
111
146
  contentContainer.classList.add('container_app_sidebar_in_use');
112
- (0, _querySelectorOrFail.default)(_addonSidebarContainerEl, ADD_ON_SIDEBAR_CONTENT_SELECTOR).insertAdjacentElement('beforebegin', el);
147
+ querySelector(
148
+ _addonSidebarContainerEl,
149
+ ADD_ON_SIDEBAR_CONTENT_SELECTOR
150
+ ).insertAdjacentElement('beforebegin', el);
113
151
 
114
152
  // See if the element is visible.
115
153
  // Give it some content temporarily to check if it becomes sized to show it.
116
154
  _addonSidebarContainerEl.classList.add('app_sidebar_visible');
117
- _addonSidebarContainerEl.classList.add((0, _idMap.default)('app_sidebar_in_use'));
155
+ _addonSidebarContainerEl.classList.add(idMap('app_sidebar_in_use'));
118
156
  contentContainer.classList.add('container_app_sidebar_visible');
157
+
119
158
  el.textContent = 'x';
120
159
  const elRect = el.getBoundingClientRect();
121
160
  el.textContent = '';
122
161
  // This gets re-added later once the panel has some content to show
123
162
  _addonSidebarContainerEl.classList.remove('app_sidebar_visible');
124
163
  contentContainer.classList.remove('container_app_sidebar_visible');
125
- const supportedScreenSize = window.innerWidth >= 1024 && window.innerHeight >= 600;
126
- if (!global._APP_SIDEBAR_TEST && (elRect.width == 0 || elRect.height == 0 || supportedScreenSize && Math.floor(elRect.right) > Math.floor(window.innerWidth))) {
127
- this._driver.getLogger().error(new Error('SDK sidebar inserted into add-ons sidebar was not visible'), {
128
- rect: {
129
- // rect's properties aren't enumerable so we have to do this
130
- top: elRect.top,
131
- bottom: elRect.bottom,
132
- left: elRect.left,
133
- right: elRect.right,
134
- width: elRect.width,
135
- height: elRect.height
136
- },
137
- window: {
138
- innerWidth: window.innerWidth,
139
- innerHeight: window.innerHeight
140
- }
141
- });
164
+
165
+ const supportedScreenSize =
166
+ window.innerWidth >= 1024 && window.innerHeight >= 600;
167
+ if (
168
+ !global._APP_SIDEBAR_TEST &&
169
+ (elRect.width == 0 ||
170
+ elRect.height == 0 ||
171
+ (supportedScreenSize &&
172
+ Math.floor(elRect.right) > Math.floor(window.innerWidth)))
173
+ ) {
174
+ this._driver
175
+ .getLogger()
176
+ .error(
177
+ new Error(
178
+ 'SDK sidebar inserted into add-ons sidebar was not visible'
179
+ ),
180
+ {
181
+ rect: {
182
+ // rect's properties aren't enumerable so we have to do this
183
+ top: elRect.top,
184
+ bottom: elRect.bottom,
185
+ left: elRect.left,
186
+ right: elRect.right,
187
+ width: elRect.width,
188
+ height: elRect.height,
189
+ },
190
+ window: {
191
+ innerWidth: window.innerWidth,
192
+ innerHeight: window.innerHeight,
193
+ },
194
+ }
195
+ );
142
196
  } else {
143
197
  usedAddonsSidebar = true;
144
198
  }
199
+
145
200
  if (!usedAddonsSidebar) {
146
- if (contentContainer) contentContainer.classList.remove('container_app_sidebar_in_use');
147
- _addonSidebarContainerEl.classList.remove((0, _idMap.default)('app_sidebar_in_use'));
201
+ if (contentContainer)
202
+ contentContainer.classList.remove('container_app_sidebar_in_use');
203
+ _addonSidebarContainerEl.classList.remove(
204
+ idMap('app_sidebar_in_use')
205
+ );
148
206
  }
149
207
  }
150
208
  }
151
- const addonSidebarContainerEl = usedAddonsSidebar ? _addonSidebarContainerEl : null;
152
- const sidebarContainerEl = usedAddonsSidebar ? _addonSidebarContainerEl : _sidebarContainerEl;
209
+
210
+ const addonSidebarContainerEl = usedAddonsSidebar
211
+ ? _addonSidebarContainerEl
212
+ : null;
213
+ const sidebarContainerEl = usedAddonsSidebar
214
+ ? _addonSidebarContainerEl
215
+ : _sidebarContainerEl;
153
216
  if (!sidebarContainerEl) throw new Error('should not happen');
154
217
  if (!usedAddonsSidebar) {
155
218
  sidebarContainerEl.insertBefore(el, sidebarContainerEl.firstElementChild);
156
- sidebarContainerEl.classList.add((0, _idMap.default)('app_sidebar_in_use'));
219
+ sidebarContainerEl.classList.add(idMap('app_sidebar_in_use'));
157
220
  }
158
- if (!document.body.querySelector('.' + (0, _idMap.default)('app_sidebar_waiting_platform'))) {
221
+
222
+ if (
223
+ !((document.body: any): HTMLElement).querySelector(
224
+ '.' + idMap('app_sidebar_waiting_platform')
225
+ )
226
+ ) {
159
227
  const waitingPlatform = document.createElement('div');
160
- waitingPlatform.className = (0, _idMap.default)('app_sidebar_waiting_platform');
161
- document.body.appendChild(waitingPlatform);
228
+ waitingPlatform.className = idMap('app_sidebar_waiting_platform');
229
+ ((document.body: any): HTMLElement).appendChild(waitingPlatform);
162
230
  }
231
+
163
232
  if (addonSidebarContainerEl) {
164
233
  container = () => el;
165
234
  el.classList.add('addon_sidebar');
166
235
  } else {
167
- const containerEl = (0, _findParent.default)(sidebarContainerEl, el => window.getComputedStyle(el).overflowY !== 'visible');
236
+ const containerEl = findParent(
237
+ sidebarContainerEl,
238
+ (el) => window.getComputedStyle(el).overflowY !== 'visible'
239
+ );
168
240
  container = containerEl ? () => containerEl : undefined;
169
241
  }
242
+
170
243
  const currentIds = new Set();
171
- const orderManager = new _orderManager.default({
244
+ const orderManager = new OrderManager({
172
245
  get() {
173
246
  try {
174
- return JSON.parse(global.localStorage.getItem('inboxsdk__sidebar_ordering') || 'null');
247
+ return JSON.parse(
248
+ global.localStorage.getItem('inboxsdk__sidebar_ordering') || 'null'
249
+ );
175
250
  } catch (err) {
176
251
  console.error('failed to read sidebar order data', err); //eslint-disable-line no-console
177
252
  }
178
253
  },
179
-
180
254
  set(data) {
181
255
  try {
182
- global.localStorage.setItem('inboxsdk__sidebar_ordering', JSON.stringify(data));
256
+ global.localStorage.setItem(
257
+ 'inboxsdk__sidebar_ordering',
258
+ JSON.stringify(data)
259
+ );
183
260
  } catch (err) {
184
261
  console.error('failed to set sidebar order data', err); //eslint-disable-line no-console
185
262
  }
186
- }
263
+ },
187
264
  });
188
265
 
189
- updateHighlightedAppIconBus.bufferWithTimeOrCount(150, 100).filter(events => events.length > 0).takeUntilBy(this._stopper).onValue(() => {
190
- const elBoundingBox = el.getBoundingClientRect();
191
- const boundingTop = elBoundingBox.top + el.scrollTop;
192
- const boundingBottom = boundingTop + elBoundingBox.height;
193
- const titleBars = Array.from(el.querySelectorAll(`.${(0, _idMap.default)('app_sidebar_content_panel')}.${(0, _idMap.default)('expanded')} .${(0, _idMap.default)('app_sidebar_content_panel_top_line')}`));
194
- const titleBar = titleBars.find(t => {
195
- const tBoundingBox = t.getBoundingClientRect();
196
- return tBoundingBox.bottom > boundingTop && tBoundingBox.bottom < boundingBottom;
197
- });
198
- if (titleBar) {
199
- const instanceId = titleBar.getAttribute('data-instance-id');
200
- const appName = titleBar.getAttribute('data-app-name');
201
- if (!appName) return;
202
- const appButton = buttonContainers.get(appName);
203
- if (!appButton || !iconArea) return;
204
- const activeButtonContainer = iconArea.querySelector('.sidebar_button_container_active');
205
- if (activeButtonContainer) {
206
- activeButtonContainer.classList.remove('sidebar_button_container_active');
266
+ updateHighlightedAppIconBus
267
+ .bufferWithTimeOrCount(150, 100)
268
+ .filter((events) => events.length > 0)
269
+ .takeUntilBy(this._stopper)
270
+ .onValue(() => {
271
+ const elBoundingBox = el.getBoundingClientRect();
272
+ const boundingTop = elBoundingBox.top + el.scrollTop;
273
+ const boundingBottom = boundingTop + elBoundingBox.height;
274
+
275
+ const titleBars = Array.from(
276
+ el.querySelectorAll(
277
+ `.${idMap('app_sidebar_content_panel')}.${idMap(
278
+ 'expanded'
279
+ )} .${idMap('app_sidebar_content_panel_top_line')}`
280
+ )
281
+ );
282
+
283
+ const titleBar = titleBars.find((t) => {
284
+ const tBoundingBox = t.getBoundingClientRect();
285
+ return (
286
+ tBoundingBox.bottom > boundingTop &&
287
+ tBoundingBox.bottom < boundingBottom
288
+ );
289
+ });
290
+
291
+ if (titleBar) {
292
+ const instanceId = titleBar.getAttribute('data-instance-id');
293
+ const appName = titleBar.getAttribute('data-app-name');
294
+ if (!appName) return;
295
+ const appButton = buttonContainers.get(appName);
296
+ if (!appButton || !iconArea) return;
297
+
298
+ const activeButtonContainer = iconArea.querySelector(
299
+ '.sidebar_button_container_active'
300
+ );
301
+ if (activeButtonContainer) {
302
+ activeButtonContainer.classList.remove(
303
+ 'sidebar_button_container_active'
304
+ );
305
+ }
306
+
307
+ appButton.classList.add('sidebar_button_container_active');
207
308
  }
208
- appButton.classList.add('sidebar_button_container_active');
209
- }
210
- });
211
- const _appSidebarRefSetter = threadSidebarComponent => {
309
+ });
310
+
311
+ const _appSidebarRefSetter = (threadSidebarComponent) => {
212
312
  if (threadSidebarComponent) {
213
313
  component = threadSidebarComponent;
214
314
  }
215
315
  };
316
+
216
317
  const render = () => {
217
- _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_AppSidebar.default, {
218
- ref: _appSidebarRefSetter,
219
- panels: orderManager.getOrderedItems().map(x => x.value),
220
- onMoveEnd: (newList, movedItem, oldIndex, newIndex) => {
221
- orderManager.moveItem(oldIndex, newIndex);
222
- render();
223
- },
224
- onExpandedToggle: () => {
318
+ ReactDOM.render(
319
+ <AppSidebar
320
+ ref={_appSidebarRefSetter}
321
+ panels={orderManager.getOrderedItems().map((x) => x.value)}
322
+ onMoveEnd={(newList, movedItem, oldIndex, newIndex) => {
323
+ orderManager.moveItem(oldIndex, newIndex);
324
+ render();
325
+ }}
326
+ onExpandedToggle={() => {
327
+ updateHighlightedAppIconBus.emit(null);
328
+ }}
329
+ container={container}
330
+ />,
331
+ el,
332
+ () => {
225
333
  updateHighlightedAppIconBus.emit(null);
226
- },
227
- container: container
228
- }), el, () => {
229
- updateHighlightedAppIconBus.emit(null);
230
- });
334
+ }
335
+ );
231
336
  };
232
337
  render();
233
- _kefir.default.fromEvents(window, 'storage').filter(e => e.key === 'inboxsdk__sidebar_ordering').takeUntilBy(this._stopper).onValue(() => {
234
- orderManager.reload();
235
- render();
236
- });
338
+
339
+ Kefir.fromEvents(window, 'storage')
340
+ .filter((e) => e.key === 'inboxsdk__sidebar_ordering')
341
+ .takeUntilBy(this._stopper)
342
+ .onValue(() => {
343
+ orderManager.reload();
344
+ render();
345
+ });
346
+
237
347
  this._stopper.onValue(() => {
238
- _reactDom.default.unmountComponentAtNode(el);
348
+ ReactDOM.unmountComponentAtNode(el);
239
349
  el.remove();
240
- sidebarContainerEl.classList.remove((0, _idMap.default)('app_sidebar_in_use'));
350
+ sidebarContainerEl.classList.remove(idMap('app_sidebar_in_use'));
241
351
  sidebarContainerEl.classList.remove('app_sidebar_visible');
242
352
  if (iconArea) iconArea.remove();
243
- const mainContentBodyContainerElement = _gmailElementGetter.default.getMainContentBodyContainerElement();
353
+
354
+ const mainContentBodyContainerElement =
355
+ GmailElementGetter.getMainContentBodyContainerElement();
244
356
  if (mainContentBodyContainerElement) {
245
357
  contentContainer = mainContentBodyContainerElement.parentElement;
246
358
  if (contentContainer) {
@@ -249,245 +361,384 @@ class GmailAppSidebarView {
249
361
  }
250
362
  }
251
363
  });
252
- _kefir.default.fromEvents(document.body, 'inboxsdkNewSidebarPanel').filter(e => e.detail.sidebarId === this._instanceId).takeUntilBy(this._stopper).onValue(event => {
253
- let id = event.detail.id;
254
- while (currentIds.has(id)) {
255
- id = (0, _incrementName.default)(id);
256
- }
257
- currentIds.add(id);
258
- const appName = event.detail.appName;
259
- orderManager.addItem({
260
- groupId: event.detail.appId,
261
- id,
262
- orderHint: event.detail.orderHint,
263
- value: {
364
+
365
+ Kefir.fromEvents((document.body: any), 'inboxsdkNewSidebarPanel')
366
+ .filter((e) => e.detail.sidebarId === this._instanceId)
367
+ .takeUntilBy(this._stopper)
368
+ .onValue((event) => {
369
+ let id = event.detail.id;
370
+ while (currentIds.has(id)) {
371
+ id = incrementName(id);
372
+ }
373
+ currentIds.add(id);
374
+
375
+ const appName = event.detail.appName;
376
+ orderManager.addItem({
377
+ groupId: event.detail.appId,
264
378
  id,
265
- appName,
266
- appId: event.detail.appId,
267
- instanceId: event.detail.instanceId,
268
- title: event.detail.title,
269
- iconClass: event.detail.iconClass,
270
- iconUrl: event.detail.iconUrl,
271
- hideTitleBar: event.detail.hideTitleBar,
272
- el: event.target
379
+ orderHint: event.detail.orderHint,
380
+ value: {
381
+ id,
382
+ appName,
383
+ appId: event.detail.appId,
384
+ instanceId: event.detail.instanceId,
385
+ title: event.detail.title,
386
+ iconClass: event.detail.iconClass,
387
+ iconUrl: event.detail.iconUrl,
388
+ hideTitleBar: event.detail.hideTitleBar,
389
+ el: event.target,
390
+ },
391
+ });
392
+ render();
393
+
394
+ if (!addonSidebarContainerEl) return;
395
+
396
+ iconArea = addonSidebarContainerEl.querySelector(
397
+ '.' + idMap('sidebar_iconArea')
398
+ );
399
+ if (!iconArea) {
400
+ iconArea = document.createElement('div');
401
+ iconArea.className = idMap('sidebar_iconArea');
402
+ addIconArea(iconArea, addonSidebarContainerEl, this._stopper);
273
403
  }
274
- });
275
- render();
276
- if (!addonSidebarContainerEl) return;
277
- iconArea = addonSidebarContainerEl.querySelector('.' + (0, _idMap.default)('sidebar_iconArea'));
278
- if (!iconArea) {
279
- iconArea = document.createElement('div');
280
- iconArea.className = (0, _idMap.default)('sidebar_iconArea');
281
- (0, _addIconArea.default)(iconArea, addonSidebarContainerEl, this._stopper);
282
- }
283
404
 
284
- // we put adding the content panel icon in the iconArea in an asap so that we
285
- // get consistent ordering. The ordering of the icons is based on the position of the FIRST
286
- // panel with that app name. This means we need to wait for all the panels for a particular appName
287
- // to be added first, and then we can get the correct position
288
- (0, _asap.default)(() => {
289
- if (!iconArea) throw new Error('should not happen');
290
- const instanceId = event.detail.instanceId;
291
- const appIconUrl = event.detail.appIconUrl;
292
-
293
- // If there's an existing button for the app, then just increment its
294
- // data-count attribute instead of adding a new button.
295
- const existingButtonContainer = buttonContainers.get(appName);
296
- let buttonContainer;
297
- if (existingButtonContainer) {
298
- const currentCount = Number(existingButtonContainer.getAttribute('data-count')) || 1;
299
- existingButtonContainer.setAttribute('data-count', String(currentCount + 1));
300
- buttonContainer = existingButtonContainer;
301
- } else {
302
- buttonContainer = document.createElement('div');
303
- buttonContainer.className = (0, _idMap.default)('sidebar_button_container');
304
- buttonContainer.setAttribute('data-app-name', appName);
305
- buttonContainer.setAttribute('data-count', String(1));
306
- buttonContainer.innerHTML = (0, _autoHtml.default)`
405
+ // we put adding the content panel icon in the iconArea in an asap so that we
406
+ // get consistent ordering. The ordering of the icons is based on the position of the FIRST
407
+ // panel with that app name. This means we need to wait for all the panels for a particular appName
408
+ // to be added first, and then we can get the correct position
409
+ asap(() => {
410
+ if (!iconArea) throw new Error('should not happen');
411
+ const instanceId = event.detail.instanceId;
412
+ const appIconUrl = event.detail.appIconUrl;
413
+
414
+ // If there's an existing button for the app, then just increment its
415
+ // data-count attribute instead of adding a new button.
416
+ const existingButtonContainer = buttonContainers.get(appName);
417
+
418
+ let buttonContainer;
419
+ if (existingButtonContainer) {
420
+ const currentCount =
421
+ Number(existingButtonContainer.getAttribute('data-count')) || 1;
422
+ existingButtonContainer.setAttribute(
423
+ 'data-count',
424
+ String(currentCount + 1)
425
+ );
426
+ buttonContainer = existingButtonContainer;
427
+ } else {
428
+ buttonContainer = document.createElement('div');
429
+ buttonContainer.className = idMap('sidebar_button_container');
430
+ buttonContainer.setAttribute('data-app-name', appName);
431
+ buttonContainer.setAttribute('data-count', String(1));
432
+ buttonContainer.innerHTML = autoHtml`
307
433
  <button class="inboxsdk__button_icon" type="button" data-tooltip="${appName}">
308
434
  <img class="inboxsdk__button_iconImg" src="${appIconUrl}">
309
435
  </button>
310
436
  <div class="inboxsdk__button_selectedIndicator"></div>
311
437
  `;
312
- if (event.detail.primaryColor) {
313
- (0, _querySelectorOrFail.default)(buttonContainer, '.inboxsdk__button_selectedIndicator').style.backgroundColor = event.detail.primaryColor;
314
- }
315
- buttonContainers.set(appName, buttonContainer);
316
- (0, _querySelectorOrFail.default)(buttonContainer, 'button').addEventListener('click', event => {
317
- event.stopPropagation();
318
- const activeButtonContainer = iconArea ? iconArea.querySelector('.sidebar_button_container_active') : null;
319
- if (activeButtonContainer) {
320
- activeButtonContainer.classList.remove('sidebar_button_container_active');
438
+
439
+ if (event.detail.primaryColor) {
440
+ querySelector(
441
+ buttonContainer,
442
+ '.inboxsdk__button_selectedIndicator'
443
+ ).style.backgroundColor = event.detail.primaryColor;
321
444
  }
322
- if (activeButtonContainer === buttonContainer) {
323
- if (addonSidebarContainerEl) addonSidebarContainerEl.classList.remove('app_sidebar_visible');
324
- if (contentContainer) contentContainer.classList.remove('container_app_sidebar_visible');
325
- this._setShouldAppSidebarOpen(false);
326
- } else {
327
- if (addonSidebarContainerEl) addonSidebarContainerEl.classList.add('app_sidebar_visible');
328
- buttonContainer.classList.add('sidebar_button_container_active');
329
- if (contentContainer) contentContainer.classList.add('container_app_sidebar_visible');
330
- this._setShouldAppSidebarOpen(true);
331
- if (addonSidebarContainerEl) {
332
- // check and deactivate add-on sidebar
333
- const activeAddOnIcon = addonSidebarContainerEl.querySelector(ACTIVE_ADD_ON_ICON_SELECTOR);
334
- if (activeAddOnIcon) (0, _simulateMouseEvent.simulateClick)(activeAddOnIcon);
335
445
 
336
- //fake resize to get gmail to fix any heights that are messed up
337
- (0, _fakeWindowResize.default)();
338
-
339
- // if the tabList is still loading then handle the case where the user
340
- // clicks on an SDK icon to bring up an SDK app when Gmail thinks that it needs
341
- // to bring up an Add-On sidebar (since that was last visible from Gmail's perspective)
342
- // so we need to suppress Gmail bringing up their sidebar. This handles the flag of if we
343
- // need to suppress
344
- const nativeIconArea = addonSidebarContainerEl.firstElementChild;
345
- if (!nativeIconArea) return;
346
- const loadingHolderAsAny = nativeIconArea.firstElementChild;
347
- const loadingHolder = loadingHolderAsAny;
348
- if (!loadingHolder) return;
349
- if (loadingHolder.style.display !== 'none') {
350
- activatedWhileLoading = true;
351
- (0, _makeMutationObserverChunkedStream.default)(loadingHolder, {
352
- attributes: true,
353
- attributeFilter: ['style']
354
- }).toProperty(() => null).map(() => loadingHolder.style.display === 'none').filter(Boolean).take(1).delay(150).takeUntilBy(this._stopper).onValue(() => {
355
- activatedWhileLoading = false;
356
- });
446
+ buttonContainers.set(appName, buttonContainer);
447
+
448
+ querySelector(buttonContainer, 'button').addEventListener(
449
+ 'click',
450
+ (event: MouseEvent) => {
451
+ event.stopPropagation();
452
+
453
+ const activeButtonContainer = iconArea
454
+ ? iconArea.querySelector('.sidebar_button_container_active')
455
+ : null;
456
+ if (activeButtonContainer) {
457
+ activeButtonContainer.classList.remove(
458
+ 'sidebar_button_container_active'
459
+ );
460
+ }
461
+
462
+ if (activeButtonContainer === buttonContainer) {
463
+ if (addonSidebarContainerEl)
464
+ addonSidebarContainerEl.classList.remove(
465
+ 'app_sidebar_visible'
466
+ );
467
+ if (contentContainer)
468
+ contentContainer.classList.remove(
469
+ 'container_app_sidebar_visible'
470
+ );
471
+
472
+ this._setShouldAppSidebarOpen(false);
473
+ } else {
474
+ if (addonSidebarContainerEl)
475
+ addonSidebarContainerEl.classList.add(
476
+ 'app_sidebar_visible'
477
+ );
478
+ buttonContainer.classList.add(
479
+ 'sidebar_button_container_active'
480
+ );
481
+ if (contentContainer)
482
+ contentContainer.classList.add(
483
+ 'container_app_sidebar_visible'
484
+ );
485
+
486
+ this._setShouldAppSidebarOpen(true);
487
+
488
+ if (addonSidebarContainerEl) {
489
+ // check and deactivate add-on sidebar
490
+ const activeAddOnIcon =
491
+ addonSidebarContainerEl.querySelector(
492
+ ACTIVE_ADD_ON_ICON_SELECTOR
493
+ );
494
+ if (activeAddOnIcon) simulateClick(activeAddOnIcon);
495
+
496
+ //fake resize to get gmail to fix any heights that are messed up
497
+ fakeWindowResize();
498
+
499
+ // if the tabList is still loading then handle the case where the user
500
+ // clicks on an SDK icon to bring up an SDK app when Gmail thinks that it needs
501
+ // to bring up an Add-On sidebar (since that was last visible from Gmail's perspective)
502
+ // so we need to suppress Gmail bringing up their sidebar. This handles the flag of if we
503
+ // need to suppress
504
+ const nativeIconArea =
505
+ addonSidebarContainerEl.firstElementChild;
506
+ if (!nativeIconArea) return;
507
+ const loadingHolderAsAny: any =
508
+ nativeIconArea.firstElementChild;
509
+ const loadingHolder = (loadingHolderAsAny: ?HTMLElement);
510
+ if (!loadingHolder) return;
511
+
512
+ if (loadingHolder.style.display !== 'none') {
513
+ activatedWhileLoading = true;
514
+ makeMutationObserverChunkedStream(loadingHolder, {
515
+ attributes: true,
516
+ attributeFilter: ['style'],
517
+ })
518
+ .toProperty(() => null)
519
+ .map(() => loadingHolder.style.display === 'none')
520
+ .filter(Boolean)
521
+ .take(1)
522
+ .delay(150)
523
+ .takeUntilBy(this._stopper)
524
+ .onValue(() => {
525
+ activatedWhileLoading = false;
526
+ });
527
+ }
528
+ }
529
+
530
+ component.openPanel(instanceId);
531
+ component.scrollPanelIntoView(instanceId, true);
357
532
  }
533
+ },
534
+ true
535
+ );
536
+
537
+ if (iconArea)
538
+ addToIconArea(orderManager, appName, buttonContainer, iconArea);
539
+
540
+ if (widthManager) widthManager.fixWidths();
541
+
542
+ if (this._getShouldAppSidebarOpen()) {
543
+ // if we last had an SDK sidebar open then bring up the SDK sidebar when the first
544
+ // panel gets added
545
+ const activeButtonContainer = iconArea.querySelector(
546
+ '.sidebar_button_container_active'
547
+ );
548
+ if (!activeButtonContainer) {
549
+ buttonContainer.classList.add(
550
+ 'sidebar_button_container_active'
551
+ );
552
+
553
+ if (addonSidebarContainerEl)
554
+ addonSidebarContainerEl.classList.add('app_sidebar_visible');
555
+ if (contentContainer)
556
+ contentContainer.classList.add(
557
+ 'container_app_sidebar_visible'
558
+ );
559
+
560
+ //fake resize to get gmail to fix any heights that are messed up
561
+ fakeWindowResize();
358
562
  }
359
- component.openPanel(instanceId);
360
- component.scrollPanelIntoView(instanceId, true);
361
- }
362
- }, true);
363
- if (iconArea) (0, _addToIconArea.default)(orderManager, appName, buttonContainer, iconArea);
364
- if (widthManager) widthManager.fixWidths();
365
- if (this._getShouldAppSidebarOpen()) {
366
- // if we last had an SDK sidebar open then bring up the SDK sidebar when the first
367
- // panel gets added
368
- const activeButtonContainer = iconArea.querySelector('.sidebar_button_container_active');
369
- if (!activeButtonContainer) {
370
- buttonContainer.classList.add('sidebar_button_container_active');
371
- if (addonSidebarContainerEl) addonSidebarContainerEl.classList.add('app_sidebar_visible');
372
- if (contentContainer) contentContainer.classList.add('container_app_sidebar_visible');
373
-
374
- //fake resize to get gmail to fix any heights that are messed up
375
- (0, _fakeWindowResize.default)();
376
563
  }
377
564
  }
378
- }
379
- });
380
- });
381
- _kefir.default.fromEvents(document.body, 'inboxsdkUpdateSidebarPanel').filter(e => e.detail.sidebarId === this._instanceId).takeUntilBy(this._stopper).onValue(event => {
382
- const orderedItems = orderManager.getOrderedItems();
383
- const index = (0, _findIndex.default)(orderedItems, x => x.value.instanceId === event.detail.instanceId);
384
- if (index === -1) throw new Error('should not happen: failed to find orderItem');
385
- orderManager.updateItemValueByIndex(index, {
386
- id: orderedItems[index].value.id,
387
- appId: event.detail.appId,
388
- appName: event.detail.appName || event.detail.title,
389
- instanceId: event.detail.instanceId,
390
- title: event.detail.title,
391
- iconClass: event.detail.iconClass,
392
- iconUrl: event.detail.iconUrl,
393
- hideTitleBar: event.detail.hideTitleBar,
394
- el: event.target
565
+ });
395
566
  });
396
- render();
397
- });
398
- _kefir.default.fromEvents(document.body, 'inboxsdkRemoveSidebarPanel').filter(e => e.detail.sidebarId === this._instanceId).takeUntilBy(this._stopper).onValue(event => {
399
- const orderedItems = orderManager.getOrderedItems();
400
- const index = (0, _findIndex.default)(orderedItems, x => x.value.instanceId === event.detail.instanceId);
401
- if (index === -1) throw new Error('should not happen: failed to find orderItem');
402
- currentIds.delete(orderedItems[index].id);
403
- orderManager.removeItemByIndex(index);
404
- if (orderManager.getOrderedItems().length === 0) {
405
- this.destroy();
406
- } else {
567
+
568
+ Kefir.fromEvents((document.body: any), 'inboxsdkUpdateSidebarPanel')
569
+ .filter((e) => e.detail.sidebarId === this._instanceId)
570
+ .takeUntilBy(this._stopper)
571
+ .onValue((event) => {
572
+ const orderedItems = orderManager.getOrderedItems();
573
+ const index = findIndex(
574
+ orderedItems,
575
+ (x) => x.value.instanceId === event.detail.instanceId
576
+ );
577
+ if (index === -1)
578
+ throw new Error('should not happen: failed to find orderItem');
579
+ orderManager.updateItemValueByIndex(index, {
580
+ id: orderedItems[index].value.id,
581
+ appId: event.detail.appId,
582
+ appName: event.detail.appName || event.detail.title,
583
+ instanceId: event.detail.instanceId,
584
+ title: event.detail.title,
585
+ iconClass: event.detail.iconClass,
586
+ iconUrl: event.detail.iconUrl,
587
+ hideTitleBar: event.detail.hideTitleBar,
588
+ el: event.target,
589
+ });
407
590
  render();
408
- }
409
- if (!addonSidebarContainerEl) return;
410
- iconArea = addonSidebarContainerEl.querySelector('.' + (0, _idMap.default)('sidebar_iconArea'));
411
- if (!iconArea) return;
412
- if (widthManager) widthManager.fixWidths();
413
- const appName = event.detail.appName;
414
- const container = buttonContainers.get(appName);
415
- if (container) {
416
- const currentCount = Number(container.getAttribute('data-count'));
417
- if (currentCount <= 1) {
418
- const activeButtonContainer = el.querySelector('.sidebar_button_container_active');
419
- container.remove();
420
- buttonContainers.delete(appName);
421
- if (container === activeButtonContainer) {
422
- if (addonSidebarContainerEl) {
423
- addonSidebarContainerEl.classList.remove('app_sidebar_visible');
424
- if (contentContainer) contentContainer.classList.remove('container_app_sidebar_visible');
591
+ });
592
+
593
+ Kefir.fromEvents((document.body: any), 'inboxsdkRemoveSidebarPanel')
594
+ .filter((e) => e.detail.sidebarId === this._instanceId)
595
+ .takeUntilBy(this._stopper)
596
+ .onValue((event) => {
597
+ const orderedItems = orderManager.getOrderedItems();
598
+ const index = findIndex(
599
+ orderedItems,
600
+ (x) => x.value.instanceId === event.detail.instanceId
601
+ );
602
+ if (index === -1)
603
+ throw new Error('should not happen: failed to find orderItem');
604
+ currentIds.delete(orderedItems[index].id);
605
+ orderManager.removeItemByIndex(index);
606
+ if (orderManager.getOrderedItems().length === 0) {
607
+ this.destroy();
608
+ } else {
609
+ render();
610
+ }
611
+
612
+ if (!addonSidebarContainerEl) return;
613
+
614
+ iconArea = addonSidebarContainerEl.querySelector(
615
+ '.' + idMap('sidebar_iconArea')
616
+ );
617
+ if (!iconArea) return;
618
+
619
+ if (widthManager) widthManager.fixWidths();
620
+
621
+ const appName = event.detail.appName;
622
+
623
+ const container = buttonContainers.get(appName);
624
+ if (container) {
625
+ const currentCount = Number(container.getAttribute('data-count'));
626
+ if (currentCount <= 1) {
627
+ const activeButtonContainer = el.querySelector(
628
+ '.sidebar_button_container_active'
629
+ );
630
+ container.remove();
631
+ buttonContainers.delete(appName);
632
+ if (container === activeButtonContainer) {
633
+ if (addonSidebarContainerEl) {
634
+ addonSidebarContainerEl.classList.remove('app_sidebar_visible');
635
+ if (contentContainer)
636
+ contentContainer.classList.remove(
637
+ 'container_app_sidebar_visible'
638
+ );
639
+ }
640
+
641
+ this._setShouldAppSidebarOpen(false);
425
642
  }
426
- this._setShouldAppSidebarOpen(false);
643
+ } else if (currentCount === 2) {
644
+ container.removeAttribute('data-count');
645
+ } else {
646
+ container.setAttribute('data-count', String(currentCount - 1));
427
647
  }
428
- } else if (currentCount === 2) {
429
- container.removeAttribute('data-count');
430
- } else {
431
- container.setAttribute('data-count', String(currentCount - 1));
432
648
  }
433
- }
434
- });
435
- _kefir.default.fromEvents(document.body, 'inboxsdkSidebarPanelScrollIntoView').takeUntilBy(this._stopper).onValue(event => {
436
- component.scrollPanelIntoView(event.detail.instanceId);
437
- });
438
- _kefir.default.fromEvents(document.body, 'inboxsdkSidebarPanelClose').takeUntilBy(this._stopper).onValue(event => {
439
- component.closePanel(event.detail.instanceId);
440
- });
649
+ });
650
+
651
+ Kefir.fromEvents((document.body: any), 'inboxsdkSidebarPanelScrollIntoView')
652
+ .takeUntilBy(this._stopper)
653
+ .onValue((event) => {
654
+ component.scrollPanelIntoView(event.detail.instanceId);
655
+ });
656
+
657
+ Kefir.fromEvents((document.body: any), 'inboxsdkSidebarPanelClose')
658
+ .takeUntilBy(this._stopper)
659
+ .onValue((event) => {
660
+ component.closePanel(event.detail.instanceId);
661
+ });
662
+
441
663
  if (addonSidebarContainerEl) {
442
664
  // listen for add-on sidebar contents to become visible which can happen in 1 of two cases
443
665
  // 1. user clicks on an Add-Icon icon
444
666
  // 2. Gmail automatically opens an Add-on sidebar because it was last open in previous thread
445
- const addonSidebarContentContainerElement = (0, _querySelectorOrFail.default)(addonSidebarContainerEl, ADD_ON_SIDEBAR_CONTENT_SELECTOR);
446
- (0, _makeElementChildStream.default)(addonSidebarContentContainerElement).flatMap(_ref => {
447
- let {
448
- el,
449
- removalStream
450
- } = _ref;
451
- return (0, _makeMutationObserverChunkedStream.default)(el, {
452
- attributes: true,
453
- attributeFilter: ['style']
454
- }).toProperty(() => null).map(() => el.style.display !== 'none');
455
- }).takeUntilBy(this._stopper).onValue(isDisplayingGmailAddonSidebar => {
456
- if (isDisplayingGmailAddonSidebar) {
457
- if (contentContainer) contentContainer.classList.add('container_addon_sidebar_visible');
458
-
459
- // we need to suppress this sidebar from loading
460
- if (activatedWhileLoading) {
461
- const activeAddOnIcon = addonSidebarContainerEl.querySelector(ACTIVE_ADD_ON_ICON_SELECTOR);
462
- if (activeAddOnIcon) (0, _simulateMouseEvent.simulateClick)(activeAddOnIcon);
463
- return;
464
- }
465
- this._setShouldAppSidebarOpen(false);
466
- const activeButtonContainer = iconArea ? iconArea.querySelector('.sidebar_button_container_active') : null;
467
- if (activeButtonContainer) {
468
- addonSidebarContainerEl.classList.remove('app_sidebar_visible');
469
- activeButtonContainer.classList.remove('sidebar_button_container_active');
470
- if (contentContainer) contentContainer.classList.remove('container_app_sidebar_visible');
667
+ const addonSidebarContentContainerElement = querySelector(
668
+ addonSidebarContainerEl,
669
+ ADD_ON_SIDEBAR_CONTENT_SELECTOR
670
+ );
671
+ makeElementChildStream(addonSidebarContentContainerElement)
672
+ .flatMap(({ el, removalStream }) =>
673
+ makeMutationObserverChunkedStream(el, {
674
+ attributes: true,
675
+ attributeFilter: ['style'],
676
+ })
677
+ .toProperty(() => null)
678
+ .map(() => el.style.display !== 'none')
679
+ )
680
+ .takeUntilBy(this._stopper)
681
+ .onValue((isDisplayingGmailAddonSidebar) => {
682
+ if (isDisplayingGmailAddonSidebar) {
683
+ if (contentContainer)
684
+ contentContainer.classList.add('container_addon_sidebar_visible');
685
+
686
+ // we need to suppress this sidebar from loading
687
+ if (activatedWhileLoading) {
688
+ const activeAddOnIcon = addonSidebarContainerEl.querySelector(
689
+ ACTIVE_ADD_ON_ICON_SELECTOR
690
+ );
691
+ if (activeAddOnIcon) simulateClick(activeAddOnIcon);
692
+ return;
693
+ }
694
+
695
+ this._setShouldAppSidebarOpen(false);
696
+
697
+ const activeButtonContainer = iconArea
698
+ ? iconArea.querySelector('.sidebar_button_container_active')
699
+ : null;
700
+ if (activeButtonContainer) {
701
+ addonSidebarContainerEl.classList.remove('app_sidebar_visible');
702
+ activeButtonContainer.classList.remove(
703
+ 'sidebar_button_container_active'
704
+ );
705
+ if (contentContainer)
706
+ contentContainer.classList.remove(
707
+ 'container_app_sidebar_visible'
708
+ );
709
+ }
710
+ } else {
711
+ if (contentContainer)
712
+ contentContainer.classList.remove(
713
+ 'container_addon_sidebar_visible'
714
+ );
471
715
  }
472
- } else {
473
- if (contentContainer) contentContainer.classList.remove('container_addon_sidebar_visible');
474
- }
475
- });
716
+ });
476
717
  }
718
+
477
719
  if (addonSidebarContainerEl) {
478
720
  //listen for scroll and update active icon if needed
479
- _kefir.default.fromEvents(el, 'scroll').takeUntilBy(this._stopper).onValue(() => {
480
- updateHighlightedAppIconBus.emit(null);
481
- });
721
+ Kefir.fromEvents(el, 'scroll')
722
+ .takeUntilBy(this._stopper)
723
+ .onValue(() => {
724
+ updateHighlightedAppIconBus.emit(null);
725
+ });
482
726
  }
483
727
  }
484
- addSidebarContentPanel(descriptor) {
485
- const panel = new _ContentPanelViewDriver.default(this._driver, descriptor, this._instanceId);
728
+
729
+ addSidebarContentPanel(descriptor: Kefir.Observable<Object>) {
730
+ const panel = new ContentPanelViewDriver(
731
+ this._driver,
732
+ descriptor,
733
+ this._instanceId
734
+ );
735
+
486
736
  this._stopper.takeUntilBy(panel.getStopper()).onValue(() => {
487
737
  panel.remove();
488
738
  });
739
+
489
740
  return panel;
490
741
  }
491
742
  }
492
- var _default = (0, _ud.defn)(module, GmailAppSidebarView);
493
- exports.default = _default;
743
+
744
+ export default defn(module, GmailAppSidebarView);