@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,71 +1,55 @@
1
- /* @flow */
2
-
3
- import find from 'lodash/find';
4
- import Kefir from 'kefir';
5
- import kefirStopper from 'kefir-stopper';
6
- import util from 'util';
7
- import autoHtml from 'auto-html';
8
- import { defn } from 'ud';
9
- import type GmailDriver from '../gmail-driver';
10
-
11
- import type GmailMessageView from './gmail-message-view';
12
- import fromEventTargetCapture from '../../../lib/from-event-target-capture';
13
- import querySelector from '../../../lib/dom/querySelectorOrFail';
14
- import ButtonView from '../widgets/buttons/button-view';
15
- import BasicButtonViewController from '../../../widgets/buttons/basic-button-view-controller';
16
-
17
- import { simulateClick } from '../../../lib/dom/simulate-mouse-event';
18
- import waitFor from '../../../lib/wait-for';
19
- import streamWaitFor from '../../../lib/stream-wait-for';
20
-
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 _find = _interopRequireDefault(require("lodash/find"));
10
+ var _kefir = _interopRequireDefault(require("kefir"));
11
+ var _kefirStopper = _interopRequireDefault(require("kefir-stopper"));
12
+ var _util = _interopRequireDefault(require("util"));
13
+ var _autoHtml = _interopRequireDefault(require("auto-html"));
14
+ var _ud = require("ud");
15
+ var _fromEventTargetCapture = _interopRequireDefault(require("../../../lib/from-event-target-capture"));
16
+ var _querySelectorOrFail = _interopRequireDefault(require("../../../lib/dom/querySelectorOrFail"));
17
+ var _buttonView = _interopRequireDefault(require("../widgets/buttons/button-view"));
18
+ var _basicButtonViewController = _interopRequireDefault(require("../../../widgets/buttons/basic-button-view-controller"));
19
+ var _simulateMouseEvent = require("../../../lib/dom/simulate-mouse-event");
20
+ var _waitFor = _interopRequireDefault(require("../../../lib/wait-for"));
21
+ var _streamWaitFor = _interopRequireDefault(require("../../../lib/stream-wait-for"));
21
22
  class GmailAttachmentCardView {
22
- _element: HTMLElement;
23
- _driver: GmailDriver;
24
- _messageViewDriver: ?GmailMessageView;
25
- _cachedType: any;
26
- _stopper: Kefir.Observable<null> & { destroy(): void } = kefirStopper();
27
- _previewClicks = Kefir.pool();
28
-
29
- constructor(
30
- options: Object,
31
- driver: GmailDriver,
32
- messageViewDriver: ?GmailMessageView
33
- ) {
23
+ constructor(options, driver, messageViewDriver) {
24
+ (0, _defineProperty2.default)(this, "_stopper", (0, _kefirStopper.default)());
25
+ (0, _defineProperty2.default)(this, "_previewClicks", _kefir.default.pool());
34
26
  this._driver = driver;
35
27
  this._messageViewDriver = messageViewDriver;
36
-
37
28
  if (options.element) {
38
29
  this._element = options.element;
39
30
  } else {
40
31
  this._createNewElement(options);
41
32
  }
42
33
  }
43
-
44
34
  destroy() {
45
35
  this._stopper.destroy();
46
36
  }
47
-
48
- getElement(): HTMLElement {
37
+ getElement() {
49
38
  return this._element;
50
39
  }
51
-
52
40
  getMessageViewDriver() {
53
41
  return this._messageViewDriver;
54
42
  }
55
-
56
- getStopper(): Kefir.Observable<null> {
43
+ getStopper() {
57
44
  return this._stopper;
58
45
  }
59
-
60
- getPreviewClicks(): Kefir.Observable<Event> {
46
+ getPreviewClicks() {
61
47
  return this._previewClicks.takeUntilBy(this._stopper);
62
48
  }
63
-
64
- _isStandardAttachment(): boolean {
49
+ _isStandardAttachment() {
65
50
  return this.getAttachmentType() === 'FILE';
66
51
  }
67
-
68
- getAttachmentType(): string {
52
+ getAttachmentType() {
69
53
  if (this._cachedType) {
70
54
  return this._cachedType;
71
55
  }
@@ -75,16 +59,12 @@ class GmailAttachmentCardView {
75
59
  }
76
60
  return type;
77
61
  }
78
-
79
- _readAttachmentType(): string {
62
+ _readAttachmentType() {
80
63
  if (this._element.classList.contains('inboxsdk__attachmentCard')) {
81
64
  return 'CUSTOM';
82
65
  }
83
66
  // FILE attachment cards are never in unloaded state.
84
- if (
85
- this._element.children.length === 1 &&
86
- this._element.children[0].children.length === 0
87
- ) {
67
+ if (this._element.children.length === 1 && this._element.children[0].children.length === 0) {
88
68
  return 'UNLOADED';
89
69
  }
90
70
  const link = this._getDownloadLink();
@@ -97,35 +77,29 @@ class GmailAttachmentCardView {
97
77
  }
98
78
  return 'UNKNOWN';
99
79
  }
100
-
101
- addButton(options: Object) {
102
- var buttonView = new ButtonView({
80
+ addButton(options) {
81
+ var buttonView = new _buttonView.default({
103
82
  iconUrl: options.iconUrl,
104
- tooltip: options.tooltip,
83
+ tooltip: options.tooltip
105
84
  });
106
-
107
- var basicButtonViewController = new BasicButtonViewController({
85
+ var basicButtonViewController = new _basicButtonViewController.default({
108
86
  activateFunction: () => {
109
87
  if (options.onClick) {
110
88
  options.onClick({
111
- getDownloadURL: () => this.getDownloadURL(),
89
+ getDownloadURL: () => this.getDownloadURL()
112
90
  });
113
91
  }
114
92
  },
115
- buttonView: buttonView,
93
+ buttonView: buttonView
116
94
  });
117
-
118
95
  this._addButton(buttonView);
119
96
  }
120
-
121
- getTitle(): string {
97
+ getTitle() {
122
98
  const title = this._element.querySelector('span .aV3');
123
99
  return title ? title.textContent : '';
124
100
  }
125
-
126
- _getDownloadLink(): ?string {
127
- const firstChild: ?HTMLAnchorElement = (this._element
128
- .firstElementChild: any);
101
+ _getDownloadLink() {
102
+ const firstChild = this._element.firstElementChild;
129
103
  if (!firstChild) throw new Error('Failed to find link');
130
104
  if (firstChild.tagName !== 'A' || !firstChild.href) {
131
105
  const download_url = this._element.getAttribute('download_url');
@@ -136,33 +110,24 @@ class GmailAttachmentCardView {
136
110
  } else {
137
111
  const firstChildHref = firstChild.href;
138
112
  if (firstChildHref) {
139
- return firstChildHref.replace(
140
- /([?&])disp=inline(?=&|$)/,
141
- '$1disp=safe'
142
- );
113
+ return firstChildHref.replace(/([?&])disp=inline(?=&|$)/, '$1disp=safe');
143
114
  }
144
115
  return firstChildHref;
145
116
  }
146
117
  }
147
118
 
148
119
  // Resolves the short-lived cookie-less download URL
149
- async getDownloadURL(): Promise<?string> {
120
+ async getDownloadURL() {
150
121
  try {
151
122
  if (this._isStandardAttachment()) {
152
- const downloadUrl = await waitFor(() => this._getDownloadLink());
123
+ const downloadUrl = await (0, _waitFor.default)(() => this._getDownloadLink());
153
124
  if (!downloadUrl) return null;
154
- const finalUrl: string = await this._driver.resolveUrlRedirects(
155
- downloadUrl
156
- );
157
- if (
158
- !/^https:\/\/mail-attachment\.googleusercontent\.com\/attachment\//.test(
159
- finalUrl
160
- )
161
- ) {
125
+ const finalUrl = await this._driver.resolveUrlRedirects(downloadUrl);
126
+ if (!/^https:\/\/mail-attachment\.googleusercontent\.com\/attachment\//.test(finalUrl)) {
162
127
  console.error('getDownloadURL returned unexpected url', finalUrl); //eslint-disable-line
163
128
  const err = new Error('getDownloadURL returned unexpected url');
164
129
  this._driver.getLogger().error(err, {
165
- finalUrlCensored: finalUrl.replace(/\?[^/]+$/, '?[...]'),
130
+ finalUrlCensored: finalUrl.replace(/\?[^/]+$/, '?[...]')
166
131
  });
167
132
  if (/^https:\/\/mail\.google\.com\//.test(finalUrl)) {
168
133
  // This URL definitely isn't right: these URLs generally require
@@ -172,58 +137,43 @@ class GmailAttachmentCardView {
172
137
  // Otherwise, don't throw; only log. Maybe Gmail has changed the URL
173
138
  // structure and things will just work.
174
139
  }
140
+
175
141
  return finalUrl;
176
142
  } else {
177
- const downloadButton = this._element.querySelector(
178
- '[data-inboxsdk-download-url]'
179
- );
180
- return downloadButton
181
- ? downloadButton.getAttribute('data-inboxsdk-download-url')
182
- : null;
143
+ const downloadButton = this._element.querySelector('[data-inboxsdk-download-url]');
144
+ return downloadButton ? downloadButton.getAttribute('data-inboxsdk-download-url') : null;
183
145
  }
184
146
  } catch (err) {
185
147
  this._driver.getLogger().error(err);
186
148
  throw err;
187
149
  }
188
150
  }
189
-
190
- _extractFileNameFromElement(): string {
191
- return querySelector(this._element, '.aQA > span').textContent;
151
+ _extractFileNameFromElement() {
152
+ return (0, _querySelectorOrFail.default)(this._element, '.aQA > span').textContent;
192
153
  }
193
-
194
- _createNewElement(options: Object) {
154
+ _createNewElement(options) {
195
155
  this._element = document.createElement('span');
196
156
  this._element.classList.add('aZo');
197
157
  this._element.classList.add('inboxsdk__attachmentCard');
198
-
199
- var htmlArray = [
200
- autoHtml`
158
+ var htmlArray = [(0, _autoHtml.default)`
201
159
  <a target="_blank" role="link" class="aQy e" href="">
202
160
  <div aria-hidden="true">
203
161
  <div class="aSG"></div>
204
162
  <div class="aVY aZn">
205
163
  <div class="aZm"></div>
206
164
  </div>
207
- <div class="aSH">`,
208
- ];
209
-
165
+ <div class="aSH">`];
210
166
  if (options.iconThumbnailUrl) {
211
- htmlArray = htmlArray.concat([
212
- autoHtml`
167
+ htmlArray = htmlArray.concat([(0, _autoHtml.default)`
213
168
  <div class="aYv">
214
169
  <img class="aZG aYw" src="${options.iconThumbnailUrl}">
215
- </div>`,
216
- ]);
170
+ </div>`]);
217
171
  } else {
218
- htmlArray = htmlArray.concat([
219
- autoHtml`
172
+ htmlArray = htmlArray.concat([(0, _autoHtml.default)`
220
173
  <img class="aQG aYB inboxsdk__attachmentCard_previewThumbnailUrl"
221
- src="${options.previewThumbnailUrl}">`,
222
- ]);
174
+ src="${options.previewThumbnailUrl}">`]);
223
175
  }
224
-
225
- htmlArray = htmlArray.concat([
226
- autoHtml`
176
+ htmlArray = htmlArray.concat([(0, _autoHtml.default)`
227
177
  <div class="aYy">
228
178
  <div class="aYA">
229
179
  <img class="aSM" src="${options.fileIconImageUrl}">
@@ -245,178 +195,120 @@ class GmailAttachmentCardView {
245
195
  </div>
246
196
  </div>
247
197
  </a>
248
- <div class="aQw"></div>`,
249
- ]);
250
-
198
+ <div class="aQw"></div>`]);
251
199
  this._element.innerHTML = htmlArray.join('');
252
-
253
- (this._element.children[0]: any).href = options.previewUrl;
254
-
200
+ this._element.children[0].href = options.previewUrl;
255
201
  if (options.mimeType && options.mimeType.split('/')[0] === 'image') {
256
202
  this._element.children[0].classList.add('aZI');
257
203
  }
258
-
259
- querySelector(this._element, 'span .aV3').textContent = options.title;
260
- querySelector(this._element, 'div.aYp > span').textContent =
261
- options.description || '';
262
- querySelector(this._element, 'div.aSJ').style.borderColor =
263
- options.foldColor;
264
-
204
+ (0, _querySelectorOrFail.default)(this._element, 'span .aV3').textContent = options.title;
205
+ (0, _querySelectorOrFail.default)(this._element, 'div.aYp > span').textContent = options.description || '';
206
+ (0, _querySelectorOrFail.default)(this._element, 'div.aSJ').style.borderColor = options.foldColor;
265
207
  this._addHoverEvents();
266
-
267
208
  if (options.buttons) {
268
- const downloadButton = find(options.buttons, function (button) {
209
+ const downloadButton = (0, _find.default)(options.buttons, function (button) {
269
210
  return button.downloadUrl;
270
211
  });
271
-
272
212
  if (downloadButton) {
273
213
  this._addDownloadButton(downloadButton);
274
214
  }
275
-
276
215
  this._addMoreButtons(options.buttons);
277
216
  }
278
-
279
217
  var self = this;
280
218
  // :any to work around https://github.com/facebook/flow/issues/1155
281
- this._previewClicks.plug(
282
- Kefir.fromEvents(this._element, 'click').map((event) => ({
283
- preventDefault: () => event.preventDefault(),
284
- }))
285
- );
286
-
219
+ this._previewClicks.plug(_kefir.default.fromEvents(this._element, 'click').map(event => ({
220
+ preventDefault: () => event.preventDefault()
221
+ })));
287
222
  if (options.previewThumbnailUrl && options.failoverPreviewIconUrl) {
288
- const previewThumbnailUrlImage = querySelector(
289
- this._element,
290
- '.inboxsdk__attachmentCard_previewThumbnailUrl'
291
- );
292
- previewThumbnailUrlImage.onerror = (e) => {
223
+ const previewThumbnailUrlImage = (0, _querySelectorOrFail.default)(this._element, '.inboxsdk__attachmentCard_previewThumbnailUrl');
224
+ previewThumbnailUrlImage.onerror = e => {
293
225
  var iconDiv = document.createElement('div');
294
226
  iconDiv.classList.add('aYv');
295
- iconDiv.innerHTML =
296
- '<img class="aZG aYw" src="' + options.failoverPreviewIconUrl + '">';
227
+ iconDiv.innerHTML = '<img class="aZG aYw" src="' + options.failoverPreviewIconUrl + '">';
297
228
  const parent = previewThumbnailUrlImage.parentElement;
298
229
  if (!parent) throw new Error('Could not find parent element');
299
- parent.insertBefore(
300
- iconDiv,
301
- previewThumbnailUrlImage.nextElementSibling
302
- );
303
-
230
+ parent.insertBefore(iconDiv, previewThumbnailUrlImage.nextElementSibling);
304
231
  previewThumbnailUrlImage.remove();
305
232
  };
306
233
  }
307
234
  }
308
-
309
235
  _addHoverEvents() {
310
- Kefir.merge([
311
- Kefir.fromEvents(this._element, 'mouseenter'),
312
- fromEventTargetCapture(this._element, 'focus'),
313
- ]).onValue(() => {
236
+ _kefir.default.merge([_kefir.default.fromEvents(this._element, 'mouseenter'), (0, _fromEventTargetCapture.default)(this._element, 'focus')]).onValue(() => {
314
237
  this._element.classList.add('aZp');
315
238
  });
316
-
317
- Kefir.merge([
318
- Kefir.fromEvents(this._element, 'mouseleave'),
319
- fromEventTargetCapture(this._element, 'blur'),
320
- ]).onValue(() => {
239
+ _kefir.default.merge([_kefir.default.fromEvents(this._element, 'mouseleave'), (0, _fromEventTargetCapture.default)(this._element, 'blur')]).onValue(() => {
321
240
  this._element.classList.remove('aZp');
322
241
  });
323
-
324
- const anchor = querySelector(this._element, 'a');
325
- Kefir.fromEvents(anchor, 'focus').onValue(() => {
242
+ const anchor = (0, _querySelectorOrFail.default)(this._element, 'a');
243
+ _kefir.default.fromEvents(anchor, 'focus').onValue(() => {
326
244
  anchor.classList.add('a1U');
327
245
  });
328
- Kefir.fromEvents(anchor, 'blur').onValue(() => {
246
+ _kefir.default.fromEvents(anchor, 'blur').onValue(() => {
329
247
  anchor.classList.remove('a1U');
330
248
  });
331
249
  }
332
-
333
- _addDownloadButton(options: Object) {
334
- const buttonView = new ButtonView({
250
+ _addDownloadButton(options) {
251
+ const buttonView = new _buttonView.default({
335
252
  tooltip: 'Download',
336
- iconClass: 'aSK J-J5-Ji aYr',
253
+ iconClass: 'aSK J-J5-Ji aYr'
337
254
  });
338
-
339
- buttonView
340
- .getElement()
341
- .setAttribute('data-inboxsdk-download-url', options.downloadUrl);
342
-
343
- const basicButtonViewController = new BasicButtonViewController({
255
+ buttonView.getElement().setAttribute('data-inboxsdk-download-url', options.downloadUrl);
256
+ const basicButtonViewController = new _basicButtonViewController.default({
344
257
  activateFunction: function () {
345
258
  let prevented = false;
346
-
347
259
  if (options.onClick) {
348
260
  options.onClick({
349
261
  preventDefault: function () {
350
262
  prevented = true;
351
- },
263
+ }
352
264
  });
353
265
  }
354
-
355
266
  if (prevented) {
356
267
  return;
357
268
  }
358
-
359
269
  const downloadLink = document.createElement('a');
360
270
  downloadLink.href = options.downloadUrl;
361
271
  if (options.downloadFilename) {
362
272
  downloadLink.download = options.downloadFilename;
363
273
  }
364
-
365
- downloadLink.addEventListener(
366
- 'click',
367
- function (e: MouseEvent) {
368
- e.stopPropagation();
369
- },
370
- true
371
- );
372
-
274
+ downloadLink.addEventListener('click', function (e) {
275
+ e.stopPropagation();
276
+ }, true);
373
277
  if (options.openInNewTab) {
374
278
  downloadLink.setAttribute('target', '_blank');
375
279
  }
376
-
377
- ((document.body: any): HTMLElement).appendChild(downloadLink);
378
-
379
- simulateClick(downloadLink);
280
+ document.body.appendChild(downloadLink);
281
+ (0, _simulateMouseEvent.simulateClick)(downloadLink);
380
282
  downloadLink.remove();
381
283
  },
382
- buttonView: buttonView,
284
+ buttonView: buttonView
383
285
  });
384
-
385
286
  this._addButton(buttonView);
386
287
  }
387
-
388
- _addMoreButtons(buttonDescriptors: ?(Object[])) {
389
- (buttonDescriptors || [])
390
- .filter(function (buttonDescriptor) {
391
- return !buttonDescriptor.downloadUrl;
392
- })
393
- .forEach((desc) => {
394
- this.addButton(desc);
395
- });
288
+ _addMoreButtons(buttonDescriptors) {
289
+ (buttonDescriptors || []).filter(function (buttonDescriptor) {
290
+ return !buttonDescriptor.downloadUrl;
291
+ }).forEach(desc => {
292
+ this.addButton(desc);
293
+ });
396
294
  }
397
-
398
- _addButton(buttonView: ButtonView) {
295
+ _addButton(buttonView) {
399
296
  buttonView.addClass('aQv');
400
-
401
297
  this._getButtonContainerElement().appendChild(buttonView.getElement());
402
298
  }
403
-
404
- _getPreviewImageUrl(): ?string {
299
+ _getPreviewImageUrl() {
405
300
  var previewImage = this._getPreviewImage();
406
301
  if (!previewImage) {
407
302
  return null;
408
303
  }
409
-
410
304
  return previewImage.src;
411
305
  }
412
-
413
- _getPreviewImage(): HTMLImageElement {
414
- return (this._element.querySelector('img.aQG'): any);
306
+ _getPreviewImage() {
307
+ return this._element.querySelector('img.aQG');
415
308
  }
416
-
417
- _getButtonContainerElement(): HTMLElement {
418
- return querySelector(this._element, '.aQw');
309
+ _getButtonContainerElement() {
310
+ return (0, _querySelectorOrFail.default)(this._element, '.aQw');
419
311
  }
420
312
  }
421
-
422
- export default defn(module, GmailAttachmentCardView);
313
+ var _default = (0, _ud.defn)(module, GmailAttachmentCardView);
314
+ exports.default = _default;