@inboxsdk/core 0.2.28-alpha.4 → 0.2.28-alpha.6

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 (264) hide show
  1. package/inboxsdk.js +1 -1
  2. package/package.json +5 -1
  3. package/src/inboxsdk-js/check-requirements.js +7 -3
  4. package/src/inboxsdk-js/header.js +1 -0
  5. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.js +5 -6
  6. package/src/inboxsdk-js/inboxsdk-NONREMOTE.js +4 -3
  7. package/src/inboxsdk-js/inboxsdk-REMOTE.js +3 -1
  8. package/src/inboxsdk-js/inboxsdk-TEST.js +4 -3
  9. package/src/inboxsdk-js/inboxsdk.js +33 -39
  10. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.js +15 -18
  11. package/src/inboxsdk.d.ts +2 -0
  12. package/src/injected-js/gmail/modify-suggestions.test.js +8 -9
  13. package/src/injected-js/gmail/setup-gmail-interceptor.js +340 -579
  14. package/src/injected-js/gmail/sync-compose-request-processor.test.js +39 -49
  15. package/src/injected-js/gmail/thread-identifier/click-and-get-popup-url.js +20 -33
  16. package/src/injected-js/gmail/thread-identifier/index.js +57 -93
  17. package/src/injected-js/gmail/thread-identifier/thread-row-parser.js +22 -31
  18. package/src/injected-js/gmail/thread-identifier/thread-row-parser.test.js +12 -28
  19. package/src/injected-js/inbox/setupAjaxInterceptor.js +64 -121
  20. package/src/injected-js/inbox/setupClickAndGetNewIframeSrc.js +53 -66
  21. package/src/injected-js/inbox/setupComposeViewDraftIDFinder.js +20 -36
  22. package/src/injected-js/inbox/setupInboxFakeWindowResizeListener.js +13 -13
  23. package/src/injected-js/main.js +11 -24
  24. package/src/injected-js/message-metadata-holder.js +52 -82
  25. package/src/injected-js/setup-data-exposer.js +89 -148
  26. package/src/injected-js/setup-error-silencer.js +21 -21
  27. package/src/injected-js/setup-event-reemitter.js +30 -22
  28. package/src/injected-js/setupInboxCustomViewLinkFixer.js +24 -29
  29. package/src/injected-js/setupPushStateListener.js +18 -11
  30. package/src/injected-js/xhr-helper.js +62 -65
  31. package/src/injected-js/xhr-proxy-factory.js +195 -445
  32. package/src/injected-js/xhr-proxy-factory.test.js +824 -991
  33. package/src/platform-implementation-js/constants/router.js +14 -9
  34. package/src/platform-implementation-js/constants/toolbars.js +8 -3
  35. package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +13 -13
  36. package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +115 -136
  37. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +13 -14
  38. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +27 -48
  39. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +31 -42
  40. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +30 -40
  41. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +10 -18
  42. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +21 -28
  43. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.js +33 -45
  44. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/gmail-load-event.js +31 -49
  45. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +58 -65
  46. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +40 -124
  47. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
  48. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-draft-by-message-id.test.js +10 -11
  49. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -80
  50. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +19 -26
  51. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +71 -147
  52. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +91 -148
  53. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +150 -166
  54. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +70 -120
  55. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +15 -15
  56. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +44 -67
  57. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +230 -379
  58. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +121 -307
  59. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +17 -24
  60. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +41 -49
  61. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +30 -40
  62. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +28 -60
  63. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +61 -133
  64. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +30 -42
  65. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +52 -46
  66. package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +354 -694
  67. package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +77 -93
  68. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.js +35 -82
  69. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.test.js +44 -94
  70. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-global-icon-area.js +12 -19
  71. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-companion-thread-icon-area.js +17 -29
  72. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/add-to-icon-area.js +26 -26
  73. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/primary/index.js +391 -797
  74. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view/monitor-top-banner-size-and-react.js +7 -9
  75. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.js +60 -109
  76. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-area-view.js +95 -135
  77. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.js +103 -211
  78. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-attachment-card-view.test.js +61 -61
  79. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +17 -17
  80. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-collapsible-section-view.js +188 -541
  81. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-button.js +67 -135
  82. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.js +27 -49
  83. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-inner-sidebar.js +7 -13
  84. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-outer-sidebar.js +9 -22
  85. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-recipient-row.js +36 -63
  86. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-tooltip-to-button.js +38 -113
  87. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-app-button-toolbars-are-closed.js +11 -16
  88. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/ensure-grouping-is-open.js +11 -17
  89. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/focus.js +8 -11
  90. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/from-manager.js +27 -47
  91. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-additional-action-toolbar.js +11 -24
  92. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-address-changes-stream.js +59 -111
  93. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-body-changes-stream.js +15 -14
  94. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-formatting-area-offset-left.js +11 -17
  95. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-minimized-stream.js +18 -24
  96. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/get-response-type-changes-stream.js +19 -23
  97. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/insert-link-into-body.js +11 -19
  98. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/manage-button-grouping.js +141 -376
  99. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/monitor-selection-range.js +17 -28
  100. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/override-edit-subject.js +34 -70
  101. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/position-formatting-toolbar.js +10 -17
  102. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/size-fixer.js +83 -137
  103. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/update-insert-more-area-left.js +10 -19
  104. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.js +632 -1190
  105. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.js +29 -38
  106. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.js +327 -617
  107. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.js +26 -49
  108. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +188 -380
  109. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.js +104 -194
  110. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.js +382 -811
  111. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view/add-icon-area.js +34 -58
  112. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.js +330 -581
  113. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-sidebar-view.test.js +123 -277
  114. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view/width-manager.js +15 -35
  115. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.js +216 -571
  116. package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.js +152 -336
  117. package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.js +87 -211
  118. package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/inbox-dropdown-button-view.js +10 -11
  119. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-action-button-view.js +20 -29
  120. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-label-view.js +41 -76
  121. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +45 -99
  122. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +76 -128
  123. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-tooltip-view.js +128 -319
  124. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +45 -78
  125. package/src/platform-implementation-js/dom-driver/inbox/__mocks__/getSidebarClassnames.js +8 -4
  126. package/src/platform-implementation-js/dom-driver/inbox/addNavItem.js +36 -54
  127. package/src/platform-implementation-js/dom-driver/inbox/addRecipientRow.js +35 -53
  128. package/src/platform-implementation-js/dom-driver/inbox/createLink.js +13 -15
  129. package/src/platform-implementation-js/dom-driver/inbox/createLink.test.js +15 -18
  130. package/src/platform-implementation-js/dom-driver/inbox/custom-style.js +14 -13
  131. package/src/platform-implementation-js/dom-driver/inbox/detection/appToolbarLocation/parser.js +14 -20
  132. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentCard/parser.js +14 -13
  133. package/src/platform-implementation-js/dom-driver/inbox/detection/attachmentOverlay/parser.js +35 -67
  134. package/src/platform-implementation-js/dom-driver/inbox/detection/chatSidebar/parser.js +16 -18
  135. package/src/platform-implementation-js/dom-driver/inbox/detection/compose/parser.js +68 -185
  136. package/src/platform-implementation-js/dom-driver/inbox/detection/message/parser.js +28 -56
  137. package/src/platform-implementation-js/dom-driver/inbox/detection/nativeDrawer/parser.js +12 -10
  138. package/src/platform-implementation-js/dom-driver/inbox/detection/searchBar/parser.js +16 -16
  139. package/src/platform-implementation-js/dom-driver/inbox/detection/thread/parser.js +24 -35
  140. package/src/platform-implementation-js/dom-driver/inbox/detection/thread-row/parser.js +37 -89
  141. package/src/platform-implementation-js/dom-driver/inbox/getComposeViewDriverLiveSet.js +56 -78
  142. package/src/platform-implementation-js/dom-driver/inbox/getInboxMessageIdForInboxThreadId.js +26 -32
  143. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.js +52 -109
  144. package/src/platform-implementation-js/dom-driver/inbox/getSidebarClassnames.test.js +7 -8
  145. package/src/platform-implementation-js/dom-driver/inbox/gotoView.js +16 -20
  146. package/src/platform-implementation-js/dom-driver/inbox/gotoView.test.js +15 -16
  147. package/src/platform-implementation-js/dom-driver/inbox/inbox-butter-bar-driver.js +75 -83
  148. package/src/platform-implementation-js/dom-driver/inbox/inbox-driver.js +530 -822
  149. package/src/platform-implementation-js/dom-driver/inbox/inbox-page-communicator.js +48 -61
  150. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.js +9 -12
  151. package/src/platform-implementation-js/dom-driver/inbox/inboxResponseProcessor.test.js +12 -19
  152. package/src/platform-implementation-js/dom-driver/inbox/makePageParserTree.js +24 -33
  153. package/src/platform-implementation-js/dom-driver/inbox/pageParserOptions.js +201 -388
  154. package/src/platform-implementation-js/dom-driver/inbox/registerSearchSuggestionsProvider.js +249 -265
  155. package/src/platform-implementation-js/dom-driver/inbox/setupCustomAutocompleteSelectionHandling.js +84 -152
  156. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.js +55 -67
  157. package/src/platform-implementation-js/dom-driver/inbox/setupRouteViewDriverStream.test.js +43 -65
  158. package/src/platform-implementation-js/dom-driver/inbox/views/InboxLabelView.js +31 -56
  159. package/src/platform-implementation-js/dom-driver/inbox/views/InboxMoleViewDriver.js +191 -294
  160. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarButtonView.js +32 -45
  161. package/src/platform-implementation-js/dom-driver/inbox/views/InboxToolbarView.js +21 -39
  162. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-sidebar-view.js +153 -240
  163. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-button-view.js +75 -150
  164. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-app-toolbar-tooltip-view.js +20 -37
  165. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-card-view.js +60 -114
  166. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-attachment-overlay-view.js +47 -65
  167. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-backdrop.js +41 -52
  168. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-chat-sidebar-view.js +27 -36
  169. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-button-view.js +52 -80
  170. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-compose-view.js +465 -649
  171. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.js +37 -58
  172. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-custom-route-view.test.js +14 -26
  173. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.js +118 -235
  174. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dropdown-view.js +10 -11
  175. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-dummy-route-view.js +28 -46
  176. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-message-view.js +131 -202
  177. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-modal-view.js +40 -80
  178. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-route-view.js +35 -61
  179. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-row-view.js +124 -221
  180. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.js +125 -213
  181. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-thread-view.test.js +104 -126
  182. package/src/platform-implementation-js/dom-driver/inbox/views/inbox-tooltip-view.js +36 -51
  183. package/src/platform-implementation-js/dom-driver/inbox/views/inboxNavItemView.js +158 -297
  184. package/src/platform-implementation-js/dom-driver/inbox/waitForAnimationClickBlockerGone.js +21 -35
  185. package/src/platform-implementation-js/driver-common/compose/getDiscardStream.js +24 -43
  186. package/src/platform-implementation-js/driver-common/compose/getPresendingStream.js +39 -68
  187. package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.js +14 -19
  188. package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.js +27 -35
  189. package/src/platform-implementation-js/driver-common/getRfcMessageIdForSyncMessageId.js +16 -22
  190. package/src/platform-implementation-js/driver-common/getThreadIdFromMessageId.js +14 -14
  191. package/src/platform-implementation-js/driver-common/inboxAjax.js +12 -7
  192. package/src/platform-implementation-js/driver-common/requestGmailThread.js +19 -20
  193. package/src/platform-implementation-js/driver-common/sidebar/AppSidebar.js +197 -306
  194. package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.js +113 -161
  195. package/src/platform-implementation-js/driver-interfaces/compose-view-driver.js +1 -114
  196. package/src/platform-implementation-js/driver-interfaces/driver.js +1 -131
  197. package/src/platform-implementation-js/driver-interfaces/message-view-driver.js +4 -48
  198. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.js +1 -29
  199. package/src/platform-implementation-js/driver-interfaces/route-view-driver.js +1 -32
  200. package/src/platform-implementation-js/driver-interfaces/thread-row-view-driver.js +1 -11
  201. package/src/platform-implementation-js/lib/array-to-lifetimes.js +43 -41
  202. package/src/platform-implementation-js/lib/array-to-lifetimes.test.js +139 -155
  203. package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +19 -38
  204. package/src/platform-implementation-js/lib/css-selector-escape.js +7 -3
  205. package/src/platform-implementation-js/lib/dom/element-view-mapper.js +8 -11
  206. package/src/platform-implementation-js/lib/dom/get-selection.js +23 -52
  207. package/src/platform-implementation-js/lib/dom/insert-html-at-cursor.js +69 -101
  208. package/src/platform-implementation-js/lib/dom/is-node-in-range.js +8 -10
  209. package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +15 -17
  210. package/src/platform-implementation-js/lib/dom/querySelectorOne.js +8 -11
  211. package/src/platform-implementation-js/lib/dom/set-css.js +7 -3
  212. package/src/platform-implementation-js/lib/dom/set-value-and-dispatch-event.js +9 -11
  213. package/src/platform-implementation-js/lib/dom/simulate-drag-and-drop.js +32 -33
  214. package/src/platform-implementation-js/lib/extract-contact-from-email-contact-string.test.js +23 -26
  215. package/src/platform-implementation-js/lib/handle-compose-link-chips.js +86 -149
  216. package/src/platform-implementation-js/lib/insert-link-chip-into-body.js +42 -57
  217. package/src/platform-implementation-js/lib/make-revocable-function.js +19 -21
  218. package/src/platform-implementation-js/lib/make-revocable-function.test.js +20 -22
  219. package/src/platform-implementation-js/lib/parseParamsFromRouteID.js +15 -17
  220. package/src/platform-implementation-js/lib/parseParamsFromRouteID.test.js +9 -18
  221. package/src/platform-implementation-js/lib/populateRouteID.js +8 -9
  222. package/src/platform-implementation-js/lib/populateRouteID.test.js +20 -19
  223. package/src/platform-implementation-js/lib/react/ElementContainer.js +23 -20
  224. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +10 -9
  225. package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +13 -20
  226. package/src/platform-implementation-js/lib/routeIDmatchesHash.js +13 -18
  227. package/src/platform-implementation-js/lib/routeIDmatchesHash.test.js +11 -17
  228. package/src/platform-implementation-js/lib/shared-style.js +14 -13
  229. package/src/platform-implementation-js/lib/toItemWithLifetimeStream.js +18 -17
  230. package/src/platform-implementation-js/lib/toLiveSet.js +17 -15
  231. package/src/platform-implementation-js/main-INTEGRATED-PAGEWORLD.js +6 -5
  232. package/src/platform-implementation-js/main.js +9 -24
  233. package/src/platform-implementation-js/namespaces/compose.js +37 -60
  234. package/src/platform-implementation-js/namespaces/conversations.js +52 -124
  235. package/src/platform-implementation-js/namespaces/global.js +27 -39
  236. package/src/platform-implementation-js/namespaces/keyboard.js +29 -33
  237. package/src/platform-implementation-js/namespaces/lists.js +25 -31
  238. package/src/platform-implementation-js/namespaces/modal.js +34 -28
  239. package/src/platform-implementation-js/namespaces/nav-menu.js +30 -45
  240. package/src/platform-implementation-js/namespaces/router.js +70 -137
  241. package/src/platform-implementation-js/namespaces/search.js +19 -17
  242. package/src/platform-implementation-js/namespaces/toolbars.js +71 -117
  243. package/src/platform-implementation-js/namespaces/user.js +36 -37
  244. package/src/platform-implementation-js/namespaces/widgets.js +54 -61
  245. package/src/platform-implementation-js/platform-implementation.js +98 -229
  246. package/src/platform-implementation-js/views/app-toolbar-button-view.js +26 -47
  247. package/src/platform-implementation-js/views/collapsible-section-view.js +66 -63
  248. package/src/platform-implementation-js/views/content-panel-view.js +28 -30
  249. package/src/platform-implementation-js/views/conversations/attachment-card-view.js +21 -44
  250. package/src/platform-implementation-js/views/conversations/custom-message-view.js +44 -104
  251. package/src/platform-implementation-js/views/conversations/message-view.js +131 -202
  252. package/src/platform-implementation-js/views/conversations/thread-view.js +75 -127
  253. package/src/platform-implementation-js/views/native-nav-item-view.js +32 -65
  254. package/src/platform-implementation-js/views/nav-item-view.js +51 -115
  255. package/src/platform-implementation-js/views/route-view/custom-route-view.js +25 -20
  256. package/src/platform-implementation-js/views/route-view/dummy-route-view-driver.js +18 -18
  257. package/src/platform-implementation-js/views/route-view/list-route-view.js +30 -52
  258. package/src/platform-implementation-js/views/route-view/route-view.js +24 -35
  259. package/src/platform-implementation-js/views/section-view.js +60 -52
  260. package/src/platform-implementation-js/views/thread-row-view.js +49 -74
  261. package/src/platform-implementation-js/widgets/drawer-view.js +29 -36
  262. package/src/platform-implementation-js/widgets/modal-view.js +39 -68
  263. package/src/platform-implementation-js/widgets/mole-view.js +22 -22
  264. package/src/platform-implementation-js/widgets/top-message-bar-view.js +13 -10
