@inboxsdk/core 0.2.28-alpha.3 → 0.2.28-alpha.5

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 (398) hide show
  1. package/inboxsdk.js +1 -1
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +5 -1
  4. package/src/build/exec.js +26 -0
  5. package/src/build/spawn.js +17 -0
  6. package/src/common/ajax.js +90 -0
  7. package/src/common/cachebust-url.js +10 -0
  8. package/src/common/censorHTMLstring.js +37 -0
  9. package/src/common/censorHTMLtree.js +28 -0
  10. package/src/common/censorJSONTree.js +15 -0
  11. package/src/common/connectivity-test.js +21 -0
  12. package/src/common/defer.js +11 -0
  13. package/src/common/find-parent.js +10 -0
  14. package/src/common/get-extension-id.js +7 -0
  15. package/src/common/get-or-fail.js +8 -0
  16. package/src/common/get-session-id.js +14 -0
  17. package/src/common/get-stack-trace.js +6 -0
  18. package/src/common/html-to-text.js +7 -0
  19. package/src/common/isElementVisible.js +6 -0
  20. package/src/common/load-script.js +127 -0
  21. package/src/common/log-error.js +191 -0
  22. package/src/common/quoted-split.js +18 -0
  23. package/src/common/rate-limit-queuer.js +57 -0
  24. package/src/common/rate-limit.js +14 -0
  25. package/src/common/version.js +6 -0
  26. package/src/inboxsdk-js/check-requirements.js +7 -3
  27. package/src/inboxsdk-js/header.js +1 -0
  28. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +5 -6
  29. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -3
  30. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -1
  31. package/src/inboxsdk-js/inboxsdk-TEST.js +4 -3
  32. package/src/inboxsdk-js/inboxsdk.js +33 -39
  33. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +15 -18
  34. package/src/inboxsdk-js/loading/platform-implementation-loader.js +27 -0
  35. package/src/injected-js/gmail/constants.js +2 -0
  36. package/src/injected-js/gmail/modify-suggestions.js +106 -0
  37. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  38. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  39. package/src/injected-js/gmail/setup-gmonkey-handler.js +49 -0
  40. package/src/injected-js/gmail/sync-compose-processor-20220909.js +298 -0
  41. package/src/injected-js/gmail/sync-compose-processor.js +55 -0
  42. package/src/injected-js/gmail/sync-compose-request-processor.js +110 -0
  43. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  44. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  45. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  46. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  47. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  48. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  49. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  50. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  51. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  52. package/src/injected-js/injected-logger.js +50 -0
  53. package/src/injected-js/main.js +11 -24
  54. package/src/injected-js/message-metadata-holder.js +52 -82
  55. package/src/injected-js/setup-data-exposer.js +89 -148
  56. package/src/injected-js/setup-error-silencer.js +21 -21
  57. package/src/injected-js/setup-event-reemitter.js +30 -22
  58. package/src/injected-js/setupCustomViewEventAssassin.js +90 -0
  59. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  60. package/src/injected-js/setupPushStateListener.js +18 -11
  61. package/src/injected-js/xhr-helper.js +62 -65
  62. package/src/injected-js/xhr-proxy-factory.js +195 -445
  63. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  64. package/src/platform-implementation-js/constants/nav-item-types.js +19 -0
  65. package/src/platform-implementation-js/constants/router.js +14 -9
  66. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  67. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  68. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  69. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +21 -0
  70. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-collapsible-panel.js +28 -0
  71. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-nav-item.js +98 -0
  72. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-support-item.js +4 -0
  73. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  74. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  75. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/encodeDraftUrlId.js +8 -0
  76. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  77. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  78. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-message-id.js +12 -0
  79. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-rfc-message-id-for-gmail-thread-id.js +33 -0
  80. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  81. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  82. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  83. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  84. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  85. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.js +4 -0
  86. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  87. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  88. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.js +44 -0
  89. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  90. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  91. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  92. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  93. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  94. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  95. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  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 +44 -67
  98. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  99. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  100. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  101. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  102. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  103. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  104. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  105. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-gmail-styles.js +95 -0
  106. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  107. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  108. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  109. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/get-main-content-element-changed-stream.js +38 -0
  110. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter/wait-for-gmail-mode-to-settle.js +12 -0
  111. package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +253 -0
  112. package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.js +200 -0
  113. package/src/platform-implementation-js/dom-driver/gmail/gmail-response-processor.js +533 -0
  114. package/src/platform-implementation-js/dom-driver/gmail/gmail-sync-response-processor.js +289 -0
  115. package/src/platform-implementation-js/dom-driver/gmail/is-compose-titlebar-light-color.js +21 -0
  116. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  117. package/src/platform-implementation-js/dom-driver/gmail/makePageParserTree.js +28 -0
  118. package/src/platform-implementation-js/dom-driver/gmail/pageParserOptions.js +19 -0
  119. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-menu-item-view.js +126 -0
  120. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  121. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  122. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  123. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  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 +391 -797
  126. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  127. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  128. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  129. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  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 +188 -541
  133. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  134. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  135. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  136. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  137. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  138. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.js +101 -0
  139. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  140. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/detectClassicRecipientsArea.js +38 -0
  141. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  142. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  143. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  144. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  145. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  146. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  147. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-information-extractor.js +28 -0
  148. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  149. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  150. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  151. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-recipients.js +22 -0
  152. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  153. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.js +233 -0
  154. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  155. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  156. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  157. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  158. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/page-parser.js +223 -0
  159. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  160. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/set-recipients.js +157 -0
  161. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/setupLinkPopovers.js +109 -0
  162. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  163. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  164. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  165. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/attachment-icon.js +5 -0
  166. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  167. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  168. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +759 -0
  169. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  170. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  171. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  172. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-support-item-view.js +84 -0
  173. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  174. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  175. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  176. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  177. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  178. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  179. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  180. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  181. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-color-classes.js +33 -0
  182. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.js +325 -0
  183. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.js +58 -0
  184. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.js +55 -0
  185. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  186. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.js +96 -0
  187. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-dropdown-button-view.js +30 -0
  188. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/more-parent-accessory-button-view.js +10 -0
  189. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  190. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.js +22 -0
  191. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  192. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  193. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  194. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  195. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  196. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  197. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  198. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  199. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  200. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  201. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  202. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  203. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  204. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  205. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  206. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  207. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  208. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  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 +24 -35
  211. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  212. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  213. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  214. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  215. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  216. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  217. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  218. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  219. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  220. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  221. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  222. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  223. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  224. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  225. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  226. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  227. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  228. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  229. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  230. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  231. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  232. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  233. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  234. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  235. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  236. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  237. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  238. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  239. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  240. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  241. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  242. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  243. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  244. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  245. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  246. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  247. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  248. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  249. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  250. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  251. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  252. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  253. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  254. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  255. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  256. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  257. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  258. package/src/platform-implementation-js/driver-common/getAccountUrlPart.js +17 -0
  259. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  260. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  261. package/src/platform-implementation-js/driver-common/getOriginalMessagePage.js +33 -0
  262. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  263. package/src/platform-implementation-js/driver-common/getSyncThreadsForSearch.js +49 -0
  264. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  265. package/src/platform-implementation-js/driver-common/gmailAjax.js +65 -0
  266. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  267. package/src/platform-implementation-js/driver-common/render-custom-icon.js +16 -0
  268. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  269. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  270. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  271. package/src/platform-implementation-js/driver-common/update-icon.js +90 -0
  272. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  273. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  274. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  275. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  276. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  277. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  278. package/src/platform-implementation-js/lib/ErrorCollector.js +47 -0
  279. package/src/platform-implementation-js/lib/Membrane.js +22 -0
  280. package/src/platform-implementation-js/lib/ScrollableContainByScreen.js +30 -0
  281. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  282. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  283. package/src/platform-implementation-js/lib/attemptWithRetries.js +16 -0
  284. package/src/platform-implementation-js/lib/common-page-communicator.js +137 -0
  285. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  286. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  287. package/src/platform-implementation-js/lib/delay-asap.js +12 -0
  288. package/src/platform-implementation-js/lib/delay-idle.js +16 -0
  289. package/src/platform-implementation-js/lib/dom/block-and-reemit-keyboard-events.js +36 -0
  290. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  291. package/src/platform-implementation-js/lib/dom/generic-button-view.js +39 -0
  292. package/src/platform-implementation-js/lib/dom/get-insert-before-element.js +39 -0
  293. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  294. package/src/platform-implementation-js/lib/dom/insert-element-in-order.js +38 -0
  295. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  296. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  297. package/src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.js +12 -0
  298. package/src/platform-implementation-js/lib/dom/make-element-child-stream.js +79 -0
  299. package/src/platform-implementation-js/lib/dom/make-element-stream-merger.js +28 -0
  300. package/src/platform-implementation-js/lib/dom/make-element-view-stream.js +15 -0
  301. package/src/platform-implementation-js/lib/dom/make-mutation-observer-chunked-stream.js +15 -0
  302. package/src/platform-implementation-js/lib/dom/make-mutation-observer-stream.js +5 -0
  303. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  304. package/src/platform-implementation-js/lib/dom/outsideClicksAndEscape.js +39 -0
  305. package/src/platform-implementation-js/lib/dom/parentNodes.js +8 -0
  306. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  307. package/src/platform-implementation-js/lib/dom/querySelectorOrFail.js +6 -0
  308. package/src/platform-implementation-js/lib/dom/reemitClickEventForReact.js +22 -0
  309. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  310. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  311. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  312. package/src/platform-implementation-js/lib/dom/simulate-key.js +46 -0
  313. package/src/platform-implementation-js/lib/dom/simulate-mouse-event.js +16 -0
  314. package/src/platform-implementation-js/lib/dom/trigger-relay-event.js +7 -0
  315. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.js +25 -0
  316. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  317. package/src/platform-implementation-js/lib/fake-window-resize.js +5 -0
  318. package/src/platform-implementation-js/lib/from-event-target-capture.js +12 -0
  319. package/src/platform-implementation-js/lib/fromEventsWithOptions.js +10 -0
  320. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  321. package/src/platform-implementation-js/lib/handler-registry.js +67 -0
  322. package/src/platform-implementation-js/lib/idMap.js +45 -0
  323. package/src/platform-implementation-js/lib/imageRequest.js +8 -0
  324. package/src/platform-implementation-js/lib/incrementName.js +7 -0
  325. package/src/platform-implementation-js/lib/inject-script-EMBEDDED.js +14 -0
  326. package/src/platform-implementation-js/lib/inject-script.js +33 -0
  327. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  328. package/src/platform-implementation-js/lib/is-valid-app-id.js +27 -0
  329. package/src/platform-implementation-js/lib/is-valid-email.js +14 -0
  330. package/src/platform-implementation-js/lib/isNotNil.js +5 -0
  331. package/src/platform-implementation-js/lib/isStreakAppId.js +11 -0
  332. package/src/platform-implementation-js/lib/logger.js +441 -0
  333. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  334. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  335. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  336. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  337. package/src/platform-implementation-js/lib/persistent-queue.js +107 -0
  338. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  339. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  340. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  341. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  342. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  343. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  344. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  345. package/src/platform-implementation-js/lib/safe-event-emitter.js +17 -0
  346. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  347. package/src/platform-implementation-js/lib/stopper-pool.js +41 -0
  348. package/src/platform-implementation-js/lib/stream-wait-for.js +30 -0
  349. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  350. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  351. package/src/platform-implementation-js/lib/wait-for.js +28 -0
  352. package/src/platform-implementation-js/lib/waitForAsync.js +19 -0
  353. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  354. package/src/platform-implementation-js/main.js +9 -24
  355. package/src/platform-implementation-js/namespaces/app-menu.d.ts.map +1 -1
  356. package/src/platform-implementation-js/namespaces/app-menu.js +31 -0
  357. package/src/platform-implementation-js/namespaces/butter-bar.js +163 -0
  358. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  359. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  360. package/src/platform-implementation-js/namespaces/global.js +27 -39
  361. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  362. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  363. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  364. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  365. package/src/platform-implementation-js/namespaces/router.js +70 -137
  366. package/src/platform-implementation-js/namespaces/search.js +19 -17
  367. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  368. package/src/platform-implementation-js/namespaces/user.js +36 -37
  369. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  370. package/src/platform-implementation-js/platform-implementation.js +98 -229
  371. package/src/platform-implementation-js/views/SimpleElementView.js +16 -0
  372. package/src/platform-implementation-js/views/app-menu-item-view.js +257 -0
  373. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  374. package/src/platform-implementation-js/views/collapsible-panel-view.js +222 -0
  375. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  376. package/src/platform-implementation-js/views/compose-button-view.js +45 -0
  377. package/src/platform-implementation-js/views/compose-view.js +312 -0
  378. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  379. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  380. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  381. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  382. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  383. package/src/platform-implementation-js/views/keyboard-shortcut-handle.js +14 -0
  384. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  385. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  386. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  387. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  388. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  389. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  390. package/src/platform-implementation-js/views/section-view.js +60 -52
  391. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  392. package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.js +39 -0
  393. package/src/platform-implementation-js/widgets/buttons/dropdown-button-view-controller.js +98 -0
  394. package/src/platform-implementation-js/widgets/buttons/dropdown-view.js +122 -0
  395. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  396. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  397. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  398. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -0,0 +1,109 @@
1
+ import * as Kefir from 'kefir';
2
+ import toItemWithLifetimeStream from '../../../../lib/toItemWithLifetimeStream';
3
+ import makeMutationObserverChunkedStream from '../../../../lib/dom/make-mutation-observer-chunked-stream';
4
+ import SafeEventEmitter from '../../../../lib/safe-event-emitter';
5
+ class LinkPopOver extends SafeEventEmitter {
6
+ _linkEl;
7
+ _popOverEl;
8
+ constructor(linkEl, popOverEl) {
9
+ super();
10
+ this._linkEl = linkEl;
11
+ this._popOverEl = popOverEl;
12
+ }
13
+ getLinkElement() {
14
+ return this._linkEl;
15
+ }
16
+ addSection() {
17
+ let containerEl = this._popOverEl.querySelector('.inboxsdk__linkPopOver_section_container');
18
+ if (!containerEl) {
19
+ containerEl = document.createElement('div');
20
+ containerEl.className = 'inboxsdk__linkPopOver_section_container';
21
+ this._popOverEl.appendChild(containerEl);
22
+ }
23
+ return new LinkPopOverSection(this, containerEl);
24
+ }
25
+ }
26
+ class LinkPopOverSection {
27
+ _el = document.createElement('div');
28
+ constructor(linkPopOver, containerEl) {
29
+ this._el.className = 'inboxsdk__linkPopOver_section';
30
+ containerEl.appendChild(this._el);
31
+ linkPopOver.on('close', () => {
32
+ this.remove();
33
+ });
34
+ }
35
+ getElement() {
36
+ return this._el;
37
+ }
38
+ remove() {
39
+ this._el.remove();
40
+ }
41
+ }
42
+ function getSelectedLink(gmailComposeView) {
43
+ const focusNode = document.getSelection()?.focusNode;
44
+ if (!focusNode) {
45
+ return null;
46
+ }
47
+ if (focusNode instanceof Text) {
48
+ if (focusNode.previousSibling instanceof HTMLAnchorElement &&
49
+ document.getSelection()?.anchorOffset === 0) {
50
+ // For capturing link creation cases where the cursor ends up behind the link
51
+ return focusNode.previousSibling;
52
+ }
53
+ else if (focusNode.nextSibling instanceof HTMLAnchorElement) {
54
+ // google's popover appears when clicking just in front of a link as well
55
+ return focusNode.nextSibling;
56
+ }
57
+ }
58
+ return findLinkParent(focusNode, gmailComposeView.getBodyElement());
59
+ }
60
+ function findLinkParent(node, composeBody) {
61
+ if (node instanceof HTMLAnchorElement) {
62
+ return node;
63
+ }
64
+ else if (!node || node === composeBody) {
65
+ return null;
66
+ }
67
+ else {
68
+ return findLinkParent(node.parentElement, composeBody);
69
+ }
70
+ }
71
+ export default function setupLinkPopOvers(gmailComposeView) {
72
+ return toItemWithLifetimeStream(gmailComposeView
73
+ .getGmailDriver()
74
+ .getTagTree()
75
+ .getAllByTag('composeLinkPopOverContainer')).flatMap(({ el, removalStream }) => {
76
+ const popOverEl = el.getValue();
77
+ let existingLinkPopOver = null;
78
+ removalStream.onValue(() => {
79
+ if (existingLinkPopOver) {
80
+ existingLinkPopOver.emit('close');
81
+ existingLinkPopOver = null;
82
+ }
83
+ });
84
+ return makeMutationObserverChunkedStream(popOverEl, {
85
+ attributes: true,
86
+ attributeFilter: ['style'],
87
+ })
88
+ .toProperty(() => null)
89
+ .takeUntilBy(removalStream)
90
+ .flatMap(() => {
91
+ if (existingLinkPopOver) {
92
+ existingLinkPopOver.emit('close');
93
+ existingLinkPopOver = null;
94
+ }
95
+ if (popOverEl.style.visibility === 'visible') {
96
+ const linkEl = getSelectedLink(gmailComposeView);
97
+ if (linkEl && gmailComposeView.getElement().contains(linkEl)) {
98
+ const linkPopOver = new LinkPopOver(linkEl, popOverEl);
99
+ existingLinkPopOver = linkPopOver;
100
+ return Kefir.constant({
101
+ eventName: 'linkPopOver',
102
+ data: linkPopOver,
103
+ });
104
+ }
105
+ }
106
+ return Kefir.never();
107
+ });
108
+ });
109
+ }
@@ -1,26 +1,26 @@
1
- /* @flow */
2
-
3
- import includes from 'lodash/includes';
4
- import startsWith from 'lodash/startsWith';
5
- import findIndex from 'lodash/findIndex';
6
- import once from 'lodash/once';
7
- import Kefir from 'kefir';
8
- import delayAsap from '../../../../lib/delay-asap';
9
- import makeMutationObserverChunkedStream from '../../../../lib/dom/make-mutation-observer-chunked-stream';
10
- import cssSelectorEscape from '../../../../lib/css-selector-escape';
11
- import type GmailComposeView from '../gmail-compose-view';
1
+ "use strict";
12
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = sizeFixer;
8
+ var _includes = _interopRequireDefault(require("lodash/includes"));
9
+ var _startsWith = _interopRequireDefault(require("lodash/startsWith"));
10
+ var _findIndex = _interopRequireDefault(require("lodash/findIndex"));
11
+ var _once = _interopRequireDefault(require("lodash/once"));
12
+ var _kefir = _interopRequireDefault(require("kefir"));
13
+ var _delayAsap = _interopRequireDefault(require("../../../../lib/delay-asap"));
14
+ var _makeMutationObserverChunkedStream = _interopRequireDefault(require("../../../../lib/dom/make-mutation-observer-chunked-stream"));
15
+ var _cssSelectorEscape = _interopRequireDefault(require("../../../../lib/css-selector-escape"));
13
16
  const MATERIAL_UI_GMAIL_STATUS_HEIGHT = 60;