@@ -1,69 +1,46 @@
1
- /* @flow */
2
-
3
- import { defn } from 'ud';
4
- import find from 'lodash/find';
5
- import zip from 'lodash/zip';
6
- import asap from 'asap';
7
- import assert from 'assert';
8
- import Kefir from 'kefir';
9
- import kefirBus from 'kefir-bus';
10
- import type { Bus } from 'kefir-bus';
11
- import get from '../../../../common/get-or-fail';
12
- import delayAsap from '../../../lib/delay-asap';
13
- import querySelector from '../../../lib/dom/querySelectorOrFail';
14
-
15
- import GmailToolbarView from './gmail-toolbar-view';
16
- import GmailThreadRowView from './gmail-thread-row-view';
17
-
18
- import streamWaitFor from '../../../lib/stream-wait-for';
19
- import type { ElementWithLifetime } from '../../../lib/dom/make-element-child-stream';
20
- import makeElementChildStream from '../../../lib/dom/make-element-child-stream';
21
- import makeElementViewStream from '../../../lib/dom/make-element-view-stream';
22
-
23
- import type GmailDriver from '../gmail-driver';
24
- import type GmailRouteView from './gmail-route-view/gmail-route-view';
25
-
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 _ud = require("ud");
10
+ var _find = _interopRequireDefault(require("lodash/find"));
11
+ var _zip = _interopRequireDefault(require("lodash/zip"));
12
+ var _asap = _interopRequireDefault(require("asap"));
13
+ var _assert = _interopRequireDefault(require("assert"));
14
+ var _kefir = _interopRequireDefault(require("kefir"));
15
+ var _kefirBus = _interopRequireDefault(require("kefir-bus"));
16
+ var _getOrFail = _interopRequireDefault(require("../../../../common/get-or-fail"));
17
+ var _delayAsap = _interopRequireDefault(require("../../../lib/delay-asap"));
18
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
19
+ var _gmailToolbarView = _interopRequireDefault(require("./gmail-toolbar-view"));
20
+ var _gmailThreadRowView = _interopRequireDefault(require("./gmail-thread-row-view"));
21
+ var _streamWaitFor = _interopRequireDefault(require("../../../lib/stream-wait-for"));
22
+ var _makeElementChildStream = _interopRequireDefault(require("../../../lib/dom/make-element-child-stream"));
23
+ var _makeElementViewStream = _interopRequireDefault(require("../../../lib/dom/make-element-view-stream"));
26
24
  const THREAD_ROW_SELECTED_CLASSNAME = 'x7';