14
17
  const MATERIAL_UI_TOP_FORM_HEIGHT = 72;
15
-
16
- const SELECTOR_ESCAPE_HATCH_PREFIX =
17
- 'body:not(.inboxsdk_hack_disableComposeSizeFixer) ';
18
-
19
- var getSizeFixerSheet: () => CSSStyleSheet = once(() => {
20
- const style: HTMLStyleElement = (document.createElement('style'): any);
18
+ const SELECTOR_ESCAPE_HATCH_PREFIX = 'body:not(.inboxsdk_hack_disableComposeSizeFixer) ';
19
+ var getSizeFixerSheet = (0, _once.default)(() => {
20
+ const style = document.createElement('style');
21
21
  style.type = 'text/css';
22
22
  style.className = 'inboxsdk__compose_size_fixer';
23
- (document.head: any).appendChild(style);
23
+ document.head.appendChild(style);
24
24
  var sheet = style.sheet;
25
25
  if (!(sheet instanceof CSSStyleSheet)) {
26
26
  throw new Error('Could not add stylesheet');
@@ -29,47 +29,28 @@ var getSizeFixerSheet: () => CSSStyleSheet = once(() => {
29
29
  });
30
30
 
31
31
  // Gets a css selector string for a given id
32
- function byId(id: string): string {
33
- return '#' + cssSelectorEscape(id);
32
+ function byId(id) {
33
+ return '#' + (0, _cssSelectorEscape.default)(id);
34
34
  }
35
-
36
- export default function sizeFixer(
37
- driver: Object,
38
- gmailComposeView: GmailComposeView
39
- ) {
40
- if (
41
- gmailComposeView.isInlineReplyForm() ||
42
- gmailComposeView.getElement().classList.contains('inboxsdk__size_fixer')
43
- ) {
35
+ function sizeFixer(driver, gmailComposeView) {
36
+ if (gmailComposeView.isInlineReplyForm() || gmailComposeView.getElement().classList.contains('inboxsdk__size_fixer')) {
44
37
  return;
45
38
  }
46
39
  gmailComposeView.getElement().classList.add('inboxsdk__size_fixer');
47
-
48
40
  var composeEvents = gmailComposeView.getEventStream();
49
41
  var stopper = composeEvents.filter(() => false).beforeEnd(() => null);
50
- var resizeEvents = composeEvents
51
- .filter((e) => includes(['resize', 'fullscreenChanged'], e.eventName))
52
- .merge(delayAsap(null));
53
-
54
- var statusAreaParent: HTMLElement = (gmailComposeView.getStatusArea()
55
- .parentElement: any);
56
- var scrollBody: HTMLElement = gmailComposeView.getScrollBody();
57
-
42
+ var resizeEvents = composeEvents.filter(e => (0, _includes.default)(['resize', 'fullscreenChanged'], e.eventName)).merge((0, _delayAsap.default)(null));
43
+ var statusAreaParent = gmailComposeView.getStatusArea().parentElement;
44
+ var scrollBody = gmailComposeView.getScrollBody();
58
45
  var sheet = getSizeFixerSheet();
59
46
  var topForm = gmailComposeView.getTopFormElement();
60
47
  var composeId = gmailComposeView.getElement().id;
61
48
  if (!composeId) {
62
- composeId =
63
- gmailComposeView.getElement().id = `x${Math.random()}x${Date.now()}`;
49
+ composeId = gmailComposeView.getElement().id = `x${Math.random()}x${Date.now()}`;
64
50
  }
65
-
66
- function setRuleForSelector(selector: string, rule: string) {
67
- const fullSelector =
68
- SELECTOR_ESCAPE_HATCH_PREFIX + byId(composeId) + ' ' + selector;
69
- const ix = findIndex(
70
- sheet.cssRules,
71
- (cssRule) => cssRule.selectorText === fullSelector
72
- );
51
+ function setRuleForSelector(selector, rule) {
52
+ const fullSelector = SELECTOR_ESCAPE_HATCH_PREFIX + byId(composeId) + ' ' + selector;
53
+ const ix = (0, _findIndex.default)(sheet.cssRules, cssRule => cssRule.selectorText === fullSelector);
73
54
  if (ix !== -1) {
74
55
  sheet.deleteRule(ix);
75
56
  }
@@ -77,101 +58,66 @@ export default function sizeFixer(
77
58
  }
78
59
 
79
60
  // Emit resize events when the recipients area is toggled
80
- makeMutationObserverChunkedStream(statusAreaParent, { attributes: true })
81
- .takeUntilBy(stopper)
82
- .onValue(() => {
83
- gmailComposeView.getElement().dispatchEvent(
84
- new CustomEvent('resize', {
85
- bubbles: false,
86
- cancelable: false,
87
- detail: null,
88
- })
89
- );
90
- });
91
-
92
- resizeEvents
93
- .bufferBy(resizeEvents.flatMap((x) => delayAsap(null)))
94
- .filter((x) => x.length > 0)
95
- .merge(makeMutationObserverChunkedStream(scrollBody, { attributes: true }))
96
- .takeUntilBy(stopper)
97
- .onValue(() => {
98
- const statusUnexpectedHeight = Math.max(
99
- statusAreaParent.offsetHeight - MATERIAL_UI_GMAIL_STATUS_HEIGHT,
100
- 0
101
- );
102
-
103
- const topFormUnexpectedHeight = Math.max(
104
- topForm.offsetHeight - MATERIAL_UI_TOP_FORM_HEIGHT,
105
- 0
106
- );
107
-
108
- const unexpectedHeight = statusUnexpectedHeight + topFormUnexpectedHeight;
109
-
110
- const maybeBody = gmailComposeView.getMaybeBodyElement();
111
-
112
- /**
113
- * In order to support dynamic height in non-fullscreen mode,
114
- * get height of the inner element of scrollBody
115
- * this way we still can override height values of scrollBody,
116
- * but recalculate them based on actual height of an inner child
117
- */
118
- const scrollBodyInner = scrollBody.querySelector('.qz');
119
- const height = scrollBodyInner?.offsetHeight || scrollBody.offsetHeight;
120
-
121
- const maxHeight = parseInt(
122
- scrollBody.style.getPropertyValue('max-height'),
123
- 10
124
- );
125
-
126
- const isFullScreen = gmailComposeView.isFullscreen();
127
-
128
- const newMaxHeight = maxHeight - unexpectedHeight;
129
- const newHeight = height > newMaxHeight ? newMaxHeight : null;
130
-
131
- const scrollBodyCssRules = [`max-height: ${newMaxHeight}px !important;`];
132
- let maybeBodyCssRules;
133
-
134
- if (newHeight) {
135
- scrollBodyCssRules.push(`height: ${newHeight}px !important;`);
136
- }
137
-
138
- if (isFullScreen) {
139
- // in non fullscreen mode compose window can get taller on user input,
140
- // but in fullscreen mode, compose window size is static so not only max-height
141
- // should be updated, but also min-height of scrollBody and maybeBody
142
-
143
- // NOTE: max-height and min-height in full screen are same
144
- scrollBodyCssRules.push(`min-height: ${newMaxHeight}px !important;`);
145
-
146
- const maybeBodyMinHeight =
147
- parseInt(maybeBody?.style.minHeight, 10) || maxHeight;
148
- const maybeBodyNewMinHeight = maybeBodyMinHeight - unexpectedHeight;
149
-
150
- maybeBodyCssRules = `min-height: ${maybeBodyNewMinHeight}px !important;`;
151
- }
152
-
153
- if (scrollBodyCssRules.length > 0) {
154
- setRuleForSelector(byId(scrollBody.id), scrollBodyCssRules.join('\n'));
155
- }
156
-
157
- if (maybeBodyCssRules && maybeBody) {
158
- setRuleForSelector(byId(maybeBody.id), maybeBodyCssRules);
159
- }
160
- });
161
-
61
+ (0, _makeMutationObserverChunkedStream.default)(statusAreaParent, {
62
+ attributes: true
63
+ }).takeUntilBy(stopper).onValue(() => {
64
+ gmailComposeView.getElement().dispatchEvent(new CustomEvent('resize', {
65
+ bubbles: false,
66
+ cancelable: false,
67
+ detail: null
68
+ }));
69
+ });
70
+ resizeEvents.bufferBy(resizeEvents.flatMap(x => (0, _delayAsap.default)(null))).filter(x => x.length > 0).merge((0, _makeMutationObserverChunkedStream.default)(scrollBody, {
71
+ attributes: true
72
+ })).takeUntilBy(stopper).onValue(() => {
73
+ const statusUnexpectedHeight = Math.max(statusAreaParent.offsetHeight - MATERIAL_UI_GMAIL_STATUS_HEIGHT, 0);
74
+ const topFormUnexpectedHeight = Math.max(topForm.offsetHeight - MATERIAL_UI_TOP_FORM_HEIGHT, 0);
75
+ const unexpectedHeight = statusUnexpectedHeight + topFormUnexpectedHeight;
76
+ const maybeBody = gmailComposeView.getMaybeBodyElement();
77
+
78
+ /**
79
+ * In order to support dynamic height in non-fullscreen mode,
80
+ * get height of the inner element of scrollBody
81
+ * this way we still can override height values of scrollBody,
82
+ * but recalculate them based on actual height of an inner child
83
+ */
84
+ const scrollBodyInner = scrollBody.querySelector('.qz');
85
+ const height = (scrollBodyInner === null || scrollBodyInner === void 0 ? void 0 : scrollBodyInner.offsetHeight) || scrollBody.offsetHeight;
86
+ const maxHeight = parseInt(scrollBody.style.getPropertyValue('max-height'), 10);
87
+ const isFullScreen = gmailComposeView.isFullscreen();
88
+ const newMaxHeight = maxHeight - unexpectedHeight;
89
+ const newHeight = height > newMaxHeight ? newMaxHeight : null;
90
+ const scrollBodyCssRules = [`max-height: ${newMaxHeight}px !important;`];
91
+ let maybeBodyCssRules;
92
+ if (newHeight) {
93
+ scrollBodyCssRules.push(`height: ${newHeight}px !important;`);
94
+ }
95
+ if (isFullScreen) {
96
+ // in non fullscreen mode compose window can get taller on user input,
97
+ // but in fullscreen mode, compose window size is static so not only max-height
98
+ // should be updated, but also min-height of scrollBody and maybeBody
99
+
100
+ // NOTE: max-height and min-height in full screen are same
101
+ scrollBodyCssRules.push(`min-height: ${newMaxHeight}px !important;`);
102
+ const maybeBodyMinHeight = parseInt(maybeBody === null || maybeBody === void 0 ? void 0 : maybeBody.style.minHeight, 10) || maxHeight;
103
+ const maybeBodyNewMinHeight = maybeBodyMinHeight - unexpectedHeight;
104
+ maybeBodyCssRules = `min-height: ${maybeBodyNewMinHeight}px !important;`;
105
+ }
106
+ if (scrollBodyCssRules.length > 0) {
107
+ setRuleForSelector(byId(scrollBody.id), scrollBodyCssRules.join('\n'));
108
+ }
109
+ if (maybeBodyCssRules && maybeBody) {
110
+ setRuleForSelector(byId(maybeBody.id), maybeBodyCssRules);
111
+ }
112
+ });
162
113
  stopper.onValue(() => {
163
114
  // Go through the rules array backwards so that we remove them in backwards
164
115
  // order. If we went through in ascending order, we'd have to worry about
165
116
  // the list shrinking out from under us.
166
117
  for (let ix = sheet.cssRules.length - 1; ix >= 0; ix--) {
167
- if (
168
- startsWith(
169
- (sheet.cssRules: any)[ix].selectorText,
170
- SELECTOR_ESCAPE_HATCH_PREFIX + byId(composeId) + ' '
171
- )
172
- ) {
118
+ if ((0, _startsWith.default)(sheet.cssRules[ix].selectorText, SELECTOR_ESCAPE_HATCH_PREFIX + byId(composeId) + ' ')) {
173
119
  sheet.deleteRule(ix);
174
120
  }
175
121
  }
176
122
  });
177
- }
123
+ }
@@ -1,28 +1,19 @@
1
- /* @flow */
2
-
3
- import type GmailComposeView from '../gmail-compose-view';
1
+ "use strict";
4
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = updateInsertMoreAreaLeft;
5
7
  const updateAreaSet = new WeakSet();
6
-
7
- export default function updateInsertMoreAreaLeft(
8
- gmailComposeView: GmailComposeView,
9
- oldFormattingAreaOffsetLeft: number
10
- ) {
8
+ function updateInsertMoreAreaLeft(gmailComposeView, oldFormattingAreaOffsetLeft) {
11
9
  if (updateAreaSet.has(gmailComposeView)) return;
12
-
13
10
  updateAreaSet.add(gmailComposeView);
14
-
15
11
  window.requestAnimationFrame(() => {
16
12
  updateAreaSet.delete(gmailComposeView);
17
13
  if (gmailComposeView.isDestroyed()) return;
18
- var newFormattingAreaOffsetLeft =
19
- gmailComposeView._getFormattingAreaOffsetLeft();
20
- var insertMoreAreaLeft = parseInt(
21
- gmailComposeView.getInsertMoreArea().style.left,
22
- 10
23
- );
14
+ var newFormattingAreaOffsetLeft = gmailComposeView._getFormattingAreaOffsetLeft();
15
+ var insertMoreAreaLeft = parseInt(gmailComposeView.getInsertMoreArea().style.left, 10);
24
16
  var diff = newFormattingAreaOffsetLeft - oldFormattingAreaOffsetLeft;
25
- gmailComposeView.getInsertMoreArea().style.left =
26
- insertMoreAreaLeft + diff + 'px';
17
+ gmailComposeView.getInsertMoreArea().style.left = insertMoreAreaLeft + diff + 'px';
27
18
  });
28
- }
19
+ }