27
25
  const THREAD_ROW_SELECTED_CLASSNAME_REGEX = /\bx7\b/;
28
-
29
26
  class GmailRowListView {
30
- _element: HTMLElement;
31
- _gmailDriver: GmailDriver;
32
- _routeViewDriver: GmailRouteView;
33
- _pendingExpansions: Map<string, number>;
34
- _pendingExpansionsSignal: Bus<any>;
35
- _toolbarView: ?GmailToolbarView;
36
- _threadRowViewDrivers: Set<GmailThreadRowView> = new Set();
37
- _eventStreamBus: Bus<any>;
38
- _rowViewDriverStream: Kefir.Observable<GmailThreadRowView>;
39
- _stopper: Kefir.Observable<any>;
40
- _elementsToViews: Map<HTMLElement, GmailThreadRowView> = new Map();
41
- _selectionMutationObserver: MutationObserver;
42
- _selectedThreadRowViews: Set<GmailThreadRowView> = new Set();
43
-
44
- constructor(
45
- rootElement: HTMLElement,
46
- routeViewDriver: GmailRouteView,
47
- gmailDriver: GmailDriver
48
- ) {
49
- this._eventStreamBus = kefirBus();
27
+ constructor(rootElement, routeViewDriver, gmailDriver) {
28
+ (0, _defineProperty2.default)(this, "_threadRowViewDrivers", new Set());
29
+ (0, _defineProperty2.default)(this, "_elementsToViews", new Map());
30
+ (0, _defineProperty2.default)(this, "_selectedThreadRowViews", new Set());
31
+ (0, _defineProperty2.default)(this, "_batchedSignalThreadRowViewSelectionChangeScheduled", false);
32
+ this._eventStreamBus = (0, _kefirBus.default)();
50
33
  this._stopper = this._eventStreamBus.ignoreValues().beforeEnd(() => null);
51
34
  this._gmailDriver = gmailDriver;
52
-
53
35
  this._element = rootElement;
54
36
  this._routeViewDriver = routeViewDriver;
55
-
56
- this._selectionMutationObserver = new MutationObserver((mutations) => {
37
+ this._selectionMutationObserver = new MutationObserver(mutations => {
57
38
  let changed = false;
58
39
  for (let i = 0, len = mutations.length; i < len; i++) {
59
40
  const mutation = mutations[i];
60
- const target: any = mutation.target;
61
- const wasSelected = THREAD_ROW_SELECTED_CLASSNAME_REGEX.test(
62
- (mutation: any).oldValue
63
- );
64
- const isSelected = THREAD_ROW_SELECTED_CLASSNAME_REGEX.test(
65
- target.className
66
- );
41
+ const target = mutation.target;
42
+ const wasSelected = THREAD_ROW_SELECTED_CLASSNAME_REGEX.test(mutation.oldValue);
43
+ const isSelected = THREAD_ROW_SELECTED_CLASSNAME_REGEX.test(target.className);
67
44
  if (wasSelected !== isSelected) {
68
45
  const view = this._elementsToViews.get(target);
69
46
  // we could be processing an element that was already removed
@@ -81,22 +58,15 @@ class GmailRowListView {
81
58
  this._gmailDriver.signalThreadRowViewSelectionChange();
82
59
  }
83
60
  });
84
-
85
61
  this._pendingExpansions = new Map();
86
- this._pendingExpansionsSignal = kefirBus();
87
- this._pendingExpansionsSignal
88
- .bufferBy(this._pendingExpansionsSignal.flatMap(delayAsap))
89
- .filter((x) => x.length > 0)
90
- .takeUntilBy(this._stopper)
91
- .onValue(this._expandColumnJob.bind(this));
92
-
62
+ this._pendingExpansionsSignal = (0, _kefirBus.default)();
63
+ this._pendingExpansionsSignal.bufferBy(this._pendingExpansionsSignal.flatMap(_delayAsap.default)).filter(x => x.length > 0).takeUntilBy(this._stopper).onValue(this._expandColumnJob.bind(this));
93
64
  this._setupToolbarView();
94
65
  this._startWatchingForRowViews();
95
66
  }
96
-
97
67
  destroy() {
98
68
  this._selectionMutationObserver.disconnect();
99
- this._threadRowViewDrivers.forEach((threadRow) => threadRow.destroy());
69
+ this._threadRowViewDrivers.forEach(threadRow => threadRow.destroy());
100
70
  this._eventStreamBus.end();
101
71
  if (this._toolbarView) {
102
72
  this._toolbarView.destroy();
@@ -106,204 +76,144 @@ class GmailRowListView {
106
76
  this._gmailDriver.signalThreadRowViewSelectionChange();
107
77
  }
108
78
  }
109
-
110
- getElement(): HTMLElement {
79
+ getElement() {
111
80
  return this._element;
112
81
  }
113
-
114
- getRouteViewDriver(): GmailRouteView {
82
+ getRouteViewDriver() {
115
83
  return this._routeViewDriver;
116
84
  }
117
-
118
- getToolbarView(): ?GmailToolbarView {
85
+ getToolbarView() {
119
86
  return this._toolbarView;
120
87
  }
121
-
122
- getSelectedThreadRowViewDrivers(): Set<GmailThreadRowView> {
88
+ getSelectedThreadRowViewDrivers() {
123
89
  return this._selectedThreadRowViews;
124
90
  }
125
-
126
- getThreadRowViewDrivers(): Set<GmailThreadRowView> {
91
+ getThreadRowViewDrivers() {
127
92
  return this._threadRowViewDrivers;
128
93
  }
129
-
130
- getRowViewDriverStream(): Kefir.Observable<GmailThreadRowView> {
94
+ getRowViewDriverStream() {
131
95
  return this._rowViewDriverStream;
132
96
  }
133
-
134
- getEventStream(): Kefir.Observable<any> {
97
+ getEventStream() {
135
98
  return this._eventStreamBus;
136
99
  }
137
-
138
100
  _setupToolbarView() {
139
101
  var toolbarElement = this._findToolbarElement();
140
-
141
102
  if (toolbarElement) {
142
- this._toolbarView = new GmailToolbarView(
143
- toolbarElement,
144
- this._gmailDriver,
145
- this._routeViewDriver,
146
- this
147
- );
103
+ this._toolbarView = new _gmailToolbarView.default(toolbarElement, this._gmailDriver, this._routeViewDriver, this);
148
104
  } else {
149
105
  this._toolbarView = null;
150
106
  }
151
107
  }
152
-
153
108
  _findToolbarElement() {
154
109
  /* multiple inbox extra section */
155
110
  const firstTry = this._element.querySelector('[gh=mtb]');
156
111
  if (firstTry) {
157
112
  return firstTry;
158
113
  }
159
- const el = find(
160
- document.querySelectorAll('[gh=tm]'),
161
- (toolbarContainerElement) =>
162
- toolbarContainerElement.parentElement.parentElement ===
163
- (this._element: any).parentElement.parentElement.parentElement
164
- .parentElement.parentElement ||
165
- toolbarContainerElement.parentElement.parentElement ===
166
- this._element.parentElement
167
- );
114
+ const el = (0, _find.default)(document.querySelectorAll('[gh=tm]'), toolbarContainerElement => toolbarContainerElement.parentElement.parentElement === this._element.parentElement.parentElement.parentElement.parentElement.parentElement || toolbarContainerElement.parentElement.parentElement === this._element.parentElement);
168
115
  return el ? el.querySelector('[gh=mtb]') : null;
169
116
  }
170
117
 
171
118
  // When a new table is added to a row list, if an existing table has had its
172
119
  // column widths modified (by GmailThreadRowView), then the new table needs to
173
120
  // match.
174
- _fixColumnWidths(newTableParent: ?HTMLElement) {
121
+ _fixColumnWidths(newTableParent) {
175
122
  if (!newTableParent || !newTableParent.parentElement) {
176
123
  return;
177
124
  }
178
-
179
125
  const firstTableParent = newTableParent.parentElement.firstElementChild;
180
126
  if (firstTableParent !== newTableParent && firstTableParent) {
181
- const firstCols = firstTableParent.querySelectorAll(
182
- 'table.cf > colgroup > col'
183
- );
184
- const newCols = newTableParent.querySelectorAll(
185
- 'table.cf > colgroup > col'
186
- );
187
- assert.strictEqual(firstCols.length, newCols.length);
188
- zip(firstCols, newCols).forEach(([firstCol, newCol]) => {
127
+ const firstCols = firstTableParent.querySelectorAll('table.cf > colgroup > col');
128
+ const newCols = newTableParent.querySelectorAll('table.cf > colgroup > col');
129
+ _assert.default.strictEqual(firstCols.length, newCols.length);
130
+ (0, _zip.default)(firstCols, newCols).forEach(_ref => {
131
+ let [firstCol, newCol] = _ref;
189
132
  newCol.style.width = firstCol.style.width;
190
133
  });
191
134
  }
192
135
  }
193
-
194
- expandColumn(colSelector: string, width: number) {
136
+ expandColumn(colSelector, width) {
195
137
  const pendingWidth = this._pendingExpansions.get(colSelector);
196
138
  if (!pendingWidth || width > pendingWidth) {
197
139
  this._pendingExpansions.set(colSelector, width);
198
140
  this._pendingExpansionsSignal.emit();
199
141
  }
200
142
  }
201
-
202
143
  _expandColumnJob() {
203
144
  this._pendingExpansions.forEach((width, colSelector) => {
204
- Array.prototype.forEach.call(
205
- this._element.querySelectorAll('table.cf > colgroup > ' + colSelector),
206
- (col) => {
207
- const currentWidth = parseInt(col.style.width, 10);
208
- if (isNaN(currentWidth) || currentWidth < width) {
209
- col.style.width = width + 'px';
210
- }
145
+ Array.prototype.forEach.call(this._element.querySelectorAll('table.cf > colgroup > ' + colSelector), col => {
146
+ const currentWidth = parseInt(col.style.width, 10);
147
+ if (isNaN(currentWidth) || currentWidth < width) {
148
+ col.style.width = width + 'px';
211
149
  }
212
- );
150
+ });
213
151
  });
214
152
  this._pendingExpansions.clear();
215
153
  }
216
-
217
- _batchedSignalThreadRowViewSelectionChangeScheduled = false;
218
154
  _batchedSignalThreadRowViewSelectionChange() {
219
155
  if (this._batchedSignalThreadRowViewSelectionChangeScheduled) {
220
156
  return;
221
157
  }
222
158
  this._batchedSignalThreadRowViewSelectionChangeScheduled = true;
223
- delayAsap(null)
224
- .takeUntilBy(this._stopper)
225
- .onValue(() => {
226
- this._batchedSignalThreadRowViewSelectionChangeScheduled = false;
227
- this._gmailDriver.signalThreadRowViewSelectionChange();
228
- });
159
+ (0, _delayAsap.default)(null).takeUntilBy(this._stopper).onValue(() => {
160
+ this._batchedSignalThreadRowViewSelectionChangeScheduled = false;
161
+ this._gmailDriver.signalThreadRowViewSelectionChange();
162
+ });
229
163
  }
230
-
231
164
  _startWatchingForRowViews() {
232
- const tableDivParents = Array.from(
233
- this._element.querySelectorAll('div.Cp')
234
- );
235
-
236
- const elementStream: Kefir.Observable<ElementWithLifetime> = Kefir.merge(
237
- tableDivParents.map(makeElementChildStream)
238
- ).flatMap((event) => {
165
+ const tableDivParents = Array.from(this._element.querySelectorAll('div.Cp'));
166
+ const elementStream = _kefir.default.merge(tableDivParents.map(_makeElementChildStream.default)).flatMap(event => {
239
167
  this._fixColumnWidths(event.el);
240
- const tbody = querySelector(event.el, 'table > tbody');
168
+ const tbody = (0, _querySelectorOrFail.default)(event.el, 'table > tbody');
241
169
 
242
170
  // In vertical preview pane mode, each thread row has three <tr>
243
171
  // elements. We just want to pass the first one (which has an id) to
244
172
  // GmailThreadRowView().
245
- return makeElementChildStream(tbody)
246
- .takeUntilBy(event.removalStream)
247
- .filter((rowEvent) => rowEvent.el.id);
173
+ return (0, _makeElementChildStream.default)(tbody).takeUntilBy(event.removalStream).filter(rowEvent => rowEvent.el.id);
248
174
  });
249
-
250
- const laterStream = Kefir.later(2);
251
-
252
- this._rowViewDriverStream = elementStream
253
- .map((event) => {
254
- const element = event.el;
255
- this._selectionMutationObserver.observe(element, {
256
- attributes: true,
257
- attributeFilter: ['class'],
258
- attributeOldValue: true,
259
- });
260
-
261
- const view = new GmailThreadRowView(element, this, this._gmailDriver);
262
- this._elementsToViews.set(element, view);
263
- if (element.classList.contains(THREAD_ROW_SELECTED_CLASSNAME)) {
264
- this._selectedThreadRowViews.add(view);
175
+ const laterStream = _kefir.default.later(2);
176
+ this._rowViewDriverStream = elementStream.map(event => {
177
+ const element = event.el;
178
+ this._selectionMutationObserver.observe(element, {
179
+ attributes: true,
180
+ attributeFilter: ['class'],
181
+ attributeOldValue: true
182
+ });
183
+ const view = new _gmailThreadRowView.default(element, this, this._gmailDriver);
184
+ this._elementsToViews.set(element, view);
185
+ if (element.classList.contains(THREAD_ROW_SELECTED_CLASSNAME)) {
186
+ this._selectedThreadRowViews.add(view);
187
+ this._batchedSignalThreadRowViewSelectionChange();
188
+ }
189
+ event.removalStream.take(1).onValue(() => {
190
+ if (this._selectedThreadRowViews.has(view)) {
191
+ this._selectedThreadRowViews.delete(view);
265
192
  this._batchedSignalThreadRowViewSelectionChange();
266
193
  }
267
- event.removalStream.take(1).onValue(() => {
268
- if (this._selectedThreadRowViews.has(view)) {
269
- this._selectedThreadRowViews.delete(view);
270
- this._batchedSignalThreadRowViewSelectionChange();
271
- }
272
- this._elementsToViews.delete(element);
273
- view.destroy();
274
- });
275
- return view;
276
- })
277
- .flatMap((threadRowView) => {
278
- if (threadRowView.getAlreadyHadModifications()) {
279
- // Performance hack: If the row already has old modifications on it, wait
280
- // a moment before we re-emit the thread row and process our new
281
- // modifications.
282
-
283
- return laterStream
284
- .flatMap(() => threadRowView.waitForReady())
285
- .takeUntilBy(threadRowView.getStopper());
286
- } else {
287
- return threadRowView
288
- .waitForReady()
289
- .takeUntilBy(threadRowView.getStopper());
290
- }
291
- })
292
- .takeUntilBy(this._stopper);
293
-
294
- this._rowViewDriverStream.onValue((x) => this._addThreadRowView(x));
194
+ this._elementsToViews.delete(element);
195
+ view.destroy();
196
+ });
197
+ return view;
198
+ }).flatMap(threadRowView => {
199
+ if (threadRowView.getAlreadyHadModifications()) {
200
+ // Performance hack: If the row already has old modifications on it, wait
201
+ // a moment before we re-emit the thread row and process our new
202
+ // modifications.
203
+
204
+ return laterStream.flatMap(() => threadRowView.waitForReady()).takeUntilBy(threadRowView.getStopper());
205
+ } else {
206
+ return threadRowView.waitForReady().takeUntilBy(threadRowView.getStopper());
207
+ }
208
+ }).takeUntilBy(this._stopper);
209
+ this._rowViewDriverStream.onValue(x => this._addThreadRowView(x));
295
210
  }
296
-
297
- _addThreadRowView(gmailThreadRowView: GmailThreadRowView) {
211
+ _addThreadRowView(gmailThreadRowView) {
298
212
  this._threadRowViewDrivers.add(gmailThreadRowView);
299
-
300
- gmailThreadRowView
301
- .getStopper()
302
- .takeUntilBy(this._stopper)
303
- .onValue(() => {
304
- this._threadRowViewDrivers.delete(gmailThreadRowView);
305
- });
213
+ gmailThreadRowView.getStopper().takeUntilBy(this._stopper).onValue(() => {
214
+ this._threadRowViewDrivers.delete(gmailThreadRowView);
215
+ });
306
216
  }
307
217
  }
308
-
309
- export default defn(module, GmailRowListView);
218
+ var _default = (0, _ud.defn)(module, GmailRowListView);
219
+ exports.default = _default;